那么如何用按键来控制led灯呢?
就是说有一个按键,我们按下的时候led灯亮起,再按一次led灯关闭
如此往复呢?
首先我们在13号引脚那里连接一个上拉电阻,然后再连接开关,如下图。
在这种情况下,我们用11号引脚控制led灯。
程序如下。
import RPi.GPIO as GPIO
import time
GPIO.setmode(GPIO.BOARD)
GPIO.setup(11,GPIO.OUT)
GPIO.setup(13,GPIO.IN,pull_up_down=GPIO.PUD_DOWN)
led=True
while True:
while (GPIO.input(13)==GPIO.HIGH):
pass
else:
裂渗尺 led= not led
pass
if led:
GPIO.output(11,GPIO.HIGH)
pass
else:
GPIO.output(11,GPIO.LOW)
pass
pass
在这里可以看到。但是程序不是很健壮,原因是我们没有消抖。
当我们按下的一瞬间肆高,可能程序已经重复执行了好多遍。
因此,现在想办法消抖。
import RPi.GPIO as GPIO
import time
GPIO.setmode(GPIO.BOARD)
GPIO.setup(11,GPIO.OUT)
GPIO.setup(13,GPIO.IN,pull_up_down=GPIO.PUD_DOWN)
led=True
while True:
while(GPIO.input(13)==GPIO.HIGH):
喊宽 pass
else:
time.sleep(0.1)
if(GPIO.input(13)==GPIO.LOW):
led=not led
pass
pass
if led:
GPIO.output(11,GPIO.HIGH)
time.sleep(0.1)
pass
else:
GPIO.output(11,GPIO.LOW)
time.sleep(0.1)
pass
pass
这样就非常准了
说明:这里笔者使用 gobot框架官网: https://gobot.io/documentation/platforms/raspi/
执行下面命颤信如令:
命令执行完成后,会生成一个main的二进制文件,那个就是我们的程序
备注:如果你想编译其他版本的树莓程序?修改 GOARM 即可
GOARM=6 (Raspberry Pi A, A+, B, B+, Zero) GOARM=7 (Raspberry Pi 2, 3)
备注:总结后面有上传脚本 ^ _ ^
1.请确保你已经连接到树莓派了
2.如果无法上传,坦睁或者报错,请查权限是否正确
执行上传命令:
scp main pi@192.168.1.xxx :/home/pi/
1.请确保你已经连接到树莓派了
进入 /home/pi (就是你刚上传的文件路径)
运行它: ./main
祝你好运!
1.上传文件的时候,请注意命令
2.不知道如何ssh登陆茄启树莓派?(请看我上一篇文章)
3.当然需要一点linux的知识
新建一个名为led.py的程序,程序的具体内容如下:123456789101112131415 #!/usr/bin/env python# -*- coding: utf-8 -*- import RPi.GPIO as GPIOimport time GPIO.setmode(GPIO.BOARD)# need to set up every channel which are using as an input or an outputGPIO.setup(11, GPIO.OUT) while True: GPIO.output(11, GPIO.HIGH) time.sleep(1) GPIO.output(11, GPIO.LOW) time.sleep(1)
使用cd命令进入文件所在目录,然后输入指令
1 sudo python led.py
使用这种念档方法实现LED闪烁的最容易的方法,网上的教程也非常多,是入门树莓派的好方法。
2.2 wiringPi
新建一个激念名为blink.c的程序,程序内容如下
1234567891011 #include <wiringPi.h>main (){ wiringPiSetup () pinMode (0, OUTPUT) for () { digitalWrite (0, HIGH) delay (500) digitalWrite (0, LOW) delay (500) }}
使用cd命令进入所在文件目录,然后输入以下命明高困令生成可执行文件blink
1 gcc -Wall -o blink blink.c -lwiringPi
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)