Дверной звонок на микроконтроллере

«Добрий день. Вас вітає…» (Делаем дверной звонок) — Сообщество «Сделай Сам» на DRIVE2

Дверной звонок на микроконтроллере

«В человеке должно быть все прекрасно: и душа и тело и сапоги»

— народная мудрость прапорщиков

Немного истории вопроса

Итак, после установки вежливого света в прихожую, стал вопрос: а не повесить ли в конце концов дверной звонок? Как то исторически сложилось, что жили мы достаточно давно без оного и все устравало: гостей ожидаемых выходишь встречать, а случайные — все равно звонили на подъезде, чтобы открыл ворота (у нас дом с огороженной придомовой территорией). Но не все таки звонок решил повесить для соседей — а то не всегда могут достучаться.И вот когда решение по звонку было принято, стал вопрос по выбору схемы. Не можно конечно купить готовый

но какой в этом интерес? :)Монитроринг сайтов принес «улов» в виде нескольких вариантов:

— схемы на основе генераторов. Например такая- cxem.net/house/1-245.php, на основе любимой NE555.

И если бы стоял вопрос сделать подешевле, то я бы так и сделал, но … звук то не сильно интереснее покупного

— микроконроллерный звонок — geektimes.ru/post/258740/
Мегаинтересно, но умение подбирать ноты у меня не сильно лучше, чем, например, умение танцевать балет в оперном театре 🙂

— на основе микросхемы хранения звуковой информации — cxem.net/house/1-46.php Вроде как то что нужно, но купить такую микросхемку в единичном экземпляре не вышло.

И тут вспомнилось мне, что пара знакомых, независимо друг от друга, спрашивали меня о компактном проигрыватели МР3. ХМ, а почему бы и нет — давайте попробуеv

Описание платы проигрывателя
Встречайте — герой нашего рассказа DFPlayer Mini

Описание и мануал — leman.cc.ua/DFPlayer_Mini.pdf

Плата умеет воспроизводить МР3 файлы, записанные карту памяти microCD или USB -флешку, выдавая звук на внешний усилитель или через встроенный 3х ваттный усилитель на динамик. Управляется при помощи микроконтроллера, но предусмотрено и управление кнопками (как раз то что нам нужно).

Расположение выводов

Описание выводов

Подключить можно по стандартной схеме

Простейшая схема подключения

или «продвинутой»

Полнофункциональная схема подключения

НО1) в этом случае плата будет проигрывать полностью звуковой сегмент, т.е.

нельзя закинуть песню целиком (не ну может вам и нравится, что дверной звонок будет звонить при каждом нажатии 2-3 минуты), а нужно ее в каком то звуковом редакторе обрезать до нужной длины — ничего сложного, но лениво :)2) совсем не порадовала потребляемая сила тока платы плеера — что при проигрывании, что в ждущем режиме, он потреблял 40 мА. Многовато, как для меня.

Поэтому возникла идея включать через таймер — при нажатии на кнопку звонка таймер срабатывает и подает питание на плату плеера в течении установленного времени.

Электронная Схема
Схема представляет собой таймер, выполненный на NE555 с возможность регулировки времени срабатывания. Более подробно по таймеру тут — www.drive2.ru/b/453014734636058002/Кроме того, схема позволяет выбирать любой из 14 записанных на карту памяти треков.

Конденсатор С3 предназначен для шунтирования длинных проводов к кнопке звонка. дабы они не «работали» антенной и ловили все электромагнитные колебания в доме.

Питаться устройство может от любого 5В блока питания (например от старого мобильника), но так как у меня уже «живет» в прихожей 12 вольтовый БП вежливого света, то в схему добавлена 7805 с обвязкой, для «гашения» лишних 7В

ПлатаПлата разведена в Sprint Layout и изготовлена методом ЛУТ (лазерно утюжной технологии) на одностороннем фольгированном стеклотекстолите размером 65х40 мм^2

Cкачать разводку можно здесь — leman.cc.ua/bell.lay6

Сразу хочу немного о ЛУТ — для ее использования необходимо печатать разводку на термофлексной бумаге (или глянцевой журнальной) и потом переводить на стеклотекстолит утюгом.

А что делать, если такой бумаги нет или нет возможности на ней распечатать? Поэксперементировав на досуге выяснил, что если все аккуратно делать, то можно использовать и обычную офисную — это сложнее, результат хуже, но в принципе можно. Результат на фото ниже

Как видно есть некоторые «перетравы», но вполне удовлетворительно.

Распаянная плата ниже

Сразу каюсь — лениво было ехать в магазин за недостающими резисторами, поэтому кое где видны совдеповские, а где — то и скрутка из двух.

Еще хотелось бы заметить, что встроенный усилитель имеет мощность 3 Ватта и если вы будете использовать динамики меньшей мощности, то возможно (правильнее сказать: «обязательно будет») их «запирание».

И хотя на плате есть электронная регулировка громкости и вроде как энергонезависимая память, помнящая последнее значение, доверия мне это не внушило, поэтому последовательно с динамиком был впаян балластный резистор.

Величину его, если точно известны параметры «головки» можно рассчитать, можно подобрать экспериментально. У меня вот такой вот майларовый динамик — imrad.com.ua/ru/ld-sp-2808-dinamik-majlarovyj нормально заработал с 80 оммным сопротивлением.

Ну что, можно включать? Неа.Еще нужно подготовить файлы.Особо принципиальной подготовки не требуется, но требование плеера в том, что имена папок и файлов на карте памяти должны состоять из цифр

Тут должен заметить, что у меня нормально выбираться треки, отличные от первого, не захотели. Как показали темы на радиолюбительских форумах — это частая проблема.

Для звонка мне оказалось достаточно, чтобы стабильно играл первый трек.

(В дальнейшем разберусь и обновлю информацию по именам файлов и в чем глюк)Ну что ж — включаем
(на звонок установлена песня Radio Hello польской группы Enej)

Можно ставить в корпус и вешать. (что уже вчера и проделано)

Традиционно делаю ссылку на продавца платы — beegreen.com.ua/arduino/m…-modul-arduino-11795.html

Источник: https://www.drive2.ru/c/476429109627453748/

Музыкальный дверной звонок в стиле Star Wars на Arduino

Всем привет, не так давно я рассказал, да и показал на видео, как можно прошить Attiny13 при помощи Arduino, а теперь покажу практическое применение этому.

Скажу сразу, фьюзы, прошивку в виде hex-файла, код на Си, скетч для Arduino IDE, файлы для Proteus 7 можно скачать в конце статьи.

Ну, что уж тянуть, покажу как работает:

