三色灯及蜂鸣器

一、实验目的

三色LED灯及蜂鸣器测试。

二、实验材料

2.1、LED灯的电路

蜂鸣器和led灯

2.2、硬件

1)树莓派3b+ 主板  1块

2)扩展板                  1块

3)数据线                若干

4)三色led灯板        1个

三、硬件连接

3.1、树莓派扩展板图

树莓派扩展板

注释含义:

1)序号,1,2,3,4.。。。。。,是对应J1的引脚序号,用这个序号可以在树莓派4上使用。

2)注释:每一个引脚对应的功能含义。

3)插针是每5个一组,横着联通,含义相同。

3.2、线路连接方法

1)三色灯板的VCC(电源+)连接到扩展的3.3V(1脚)上。

2)三色灯板 的Red(红色)连接到扩展的IO0(11脚)上。

3)三色灯板 的Greed(黄)连接到扩展的GPIO1(12脚)上。

4)三色灯板 的Blue(蓝色)连接到扩展的IO2(13脚)上。

四、电路及器件分析

4.1、

五、软件代码分析

5.1、软件配置

5.2、python 代码

#!/usr/bin/env python

import RPi.GPIO as GPIO

import time

colors = [0xFF0000, 0x00FF00, 0x0000FF, 0xFFFF00, 0xFF00FF, 0x00FFFF]

R = 11

G = 12

B = 13

def setup(Rpin, Gpin, Bpin):

global pins

global p_R, p_G, p_B

pins = {'pin_R': Rpin, 'pin_G': Gpin, 'pin_B': Bpin}

GPIO.setmode(GPIO.BOARD)      # Numbers GPIOs by physical location

for i in pins:

GPIO.setup(pins[i], GPIO.OUT)  # Set pins' mode is output

GPIO.output(pins[i], GPIO.HIGH) # Set pins to high(+3.3V) to off led

p_R = GPIO.PWM(pins['pin_R'], 2000)  # set Frequece to 2KHz

p_G = GPIO.PWM(pins['pin_G'], 1999)

p_B = GPIO.PWM(pins['pin_B'], 5000)

p_R.start(100)      # Initial duty Cycle = 0(leds off)

p_G.start(100)

p_B.start(100)

def map(x, in_min, in_max, out_min, out_max):

return (x - in_min) * (out_max - out_min) / (in_max - in_min) + out_min

def off():

for i in pins:

GPIO.output(pins[i], GPIO.HIGH)    # Turn off all leds

def setColor(col):  # For example : col = 0x112233

R_val = (col & 0xff0000) >> 16

G_val = (col & 0x00ff00) >> 8

B_val = (col & 0x0000ff) >> 0

R_val = map(R_val, 0, 255, 0, 100)

G_val = map(G_val, 0, 255, 0, 100)

B_val = map(B_val, 0, 255, 0, 100)

p_R.ChangeDutyCycle(100-R_val)    # Change duty cycle

p_G.ChangeDutyCycle(100-G_val)

p_B.ChangeDutyCycle(100-B_val)

def loop():

while True:

for col in colors:

setColor(col)

time.sleep(1)

def destroy():

p_R.stop()

p_G.stop()

p_B.stop()

off()

GPIO.cleanup()

if __name__ == "__main__":

try:

setup(R, G, B)

loop()

except KeyboardInterrupt:

destroy()

六、联系方式:

6.1、淘宝链接

https://shop33987716.taobao.com/shop/view_shop.htm?tracelog=twddp&user_number_id=38189558

6.2、  QQ群:

671854013(艺达的小车)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值