2012-07-04 2 views
0

Я программирую Arduino, чтобы включить светодиод, когда он получает что-то в последовательном порту. Я сделал это, и он получил данные, но после того, как светодиод должен был быть выключен, он продолжает двигаться. Вот мой текущий код:Очистить данные в Serial.read()

int ledPin = 13; 

void setup() { 
    pinMode(ledPin, OUTPUT); 
    Serial.begin(9600); 
} 

void loop() { 
    if(Serial.available() > 0) { 
    Serial.print("RECEIVED_CALL"); 
    digitalWrite(ledPin, HIGH); 
    delay(4500); 
    digitalWrite(ledPin, LOW); 
    Serial.clear(); 
    } 
} 

Просьба оставить любые предложения.

+0

Есть ли причина, по которой у вас есть 4500 мс с задержкой в ​​4,5 секунды? Также, если у вас все еще есть доступные данные, он будет снова включен. Попробуйте добавить задержку после того, как вы установили низкий контакт. –

+0

1. Мне это нужно в течение 4,5 секунд. 2. Я попробую – cheese5505

ответ

0

Добавить несколько отладочных инструкций (например, Serial.print("LED_OFF")), чтобы ваш Arduino не перезапускался после получения последовательных данных, как описано в моем сообщении here.

Это может объяснять, что свет остается. Он может перезапускаться снова и снова, если вы отправляете достаточно последовательных данных.

Смежные вопросы