Давно хотел себе такой музыкальный дверной звонок, чтобы при нажатии на кнопку играл марш империи(Imperial March or Darth Vader's Theme) из «Звёздных войн», очень нравится эта мелодия.

Как видно из названия видео выше, главный компонент устройства — микроконтроллер Attiny13, его применение сделало возможным сделать размеры платы в несколько раз меньше по размерах чем спичечной коробок:

Размеры платыА вот уже всё подключённое:
Диапазон питания примерно от 2 В до 6 В, то есть, от двух до четырех батареек формата AA, хотя в идеале бы обеспечить напряжение 3-4 В, то есть для этих целей идеально подходит литий ионный аккумулятор от мобильника или же аккумулятор формата 18650, правда желательно чтобы он был с защитой, так как я пока не реализовал никакой защиты от глубокого разряда. Ну что же, скажу пару слов по схемотехнике: Схема выглядит вот так(файлы Proteus прилагаются в конце статьи, можно даже ничего не собирать на макетке):Нарисована в Proteus'е

Так как микроконтроллер не может самостоятельно вытянуть достаточную громкость, для того чтобы было слышно звонок по всему доме, я добавил NPN транзистор 2N3904, довольно таки распространенный транзистор, в принципе может подойти любой транзистор который потянет динамик, в моём случае транзистор рассчитан на 100 мА.

При использовании 3-х батареек формата AA транзистор немножко грелся, при использовании двух — громкость осталась на приличном уровне но уже транзистор был слегка тёплым.

Резистор R2 — стандартная обвязка для микроконтроллера, служит защитой от случайных перезагрузок микроконтроллера, в принципе работать должно и без него, резистор R1 служит для ограничения тока на базе транзистора.

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

Кстати, на схеме ниже я забыл указать его, подойдёт любой диод который рассчитан на напряжение от 10 В и ток от 200 мА, ставиться последовательно входу платы, или по минусу или по плюсу, у меня по минусу.

Динамик от старого Dial up модема Zyxel, кстати, про Dial up модемы этой фирмы есть один известный анекдот:АнекдотСидят два хакера, и в комнату заходит кот. Один хакер спрашивает: — Твой кот? — Да, мой. Зухель зовут! — Почему Зухель? — Вот смотри. Берет веник, тычет им в кота и говорит: «Зухель, коннект!!!» Кот: — Пшшшшшшшшшшшшшш!

Код, скажу сразу, нагуглил, точней нашёл на просторах ютуба, вот собственно само видео:

Под видео есть ссылка на код, вот он:

Код из описания к видео#include // by @tartakynov
// programmed for ATtiny13 in Arduino IDE using core13 http://sourceforge.net/projects/ard-core13/ #define PIN_LED 1
#define PIN_BUZZER 0
#define COUNT_NOTES 39 word frequences[COUNT_NOTES] PROGMEM = { 392, 392, 392, 311, 466, 392, 311, 466, 392, 587, 587, 587, 622, 466, 369, 311, 466, 392, 784, 392, 392, 784, 739, 698, 659, 622, 659, 415, 554, 523, 493, 466, 440, 466, 311, 369, 311, 466, 392 };
word durations[COUNT_NOTES] PROGMEM = { 350, 350, 350, 250, 100, 350, 250, 100, 700, 350, 350, 350, 250, 100, 350, 250, 100, 700, 350, 250, 100, 350, 250, 100, 100, 100, 200, 100, 350, 250, 100, 100, 100, 200, 100, 350, 250, 100, 750 }; void setup()
{ pinMode(PIN_LED, OUTPUT); pinMode(PIN_BUZZER, OUTPUT);
} void loop()
{ for (byte i = 0; i < COUNT_NOTES; i++) { buzz(PIN_BUZZER, pgm_read_word(&(frequences[i])), 2 * pgm_read_word(&(durations[i]))); delay(100); } delay(3000); } void buzz(unsigned char pin, word frequencyInHertz, word timeInMilliseconds) { long delayAmount = (long)(long(1000000) / (long)frequencyInHertz); long loopTime = (long)(((long)timeInMilliseconds * 500) / delayAmount); for (long i = 0; i < loopTime; i++) { digitalWrite(pin, HIGH); delayMicroseconds(delayAmount); digitalWrite(pin, LOW); delayMicroseconds(delayAmount); } } Размер скетча в двоичном коде: 946 байт (из 1 024 байт максимум)Как Вы можете видеть, есть два массива frequences — в переводе из английского частота и durations — длительность, всё данные типа word, PROGMEM — данные хранятся во флеш-памяти микроконтроллера(без использования библиотеки pgmspace.h работать не будет) ну и есть генератор частоты buzz() который принимает три параметра — пин, на котором будет генерироваться частота, второй — частота в герцах, третий — длительность в миллисекундах. Данный код должен быть Arduino совместимым и работать даже на Arduino Uno, Arduino Nano или же Arduino Pro Mini ну и и других дуинах. Как Вы могли слышать на видео, звучание моего видео немного отличается от второго видео, дело в том, что я немного изменил длительность нот и в три раза популярным методом «научного тыка», поднял частоту, так как такой маленький динамик как у меня плохо воспроизводит те частоты что были изначально, и добавил кнопку, какой же дверной звонок без кнопки?Немного подправил под себя и закомментировал
// by @tartakynov:
// http://youtu.be/5R7NeQkVS_8
// and me — vk.com/razniepodelki #define F_CPU 1200000L // Частота МК в герцах
#include // нужно для PROGMEM #define PIN_BUZZER 2 // PB2 Динамик
#define BUTTON 4 // PB4 Кнопка #define COUNT_NOTES 39 // количество нот word frequences[COUNT_NOTES] PROGMEM = { // тут лежат частоты 392, 392, 392, 311, 466, 392, 311, 466, 392, 587, 587, 587, 622, 466, 369, 311, 466, 392, 784, 392, 392, 784, 739, 698, 659, 622, 659, 415, 554, 523, 493, 466, 440, 466, 311, 369, 311, 466, 392 }; word durations[COUNT_NOTES] PROGMEM = { // тут их длительность 350, 350, 350, 250, 100, 350, 250, 100, 700, 350, 350, 350, 250, 100, 350, 250, 100, 700, 350, 250, 100, 350, 250, 100, 100, 100, 450, 150, 350, 250, 100, 100, 100, 450, 150, 350, 250, 100, 750 }; //void setup()
//{ int main( void ) // это аналог void setup(), для экономии места
{ pinMode(PIN_BUZZER, OUTPUT); // инициализация пинов pinMode(BUTTON, INPUT); // подключаем подтягивающий резистор digitalWrite(BUTTON, HIGH); // чтобы кнопка возвращала //LOW при нажатии //} //void loop() //{ while(1){ // аналог void loop()(вечный цикл) if (digitalRead(BUTTON) == LOW) { // когда кнопка нажата for (byte i = 0; i < COUNT_NOTES; i++) // собственно проигрываем мелодию { buzz(PIN_BUZZER, pgm_read_word(&(frequences[i])) * 3, 2 * pgm_read_word(&(durations[i]))); // изначально было: // buzz(PIN_BUZZER, pgm_read_word(&(frequences[i])), 2 * pgm_read_word(&(durations[i]))); // но я умножил частоту на 3 //(pgm_read_word(&(frequences[i])) * 3) //чтобы было громче слышно на небольшом динамике //delay(100); // этого не нужно } } //delay(3000); // и этого } // эти строчки нужны return 0; // int main( void ) } // и while(1) void buzz(unsigned char pin, word frequencyInHertz, word timeInMilliseconds) // по сути это { // генератор частоты long delayAmount = (long)(long(1000000) / (long)frequencyInHertz); // имеет 3 параметра long loopTime = (long)(((long)timeInMilliseconds * 500) / delayAmount); // 1 - пин for (long i = 0; i < loopTime; i++) // 2 - частота { // 3 - длительность digitalWrite(pin, HIGH); // генерируем импульсы нужной частоты delayMicroseconds(delayAmount); digitalWrite(pin, LOW); delayMicroseconds(delayAmount); } } Размер скетча в двоичном коде: 976 байт (из 1 024 байт максимум)Как видите, добавления срабатывания при нажатии на кнопку превысило 1024 байта и пришлось вставлять кусочки кода Си чтобы уместиться в attiny13. Частоту поднял строках buzz(PIN_BUZZER, pgm_read_word(&(frequences[i])) * 3, 2 * pgm_read_word(&(durations[i]))); тем самим умножив генерируемые частоты, как Вы поняли на три, это чисто мой каприз, можете ничего не умножать вообще. Если Вы опытный ардуинщик, то думаю заметите в коде что я сделал программную подтяжку PULLUP резистора к порту PB4. Для тех кто не знает делается это так: Выставляем порт на вход и подаём на него логическую единицу. Теперь на порту будет напряжение, примерно равно напряжению питания, если этот порт закоротить на землю то он изменит своё состояние с логической единицы на логический ноль, причём микроконтроллер при этом не будет страдать, так как используется внутренний резистор, номинал которого 10-100 кОм. Сделал я это чисто для экономии размеров платы, можно было просто подпаять резистор на 10 кОм к плюсу питанию и нужному порту, при нажатии на кнопку мы «притягиваем порт к земле» и на нём будет логической ноль. Добавляю код на чистом AVR-С для тру AVR'щиков:Код на AVR-С
// by @tartakynov:
// http://youtu.be/5R7NeQkVS_8
// and me — vk.com/razniepodelki #define F_CPU 1200000UL // Частота МК в герцах
#include // библиотека ввода вывода
#include // библиотека для работы с задержками
#include // нужно для PROGMEM #define PIN_BUZZER 2 // PB2 Динамик
#define BUTTON 4 // PB4 Кнопка #define COUNT_NOTES 39 // количество нот word frequences[COUNT_NOTES] PROGMEM = { // тут лежат частоты 392, 392, 392, 311, 466, 392, 311, 466, 392, 587, 587, 587, 622, 466, 369, 311, 466, 392, 784, 392, 392, 784, 739, 698, 659, 622, 659, 415, 554, 523, 493, 466, 440, 466, 311, 369, 311, 466, 392 }; word durations[COUNT_NOTES] PROGMEM = { // тут их длительность 350, 350, 350, 250, 100, 350, 250, 100, 700, 350, 350, 350, 250, 100, 350, 250, 100, 700, 350, 250, 100, 350, 250, 100, 100, 100, 450, 150, 350, 250, 100, 100, 100, 450, 150, 350, 250, 100, 750 }; //void setup()
//{ int main( void ) // это аналог void setup(), для экономии места
{ DDRB |= (1

Источник: https://habr.com/post/234763/

Музыкальный звонок на ATTINY2313 с усилителем и SD картой — Разработки и доработки схем

Данный звонок модификация звонка с сайта http://www.getchip.net/posts/087-attiny2313-sd-card-talking-device/. В оригинальном варианте нет усилителя и был косяк в прошивке. Усилитель сразу включался при подачи напряжения питания. Глюк в прошивке был исправлен. В качестве усилителя использован TDA7056A. Его мощности вполне хватает.

При подачи напряжения питания на звонок на 9 выводе ATTINY2313 появляется высокий уровень сигнала запрещая этим работу усилителя. При нажатии кнопки вызова на 9 выводе ATTINY2313 появляется низкий сигнал включая усилитель мощности. После окончания проигрывания фрагмента мелодии на 9 выводе  ATTINY2313 формируется высокий уровень и выключается усилитель.

Резисторами R8 и R10 устанавливается напряжение питания усилителя. При значениях резисторов R8 R10 которые на схеме питание около 7.5В при входном 12В. R8 можно совсем выкинуть но тогда  напряжение питание усилителя будет близко к входному питания всей схемы. Использованы два регулятора напряжения LM1117 по причине того , что для регулятора 3.3В максимальное входное 7В.

По этому первый понижает напряжение до 5В , а второй уже до 3.3В. Если у Вас входное меньше 7В то первый регулятор можно выкинуть. Контакты K1 и K2 для подключения динамика. Карту памяти использовать до 2Гб отформатировать обязательно в формате FAT16 или просто FAT. Карта памяти фирмы SP (Silicon Power) не захотела работать. Отлично работают карточки памяти Transend.

Плата и схема сделаны в программе DipTrace . Все необходимые файлы найдете в конце статьи.

Для корректной работы устройства звуковые файлы, расположенные на SD карте, должны соответствовать определенным требованиям:

a) Формат файла должен быть – несжатым WAV.Параметры файла следующие:– Битрейт – частота дискретизации (Frequency) – 32000 Гц;– Количество каналов (Channels) – 1 (mono);– Размерность (Sample size) – 8 бит.

Еще возможно такое сокращение –WAV PCM 8U

b) Файл должен быть назван особым образом. Для того чтобы устройство знало какой файл первый, второй, третий и т.д. первый символ имени файла должен быть заглавной буквой латинского алфавита (остальная часть названия, как и расширение файла – игнорируется).

Например, корректными будут следующие названия файлов:

А_******* – первый трек

B_*******– второй трек

C *******– третий трек

В качестве аудиоконвертора файлов использовал программу Audioconverter. 

Запускаем программу и ставим настройки как на фото:

В меню «Файл» открываем нужные фрагменты МР3 файлов и нажимаем «Convert Now». 

Копируем полученные файлы на флешку , вставляем в звонок и наслаждаемся ))

