树莓派GPIO通过PWM来控制RGB彩色LED灯,可以显示任何我们想要的颜色。

RGB模块简介

这个RGB彩色LED里其实有3个灯,分别是红灯、绿灯和蓝灯。控制这三个灯分别发出不同强度的光,混合起来就能发出各种颜色的光了。 LED灯上的4根引脚分别是GND,R,G,B。 GND需要接地。我们把它连到树莓派的电源地上。 R,G,B分别是红绿蓝灯的正极接口。我们把它们连接到树莓派的GPIO口上。

RGB彩色LED灯模块.jpg

硬件连接

R接到树莓派GPIO18

G连接树莓派GPIO15

B连接树莓派GPIO14

其中GPIO编号方式为BCM编号方式,具体请看

电路连接原理图如下:

树莓派连接RGB彩色LED灯原理图

程序代码

新建RGB_LED.py文件,输入以下代码:

 
#!/usr/bin/env python
# encoding: utf-8 import RPi.GPIO
import time R,G,B=18,15,14 RPi.GPIO.setmode(RPi.GPIO.BCM) RPi.GPIO.setup(R, RPi.GPIO.OUT)
RPi.GPIO.setup(G, RPi.GPIO.OUT)
RPi.GPIO.setup(B, RPi.GPIO.OUT) pwmR = RPi.GPIO.PWM(R, 50)
pwmG = RPi.GPIO.PWM(G, 50)
pwmB = RPi.GPIO.PWM(B, 50) pwmR.start(0)
pwmG.start(0)
pwmB.start(0) try: t = 1
while True:
# 红色灯全亮,蓝灯,绿灯全暗(红色)
pwmR.ChangeDutyCycle(100)
pwmG.ChangeDutyCycle(0)
pwmB.ChangeDutyCycle(0)
time.sleep(t) # 绿色灯全亮,红灯,蓝灯全暗(绿色)
pwmR.ChangeDutyCycle(0)
pwmG.ChangeDutyCycle(100)
pwmB.ChangeDutyCycle(0)
time.sleep(t) # 蓝色灯全亮,红灯,绿灯全暗(蓝色)
pwmR.ChangeDutyCycle(0)
pwmG.ChangeDutyCycle(0)
pwmB.ChangeDutyCycle(100)
time.sleep(t) # 红灯,绿灯全亮,蓝灯全暗(黄色)
pwmR.ChangeDutyCycle(100)
pwmG.ChangeDutyCycle(100)
pwmB.ChangeDutyCycle(0)
time.sleep(t) # 红灯,蓝灯全亮,绿灯全暗(洋红色)
pwmR.ChangeDutyCycle(100)
pwmG.ChangeDutyCycle(0)
pwmB.ChangeDutyCycle(100)
time.sleep(t) # 绿灯,蓝灯全亮,红灯全暗(青色)
pwmR.ChangeDutyCycle(0)
pwmG.ChangeDutyCycle(100)
pwmB.ChangeDutyCycle(100)
time.sleep(t) # 红灯,绿灯,蓝灯全亮(白色)
pwmR.ChangeDutyCycle(100)
pwmG.ChangeDutyCycle(100)
pwmB.ChangeDutyCycle(100)
time.sleep(t) except KeyboardInterrupt:
pass pwmR.stop()
pwmG.stop()
pwmB.stop() RPi.GPIO.cleanup()
Python

然后,运行这个py脚本,就可以看到RGBLED灯在7种颜色间切换。

原创文章,转载请注明: 转载自科技爱好者博客

