[pyfirmata]pin control - detail

아두이노 핀을 제어하는 방법으로 앞서 소개했던 list-indexing 방법이 있었다면

좀 더 확장된 개념으로 pin-mode 자체를 설정하는 방법이 있다.

특정 핀에 대해 mode 까지 설정하는 방법

Arduino 보드 객체.get_pin('[d/a],[0~13],[i/o/p/s]')
[d/a] : digital / analog
[0~13] : 핀 번호(아날로그 0~5, 디지털 0~13)
[i/o/p/s] : 핀 모드 설정
i : input - 센서로부터 값을 수신 받음(스레드 처리 필요)
o : output - 값 출력
p : pwm - Led, Motor 등 장치에 대한 연속 적인 값 사용 가능(0~1 사이 값)
s : servo - 서보 모터 제어(최소 값 5, 최대 값 175)

- 서보모터 테스트용 코드

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
from pyfirmata import Arduino, util
import time
 
board = Arduino("COM20")
print("connecting")
 
#digital, 11번 핀, 서보 모터 제어
pin_11 = board.get_pin('d:11:s')
 
while True :
    pin_11.write(5# 최소값으로 설정
    time.sleep(1)
    pin_11.write(175# 최대값으로 
    time.sleep(1)
 
cs
- 서보모터 핀에 대한 값의 최소는 5, 최대는 175 에 대한 값을 갖는다.

pwm 의 경우 0~1 사이의 값, digital 의 경우 0 또는 1 값 만을 갖는다.

댓글