AFON // радиотехник affonya@mail.ru
← Все проекты для дронов

Тест мотора (разгон)

Плавный разгон и торможение мотора для проверки после сборки.

DMC.13 · Моторы и ESC · ATmega328P

Задача

Плавно раскрутить мотор до заданного максимума и остановить, для проверки вибраций и звука.

Алгоритм

Наращивание OCR1A с малым шагом до ограниченного максимума (например 1400 мкс) и обратно.

Исходный код (C, avr-gcc)

⇩ Скачать 13-motor-ramp-test.c

#ifndef F_CPU
#define F_CPU 16000000UL
#endif

#include <avr/io.h>
#include <util/delay.h>

static void esc_us(uint16_t us){ OCR1A=us*2; }

int main(void){
  DDRB|=(1<<PB1);
  TCCR1A=(1<<COM1A1)|(1<<WGM11);
  TCCR1B=(1<<WGM13)|(1<<WGM12)|(1<<CS11);
  ICR1=39999;
  esc_us(1000); _delay_ms(3000);
  const uint16_t MAXG=1400;               // безопасный предел теста
  for(;;){
    for(uint16_t us=1000; us<=MAXG; us+=5){ esc_us(us); _delay_ms(40); }
    _delay_ms(1000);
    for(uint16_t us=MAXG; us>1000; us-=5){ esc_us(us); _delay_ms(40); }
    _delay_ms(2000);
  }
}

Сборка: avr-gcc -mmcu=atmega328p -DF_CPU=16000000UL -Os файл.c -o файл.elf

Пояснения

Ограничение газа на тесте бережёт технику. Слушайте посторонний шум и следите за вибрацией.