Управление ногами Arduino по RS232

prolan
Offline
Зарегистрирован: 22.05.2015

Потребовалось управлять ногами Arduino по RS232. Написал простейший код:

#include <stdlib.h>
char incomingByte;
void setup() {
  Serial.begin(9600);
  for(int i=2; i<=9; i++)
    pinMode(i,OUTPUT);
}

void loop() {
  if(Serial.available()==2){
    incomingByte = (char)Serial.read();
    int pin = (char)Serial.parseInt();
    switch(incomingByte) {
      case '0':
        digitalWrite(pin,LOW);
        break;
      case '1':
        digitalWrite(pin,HIGH);
        break;
    }
  }
}

Но возникла проблема в том, что при каждом подключении к консоли с помощью minicom или любой другой консольной программы ардуина сбрасывает все ноги в 0. Подскажите, в связи с чем это может быть связано? И как бороться?

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

физическом подключении или просто при запуске программы? не отключая при этом

prolan
Offline
Зарегистрирован: 22.05.2015

Подключились терминалкой - подняли ногу - отключились. При этом Arduino подключена к компьютеру. Опять подключаемся... и состояние ног сбрасывается.

Т.е. ардуина не отключается от компьютера. Проблема так же наблюдается с простейшим Python приложением, который выдергивает из аргуметов команду и порт и передает их по RS232 в Arduino.

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

проверь dtr не дергается при подключении

prolan
Offline
Зарегистрирован: 22.05.2015

хм.. и правда. Повесил 10uF конденсатор между RESET и GND - проблема ушла.

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

только теперь запрограммировать чтобы конденсатор надо снимать