DS1307 | PIC микроконтроллеры
Опубликовано автором sarge
Начинаем продвижение по созданию усилителя. Первым делом я решил собирать мозги, так как именно от них зависит весь функционал периферии и эта часть имеет прямое отношение к тематике блога. Итак, что мы имеем.
- PIC16f877a
- DS1307
- DS18b20
Что требуется получить в итоге?
В первом приближении создаем просто базу с часами реального времени, термометром (снятие показаний температуры внутри корпуса, для регулировки кулера), USARTом, и эта база снабжена выводами под все возможные порты, для последующего расширения функционала – этакий конструктор для периферии усилителя.
Читать далее →
Рубрика: PIC микроконтроллеры, Другое, Схемотехника | Метки: 1-wire, DS1307, DS18b20, I2C, pic16f877a, QT, RTC, UART, USART | Комментарии (Опубликовано автором sarge
Немного предыстории: Приобрел я тут на днях себе колонки вега 25AC-109 (которые поновее и 8 Ом), подключил их к своему самодельному усилку на tda7294, запихнутому в корпус от старого комповского БП (правда с оговоркой, что трансформатор находится вне корпуса), меня вроде как и звучание вполне устраивает, но хочется чего то эстетически выдержанного, ну и плюс заодно научиться работать с некоторой периферией.
Итак, что же необходимо сделать:
- Собственно два усилителя на два канала на tda7294 с аудиопроцессором (управление как минимум громкостью + режим Mute по шине I2C).
- Два блока питания: один для питания цифры и кулера(ов), второй мощный с двумя выходными напряжениями для питания усилителя.
- Мозг усилителя, в первом приближение плата с PIC16f877a + DS1307 + DS18b20 на борту и выводами на все порты ввода/вывода для дальнейшего использования с чем угодно.
- Модуль радиоприемника+радиопередатчика для беспроводной передачи звука на усилитель.
- Модуль интернет-радио (если хватит на это терпения).
- GUI для управления через USB.
- ЖК дисплей + кнопки железного управления.
- Управление через ИК.
- Регулировка громкости и управление меню с помощью энкодера.
- Корпус (чувствую будет самым геморным пунктом).
- Меню для ЖК дисплея.
- Low VDD Detector.
[Проект находится в стадии разработки и периодически данная статья будет дополняться]
Наглядная структурная схема
update#1: мозги готовы в таком виде, в котором и планировались, ссылка в пункте 3.
update#2: добавлено подключение LCD + функции вывода температуры и времени на него.
update#3: добавлены процедуры обработки вращения энкодера.
update#4: обновлены процедуры обработки вращения энкодера.
update#5: создал меню для ЖК дисплея.
update#6: внедрил ИК управление в девайс.
update#7: готов источник питания цифры и кулеров.
update#8: готов источник питания для усилков.
update#9: готовы сами усилители на tda7294.
update#10: готова плата с аудиопроцессором tda8425
update#11: готов Low Vdd Detector
Рубрика: PIC микроконтроллеры, Схемотехника | Метки: 1-wire, DS1307, DS18b20, I2C, ir, LCD, pic16f877a, tda7294, USART, USB | Комментарии (Опубликовано автором sarge
Поигравшись с термометром и часами реального времени DS1307 я решил совместить их в один девайс – часы-термометр. Еще одной причиной создания часов были сломавшиеся китайские настольные часы и я решил, что корпус не должен пропадать просто так.
Получилось что-то такое:
Читать далее →
Рубрика: PIC микроконтроллеры, Схемотехника | Метки: 1-wire, 7-segment, DS1307, DS18b20, I2C, I2C expander, one-wire, PIC микроконтроллеры, pic16f628a, RTC | Комментарии (16)Опубликовано автором sarge
Мне прилетели из Китая микросхемы и я начал над ними издеваться в целях исследования перед внедрением в будущие часы. Предупреждаю – в данной статье я исследовал только работу со временем, дата и прочие приблуды этих часов меня мало интересовали и я не терял на это время.
Задача: Запись значения времени/чтение значения времени и вывод через USART из микросхемы DS1307.
Исходный материал: PIC16f628a, DS1307, MAX232 level converter, devboard, proteus.
Читать далее →
Рубрика: PIC микроконтроллеры | Метки: DS1307, I2C, PIC, PIC микроконтроллеры, RTC, USART | Комментарии (Сайт работает на WordPress
Часы реального времени DS1307 Arduino AVR Pic
Часы реального времени DS1307 Arduino AVR PicКонтакты Заказать звонок Написать письмо Скидки Блог
101
629
Описание
Часы реального времени (RTC) с памятью FLASH, DS1307, 24C32. Модуль — часы реального времени на микросхеме DS1307 и EEPROM память на микросхеме 24C32 объемом 32 кбит. Также на плате имеется место для установки датчика температуры Dallas DS18B20
Можно использовать с любми микропроцессорными системами — MCU/ARM/PIC/AVR/MSP430/PLC/STM32/ Arduino
Технические характеристики
- Интерфейс I2C.
- Uпит = 3,0 — 5,5В.
- Комплектуется литиевой батареей CR2032.
- Срок хранения времени при t = 25°C: 10 лет.
- Габариты: 27x28x8,4(мм)
Дополнительно
Материал корпуса | Пластик + металл |
Windows | |
Страна регистрации бренда | Китай |
Страна-производитель товара | Китай |
Тип | Аксессуары для Роботов |
Комментарии
0Пока не было комментариев.
Прокомментировать
Для покупки регистрация не обязательна! Если хотите сделать заказ, — просто добавьте нужные вам товары в корзину, укажите свои данные и нажмите кнопку «Оформить заказ». Мы свяжемся с вами в ближайшее время. Оплата — перевод на карту-ключ счета ПБ — онлайн без комиссии картой любого банка (LiqPay) — безналичный расчет без НДС для юридических лиц — наличными или картой при доставке (только Новой Почтой при заказе от 100 грн) — наличными или через терминал в нас в магазине Нашли дешевле? Напишите нам об этом в чат — кнопка в левом нижнем углу экрана. В сообщении укажите ссылку на активную страницу такого же товара в украинском интернет-магазине и мы пересмотрим цену. Доставка — Новая Почта — Укрпочта (только при предоплате) — Самовывоз (можете также вызвать курьера Глово по Ивано-Франковску) Отправка товара происходит каждый рабочий день. В большинстве случаев, ваш заказ уедет в день заявки/оплаты или на следующий день.. Заказы самовывозом можно забрать в нашем магазине, после заявки позвоним вам и скажем, когда посылка с заказом будет готова к выдаче. Гарантия и возврат — возврат в течение 14 дней, если товар не подошел — гарантия от 6 месяцев на товары собственного изготовления |
DS1307 Семисегментный будильник реального времени — 16F88 ~ Scorpionz
DS1307 Семисегментный будильник реального времени — 16F88
08 ноября 2014 г. 16F, часы, DS1307, I2C, PIC, SSD 59 комментариев
Обновления
- 31.01.2016 — Добавлено: Функция ограничения почасового звонка
- 27.10.2019 — Исправлено: ошибка почасовой задержки звукового сигнала (v3)
- 27.10.2019 — Исправлено: данные автоматического режима, отображающие время, увеличены (v3)
Будильник |
Это новейшие часы, которые я сделал, используя микросхему часов реального времени DS1307. В отличие от других схем часов, которые я публиковал, эта схема часов имеет все необходимые функции, такие как почасовой сигнал, будильник, коррекция смещения времени и т. д. Кроме того, она также включает датчик температуры в качестве дополнительной функции.
Эти часы имеют восемь режимов отображения (включая режим ожидания).
- Режим 1 – Отображение секунд
- Режим 2 — Время отображения
- Режим 3 — Отображение даты
- Режим 4 — Год отображения
- Режим 5 — Отображение аварийного сигнала
- Режим 6 — Отображение температуры
- Режим 7 — непрерывное отображение времени, даты и температуры
- Режим 8 – Режим ожидания
Будильник DS1307 |
В этом проекте PIC используется микроконтроллер PIC16F88, часы реального времени DS1307, датчик температуры LM35 и семисегментный дисплей SSD-5461AG с общим катодом. (Если вы не можете найти этот дисплей, используйте четыре семисегментных дисплея с общим катодом).
PIC16F88 использует свой внутренний генератор и работает на частоте 8 МГц. Мы можем снизить стоимость и сложность схемы, а также сохранить вывод микроконтроллера, используя внутренний генератор. RA0 и RA1, сконфигурированные как цифровые и аналоговые, альтернативно управляют семью сегментами и считывают напряжение LM35.
Часы реального времени DS1307 (RTC) представляют собой 8-контактное устройство, использующее интерфейс I2C. Он имеет восемь регистров чтения/записи, в которых хранится информация. Эта ИС будет вести хронометраж, и она не только отслеживает время, но также дату и день недели. DS1307 RTC — это полностью двоично-десятичные часы/календарь. Поэтому данные, считанные с DS1307, должны быть преобразованы в формат BCD. Наиболее важным из них является бит остановки часов (CH), то есть бит 7 адреса 0. Это регистр, который управляет «секундами», и бит CH должен быть сохранен, иначе микросхема остановит часы. Запись нуля в этот бит сбрасывает бит CH, чтобы часы работали. Поэтому при первом использовании мы должны установить «секунды». В противном случае часы не идут.
Внутренний будильник |
Настройка времени
С помощью кнопки текущего состояния можно изменить режим отображения Eprome и кнопку MODE.
Кнопку SET можно использовать для редактирования времени, даты, будильника и т. д. При нажатии кнопки SET часы переходят в режим редактирования, и два дисплея выключаются. Вы можете редактировать значения на другом дисплее, нажимая кнопки ВВЕРХ и ВНИЗ. Чтобы отредактировать значение выключения дисплея, нажмите кнопку SET еще раз. Нажмите кнопку SET еще раз, чтобы вернуть часы в нормальный режим. Если часы находятся в нормальном режиме, кнопка ВВЕРХ также может использоваться для изменения формата времени (12 часов или 24 часа), а кнопка ВНИЗ может использоваться для включения или выключения будильника.
При изменении времени на 12-часовой режим светодиодный индикатор будет отображать состояние AM/PM. Тревога будет обозначена десятичной запятой в последних семи сегментах дисплея. При желании вы также можете подключить для него отдельный светодиод.
Исправление ошибокУдивительно, но сделать точный генератор на 32 кГц очень сложно. Это связано с тем, что драйверы низкоскоростных генераторов рассчитаны на работу с низким энергопотреблением. Это означает высокий импеданс и, следовательно, низкий ток, что делает драйвер чрезвычайно чувствительным к шуму (или любым ближайшим сигналам, которые могут емкостно соединяться с кварцевым проводом). Потому что при использовании DS1307 мы не можем получить точное время. Поэтому я добавил простой механизм исправления ошибок для этих часов
Сначала установите часы на текущее время (время компьютера или Интернета) и держите их включенными до 24 часов.
Через 24 часа сверить время часов со временем компьютера. Если время дрейфует, проверьте, сколько секунд дрейфует..? (Используйте режим часов 1 для просмотра секунд)
Напр. 1: Время ПК: 16:30:00 Время часов: 16:30:05
+5 секунд. Значит, надо сократить время.
Я использовал Eeprom (2) для хранения этих значений, и значение по умолчанию равно 30 (0x1E). См. рисунок EEPROM.
Теперь просто перезапишите его на 25 (0x19). Вы должны использовать для него шестнадцатеричные значения.
2: Время ПК: 16:30:00 Время часов: 16:29:58
-2 секунды сместилось. Поэтому нам нужно увеличить время.
Заменить значение Eeprom (2) на 32 (0x20).
С помощью этой настройки можно отключить функцию почасового звонка на определенный период времени. Для этого используйте Eeprom-адреса 6 и 7 устройства. значения по умолчанию: 0x00 и 0x18 (0 и 24)
Eeprom(6) ≤ Ограничение звукового сигнала < Eeprom(7)
Eg: Stop Chime from 21. 00 to 6.00
Eeprom(6) = 0x06 and Eeprom(7) = 0x15
6 ≤ Chime Restriction < 21
Eeprom of 16F88 |
Будильник HEX
Будильник Sch & PCB
Будильник HEX-7f
Будильник Ограничение перезвона
Будильник v3
Автор:
Обратите внимание: все содержимое этого блога предназначено только для некоммерческих целей.
PICAXE 18M2 I2C Чтение DS1307 Часы реального времени
Рис. 1. Схема моей самодельной тестовой платы без резисторов ввода/вывода.
от Lewis Loflin
Эта программа делает почти то же самое, что и моя программа для часов Arduino Ds1307. Он демонстрирует использование кода и способы подключения оборудования. Программа позволяет пользователю вводить время с терминала PICAXE после нажатия Sw1. Подробное объяснение Ds1307 см. в следующем:
- Использование ATMEGA168/Arduino с часами реального времени Ds1307
- Проекты микроконтроллеров Arduino ATMEGA168
- Отображение времени/даты с помощью Arduino, ЖК-дисплея и Ds1307 RTC
Рис. 2 Тестовая плата Ds1307-24LC08.
Это модуль, который я сконструировал для объединения EEPROM и Ds1307 RTC. Можно было просто подключить только секцию Ds1307 отдельно. Не забудьте подключить выход 1 Гц к C.0 на PICAXE.
Рис. 3 Эти подтягивающие резисторы должны быть подключены между PICAXE и модулем Ds1307.
Эти подтягивающие резисторы 4,7 кОм должны быть подключены, как показано, между модулем на рис. 2 и PICAXE.
; Используйте часы реального времени Ds1307. #кирка 18м2 ; тип используемого чипа символ Sw1 = контакт C.5 ; использовать pinX.X для ввода символ LED1 = C.7 символ LED2 = C.6 символ знач = b13 ; если нужно символ темп = b14 символ oneHZ = pinC. 0 ; подключить к Ds1307 1 Гц вых. символ секунды = b0 символ мин = b1 символ час = b2 день символа = b3 дата символа = b4 символ месяца = b5 символ года = b7 символ управления = b8 hi2csetup i2cmaster, %11010000, i2cslow, i2cbyte ; Настройка DS1307 главный: если Sw1 = 0, то set_clock если oneHz = 0, то перейти к main ; ждите здесь ВЫСОКИЙ от 1 Гц hi2cin 0,(секунды,минуты,час,день,дата,месяц,год) ; Код ASCII 48 -> 57 равен 0 -> 9поэтому прибавить/вычесть 48 ; порядок сек-мин-часы-день-месяц-год ; можно также использовать bcdtoaschii (стр. 35), но это иллюстрирует процесс. sertxd("Время: ") ; часы печати вал = час / 16 + 48 ; сдвиг старшего полубайта на 4 места вправо изменить на ASCII sertxd(val) значение = час и %000001111 + 48 ; маскировать старший полубайт изменить младший полубайт на ASCII sertxd(val, ":") ; распечатать протокол знач = мин /16 + 48 ; сдвиг старшего полубайта на 4 места вправо изменить на ASCII sertxd(val) значение = минуты и %00001111 + 48 ; маскировать старший полубайт изменить младший полубайт на ASCII sertxd(val, ":") ; печатать секунды значение = секунды / 16 + 48 ; сдвиг старшего полубайта на 4 места вправо изменить на ASCII sertxd(val) значение = секунды и %00001111 + 48 ; маскировать старший полубайт изменить младший полубайт на ASCII sertxd(val, 13, 10) ; НЧ - КР пауза 600 перейти на главную установить_часы: ; время ввода в Ds1307 ; используйте кабель для программирования ВЫСОКИЙ СВЕТОДИОД1 sertxd("Введите время ЧЧ:ММ: ") Отключить ; необходимо использовать для ввода строки с кабеля для программирования. для bptr = от 28 до 38 ; serrxd [2000],@bptr sertxd(@bptr) ; эхо-вход если @bptr = 10, то EXIT ; разорвать петлю на LF-CR следующий bptr переподключиться; повторно активируйте кабель для программирования. sertxd(13,10) ; LF-CR ; перевести 4 ASCII в две цифры BCD ; не работает с @bptr взгляд 28, val темп = значение - 48 * 16 &% 00110000 ; верхний час откусывания если temp > 0x20, то gosub zero_temp заглянуть 29,вал знач = знач - 48 и %00001111 ; нижний час откусывания если val > 0x09, то gosub add6 час = температура | вал ;пропустить 30 взгляд 31, val темп = значение - 48 * 16 &% 11110000 если temp > 0x50, то gosub zero_temp взгляд 32, val знач = знач - 48 и %00001111 если val > 0x09, то gosub add6 мин = температура | вал пусть секунды = $00; 00 Обратите внимание на все форматы BCD ;пусть мин = $41; 59 Обратите внимание на все форматы BCD ;пусть час = $10; 11 Обратите внимание на все форматы BCD пусть день = $05; Обратите внимание на все форматы BCD пусть дата = $21; 25 Обратите внимание на все форматы BCD пусть месяц = 12 долларов; 12 Обратите внимание на все форматы BCD пусть год = 11 долларов; 03 Обратите внимание на все форматы BCD пусть управление =% 00010000 ; Включить вывод на частоте 1 Гц hi2cout 0,(секунды,минуты,час,день,дата,месяц,год,управление) пауза 1000 НИЗКИЙ LED1 перейти на главную ноль_темп: температура = 0 возвращаться добавить6: значение = значение + 6 возвращаться
Проекты микроконтроллеров Picaxe!
Серия микроконтроллеров PICAXE считается самым простым и экономичным способом использования процессоров Microchip.