Задержек не нужно
Задержек не нужно
Последний раз редактировалось Chip; 03.04.2010 в 12:21.
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); }
Ну ты даешь!!!
А подтягивать входы кто будет? В кардуине есть внутренние подтягивающие резисторы , а у мультиплексора их нет, так что 10к резистор на каждый вход и на +5в
Спасибо) А почему к плюсу подтягивать надо, а не к земле?
Потому что при таком включении диода он будет пропускать только (-)
А если развернуть диоды наоборот и подтянуть землю, то мона будет подавать на входы + ?
Будет много дыма
+12в на вход нельзя подавать
%) ойойой. У меня датчик скорости, там как я понял надо ловить импульс с плюсом. Как развязать, чтобы + подать?
off:
Execpt, а у тебя Consult I или II?
Последний раз редактировалось Except; 05.04.2010 в 17:54.
Эту тему просматривают: 5 (пользователей: 0 , гостей: 5)