Arduino应用范例10例讲解.docx
《Arduino应用范例10例讲解.docx》由会员分享,可在线阅读,更多相关《Arduino应用范例10例讲解.docx(14页珍藏版)》请在冰豆网上搜索。
![Arduino应用范例10例讲解.docx](https://file1.bdocx.com/fileroot1/2023-6/2/b0e2521b-8f0e-4d55-9365-7632ae807774/b0e2521b-8f0e-4d55-9365-7632ae8077741.gif)
Arduino应用范例10例讲解
Arduino
应
用
范
例
10
例
作者:
小新哥
1.趣味彩灯3
2•楼道延时报警灯4
3.行程自动往返工件传送带5
4.A、B、C三路智能抢答器6
5.机床控制系统7
6•楼上楼下共控一灯8
7.工厂顺序启动反顺序停车控制系统9
8.楼道声光控灯10
9.水塔自动上水装置11
10.电机拖动控制12
1.
趣味彩灯
名称
趣味彩灯
功能要求
1.XI触发,一组灯依次被点亮。
延时10秒,将全部关闭。
等持下一次触发.
2r当灯关闭时,第二组灯开始闪烁10秒,然后关闭.
{
digitalWrite(13,HIGH);
delay(500);
digitalWrite(13丄OW);
delay(500);
}
}
}
2.楼道延时报警灯
名称
功能要求
楼道延时报警灯
1,X1.X2触发时,Y9输出30秒“
2-当¥9输出25秒时,¥10输出声音报警5秒“
示意图:
XI触发-Y9灯输出
¥4峰鸣报警输出
楼道
•>X2触发
voidsetup()
{
for(inti=0,j=9;i<=8,jv=13;i++,j++)//设置0-8为输入,9-13为输出
{pinMode(i,INPUT);pinMode(j,OUTPUT);}
}
voidloop()
{
if(digitalRead
(1)==HIGH||digitalRead
(2)==HIGH)//引脚1或2置高电平
{
digitalWrite(9,HIGH);//9置高电平
delay(25000);//延时25秒
digitalWrite(10,HIGH);//10置高电平
delay(5000);//延时5秒
digitalWrite(10丄OW);//10置低电平
digitalWrite(9丄OW);//9置低电平
}
}
3.行程自动往返工件传送带
名称
功能要求
行程自动往返工件传送带
1,XI(左侧)检知时』杓输出,工件向右移动°
2,X2(右侧)检知时,¥10输出,工件向左移动。
%X3检知时’机器无论任何狀态均停止运行。
示意圏:
voidsetup()
把0-7设置为输入
把8-13设置为输出
{
for(inti=0;i<=7;i++)//
pinMode(i,INPUT);
for(intj=8;jv=13;j++)//
pinMode(j,OUTPUT);
}
voidloop(){
if(digitalRead
(1)==HIGH){digitalWrite(9,HIGH);digitalWrite(10丄OW);
}
if(digitalRead
(2)==HIGH){digitalWrite(10,HIGH);digitalWrite(9,LOW);
}
if(digitalRead(3)==HIGH){digitalWrite(9,LOW);digitalWrite(10丄OW);
}
}
4.
A、BC三路智能抢答器(直接用带闪烁灯的蜂鸣器更好)
名称
功能要求
A.氐C三路智能抢答器
1+A.匚三路谁先抢答将锁定谁.并发岀铃声与闪烁光&
2,主持人可以清除状态*归零等持下一次抢答*
JJL?
__
Y8灯Y9铃Y10灯丫11铃Y12灯Y13铃
voidsetup()
设置0-8为输入,9-13为输出
{
for(inti=0,j=9;i<=8,jv=13;i++,j++)//
{pinMode(i,INPUT);pinMode(j,OUTPUT);}}
voidloop()
{if(digitalRead
(1)==HIGH&&digitalRead(11)==LOW&&digitalRead(13)==LO
W)
{
digitalWrite(8,HIGH);
digitalWrite(9,HIGH);
}
if(digitalRead
(2)==HIGH&&digitalRead(9)==LOW&&digitalRead(13)==LOW)
{
digitalWrite(10,HIGH);
digitalWrite(11,HIGH);
}
if(digitalRead(3)==HIGH&&digitalRead(9)==LOW&&digitalRead(11)==LOW)
{
digitalWrite(12,HIGH);
digitalWrite(13,HIGH);
}
if(digitalRead⑷==HIGH){
for(intk=8;k<=13;k++)
digitalWrite(k,LOW);
}
}
5.
机床控制系统
名称
功能嬰求
机床控制系统
1-XI有信也Y9输出;X丄无信弘旳无输出"
2.X2有信号,¥10无输出;X2无信号*Y10有输出.
3-X3有信号+¥11有输出*X3无信号+¥11无输出°
意图:
digitalWrite(10,!
digitalRead
(2));digitalWrite(11,digitalRead(3));
}
6.楼上楼下共控一灯(方式2)
名称
功能要求
楼控上共灯楼下一
方式1
1/XI触发时,¥9输出;此时,若X3xX4触克Y9不输出;X2触发时,Y9输出t此时,若灼“K4触发,Y9不输出:
方式2
3.XI触发1次¥9输出,M鮭发2次,¥9不输出.(楼上单按钮执
行开关灯)
4.)(2触发1次也输出,K2触炭2次,¥9不输出。
(楼下单按钮执
行开关灯)
5.□触发¥9输出,再触发Y9不输出"楼上开灯,楼F关灯JbX2触发¥9输出•再触发)CLY9不输出。
(楼下开灯,楼上关灯)
示恿图;
楼上X3触发(关)
楼上XI触发(开,条件3的开或关)
设置0-8为输入,9-13为输出
有按键按下
延时去抖动
有按键按下
的状态翻转
等待按键松手
有按键按下
延时去抖动
有按键按下
digitalWrite(9,!
digitalRead(9));//LEDwhile(digitalRead
(2)==HIGH);//}
}
}
的状态翻转等待按键松手
7.工厂顺序启动反顺序停车控制系统
名称
功能要求
工厂顺序启动反顺序停车控制系统统
1-触发时,Y9输岀+延时5秒后*¥10输出。
2,K2触发时,¥10无输出.延时5秒后*¥9无输出。
示帝图:
勺X2电机反顺序停止
XI电面顺序启动
voidsetup()
{
for(inti=0;i<=7;i++)//
{pinMode(i,INPUT);}
for(intj=8;jv=13;j++)//
{pinMode(j,OUTPUT);}
}
voidloop(){
if(digitalRead
(1)==HIGH){digitalWrite(9,HIGH);delay(5000);
digitalWrite(10,HIGH);}if(digitalRead
(2)==HIGH){digitalWrite(10丄OW);delay(5000);
digitalWrite(9,LOW);}
}
电机
把0-7设置为输入
把8-13设置为输出
8.楼道声光控灯
名称
功能要求
智能路灯
XI检知时(夜晚)并且K2检知时.¥9输岀,延时2D秒后关闭.
2,XI或X2检知时尸¥弓不输出。
XI光检知K2声音检知
voidsetup()
{
for(inti=0;iv=7;i++)//把0-7设置为输入
{pinMode(i,INPUT);}
for(intj=8;jv=13;j++)//把8-13设置为输出
{pinMode(j,OUTPUT);}
}
voidloop(){
if(digitalRead
(1)==HIGH&digitalRead
(2)==HIGH){digitalWrite(9,HIGH);
delay(20000);
digitalWrite(9,LOW);}
}
9.水塔自动上水装置
名称
功能要求
水塔自动上水装置
1,XI浮球水位检知时.¥9输出水泵卜水。
水位到达时,Y9无输出*水泵停止上水a
浮球水位检知刈
匕水电HIMY9
voidsetup(){
pinMode(1,INPUT);
pinMode(9,OUTPUT);}voidloop()
{digitalWrite(9,!
digitalRead
(1));}
11.电机拖动控制
名称
功能要求
电机拖动控制
1*两台电机’Ml电机启动*延时5秒,M2电机启动朽Ml*M2电机可以单独起动和停止&
voidsetup()
{
for(inti=0;iv=7;i++)//把0-7设置为输入
pinMode(i,INPUT);
for(intj=8;jv=13;j++)//把8-13设置为输出
pinMode(j,OUTPUT);
}
voidloop()
{
if(digitalRead
(1)==HIGH&&digitalRead(9)==LOW&&digitalRead(10)==LOW)
{
digitalWrite(9,HIGH);
delay(5000);
digitalWrite(10,HIGH);
}
if(digitalRead
(2)==HIGH)
{digitalWrite(9,HIGH);}
if(digitalRead(3)==HIGH)
{digitalWrite(9,LOW);}
if(digitalRead⑷==HIGH)
{digitalWrite(10,HIGH);}if(digitalRead(5)==HIGH){digitalWrite(10,LOW);}}