Индикация работы звонка

Различные режимы работы устройства отображаются определенным цветовым кодом светодиодов:

— мигает красный светодиод — отсутствует SD карта или ее тип не поддерживается устройством;- горит красный светодиод – SD карта поддерживается и удачно проинициализировалась, но карта отформатирована не в FAT16;

— горит зеленый светодиод – SD карта удачно проинициализировалась, найдена нужная файловая система и устройство готово воспроизводить трек – ожидание команды;

— мигает зеленый светодиод – устройство воспроизводит трек;
— горит зеленый, кратковременно загорается красный , опять горит зеленый– не найден трек;
 

Схема

Прошивка, плата, схема

Источник: https://radiosxemy.ru/shemy/muzykalnyy-zvonok-na-attiny2313-s-usilitelem-i-sd-kartoy/

Звонок и MMC/SD карта памяти

В Сети водится большое множество разных схем дверных звонков на микроконтроллерах, но просмотрев их, не смог найти для себя ничего подходящего.

Хотелось бы, чтобы звонок мог воспроизводить много мелодий, как простых, так и полифонических или просто аудиофрагменты, а так же любые их комбинации и чтобы набор мелодий можно было легко менять не отключая звонка.

Самым простым решением для воспроизведения голоса и полифонии является проигрывание содержимого wav-файла через ЦАП или ШИМ-модулятор. Первый вариант проще в реализации (благо, выводов у меги8 для 8-битного ЦАПа хватает), и не требует последующей фильтрации сигнала.

Поскольку wav-файлы занимают много места, для их хранения нужен достаточно емкий носитель. Но с бурным развитием индустрии флеш-памяти и флеш карт этот вопрос решается сам собою. Для хранения мелодий удобно использовать карты памяти MMC и SD/SDHC, т.к.

эти карты поддерживают режим низкоскоростного доступа (для наших целей его будет более, чем достаточно) совместимый и шиной ISP, что сильно упрощает программную реализацию.

Еще один большой плюс использования карт памяти — их всегда можно перезаписать на компьютере.

Вообщем, вопрос остается только в представлении данных на карте: можно хранить мелодии в виде файлов стандартной файловой системы (например FAT16), а можно придумать свой двоичный формат.

