본문 바로가기
라즈베리파이_피코_피코 W/마이크로파이썬

03. 라즈베리파이 피코 스위치 제어

by 땜블리 2023. 2. 25.
728x90
반응형
SMALL

안녕하세요 땜블리 입니다.
라즈베리파이 피코 베이직 트레이닝 보드를 이용한 스위치 제어 실습을 진행 하겠습니다.
베이직 트레이닝 보드는 아래에서 확인이 가능합니다.
https://ttcw.tistory.com/4

 

라즈베리파이 피코 베이직 트레이닝보드 구성

라즈베리파이 피코 보드의 펌웨어실습을 위한 베이직 트레이닝보드를 소개 합니다. 현재 네이버 스마트스토어에서 판매가 진행되고 있습니다. 라즈베리파이 피코 베이직 트레이닝 보드 라즈베

ttcw.tistory.com

1) 스위치제어 구동 원리
(1) 동작설명
A, D 접점은 연결 되어있지만 Nomal 상태에서 A, D와 B, C 접점은 연결되어있지 않습니다.  버튼이 눌리는 순간 A, D접점과 B, C접점이 연결 됩니다.

2) 스위치를 이용한 LED 제어

베이직 트레이닝보드에 설계된 스위치 회로

(1) 동작설명
버튼은 눌러 led를 ON, OFF 동작 시킵니다. 
def handle_interrupt(sw) : 스위치가 눌렸을 때 동작을 설정한 함수입니다.(외부 인터럽트처리)
      sw.irq(trigger=Pin.IRQ_FALLING, handler=handle_interrupt) // 스위치를 이벤트 핸들러 에 등록합니다.
      while True: 실제 구동되는 코드입니다. (무한루프)
 
(2) 코드작성
main.py

import SW

SW.py

from machine import Pin
from time import sleep
led1 = Pin(2,Pin.OUT)
led2 = Pin(3,Pin.OUT)
swCount=0
#sw = Pin(22,Pin.IN,Pin.PULL_UP)
#interrupt
def handle_interrupt(sw):
    #bequiet()
    #clear()
    global swCount
    swCount = swCount+1
    if swCount==7:
        swCount=0
    
sw = Pin(22,Pin.IN,Pin.PULL_UP)    
sw.irq(trigger=Pin.IRQ_FALLING, handler=handle_interrupt)

while True:
               
    if swCount==1:
        led1.value(0)
                         
    elif swCount==2:
        led1.value(1)
                     
    elif swCount==3:
        led2.value(0)
                         
    elif swCount==4:
        led2.value(1)
                           
    elif swCount==5:
        led1.value(0)
        led2.value(0)
        
    else:
        led1.value(1)
        led2.value(1)
반응형

(3) 동작결과
버튼을 한번 씩 누를 때 마다 LED 상태가 변합니다.

728x90
반응형
LIST

댓글