嵌入式Linux中文站

移动开发

树莓派GPIO入门08-使用74HC595芯片驱动数码管(二)

树莓派GPIO入门08-使用74HC595芯片驱动数码管(二)

阅读(131)

我们学习了如何利用74HC595这块显示驱动芯片来驱动1位8段数码管的方法。并逐一讲解了该芯片各引脚的功能。细心的童鞋可能注意到了,上次我们有一个Q7S引脚没有用到。这一篇我们就用这个引脚来级联两块74HC595芯片同时驱动8个8段数码管。在两块74HC595芯片的配合下,同样只需要3个GPIO口就能驱动八只8段数码管。而如果直接用GPIO驱动则需要至少16个GPIO口,节省了13个GPIO!而且按照本文的方法,你还可以级联更多的74HC595芯片,每多级联一片就能多驱动8只数码管,而需要的IO口仍然只有...

树莓派GPIO入门09-使用MAX7219芯片驱动8位数码管

树莓派GPIO入门09-使用MAX7219芯片驱动8位数码管

阅读(135)

前面几篇我们学习了如何利用一片或多片级联的74HC595芯片来驱动显示数码管的方法。最开始我们提出的两个问题: 占用IO口过多 做动态扫描时占用CPU资源太多导致显示不稳定 第一个问题已经利用级联的74HC595解决了。(不管驱动几只数码管,只用3个IO即可) 但第二个问题依然存在,树莓派仍然需要不停地访问IO口进行动态扫描。 好,既然动态扫描占用CPU资源太多,那这活儿咱包出去让别人干不就行了?这就是本文主角MAX7219的特长,动态扫描这活儿MAX7219全包了,干的还比咱自己干得还好,一片MAX72...

树莓派GPIO入门10-使用TLC5940芯片输出多路PWM

树莓派GPIO入门10-使用TLC5940芯片输出多路PWM

阅读(111)

在之前的章节,我们曾经用树莓派的IO口输出不同调宽的PWM信号来控制LED灯的亮度。 本文使用芯片TLC5940来输出多路PWM信号以同时控制多达16个LED的亮度。 在本文的基础上你可以发挥想象,制作出各种有趣的彩灯效果。 最终效果TODO 视频演示 硬件 TLC5940芯片 X 1 TLC5940芯片 LED X 3 2-3k电阻一只 原理说明 简单的说,TLC5940是一个拥有16路输出的LED驱动芯片,每一路输出支持4096级!亮度调节。 老规矩,看一下它的引脚图: TLC5940的引脚图 跟本文...

树莓派GPIO入门11-驱动液晶屏幕(一)

树莓派GPIO入门11-驱动液晶屏幕(一)

阅读(234)

本系列将驱动一块1.44的128x128像素的彩色液晶屏幕。 并分几个篇幅分别讲述如何使其显示色块,英文数字,汉字以及图片。 本文是系列的第一篇,目标是点亮屏幕并显示指定色块。 最终效果 最终效果 硬件 1.44英寸 spi接口 128x128液晶屏幕 X 1(淘宝10-20元) 正面 背面 先上代码看效果 这次直接上代码,大家自己复制代码保存为py文件。文件名无所谓。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26...

树莓派GPIO入门11-驱动液晶屏幕(二)

树莓派GPIO入门11-驱动液晶屏幕(二)

阅读(275)

本系列将驱动一块1.44的128x128像素的彩色液晶屏幕。 本文是系列的第2篇,也是最后一篇,目标是在液晶屏上显示文字。 最终效果 最终效果 硬件及连接 参考本系列第一篇 先运行程序看效果 下载下面两个文件放在同一目录下。 python程序 点阵字库 然后,执行! 1 sudo python progHz. py 原理说明 上一篇我们学过了如何在指定的区域里绘制色块的方法。说白了就是在一个指定矩形区域内按顺序设置每一个像素点的颜色。 那么显示文字也是一样的道理。我们打算在某个位置显示一个汉字,要做的就是...

树莓派3如何使用蓝牙

树莓派3如何使用蓝牙

阅读(87)

一、升级安装蓝牙相关软件包 1 2 3 4 sudo apt-get update sudo apt-get upgrade -y sudo apt-get dist-upgrade -y sudo apt-get install pi-bluetooth bluez bluez-firmware blueman 二、最关键一点:添加pi用户到蓝牙组 1 sudo usermod -G bluetooth -a pi 三、重启 1 sudo reboot 之后就可以按照各种教程正确使用蓝牙了...

RPi.GPIO 模块使用基础

RPi.GPIO 模块使用基础

阅读(61)

RPi.GPIO 模块程序包提供了一个在 Raspberry Pi 中控制 GPIO 的类。 注意,该模块不适合应用到追求实时性或计数周期的应用中。这是由于您无法预测 Ptyhon 何时繁忙,以及资源回收的时间。而且它是运行在基于 Linux 核心的系统中,也不合适用于实时应用 原因在于其它进程可能获得更高的 CPU 优先级。如果您一定要追求实时操作的性能,可以考虑购买一块 Arduino 主板! 还需要注意一点,目前的版本还不支持 Raspberry Pi 的 SPI、I2C、1-wire、串口等功能。...

使用 RPi.GPIO 模块的输入(Input)功能

使用 RPi.GPIO 模块的输入(Input)功能

阅读(178)

目前有几种途径可以在您的程序中获得 GPIO 的输入信息。第一种也是最简易的一种为在某个时间点检查输入值。这即是所谓的轮询(polling),而且如果您的程序在错误的时间里进行了读取,可能会错过某个输入值。在循环中运用轮询,有可能使处理器资源紧张。另一种对 GPIO 输入进行响应的方式可以使用中断(interruots)(边缘检测(edge detection))。边缘可以是从 HIGH 到 LOW 的过度(下降临界值(falling edge))或从 LOW 到 HIGH 的过度(上升临界值(risin...