arduino学习笔记4 读取模拟器,PWM调节灯光亮度,感热灯

来源:互联网 发布:js 遍历数组 es6 编辑:程序博客网 时间:2024/05/17 23:10

1.读取模拟器

int potpin=0;//指定模拟端口A0int ledpin=13;//指定LED端口 13int val=0;//声明临时变量void setup(){  pinMode(ledpin,OUTPUT);//设置端口13为输出模式  Serial.begin(9600);//设置串口波特率为9600}void loop(){  digitalWrite(ledpin,HIGH);//拉高端口13,LED点亮  delay(50);//延时0.05秒  digitalWrite(ledpin,LOW);//拉低端口13,关闭LED  delay(50);//延时0.05 秒  val=analogRead(potpin);//读取A0口的电压值并赋值到val  Serial.println(val);//串口发送val值}
接线图如下
要注意,面包板中间大横槽隔开的两头不连通,如果可调电阻横跨两头,或者接线从大横槽断开,实验都会失败。
此时上传代码,打开串口监视器,就可以看到反馈的数字在不断更新,旋转可调电阻,就可以看到数值的变化。

2.PWM调节灯光亮度
int potpin=0;//定义模拟接口0int ledpin=11;//定义数字接口11(PWM 输出),arduino有六个PWM接口,分别是3,5,6,9,10,11int val=0;// 暂存来自传感器的变量数值void setup(){  pinMode(ledpin,OUTPUT);//定义数字接口11 为输出  Serial.begin(9600);//设置波特率为9600//注意:模拟接口自动设置为输入}void loop(){  val=analogRead(potpin);// 读取传感器的模拟值并赋值给val  Serial.println(val);//显示val 变量  analogWrite(ledpin,val/4);// 打开LED 并设置亮度(PWM 输出最大值255)  delay(10);//延时10ms}
接线图如下
此时如果我们将可调电阻阻值减小,灯光就会变弱。反之则变强。
PWM全称Pulse Width Modulation,译为脉冲宽度调制。输出电压=(接通时间/脉冲时间)*最大电压值。

3.感热灯
int potpin=0;//设置模拟端口A0int ledpin=11;//设置数字端口11 ,后面用作PWM输出int val=0;//声明变量valvoid setup(){pinMode(ledpin,OUTPUT);//设置数字11为输出模式Serial.begin(9600);//设定波特率为9600}void loop(){val=analogRead(potpin);//读取A0的模拟电压值,并赋值到valval = 245- val/2;        if(val < 0)          val = 0;Serial.println(val);analogWrite(ledpin,val);// PWM输出驱动LEDdelay(100);//延时100ms}

接线图如下,LED灯连接一个220欧电阻,热敏电阻器连接一个10K电阻



此时效果为,热敏电阻器所处的环境越热,LED灯越亮。


原创粉丝点击