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

Свип сервопривода

Плавная развёртка сервопривода для проверки механики подвеса.

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

Задача

Плавно двигать сервопривод от края к краю и обратно для проверки хода подвеса.

Алгоритм

OCR1A изменяется малым шагом от 1000 до 2000 мкс и назад с задержкой между шагами.

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

⇩ Скачать 19-servo-sweep.c

#ifndef F_CPU
#define F_CPU 16000000UL
#endif

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

int main(void){
  DDRB|=(1<<PB1);
  TCCR1A=(1<<COM1A1)|(1<<WGM11);
  TCCR1B=(1<<WGM13)|(1<<WGM12)|(1<<CS11);
  ICR1=39999;
  for(;;){
    for(uint16_t us=1000; us<=2000; us+=5){ OCR1A=us*2; _delay_ms(15); }
    for(uint16_t us=2000; us>1000; us-=5){ OCR1A=us*2; _delay_ms(15); }
  }
}

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

Пояснения

Позволяет выявить заедания и биения gimbal до установки камеры.