자작 friction drives 용 컨트롤러..
인생 간단하게... 아두이노로
가변저항을 a0 핀에 연결
최대속도는 가변저항으로 설정된다.
3번 핀에 연결된 택스위치로 on-off 한다.
택 스위치를 누르면 서서히 속도가 높아져서 가변저항으로 설정된 속도에 도달하면 유지.
택 스위치를 떼면 esc 가 꺼진다.
9번핀 pwm 출력 --> 변속기 연결
3번핀 -- 풀다운 저항 연결 후 택 스위치 (VCC와 연결)
-------------------------------------------------
프로그램
#include <Servo.h>
#define MIN_TIME 1100
#define MAX_TIME 1900
#define IN_PIN 3
Servo myservo; // create servo object to control a servo
// a maximum of eight servo objects can be created
unsigned short pos = MIN_TIME; // variable to store the servo position
unsigned short v_max = pos;
void setup()
{
pinMode(IN_PIN,INPUT);
myservo.attach(9); // attaches the servo on pin 9 to the servo object
myservo.writeMicroseconds(MAX_TIME);
while(1) {
if(digitalRead(IN_PIN) == HIGH) {
myservo.writeMicroseconds(MIN_TIME);
break;
}
}
}
void loop()
{
v_max = analogRead(0);
v_max = map(v_max,0,255,MIN_TIME,MAX_TIME);
if(digitalRead(IN_PIN) == HIGH) {
pos++;
if(pos > v_max) pos = v_max;
} else {
pos = MIN_TIME;
}
myservo.writeMicroseconds(pos); // tell servo to go to position in variable 'pos'
delay(5); // 50
}
------------------------------------------------------------------------------------------------------------------
회로에 땜질을 했다.
버튼을 누르면, 노브에 설정된 만큼 미니멈에서 PWM 이 증가한다.
ESC 가 주변에 없어서 일단 서보 모터를 이용해 테스트를 해보았다.
-----------------------------------------------------------------------------------------------
PS. 소스를 약간 수정했다.
일반적인 변속기의 경우 전원 ON 일 때 쓰로틀 MAX 가 되어야 하며,
삐X셀의 개수 만큼의 소리가 난 후에 쓰로틀이 MIN 이 되어야 구동된다.
따라서, 전원 연결 후에 부저 음이 난 후, 버튼을 누르면 "대기" 상태가 되도록 다시 프로그래밍을 했다.