Arduino:3-模拟输出输入
Arduino:3-模拟输出输入
模拟输出:
analogWrite(ledPin, brightness)
: 模拟输出,传入引脚编号及亮度级别
可变亮度LED灯
模拟输出,支持输出指定的亮度级别,所以可以通过模拟输出来控制LED灯的亮度,搭建电路如下:
LED连接到支持PWM
的9号引脚上,两个开关分别连接到8号和2号引脚上,读取开关的值,如果开关1被按下就降低LED灯亮度,如果开关2被按下就增大LED灯的亮度
1 | bool pushButton1 = false; |
PWM
脉冲宽度调制(英语:Pulse-width modulation,缩写:PWM),简称脉宽调制,是用脉波来输出模拟信号的一种技术,一般转换后脉波的周期固定,但脉波的工作周期会依模拟信号的大小而改变。
在上个示例中,就是通过
PWM
引脚改变脉波的工作周期来改变LED灯的亮度,如每一个周期有75%的高电平,则LED灯亮度为75%。
模拟输入
int analogRead(uint8_t pin)
: 本指令用于从Arduino的模拟输入引脚读取数值。Arduino控制器有多个10位数模转换通道。这意味着Arduino可以将0-5伏特的电压输入信号映射到数值0-1023。
电位器
其在电路图中可看成一个可变电阻,符号如下图,通过旋转旋钮,引脚1-2
和引脚2-3
之间的阻值也会相应发生变化。
通常接法如下图,1号引脚接地,3号引脚接5v电源,这样旋钮右旋则2号引脚输入电压增大。
analogRead
可以看到旋钮转到最右边后数值为1023
电位器控制LED亮度
通过模拟输入和模拟输出来使用电位器控制LED亮度
1 | void setup() { |
map
函数,用于等比映射,将0-1023
的输入等比映射到0-255
中。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Alfred的小站!