今天学习了用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);                      //将上面的两个灯的状态保持一秒
}

Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