树莓派GPIO控制RGB彩色LED灯的更多相关文章

  1. Ardunio控制RGB的LED灯显示彩虹渐变色.

    由于我使用的是共阴极的RGB LED,如果你的是共阳极的,接线的时候要注意一下. 其他没什么不同 //定义RGB色彩的输出I/O ; ; ; //标记颜色变化的方式,增加值还是减小值 bool red ...

  2. nodejs和树莓派开发以及点亮RGB的LED灯代码

    前段时间集团举行前端IOT比赛,借此机会熟悉了树莓派相关的东西,特此记录一些相关的文档和开发指南. 先介绍一些树莓派的入门教程 阮一峰的树莓派入门 微雪电子-树莓派硬件中文官网 ssh链接树莓派 ss ...

  3. 树莓派GPIO控制LED彩灯

    树莓派使用GPIO接口来控制LED灯,自制五彩炫光的节日彩灯. 1.硬件准备 a. 树莓派(Raspberry Pi)一个 b. 彩色RGB二极管 c. 杜邦线 d. 5V电源引脚 以上所有零件均可在 ...

  4. 灵动微电子ARM Cortex M0 MM32F0010 GPIO 的配置驱动LED灯

    灵动微电子ARM Cortex M0 MM32F0010 GPIO的配置 目录: 1.前言 2.学习方法简要说明 3.要点提示 4.注意事项 5.MM32F0010系统时钟的配置 6.MM32F001 ...

  5. STM32 用c语言控制4个LED灯从左向右无限流动

    在用c语言写LED流水灯的前提条件是配置好其他环境,这里我就不说环境了, 想让LED灯无限循环时,首先要想到的是无限循环函数,我这里利用的是for函数 无限循环. #include "stm ...

  6. (一)stm32f103~~GPIO基本操作一(led灯)

    GPIO基本操作,如果更换IO口只需要更换端口设置即可 led.h文件 #ifndef __LED_H #ifndef __LED_H #define __LED_H #include "s ...

  7. 定时器控制单只LED灯

    点击查看代码 #include <reg51.h> #define uchar unsigned char #define uint unsigned int sbit LED=P0^0; ...

  8. 电位器控制两个 LED 灯交替闪烁

    电路图: 布局:

  9. 树莓派Zero W GPIO控制

    作者:陈拓 chentuo@ms.xab.ac.cn 2018.06.09/2018.07.05 0.  概述 本文介绍树莓派 Zero W的GPIO控制,并用LED看效果. 0.1 树莓派GPIO编 ...

随机推荐

  1. 使用object_box遇到的崩溃 java.lang.UnsatisfiedLinkError:

    java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/ ...

  2. Linux文件系统_每一个的意义

    2017年1月10日, 星期二 Linux文件系统_每一个的意义 rootfs: 根文件系统 FHS:Linux /boot: 系统启动相关的文件,如内核.initrd,以及grub(bootload ...

  3. angularJS $routeProvider

    O'Reilly书上的伪代码 var someModule = angular.module('someModule',[...module dependencies]); someModule.co ...

  4. spring-boot Test for Controller

    spring-boot  controller 测试示例: 单元测试类 package com.zzhi; import com.fasterxml.jackson.databind.ObjectMa ...

  5. Druid.io启用SQL支持

    Druid.io的SQL功能虽然在试验阶段,但是也支持了大部分的功能,而且还可以通过 Avatica JDBC查看请求的json,有助于我们理解Druid.io的语法.Druid.io有个比较坑的是, ...

  6. Multidimensional Queries(二进制枚举+线段树+Educational Codeforces Round 56 (Rated for Div. 2))

    题目链接: https://codeforces.com/contest/1093/problem/G 题目: 题意: 在k维空间中有n个点,每次给你两种操作,一种是将某一个点的坐标改为另一个坐标,一 ...

  7. 9、StringBuffer和StringBuilder

    StringBuffer简介 StringBuffer是一个字符串缓冲区,如果需要频繁的对字符串进行拼接时,建议使用StringBuffer.工作原理StringBuffer的底层是char数组,如果 ...

  8. Entity Framework Context上下文管理(CallContext 数据槽)

    Context上下文管理 Q1:脏数据 Q2:一次逻辑操作中,会多次访问数据库,增加了数据库服务器的压力 >在一次逻辑操作中实现上下文实例唯一 方法一:单例模式:内存的爆炸式增长 在整个运行期间 ...

  9. js 禁用右键菜单、拖拽、选中、复制

    //禁用拖拽 document.ondragstart = function () { return false; }; /** * 禁用右键菜单 */ document.oncontextmenu ...

  10. Spring4笔记9--Spring的事务管理(AOP应用的例子)

    Spring的事务管理: 事务原本是数据库中的概念,在 Dao 层.但一般情况下,需要将事务提升到业务层,即 Service 层.这样做是为了能够使用事务的特性来管理具体的业务.   在 Spring ...