페이지 선택
Generic selectors
Exact matches only
Search in title
Search in content
Post Type Selectors
Search in pages

FT232H GPIO Control with PC

 

import board
import digitalio
import time

def gpio_output(pin_name, interval=1):
"""
FT232H GPIO 핀을 출력으로 설정하고 주기적으로 ON/OFF 전환.

Args:
pin_name (str): GPIO 핀 이름 (예: 'C0', 'C1').
interval (float): LED ON/OFF 간격 (초).
"""
pin = getattr(board, pin_name) # 핀 이름을 동적으로 가져옴
led = digitalio.DigitalInOut(pin)
led.direction = digitalio.Direction.OUTPUT

print(f"GPIO {pin_name} 설정 완료. 출력으로 동작 중...")
try:
while True:
led.value = True # GPIO 핀 HIGH
print(f"GPIO {pin_name} HIGH (ON)")
time.sleep(interval)
led.value = False # GPIO 핀 LOW
print(f"GPIO {pin_name} LOW (OFF)")
time.sleep(interval)
except KeyboardInterrupt:
print("출력 동작 중단.")
finally:
led.value = False
print(f"GPIO {pin_name} 초기화 완료.")

def gpio_input(pin_name):
"""
FT232H GPIO 핀을 입력으로 설정하고 외부 풀업/풀다운을 사용하여 값 읽기.

Args:
pin_name (str): GPIO 핀 이름 (예: 'C1', 'C2').
"""
pin = getattr(board, pin_name) # 핀 이름을 동적으로 가져옴
button = digitalio.DigitalInOut(pin)
button.direction = digitalio.Direction.INPUT

print(f"GPIO {pin_name} 설정 완료. 입력값 읽기 시작... 외부 풀업/풀다운 저항 사용 중.")
try:
while True:
if not button.value: # 버튼이 눌렸을 때 (LOW)
print(f"GPIO {pin_name}: Button Pressed!")
else: # 버튼이 눌리지 않았을 때 (HIGH)
print(f"GPIO {pin_name}: Button Released!")
time.sleep(0.1) # 0.1초 간격으로 읽기
except KeyboardInterrupt:
print("\n입력 동작 중단.")
finally:
print(f"GPIO {pin_name} 초기화 완료.")

if __name__ == "__main__":
while True:
print("\n====== FT232H GPIO 테스트 ======")
print("1. GPIO 출력 테스트")
print("2. GPIO 입력 테스트")
print("3. 종료")
mode = input("모드를 선택하세요 (1, 2, 또는 3): ")

if mode == "1":
# GPIO 출력 테스트
pin = input("출력으로 사용할 GPIO 핀 이름 (예: C0): ")
interval = float(input("ON/OFF 간격 (초, 기본값 1초): ") or 1.0)
print(f"\n{pin} 핀을 {interval}초 간격으로 출력합니다. Ctrl+C로 중단.")
try:
gpio_output(pin_name=pin, interval=interval)
except Exception as e:
print(f"출력 테스트 오류: {e}")

elif mode == "2":
# GPIO 입력 테스트
pin = input("입력으로 사용할 GPIO 핀 이름 (예: C1): ")
print(f"\n{pin} 핀에서 버튼 입력 상태를 읽습니다. Ctrl+C로 중단.")
try:
gpio_input(pin_name=pin)
except Exception as e:
print(f"입력 테스트 오류: {e}")

elif mode == "3":
# 종료
print("프로그램을 종료합니다.")
break

else:
print("잘못된 입력입니다. 다시 선택하세요.")

Adsense

 

 WiFi IoT Module

 

www.mxchip.com

 

 

 Bluetooth Module

www.feasycom.com

 

 

 5G/LTE/CAT-M1/NB-IoT

 

www.simcom.com

 

Viewed Page List