PPMбиблиотека за Arduino

Както знаете, по-голямата част от радиоуправляемата техника използва така наречените PPM сигнали за предаване на данни (все още не съм работил с PCM, за съжаление).

Накратко този метод на предаване може да бъде описан по следния начин. Приемникът чете сигнали от дистанционното управление в кадри (

с 20 ms). Всеки кадър може да съдържа около осем импулса (

с 2ms). Всеки от тези импулси съответства на един канал. RC приемникът просто разпределя всички тези импулси от рамката към различни изходи (канали).

Така на изхода на дистанционното управление получаваме сигнал с честота около 50 Hz (на всеки 20 ms) с управляващ импулс с дължина от 700-800 до 2000-2200 μs. Дължината на този импулс кодира информацията, предавана от дистанционното управление.

Понякога любителите на Arduino може да поискат да вземат колата играчка на сина си на контролния панел, да включат Arduino в нея и да накарат колата да се движи сама, като избягва препятствията, или, да речем, просто да управляват играчката от компютър. Тук често възниква проблемът.

Как да дадем желания сигнал на двигателя (със сервосистемите ситуацията е по-проста), така че да започне да се върти с необходимата скорост, ако този двигател (ESC) работи "от дистанционното управление"?

Опитах се да потърся библиотеките на Arduino за вече написана библиотека за емулация на сигнал на приемник и не намерих такава. Така че трябваше да пиша сам.

Досега генерирането на RC сигнали е записано само за 9-ти и 10-ти пина на Arduino (защото има 16 битов таймер). Не съм писал за нулевия таймер, тъй като delay() и millis() се въртят върху него. Ами пише се засега само под Уно. Ако някой иска да добави Arduino за други, ще се радвам много)

Тествах библиотеката, работи добре на контролирана машина и на серво мотори.