4、树莓派3 Model B ——— 树莓派按键控制LED(GPIO输入模式)

时间:2022-07-21 16:15:11

1、实验前准备


       树莓派3B及电源 x1

       面包板 x1

       LED灯 x1

       按键 x1

       电阻220欧 x1

       杜邦线若干


2、实验原理


4、树莓派3 Model B ——— 树莓派按键控制LED(GPIO输入模式)

树莓派IO口既然可以可以做输出点灯,那么就可以作为输入模式检测IO口的电平,这里我们检测按键按下给树莓派IO口一个低电平,表示按键已经按下,这时我们就通过点亮一个LED来实现按键按下,再次按键按下则灯灭掉。

       按键是最常见的输入设备之一,普通的按键内部有两个不接触的触片,当按键被外力按下后,两触片连接在一起,外力松开后又还原为断开状态,与其它元器件配合使用可实现很多的功能。它的操作直观有效,很多操作都需要通过按键来控制,几乎所有的电子设备都有保留按键的设计,下面一起来学习在树莓派上实现简单的按键操作。


3、实验步骤


按照如下接线。

       LED正极接GPIO.0,串联一个220Ω电阻接地,按键一个脚接GND,一个脚接GPIO.1。

编写控制代码如下,我们实现一个很简单的功能,按下按键LED点亮,放开LED熄灭。代码如下:


#include <wiringPi.h>

#define ButtonPin 1 //定义按键引脚
#define LedPin 0 //定义LED引脚

int main (void)
{

wiringPiSetup (); //wiringPi库初始化
pinMode (LedPin,OUTPUT); //设置LED管脚为输出模式
pinMode (ButtonPin, INPUT); //设置按键管脚为输入模式
pullUpDnControl (ButtonPin, PUD_UP); //配置按键为上拉模式

while(1)
{
while(digitalRead (ButtonPin) == 0) //按下按键则点亮LED灯
{
digitalWrite (LedPin, HIGH) ;
delay (300) ;
}
digitalWrite (LedPin, LOW) ; //松开按键熄灭LED
}
return 0 ;
}


编写完代码通过SSH文件上传到wiringPi目录下。

输入如下命令:

# gcc -o button button.c-lwiringPi

运行:

# ./button或者sudo  ./button

实验现象:我们按下按键,则LED就会保持常亮,松开按键LED则熄灭。到此我们按键输入的学习到此结束,下一讲我们开始学习PWM的知识,PWM在电机控制里用的非常多,可以控制速度,开始下一讲吧!


下一讲:5、树莓派PWM实验,直流电机PWM控制速度实现正反转。