Top.Mail.Ru
Ответы

Не работает стандартная функция shiftOut() в Arduino IDE

// Name : shiftOutCode, Hello World //
// Author : Carlyn Maw,Tom Igoe //
// Date : 25 Oct, 2006 //
// Version : 1.0 //
// Notes : Code for using a 74HC595 Shift Register //
// : to count from 0 to 255 //
//****************************************************************
//Порт подключенный к ST_CP 74HC595
//Порт подключенный к ST_CP 74HC595
int latchPin = 8;
//Порт подключенный к SH_CP 74HC595
int clockPin = 12;
//Порт подключенный к DS 74HC595
int dataPin = 11;
void setup() {
//устанавливаем режим порта выхода
pinMode(latchPin, OUTPUT);
pinMode(clockPin, OUTPUT);
pinMode(dataPin, OUTPUT);
}
void loop() {
for (int j = 0; j < 256; j++) {
//устанавливаем LOW на latchPin пока не окончена передача байта
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, LSBFIRST, j);
//устанавливаем HIGH на latchPin, чтобы проинформировать регистр, что передача окончена.
digitalWrite(latchPin, HIGH);
delay(1000);
}
}

Загружаем стандартный код, а на выходе получаем

По дате
По Рейтингу
Аватар пользователя
Новичок

1. у тебя 2 сдвиговых регистра, значит надо отправлять 4 байта за раз
2. лучше подыми даташит на 74HC595 и напиш и свое, там делов на пару минут и будет код работать стабильнее
3. "shiftOut(dataPin, clockPin, LSBFIRST, j);" - МSBFIRST