Fogeaters, Light The World.

06

2016-Mar

[아두이노] RC용 ESC(변속기) 작동방법

작성자: title: MoonBlonix IP ADRESS: *.148.87.98 조회 수: 1762

아두이노 PWM 헤더는 인터넷에 쳐보면 나온다.
아래 코드는 내가 전기자전거 만들면서 사용했던 코드다. 작동 확인함.

ESC는 기동신호를 줘야지 시작이 되는데, 이게 낮은 듀티비의 PWM 신호다.
(조종기를 사용할 경우 스로틀을 최하로 맞춘 상태)
아래 코드에서는 기동 신호의 PWM 듀티비가 3000 / 65535 로 맞춰져 있다.
PWM 주파수는 대충 45 나 50 쯤 주니까 돌아가더라.
변속기 기동에 성공하면 삑-삑-삑-삑-삐로링~ (변속기마다 다를 수 있음) 하고 소리를 낸다.

아래 듀티비는 내가 실험적으로 찾아낸 내용으로, 환경에 따라 조금씩 달라질지도 모른다...
(글쎄 과연 그럴까?)



#include <PWM.h>

int pin = 9;
int reading = 0;
int32_t frequency = 50; //frequency (in Hz)
uint16_t frequencyt = 0;
uint16_t Speed = 0;
String incomingString;

void setup()
{
  InitTimersSafe(); 
  
  Serial.begin(9600);
  Serial.println("wait a second...");

  bool success = SetPinFrequencySafe(pin, frequency);
  if(success) {
    pinMode(13, OUTPUT);
    digitalWrite(13, HIGH);    
  }
  
  frequencyt = Timer1_GetFrequency();
  char strOut[20];
  sprintf(strOut, "Frequency: %u Hz", frequencyt);
  Serial.println(strOut);
     
  delay(500); 
  Serial.println("-= RUN =-");
}

void loop()
{
  reading = analogRead(A0);
  Speed = 3480 +  (reading << 1);
  if(Speed < 3487){
    Speed = 3000;
  }
  Serial.println(Speed); 
  
  pwmWriteHR(pin, Speed);
  // 3000 Arm
  // 5475 ~ 5900 << 45Hz
  // 3487 ~ 6300 << 50Hz
  
  delay(30);      
}

profile
List of Articles
번호 제목 글쓴이 날짜 조회 수
공지 [Web] 클라우드 IDE + 2 title: MoonBlonix 2017-06-25 15118
52 OP Amp - 연산 증폭기 title: MoonBlonix 2016-03-07 1741
» [아두이노] RC용 ESC(변속기) 작동방법 title: MoonBlonix 2016-03-06 1762
50 [AVR/아두이노] 수광 센서 file title: MoonBlonix 2016-03-06 1759
49 [리눅스] 정적, 공유, 동적 라이브러리 사용 title: MoonBlonix 2016-03-05 1325
48 [C/C++] Makefile 만들기 title: MoonBlonix 2016-03-05 1777
47 [C/C++] OS 구분 전처리기 매크로 title: MoonBlonix 2016-03-05 1562
46 [C++ STL] std::unique_ptr + 1 title: MoonBlonix 2016-03-05 1754
45 [AVR] 퓨즈비트 옵션 file + 1 title: MoonBlonix 2016-03-04 1454
44 [AVR] 외부클럭, 리셋회로 설계 file + 1 title: MoonBlonix 2016-03-04 1739
43 [AVR] 소프트웨어 UART 통신(Software Serial) file + 1 title: MoonBlonix 2016-03-04 1739
42 [AVR/아두이노] PIR 인체감지 센서 file title: MoonBlonix 2016-03-03 1911
41 [리눅스] 파일관리 라이브러리 함수 title: MoonBlonix 2016-03-03 1650
40 [리눅스] 리눅스 커널 API 모음 title: MoonBlonix 2016-03-03 1950
39 [리눅스/윈도우/C/C++] 플러그인 시스템 구현 title: MoonBlonix 2016-03-03 1991
38 [라즈베리파이] UART 통신 file title: MoonBlonix 2016-02-25 1621
37 [리눅스] vi 편집기 명령어 title: MoonBlonix 2016-02-25 1520
36 [AVR] 서보모터 제어 file title: MoonBlonix 2016-02-21 1669
35 [AVR] 16MHz 클럭의 연산자별 연산속도 측정 title: MoonBlonix 2016-02-16 1686
34 [AVR] 입력받기 (풀업저항, 외부인터럽트) file + 1 title: MoonBlonix 2016-02-13 1994
33 [AVR] ADC (아두이노 analogread 사용) file + 2 title: MoonBlonix 2016-02-13 1703