树莓派 GPIO Input 部分高级应用技巧

树莓派 GPIO Input 部分高级应用技巧,第1张

此篇为 《树莓派使用基础》 中,RPIGPIO Input功能高级应用技巧。GPIO的简单使用请参考博文 树莓派3B+ GPIO输入输出使用

目前有几种途径可以在程序中获得 GPIO 的输入信息。

如果在输入针脚上没有连接任何元件,那么它将是“浮动(float)”的。换句话说,因为没有连接任何元件,在按下按钮或开关之前,读取的值是没有意义的。由于电源的波动,获取到的值可能会有很大的变化。

为了解决这个问题,我们需要使用 上拉/下拉电阻 。这样,我们就可设定输入的默认值了。在这里,可以使用硬件或软件对电阻进行上拉/下拉。使用硬件方式,将一个 10K 的电阻连接在输入通道与 33V(上拉)或 0V(下拉)之间是常用的做法。而 RPiGPIO 也允许您通过软件的方式对配置 Broadcom SOC 来达到目的:

或者

通道编号是基于所使用的编号系统所指定的(BOARD 或 BCM)。

边缘的定义为电信号从 LOW 到 HIGH(上升临界值)或从 HIGH 到 LOW(下降临界值)状态的改变。正常情况下,对于输入的值来说,我们更关心的是输入的状态是否发生了改变。这种状态上的改变是很重要的。

为了避免程序在忙于处理其它的事物时而错过了按下按钮的 *** 作,这里有两种方法可以解决:

在检测到边缘时执行线程回调函数

注意,可以输入 GPIORISING、GPIOFALLING、GPIOBOTH 对边缘进行检测。这种方式的优点是占用 CPU 资源很少,因此系统可以有充裕的资源处理其它事物。

RPiGPIO 在第二条线程中执行回调函数。这意味着回调函数可以同您的主程序同时运行,并且可以立即对边缘进行响应。例如:

如果需要多个回调函数:

注意,在该示例中,回调函数为顺序运行而不是同时运行。这是因为当前只有一个进程供回调使用,而回调的运行顺序是依据它们被定义的顺序。

可能会注意到,每次按钮按下时,回调 *** 作被调用不止一次。这种现象被称作“开关抖动(switch bounce)”。这里有两种方法解决开关抖动问题:

或者

由于某种原因,若不希望程序检测边缘事件,可以将它停止:

原文链接
参考链接

树莓派不插卡绿灯常亮有以下两种情况:
1、一直在读写tf卡,绿灯闪一次就是读写一次,连续快速读取就会让绿灯一直亮着。
2、电源烧掉了。建议检查一下电源风扇是否正常转动,如果不转动,那么就说明是电源烧掉了。

降低图像分辨率,改变窗口大小。
1、降低图像分辨率:可将原始图像缩小到适当的尺寸,减小HOG特征向量的大小,可在一定程度上提高处理速度,会影响到检测的精度。
2、改变窗口大小:可尝试调整HOG算法中的窗口大小,改变HOG特征向量的大小,窗口大小越大,检测的精度越高,但计算量也越大。

1、是摄像头的电源指示灯,这个是摄像头通电后就会亮,代表给摄像头供电成功,摄像头正常的话是自处于工作状态。
2、另外一种是摄像头内部的夜视红外补光灯,这个是摄像头晚上或者周围光线非常暗时,内部红外补光灯才会亮起,也代表摄像头处于工作状态。

你好,你想问为什么树莓派开机就亮一秒吗?树莓派开机就亮一秒是因为电源问题。树莓派是一款电脑,在电源电量不足,只维持了开机那一段,开机后就会出现亮一秒就灭屏的情况。树莓派是为学习计算机编程教育而设计,只有xyk大小的微型电脑,其系统基于Linux。

手机白屏原因及解决办法:1死机造成,可以试试重启 或 把电池拿掉 再弄回去 再开机2格式化手机解决(如果手 机没有系统冲 突或者错误提示可以跳过) 解决方法 :把手机退出到待 机界面,输 入“#73 70#”,手机会出现“Restore all original settings Device will restart”,按“Yes”,然后输入密 码“12345”,等手机重启后恢复出厂状态。 3 频繁修改系统文件(建议:尽量 少修 改或不修改系统的文件) 解决方法:到专门的手机店进行刷机。(PS:刷机的时间 有点长哦,请您耐心等待) 4硬件损坏 前提:尝试了所有的方法,并 且经 过刷机也未见效果的时候。

单片机或树莓派一般使用 L298n 模块来驱动电机 。L298N的实物图如下。

12V power:L298n 的电源正极,尽管标的 12V,但你可以使用 7V ~ 35V 的电源。

GND:  L298n 的电源地,树莓派的 GND 引脚也要接到这里,即 L298N 和 树莓派需要共地。

5V power:  L298n 输出的 5v 电源,是用来给单片机或树莓派供电的。如果你的树莓派是单独供电,那么这个引脚悬空。

Output 的两个引脚接直流电机的两脚,而板上有 Output A 和 Output B,分别驱动电机 A 和电机 B。

A Enable :  电机 A 使能,接 GPIO 口 。可以用PWM 来调速。

Logic Input :  接 4 个 GPIO 口。 上面两个脚 Input1 、Input2 (靠近 A Enable )控制电机 A ; 下面两个脚 Input3、Input4 (靠近 B Enable)控制电机 B。

B Enable : 电机 B 使能,接 GPIO 口。 可以用 PWM 来调速。

总结一下就是 A Enable 、Input1、Input2 控制电机 A 的运行,B Enable、Input3、Input4 控制电机 B 的运行。

如何控制的呢? 下面是对电机 A 进行控制的真值表,电机 B 同理。
驱动一下试试吧!

下面是控制电机 A 的电路图:
把 L289N 的直流电源接好,然后把树莓派的 GND 与 L298N 的 GND 连在一起,因为共地后 L298N 才能识别树莓派发送的 IN1、IN2 到底是高电平还是低电平。   

树莓派的 2、3、4 脚分别连到 A Enable、IN1 、IN2 。(把 Enable 上的短接帽拿掉)

由控制表可知给 2 脚高电平,3 脚高电平,4 脚低电平,电机就会正转。

编写程序:
前面提到过 A Enable 和 B Enable 可以用 pwm 控制来调速,下面是相应程序。

接线不变!这个程序可以让电机 A 以不同的速度正转。

在树莓派中运行程序后,可以看到电机的转速会随着占空比的改变而变化。

程序源码在:  github


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12922282.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-29
下一篇 2023-05-29

发表评论

登录后才能评论

评论列表(0条)

保存