Written by coh at home
[Maixbot]Digital Input 본문
Tact switch사용해서 input 확인하는 예제
from fpioa_manager import fm
from Maix import GPIO
import utime
button = 15
fm.register(button, fm.fpioa.GPIO1)
button = GPIO(GPIO.GPIO1, GPIO.IN)
while 1:
var = button.value()
print(var)
단순히 이렇게 하면 button의 전압 level이 floating 상태인 것을 확인할 수 있다.
따라서 pull up 저항을 달거나 pull down저항을 달아서 해결해야 하는데
Maixduino에서는 이를 지원해준다.
Pull down -> GND로 끌어내린다. 초기값 0으로 세팅.
Pull up은 그 반대.
from fpioa_manager import fm
from Maix import GPIO
import utime
button = 15
fm.register(button, fm.fpioa.GPIO1)
button = GPIO(GPIO.GPIO1, GPIO.IN, GPIO.PULL_DOWN)
while 1:
var = button.value()
print(var)
그리고 while loop에서 switch가 눌린 횟수를 count하는 것을 출력해보면
예상하지 못한 값이 출력된다. 잠깐 누른 동안의 그 시간 동안 엄청 cnt가 카운트된다.
클럭과 관련이 있을 거라고 생각한다. 그래서 사실 라즈베리파이에서는 event함수를 등록하고 GPIO.FALLING 옵션과 bounce time을 부여해서 해결하는데 여기서는 이전에 누른 값이 0인지를 보고 알고리즘을 짜야한다. (지원함수가 없는 듯 싶다.)
마지막으로 코드를 기기에 저장하는 방법은 Tool -> Save하면 된다.
'Advanced > Maixbot Project' 카테고리의 다른 글
| [Maixbot]Analog IO (0) | 2023.07.10 |
|---|---|
| [Maixbot]AI concept review with CNN (0) | 2023.07.07 |
| [Maixbot]Simple Example, Output (0) | 2023.06.28 |
| [Maixbot]Pin number. (0) | 2023.06.28 |
| [Maixbot] Processor and Maixduino 개발환경구축 (0) | 2023.06.28 |