В первом случае для записи мелодий будет достаточно только компьютера с картридером, но при этом сильно усложняется написание управляющей программы для звонка — библиотеки, реализующие работу с FAT16 существуют уже готовые, но они требуют ощутимо много памяти — потребуется МК с минимум 16КБ Flash-а и 1..2КБ RAM.

Во втором случае разработка звонка значительно упрощается, но для записи мелодий на компьютере пришлось бы разрабатывать специальный драйвер, для поддержания нестандартной «файловой системы», иначе, операционная система просто не распознала бы карту (последнее относится только к Windows, в *nix-системах запись «сырых» даных на накопитель никаких проблем не вызывает).

Но существует еще третий, компромиссный вариант: на карте памяти создается один большой файл, в начале которого записывается некая сигнатура, после которой помещаются собственно «сырые» данные.

Управляющая программа просто находит эту сигнатуру, вместо того, чтобы анализировать FAT и собирать файл «по кусочкам», и может считывать нужные данные просто пропустив блоки MBR и FAT.

Тогда для замены мелодий достаточно перезаписать один файл, созданный специальным компилятором. Этот вариант и был реализован.

Схема цифровой части получившегося звонка показана на рисунке.

Микроконтроллер ATMega8 включен по типовой схеме, к его порту D подключен ЦАП на резисторах R3 ..R10, R11 ..R17, с выхода которого (на схеме AUDIO OUT) сигнал поступает на усилитель.

Карта памяти вставляется в разъем X1 и питается через стабилизатор IC2. Вывод PC5 МК подключен к джамперу, который используется загрузчиком кода прошивки. Выводы PC0..

PC4 остались незадействованы, поэтому, подключил к ним светодиоды (анодами к МК и катодами на землю), мигающие в зависимости от проигрываемой ноты или амплитуды аудиофрагмента.

К выводу PB0 подключается кнопка «застопоривания» смены мелодий: если она не нажата, мелодии будут проигрываться одна за другой, по списку, если нажата — будет зациклена последняя проигрываемая мелодия. Вывод PB1 управляет реле, которая самоблокирует кнопку звонка.

В схеме использован кварц на 11059200Гц, в случае использования другого резонатора, надо изменить значение F_CPU в файле config.h.
Схема аналоговой части состоит из усилителя на основе TDA2003, включенной по типовой схеме и стабилизаторе 5В.

Транзистр T1 управляет реле, подключаемой к выводам R1.1, R1.2, вход X1 подключается к выходу PB1 МК. Вход INP подключается через переменный резистор (10 КОм) — регулятор громкости к выходу ЦАП (крайние выводы резистора идут на AUDIO OUT и землю, а вертушек — на INP).

Схемы и разводка печатных плат прилагаются (Eagle). Надо заметить, что на плате аналоговой части микросхемы устанавливаются на общий радиатор, который одновременно соединяет их земли. Это позволило развести одностороннюю плату без перемычек.

В качестве корпуса я использовал бокс для двух выключателей-автоматов.

Слот для MMC-карты был вырезан из разъема для картриджа от игровой приставки, Кнопку звонка я вывел на лицевую панель (она идет в параллель той кнопке, что находится в подъеде) для того, чтобы можно было выбирать мелодию циклическим переключением. Так же для удобства добавил кнопку, отключающую звук. Вместо 5 светодиодов, как нарисовано на схеме, sподключил только 4 — разных цветов.

Внешний вид того, что получилось.

Внутренности

В корпусе

Пару слов о резисторах R3 .. R10, R11 .. R17: их надо выбрать с минимальными отклонениями сопротивления и соотношением 2:1. Я отбирал их из 50шт каждого номинала так, чтобы отклонение сопротивления не превышало процента.

Для компиляции мелодий написана утилита MelodyFlasher. Перед первой записью надо иннициализировать карту памяти — отформатировать ее и создать файл данных, занимающий все доступное место. Это делается следующей командой:

mf i -d

Программа позволяет формировать мелодии из нотных фрагментов, записываемых в формате мелодий для телефонов Motorola T720. Для прослушивания и редактирования мелодий удобно использовать программу Melody Player for Motorola, в ней есть большая база разных мелодий.

Аудиофрагменты надо преобразовать в формат WAV, обязательно нежатый и монофонический. Гарантированно получить читаемый формат можно средствами «Звукозаписи» в Windows. После подготовки всех фрагментов создается файл списка (в прилагаемом примере — melodies.lst).

В каждой строке этого файла описывается одна мелодия, которая может состоять из любого числа .mel-фрагментов (нотная запись) и .wav-фрагментов, имена файлов этих фрагментов просто записываются в одну строку через запятую (см. прилагаемый пример).

Стоит заметить, что если один и тот же файл фрагмента используется в мелодиях несколько раз, то в скомпилированный файл данных он будет включен единожды, без дублирования, т.е., файлы получаются достаточно компактные.

Компиляции мелодий и их запись на карту производится следующей командой:

mf u -d -f

Прошивка и все исходники прилагаются. Для работы с MMC/SD использована библиотека от Roland Riegel, которая была несколько модифицирована.

Файлы:

Прошивка (кварц на 11.0592 МГц)

Прошивка (кварц на 12 МГц)

Исходники прошивки

Схема и плата для Eagle

MelodyFlasher

Исходники MelodyFlasher

Пример мелодий

Все вместе одним архивом

Еще один вариант печатной платы для SMD-компонент был прислан читателем. Плата выглядит так:

Плата для SMD (Sprint Layout)

Источник: http://trolsoft.ru/ru/sch/zvonokmmc

Музыкальный звонок на микроконтроллере

Источник: http://elektrosat.ru/news/1/2012-05-09-202

Простой музыкальный дверной звонок своими руками.Микроконтроллер pic12f675. — Лайн видеоролики

4 лет назад

Селективный металлоискатель с определением металлов-черный, цветной и световой индикацией Продаю готовые платы (https://www.olx.ua/obyavlenie/malysh-fm2-v2-mini-metaloiskatel-IDtwBYM.html )

7 меc назад

ТОП 10 СХЕМ ДЛЯ НАЧИНАЮЩИХ РАДИОЛЮБИТЕЛЕЙ Всем привет, сейчас я покажу и расскажу про топ 10 схем, для начинающих радиолюбителей. Схемы здесь простые.Список схем: 1. Регулятор напряжения; 2. Схема, которая позволит светится светодиоду от 0.3 В; 3. Беспроводная передача электричества; 4. Мультивибратор; 5.

Пищалка; 6. Повышающий преобразователь; 7. Блок питания с регулеровкой выходного напряжения; 8. Радиопередатчик; 9. Слушать свет); 10. Усилитель звука. Все схемы данных устройств в видео. Идея взята с канала BAGUVIX: https://www.youtube.com/channel/UCaAP8m7-VDTHhoTf68L_2bw Я в вк: https://vk.

com/vkkkkc Повышающий DC-DC преобразователь: https://youtu.be/-gNOI6ysZE8 Радиопередатчик: https://youtu.be/X2X6hVgFO2M Почти вечный фонарик своими руками: https://youtu.be/lw0ib11MyRk Бесплатное электричество: https://youtu.be/gbmw17KVLRI И многое другое на канале: https://www.youtube.

com/channel/UC1kFlnorqDNu9yxp-dhF5Sw?view_as=subscriber

2 лет назад

