Добрый день! Столкнулся с такой проблемой: откомпилировал скетч залил его на mega 2560 r3 - работает. Отключаю плату от usb(соответственно и от питания) затем заново подключаю - плата чистая. Так и должно быть(там же вроде флэш)? Или я чето не то делаю? Как сделать чтоб прошивка оставалась? пысы Прошу не пинать)). Это моя первая arduina.
Крайне странно. Она обязана оставаться. Это, как вы сказали, flash. А как вы определяете: чистая / не чистая. Можете вставить в setup какое-нибудь необычное мигание светодиодом, чтобы подтвердить теорию?
Я сужу по светодиоду tx, который перестает моргать. В коде присутствует периодическая передача чз serial.
Программа довольна проста и к тому же во время выполнения я неоднократно нажимал на сброс и она без проблем начинала с начала
Чудеса. Были подозрения, что какой-то fuse на ATmega может такое провоцировать, но такого нет. Можете всё же элементарный тест с миганием в setup провести?
Есть похожая проблема с Uno. Программа не стартует, если в ней не инициализировать UART через Serial.begin(). Сброс иногда помогает, но точной зависимости не установлено. Возможно, проблема в библиотеке Wiring начиная с какой-то версии.
На самом деле все сохраняется. Просто светодиод tx начинает мигать только после запуска serial monitor. Тему можно закрывать)
Добрый день. Подскажите новичку -нубу. Заливаю скетч все работает отключаюсь от USB все работает от БП. Отключаю БП, включаю снова программа не работает. плата - arduino pro micro (китайская поделка на atmega32u4 - определяется win7 как leonardo). Скетч: Код (C++): #include <AccelStepper.h> //подключение библиотеки ШД #include <IRremote.h> //подключение библиотеки ИК int RECV_PIN = 9; // назначение пина 9 инф входом от ИК приемника IRrecv irrecv(RECV_PIN); decode_results results; int LED = 8; // Назначение пина 8 вых на вкл/откл света int en = 6; //Назначение пина 6 для сигнала "enable" AccelStepper stepper (1, 10, 2); // настройки ШД :2-х обмоточный движок пин 10-степ пин 2-дир) int svet = 0; //ввод переменной состояния сигнала вкл/откл света void setup() { irrecv.enableIRIn(); pinMode(LED, OUTPUT); // вход stepper.setMaxSpeed(1500.0);// задание скорости 2000 импульсов в секунду stepper.setAcceleration(400.0); // задание ускорения 400 pinMode(en, OUTPUT);// digitalWrite(en, HIGH);// отключение ШД в простое digitalWrite(LED, HIGH );// отключение света в начальный период } void loop() { if (irrecv.decode(&results)) { if (results.value == 0x25802501 && svet == 0) //чтение кнопки "свет" и сравнение // переменной свет: если есть сигнал от ИК пульта "вкл/откл свет" и переменная свет = 0 { delay(50); // защита от дребезга контактов svet++; //присвоение переменной свет значения 1 digitalWrite(LED, !digitalRead(LED)); // смена значения у выхода вкл/отлк свет // на противоположное } if (results.value == 0x25802501 && svet == 1) ////чтение кнопки "свет" и сравнение // переменной свет: если есть сигнал от ИК пульта "вкл/откл свет" и переменная свет = 0 { svet = 0; // присвоение переменной "свет" значения 0 } if (results.value == 0x6F5974BD)// чтение кнопки вверх { digitalWrite(en, LOW);// включение ШД delay (50); // выдержка времени stepper.runToNewPosition(0); // команда "поднять" } if (results.value == 0x57E346E1)//чтение кнопки вниз { digitalWrite(en, LOW);// включение ШД delay (50); // выдержка времени stepper.runToNewPosition(-1500);// команда "опустить" ( за 750 шагов выходной вал мотор-редуктора совершает 1 оборот) } irrecv.resume(); // digitalWrite(en, HIGH);// отключение ШД } } Пробовал аналогично пример библиотеки accelstepper так там скетч сохраняется и работает после откл/вкл однако слетают настройки скорости и ускорения Код (C++): #include <AccelStepper.h> // Define a stepper and the pins it will use AccelStepper stepper (1, 10, 2); // Defaults to 4 pins on 2, 3, 4, 5 void setup() { stepper.setMaxSpeed(200.0); stepper.setAcceleration(100.0); } void loop() { stepper.runToNewPosition(0); stepper.runToNewPosition(500); stepper.runToNewPosition(100); stepper.runToNewPosition(120); } Я в этом деле вообще чайник, подскажите что не так или куда копать?