5、按键控制小车启动实验

您当前位置: 首页 > 树莓派-4WD小车 > 编程语言视频教学

C语言_wiringPi版本程序下载

KeyScanStart.c  点击下载

Python语言_版本程序下载

KeyScanStart.py  点击下载

实验五:树莓派平台-------按键控制小车启动实验

1、实验前准备

blob.png

                        1-1 树莓派主控板

      

 

blob.png

 

 

1-2 按键开关

      

2、实验目的

ssh服务登录树莓派系统之后,编译运行按键控制小车启动实验后,按下KEY启动小车,小车会自动先前进1s,后退1s,左转2s,右转2s,原地左转3s,原地右转3s,接着停止0.5s。

 

3、实验原理

按键消抖:通常我们的按键开关一般都是机械弹性开关,当机械触点断开,闭合时,由于机械触点的弹性作用,一个按键开关子在闭合时不会马上就能稳定的接通,在断开时也不会一下子彻底断开,而是在闭合和断开时会伴随着一连串的抖动。

blob.png

                          图3-1 按键抖动状态图

抖动时间一般都是由按键的机械特性决定的,一般都会在10ms以内,为了确保程序对按键的一次闭合后一次断开只响应一次,必须进行按键的消抖处理,有硬件消抖和软件消抖。

其中,软件消抖指的是检测出键闭合后执行一个延时程序,产生5ms~10ms的延时,让前沿抖动消失后再一次检测键的状态,如果仍保持闭合状态电平,则确认为真正有键按下。当检测到按键释放后,也要给5ms~10ms的延时,待后沿抖动消失后才能转入该键的处理程序。

硬件消抖是在开关两段接一个0.1uf的电容。本次实验我们采取的是软件延时去抖。

4、实验步骤

4-1.看懂原理图

blob.png

 

                    图4-1 树莓派主控板电路图

blob.png

                          图4-2 按键    

 

blob.png

                     图4-3 树莓派40pin引脚对照表

 

 

 

4-2 由电路原理图可知按键是直接连接到主控板上的wiringPi编码的10口。我们设置10口为输入模式,并当按下按键时通过检测该引脚的电平状态,来判断按键是否被按下。

 

4-3 程序代码如下:

blob.png

blob.png

blob.png

blob.png

 

blob.png

blob.png

输入:

① cd SmartCar

② gcc KeyScanStart.c -o KeyScanStart -lwiringPi -lpthread

③ ./KeyScanStart

blob.png

接着

④ ./initpin.sh初始化引脚。