1908| 2
|
从arduino到树莓派学习笔记之按钮控制小灯 |
从Arduino到树莓派学习笔记之按钮控制小灯 -------------------2020.2.5 一、 原理以及连线 1、按键开关实物图 2、开关要接一个电阻,下图下拉电阻电路图和实物图 下图是它的对应实物连线图 3、上拉电阻电路图,连线实物图只要将上图的红和黑接VCC和GND位置交换就能实现按键按下是灭,松开时亮。 4、下面两图解释了按键进行封装以后的原理图(按键按下时高电平,松开时低电平) 二、 arduino图形化编程,功能:当按键按下时控制灯亮,当松开按键时灯灭。 三、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 ); } } 三、 树莓派图形化编程 四、 树莓派python3代码。功能:实现小灯亮和灭的切换,比较接近平时家里电灯开关的效果。 import RPi.GPIO as GPIO //引入模块GPIO、time 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 # 0变1,1变0 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、除了用0和1来记录灯的状态,还可以用奇数和偶数来记录灯的状态,大家可以自己尝试一下。 3、难点是理解按键的上拉电阻和下拉电阻。如何通过调试延时时间来更好的对按键进行消抖。 4、水平有限,就当是给大家抛砖引玉作用,有不妥之处希望大家谅解。 |
© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed