@de1m

Arduino reset при подключению через серийный порт, что делать?

Есть совсем простой код
#define LED 5

int input = 0;       // variable to keep the data from the serial port

void setup() {
  pinMode(LED,OUTPUT);    // declare the LED's pin as output
  Serial.begin(9600);        // connect to the serial port
  digitalWrite(LED,HIGH);
}

void loop () {
  input = Serial.read();      // read the serial port

  // if the input is '1' turn the LED ON, if '0' turn it OFF
  if (input == '1' ) {
    digitalWrite(LED,LOW);
    Serial.println("LED13 is ON");
  } 
  if (input == '0'){
      digitalWrite(LED, HIGH);
      Serial.println("LED13 is OFF");
  }
}


У меня rgb led с общим плюсом, поэтому значения наоборот.

Проблема в том, что когда я шлю команду(1), чтобы включить led, то он включается и работает, но до тех пор пока есть соединение по серийному порту. Как только я его выключаю, то лампочка больше не горит.

Вот тут пишут, что при соеденении происходит reset ардуины и можно теоритически отключить DTR line, тогда вроде как резет не будет работать, но надо будет в ручную перед прошивкой резет делать.

Как сделать, чтобы лампочка продолжала гореть даже после того, как серийное соединение прекращается? Есть ли какой-то другой способ?
  • Вопрос задан
  • 694 просмотра
Решения вопроса 1
NeiroNx
@NeiroNx
Программист
Там есть перемычка специальная - на линии DTR->Reset - нужно ее убрать. Подругому никак.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
@de1m Автор вопроса
Пока стал писать значение в eeprom, которое потом при старте читается. Но я так подозреваю, что это не очень правильный путь, но для теста пусть пока побудет.
Ответ написан
Комментировать
@Nysha
можно Serial.read(); поставить в прерывание от uart о приему символа.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы