Подскажите пожалуйста в чем причина и что, я делаю не так. Подключил сдвиговый регистр к ардуино Уно, запустил бегущий огонь, все работает. хочу запустить этот бегущий огонь по нажатию кнопки. Подключил кнопку и ни чего. Код прилагаю, что в нем не так?. int dataPin = 9; //Пин подключен к DS входу 74HC595 int latchPin = 10; //Пин подключен к ST_CP входу 74HC595 int clockPin = 11; //Пин подключен к SH_CP входу 74HC595 int button = 7; // Пин кнопки int val = 0; void setup() { //устанавливаем режим OUTPUT pinMode(latchPin, OUTPUT); pinMode(clockPin, OUTPUT); pinMode(dataPin, OUTPUT); pinMode( button, INPUT_PULLUP ); } void loop() { val = digitalRead( button ); byte byteToSend = 0; //Создаем пустой байт B00000000 if( val == 0 ){ for (int bitPos = 0; bitPos < 8; bitPos++) { // В переменной хранится позиция изменяемого бита byteToSend = 0; // Обнуляем байт при каждом проходе bitWrite(byteToSend, bitPos, HIGH); // При bitPos=0 получим B00000001, при bitPos=1 - B00000010, при bitPos=2 - B00000100 и т.д. digitalWrite(latchPin, LOW); shiftOut(dataPin, clockPin, MSBFIRST, byteToSend); // Инвертируем сигнал при помощи MSBFIRST, грузим с первого бита digitalWrite(latchPin, HIGH); delay(1000); } } } [/code][/code] de]
Для начала вставьте код в сообщение правильно предварительно его авоотформатировав. Может быть будет выглядеть менее дико.
У TC запускается 1 цикл пробегания бегущего огня, а потом останавливается, если кнопка была отпущена. Я так и не понял, бегущий огонь не запускается совсем, или останавливается после отпускания кнопки? @OOM нужно в setup задать начальное значение на выходах портов, а не только режим выхода.