Chip, уже неудобно просить.помогай.
Вариант расширение кол-ва входов... Вроде разобрался, спаял. Запустил, написал тестовую прожку...
...но не работает. А конкретно:
1) терминал всегда кажет, что считывается единица, какой бы адрес ты не записывал.
2) прибором мерял выход мульт-ора, все подтверждается.
3) после подачи на входы 5в (в MUX), за диодами напр-е = 0,5в. Т.е. лог 0. Т.е. на входы высокий уровень не проникает, диоды режут.
4) Диоды поставлены 1N4148, те которые ты в свои проекты ставил.
5) ВСЕГДА на выходе мультиплекора лог 1.
Прикрепляю схему подключения. И прогу:
Код:int addr_out_0 = 5; int addr_out_1 = 6; int addr_out_2 = 4; int addr_in_state = 7; void setup() { pinMode(addr_out_0, OUTPUT); pinMode(addr_out_1, OUTPUT); pinMode(addr_out_2, OUTPUT); pinMode(addr_in_state, INPUT); digitalWrite(addr_in_state, HIGH); Serial.begin(115200); } int get_port_state(int index) { int b[3]; if (index == 0) {b[0] = 0; b[1] = 0; b[2] = 0;} if (index == 1) {b[0] = 0; b[1] = 0; b[2] = 1;} if (index == 2) {b[0] = 0; b[1] = 1; b[2] = 0;} if (index == 3) {b[0] = 0; b[1] = 1; b[2] = 1;} if (index == 4) {b[0] = 1; b[1] = 0; b[2] = 0;} if (index == 5) {b[0] = 1; b[1] = 0; b[2] = 1;} if (index == 6) {b[0] = 1; b[1] = 1; b[2] = 0;} if (index == 7) {b[0] = 1; b[1] = 1; b[2] = 1;} digitalWrite(addr_out_0, b[0]); digitalWrite(addr_out_1, b[1]); digitalWrite(addr_out_2, b[2]); delay(5); return (digitalRead(addr_in_state)); } void loop() { Serial.println(""); for (int i=0; i<=7; i++) { Serial.print(get_port_state(i), BIN); Serial.print(" "); } delay(500); }




помогай.
Ответить с цитированием