I saw this $10 Microchip PIC demo board on eBay and thought it would be a good basis for some PIC programming tutorials. Of course you also need a programmer, but there are some cheap clone programmers on eBay too. Watch me faff about for 24 minutes trying to get my own program into the PIC12F675.

4 лет назад

Сделай сам.Переделка беспроводного дверного звонка на питание от li Ion 3.7 v аккамулятора. —————————————————— ССЫЛКА НА ИНСТРУМЕНТЫ: USB тестер: https://goo.gl/n4hMNP USB нагрузка: https://goo.gl/UDA4lQ USB паяльник по супер низкой цене: — https://goo.

gl/2SCXfo Набор хороших отверток: https://goo.gl/oyRTYK Штангенциркуль: https://goo.gl/1GRgP5 Модельный скальпель: https://goo.gl/Hj58Vz 50 шт лезвий для скальпеля: https://goo.gl/18heTP Хорошие кусачки: — https://goo.gl/9Y3TtF ——————————————————— Группа В контакте: http://vk.

com/sxematiki Группа ОК: http://ok.ru/group/52935338819757 ПОДПИШИСЬ НА КАНАЛ «СХЕМАТИК» — http://goo.gl/vd1Yqs И не пропусти новые видео!!! ——————————————————— Я зарабатываю на YOUTUBE тут: http://join.air.io/sxema Мой заработок на Aliexpress: https://ali.epn.

bz/?id=b8f14 Я зарабатываю на Admitad тут : https://goo.gl/EETRDc ——————————————————— САМЫЕ ПОПУЛЯРНЫЕ РАЗДЕЛЫ НА Али экспресс. Горящие товары — https://goo.gl/clE3cZ Молл проверенные магазины — https://goo.gl/gXJX5D ТОП 20 лучших цен года — https://goo.

gl/SxeKP8 —————————————————— АЛИ ЭКСПРЕСС на русском: http://goo.gl/dURZ37

6 лет назад

PIC12F675 como ADC 10 bits con memoria EEPROM editable con dos botones y desplegable en display 8×2 LCD conectado a un 74LS164 (librería LCD de 3 pines). Se reciben quejas y sugerencias 😛

3 лет назад

Собираем из дешевого набора электронных деталей простейший дверной звонок. Набор куплен на AliExpress за 1$. Здесь было куплен сей набор http://www.aliexpress.com/item/Perfec… Простой музыкальный дверной звонок https://www.youtube.

com/watch?v=5Z0rHrMNki8 Флюс https://www.youtube.com/watch?v=qtzrN9Al5go Шприц для флюса https://www.youtube.com/watch?v=3Qrl2szVYJE Кусачки https://www.youtube.com/watch?v=UMcCJ2YhU5E Аккумуляторы 18650 https://www.youtube.

com/watch?v=-enj1ZOZI1c

3 лет назад

Показан самый простой способ «прошивки» PIC микроконтроллера через программатор PICkit 3, который был заказан из Китая: https://goo.gl/HrDmav

3 лет назад

В этом видео я опишу работу схемы управления синтезатора мелодии в дверном звонке JOIN VSP GROUP PARTNER PROGRAM: https://youpartnerwsp.com/ru/join?95135

4 лет назад

Схема, фьюзы, фекс файл, прошивка и код лежат: http://habrahabr.

ru/post/234763/ Диапазон питания примерно от 2 В до 6 В(от двух до четырех батареек формата AA) в идеале напряжение 3-4 В, тоесть аккумулятор формата 18650(литиевый аккумулятор, точней литий ионный, он же li-ion), но желательно с защитой, так как я пока не реализовал никакой защиты от глубокого разряда.

Так как МК(микроконтроллер) не может самостоятельно вытянуть достаточную громкость для того чтобы было слышно звонок по всему доме я добавил NPN транзистор 2N3904, довольно таки распространенный транзистор, в принципе может подойти любой транзистор который потянет динамик, в моём случае транзистор рассчитан на 100 мА. Тиню прошивал при помощи Arduino, от этом писал вот тут: http://habrahabr.ru/post/234477/ . . Моя партнёрка: http://goo.gl/HkCkH3 Паблик ВКонтакте: https://goo.gl/p8Z9YB Мой live каннал: http://goo.gl/6p1PFt Подписка на основной канал: http://goo.gl/VPytbj

4 лет назад

Источник: https://videoline63.ru/watch/prostoy-muzikalniy-dvernoy-zvonok-svoimi-rukamimikrokontroller-pic12f675/BtmqoBfiZ3k

Музыкальный звонок на Attiny13 Arduino Imperial March(перезалито)

UPD Перезалил файлы, добавил код на Си.

Давно хотел себе такой музыкальный дверной звонок, чтобы при нажатии на кнопку играл марш империи(Imperial March или Imperial March or Darth Vader's Theme) из «Звёздных войн», они же Star Wars.

( Полная статья с доработанной прошивкой тут http://habrahabr.ru/post/234763/ )

Как видно из названия, главный компонент устройства — микроконтроллер Attiny13, его применение сделало возможным сделать размеры платы в несколько раз меньше по размерах чем спичечной коробк.

Можно оценить размеры платы.

Диапазон питания примерно от 2 В до 6 В(от двух до четырех батареек формата AA) в идеале напряжение 3-4 В, то есть аккумулятор формата 18650(литиевый аккумулятор, точней литий ионный, он же li-ion), но желательно с защитой, так как я пока не реализовал никакой защиты от глубокого разряда. Так как МК(микроконтроллер) не может самостоятельно вытянуть достаточную громкость для того чтобы было слышно звонок по всему доме я добавил NPN транзистор 2N3904, довольно таки распространенный транзистор, в принципе может подойти любой транзистор который потянет динамик, в моём случае транзистор рассчитан на 100 мА. Как прошивать и программировать тиньки при помощи ардуино я показал в этом видео:
Скажу сразу, код нагуглил:В описании к видео есть ссылка на страничку с рабочим кодом. 

А вот собственно из странички код из автора видео:

#include  // by @tartakynov #define PIN_BUZZER 0
#define COUNT_NOTES 39 word frequences[COUNT_NOTES] PROGMEM = {
  392, 392, 392, 311, 466, 392, 311, 466, 392,
  587, 587, 587, 622, 466, 369, 311, 466, 392,
  784, 392, 392, 784, 739, 698, 659, 622, 659,
  415, 554, 523, 493, 466, 440, 466,
  311, 369, 311, 466, 392 };
word durations[COUNT_NOTES] PROGMEM = {   350, 350, 350, 250, 100, 350, 250, 100, 700,
  350, 350, 350, 250, 100, 350, 250, 100, 700,
  350, 250, 100, 350, 250, 100, 100, 100, 200,
  100, 350, 250, 100, 100, 100, 200,
  100, 350, 250, 100, 750 }; void setup()
{
  pinMode(PIN_BUZZER, OUTPUT);
} void loop()
{
  for (byte i = 0; i < COUNT_NOTES; i++)   {     buzz(PIN_BUZZER, pgm_read_word(&(frequences[i])), 2 * pgm_read_word(&(durations[i])));     delay(100);   }   delay(3000); } void buzz(unsigned char pin, word frequencyInHertz, word timeInMilliseconds) {   long delayAmount = (long)(long(1000000) / (long)frequencyInHertz);   long loopTime = (long)(((long)timeInMilliseconds * 500) / delayAmount);   for (long i = 0; i < loopTime; i++)   {       digitalWrite(pin, HIGH);     delayMicroseconds(delayAmount);     digitalWrite(pin, LOW);     delayMicroseconds(delayAmount);   } }

Прошил, включаю, прикольно, но… как-то звучит не так, что-то быстровато моментами, да и частота маленькая, увеличил частоту в 3 раза(смотрите комментарии на 50 строчке кода), ато слышно маленбко слабовато если использовать маленький динамик типа такого:

Немного изменил скетч, добавил кнопку и поднял частоту и маленько описал скетч:

// by @tartakynov:
// http://youtu.be/5R7NeQkVS_8
// and me — vk.com/razniepodelkiblogspot
// как прошить тини: 
// http://razniepodelki.blogspot.com/2014/05/attiny13-arduino.html
// Этот код взято из статьи:
// http://razniepodelki.blogspot.com/2014/08/attiny13-arduino.html #define F_CPU 1200000L // Частота МК в герцах
#include  // нужно для PROGMEM #define PIN_BUZZER 2 // PB2 Динамик
#define BUTTON 4 // PB4 Кнопка #define COUNT_NOTES 39 word frequences[COUNT_NOTES] PROGMEM = { // тут лежат частоты
  392, 392, 392, 311, 466, 392, 311, 466, 392,
  587, 587, 587, 622, 466, 369, 311, 466, 392,
  784, 392, 392, 784, 739, 698, 659, 622, 659,
  415, 554, 523, 493, 466, 440, 466,
  311, 369, 311, 466, 392 }; word durations[COUNT_NOTES] PROGMEM = { // тут их длительность
  350, 350, 350, 250, 100, 350, 250, 100, 700,
  350, 350, 350, 250, 100, 350, 250, 100, 700,
  350, 250, 100, 350, 250, 100, 100, 100, 450,
  150, 350, 250, 100, 100, 100, 450,
  150, 350, 250, 100, 750 }; //void setup()
