Самодельный дверной звонок Дин-Дон


Эта простая схема издает звук классического перезвона «динь-дон» с помощью пьезика, что улучшает ее миниатюризацию и снижает потребность в электроэнергии. Данное устройство можно использовать, например, как дверной звонок.

Питание 12 В постоянного тока. Потребляемый ток в активном режиме до 50 мА, в дежурном около 10 мА.

В описываемой конструкции за формирование соответствующей формы волны, управляющей пьезоэлектрической мембраной, отвечает микроконтроллер ATtiny13. Благодаря этому устройство также может издавать и другие звуки, всё зависит от кода.

Принципиальная схема звонка

Принципиальная схема звонка представлена рисунке. Вверху расположен блок питания, подающий напряжение на микроконтроллер и исполнительную схему. Диод D1 защищает плату от повреждения при переполюсовке питания. Конденсаторы С2 и С3 предотвращают возбуждение стабилизатора.


Транзистор T1 и связанные с ним компоненты образуют входной триггер. Существует два типа триггерного сигнала: либо положительный (напряжение больше 1 В, например, короткое замыкание на цепь питания), либо отрицательный (короткое замыкание на землю). Это входы TRG+ и TRG- соответственно. Что дает пользователю большую свободу в том, как активировать звонок. Триггерный вход, активный в течение длительного времени, вызывает циклические звуковые сигналы.

Резистор R1 поляризует вход потенциалом земли, когда на него не подается другое напряжение. R2 ограничивает ток базы Т1 – после подачи напряжения на вход TRG+ этот транзистор насыщается и тянет потенциал линии TRIGGER почти до нуля. Вход TRG- защищен резистором R4 на случай непредвиденной ситуации, например, короткого замыкания этого входа на источник питания. Диоды D2 и D3 открываются, когда потенциал линии TRIGGER выходит за пределы ожидаемого диапазона, а роль резистора R5 заключается в ограничении тока диодов на входе микроконтроллера. Такой входной каскад обеспечивает эффективную защиту от последствий неправильного подключения проводов или электростатических разрядов.

Интересное на схемафоруме:
Обман от китайского фонарика LED

Пьезо работает с параллельным резонансным контуром, одновременно увеличивая свою мощность. Транзистор Т1 циклически насыщается и закрывается, что вызывает – за счет самоиндукции катушки L1 – появление на преобразователе импульсов напряжения значительно выше напряжения питания. Резистор R6 снижает добротность этого резонансного контура, что снижает громкость, но субъективно улучшает звучание.

Неиспользуемые выводы микроконтроллера Attiny13A поляризованы через резисторы 10 кОм, что повышает устойчивость схемы к электростатическим зарядам.

Монтаж и наладка

Схема звонка собрана на односторонней печатной плате 30 х 30 мм, чертеж сборки которой представлена на рисунке. Показан также вид со стороны планарных элементов. На плате имеется одно отверстие диаметром 3 мм, что достаточно для ее закрепления в корпусе.

Флэш-память микроконтроллера следует запрограммировать готовым кодом и изменить фьюз биты: отключить деление тактовой частоты на 8 и установить Brown-Out Detector на 4,3 В. Установка их показана на рисунке. Первое изменение необходимо для корректной работы, второе лишь снижает вероятность зависания при медленно возрастающем напряжении питания.

Правильно собранная и запрограммированная схема готова к работе сразу после припайки пьезика. На него должно подаваться напряжение около 12 В – чем выше напряжение, тем громче будут звуки. Потребляемый ток составляет около 10 мА в простое и до 50 мА при издании звука (при напряжении 12 В).

Программа была написана на C в среде WinAVR. Звук генерируется прерываниями, создаваемыми на частоте 37,5 кГц. Здесь реализовано простое программное управление импульсным заполнением (ШИМ) для регулировки громкости. Чем выше разрешение ШИМ, тем ниже частота. Здесь использование задержек() разрешено, така как это единственная задача микроконтроллера и временные зависимости не критичны.

Listing 1.
// Sygnalizator ding-dong
// ATtiny13, wylaczony CKDIV8 + ustawiony BOD 4,3V
// Michal Kurzela @ 2018
#include <avr/io.h>
#include <util/delay.h>
#include <avr/interrupt.h>
#define WYZW_0 bit_is_clear(PINB,PINB4) //wejscie wyzwalajace (TRIGGER)
#define PULSE_1 PORTB|=(1<<PORTB3) //wyjscie na tranzystor
#define PULSE_0 PORTB&=~(1<<PORTB3)
//rozdzielczosc w danej fazie brzmienia
volatile uint8_t rozdz_pwm;
//wartosc PWMu w danej chwili, zmieniana w petli glownej
volatile uint8_t wart_pwm = 0;
//aktualnie odliczona wartosc na potrzeby realizacji PWM
volatile uint8_t licznik = 0;
ISR(TIM0_OVF_vect)
{
//inkrementuj wartosc licznika, jezeli jest zadana wartosc gorna
if(wart_pwm){licznik++;}
//przepelnienie licznika
if(licznik > rozdz_pwm){licznik = 0;}
//programowa realizacja PWM
if(licznik > wart_pwm) PULSE_1; else PULSE_0;
}
int main(void)
{
DDRB = 0b11101111; //konfiguracja we/wy
//wejscie TRIGGER jest Hi-Z, poniewaz ma zewnetrzny
//rezystor podciagajacy
PORTB = 0b11100111;
//Timer0 zglosi przerwania z czestotliwoscia 9,6MHz / 256 = 37500 Hz
//(bez preskalera)
TCCR0B |= (1 << CS00);
TIMSK0 |= (1 << TOIE0);
sei(); //aktywacja systemu przerwan
while(1)
{
if(WYZW_0)
{ //wejscie TRIGGER aktywuje sie poziomem niskim
rozdz_pwm = 57; //dzwiek “ding”
//dzwiek powoli cichnie
for(wart_pwm = rozdz_pwm/2; wart_pwm < 47; wart_pwm++)_delay_ms(45);
rozdz_pwm = 68; //dzwiek “dong”
for(wart_pwm = rozdz_pwm/2; wart_pwm < 68; wart_pwm++)
{
_delay_ms(35);
if(wart_pwm > 64)_delay_ms(30);
}
wart_pwm = 0; //wylaczenie dzwieku
PULSE_0;
licznik = 0;
_delay_ms(1000);
}
}

Напряжение с преобразователя подается на клеммы пьезо, осциллограмма которого представлена на рисунке. Несмотря на подачу в схему напряжения 12 В, мгновенное значение этого напряжения может превышать 30 В, то есть налицо результат использования дросселя L1. Здесь виден переход от «дин» к «дон»: первый затухает (низкое напряжение), второй затухает с полной силой (высокое напряжение).

Интересное на схемафоруме:
Повышение чувствительности репортерского микрофона

Частоты звуков и их длительность подбирались экспериментально. Но ничто не мешает вам адаптировать их под свои требования.