Serial соединение и blink
- Войдите на сайт для отправки комментариев
Ср, 30/05/2012 - 16:30
Кто подскажет? Требуется зажигать светодиод (три состояния: светится/не светится и мигает) через ком-порт. Не пойму с do..while, какое условие должно быть?
int led_pin=11; int value=0; void led_mix() //функция мигания св.диода { do { digitalWrite(led_pin, HIGH); delay(200); digitalWrite(led_pin, LOW); delay(200); } while (какое условие здесь должно быть???); } void setup() { Serial.begin(9600); pinMode(led_pin, OUTPUT); } void loop() { value=Serial.read(); switch (value) { case 'H': digitalWrite(led_pin, HIGH); break; case 'L': digitalWrite(led_pin, LOW); break; case 'M': led_mix(); break; } }
Для того, что бы не насиловать сериал-соединение - не читать пустой буфер нужно использовать Serial.available() и тогда для мигания вы сможете ислользовать основной цикл:
но можно пойти и по вашему пути - цикл пока буфер пуст:
Или все вместе
где-то ошибка, светодиод после посыла "М" моргает один раз и гаснет... Во всех скетчах.
странно, проверил на putty всё работает, а через ардуино иде не работает) тема закрыта, maksim спасибо