//{
  
int main( void ) // это аналог void setup(), для экономии места
{
  pinMode(PIN_BUZZER, OUTPUT); // инициализация пинов
  pinMode(BUTTON, INPUT); // подключаем подтягивающий резистор
  digitalWrite(BUTTON, HIGH); // чтобы кнопка возвращала
  //LOW при нажатии   //}
  //void loop()
  //{
    
  while(1){ // аналог void loop()(вечный цикл)
    if (digitalRead(BUTTON) == LOW) { // когда кнопка нажата
      for (byte i = 0; i < COUNT_NOTES; i++) // собственно проигрываем мелодию       {         buzz(PIN_BUZZER, pgm_read_word(&(frequences[i])) * 3, 2 * pgm_read_word(&(durations[i])));
        // изначально было:
        // buzz(PIN_BUZZER, pgm_read_word(&(frequences[i])), 2 * pgm_read_word(&(durations[i])));
        // но я умножил частоту на 3
        //(pgm_read_word(&(frequences[i])) * 3)
        //чтобы было громче слышно на небольшом динамике
        //delay(100); // этого не нужно
      }
    }
    //delay(3000); // и этого
    
  }         // эти строчки нужны
  return 0; // int main( void )
}           // и while(1) void buzz(unsigned char pin, word frequencyInHertz, word timeInMilliseconds) // по сути это
{                                                                            // генератор частоты
  long delayAmount = (long)(long(1000000) / (long)frequencyInHertz); // имеет 3 параметра
  long loopTime = (long)(((long)timeInMilliseconds * 500) / delayAmount); // 1 — пин
  for (long i = 0; i < loopTime; i++) // 2 - частота   {                                                                          // 3 - длительность     digitalWrite(pin, HIGH); // генерируем импульсы нужной частоты     delayMicroseconds(delayAmount);     digitalWrite(pin, LOW);     delayMicroseconds(delayAmount);   } } Данный код, должен быть ардуино совместимым и работать даже на Arduino Uno, Arduino Nano или же Arduino Pro Mini.

Код на тини13 занимает много, «Размер скетча в двоичном коде: 976 байт (из 1 024 байт максимум)» причём приходилось даже вставлять куски кода на Си чтобы влезть в 1024 байта, на Си этот код бы весил ну как минимум на треть меньше.

———————————————————————————————-

Добавил код на Си:

// by @tartakynov:
// http://youtu.be/5R7NeQkVS_8
// and me — vk.com/razniepodelkiblogspot
// как прошить тини: 
// http://razniepodelki.blogspot.com/2014/05/attiny13-arduino.html
// Этот код взято из статьи:
// http://razniepodelki.blogspot.com/2014/08/attiny13-arduino.html #define F_CPU 1200000UL  // Частота МК в герцах
#include  // библиотека ввода вывода
#include  // библиотека для работы с задержками
#include  // нужно для PROGMEM #define PIN_BUZZER 2 // PB2 Динамик
#define BUTTON 4 // PB4 Кнопка #define COUNT_NOTES 39 word frequences[COUNT_NOTES] PROGMEM = { // тут лежат частоты
  392, 392, 392, 311, 466, 392, 311, 466, 392,
  587, 587, 587, 622, 466, 369, 311, 466, 392,
  784, 392, 392, 784, 739, 698, 659, 622, 659,
  415, 554, 523, 493, 466, 440, 466,
  311, 369, 311, 466, 392 }; word durations[COUNT_NOTES] PROGMEM = { // тут их длительность
  350, 350, 350, 250, 100, 350, 250, 100, 700,
  350, 350, 350, 250, 100, 350, 250, 100, 700,
  350, 250, 100, 350, 250, 100, 100, 100, 450,
  150, 350, 250, 100, 100, 100, 450,
  150, 350, 250, 100, 750 }; //void setup()
