먼저 나는 위의 스텝모터를 사용하였다. https://smartstore.naver.com/mechasolution_com/category/f2aaa4e646814d6faf509a957fee90cd?cp=1
메카솔루션 : 네이버쇼핑 스마트스토어
전자부품 교육키트 전문몰 메카솔루션입니다.
smartstore.naver.com
모터를 제어하기 위해서는 많은 전류가 필요하기 때문에 모터 드라이브가 필요하다.
이 예제에서는 L298이라는 모터 드라이브를 사용하였다.
먼저 라즈베리파이와 스텝모터, 모터 드라이브를 위의 그림과 같이 연결한다. 그림이 좀 엉망이여도 이해 바란다.
스텝모터의 배선을 4개를 GPIO핀에 연결한다. a,b,c,d 이렇게 27, 17, 22, 18번에 연결하였다.
그리고 모터는 외부 전원을 주어서 구동시켰다.
https://www.devicemart.co.kr/goods/view?no=1342846
오딧세이(ODYSSEY) 호환 12V 2A KC 인증 아답터 [SZH-PSU03]
미니PC 오딧세이(ODYSSEY) 및 아두이노 등의 마이크로컨트롤러 제품에 전원을 공급할 수 있는 12V 2A 아답터 / 잭 : 5.5mm/2.1mm(외경/내경) / 정격출력 : DC 12V 2A / 정격입력 : 100 - 240V / 50-60Hz / 0.8A / 사이즈
www.devicemart.co.kr
외부전원은 위의 제품을 사용하였다.
a = 27 # stepper motor
b = 17 # stepper motor
c = 22 # stepper motor
d = 18 # stepper motor
def setStepper(in1, in2, in3, in4): #setup stepper #스텝 출력 설정
GPIO.output(a, in1)
GPIO.output(b, in2)
GPIO.output(c, in3)
GPIO.output(d, in4)
time.sleep(0.005)
def setup(): # 입출력 설정
GPIO.setwarnings(False)
GPIO.setmode(GPIO.BCM)
GPIO.setup(a, GPIO.OUT) # stepper motor
GPIO.setup(b, GPIO.OUT) # stepper motor
GPIO.setup(c, GPIO.OUT) # stepper motor
GPIO.setup(d, GPIO.OUT) # stepper motor
def close_window(pos): #창문이 열려있을 때만 닫을 수 있다. 1060펄스를 주어 총 1908도 회전
if pos=="open":
for i in range(258): # stepper motor 1060 pulse 1908 degree
setStepper(1, 0, 0, 0)
setStepper(0, 1, 0, 0)
setStepper(0, 0, 1, 0)
setStepper(0, 0, 0, 1)
time.sleep(0.006)
def open_window(pos): #창문이 닫혀있을 때만 열 수 있다.
if pos=="close":
for i in range(258): # stepper motor 1060 pulse 1908 degree
setStepper(0, 0, 0, 1)
setStepper(0, 0, 1, 0)
setStepper(0, 1, 0, 0)
setStepper(1, 0, 0, 0)
time.sleep(0.006)
먼저 예제코드이다. 창문을 개폐할 때 토크가 충분해서 1상여자 스텝모터 방식을 사용하였다.
위의 pos=="open" , "close는 일단 무시하길 바란다. 후에 리드스위치를 사용하여 창문의 개폐여부를 알기 위함이다.
위의 스텝모터의 스텝각은 1.8도이다. 4개의 스텝이 있으므로 1.8x4x258 = 은 1908도이다.
즉 내 창문의 개폐까지의 모터의 회전 각도는 1908도이다. 이 각도는 본인의 창문에 맞게 설정하길 바란다.
위 동영상은 저번 시간에 활용했던 빗물감지 센서를 이용하여 스텝모터를 움직이는 영상이다.
빗물이 감지되면 스텝모터가 720도 돌게 하였다. 위의 예제코드랑은 다른 예제이지만 저번 게시글을 참고하면 금방 따라할 수 있을 것이다. 이렇게 오늘은 스텝모터를 다뤄봤다. 다음시간에는 mq-7 일산화탄소와 리드스위치를 다뤄볼 예정이다.
도움이 되었다면 좋아요와 구독을 해주길 바란다...
'졸업작품(스마트 창문)' 카테고리의 다른 글
빗물감지 센서, DHT11 온습도 센서 사용하기(스마트창문) (0) | 2023.03.31 |
---|---|
라즈베리파이(Raspberry Pi) 시작하기 (스마트창문) (0) | 2023.03.30 |