【章鱼彩票app最新版下载】Arduino编程,从新手到达人系列(三)

  • 时间:
  • 浏览:0

一、按键控制LED实验

I/O 口的意思即为INPUT 接口和OUTPUT 接口,到目前为止本章设计的小灯实验都还本来 应用到Arduino I/O 口的输出功能,什儿 实验大伙儿儿 来尝试一下使用ArduinoI/O 口的输入功能即为读取外接设备的输出值,大伙儿儿 用另三个 按键和另三个 LED 小灯完成另三个 输入输出结合使用的实验,让大伙儿儿 能简单了解I/O 的作用。按键开关大伙儿儿 都应该比较了解,属于开关量(数字量)元件,按下时为闭合(导通)状态。完成本实验要

用到的元件如(图1):

按键开关*1

红色M5 直插LED*1

220Ω电阻*1

10KΩ电阻*1

面包板*1

面包板跳线*1

大伙儿儿 将按键接到数字7 接口,红色小灯接到数字11 接口(Arduino 控制器0-13 数字I/O 接口都才能用来接按键和小灯,后后尽量不取舍0 1 接口,0 1 接口为接口功能复用,除I/O 口功能外也是串口通信接口,下载进程时属于与PC 机通信故应保持0 1 接口悬空,本来为解决插拔线的麻烦尽量不取舍0 1 接口),按下面的原理图2连接好电路。

内部人员连接见(图3、图4):

 

下面现在现在结速编写进程,大伙儿儿 让按键按下时小灯亮起,根据前面的学习相信什儿 进程很容易就能编写出来,相对于前面几块实验什儿 实验的进程中多加了第一根条件判断语录,这里大伙儿儿 使用if 语录,Arduino 的进程便写语录是基于C 语言的,本来C 的条件判断语录自然也适用于Arduino,像whileswich 等等。这里根据被委托人喜好大伙儿儿 习惯

于使用简单易于理解的if 语录给大伙儿儿 做演示例程。

   分析电路可知当按键按下时,数字7 接口可读出为高电平,这时大伙儿儿 使数字11 口输出高电平可使小灯亮起,进程中大伙儿儿 判断数字7 口算是为低电平,要为低电平使数字11 口输出也为低电平小灯不亮,原理同上。

参考源进程:

int ledpin=11;//定义数字11 接口

int inpin=7;//定义数字7 接口

int val;//定义变量val

void setup()

{

pinMode(ledpin,OUTPUT);//定义小灯接口为输出接口

pinMode(inpin,INPUT);//定义按键接口为输入接口

}

void loop()

{

val=digitalRead(inpin);//读取数字7 口电平值赋给val

if(val==LOW)//检测按键算是按下,按键按下时小灯亮起

{ digitalWrite(ledpin,LOW);}

else

{ digitalWrite(ledpin,HIGH);}

}

//////////////////////////////////////////////

实验结果及其现象:当按键按下时,LED亮,按键这麼按下时,LED不亮。

下载完进程大伙儿儿 本次的小灯配合按键的实验就完成了,本实验的原理很简单,广泛被用于各种电路和电器中,实际生活中大伙儿儿 本来 难在各种设备上发现,累似 大伙儿儿 的手机当按下任一按键时背光灯就会亮起,这本来 典型应用了。我能 把LED当成继电器,就才能控制220v电灯!

二、抢答器设计实验

完成上面的实验完后 相信后后有本来大伙儿儿 才能独立完成什儿 实验了,本实验本来 将上面的按键控制小灯的实验扩展成3 个按键对应3 个小灯,占用6 个数字I/O 接口,见电路连接图(图5)。

 

原理这里就太大说了同上面实验,附上参考原理图和内部人员连接图6。

参考源进程如下:

int redled=8;     //红色LED 输出

int yellowled=7;  //黄色LED输出

int greenled=6;   //绿色LED输出

int redpin=5;     //红色按键引脚

int yellowpin=4;  //黄色按键引脚

int greenpin=3;   //绿色按键引脚

int restpin=2;   //复位按键引脚定义

int red;

int yellow;

int green;

void setup()

{

pinMode(redled,OUTPUT);

pinMode(yellowled,OUTPUT);

pinMode(greenled,OUTPUT);

pinMode(redpin,INPUT);

pinMode(yellowpin,INPUT);

pinMode(greenpin,INPUT);

}

void loop()  //按键循环扫描。

{

red=digitalRead(redpin);

yellow=digitalRead(yellowpin);

green=digitalRead(greenpin);

if(red==LOW)RED_YES();   

if(yellow==LOW)YELLOW_YES();

if(green==LOW)GREEN_YES();

}

void RED_YES()//经常执行红灯亮,直到复位键按下,现在现在结速循环

{

  while(digitalRead(restpin)==1)

  {

   digitalWrite(redled,HIGH);

   digitalWrite(greenled,LOW);

   digitalWrite(yellowled,LOW);

  }

  clear_led();

}

void YELLOW_YES()//经常执行黄灯亮,直到复位键按下,现在现在结速循环

{

  while(digitalRead(restpin)==1)

  {

  digitalWrite(redled,LOW);

  digitalWrite(greenled,LOW);

  digitalWrite(yellowled,HIGH);

  }

  clear_led();

}

void GREEN_YES()//经常执行绿灯亮,直到复位键按下,现在现在结速循环

{

  while(digitalRead(restpin)==1)

  {

  digitalWrite(redled,LOW);

  digitalWrite(greenled,HIGH);

  digitalWrite(yellowled,LOW);

  }

  clear_led();

}

void clear_led()//清除LED

{

  digitalWrite(redled,LOW);

  digitalWrite(greenled,LOW);

  digitalWrite(yellowled,LOW);

}

实验现象都说了是抢答器,肯定是谁先按下,就亮谁的灯啦!

后后按下REST按键后,复位。

下载完进程,大伙儿儿 被委托人制作的简易抢答器就完成了。