极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 12810|回复: 4

求助!!电位器PWM控制LED亮度疑问?

[复制链接]
发表于 2013-3-2 20:31:29 | 显示全部楼层 |阅读模式
     arduino R3控制板A0-A5中任意一个端口连在100K电位器调节端,电位器另外两端分别连接GND,+5V,其余端口悬空。pwm输出端3,5,6,9,10,11 同时分别接上led灯和1K电阻到GND,用如下程序中运行试验,发现调节电位器,3,5,6,9,10,11的各个LED灯亮度为何同步变化?求高人解答?

void setup()
{}

void loop()
{
int n0= analogRead(A0);
int n1=analogRead(A1);
int n2=analogRead(A2);
int n3=analogRead(A3);
int n4=analogRead(A4);
int n5=analogRead(A5);
analogWrite(3,n0/4);
analogWrite(5,n1/4);
analogWrite(6,n2/4);
analogWrite(9,n3/4);
analogWrite(10,n4/4);
analogWrite(11,n5/4);
}
回复

使用道具 举报

发表于 2013-3-2 20:47:48 | 显示全部楼层
本帖最后由 bacon6581 于 2013-3-2 21:03 编辑
  1. int n0=0;
  2. int n1=0;
  3. int n2=0;
  4. int n3=0;
  5. int n4=0;
  6. int n5=0;

  7. void setup()
  8. {
  9. pinMode(3, OUTPUT);
  10. pinMode(5, OUTPUT);
  11. pinMode(6, OUTPUT);
  12. pinMode(9, OUTPUT);
  13. pinMode(10, OUTPUT);
  14. pinMode(11, OUTPUT);
  15. }

  16. void loop()
  17. {
  18. n0 = analogRead(0);
  19. n1 = analogRead(1);
  20. n2 = analogRead(2);
  21. n3 = analogRead(3);
  22. n4 = analogRead(4);
  23. n5 = analogRead(5);
  24. analogWrite(3,n0/4);
  25. analogWrite(5,n1/4);
  26. analogWrite(6,n2/4);
  27. analogWrite(9,n3/4);
  28. analogWrite(10,n4/4);
  29. analogWrite(11,n5/4);
  30. }
复制代码

还有一个:
端口悬空时,读取的数值是乱七八糟的数值
要想读取的数值是零,必须接地!
回复 支持 反对

使用道具 举报

发表于 2013-3-2 20:57:04 | 显示全部楼层
SETUP 的时候为什么不定义针脚的模式   pinMode()
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-3-2 21:15:16 | 显示全部楼层
analogWrite()Description

向针脚写入一个逻辑值 (PWM wave). 可以用来点亮LED灯,调整其亮度或者驱动一个电机,控制其转速. 调用analogWrite()函数后, 对应的针脚会输出一个稳定的,指定占空比的方波.(在这个针脚下一次调用analogWrite() ,或者调用digitalRead()或者 digitalWrite(),针脚的输出会改变为相应的函数执行), PWM信号的频率近乎于490Hz.

在大多数的Arduino板上(MCU为 ATmega168 or ATmega328), 函数起作用的针脚为 3, 5, 6, 9, 10, 和 11. 在 Arduino Mega板上, 起作用的针脚为 2 到 13. 老一点的Arduino 板,MCU是 ATmega8 的,analogWrite()只支持针脚9, 10, and 11. 在执行analogWrite()之前,不需要调用pinMode()函数把针脚设置成输出模式.analogWrite函数和模拟量采集针脚, analogRead 函数毫无关系.

语法

analogWrite(pin, value)

参数

pin:需要操作的针脚.

value: 占空比: 从 0 (off) 到 255 (on).

返回值

无返回值

一些说明和已知的问题

针脚5和6上的PWM输出,占空比往往高于期望值.这是由于millis()和delay()函数的相互作用,会占用内部计时器,使内部计时器在处理PWM输出时分心. This is because of interactions with the millis() and delay() functions, which share the same internal timer used to generate those PWM outputs.这种情况一般出现在低占空比设置时,(比如 0 - 10) ,还有些情况是占空比为0时,针脚5和6并没有关闭输出.

回复 支持 反对

使用道具 举报

发表于 2013-3-3 10:37:40 | 显示全部楼层
是想用n个电位器控制n个led么?
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 需要先绑定手机号

Archiver|联系我们|极客工坊

GMT+8, 2024-5-4 23:55 , Processed in 0.042060 second(s), 20 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表