Показано с 1 по 10 из 1174

Древовидный режим

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #11
    Местный Аватар для Except
    Регистрация
    09.11.2008
    Сообщений
    116
    Вес репутации
    263

    По умолчанию Re: Панель приборов.

    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);
    }
    Миниатюры Миниатюры Нажмите на изображение для увеличения. 

Название:	213.jpg 
Просмотров:	1386 
Размер:	64.4 Кб 
ID:	8248  

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •