arduino电位器调整led灯颜色

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了arduino电位器调整led灯颜色相关的知识,希望对你有一定的参考价值。

参考技术A 在Arduino中,我们只需要不断改变analogWrite的value(0-255),就能改变占空比进而改变LED灯的亮度,实现呼吸灯的效果

38ffad9ecc54bb89a43ca0375dc9148c.png
代码 & 效果

接好线检查一下,然后打开Arduino IDE敲代码

int ledPin = 6;
void setup()
pinMode(ledPin, OUTPUT);


void loop()
for(int i=0; i<255; i++)
analogWrite(ledPin, i);
delay(5);

for(int i=255; i>0; i--)
analogWrite(ledPin, i);
delay(5);

树莓派使用threading函数实现多按键控制LED灯

讲两个知识点。一个是关于上拉和下拉,另一个是关于threading函数。
1.上拉电阻和下拉电阻
上拉就是把一个不确定的信号通过一个电阻连接到高电位,这样在开关断开是信号为高电位,开关合上时信号为低电位。

同理,下拉就是把一个不确定的信号通过一个电阻连接到高电位。
具体可以参考这篇博客

2.threading函数
threading使python的多线程函数。能够帮助我们程序里同时进行多个进程。简单的说就是多个按键的信号输入函数能够同时进行,使得多个按键的信号能够同时输入。

threading.Thread(group=None, target=None, name=None, args=(), kwargs={}, *, daemon=None)

target 表示调用的目标函数。
args 表示目标函数的输入参数,元组形式。
在这里我只需要这两项
另外:group是线程组,默认为None,为以后拓展ThreadGroup类实现而保留;name是该线程名称;kwargs是目标函数的关键字参数字典

电路图
技术图片
其中用到的管脚(BCM模式)为:
技术图片
其他引脚模式可以输入gpio readall查找对照技术图片
线插好后:技术图片

程序部分如下:
首先sudo nano switch_LED.py #创建一个python程序
然后开始编写代码:

#导入函数库
import RPi.GPIO as GPIO
import time
import threading
#将GPIO引脚规则设置为BCM
GPIO.setmode(GPIO.BCM)
#关闭警告,否则程序运行时会发出警告
GPIO.setwarnings(False)
#设置按键为输入、下拉(即在开关断开时为低电平)
GPIO.setup(16,GPIO.IN,pull_up_down = GPIO.PUD_DOWN)
GPIO.setup(20,GPIO.IN,pull_up_down = GPIO.PUD_DOWN)
GPIO.setup(21,GPIO.IN,pull_up_down = GPIO.PUD_DOWN)
#设置LED灯负极为高电平,此时正极为高电平,不亮
GPIO.setup(17,GPIO.OUT,initial=GPIO.HIGH)
GPIO.setup(27,GPIO.OUT,initial=GPIO.HIGH)
GPIO.setup(22,GPIO.OUT,initial=GPIO.HIGH)
#定义LED灯开关函数
def on_switch(LED):
	GPIO.output(LED,GPIO.LOW)	#当负极为低电平时LED灯亮
def off_switch(LED):
	GPIO.output(LED,GPIO.HIGH)
#定义按键控制LED灯函数
def thread(switch,LED):
	try:
		while True:
			if GPIO.input(switch):
				on_switch(LED)
			else:
				off_switch(LED)
			time.sleep(0.1)
	except Exception as e:	#当出现错误时输出错误信息
		print(e)		
#使用多线程函数threading.Thread使三个按键同时工作
x=threading.Thread(target=thread,args=(16,17,))
#注意这里17后面那个逗号一定要,否则不是元组	下同
x.start()
y=threading.Thread(target=thread,args=(20,27,))
y.start()
z=threading.Thread(target=thread,args=(21,22,))
z.start()

ctrl+o保存后输入sudo python switch_LED.py运行程序

最终成果:按哪哪亮,也可以同时亮。
技术图片技术图片

参考资料:
Python3 多线程(https://www.jianshu.com/p/c8c199e7d4e1)
树莓派 按键控制小灯(https://blog.csdn.net/qq_37688204/article/details/103265515)


















以上是关于arduino电位器调整led灯颜色的主要内容,如果未能解决你的问题,请参考以下文章

arduino读取一个block值

arduino四个灯显示不同颜色

Android蓝牙串口通信控制Arduino全彩呼吸灯

arduinoled灯按一下显示应该花样代码

arduino两个led灯交替闪烁

led灯直接接在arduino控制板哪一个管脚