1、实验前准备
树莓派3B及电源 x1
面包板 x1
LED灯 x1
按键 x1
电阻220欧 x1
杜邦线若干
2、实验原理
树莓派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控制速度实现正反转。