Сдвиговый регистр и светодиоды с общим катодом
- Войдите на сайт для отправки комментариев
Сб, 25/02/2017 - 11:35
Доброго времени суток
Собрал схему индикатора, на макетке все работало хорошо. Но вот когда собрал на печатке начались проблемы.
Вырезка с печатки (в коде присутствуют еще сдвиговые регистры SH, DS и т.п, они на схеме не указаны, здесь указан регистр обозначаемый DS2, SH2):
Код:
const byte ST = A3; //ST_CP 74HC595 //индикатор таймер и ввод const byte SH = A4; //SH_CP 74HC595 const byte DS = A2; //DS 74HC595 const byte ST2 = A0; //ST_CP 74HC595 //светодиоды const byte SH2 = A1; //SH_CP 74HC595 const byte DS2 = A6; //DS 74HC595 byte Zifry[11] = {B00100000, //значения от 0 до 9, +ВЫКЛ для индикатора B01101011, B00010010, B01000010, B01001001, B01000100, B00000100, B01100010, B00000000, B01000000, B01111111 }; byte svd[6] = {B01010101, B10010101, B10100101, B10101001, B10101010, B00000000 }; //состояние светодиодов void setup() { // Serial.begin(9600); pinMode(ST, OUTPUT); //выходы для управления 74НС595 - таймер и ввод pinMode(SH, OUTPUT); pinMode(DS, OUTPUT); pinMode(ST2, OUTPUT); //выходы для управления 74НС595 - светодиоды pinMode(SH2, OUTPUT); pinMode(DS2, OUTPUT); digitalWrite(ST2, LOW); //начало передачи //тушим светодиоды shiftOut(DS2, SH2, LSBFIRST, B00000000); digitalWrite(ST2, HIGH); //передача окончена digitalWrite(ST, LOW); //начало передачи shiftOut(DS, SH, LSBFIRST, B00000000); //3 разряд shiftOut(DS, SH, LSBFIRST, B00000000); //1 разряд shiftOut(DS, SH, LSBFIRST, B00000000); //2 разряд digitalWrite(ST, HIGH); //передача окончена } void loop() { }
распиновка для кода:
Проблема в том, что если в строке
shiftOut(DS2, SH2, LSBFIRST, B00000000);
поставить в В00000000 хоть 1 единицу, то загораются сразу все светодиоды. Хотя на макетке таких проблем не было, загорались только те, которые было нужно. Прошиваю контроллер с помощью второй ардуино.
В чем может быть проблема?
P.S. плату прозвонил дважды, регистр не перегревал. Канифоль и т.п. смыл и высушил.
Питание развел, как украл. Повесь хотя бы по конденсатору 0.1 мкФ на мегу ноги 4 и 5, и на регистр ноги 8 и 16.
Питание развел, как украл. Повесь хотя бы по конденсатору 0.1 мкФ на мегу ноги 4 и 5, и на регистр ноги 8 и 16.
Стер лишнее на рисунке, по питанию кондер стоит и на входе, и на выходе со стабилизатора. На микросхему напаял керамику 0,1мкФ, дополнительно напаял электролит к стабилизатору напряжения, не помогло.
Вывод А6 не может быть выходом.
Ну да, действительно. Но мы ж блин не ищем легких путей. Благодарю. На другом пине работает.