Укрощение домофона Цифрал

Вопросы и замечания по статьям и схемам, представленным на нашем сайте

При поддержке РадиоКОТструктор.ру


Ответить
Elektrik158
Открыл глаза
Сообщения: 67
Зарегистрирован: Вт фев 03, 2009 01:13:22
Откуда: Киев
Контактная информация:

Укрощение домофона Цифрал

Сообщение Elektrik158 »

Заинтересовала статейка "Укрощение домофона Цифрал" https://radiokot.ru/artfiles/6577/
Изображение
Собрал пробник для домофона из первой части статьи, не заработал. Начал разбираться, в схеме ошибка. Нижнее плечо делителя, минус дисплея и минус домофона должны подключаться с пину GND, а не к Vin.
Далее смутило "резисторы делителя напряжения на 12: 900кОм и 82кОм или 1,1Мом и 100кОм". Как по мне 900/82=10,98 больше смахивает на делитель на 11. Но не суть. Домофона на горизонте не было, скормил пробнику попавшуюся батарейку CR2032. Пробник намерял на ней 3229mV, это меня немного удивило, батарейка явно не из свежих была, померял мультиметром батарейку 2.95V. Делитель подбирать не хотелось, по этому везде где в коде использовался делитель,

Код: Выделить всё

tmp=((ADCx*Uref)+10)/(1023*20/12);                 //Делитель 1100к/100к в 12 раз (1023*20/12)
заменил 12 на 11. На этот раз измерив ту же батарейку прибор показал 2969mV, что гораздо ближе к истине. Поэтому или номиналы делителя в статье не верные или требуется корректировка прошивки.
Прописав свой ключ в пробник, побрел к домофону. Параметры с домофона пробник снял прекрасно, а вот на предполагаемую эмуляцию ключа домофон не отреагировал вообще никак. Как оказалось я сгоряча не обратил внимания на то что в статье описан Цифрал, а дома оказался Метаком.
Вроде как я понял и цифрал и метаком по таймингам соместимы, но различен формат. У цифрала имеем стартовое слово четырехразрядное, а у метакома - синхронизирующий бит и трехразрядное стартовое слово. В программе

Код: Выделить всё

//Код ключа по напряжению (с инверсией)
  const unsigned char KOD[] PROGMEM = {1,1,1,0,  0,0,1,0,  0,0,0,1,  1,0,0,0,  1,0,0,0,  0,0,0,1,  1,0,0,0,  0,0,1,0,  0,1,0,0};
вот эта часть "{1,1,1,0," у нас и является стартовым словом определяющим принадлежность к цифралу. Что нужно сделать чтобы прикинуться метакомом? Оставить 3 разряда стартового слова? И что нужно скорректировать в выводе кода?

Код: Выделить всё

//Передача кода
  while(1)
  { n=0;
    while (n<36)                   
    { k=pgm_read_byte(&KOD[n]);
      digitalWrite(R1_Line, HIGH);    //0 на выходе транзисторного ключа
      if (k==0)                       //Если передаётся 0 задержка 39,6мкс (<0,4Tп=107us)
      { delayMicroseconds(35);     
      }
      else                            //Иначе, если 1 - задержка 79,2мкс (>0,6Tп=113us)
      { delayMicroseconds(75);         
      }
      digitalWrite(R1_Line, LOW);     //1 на выходе транзисторного ключа
      if (k==0)                       //Если передаётся 0 задержка 67,2мкс (>0,6Tп=107us)
      { delayMicroseconds(62);     
      }
      else                            //Иначе, если 1 - задержка 33,2мкс (<0,4Tп=113us)
      { delayMicroseconds(28);               
      }                             
      n++;
    }                               
  }
Elektrik158
Открыл глаза
Сообщения: 67
Зарегистрирован: Вт фев 03, 2009 01:13:22
Откуда: Киев
Контактная информация:

Re: Укрощение домофона Цифрал

Сообщение Elektrik158 »

Еще замечено, что в режиме эмуляции ключа, очень малая амплитуда сигнала. Как выяснилось, транзистор подключенный к пину D10, все время открыт и шунтирует линию. Поэтому не лишним будет его отключить:

Код: Выделить всё

//Передача кода
digitalWrite(R2_Line, LOW);    //принудительно отключаем второй измерительный резистор

Или это только мне осцилограммы его не нравятся...
Ответить

Вернуться в «Статьи»