【大胜安全吗】Arduino编程,从新手到达人系列(三)

  • 时间:
  • 浏览:0
  • 来源:彩神大发快三-彩神网快3官方

一、按键控制LED实验

I/O 口的意思即为INPUT 接口和OUTPUT 接口,到目前为止本章设计的小灯实验都还可是应用到Arduino I/O 口的输出功能,你这人 实验许多人儿来尝试一下使用ArduinoI/O 口的输入功能即为读取外接设备的输出值,许多人儿用另1个按键和另1个LED 小灯完成另1个输入输出结合使用的实验,让许多人儿能简单了解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按键后,复位。

下载完多多程序 ,许多人儿此人 制作的简易抢答器就完成了。