Ardiuno学习记录2(按键模拟开关灯以及按键执行交通灯)

本文指导了新手如何使用Arduino和简单的硬件组件实现按键开关功能和交通灯模拟。作者分享了接线图、代码示例以及实验过程中的心得,虽然遇到了技术挑战,但仍提供了学习和改进的路径。
摘要由CSDN通过智能技术生成

一、前言

        1.新手小白上手ardiuno,技术尚不成熟,代码较为简单,可给予指正与建议;

        2.本次实验的代码有借鉴,逻辑关系较为模糊(初学暂未上道,请多多包涵,予以指教)。

二、实验要求

        ①按键要做成开关,开关点击一次,LED开启,再点击一次开关LED关闭;
        ②按键按下执行交通灯,按键松开当前交通灯开始运转(红黄绿模拟交通灯,红灯先亮,接着黄灯闪烁三次完毕之后,绿灯亮起)一次之后停止运行。

三、准备材料

        1.面包板;

        2.audiuno开发板;

        3.红黄绿发光二极管分别为2、1、1个;

        4.按键2个;

        4.杜邦线若干条(不致使电路短路并使程序成功跑动即可);

        5.220Ω电阻4个、25Ω(有电阻即可,使电流避开电阻,且电阻起保护电路作用)电阻2个;

四、接线实验(接线图仅供参考)

        参考操作图进行接线练习,接线完毕情况如下图所示。

1.任务①接线如下图所示;

2.任务②接线如下图所示(与任务①共同被接线在面包板上,方便直接操作)。

五、实操代码(按键处有借鉴,仅供参考学习,或有雷同或最优解)

1.先定义变量而后读写;

int ledpin=8;
int inpin_1=7;
int val_1=0;

int ledpin_red=11;
int ledpin_yellow=12;
int ledpin_green=13;
int inpin_2=6;
int val_2=0;

void setup()
{
pinMode(ledpin,OUTPUT);
pinMode(inpin_1,INPUT);

pinMode(ledpin_red,OUTPUT);
pinMode(ledpin_yellow,OUTPUT);
pinMode(ledpin_green,OUTPUT);
pinMode(inpin_2,INPUT);
}

2.以下为任务一的代码编写(有借鉴);

注:val_1!=val_1”是为确认按键状态是否改变。

void loop()
{
if(digitalRead(inpin_1)==HIGH)
{
  val_1 =! val_1;
  digitalWrite(ledpin,val_1);
  delay(500);
}

3.任务二代码如下(比较笨的方法,复制粘贴,可使用for循环进行优化);


if(digitalRead(inpin_2)==HIGH)
{
  val_2 =! val_2;  
  digitalWrite(ledpin_red,HIGH);
  delay(5000);
  digitalWrite(ledpin_red,LOW);

  digitalWrite(ledpin_yellow,HIGH);
  delay(1000);
  digitalWrite(ledpin_yellow,LOW);
  delay(100);
  digitalWrite(ledpin_yellow,HIGH);
  delay(1000);
  digitalWrite(ledpin_yellow,LOW);
  delay(100);
  digitalWrite(ledpin_yellow,HIGH);
  delay(1000);
  digitalWrite(ledpin_yellow,LOW);
  delay(100);

  digitalWrite(ledpin_green,HIGH);
  delay(5000);
  digitalWrite(ledpin_green,LOW);
  delay(100);
}
}

六、实验结果

        1.任务一:按下按键后红灯亮起,再按一次红灯灭;

        2.任务二:按下按键停留,消除按键内的弹簧抖动,使按键检测到电流流通之后执行一次交通灯的有序变化,执行完一次之后结束,发光二极管恢复关闭状态;

        3.实验结果不展示,可操作代码接上电源后自行实验验证。

七、心得

        在按键的部分卡住,不知道如何使用代码将按键的功能变成开关,实验多次未果之后寻得小伙伴的帮助,完成开关灯的实验;但任务二的原本计划为将按键变成开关,使按键按下之后,交通灯循环执行红黄绿灯的模拟交通信号,再按一次之后交通灯的循环停止,整个程序停止,但由于技术欠佳,未能如愿,便更改计划降低难度,待日后探讨。

八、学习之路艰苦,革命尚未成功,同志仍需努力!

      

  • 5
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值