闪亮登场!在树莓派上点亮LED灯的简单详细方法

这篇具有很好参考价值的文章主要介绍了闪亮登场!在树莓派上点亮LED灯的简单详细方法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

树莓派开发与STM32开发的比较

  树莓派和STM32都是常用的嵌入式设备,都可以使用GPIO来控制LED灯。它们的点灯方式和使用的编程语言以及开发环境略有不同:

  • 相同点:

    • 控制LED的原理都是使用GPIO输出高电平或低电平来点亮或关闭LED灯
    • 都需要使用适当的电阻来限制电流,以保护LED和芯片不被烧坏。
    • 在编写控制代码时,都需要设置GPIO口为输出模式,以便灯亮控制。代码都需要类似 GPIO.setup(led_pin, GPIO.OUT) 这样的设置。
  • 差异:

    • 使用树莓派点灯时,可以不用初始化硬件;而STM32点灯时需要初始化的。
    • 树莓派使用的是Linux操作系统,可以用Python等语言在操作系统层面上编写代码,对于开发者来说较为友好,使用编码时依赖的库也较多,开发速度较快。而STM32一般使用 C/C++编程,需要对硬件有一定的理解。
    • 树莓派是一种基于Linux操作系统的开发板,处理能力较为强大,支持较多的软件,可用做很多类似于PC的应用(比如网络通讯、控制、通信等)或某些需要比较高的软件算力运算的应用。而STM32更侧重于与其它电子器件集成、实现控制及数据处理和物联网等,处理能力没有树莓派高。
    • 对于单一的应用领域,STM32芯片电路更为小巧,在成本和功耗两方面的考虑下更加适合于它的应用领域。而树莓派在继承了嵌入式操作与控制的特点后,又兼具了计算机的行为,因而方便开发设计者在树莓派上进行嵌入式和PC操作系统上的软件开发,且可实现具有很大的灵活性。

原理图以及树莓派引脚展示

  • 在 树莓派官网 可查找到下面原理图(已经模拟接上LED):

闪亮登场!在树莓派上点亮LED灯的简单详细方法

  • 同样可以在 树莓派官网 可查找到引脚的对照表:

闪亮登场!在树莓派上点亮LED灯的简单详细方法

(注:本表格适用于各版本,并且兼容26Pin的树莓派B,树莓派B为26Pin,其引脚对应于上表的前26Pin。)
  这里小编给个建议:开发前最好去看看这个表,因为树莓派在不同编码方式下拥有不用的引脚分配方式。



  通过引脚对照表知:不同的编码方式所对应的引脚是不一样的,例如:在wPi编码格式下引脚8,而BCM编码格式下引脚就改成2,实际的物理引脚就变成4。

  如果大家不能够确定上述两图是否与自己的树莓派引脚是否匹配,也可在命令行中输入gpio readall。若大家第一次使用gpio命令可能会报错bash: gpio: command not found,这个是因为树莓派4自带的wiringPi 库默认是 2.50 ,无法映射到 gpio ,所以需要更新到 2.52 才能与树莓派映射。zero2w 则需要 2.60 。我们可以在命令行中输入下面两台命令解决这个问题:

# 下载 2.52 版本的 wiringPi
wget https://project-downloads.drogon.net/wiringpi-latest.deb

# 安装
sudo dpkg -i wiringpi-latest.deb


  然后再输入命令gpio readall即可获得下面结果:

闪亮登场!在树莓派上点亮LED灯的简单详细方法

  通过上述三图,不难看出,当树莓派的物理引脚为16时,,BCM编码方式下该引脚为23,wPi编码方式下期引脚为4。

点灯步骤

  • 我们可以使用RPi.GPIO这个库来控制GPIO,导入RPi.GPIO库:
import RPi.GPI0 as GPIO
  • 如果此时运行代出现报错,通过以下命令即可安装:
pip3 install RPi.GPIO
  • 在导入模块后要做的第—件事就是确定所采用的GPIO引脚编码方式:
GPIO.setmode(GPIO.BOARD)

  如果大家想要换一种编码方式,那么只需要将GPIO.setup前两句换成下面两句即可实现相同的功能:

# 设置编码方式
GPIO.setmode(GPIO.BOARD)
# 设置引脚
GPIO_Pin = 16

  (注:使用该编码方式的好处是:树莓派各版本的BOARD编码方式是相同的,所以就算更换了树莓派版本,我们也无需修改代码。)

  • 确定完编码方式之后,我们就要设置所用到的GPIO引脚(先设置,再使用):
#将引脚设置为输入模式
GPIO.setup (GPIO_Pin,GPIO.IN)

#将引脚设置为输出模式
GPI0.setup (GPIO_Pin,GPIO.OUT)

  • 设置完之后,我们就可以通过GPIO.input和GPIO.output来接收或者发送高低电平:
#通过GPIO.input方法来判断接收的是高电平还是低电平
if GPIO.input(num) == GPIO.HIGH:
	print(1)
else:
    print(0)

#通过GPI0.output方法来发送高低电平
GPI0.output(num,GPIO.HIGH)
GPI0.output(num,GPIO.LOw)
  • 使用完GPIO引脚后,我们要调用GPIO.cleanup()来将引脚释放掉:
#释放GPIO引脚资源
GPIo.cleanup ()


  • 完整源码:

  函数ledTest实现LED间隔1s闪烁。

