자작 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 이 되어야 구동된다.


따라서, 전원 연결 후에 부저 음이 난 후, 버튼을 누르면 "대기" 상태가 되도록 다시 프로그래밍을 했다.