//{ int main( void ) // это аналог void setup(), для экономии места
{
  DDRB |= (1

Источник: http://razniepodelki.blogspot.com/2014/08/attiny13-arduino.html

Простой музыкальный дверной звонок своими руками.Микроконтроллер pic12f675. — Подборка отличного видео с YouTube

4 год назад

Селективный металлоискатель с определением металлов-черный, цветной и световой индикацией Продаю готовые платы (https://www.olx.ua/obyavlenie/malysh-fm2-v2-mini-metaloiskatel-IDtwBYM.html )

8 год назад

Подписывайтесь на нашу группу Вконтакте — http://vk.com/chipidip, и Facebook — https://www.facebook.com/chipidip * В настоящее время, приобретая такое, казалось бы, заурядное устройство, как дверной звонок, легко запутаться в многообразии предлагаемых моделей.

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

Предлагаемый набор позволит радиолюбителю собрать простой, надежный и эффективный двух — тональный дверной звонок. Устройство, изготовленное из этого набора, можно также использовать в качестве блока звуковой индикации или сигнализации. Правильно собранное устройство не требует настройки.

Конструктивно устройство выполнено на печатной плате из фольгированного стеклотекстолита с размерами 29×25 мм. Конструкция предусматривает установку платы в корпус, для этого на плате имеется монтажное отверстие под винт диаметром 3 мм.

Подав на собранное устройство напряжение питания 3 вольта от любого подходящего источника — это может быть как блок питания, так и батареи, мы услышим звук двух — тонального дверного звонка. Покупая стандартный дверной звонок в магазине электротоваров, вы получите стандартную белую пластиковую коробку, дизайн которой будет не очень интересным.

Да и в свежеотремонтированном холле такая коробка выглядит не очень эстетично. Собирая звонок своими руками, вы всегда сможете подобрать нужный вам корпус, который идеально впишется в любой интерьер, не смотрясь при этом как чужеродный элемент. Ваши возможности ограничивает только Ваше воображение.

2 год назад

Si ya estás cansado de tu timbre de puerta, este te viene al pelo! Если тебе надоел твой дверной звонок, этот тебе как раз!

7 мес назад

ТОП 10 СХЕМ ДЛЯ НАЧИНАЮЩИХ РАДИОЛЮБИТЕЛЕЙ Всем привет, сейчас я покажу и расскажу про топ 10 схем, для начинающих радиолюбителей. Схемы здесь простые.Список схем: 1. Регулятор напряжения; 2. Схема, которая позволит светится светодиоду от 0.3 В; 3. Беспроводная передача электричества; 4. Мультивибратор; 5.

Пищалка; 6. Повышающий преобразователь; 7. Блок питания с регулеровкой выходного напряжения; 8. Радиопередатчик; 9. Слушать свет); 10. Усилитель звука. Все схемы данных устройств в видео. Идея взята с канала BAGUVIX: https://www.youtube.com/channel/UCaAP8m7-VDTHhoTf68L_2bw Я в вк: https://vk.

com/vkkkkc Повышающий DC-DC преобразователь: https://youtu.be/-gNOI6ysZE8 Радиопередатчик: https://youtu.be/X2X6hVgFO2M Почти вечный фонарик своими руками: https://youtu.be/lw0ib11MyRk Бесплатное электричество: https://youtu.be/gbmw17KVLRI И многое другое на канале: https://www.youtube.

com/channel/UC1kFlnorqDNu9yxp-dhF5Sw?view_as=subscriber

4 год назад

Mood lamp using PIC 12F675 and two RGB LEDs. Thanks picprojects.org.uk for the firmware. For more information and firmware see the link: http://picprojects.org.uk/projects/rgb/index.htm

4 год назад

Сделай сам.Переделка беспроводного дверного звонка на питание от li Ion 3.7 v аккамулятора. —————————————————— ССЫЛКА НА ИНСТРУМЕНТЫ: USB тестер: https://goo.gl/n4hMNP USB нагрузка: https://goo.gl/UDA4lQ USB паяльник по супер низкой цене: — https://goo.

gl/2SCXfo Набор хороших отверток: https://goo.gl/oyRTYK Штангенциркуль: https://goo.gl/1GRgP5 Модельный скальпель: https://goo.gl/Hj58Vz 50 шт лезвий для скальпеля: https://goo.gl/18heTP Хорошие кусачки: — https://goo.gl/9Y3TtF ——————————————————— Группа В контакте: http://vk.

com/sxematiki Группа ОК: http://ok.ru/group/52935338819757 ПОДПИШИСЬ НА КАНАЛ «СХЕМАТИК» — http://goo.gl/vd1Yqs И не пропусти новые видео!!! ——————————————————— Я зарабатываю на YOUTUBE тут: http://join.air.io/sxema Мой заработок на Aliexpress: https://ali.epn.

bz/?id=b8f14 Я зарабатываю на Admitad тут : https://goo.gl/EETRDc ——————————————————— САМЫЕ ПОПУЛЯРНЫЕ РАЗДЕЛЫ НА Али экспресс. Горящие товары — https://goo.gl/clE3cZ Молл проверенные магазины — https://goo.gl/gXJX5D ТОП 20 лучших цен года — https://goo.

gl/SxeKP8 —————————————————— АЛИ ЭКСПРЕСС на русском: http://goo.gl/dURZ37

3 год назад

Показан самый простой способ «прошивки» PIC микроконтроллера через программатор PICkit 3, который был заказан из Китая: https://goo.gl/HrDmav

2 год назад

I saw this $10 Microchip PIC demo board on eBay and thought it would be a good basis for some PIC programming tutorials. Of course you also need a programmer, but there are some cheap clone programmers on eBay too. Watch me faff about for 24 minutes trying to get my own program into the PIC12F675.

3 год назад

Собираем из дешевого набора электронных деталей простейший дверной звонок. Набор куплен на AliExpress за 1$. Здесь было куплен сей набор http://www.aliexpress.com/item/Perfec… Простой музыкальный дверной звонок https://www.youtube.

com/watch?v=5Z0rHrMNki8 Флюс https://www.youtube.com/watch?v=qtzrN9Al5go Шприц для флюса https://www.youtube.com/watch?v=3Qrl2szVYJE Кусачки https://www.youtube.com/watch?v=UMcCJ2YhU5E Аккумуляторы 18650 https://www.youtube.

com/watch?v=-enj1ZOZI1c

4 год назад

A quick project to test and demonstrate the PIC12F675 microcontroller digital I/O. Source code is here: http://pastebin.com/v4jpdkr8

3 год назад

Поддержи канал! Заказывай с aliexpress по ссылке канала http://goo.gl/MHjQqG ВОЗВРАЩАЙТЕ 10%!!!!! от покупок на Aliexpress https://goo.gl/5LNbGr Очень простые и функциональные часы на Atmega8. Питаются от батареек. Прошивка firmware v4, datasheet на русском, схемы, программа для прошивки в этом архиве: http://yadi.sk/d/NdL20F2HnxpnH Программатор: https://goo.

gl/TaEGV3 Радиоконструктор-часы: http://goo.gl/F94nPQ Канал радиолюбителя Electro Stunts: http://youtube.com/channel/UCATledLj8ID67-G6hH7y19g ТВ из ноутбука: http://youtu.be/BAo2cEqjMDc?t=279 Тут самая подробная инструкция о том как самому сделать часы на микроконтроллере Atmega8. Я покажу как прошить микроконтроллер, расскажу об устройстве чипа.

Мы вместе соберем программатор и все запрограммируем. Часы очень энергоэффективны и имеют минимальное потребление. Всего 10 микроампер в спящем режиме. Эти часы можно взять за базу и на их основе делать от малых до огромных часов, задача которых показывать точное время! Точность часов зависит только от кварца. В следующей прошивке будет корректировка времени.

00:29 Что такое микроконтроллер? 00:57 Что можно сделать на микроконтроллере? 01:02 Варианты схемы и внешний вид часов. 01:36 Схема RS-232 программатора (Ponyprog). 02:29 Прошивка микроконтроллера Atmega8 в программе Ponyprog и прошивка фузов (Fuse bit). 03:28 Прошивка микроконтроллера Atmega8 в программе Khazama AVR programmer и прошивка фузов программатором USB ASP.

03:55 Fuse bit фузы на русском. Что это и зачем? 04:57 Определение типа семисегментного индикатора с общим анодом или катодом. 05:29 Схема простых часов. Собираем часы. 06:51 Схема энергонезависимых часов с батарейкой и индикацией секунд. 07:13 Включаем. Обзор функций. 08:14 Энергопотребление. 08:27 Эмуляция в протеусе. Это видео: http://youtu.

be/IY8YyFwUa60 Еще много видео: http://youtube.com/Happinesstoom/videos

3 год назад

Источник: http://AlexKolobok.ru/watch/BtmqoBfiZ3k

Ссылка на основную публикацию

В предлагаемом звонке для хранения мелодий или речевых сообщений применена карта памяти SD или ММС, отформатированная под файловую систему FAT16. Воспроизводятся звуковые файлы формата WAV. Кроме звонка, устройство можно использовать как проигрыватель таких файлов.

Устройство (рис. 1) собрано на широко распространённом микроконтроллере PIC16F628A и имеет два режима работы, которые устанавливают выключателем SA1.

Верхнему по схеме положению его контактов соответствует режим «Проигрыватель», а нижнему — режим «Звонок». Микроконтроллер проверяет состояние контактов выключателя только один раз, сразу после включения питания.

Поэтому для смены режима необходимо отключить питание, установить выключатель в требуемое положение и затем снова подать питание.

В режиме «Звонок» после включения микроконтроллер DD1 производит настройку внутренних регистров, после чего переходит в спящий режим. При нажатии на кнопку SB1 («Звонок/Воспроизведение») микроконтроллер «просыпается», о чём свидетельствует включение светодиода HL1, подаёт питающее напряжение на карту памяти, инициализирует её и ищет звуковой файл. Поиск осуществляется по расширению WAV.

Найдя, микроконтроллер воспроизводит файл, отключает питание карты памяти, после чего снова «засыпает», а светодиод HL1 гаснет. При следующем нажатии на кнопку SB1 всё повторится, но будет воспроизведён следующий звуковой файл. На карту памяти можно записать до 512 мелодий или сообщений — это максимальное число записей в корневом каталоге для файловой системы FAT16.

После воспроизведения всех мелодий начнётся их повторное воспроизведение. Кнопки SB2, SB3 и SB4 в этом режиме не задействованы. В режиме «Проигрыватель» после подачи питания микроконтроллер также выполняет настройку внутренних регистров, включает питание карты памяти, проводит процедуру её инициализации, в случае успешного выполнения вспыхивает светодиод HL1.

Затем выполняется поиск WAV-файла, и когда он будет найден, микроконтроллер перейдёт к опросу состояния контактов всех кнопок. При нажатии на кнопку SB1 начнётся непрерывное последовательное воспроизведение всех звуковых файлов, имеющихся на карте памяти.

Нажатием на кнопку SB2 («Стоп») можно остановить проигрывание на текущей мелодии, а кнопками SB3 («Следующий») и SB4 («Предыдущий») осуществляют переключение файлов, что возможно как при проигрывании, так и после остановки воспроизведения.

При неудачной процедуре инициализации карты памяти микроконтроллер предпримет ещё одну попытку, и если она также окажется неудачной, прозвучат два коротких сигнала низкого тона, после чего микроконтроллер перестанет реагировать на команды.

В режиме «Звонок» при ошибке инициализации также прозвучат два коротких сигнала низкого тона, после чего микроконтроллер отключит питание карты и перейдёт в спящий режим. Если карта памяти перестанет отвечать на команды или просто «зависнет», в режиме «Проигрыватель» микроконтроллер сначала отключит, затем включит питание карты и заново ее проини-циализирует.

В режиме «Звонок» после «зависания» карты микроконтроллер просто отключит питание карты и «заснёт». При отсутствии WAV-файлов на карте памяти прозвучат три коротких сигнала низкого тона, после чего в режиме «Проигрыватель» устройство перейдёт к опросу состояния контактов кнопок, при нажатии на которые будет звучать тот же предупреждающий сигнал.

В режиме «Звонок» после сигнала об отсутствии WAV-файлов микроконтроллер отключит питание карты памяти и перейдёт в спящий режим. Если параметры WAV-файла не соответствуют требуемым значениям, например, неверная частота дискретизации, разрядность и т. д., прозвучит сигнал низкого тона продолжительностью одна секунда и в обоих режимах произойдёт переход к следующему файлу.

Для согласования логических уровней сигналов микроконтроллера и карты памяти установлены делители напряжения на резисторах R7, R8, R10, R13—R15. Звуковой сигнал формируется с помощью встроенного в микроконтроллер модуля ШИМ, частота работы которого в данном устройстве равна 78,12 кГц.

Сформированный сигнал сглаживается фильтром R12C10 и с регулятора громкости R17 поступает на УЗЧ, собранный на микросхеме DA2 TDA2003. Питается устройство от внешнего блока питания напряжением 9… 12 В. Питание микроконтроллера стабилизировано интегральным стабилизатором DA1 с выходным напряжением 5 В. На транзисторе VT1 собран стабилизатор напряжения 3,3 В для питания карты памяти.

Управление им осуществляет микроконтроллер по линиям порта RA3. При низком логическом уровне на этой линии транзистор VT1 закрыт, напряжение на его эмиттере равно нулю. При высоком уровне транзистор открыт и питающее напряжение поступает на карту памяти. Напряжение на базе транзистора стабилизировано стабилитроном VD1.

Устройство воспроизводит звуковые файлы формата WAV (PCM, 16 кГц, 8 разрядов, моно), файлы с другими параметрами проигрываться не будут. Поэтому, если необходимо, выбранные звуковые файлы перед записью на карту памяти преобразуют с помощью программы-конвертера (имена файлов могут быть любыми).

Файловая система FAT16 не пригодна для носителей информации, имеющих объём больше 2 Гбайт, поэтому это максимальный объём для карты памяти, которую можно использовать в устройстве. Были протестированы четыре карты microSD разных фирм и объёмов, это Kingston (1 Гбайт), Kingmax (512 Мбайт), Silicon Power (2 Гбайт), Transcend (1GB).

ММС карты также должны работать, но я не смог это проверить из-за их отсутствия. В устройстве применены постоянные резисторы МЛТ, переменный — СПЗ-4аМ, СПО, СП4-1, оксидные конденсаторы — импортные, остальные — керамические К10-17. Выключатель — ПД9-2, кнопки — TS-A3PS-130, но подойдут и другие аналогичные.

Стабилитрон КС139А можно заменить импортным с напряжением стабилизации 3,9 В, например 1N4730. Взамен транзистора КТ503В можно применить любой из серии КТ3102, а светодиода АЛ307БМ — также любой в пластмассовом корпусе диаметром 5 мм. Микроконтроллер установлен в панель. УЗЧ TDA2003 можно заменить микросхемой TDA2002, TDA2008, К174УН14, её необходимо установить на теплоотвод площадью не менее 60 см2. Динамическая головка —любая широкополосная мощностью 2…4 Вт с сопротивлением катушки 4…8 Ом. Разъём для карты памяти самодельный, поскольку готовый найти не удалось Он изготовлен из односторонне фольгированного стеклотекстолита и медной фольги. Из стеклотекстолита изготовлена печатная плата размерами 35×40 мм, на которой сделано семь контактных площадок. К площадкам припаяны пружинящие контакты от разъёма microSD неисправного сотового телефона. По контуру карты памяти вырезана П-образная направляющая, которая закреплена на плате. Сверху на направляющую припаяна медная фольга, которая прижимает карту к пружинным контактам

Внешняя кнопка звонка дублирует SB1. При длинном соединительном проводе для устранения влияния помех рекомендуется установить конденсатор С ёмкостью 0,1…

10 мкФ, а сам провод желательно применить экранированный (экран соединяют с общим проводом). Элементы R19 и С13 устанавливают в случае самовозбуждения УЗЧ на высокой частоте.

Источник питания — нестабилизированный сетевой блок питания с выходным напряжением 9… 12 В и током до 0,5 А.

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

Программа для микроконтроллера написана на ассемблере в среде MPLAB. Программирование проводилось с помощью программы IC-Prog 1.05D и JDM программатора, описанного в журнале «Радио», 2004, № 2, с. 51 (А. Долгий. «Программаторы и программирование микроконтроллеров»).

Автор разработки: Р. МУХУТДИНОВ Поделиться в социальных сетях