dtmf декодер mt8870 или полтергейст?

Тема в разделе "Схемотехника, компоненты, модули", создана пользователем thesatellite, 11 июл 2017.

  1. thesatellite

    thesatellite Нерд

    Доброго времени суток народ. Вот в чём вопрос:
    Имеется полный скетч:

    void setup()
    {
    pinMode(9, INPUT);
    pinMode(10, INPUT);
    pinMode(11, INPUT);
    pinMode(12, INPUT);
    pinMode(8, INPUT);
    pinMode(2, OUTPUT);
    pinMode(3, OUTPUT);
    pinMode(4, OUTPUT);
    pinMode(5, OUTPUT);
    }
    void loop()
    {
    boolean Q1 = digitalRead(8);
    boolean Q2 = digitalRead(12);
    boolean Q3 = digitalRead(11);
    boolean Q4 = digitalRead(10);
    boolean Q5 = digitalRead(9);
    if (Q1 && !Q2 && !Q3 && !Q4 && Q5)
    {
    digitalWrite(2, LOW);
    }
    if (!Q1 && Q2 && !Q3 && !Q4 && Q5)
    {
    digitalWrite(3, LOW);
    }
    if (Q1 && Q2 && !Q3 && !Q4 && Q5)
    {
    digitalWrite(4, LOW);
    }
    if (!Q1 && !Q2 && Q3 && !Q4 && Q5)
    {
    digitalWrite(5, LOW);
    }
    else
    {
    {
    digitalWrite(2, HIGH);
    digitalWrite(3, HIGH);
    digitalWrite(4, HIGH);
    digitalWrite(5, HIGH);
    }
    }
    }

    Железка UNO & DTMF декодер mt8870.
    Хрень такая: Значит делаю только

    if (Q1 && !Q2 && !Q3 && !Q4 && Q5)
    {
    digitalWrite(2, LOW);
    }
    else
    {
    {
    digitalWrite(2, HIGH);
    }
    }
    }

    Реле на 4 группы (первое) срабатывает четко.
    Подключаю
    if (!Q1 && Q2 && !Q3 && !Q4 && Q5)
    {
    digitalWrite(3, LOW);
    }....

    Первое перестаёт включаться, лишь слабенько загорается светодиод.
    Подключаю третье
    if (Q1 && Q2 && !Q3 && !Q4 && Q5)
    {
    digitalWrite(4, LOW);
    }..... И 1 и 2 реле горит слабенько светодиод, 3 включается.
    И так далее.
    WTF народ?! Полтергейст?
     
  2. Tomasina

    Tomasina Сушитель лампочек Модератор

    Дублировать вопросы не надо.
    Код надо оформлять правильно.
    У выходов Q очень малый допустимый нагрузочный ток (2,5 мА), еле хватает на светодиоды, поэтому надо усиливать транзисторными ключами.
     
  3. thesatellite

    thesatellite Нерд

    Ок, извиняюсь. Так и подумал.... То есть декодер даже не может открыть атмеловский контроллер? Или я не понял?

    А что в коде не так?
     
  4. NikitOS

    NikitOS Король шутов Администратор

  5. thesatellite

    thesatellite Нерд

    Ну чайник я)))
     
  6. thesatellite

    thesatellite Нерд

    Хрен с ним: Оптопару он откроет?
     
  7. thesatellite

    thesatellite Нерд

    3.39 миллиамера максимум даёт декодер. А сколько надо на открытие порта на ATMEL контроллере?
     
  8. thesatellite

    thesatellite Нерд

    3.39 миллиампер и 3.65 вольта на выходе дает DTMF декодер. А сколько надо, надо сколько.... Что то задумался я ...Для открытия порта ATMEL контроллера?
     
  9. Alexton

    Alexton Нуб

    Просто умиляюсь глядя на все эти потуги.
    Взять готовый шилд с микроконтроллером на теле с 16 каналами вход/выход и аппаратным конфигурированием режимов, религия не позволяет? Цена вопроса и время на реализацию здесь отдыхают.
    И без единого скрипта:cool:
     
  10. Ariadna-on-Line

    Ariadna-on-Line Гуру

    Релюхи вешаете прямо на выходы Ардуины между +5V и выходом ? И сколько они кушают при включении (каждая) ? Поставьте буферные транзисторы. Так, чтобы токи реле не текли через процессор Ардуины. Не забудьте демпферные диоды на реле и резисторы 1 ком между выходами Ардуины и базами тр-ров. Ваша Ардуина работает от 5 вольт ? Возможно причина в слишком малом напряжении "единицы" декодера - на грани стандарта (3.6 вольт) для 5-вольтовой логики. Если заработает - отпишитесь.
     
    Последнее редактирование: 12 сен 2018
  11. Alexton

    Alexton Нуб

    Ардуиной здесь и не пахнет, все управление по входам исключительно от DTMF генератора (Шим) и встроенного микроконтроллера класса 8051. На выходе получаем до 8 вариантов открытия 1 (5V, 60mA) или 0 длительностью входного импульса не менее 70ms.
    В вашем случае в качестве генератора ардуино и в Вашем скрипте нарушение DTMF протокола.