풀 컬러 LED
2472 단어 RaspberryPi
환경 정보
의 목적
반고정 저항을 이용하여 저항치에 따라 발광 LED의 색깔을 바꾼다.이때 PWM을 사용하여 LED로 전송되는 전압을 시뮬레이션하여 LED의 R(빨간색), G(녹색), B(파란색) 중 각 INPUT를 조정한다.
용어 설명
PWM
PWM은 Pulse Width Modulation 펄스 변조를 위한 신호 변조 방법입니다.전압의 상승과 하락 간격을 자세하게 조정함으로써 전압을 조정하는 방법을 시뮬레이션하다.
사전 정보
RGB 풀컬러 LED는 최장 단자가 양극(+)에 연결되는 경우도 있고 음극(-)에 연결되는 경우도 있다.상점에서 살 때 컨트롤 모델이 없어서 삽입해 봤는데 양극 타입이에요.
프로그램의 코드는 양극에서 운행한다.음극이라면 점공비를 100에서 빼면 된다.
전기회로
나는 어떻게 전자방식으로 회로도를 묘사해야 할지 몰라서 사진을 사용한다
MCP3008
MCP 3008 채널 8개를 갖춘 10bit A/D 변환기
데이터 테이블
절차.
# !/usr/bin/env python
# -*- coding: utf-8 -*-
import RPi.GPIO as GPIO
from time import sleep
import spidev
import subprocess
def readacd(ch):
resp = spi.xfer2([0x1,(8+ch)<<4, 0x00])
value = ((resp[1]&3)<<8) + resp[2]
return value
GPIO.setmode(GPIO.BCM)
LEDIN=25
LEDIN2=24
LEDIN3=23
GPIO.setup(LEDIN, GPIO.OUT)
GPIO.setup(LEDIN2, GPIO.OUT)
GPIO.setup(LEDIN3, GPIO.OUT)
p0=GPIO.PWM(LEDIN, 50)
p1=GPIO.PWM(LEDIN2, 50)
p2=GPIO.PWM(LEDIN3, 50)
p0.start(0)
p1.start(0)
p2.start(0)
# opne SPI device 0.0
spi = spidev.SpiDev()
spi.open(0 , 0)
try:
while True:
input0 = readacd(0)
input1 = readacd(1)
input2 = readacd(2)
duty0 = 100 - (input0*100/1023)
duty1 = 100 - (input1*100/1023)
duty2 = 100 - (input2*100/1023)
p0.ChangeDutyCycle(duty0)
p1.ChangeDutyCycle(duty1)
p2.ChangeDutyCycle(duty2)
print("duty0:{:8}".format(duty0)+","+"duty1:{:8}".format(duty1)+","+"duty2:{:8}".format(duty2))
sleep(1)
except KeyboardInterrupt:
pass
p0.stop()
p1.stop()
p2.stop()
spi.close()
GPIO.cleanup()
readrcd에서 채널을 매개 변수에 넘깁니다.각 채널의 값을 얻기 위해 매개 변수의 값을 변경하면서 데이터를 얻는다.결과영화 필름.
Ctrl+C가 끝나면 Typereror가 나오는데 해결 방법을 몰라요.누가 나에게 알려줄 수 있겠는가
Reference
이 문제에 관하여(풀 컬러 LED), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/yozawa/items/1153641910001830f285텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)