Помогите с arduino pro mini
- Войдите на сайт для отправки комментариев
Втр, 02/01/2018 - 17:00
Имеется ардуино про мини, рабочий приёмник с нрф24л01, выдавала ппм сигнал при помощи timerOne. Решил проверить одно из выдаваемых значений, добавил отправку в порт, прошил. Увидел значения когда передатчик выключен, включил передатчик, связь не установилась(передатчик передаёт, проверено др приёмником). Решил перезапустить приёмник и после этого я уже не видел никаких значений в порту, хотя синий светодиод на программаторе горит, значит ардуино на сколько я понимаю передаёт данные в порт, прошить заново тоже не могу, просто висит безконца надпись загрузка.
вот скетч
#include <TimerOne.h>
volatile int delays[12] = {
1800, 1700, 1600, 1500, 1400, 1300, 2200, 2200, 2200, 2200, 2200, 2200
};
byte i = 0;
unsigned long time;
void setup() {
Serial.begin(9600);
Timer1.initialize();
pinMode(9, OUTPUT); // D9 - Пин вывода "PPM" сигнала
Timer1.attachInterrupt(Timer1_action, 300);
delay(50);
}
byte state = false;
byte pulse = false;
void Timer1_action() {
digitalWrite(9, state);
if (!pulse) {
Timer1.setPeriod(300);
pulse = 1;
}
else {
Timer1.setPeriod(delays[i] - 300);
pulse = 0;
i++;
}
state = !state;
if (i == 13) {
int pause = 0;
for (byte t = 0; t < 12; t++) {
pause += delays[t];
}
Timer1.setPeriod(32500 - pause);
i = 0;
}
}
void loop() {
delays[2] = map(analogRead(2), 150, 850, 1000, 2000); // 3ий канал - газ
delays[0] = map(analogRead(0), 0, 1023, 2000, 1000); // 1ый канал - право / лево
delays[1] = map(analogRead(1), 0, 1023, 1000, 2000); // 2ой канал - вперёд / назад
delays[3] = map(analogRead(3), 0, 1023, 2000, 1000); // 4ый канал - Рудер (Rudder)
delays[4] = 1500; // 5ый канал - доп. канал - правый тумб. 3пос
delays[5] = 1500; // 6ой канал - доп. канал - левый тумб. 3пос
delays[6] = 1500; // 7ой канал - доп. канал - правый тумб. 2пос
delays[7] = 1500;
delays[8] = 1500;
delays[9] = 1500;
delays[10] = 1500;
delays[11] = 1500;
Serial.println(delays[2]);
} // 8ой канал - доп. канал - левый тумб. 2пос
жми кноку RESET и отпускаем в тот момент, когда твой новый скетч скомпилируется.
не мешало бы делать паузы или условие, а то у тебя COM порт с ума сойдет...
ну именно таким способом я и залил это скетч, так что это не поможет, походу мой программатор сдох, такое возможно?