본문 바로가기

메이커 프로젝트/아두이노 +

[젯슨나노] gpio_led control

GPIO 모듈을 활용하여 LED 제어해보자.

 

GPIO은(general-purpose input/output, GPIO)는 다용도 입출력이란 뜻으로 입력과 출력을 제어할 수 있다. 

 

핀 번호는 BCM 모드로 설정한다. 

 

핀 번호 11번이 BCM 핀번호로는 17번: 컬러 RED 연결. 

핀 번호 13번이 BCM 핀번호로는 27번: 컬러 BLUE를 연결.

핀 번호 15번이 BCM 핀번호로는 22번: 컬러 GREEN를 연결.

마지막으로 그라운드(G)핀은 0V에 연결.

 

 

각각의 핀을 출력(OUTPUT)으로 설정하고, 각 핀의 출력을 LOW와 HIGH를 1초에 한번씩 번갈아 가며 LED ON/OFF 시킬 수 있도록 설정한다.

 

 

import RPi.GPIO as GPIO
from time import sleep

#       R   G   B
pins = [17, 27, 22]

GPIO.setmode(GPIO.BCM)
GPIO.setup(pins[0], GPIO.OUT)
GPIO.setup(pins[1], GPIO.OUT)
GPIO.setup(pins[2], GPIO.OUT)

while True:

    GPIO.output(pins[0], GPIO.LOW)
    GPIO.output(pins[1], GPIO.LOW)
    GPIO.output(pins[2], GPIO.LOW)
    sleep(1)
    GPIO.output(pins[0], GPIO.HIGH)
    GPIO.output(pins[1], GPIO.HIGH)
    GPIO.output(pins[2], GPIO.HIGH)
    sleep(1)

 

 

 

 

다음으로 R,G,B 값을 LOW, HIGH를 바꾸어 가며 RED, BLUE, GREEN을 만들어 점멸하도록 설정한다. 

import RPi.GPIO as GPIO
from time import sleep

#       R   G   B
pins = [17, 27, 22]

GPIO.setmode(GPIO.BCM)
GPIO.setup(pins[0], GPIO.OUT)
GPIO.setup(pins[1], GPIO.OUT)
GPIO.setup(pins[2], GPIO.OUT)

while True:
    # RED
    GPIO.output(pins[0], GPIO.LOW)
    GPIO.output(pins[1], GPIO.HIGH)
    GPIO.output(pins[2], GPIO.HIGH)
    sleep(1)
    # BLUE
    GPIO.output(pins[0], GPIO.HIGH)
    GPIO.output(pins[1], GPIO.LOW)
    GPIO.output(pins[2], GPIO.HIGH)
    sleep(1)
    # GREEN
    GPIO.output(pins[0], GPIO.HIGH)
    GPIO.output(pins[1], GPIO.HIGH)
    GPIO.output(pins[2], GPIO.LOW)
    sleep(1)

도문선 부장님의 1개짜리 led 깜빡이기

 

from Jetson.GPIO.gpio import HIGH
import RPi.GPIO as GPIO
import time

output_pin = 12

def main():
    GPIO.setmode(GPIO.BCM)
    GPIO.setup(output_pin, GPIO.OUT, initial=GPIO.HIGH)

    print("Starting demo now! Press CTRL+C to exit")
    curr_value = GPIO.HIGH
    try:
        while True:
            time.sleep(1)

            print("Outputting{} to pin{}".format(curr_value, output_pin))
            GPIO.output(output_pin, curr_value)
            curr_value ^= GPIO.HIGH

    finally:
        GPIO.cleanup()

if __name__ == '__main__':
    main()

 

 

@현욱