您的位置: 主页>机器人编程>ROBOLAB编程>穷创客教育之Arduino编程第九课:按键实验扩展
加盟酷吧机器人 培养孩子核心能力

穷创客教育之Arduino编程第九课:按键实验扩展

    实验扩展:上面的例程做过以后,大家可能会想,这样的话我们想要点亮LED,手就不能离开按钮了,这样非常不方便,怎么才能像家里的开关控制电灯一样,按一下点亮,再按下熄灭呢?

电路图利用第八课右图,高电平有效。

法一:用一个变量记录LED灯是熄灭还是点亮状态,当按下按键时,若灯当前的状态是熄灭,则点亮灯同时改变灯的状态为点亮;当按下按键时,若灯当前的状态是点亮,则熄灭灯同时改变灯的状态为熄灭。

int state = 0; //存储LED状态的变量,0表示熄灭状态,1表示点亮状态。

void setup() {

  pinMode(10,OUTPUT); //设置10号引脚为LED输出引脚

  pinMode(2,INPUT); //设置2号引脚为开关输入引脚

}

void loop() {

 if((digitalRead(2)== HIGH) && (state == 0))

  {  //当按键按下且灯的状态为灭时灯变亮

state = 1; //灯的状态为亮

  delay(100);//延迟10ms消除杂波干扰

digitalWrite(10,HIGH); 

  }else if((digitalRead(2)== HIGH) && (state == 1)){

 //当按键按下且灯的状态为亮时,灯熄灭

   state = 0;

   delay(100);

 digitalWrite(10,LOW);

}

}

法二:可用计数的方法,奇数为灭偶数为亮(用取余数操作符%。例如x=3%2即 x=1;x=4%2即x=0)

int js = 0; //计数变量。

void setup() {

  pinMode(10,OUTPUT); //设置10号引脚为LED输出引脚

  pinMode(2,INPUT); //设置2号引脚为开关输入引脚

}

void loop() {

 if((digitalRead(2)== HIGH) && ((js%2)== 0))  {

 //当按键按下且js为偶数时灯亮

js++; //js加1

  delay(100);//延迟100ms消除杂波干扰

digitalWrite(10,HIGH);

  }else if((digitalRead(2)== HIGH) && ((js%2) == 1)){

 //当按键按下且灯的状态为亮时

    js++;

   delay(100);

 digitalWrite(10,LOW);

}

}

后记,小编朋友公司研发了一个游戏化的少儿编程在线课程(5-12岁),游戏化教学结合scratch(一款在线少儿编程工具,类似乐高的积木拼搭),我家娃娃学了几次课,非常喜欢(超预期),16次课才200多块钱,对锻炼孩子的思维能力和动手动力很有帮助。

欧美思机器人教育加盟 赚钱好项目
上一篇:【Arduino开源硬件编程】课程介绍——小魔孩编程
下一篇:01RoboMaster app介绍
您可能喜欢
回到顶部