74hc595 непонятная работа

sg12@list.ru
Offline
Зарегистрирован: 13.08.2013

Долго мучаюсь, не пойму что не так, изначально подключил к ESP не работает, на уно так же, подключил в выходу светодиоды, загораются в случайном порядке, то не загораются. пробовал разный код, одно и тоже, подключал параллельно питанию конденсаторы, вроде писали что есть проблема с наводками, не помогает. И тут случайно отключил землю от регистра, и все заработало, при подключении массы все замирает. Но счастье было не долгое, оказывается загорается все по какому то принципу, не зависимо от прошивки. Руки опустились уже

b707
Offline
Зарегистрирован: 26.05.2017

"плач Ярославны" ?

код и схема где?

sg12@list.ru
Offline
Зарегистрирован: 13.08.2013

Да схема классическая, как тут http://arduino.ru/Tutorial/registr_74HC595

Код от туда же:

Код примера 1.1

 

b707
Offline
Зарегистрирован: 26.05.2017

sg12@list.ru пишет:

Да схема классическая, как тут http://arduino.ru/Tutorial/registr_74HC595

Код от туда же

 

если бы вы взяли код из примера и схему оттуда же - у вас бы все работало.

А раз не работает - значит что-то перепутали, изменили, забыли... Если не хотите выкладывать СВОЙ код и СВОЮ схему - разбирайтесь сами. Могу только посоветовать еще раз тщательно проверить. точно ли по схеме из примера вы собрали.

b707
Offline
Зарегистрирован: 26.05.2017

кстати, судя вот по этой фразе

sg12@list.ru пишет:
светодиоды загораются в случайном порядке

что-то я сомневаюсь  - а вы точно понимаете, в каком порядке они должны загораться? - если вы хотели зажигать их ПОСЛЕДОВАТЕЛЬНО, то это совсем не тот код, который вам нужен

sg12@list.ru пишет:

 загорается все по какому то принципу

по принципу кодирования двоичных чисел в байте

b707
Offline
Зарегистрирован: 26.05.2017

код вставьте правильно, с номерами строк - напишу вам что поправить для ПОСЛЕДОВАТЕЛЬНОГО зажигания диодов

sg12@list.ru
Offline
Зарегистрирован: 13.08.2013
int dataPin = D3; //Пин подключен к DS входу 74HC595
int latchPin = D1; //Пин подключен к ST_CP входу 74HC595
int clockPin = D2; //Пин подключен к SH_CP входу 74HC595

void setup() {
//Start Serial for debugging purposes
Serial.begin(9600);
//set pins to output because they are addressed in the main loop
pinMode(latchPin, OUTPUT);

}
void loop() {
//count up routine
digitalWrite(latchPin, 0);
shiftOut(dataPin, clockPin, MSBFIRST, 0);
digitalWrite(latchPin, 1);
delay(1000);


digitalWrite(latchPin, 0);
shiftOut(dataPin, clockPin,MSBFIRST, 255);
digitalWrite(latchPin, 1);
delay(1000);

}

По логике все загорается и все гаснет. Схему еще раз проверил, прозвонил тестером, все как надо. Защелка подключена с конденсатором. Еще есть странность не всегда стартует, и прошивается подключенная к регистру. При чем есть 2 схемы, одна на макетке, другая распаяна на плате для прототипа

b707
Offline
Зарегистрирован: 26.05.2017

ну так что, проблема решилась?

sg12@list.ru
Offline
Зарегистрирован: 13.08.2013

Если бы, какой то великий рандом. 

BOOM
BOOM аватар
Offline
Зарегистрирован: 14.11.2018

ТС, а че ты только один пин как выход настроил?

sg12@list.ru
Offline
Зарегистрирован: 13.08.2013

Это остаток от другого, поправил не помогло. 

_Igor_
Offline
Зарегистрирован: 10.01.2022

Смотрим документацию на 74HC595. Data is shifted on the LOW-to-HIGH transitions of the SHCP input.

Смотрим wiring_shift.c: void shiftOut(uint8_t dataPin, uint8_t clockPin, uint8_t bitOrder, uint8_t val)

digitalWrite(clockPin, HIGH); digitalWrite(clockPin, LOW);

Может здесь проблема?

Напишите свою shiftOut() и разберетесь...

sadman41
Offline
Зарегистрирован: 19.10.2016

int latchPin = D1 << D0, D1 - занято Serial-ом в стандартном Arduino.

sg12@list.ru
Offline
Зарегистрирован: 13.08.2013

Спасибо, действительно так работает, хотя во всех примерах на оборот. Еще Питание брал с платы 5в что бы не нагружать стабилизатор, но работает только если брать 3,3в. Хотя вроде при питании 5в  3,3 вольта должны быть логической 1.

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

sg12@list.ru пишет:

вроде при питании 5в  3,3 вольта должны быть логической 1.

кому оно должно и где это напечатано?