Сдвиговый регистр и светодиоды с общим катодом
- Войдите на сайт для отправки комментариев
Сб, 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 не может быть выходом.
Ну да, действительно. Но мы ж блин не ищем легких путей. Благодарю. На другом пине работает.