esp32 dacWrite和digitalWrite输出方法的区别
今天学习了用dacWrite和digitalWrite两种方法输出点亮led灯,这两种方法的区别是1dacWrite是数字转换为模拟输出的方法,它具有0-255的值可以输出,利用for循环可以实现呼吸灯及流水灯等渐亮渐灭的效果int led1Pin=25;//设置1号led灯的控制引脚为25号int led2Pin=26;//设置2号led灯的控制引脚为26号int val = 0;//设置一个变
·
今天学习了用dacWrite和digitalWrite两种方法输出点亮led灯,这两种方法的区别是
1dacWrite是数字转换为模拟输出的方法,它具有0-255的值可以输出,
利用for循环可以实现呼吸灯及流水灯等渐亮渐灭的效果
int led1Pin=25; //设置1号led灯的控制引脚为25号
int led2Pin=26; //设置2号led灯的控制引脚为26号
int val = 0; //设置一个变量为呼吸灯做准备
void setup()
{
Serial.begin(9600); // 设置串口波特率,这里的设置会影响数字时钟的变化,放到这个里面就是会因为时钟的不同,影响led灯的亮灭时间
}
void loop()
{
for(val=255; val>0; val--) //循环val从255自减到大于0,1号led灯渐灭,2号led灯渐亮
{
dacWrite(led1Pin, val); //设置1号led灯模拟输出从255到0,也就是从3.3V到0V
dacWrite(led2Pin, 255-val);//设置2号led灯模拟输出从0到255,也就是把值取反
delay(30); //每次间隔30毫秒延时
}
for(val=0; val<255; val++) //循环val从0自加到大于255,1号led灯渐亮,2号led灯渐灭
{
dacWrite(led1Pin, val); //设置1号led灯模拟输出从0到255,也就是从0V到3.3V
dacWrite(led2Pin, 255-val); //设置2号led灯模拟输出从255到0,也就是把值取反
delay(5); //每次间隔30毫秒延时
}
}
/********************************************************/
2digitalWrite是数字输出的方法,它只有0和1两个状态,用HIGH和LOW表示,
这个方法只能表示led的开和关
int led1Pin = 25; //设置1号led灯的控制引脚为25号
int led2Pin= 26; //设置2号led灯的控制引脚为26号
void setup() {
//初始化两个led灯控制引脚,并将引脚设置为输出模式OUTPUT
pinMode(led1Pin, OUTPUT);
pinMode(led2Pin, OUTPUT);
}
void loop() {
//将两个led灯进行循环亮灭
digitalWrite(led1Pin, HIGH); //数字方法输出3.3V给1号led灯点亮
digitalWrite(led2Pin, LOW); //数字方法输出0V给2号led灯熄灭
delay(1000); //将上面的两个灯的状态保持一秒
digitalWrite(led2Pin, HIGH); //数字方法输出3.3V给2号led灯点亮
digitalWrite(led1Pin, LOW); //数字方法输出0V给1号led灯熄灭
delay(1000); //将上面的两个灯的状态保持一秒
}
更多推荐
已为社区贡献1条内容
所有评论(0)