- 색상 참고 

 

 

- 스위치 누르면  RGB LED색깔 바꾸기

(nputIO == False and count== 0 조건에서 count가 +1되는 순간 그 다음 조건문 실행이 너무 빨라서 

time.sleep(1)을 추가하였음.)

import RPi.GPIO as GPIO
import time

GPIO.setmode(GPIO.BCM) #GPIO.BOARD
GPIO.setwarnings(False)

BUTTON= 21
LED_R = 13
LED_G = 19
LED_B = 26

GPIO.setup(BUTTON, GPIO.IN)
GPIO.setup(LED_R, GPIO.OUT)
GPIO.setup(LED_G, GPIO.OUT)
GPIO.setup(LED_B, GPIO.OUT)

count = 0

try:
    while True:
        inputIO = GPIO.input(BUTTON)
        
        if  inputIO == False and count== 0:
            print("RED")
            GPIO.output(LED_R, GPIO.HIGH)
            GPIO.output(LED_G, GPIO.LOW)
            GPIO.output(LED_B, GPIO.LOW)
            time.sleep(1)
            count +=1
        
        elif inputIO == False and count== 1:
             print("GREEN")
             GPIO.output(LED_R, GPIO.LOW)
             GPIO.output(LED_G, GPIO.HIGH)
             GPIO.output(LED_B, GPIO.LOW)
             time.sleep(1)
             count +=1
             
        elif inputIO == False and count== 2:
             print("BLUE")
             GPIO.output(LED_R, GPIO.LOW)
             GPIO.output(LED_G, GPIO.LOW)
             GPIO.output(LED_B, GPIO.HIGH)
             time.sleep(1)
             count +=1
             
        elif inputIO == False and count== 3:
             print("YELLOW")
             GPIO.output(LED_R, GPIO.HIGH)
             GPIO.output(LED_G, GPIO.HIGH)
             GPIO.output(LED_B, GPIO.LOW)
             time.sleep(1)
             count +=1
             
        elif inputIO == False and count== 4:
             print("MAGENTA")
             GPIO.output(LED_R, GPIO.HIGH)
             GPIO.output(LED_G, GPIO.LOW)
             GPIO.output(LED_B, GPIO.HIGH)
             time.sleep(1)
             count +=1
        
        elif inputIO == False and count== 5:
             print("CYAN")
             GPIO.output(LED_R, GPIO.LOW)
             GPIO.output(LED_G, GPIO.HIGH)
             GPIO.output(LED_B, GPIO.HIGH)
             time.sleep(1)
             count +=1
        
        elif inputIO == False and count== 6:
             print("WHITE")
             GPIO.output(LED_R, GPIO.HIGH)
             GPIO.output(LED_G, GPIO.HIGH)
             GPIO.output(LED_B, GPIO.HIGH)
             time.sleep(1)
             count +=1
    
        else:
            print("NO LED")
            GPIO.output(LED_R, GPIO.LOW)
            GPIO.output(LED_G, GPIO.LOW)
            GPIO.output(LED_B, GPIO.LOW)     

except KeyboardInterrupt:
    GPIO.output(LED_R, GPIO.LOW)
    GPIO.output(LED_G, GPIO.LOW)
    GPIO.output(LED_B, GPIO.LOW)
    GPIO.cleanup()

 

 

-위의 코드 반복실행

import RPi.GPIO as GPIO
import time

GPIO.setmode(GPIO.BCM) #GPIO.BOARD
GPIO.setwarnings(False)

BUTTON= 4
LED_R = 5
LED_G = 6
LED_B = 13

GPIO.setup(BUTTON, GPIO.IN)
GPIO.setup(LED_R, GPIO.OUT)
GPIO.setup(LED_G, GPIO.OUT)
GPIO.setup(LED_B, GPIO.OUT)

count = 0

try:
    while True:
        inputIO = GPIO.input(BUTTON)
        
        if  inputIO == True and count== 0:
            print("RED")
            GPIO.output(LED_R, GPIO.HIGH)
            GPIO.output(LED_G, GPIO.LOW)
            GPIO.output(LED_B, GPIO.LOW)
            time.sleep(0.2)
            count +=1
        
        elif inputIO == True and count== 1:
             print("GREEN")
             GPIO.output(LED_R, GPIO.LOW)
             GPIO.output(LED_G, GPIO.HIGH)
             GPIO.output(LED_B, GPIO.LOW)
             time.sleep(0.2)
             count +=1
             
        elif inputIO == True and count== 2:
             print("BLUE")
             GPIO.output(LED_R, GPIO.LOW)
             GPIO.output(LED_G, GPIO.LOW)
             GPIO.output(LED_B, GPIO.HIGH)
             time.sleep(0.2)
             count +=1
             
        elif inputIO == True and count== 3:
             print("YELLOW")
             GPIO.output(LED_R, GPIO.HIGH)
             GPIO.output(LED_G, GPIO.HIGH)
             GPIO.output(LED_B, GPIO.LOW)
             time.sleep(0.2)
             count +=1
             
        elif inputIO == True and count== 4:
             print("MAGENTA")
             GPIO.output(LED_R, GPIO.HIGH)
             GPIO.output(LED_G, GPIO.LOW)
             GPIO.output(LED_B, GPIO.HIGH)
             time.sleep(0.2)
             count +=1
        
        elif inputIO == True and count== 5:
             print("CYAN")
             GPIO.output(LED_R, GPIO.LOW)
             GPIO.output(LED_G, GPIO.HIGH)
             GPIO.output(LED_B, GPIO.HIGH)
             time.sleep(0.2)
             count +=1
        
        elif inputIO == True and count== 6:
             print("WHITE")
             GPIO.output(LED_R, GPIO.HIGH)
             GPIO.output(LED_G, GPIO.HIGH)
             GPIO.output(LED_B, GPIO.HIGH)
             time.sleep(0.2)
             count = 0
    
        else:
           
            GPIO.output(LED_R, GPIO.LOW)
            GPIO.output(LED_G, GPIO.LOW)
            GPIO.output(LED_B, GPIO.LOW)     

except KeyboardInterrupt:
    GPIO.output(LED_R, GPIO.LOW)
    GPIO.output(LED_G, GPIO.LOW)
    GPIO.output(LED_B, GPIO.LOW)
    GPIO.cleanup()

+ Recent posts