Сдвиговый регистр и Serial
- Войдите на сайт для отправки комментариев
Вс, 02/04/2017 - 16:13
Здравствуйте, написал программу. По моей задумке должно работать так :
1)Ожидаем числа с клавиатуры от 0 до 7 (если это буква написать ее № ASCII).
2)Включаем нужный светодиод (буква игнорируется).
А работает так:
1)Ожидает любой символ ASCII и включает светодиод "0".
2)Включаем нужный светодиод (буква игнорируется).
byte x; byte incoming; byte datapin = 11; byte clockpin = 12; byte latchpin = 8; void setup() { Serial.begin(9600); pinMode(datapin,OUTPUT); pinMode(clockpin,OUTPUT); pinMode(latchpin,OUTPUT); digitalWrite(latchpin,LOW); shiftOut(datapin,clockpin,MSBFIRST,0); digitalWrite(latchpin,HIGH); void loop() { incoming = Serial.read() - '0'; Serial.println(incoming); bitWrite(x ,incoming ,1); digitalWrite(latchpin,LOW); shiftOut(datapin,clockpin,MSBFIRST,x); digitalWrite(latchpin,HIGH); } }
Ну так, если из всего мусора, приплывающего из serial, нужны только цифры 0-7, то и ловите только их, остальное игнорируйте.
Стоите вы на остановке и ждете троллейбус. Вам подходят только №№ 3, 4, 5. Приехал № 8. Вы же не садитесь в него, а ждете дальше своего. Так и тут.
Похоже это самый простой способ, спасибо.
Так накидал примерный скетч . Полный пакет здесь.https://yadi.sk/d/NrpxVREH3GZmK2
Головной файл выкладываю