Делаем маленький шажок вперед. Осваиваем работу с енкодером.
Продавая мне девайс (мотор+енкодер) добрые американцы обещали 10 листов (20 страниц) документации. Слово они сдержали прислали пачку бумажек разной степени занимательности. Правда вся необходимая мне информация разместилась на одном листе. Даже не на одной странице.
- работа мотора от 12 до 24 вольт (но, как показала практика, он себя и на 3В вполне неплохо наворачивал)
- синий/красный провод - питание мотора
- серый - питание енкодера (+5в)
- зеленый - земля енкодера (-)
- белый - "шина данных" енкодера, должна быть притянута 10Ком к плюсу
- один оборот вала - 68 тиков енкодера.
В очередной раз посмотрел воды от джереми блюма на амперке, достал бредборд и собрал простенькую до ужоса схему. И не менее простую программу, выводящую число тиков в порт (консоль).
int wheelInt = 0; // pin 2, прерыване 0
long count = 0; // число тиков енкодера
void setup(){
attachInterrupt(wheelInt, wheel, RISING); // вешаем прерывание
Serial.begin(9600); // открываем поток
}
void wheel(){ // обработка прерывания
count++; // тут всё очень сложно (прибавлем число тиков)
}
void loop() {
Serial.println(count); // вывод числа тиков
delay(1000); // кажную секунду
}
Сперва сделал ошибку притянув данные к земле (перепутал pullup и pulldown ), что немного разочаровало отсутствием результата. Но быстро разобрался.
Радостно покрутил руками вал мотора полюбовался на растущие циферки. Проверил магическое число 68, 10 раз провернув вал. Полученные результаты 699 и 681, показали, что дока не соврала. Расхождение - небольшой перекрут и, в первом случае, где я крутил колесо помалу возможное обратное вращение вала (оно тоже дает тик.).
Вуаля. Правда пока писал пост, подсоединил мотор к источнику питания и столкнулся с переполнением (сперва count был объявлен как int). Заменил объявление на long, и сейчас консоль показывает
452472
453028
453587
454146
454706
455267
455825
456387
456948
457511
458072
458635
Легко подсчитать, что вал делает чуть больше 8 оборотов в секунду (при питании 3в). Но рассчитывать скорость и инерцию вала я планирую завтра. А время написание статьи можете подсчитать сами ;)