#include <Servo.h> Servo controllservo; // 서보를 제어할 서보 오브젝트 Servo motorservo; // 모터를 제어할 서보 오브젝트 int servopos = 0; // 서보 위치를 저장할 변수 선언 int motorspeed = 0; // 모터 속도를 저장할 변수 선언 int throttlePin = A0; // 쓰로틀의 입력을 A0 로 선언 int throttleValue = 0; // 쓰로틀의 수치를 0으로 선언 void setup() { controllservo.attach(9); // 핀 9의 서보신호를 컨트롤서보에 연결 motorservo.attach(8); // 핀 10의 서보신호를 모터에 연결 }
void loop() { throttleValue=analogRead(throttlePin); // 쓰로틀의 입력값을 아날로그로 읽음 throttleValue=map(throttleValue,0,1023,0,179); //서보모터의 각도에 맞게 매핑함 controllservo.write(throttleValue); delay(15); } |
컨트롤러의 홀센서out 신호를 A0 에 연결, 전원선을 아두이노의 5V, GND에 연결,
아두이노의 9번핀을 서보모터의 컨트롤 핀에 연결하고
서보모터의 전원을 연결합니다.
서보모터의 전원 GND와 아두이노의 GND를 연결합니다.
대충 짠 코드입니다. motorservo나 servopos 등 쓰이지 않는 것들이 있습니다.
나중에 쓰게 되겠지요
http://pashiran.tistory.com/669 이 링크에서 분석한 바 있지만
쓰로틀에 따라 홀 센서의 전압 출력은 쓰로틀을 올릴수록 올라갑니다.
5V 안쪽의 값이기 때문에 그대로 analogRead() 명령어를 사용한 후
서보 범위에 맞도록 map 명령어를 사용해 수치를 바꿔줍니다.
throttleValue=map(throttleValue,0,1023,0,179) 라는 부분이 있는데
아날로그 입력값인 0~1023 을 0~179 범위로 매핑하게 됩니다.
이 출력을 이용해 RC용 서보모터를 조정하거나 ESC에 연결해서 모터를 가감속할 수 있습니다.
새로 산 부품이 도착하는 대로 추가설계 진행 예정입니다.
'Completed > 전기 자전거' 카테고리의 다른 글
마찰식 전기 자전거 - OLED (2) | 2016.07.12 |
---|---|
마찰식 전기 자전거 - 제작 방향의 전환. (0) | 2016.06.30 |
전기자전거 한동안 중지입니다. (0) | 2016.02.13 |
마찰 구동식 전기 자전거 - 트러블 (4) | 2016.01.24 |
마찰 구동식 전기 자전거 - 스프링 테스트. (1) | 2016.01.21 |