def ledTest():
    """ 在树莓派上制作LED闪烁  时间间隔为1s """
    # 设置编码方式
    GPIO.setmode(GPIO.BCM)
    # 设置引脚
    GPIO_Pin = 23

    # 设置GPIO引脚
    GPIO.setup(GPIO_Pin, GPIO.OUT)

    while True:
        # 用16号引脚输出一个高电平,灯亮
        GPIO.output(GPIO_Pin, GPIO.HIGH)
        # 等1秒
        time.sleep(1)

        # 用16号引脚输出一个低电平,灯灭
        GPIO.output(GPIO_Pin, GPIO.LOW)
        # 等1秒
        time.sleep(1)

    # 使用结束,释放引脚
    GPIO.cleanup()

读取树莓派布局

如果大家想要获取树莓派更多布局信息可以输入命令pinout,其会给出结果:

  • PCB布局 闪亮登场!在树莓派上点亮LED灯的简单详细方法
  • 一些说明

闪亮登场!在树莓派上点亮LED灯的简单详细方法

  • 对外开放的引脚

闪亮登场!在树莓派上点亮LED灯的简单详细方法文章来源地址https://www.toymoban.com/news/detail-496615.html

到了这里,关于闪亮登场!在树莓派上点亮LED灯的简单详细方法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 驱动控制STM32LED灯的两秒,亮灭

    2024年02月12日
    浏览(28)
  • 51单片机点亮LED灯以及实现2盏LED灯的交替闪烁

    点亮LED灯,根据单片机原理图 将LED灯1和LED灯2介入单片机的口设为低电平即可 代码如下: #include “reg52.h” sbit led1= P3^7; void main() { led1 = 0;//给led1一个低电平,点亮 } 结果图: 图中有一盏LED灯为我这个51单片机自带的电源接通灯,被代码点亮的只有一盏 实现2盏LED灯的交替闪烁

    2024年02月07日
    浏览(32)
  • STM32——led灯的点亮+闪烁+流水灯的实现

    1.原理 其方式有两种一种是寄存器方式一种是库函数方式,但其原理都是一样的。如原理图所示,与LED相连接的IO口置低电平即可点亮led灯 2.寄存器方式–代码 3.库函数–代码 (1)led.c:函数led_config() (2)main.c调用led_config 4.结果展示 原理:让连接的IO口先置零再置1可以使其先亮

    2024年02月08日
    浏览(42)
  • 串口通信(stm32F4)——通过串口助手发送led on或者led off控制LED灯的亮灭

    通过串口助手发送led on来点亮LED灯,发送led off来关闭LED灯(这里是LED1,其端口是GPIOF,引脚是PIN10,串口是USART1,其端口是GPIOA,引脚是PIN9、PIN10,一个用来收数据,一个用来发收据) 初始化LED; 初始化串口; 编写接收数据中断函数; 编写空闲中断函数。 2.1 初始化LED 2.2 初

    2024年02月16日
    浏览(42)
  • 9、基于51单片机手机APP蓝牙调试助手控制四个LED灯的开关设计

    毕设帮助、开题指导、技术解答(有偿)见文末。 目录 摘要 一、硬件方案 二、设计功能 三、实物图 四、原理图 五、PCB图 六、Proteus仿真 七、程序源码 八、资料包括 随着社会的发展人们对生活质量的要求越来越高,照明在能耗中所占的比例日益增加,因而照明工能也日显重

    2024年02月12日
    浏览(34)
  • 基于STM32F103ZET6单片机驱动SM16306SJ控制8个LED灯的系统设计

    1.设计要求:使用stm32f103zet6精英开发板  采用SM16306SJ驱动8个LED灯。 2.原理图 3.代码 4.实物效果图 备注:1 硬件上有一个LED灯坏了,所以才亮了7个LED灯            2 一个SM16306SJ最多可以驱动16个LED灯            3 SM16306SJ跟MBI5020程序通用

    2024年04月17日
    浏览(40)
  • STM32简单呼吸灯的制作

    物联网应用技术2班 李俊运 20210320018 目的: 实现呼吸灯。逐渐亮,逐渐灭。 准备工作 1.首先我们需要准备32的最小系统板或者开发板。 2.准备一个LED灯(如果使用板子上的灯来实现则不需要,下面我是使用最小系统板上的LED灯来实现)。 3.若干杜邦线。 4.软件方面的准备,我

    2024年02月08日
    浏览(38)
  • 51单片机点亮LED的5中方法(由简单到困难)

    本文将介绍用各种不同的方法和算法点亮51单片机LED的程序,包括详细的注释和说明。 以上代码使用了P1口的第0位控制LED的亮灭。当LED=0时,输出低电平,LED亮;当LED=1时,输出高电平,LED灭。 以上代码使用了延时函数和定时器来控制LED的闪烁。在这段代码中,我们定义了一

    2024年02月09日
    浏览(27)
  • 树莓派夜视摄像头拍摄红外LED灯

            NoIR相机是一种特殊类型的红外摄像头,其名称来源于\\\"No Infrared\\\"的缩写。与普通的彩色摄像头不同,NoIR相机具备红外摄影和低光条件下摄影的能力。         一般摄像头能够感知可见光,并用于普通摄影和视频拍摄。而NoIR相机则在设计上去除了红外滤光片,使

    2024年03月25日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包