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

1.读取模拟器

int potpin=0;//指定模拟端口A0
int ledpin=13;//指定LED端口 13
int 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值
}
接线图如下
arduino学习笔记4 读取模拟器,PWM调节灯光亮度,感热灯_第1张图片
要注意,面包板中间大横槽隔开的两头不连通,如果可调电阻横跨两头,或者接线从大横槽断开,实验都会失败。
此时上传代码,打开串口监视器,就可以看到反馈的数字在不断更新,旋转可调电阻,就可以看到数值的变化。

2.PWM调节灯光亮度
int potpin=0;//定义模拟接口0
int ledpin=11;//定义数字接口11(PWM 输出),arduino有六个PWM接口,分别是3,5,6,9,10,11
int 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
}
接线图如下
arduino学习笔记4 读取模拟器,PWM调节灯光亮度,感热灯_第2张图片
此时如果我们将可调电阻阻值减小,灯光就会变弱。反之则变强。
PWM全称Pulse Width Modulation,译为脉冲宽度调制。输出电压=(接通时间/脉冲时间)*最大电压值。

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

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

arduino学习笔记4 读取模拟器,PWM调节灯光亮度,感热灯_第3张图片

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


你可能感兴趣的:(Arduino学习笔记)