Сдвиговый регистр и кнопка

Тема в разделе "Схемотехника, компоненты, модули", создана пользователем OOM, 22 авг 2018.

  1. OOM

    OOM Нерд

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

    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]
     
  2. ostrov

    ostrov Гуру

    Для начала вставьте код в сообщение правильно предварительно его авоотформатировав. Может быть будет выглядеть менее дико.
     
  3. OOM

    OOM Нерд

    А как его вставить? Извени уж.
     
  4. Mitrandir

    Mitrandir Гуру

    Кнопка на тулбаре с <>
     
  5. SergeiL

    SergeiL Оракул Модератор

    А чем это от кода ТС отличается?
     
  6. Mitrandir

    Mitrandir Гуру

    Тем что у тс работает пока кнопку держат.
    У меня работает с момента нажатия до посинения.
     
  7. SergeiL

    SergeiL Оракул Модератор

    У TC запускается 1 цикл пробегания бегущего огня, а потом останавливается, если кнопка была отпущена.
    Я так и не понял, бегущий огонь не запускается совсем, или останавливается после отпускания кнопки?

    @OOM нужно в setup задать начальное значение на выходах портов, а не только режим выхода.
     
    Mitrandir нравится это.
  8. Mitrandir

    Mitrandir Гуру

    Да, затупил.
     
  9. OOM

    OOM Нерд

    Заработало, я просто затупил
     
  10. NikitOS

    NikitOS Король шутов Администратор