从arduino到树莓派学习笔记之按钮控制小灯

2020-02-123243
AI 快速预览详细 收起
本文是一篇从Arduino到树莓派的学习笔记,主要介绍了如何使用按钮控制小灯。文章详细讲解了按键开关的原理、连线方法,并提供了图形化编程和C语言代码实现。通过变量记录灯的状态,实现了从灯灭(0)到灯亮(1)的状态切换。此外,还讨论了按键消抖的具体调试方法。适合零基础新手入门,帮助你快速掌握基本电路和编程技巧。
Arduino到树莓派学习笔记之按钮控制小灯
                 -------------------2020.2.5
一、     原理以及连线
1、按键开关实物图
从arduino到树莓派学习笔记之按钮控制小灯图1
2、开关要接一个电阻,下图下拉电阻电路图和实物图
从arduino到树莓派学习笔记之按钮控制小灯图2
下图是它的对应实物连线图
从arduino到树莓派学习笔记之按钮控制小灯图3
3、上拉电阻电路图,连线实物图只要将上图的红和黑接VCCGND位置交换就能实现按键按下是灭,松开时亮。
从arduino到树莓派学习笔记之按钮控制小灯图4
4、下面两图解释了按键进行封装以后的原理图(按键按下时高电平,松开时低电平)

从arduino到树莓派学习笔记之按钮控制小灯图5


从arduino到树莓派学习笔记之按钮控制小灯图6

二、     arduino图形化编程,功能:当按键按下时控制灯亮,当松开按键时灯灭。
从arduino到树莓派学习笔记之按钮控制小灯图7
三、arduino c语言版代码,功能:当按键按下时控制灯亮,当松开按键时灯灭。
int button= 0 ;   //设置全局变量,并初始值为0
void setup()
{
  pinMode( 8 , INPUT);  //设置8号端口为输入模式
  Serial.begin(9600);
  pinMode( 2 , OUTPUT); //设置2号端口为输入模式
  
}
void loop()
{
  button = digitalRead(8) ;  //读取8号端口并赋值给整型变量button
  Serial.print(button);
  Serial.println();
  delay( 500 ); //延时500毫秒
  if (button==1)
  {
    digitalWrite( 2 , HIGH ); //设置2号端口为高电平
    delay( 500 );
  }
  else
  {
    digitalWrite( 2 , LOW ); //设置2号端口为高电平
    delay( 500 );
  }
}
三、     树莓派图形化编程
从arduino到树莓派学习笔记之按钮控制小灯图8
从arduino到树莓派学习笔记之按钮控制小灯图9

四、     树莓派python3代码。功能:实现小灯亮和灭的切换,比较接近平时家里电灯开关的效果。
import RPi.GPIO as GPIO  //引入模块GPIOtime
import time
IR = 24
LED = 25
GPIO.setwarnings(False)
GPIO.setmode(GPIO.BCM)  //设置端口编码方式为BCM编码
GPIO.setup(IR,GPIO.IN)  # 设置该端口为输入模式
GPIO.setup(LED,GPIO.OUT)  # 设置该端口为输出模式
led = 0
while True:
    if GPIO.input(IR) == 1:
        time.sleep(0.3)  # 按键消抖
        led = (led + 1) % 2  # 0110
    if led == 1:
        GPIO.output(LED, GPIO.HIGH)
       # time.sleep(1)
    else:
        GPIO.output(LED, GPIO.LOW)
        #time.sleep(1)
小结:1、在树莓派图形化编程和树莓派python3代码中使用了用变量来记录灯的状态,从而实现从灯灭(0)到灯亮(1)的状态切换。
2、除了用01来记录灯的状态,还可以用奇数和偶数来记录灯的状态,大家可以自己尝试一下。
3、难点是理解按键的上拉电阻和下拉电阻。如何通过调试延时时间来更好的对按键进行消抖。

4、水平有限,就当是给大家抛砖引玉作用,有不妥之处希望大家谅解。   

按键1.png (382.12 KB, 下载次数: 2782)

Arduino到树莓派学习笔记:按钮控制小灯_image_3.webp

按键1.png (382.12 KB, 下载次数: 2701)

Arduino到树莓派学习笔记:按钮控制小灯_image_6.webp

创作许可协议

本项目采用 None(不开放任何权利,保留所有权利) 进行许可。

评论(2)
kylinpoet
kylinpoet
楼主强大,多谢分享。
DFrJ5KYVQaH
DFrJ5KYVQaH
好文章,收藏学习中
- 没有更多了 -