ESP8266 + 74HC595

Patriot
Offline
Зарегистрирован: 25.06.2015

Всем привет!

Не получается подружить сабж. Все делаю по примерам из интернета. Но напряжения на выводах 74HC595 нет.

 

Скетч тоже из инета, заменены только номера пинов:

 

#include <Arduino.h>

int clockPin = D8;  // -> SH_CP (11)
int latchPin = D7;  // -> ST_CP (12)
int dataPin = D5;   // -> DS (14)

void registerWrite(int whichPin, int whichState);

void setup() {
    pinMode(LED_BUILTIN, OUTPUT);
    Serial.begin(115200);
    pinMode(latchPin, OUTPUT);
    pinMode(clockPin, OUTPUT);
    pinMode(dataPin, OUTPUT);
}

void loop() {
    // проходим циклом по всем 16 выходам двух регистров
    for (int thisLed = 0; thisLed < 16; thisLed++) {
        // записываем сигнал в регистр для очередного светодиода
        registerWrite(thisLed, HIGH);
        // если это не первый светодиод, то отключаем предыдущий
        if (thisLed > 0) {
            registerWrite(thisLed - 1, LOW);
        } else {
            // если это первый светодиод, то отключаем последний
            registerWrite(15, LOW);
        }

        // делаем паузу перед следующией итерацией
        delay(250);
    }

}

// этот метод отсылает бит на сдвиговый регистр

void registerWrite(int whichPin, int whichState) {
    // для хранения 16 битов используем unsigned int
    unsigned int bitsToSend = 0;

    // выключаем светодиоды на время передачи битов
    digitalWrite(latchPin, LOW);

    // устанавливаем HIGH в соответствующий бит
    bitWrite(bitsToSend, whichPin, whichState);

    // разбиваем наши 16 бит на два байта
    // для записи в первый и второй регистр
    byte registerOne = highByte(bitsToSend);
    byte registerTwo = lowByte(bitsToSend);

    // "проталкиваем" байты в регистры
    shiftOut(dataPin, clockPin, MSBFIRST, registerTwo);
    shiftOut(dataPin, clockPin, MSBFIRST, registerOne);

    // "защелкиваем" регистр, чтобы биты появились на выходах регистра
    digitalWrite(latchPin, HIGH);
}

Подскажите, что не так? Почему не работает?

 

svm
Offline
Зарегистрирован: 06.11.2016

Ошибка в монтаже, плохой контакт. Возможно косяк в скетче. для начала выведите в монитор отладочную информацию , а потом думайте.

SLKH
Offline
Зарегистрирован: 17.08.2015

Patriot пишет:

 

Подскажите, что не так? Почему не работает?

Первое - что значит "не работает"?

Второе "не так" - отсутствие схемы. Разбираться по картинке, что там накоммутировано, желания нет.

Третье - "ачотенада?" Два байта переслать? так это в строках 43, 54, 55 и 58. Зачем всё остальное народное творчество, неясно.

Четвертое - в комментарии стр. 42 чушь написана

Добавлено пятое: Я 8266 совсем не знаю. она достаточные напряжения сигналов выдает?