728x90
반응형
SMALL
안녕하세요 땜블리 입니다.
라즈베리파이 피코 베이직 트레이닝 보드를 이용한 카운터 만들기 실습을 진행 하겠습니다.
베이직 트레이닝 보드는 아래에서 확인이 가능합니다.
카운터기는 일정한 기간 동안 물건이나 사람 등의 수를 세는 도구입니다.
주로 공장, 대규모 스포츠 경기, 상점 , 놀이공원 등에서 이용됩니다.
일반적으로 카운터기는 물건이나 사람이 지나갈 때마다 기계적인 카운팅이 이루어지며, 그 결과가 숫자로 나타납니다.
카운터기는 기계식, 전자식, 디지털식 등 다양한 종류가 있습니다.
기본적으로 0부터 시작하여 발생하는 횟수를 측정하여 기록합니다.
이 카운터기를 베이직 트레이닝 보드를 이용하여 만들어 보겠습니다.
각 사용방법은 아래 링크를 이용하시면 됩니다.
버튼 사용방법은 아래 사이트를 확인하시며면 됩니다.
OLED 사용방법은 아래 사이트를 확인 하시면 됩니다.
다음은 프로젝트 실습 구성도입니다.
아주 간단하게 아래와 같이 버튼을 이용하여 카운터와 초기화를 하며 OLED로 디스플레이 해줍니다.
다음은 위 구성도를 구현하게 될 메인 소스 입니다.
code.py
import time
import board
import analogio
import digitalio
import simpleio
import adafruit_ssd1306
import busio
# i2c설정
i2c = busio.I2C(board.GP15, board.GP14)
oled = adafruit_ssd1306.SSD1306_I2C(128, 64, i2c, addr=0x3c)
# 초기화
oled.fill(1)
oled.show()
time.sleep(1)
oled.fill(0)
oled.show()
button = digitalio.DigitalInOut(board.GP22)
button.direction = digitalio.Direction.INPUT
button.pull = digitalio.Pull.UP
counter = 0
start_time = 0
while True:
if not button.value:
# button is pressed, start counting time
start_time = time.monotonic()
while not button.value:
# keep waiting while the button is held down
pass
# button was released, calculate duration of press
press_duration = time.monotonic() - start_time
if press_duration < 0.5:
print("Short press")
counter += 1
oled.fill(0)
oled.text(f"Counter: {counter}", 0, 0,1)
oled.show()
else:
print("Long press")
counter = 0
oled.fill(0)
oled.text("Counter initialized", 0, 0,1)
oled.show()
다은은 위 코드를 이용한 결과 영상입니다.
반응형
728x90
반응형
LIST
'프로젝트' 카테고리의 다른 글
Arduino와 DHT11 온/습도 센서 제어 (0) | 2023.06.19 |
---|---|
라즈베리파이 피코와 베이스 보드를 이용한 타이머 구동 (0) | 2023.04.20 |
IoT 모니터링 adafruit IO 클라우드 서비스 이용 (0) | 2023.04.18 |
IoT 조명 프로젝트 (0) | 2023.03.23 |
IoT 콘센트 & 스위치 (0) | 2023.03.22 |
댓글