【华阳平台】Arduino编程,从新手到达人系列(三)

  • 时间:
  • 浏览:1
  • 来源:彩神app官方网站登录

一、按键控制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按键后,复位。

下载完应用进程,大伙儿儿此人 制作的简易抢答器就完成了。