Схема часы барометр на микроконтроллере: Часы, термометр, барометр, гигрометр в одном флаконе. — Проекты — AVR project.ru

Содержание

Часы с термометром и барометром на микроконтроллере ATmega8

Технические характеристики этого прибора соответствуют параметрам примененной в нем микросхемы часов реального времени (RTC — real time clock) PCF8583 [1], аналогового датчика давления МРХ4115 [2], цифровых датчиков температуры DS1621 [3]. Управление производится с помощью шести кнопок и двух выключателей. Предусмотрены сервисные функции для установки точного времени, выдержки времени таймером и момента срабатывания будильника. ЖКИ прибора снабжен отключаемой подсветкой.

На рис. 1 приведена схема устройства. Его главный компонент — микроконтроллер DD2. Он связан с однострочным 16-символьным ЖКИ HG1, отображающим всю необходимую информацию, микросхемой RTC DD1, датчиком атмосферного давления В1 и через разъем Х1 — с двумя датчиками температуры, подключенными по схеме, показанной на рис. 2.

Вывод РС0 микроконтроллера, к которому подключен выход датчика В1, настроен на работу в качестве входа встроенного в микроконтроллер АЦП. RTC и датчики температуры связаны с микроконтроллером по интерфейсу TWI, аналогичному известному I

2C: PC4 — линия SDA, PC5 — линия SCL. У датчика B2 соединены с общим проводом все три адресных входа (А0—А2), у датчика B3 — только два из них, а младший вход А0 соединен с плюсом питания. В результате адреса, по которым микроконтроллер обращается к одинаковым датчикам, отличаются на единицу, что позволяет программно различать их.

Формируемый на выводе РВ5 сигнал срабатывания будильника поступает на электромагнитный звуковой сигнализатор НА1 через усилитель на транзисторе VT1. Кнопки управления SB1—SB5 подключены к порту В микроконтроллера. Нажатием на кнопку SB6 приводят микроконтроллер в исходное состояние. Выключателем SA1 включают и выключают будильник, выключателем SA2 — подсветку индикатора. Подстроечным резистором R6 устанавливают оптимальную контрастность изображения.

Узел питания прибора состоит из мостового выпрямителя VD1 и интегрального стабилизатора DA1 с необходимыми сглаживающими и блокировочными конденсаторами. Напряжение питания аналоговых узлов микроконтроллера подано на него через фильтр L1C14.

Переменное напряжение 9 В поступает от не показанного на схеме трансформатора питания с приблизительно таким напряжением на вторичной обмотке при токе нагрузки 250 мА. Можно применить и источник постоянного напряжения 9…12 В, например, сетевой адаптер от какого-либо прибора. Благодаря наличию диодного моста VD1 полярность подаваемого постоянного напряжения безразлична.

Поскольку микросхема PCF8583 (DD1) не имеет специального вывода для подключения резервного источника питания, литиевая батарея G1 и основной источник питания подключены к ней через развязывающие диоды Шотки VD2 и VD3. Подстроечный конденсатор С7 — регулятор хода часов.

Чертеж печатной платы устройства, разработанной с помощью программы DipTrace, показан на рис. 3. Она предназначена для установки в стандартный корпус BOX-FB04 размерами 130x85x40 мм. Все детали, в том числе резисторы и конденсаторы для поверхностного монтажа, смонтированы на одной стороне платы, как показано на рис. 4.


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

ЖКИ, кнопки и выключатели расположены на передней панели корпуса (для них там сделаны отверстия) и соединены с соответствующими контактными площадками на плате отдельными гибкими проводами. Плоский кабель для присоединения индикатора не применялся. Это позволило упростить печатный монтаж, располагая контактные площадки на плате свободно, не соблюдая порядка расположения выводов индикатора. Разъем для подключения датчиков температуры закреплен на одной из боковых стенок корпуса.

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

В основном режиме работы прибора на табло его ЖКИ поочередно выводятся текущее время, дата и день недели, температура в помещении (показания датчика В2) и вне его (показания датчика ВЗ), атмосферное давление. Продолжительность отображения каждого параметра — 5с.

Нажатием на кнопку SB1 можно перейти из основного режима в режим установки времени, хранящегося в микросхеме RTC (DD1). О переходе в него сигнализирует сообщение «Mode Clock», a отсчет времени часами прекращается. Нажатиями на кнопки SB2 и SB3 выбирают регистр микросхемы. На табло отображаются значение хранящегося в нем параметра и название регистра. Нажимая на кнопки SB4 и SB5, значение, выведенное на табло, можно изменять. Чтобы записать новое значение в регистр, необходимо нажать на кнопку SB1 Запись сопровождается выводом сообщения «Write Data».

Значения часов, минут и секунд, с которых по выходе из режима установки начнется счет времени, записывают в соответствующие регистры в двоично-десятичном формате. Например, десятичному числу 1 соответствует шестнадцатеричное 01, а десятичное 35 совпадает с шестнадцатеричным 35.


Определенные сложности при записи информации в регистры Weekday/ Month и Year/Date создает формат этих регистров. Шестнадцатеричные значения, которые могут быть в них записаны, приведены соответственно в табл. 1 и табл. 2. Например, во вторник 12 июня 2009 г. в регистр Weekday/Month следует записать 26, а в регистр Year/Date — 52.

Перед выходом из режима установки необходимо обязательно занести в регистр Status микросхемы RTC код, задающий режим ее работы. Вот некоторые из возможных шестнадцатеричных значений этого кода:
80 — счет времени остановлен;
0В — счет времени идет, сигналы будильника и таймера запрещены;

0D — счет времени идет, разрешен сигнал будильника;
0Е — счет времени идет, работает таймер.

Более подробно о микросхеме PCF8583 и особенностях ее работы и структуре регистров можно прочитать в ее описании [1].

Нажав на кнопку SB3 в основном режиме работы устройства, можно прекратить смену параметров на табло ЖКИ и увидеть непрерывное изменение текущего времени и установленное время срабатывания будильника. Последовательными нажатиями на кнопку SB4 просматривают значения, записанные в регистры RTC Status, Timer, Alarm control, Alarm timer.

Нажатие на кнопку SB5 переводит устройство в режим настройки таймера с выводом сообщения «Mode Timer». Операции и функции кнопок здесь такие же, как и при установке часов. О пуске таймера одновременным нажатием на кнопки SB4 и SB5 информируют сообщение «Start of timer» и короткий звуковой сигнал. По окончании отсчета заданной выдержки выводится сообщение «ALARM!» и также звучит сигнал. После этого устройство возвращается в основной режим работы.

Учтите, поскольку начало отсчета выдержки не синхронизировано с генерируемыми внутри микросхемы минутными импульсами, ее первая минута получается, как правило, короче 60 с. Этот дефект частично устранен программно: отсчет выдержки фактически начинается, и звуковой сигнал подается не при нажатии на кнопки SB4 и SB5, а с первого после него минутного импульса. Между этими событиями возможна заметная пауза.

Досрочно прекратить отсчет времени таймером можно нажатием на кнопку SB5. В течение 3 с после этого на ЖКИ выводится фактически прошедшее с момента пуска таймера время.

При совпадении заданного времени срабатывания будильника с текущим (при этом может учитываться день недели) звучит сигнал, а на ЖКИ выводится сообщение «ALARM!». Проверяется исправность звукового сигнализатора нажатием на кнопку SB2 в основном режиме работы прибора.

Программа микроконтроллера начинает свою работу с инициализации портов ввода/вывода, затем инициализируются ЖКИ и цифровые датчики температуры. В регистры управления RTC записываются коды, задающие «базовую» конфигурацию.

Основная часть программы начинается с метки Main. Здесь проверяется состояние кнопок управления, и вызываются необходимые на каждом этапе работы подпрограммы. Процедуры обмена информацией с RTC и датчиками температуры по интерфейсу TWI однотипны. Различаются лишь адреса ведомых микросхем и их регистров.

Однотипны и подпрограммы вывода информации на ЖКИ. Двоично-десятичные значения из регистров RTC выводятся без преобразования. Значения температуры предварительно преобразуются в такой же формат подпрограммами HexBCD (целая часть) и XBruchD (дробная часть).

Подпрограмма CalcPress преобразует результат работы АЦП, преобразующего выходное напряжение датчика давления В1 в двоичный код, привычные миллиметры ртутного столба (торы). В начальном фрагменте этой подпрограммы (табл. 3) задан коэффициент преобразования 9150 ($23ВЕ).

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

Еще один способ откалибровать барометр заключается в записи в подпрограмму CalcPress коэффициента 10000 ($2710) или полном удалении этой подпрограммы вместе с ее вызовом. Постоянный резистор R3 в этом случае следует заменить подстроечным (движок — к входу РСО микроконтроллера) и с его помощью установить нужный масштаб.

Для хранения последнего измеренного значения давления программа использует ячейки ОЗУ микроконтроллера. Подпрограмма Monitor переписывает в них результат измерения, а подпрограмма PressLCD копирует их содержимое в регистры для вывода на ЖКИ.

Подпрограмма установки часов InsClock в начале своей работы вызывает сервисную подпрограмму OutWHCM. Далее она останавливает часы, инициализирует таймер Т1 микроконтроллера и «зацикливается» на метке REP, ожидая одновременного нажатия на кнопки SB4 иSВ5.

Подпрограмма Timer_int, обрабатывающая запросы прерывания от таймера Т1, обслуживает кнопки SB2—SB5 в режиме установки часов. Подпрограмма обработки прерывания от таймера Т2 Timer_lnt2 — кнопки SB2—SB5 в режиме программирования таймера.

Подпрограмма ALARM при выполнении соответствующих условий формирует на выходе РВ5 импульсный сигнал частотой 1000 Гц. В регистре Stime задается его продолжительность. При выходе из подпрограммы ALARM флаг запроса прерывания по сигналу будильника в RTC снимается и вновь устанавливается.

Поскольку запросы прерывания от таймера и от будильника в микросхеме RTC не разделены, определения источника запроса выполняет подпрограмма Check. Общий запрос прерывания накладывает ограничения на установку времени подачи сигнала будильника: в регистре минуты его срабатывания нельзя устанавливать нулевое значение. Для правильного отображения даты и дня недели подпрограмма ReadPCFW изменяет флаг маски чтения регистров 05 и 06 RTC. Для предотвращения «зависания» программы в ее основном цикле предусмотрена очистка регистра управления TWCR модуля TWI микроконтроллера после аналого-цифрового преобразования. Подпрограммы работы с модулем TWI не предусматривают проверку регистра статуса этого интерфейса, поскольку практика показала его безошибочную работу и без такой проверки.

Все подпрограммы снабжены в исходном тексте программы подробными комментариями.
Необходимо отметить, что примененный в приборе «однострочный» ЖКИ Wh2601A с точки зрения программиста имеет две строки — левую и правую половины единственной, видимой на табло. Это необходимо учитывать при выводе информации. Вывод всех сообщений на английском языке объясняется тем, что была использована нерусифицированная версия подпрограммы OutText.

Автор использовал среду разработки и отладки программ AVR Studio 4. Программирование микроконтроллера, проверка и отладка устройства производились с помощью отладочного модуля STK500.

Прилагаемые файлы: File1

Н. САЛИМОВ, г. Ревда Свердловской обл.
«Радио» №10 2010г.

ЛИТЕРАТУРА
1. PCF8583 Clock/calendar with 24048-bit RAM. — <www.nxp.com/documents/data_sheet/PCF8583.pdf>.
2. Altimeter/Barometer   Pressure   Sensor On-Chip   Signal   Conditioned,   Temperature Compensated and Calibrated.   — <www.cache.freescale.com/files/sensors/doc/data_sheet/MPX4115.pdf?fsrch=1 >.
3. DS1621 Digital      Thermometer      and Thermostat. — <www.datasheets.maxim-ic.com/en/ds/DS1621.pdf>.

Post Views: 1 176

РадиоКот :: Простой барометр/термометр на МК.

Простой барометр/термометр на МК.

Всем привет!

Во первых хочу поздравить Кота с днем рождения! Процветать!

Теперь к статье.

«Простой барометр/термометр на МК»

Данная конструкция была разработана по просьбе моего друга — любителя автомобильных путешествий и offroad. Им (другу и сотоварищам) в походах уж очень хочется знать в какую сторону и с какой скоростью меняется атмосферное давление, дабы попытаться понять, что будет с погодой. Он выбрал недорогой индикатор ME-GLCD128x64 представленный на фото:

Устройство собрано на двусторонней ПП, изготовленной методом ЛУТ:

 

Микроконтроллер был выбран ATMega32 в дип корпусе по причинам: он у меня был, найти другое применение такому большому корпусу (DIP40) я не смог, т.к. в последнее время делаю практически все на SMD.

Датчик давления фирмы HopeRF — HP03M, общающийся с МК по протоколу TWI. Датчики температуры DS18S20 фирмы Maxim.

Часы реального времени были выбраны на микросхеме M41T81 по причинам: наличие коррекции времени и наличие Timekeeper — позволяющего читать текущее время без потерь тактов основного счетчика.

В качестве источника питания решено использовать автомобильный адаптер USB — он выдает 5В при токе до 0.5А. В связи с тем, что при старте двигателя «провалы» в бортовой сети авто довольно большие, то была необходима схема аварийной записи текущих значений в eeprom. Для этого используется развязка питания МК и остальной схемы. Питание МК поддерживается конденсатором 1000 мкф, которого, как показали испытания, достаточно (более чем в два раза) для того, что-бы МК успел записать 6 байт текущих значений датчиков в eeprom. Контроль наличия питания и цепь сброса МК обеспечивают два супервизора питания. Первый следит за напряжением на входе схемы и при пропадании питания выдает лог.0 на int0, тем самым запуская процедуру сохранения. Второй обеспечивает «жесткий» сброс самого МК при понижении его питания — для исключения повреждения eeprom.

В обычном режиме данные записываются в eeprom каждые полчаса. Всего хранятся значения за 2-е суток. Текущее время, полученное с m41t81 преобразуется в кол-во секунд от 2000 года, и на основе этого значения вычисляется текущий адрес для записи (один из 96). После несложных вычислений можно увидеть, что ресурс eeprom выработается приблизительно за 540 лет (каждая ячейка перезаписывается раз в 2-е суток) или при ежеминутном выключении питания за 18 лет. Получасовые данные — это средние значения давления, температуры по каждому датчику, время в секундах (кратное 96) и контрольная сумма CRC16. При старте данные читаются из eeprom и проверяется контрольная сумма каждого блока, если сумма не верна — данные игнорируются. Так-же данные игнорируются если дата их записи превышает 2-е суток (нам такие старые данные не нужны). Аналогично считается и контрольная сумма основных настроек, и если она не верна — считаем, что это первый запуск программы и выставляем все значения по дефолту.

Далее пример работы устройства.

В верхнем левом углу текущее давление в мм.рт.ст и после стрелочки — изменение давления за последние 3 часа. Ниже показания двух датчиков температуры и max/min значения за прошедшие 24 часа. Совсем внизу график изменения давления. (провал в графике — специально на эти полчаса устройство было выключено — следовательно данных нет и показывать нечего)

 

Меню настроек:

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

Все настройки выполняются тремя кнопками Enter,+,- Для входа в меню настроек необходимо удерживать + и — более секунды.

В основном режиме кнопки + и — не работают и потому сделаны скрытыми. Кнопка Enter переключает яркость экрана с макс. на мин. и наоборот. При длительном удержании подсветка экрана полностью отключается.

Собственно схема устройства:

В архиве: Прошивка, схема, плата, плата в diptrace. Плюс набор различных цифр и символов с сишными кодами.

А вот тут — сайт проекта.
PS: проект будет развиваться, т.к. впереди еще зимние испытания на морозоустойчивость 🙂

Файлы:
Бонус: много цифирок с «C»шными массивами
Прошивка, исходники, схема, плата

Все вопросы в Форум.

Часы с термометром на atmega8

Категория: Таймеры, часы, счётчики , Для дома. Личный кабинет Регистрация Авторизация. Логин: Пароль Забыли? Логин: Пароль: запомнить меня что это.


Поиск данных по Вашему запросу:

Схемы, справочники, даташиты:

Прайс-листы, цены:

Обсуждения, статьи, мануалы:

Дождитесь окончания поиска во всех базах.

По завершению появится ссылка для доступа к найденным материалам. ПОСМОТРИТЕ ВИДЕО ПО ТЕМЕ: Часы на ATmega8 / The clock on ATmega8

Любые схемы


Несложные часы-термометр на микроконтроллере ATtiny, с семисегментным индикатором. На индикаторе периодически отображаются значения времени и температуры. Период отображения каждого значения равен 4 секундам. Время отображается в 24 часовом формате — ЧЧ. ММ, при этом старший не значащий ноль часов не отображается. Точка мигает в соответствии с ходом секунд. Температура отображается с точностью до десятых градуса.

Измерение температуры производится один раз в минуту. Считанное с датчика значение температуры сохраняется в памяти контроллера организованной для хранения 5 последних измерений. Для отображения на индикаторе последнее записанное в память значение температуры округляется до целых градусов Цельсия. При отображении температуры в крайнем правом разряде индикатора высвечивается символ градуса.

Если за последние 5 минут температура внешнего датчика изменяется больше чем на 0,2 градуса, то символ градуса периодически сменяется символом повышения стрелка вверх или понижения стрелка вниз температуры. Если в рабочем режиме нажать на кнопку «Меньше», то на индикаторе немедленно отображается время. Если нажать на кнопку «Больше», то температура.

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

Если датчик температуры отсутствует или читается с ошибкой, то на индикаторе постоянно отображается текущее значение времени. В часах можно использовать как индикаторы с общим анодом, так и с общим катодом. Индикаторы работают в динамическом режиме, реализованном программно. В случае использования индикаторов с общим катодом в качестве верхних ключей для управления индикаторами используются транзисторы 2N, в качестве нижних 2N Для индикаторов с общим анодом в качестве верхних ключей для управления индикаторами используются транзисторы 2N, в качестве нижних — транзисторная сборка ULNA.

Особенность прошивки в том, что она без изменения может работать и в схеме с индикаторами с общим анодом и в схеме с индикаторами с общим катодом.

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

Через 3 секунды часы перейдут в режим установки минут. При этом показания минут на индикаторе будут мигать. Кнопками «Меньше» и «Больше» можно установить новое значение времени. Кратковременное нажатие на кнопку «Меньше» или «Больше» изменяет значение времени на единицу, а удержание кнопки в нажатом состоянии непрерывно изменяет значение времени, соответственно в меньшую или большую сторону.

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

Если в режиме установки времени в течении 10 секунд ни одна кнопка не будет нажата, то часы автоматически перейдут в рабочий режим. Установки нового значения времени при этом не произойдет. Теперь о том, как это все реализовано практически. Вариант разводки платы часов и индикатора в формате SprintLayout5 предложен здесь.

Плату часов разводил не я, мои только правки, и изначально вариант был не самый удачный. На плате помимо самих индикаторов размещены кнопки. Микроконтроллер в соответствии с разводкой платы применен в SOIC корпусе.

В качестве верхних ключей, опять же в соответствии с разводкой платы и возможной взаимозаменяемостью, применены транзисторы КТВ. Хотя аналог 2N — КТГ, но последних в наличии не оказалось.

Вариант получился не самый лучший, но тем не менее рабочий. Из оригинальной схемы были исключены детали, стоящие до стабилизатора U3, и по ошибке конденсаторы С3 и С4. При запуске устройство отказалось работать напрочь. Опытным путем удалось выяснить, что конденсатор КБ емкостью 1 мкФ вполне решает эту проблему как раз тот самый С4, но с бОльшим номиналом; а лучше поставить оба.

Ставим — устройство запустилось, но нет информации от микросхемы DS На этот раз все заработало как надо, и все довольны. Небольшой апдейт: из схемы исключен стабилизатор U3, так как глупо питать устройство напряжением 12 вольт от внешнего источника питания и понижать его до пяти, когда можно найти соответствующий пятивольтовый блок питания.

Друг мой, Антон! Сегодня я прошил микроконтроллер по вашей прошивке. Читал в других ссылках, которые вы даете, некоторые изменения прошивки. Скажите, пожалуйста, будет ли работать схема с прошивкой из вашей статьи? И еще, можно ли подключить вместо индикаторов светодиодную сборку? Прошивка работать, естественно, будет. Именно она у меня сейчас работает в часах.

Светодиодную сборку подключить можно, хоть огромное табло. Главное, чтобы транзисторные ключи по току выдержали, или менять на более мощные. Антон, дорогой, спаси меня! Что мне делать? Может, у вас есть lay файл на DIP? Это будет уже совсем другая история, если разводить плату под DIP. Здравствуй Антон. На схеме с общим анодом не подключена ножка 10 микросхемы ULN питание это так должно быть? Это общий вывод интегральных диодов, предназначенных для подавления переходных процессов при индуктивных нагрузках.

Соответственно подключать не требуется. Спасибо за объяснение. У меня есть большие светодиодные индикаторы 58мм с общим анодом, для их работы нужно напряжение более 8V, как их лучше подключить?

Подать на эмиттеры ключей 12V и добавить резисторы? На эмиттерах ключей выставить нужное напряжение 8В вывод Vcc в шину уходит , например через интегральный стабилизатор. Либо увеличить сопротивление RR19, расчетным путем узнать их номинал и подать на эмиттеры ключей 12В. Здравствуйте, Антон, собрал схему с общим анодом. Имеются две проблемы: часы идут только при отключенном питании от батарейки и температура не соответствует действительной при комнатной показывает 3 градуса И еще при повышении температуры выводится стрелка «вниз» и наоборот.

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

В даташите также указано про питание: When VCC falls below 1. А вот про 3 градуса — даже не знаю куда копать. Попробовать прошить другую прошивку с форума? Ок, тогда вопрос.

Может ли авто за соответствущее вознаграждение прошить пяток контроллеров и выслать их в Германию или Украину? У меня проблема с подключением табло. Табло собрано из кусков светодиодной ленты на 12 вольт общий плюс. Дело в том что сегменты полностью не гаснут при смене числа, а остаются гореть в половину яркости, как их правильно скомутировать не используя uln? Помогите пожалуйста разобраться, кто понимает как это реализовать. В наличии куча н-канальных полевиков типа 06n03la, 70T03H и др, ну и биполярники тоже имеются.

Лично я ленту не держал в руках. В схеме реализована динамическая индикация, возможно светодиоды в ленте не успевают гаснуть имеются конденсаторы на ленте?

Автор здесь, но не каждый день. Комментарии модерируются мной вручную, потому что иногда бывает спам. Сделал ваши часы. Только плату развёл под ДИП и не стал ставить ключи. Индикатор с общим катодом,небольшой.. Прошивку эту заливать и фузы какие ставить.

Плату сделал в ЛАЙ, могу выложить , только как добавить. DS то-же в ДИП, сделал подтяжку 8 ножки на 5 вольт. Написано же «Особенность прошивки в том, что она без изменения может работать и в схеме с индикаторами с общим анодом и в схеме с индикаторами с общим катодом. Ваш e-mail не будет опубликован.


Часы, будильник, термометр на контроллере ATmega8 (с анимацией)

Войти или зарегистрироваться. Хорошая конструкция — простая, минимум деталей. Минус, или пожелания — было бы хорошо продавать в комплекте и готовую плату. Корзина товаров. Продолжить покупки Оформить. Корзина товаров: 0 шт. Категории Датчики.

Часы, будильник, термометр на контроллере ATmega8 (с анимацией) Обратная сторона. В качестве стабилизатора напряжения на +5.

ЧАСЫ-ТЕРМОМЕТР НА МИКРОКОНТРОЛЛЕРЕ ATMEGA8

Устройства на микроконтроллерах Схемы на микроконтроллерах pic, avr; Программаторы. Микроконтроллерная техника avr. С меню и будильником. Полный bcd календарь, часы плюс Предлагаю для повторения схемы электронных часов на микроконтроллере ATmega 8, с отображением информации большими светодиодами. Цифровая коррекция точности хода. Минитерминал V. Часы, термометр, барометр, гигрометр в одном флаконе. В схеме можно использовать индикаторы с общим анодом или катодом, в моем варианте использую индикаторы с ОА. Работой часов управляет микроконтроллер Atmega8, а в качестве часов реального времени применена микросхема типа PCF

Часы-календарь-термометр на ATMega8

Новый магнитный материал позволит сделать менее дорогими электрические автомобили, ветрогенераторы и многое другое. Создан крошечный робот, способный перемещать предметы, вес которых в сотни и тысячи раз превосходит его собственный. Хочу представить еще одни часы с термометром на микроконтроллере. Микроконтроллер работает с микросхемой реального времени DS и цифровым датчиком температуры DS18B Микросхема DS представляет собой экономичные часы реального времени с последовательным интерфейсом, которая содержит часы-календарь с представлением информации в двоично-десятичном коде и 56 байт энергонезависимого статического ОЗУ.

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

Вольтметр, термометр и часы на ATMega8

By Костя Нестеров , September 4, in Схемотехника для начинающих. Комментарии к данному «чуду» на сайте не очень лестные. Когда собирал — поправил печатку. Попробовал- проработали пять минут. Может кто из уважаемых занимался данным проектом?

2х-канальный термометр, часы на ATmega8, LCD

Более четырех лет назад я собрал простые часы на ATmega8. Все это время они исправно работали и приносили пользу, особенно в темнее время суток. Но мне показалось, что такой микроконтроллер, как ATmega8 может делать намного больше, чем просто подсчитывать колебания кварца и выводить их в виде времени. Захотел, чтобы новые часы информировали не только о текущем времени, но и о температуре в помещении, где они находятся. Задался поиском подобных схем в интернете, отталкиваясь от уже имеющихся комплектующих, а именно: микроконтроллер ATmega8 и светодиодный индикатор с общим катодом. Отличное решение нашлось на этой странице, которое предоставил пользователь Soir, за что ему большая благодарность. Схема часов не сложная, плюс, я сделал в ней некоторые упрощения.

[anons=Photojpg]Часы с двумя градусниками на микропроцессоре ATmega8[/anons].

ЧАСЫ — ТЕРМОМЕТР — ВОЛЬТМЕТР

Привет всем читателям и почитателям сайта Радиосхемы! Немного предыстории: вечером очень плохо видно показания уличного термометра, чтобы разглядеть положение стрелки, необходимо довольно долго вглядываться и иной раз пользоваться фонариком. Спустя определённое время мне это надоело и решил заменить прибор на электронный, который бы отображал информацию на светодиодных семи сегментных индикаторах.

RFMD начала производство сверхлинейного усилителя с аналоговой регулировкой усиления и рабочим диапазоном частот … МГц. Фунционально VTC работает в одном из режимов, который выбирается нажатием кнопки:. Цифровой вольтметр позволяет измерять постоянное напряжение от 0 до 25 вольт. Измерения постоянного напряжения производятся при помощи встроенного в контроллер и разрядного АЦП. Обращайте внимание что они есть разного размера, могут отличаться цоколевкой, ну и включением ОА и ОК.

Решил собрать часы для компьютерного стола на ATmega8. Минимум электронных компонентов.

Несложные часы-термометр на микроконтроллере ATtiny, с семисегментным индикатором. На индикаторе периодически отображаются значения времени и температуры. Период отображения каждого значения равен 4 секундам. Время отображается в 24 часовом формате — ЧЧ. ММ, при этом старший не значащий ноль часов не отображается.

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


Самодельный термометр на микроконтроллере

Устройство используется в домашних целях, один из его датчиков устанавливается на улице, другой в помещении. Индикация значений температуры осуществляется двумя сдвоенными светодиодными 7-сегментными индикаторами с общим катодом. Чтобы не было заморочек со считыванием 64 разрядного идентификационного кода датчика и определения, какой из них уличный, а какой комнатный, датчики подключены к разным ножкам МК, а не висят на одной шине 1-wire. Подключение уличного датчика удобно выполнить с помощью разъема, например типа stereo-джек 3,5мм.


Поиск данных по Вашему запросу:

Самодельный термометр на микроконтроллере

Схемы, справочники, даташиты:

Прайс-листы, цены:

Обсуждения, статьи, мануалы:

Дождитесь окончания поиска во всех базах.

По завершению появится ссылка для доступа к найденным материалам. ПОСМОТРИТЕ ВИДЕО ПО ТЕМЕ: Самодельный термометр с большими цифрами (ATmega8 + DS18B20)

Термометр на ATmega8 и датчике DS18B20


Тем, кто не имеет пока возможности осилить измерители температуры на микроконтроллерах, рекомендуем собрать такую схемку. Термометр выполнен по мостовой схеме, где термочувствительным элементом являются, включенные последовательно, диоды VD1 и VD2. Когда мост уравновешен напряжение между точками А и Б равно нулю, следовательно микроамперметр PA1 покажет ноль. При повышении температуры, падение напряжения на диодах VD1 и VD2 уменьшается, баланс нарушается, а микроамперметр покажет наличие тока в цепи.

В качестве датчика температуры можно применять различные диоды, использованы Д, но в статье указывается, что подойдут КД, Д Лучшим вариантом было бы использование полноразмерных переменных резисторов с выводом их ручек на переднюю панель прибора. Микроамперметр PA1 любой, с током полного отклонения мкА. Выключатель питания SA1 любого типа. Светодиод VD3 служит для индикации включения термометра, он также может быть любым, например мигающим. Желательно, чтобы светодиод был маломощным и не расходовал заряд батареи в пустую.

Собранный прибор требует калибровки. При отключенном микроамперметре PA1 замеряют напряжение между точками А и Б, оно должно быть около 1,,2 В. Если напряжение составляет 4,5 В.

Если напряжение между точками А и Б невелико, то необходимого значения добиваемся регулировкой резистора R4. Затем устанавливаем минимальное сопротивление для резистора R3 и включаем обратно в схему микроамперметр PA1. Резистором R4 добиваемся, чтобы прибор показывал примерно 20 мкА это соответствует комнатной температуре в 20 градусов. Если датчик зажать в пальцах, то показания должны возрасти примерно до мкА примерно температура человеческого тела.

Прибор калибруется в начале и конце шкалы. Сначала датчик опускают в сосуд, наполненный водой с тающим льдом, как известно температура тающего льда равна 0 градусов.

При этом надо перемешивать воду со льдом, так чтобы температура в сосуде была везде одинакова. Подстройкой резистора R4 устанавливаем на микроамперметре 0.

Затем берем сосуд с водой температурой около 40 градусов, температуру воды надо контролировать при помощи ртутного термометра подойдет обычный медицинский термометр. Соответственно погружаем датчик в теплую воду и подстройкой резистора R3 добиваемся, чтобы показания микроамперметра совпали с показаниями ртутного термометра. Таким образом, получаем термометр для температурного диапазона градусов. Если нет возможности использовать ртутный термометр, то в качестве второй калибровочной точки можно использовать кипящую воду, как известно при нормальном атмосферном давлении температура кипения воду градусов.

Тогда температурный диапазон термометра будет градусов. Спасибо, за внимание. Автор статьи: Denev. В данной статье проведем обзор цифрового термометра, построенного на микроконтроллере Attiny, снабженного выносным цифровым датчиком DS18B Схема очень простая, содержит минимум деталей и ее запросто можно собрать своими руками. В роли температурного датчика выступает микросхема DS18B20 фирмы Dallas.

В схеме термометра можно применить до 8 цифровых датчиков. Микроконтроллер взаимодействует с DS18B20 по протоколу 1Wire. Вначале происходит поиск и инициализация всех подключенных датчиков, затем с них происходит считывание температуры с последующим выводом на трехразрядный семисегментный индикатор HL1. Индикатор может быть применен как с общим катодом ОК , так и с общим анодом ОА.

Подобный индикатор так же был применен в схеме часов на Attiny Под каждый индикатор имеется своя прошивка. Измерять температуру можно как дома, так и на улице, для этого необходимо вынести DS18B20 за окно. Скачать файлы прошивки и печатной платы 1,0 Mb, скачано: 5 Измеритель предназначен для измерения температуры воздуха, а если защитить датчик, то и любой другой среды в диапазоне Схема термометра представляет собой мост постоянного тока, в одно плечо которого включен терморезистор, а индикатором служит головка микроамперметра После уравновешивания моста напряжение в измерительной диагонали равно нулю.

Разбаланс моста вызывает появление напряжения положительной или отрицательной полярности — в зависимости от направления разбаланса. Если менять полярность питающего напряжения при разбалансе, полярность напряжения в измерительной диагонали моста будет одинакова при измерении положительных и отрицательных температур, и можно использовать обычную головку с нулевым делением слева, а не в середине шкалы. Измерения производятся при нажатии кнопки SB1. I Детали. R6 — МПТ Ее можно заменить на М24 или М с нулем посередине шкалы, тогда тумблер SA1 не нужен.

Такой элемент служит Детали измерителя располагаются на плате из одностороннего фольгированного стеклотекстолита размерами x мм, выполненной методом прорезания дорожек в фольге.

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

Резисторы R4. R7 устанавливают в среднее положение. Терморезистор подключают проводом МГТФ необходимой длины 0, Температуру измеряют ртутным лабораторным термометром. Через Терморезистор, измеряющий температуру наружного воздуха, надо размещать таким образом, чтобы исключить попадание на него солнечных лучей. Андреев Ю. Резисторы: Справочник2.

Шульц Ю. Зачастую схемы собираются по остаточному принципу, то есть что-то где-то завалялось и из этого можно что-нибудь спаять. Вот это как раз таки тот случай, когда ничего не надо покупать, поскольку все элементы данного термометра достаточно известные. Применение дешёвых микросхем серии КЛА7 и КИЕ4 , даёт возможность создать цифровой термометр, который помимо своей простоты обладает ещё и высокой повторяемостью и точностью, достаточной для бытовых целей. В последнее время зачастую устанавливают цифровые датчики температуры, но тут им является обыкновенный терморезистор с отрицательным ТКС и сопротивлением около кОм.

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

Бывает, что нужно взглянуть на термометр при условиях плохого освещения, к примеру ночью. Для этого индикаторы ЖК, даже с подсветкой, не подойдут. Более лучшую читаемость при условиях плохого освещения дают светодиодные индикаторы типа АЛС. Характеристики термометра в плане погрешности измерений определяют настройкой градуирования по образцовому термометру.

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

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

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

Следует заметить, что если сделать шкалу устройства в градусах по Кельвину, то точность винтервале от К до К будет довольно неплохой. Но надо будет организовать третий старший разряд. Печатная плата и конструкция корпуса термометра зависит от желаемого вами дизайна прибора, по этой причине она тут не представлена. Фото примера платы показано ниже. Вы можете, если нужно, питать этот цифровой термометр от батарей с напряжением 9 Вольт, а если вы задумали применять термометр исключительно с сетевым питанием, тогда вам нужно собрать схему стабилизатора на Рабочий вариант схемы был найден здесь.

Для сборки данного девайса понадобятся следующие компоненты: 1 Термодатчик DALLAS DS — самая главная часть всей схемы, датчиков можно прицепить несколько параллельно. По описанию каждый сенсор имеет собственный 64 битный ID, что позволяет использовать одновременно сенсоров на шине, длиной м, проверить не довелось, но два датчика на шине длиной 5 метров успешно работают.

Из следующей картинки можно понять как необходимо монтировать детали. На корпусе конденсатора есть пометка полярности — не ошибетесь, резистор полярности не имеет, паяем как хотим. Выводы датчика расположены следующим образом:. Монтаж можно вести прямо на разъеме, при некоторой сноровке, достаточно плотный монтаж можно уместить в корпусе разъема, что несомненно удобно и практично. Посмотреть на Яндекс. Подключать несколько датчиков нужно параллельно, в итоге получается примерно вот такая штуковинаПосмотреть на Яндекс.

Фотках Датчик на конце можно залить эпоксидкой и ему не будут страшны условия за окном. Термометр готов, и что особенно приятно, все работает без какой либо калибровки сенсоров. Для считывания показаний термометра потребуется программа digitemp, она есть в репозитариях популярных дистрибутивов Linux, установить сложности не составит.

Также у нее есть официальный сайт. Устройство было подключено к серверу, где уже давно его ждала система мониторинга cacti, теперь можно наблюдать такие интересные графики: Видно когда в комнате было открыто окно и как медленно под вечер опускается температура на улице.


Ремонт цифрового термометра своими руками

Самое подробное описание: ремонт цифрового термометра своими руками от профессионального мастера для своих читателей с фотографиями и видео из всех уголков сети на одном ресурсе. Цифровой термометр был задуман изначально как бытовой, домашний, который всю свою жизнь должен провисеть где-нибудь у окошка. Владельца термометра, прежде всего, волнует, какая температура на улице. Поэтому термометр может иметь внешний датчик температуры, расположенный, например, на внешней стороне рамы окна или только внутренний, если нужен контроль температуры в помещении. Часто надо посмотреть на термометр, когда условия освещения плохие — например, посреди ночи. Поэтому ЖК-индикаторы, даже с подсветкой, не подходят. Лучшую читаемость в условиях недостаточного освещения имеют светодиодные индикаторы типа АЛС.

Предлагаю свой вариант цифрового термометра с двумя датчиками температуры. Устройство выполнено на микроконтроллере ATmegaPU и двух.

ТЕРМОМЕТР НА МИКРОКОНТРОЛЛЕРЕ

Прибор, предназначенный для измерения температуры различных веществ воздух, газ, пар, жидкость, почва и т. Одним утром я проснулся и захотел узнать температуру на улице. Вместо того, чтобы идти в хозяйственный магазин и покупать стеклянный термометр, я решил сделать самодельный беспроводной термометр. Сдвоенный цифровой термометр на ATmega8 и DS18B20 Предлагаю свой вариант цифрового термометра с двумя датчиками температуры. Устройство используется в домашних целях, один из его датчиков устанавливается на улице, другой в помещении. Индикация значений температуры осуществляется двумя сдвоенными светодиодными 7-сегментными индикаторами с общим катодом, расположенными друг над другом. Термореле с цифровым датчиком температуры В описываемой конструкции простого термореле использован недорогой цифровой датчик температуры TCN,0. Малые размеры, низкая стоимость и легкость использования делают TCN75 идеальным для встраивания в различные устройства автоматики.

ЧАСЫ-ТЕРМОМЕТР НА МИКРОКОНТРОЛЛЕРЕ ATMEGA8

В данной статье проведем обзор цифрового термометра , построенного на микроконтроллере Attiny , снабженного выносным цифровым датчиком DS18B Схема очень простая, содержит минимум деталей и ее запросто можно собрать своими руками. В роли температурного датчика выступает микросхема DS18B20 фирмы Dallas. В схеме термометра можно применить до 8 цифровых датчиков. Микроконтроллер взаимодействует с DS18B20 по протоколу 1Wire.

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

Цифровой термометр возвращается

Импульсные блоки питания Линейные блоки питания Радиолюбителю конструктору Светодиоды, ламы и свет 3D печать и 3D модели Этот цифровой термометр предназначен для длительного измерения и записи на жесткий диск компьютера информации о температуре с четырех датчиков, например в разных помещениях либо в четырех точках какого-либо устройства или конструкции. Посмотреть видео про этот проект. Устройство разрабатывалось для применения в системе регистрации данных для контроля температуры в нескольких точках помещения. Такой термометр можно использовать в быту, в качестве узла метеорологической станции или в промышленных условиях. Управляющая программа «прошивка» микроконтроллера Atmega8, используемого в термометре, написана на языке Си в довольно удобном на мой взгляд компиляторе mikroC PRO for AVR, который разрабатывается очень позитивной Сербской компанией Mikroelectronica.

Микроконтроллеры

Как,следует из схемы, электронный термометр состоит из входных и выходных электрических цепей, сетевого понижающего трансформатора питания 77 и собственно термометра, собранного на полупроводниковом датчике. Схема и прошивка часов: А схема термометра потерялась на просторах интернета: Но Некоторые комплектующие ЭРЭ в процессе изготовления термометра могут быть заменены аналогичными и не ухудшающими основные электрические параметры и технические характеристики электронного термометра, которые приведены ниже. Несложный термометр позволяет измерять температуру от нуля до плюс ста градусов. В роли температурного датчика выступает микросхема DS18B20 фирмы Dallas. В схеме термометра можно применить до 8 цифровых датчиков. Микроконтроллер взаимодействует с DS18B20 по протоколу 1Wire.

Предлагаю свой вариант цифрового термометра с двумя датчиками температуры. Устройство выполнено на микроконтроллере ATmegaPU и двух.

Термометр на датчиках LM35 и Arduino UNO

Самодельный термометр на микроконтроллере

Простые часы с термометром на микроконтроллере AVR ATtiny с выводом информации на семисегментный индикатор. Часы используют для отсчета времени микросхему DS — часы реального времени и источником резервного питания в 3 В. Температура измеряется при помощи датчика температуры DS18B Текущее значение времени и температуры происходит поочередно сначала время а потом температура с нтервалом в 4 секунды.

Сдвоенный цифровой термометр на ATmega8 и DS18B20

ВИДЕО ПО ТЕМЕ: Схема Комнатного термометра.

Схема и программа очень простого цифрового термометра с использованием микроконтроллера ATmega8 и датчика температуры DS18B Термометр позволяет измерять температуру от 0 до 99 градусов с точностью до 0,5 градусов с разрешением 0,1 градуса. Использовать в этой конструкции микроконтроллер с памятью 8 килобайт конечно расточительно, можно применить микроконтроллер и попроще. Но дело в том, что эта конструкция — основа для дальнейшего развития проекта с использованием цифрового датчика температуры DS18B Естественно, будет добавлена возможность измерять и отрицательные температуру.

На рис. В термометре, схема которого дана на рис.

Барометр и термометр своими руками

Логин или эл. Войти или Зарегистрироваться. Авторизация Логин или эл. Недавно занимался сборкой компьютера с полностью пассивным охлаждением. Чтобы было удобно контролировать температуру процессора, нужно было по быстрому собрать термометр. Или даже при полностью отключенном мониторе. Было решено собрать термометр на основе цифрового датчика DS18B20, дешёвого микроконтроллера AVR, и семисегментного индикатора.

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


ГЛАВА 20 Изобретаем велосипед . Занимательная электроника [3 издание]

Настольные часы и термометр-барометр на микроконтроллере

— В таком случае, купите мне, сударь, часы, — попросил Планше.

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

А. Дюма. Три мушкетера

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

Правильный путь к конструированию часов — применение какой-нибудь из универсальных микросхем часов реального времени (RTC), где все эти функции реализованы и проверены, предусмотрен автономный режим резервного хода с микропотреблением и т. д., а микроконтроллер выступает лишь в качестве интерфейса между такими часами и индикацией или еще каким-то способом представления времени. Именно так, в частности, устроены часы в компьютере: когда он выключен, время отсчитывается в автономной микросхеме RTC с резервной батарейкой, при включении оно оттуда считывается и далее уже индицируется программно. Такими часами мы займемся в следующей главе — на платформе Arduino они реализуются, как говорится, «с полпинка». Здесь же мы покажем пример того, как можно отсчитывать время, что называется, «в лоб», — это же решение годится и для индикации любых значений (например, показаний каких-нибудь датчиков).

Часы со счетом времени на МК

Часы мы сделаем на основе светодиодных индикаторов — поскольку схема все равно будет потреблять довольно много, то так или иначе потребуется сетевой источник питания, и слепые ЖК-индикаторы ставить нет особого смысла. Также договоримся, что секунды мы не показываем (в настольных часах этого никто и не делает, заменяя их отсчет миганием разделительной точки или двоеточия).

Для выбора МК из предлагаемых фирмой Atmel просто подсчитаем, сколько нам требуется выводов. Во-первых, надо управлять четырьмя разрядами индикации (ЧЧ: ММ). Это мы будем делать в режиме динамической индикации, когда в каждый отдельный момент времени напряжение питания подается только на один разряд индикаторов, и в это же время на сегменты, которые все соединены между собой параллельно, подается код, соответствующий именно этому разряду. При четырех разрядах непосредственное управление предполагает 74 = 28 задействованных выводов, а динамическое — всего 7 + 4 = 11.

Затем нам надо засвечивать разделительный символ — в часах это традиционно двоеточие. Наконец, часы нужно устанавливать. Для этого минимально необходимы две кнопки (включение режима установки и собственно установка). Итого получилось по минимуму 14 выводов.

Остановимся на знакомом нам МК ATtiny2313 — он выпускается в 20-выводном корпусе (см. рис. 19.2), в котором 5 выводов занято под системные нужды (два питания, Reset и два вывода для подключения кварца). Итого нам остается на все про все 15 выводов, что нас устраивает (выводы для программирования тоже задействуем). Мы даже вроде бы получаем один резервный вывод, но далее увидим, что на самом деле под все желательные дополнительные функции выводов нам будет не хватать, и придется изворачиваться (конечно, можно остановиться на ATmega8, у которого 28 выводов корпуса, но мы делаем схему в учебных целях, и тут дефицит даже полезнее).

Общее построение схемы

Теперь общая схема. Выбираем индикаторы большого размера (с цифрой 1 дюйм, или 25,4 мм высотой), с общим анодом, т. е. типа SA10, если ориентироваться на продукцию Kingbright. Лично я предпочитаю желтое свечение (например, SC10-21Y), но это не имеет значения. Так как падение напряжения у них может достигать 4 В, то от того же питания, что требует МК (5 В), питать их нельзя, поэтому нам потребуется два питания: одно стабилизированное +5 В и второе нестабилизированное (пусть будет +12 В). Управлять разрядами индикаторов мы будем от транзисторных ключей с преобразованием уровня (когда на выходе МК уровень +5 В, ключ подает +12 В на анод индикатора), а сегментами — от простых транзисторных ключей (при уровне +5 В вывод сегмента коммутируется на «землю» — поскольку питание индикаторов повышенное, то, к сожалению, управлять прямо от выводов процессора не получится).

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

Токоограничивающие резисторы в управлении сегментами примем равными 470 Ом, тогда пиковый ток через сегмент составит примерно 20 мА, а средний для четырех индикаторов — 5 мА. Всех восьмерок на часах быть не может, максимальное число одновременно горящих разрядов равно 24 («20:08»), потому общее максимальное потребление схемы составит 24-5 = 120 мА, плюс примерно 10 мА на схему управления, итого 130 мА. Исходя из этого, будем рассчитывать источник питания.

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

При питании в пределах 4–5 В контроллер типа 2313 потребляет около 5 мА, так что можно рассчитывать на непрерывную работу от щелочной батарейки типа АА с емкостью порядка 2 А·ч в течение не менее 2–3 недель. Так как на непрерывную работу мы не рассчитываем, а лишь на поддержку при сбоях длительностью максимум в несколько минут или часов (при длительном отключении от сети батарейку придется извлекать), то это нас устраивает. Для обеспечения работы понадобятся три таких элемента, соединенных последовательно, тогда их общее напряжение составит 4,5 В.

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

Чтобы сделать схему совсем «юзабельной», добавим также небольшой узел для сигнализации при необходимости замены резервной батарейки — пусть это будет наше ноу-хау, т. к. такого почти ни у кого нет[36]. Хотя есть специальные микросхемы, которые «мониторят» питание (мы о них уже говорили в главе 18 % здесь в образовательных целях мы без них обойдемся. Схему такого узла удобно реализовать, «не отходя от процессора», на встроенном компараторе, если сравнивать напряжение батарейки с каким-то фиксированным напряжением.

Кроме того, потребуется некий монитор питания для того, чтобы контроллер «знал», что он подключен к батарейке — при этом придется отключать выводы управления индикацией, чтобы не было дополнительного потребления (вообще-то можно и задействовать режим пониженного энергопотребления, но в нашей конструкции он не имеет особого смысла). В этом случае у нас набирается уже целых 18 функций (12 для осуществления индикации, 2 кнопки установки, 2 входа компаратора, 1 для сигнализации состояния батарейки и еще 1 для входа монитора питания), а использовать контроллер большего размера только для этой цели не хочется. И уж совсем не хочется добавлять какие-то внешние схемы лишь для того, чтобы контролировать батарейку, которая, может быть, сядет этак лет через пять…

Поэтому мы объединим функции выводов: используем один из входов компаратора также и под вторую кнопку, как обычный вывод порта. А на другой вход компаратора, который подсоединен к опорному источнику, «повесим» дополнительно функцию монитора — сигнализировать о пропадании внешнего питания, все равно опорный источник подключен к напряжению питания. Остается придумать, как обеспечить сигнализацию разряда батареи. Тут мы сделаем просто: пусть разделительный символ (двоеточие) мигает, когда все нормально, а когда батарея разряжена — горит все время. Таким образом мы получим наиболее экономичную схему с минимумом внешних элементов.

Теперь поглядим на схему разводки выводов ATtiny2313 (см. рис. 19.2) и выберем, что и к чему мы будем подсоединять. Во-первых, удобно использовать вход внешнего прерывания, например, INT1 (вывод 7) под кнопку, которая будет вводить часы в режим установки. От порта D (портов А и С в этом микроконтроллере нет) осталось шесть разрядов, четыре из которых мы задействуем под управление разрядами индикаторов (в скобках указаны номера выводов): PD0 (2), PD1 (3), PD2 (6) и PD4 (8). Из восьми выводов порта В два задействованы под входы компаратора AIN+ (вывод 12 — к нему мы подсоединим опорный источник для контроля батареи и с него же будем снимать информацию о состоянии питающего напряжения и второй кнопки) и A1N- (вывод 13 — к нему подключим батарейку). Для управления миганием разделительного двоеточия удобно использовать вывод ОС1 (15), который управляется автоматически от таймера (см. главу 19). Под управление сегментами мы задействуем оставшиеся выводы: PD5 (9), PD6 (11), РВ2 (14) и РВ4-РВ7 (16–19). То, что выводы для управления индикаторами расположены не по порядку — это, конечно, не здорово, нам фактически придется управлять каждым разрядом по отдельности, но обойдемся.

Схема

Вот, собственно, и все предварительные наметки — можно рисовать схему платы управления. Она показана на рис. 20.1. Некоторую громоздкость схеме придают ключи управления индикаторами, однако все равно ее можно без проблем уместить на плату примерно 70×100 мм, а с некоторыми усилиями — и на меньшую.

Рис. 20.1. Схема часов на МК ATtmy2313 (плата управления)

Как мы говорили ранее, в ней можно без внесения изменений заменить ATtiny2313 на старый AT90S2313.

Игольчатый разъем X1 типа IDC с 10-ю контактами — программирующий, рассчитанный на описанный в главе 19 программатор от Argussoft. Его можно заменить на стандартный 6-контактный, как и указывалось в главе 19. Все остальные внешние соединения, кроме питания от сети, осуществляются через такой же разъем, но с 16-ю контактами, два из которых: контакты «земля» и питание.

Обратите внимание, что программирующие выводы (кроме Reset) здесь работают в двух режимах. В нормальном режиме эти выводы работают, как выходы на нагрузку 5,1 кОм. Не помешает ли это процессу программирования? Нет, не помешает — такая нагрузка для программатора вполне приемлема. Более того, «чистые» (более нигде не задействованные) выводы программирования все равно следует нагружать «подтягивающими» резисторами, иначе не исключены сбои (об этом мы говорили в главе 18). Здесь же роль гасящей помехи нагрузки играют базовые резисторы ключей управления транзисторами, и дополнительных мер принимать не приходится.

Плату индикации мы делаем отдельно (рис. 20.2).

Рис. 20.2. Схема часов на МК AT90S2313 (плата индикации)

На ней мы ставим четыре индикатора и две управляющих кнопки (о них далее), а также в точности такой же разъем IDC-16, как и на плате контроллера, причем он должен стоять на стороне платы, противоположной индикаторам. Разводка у него также должна быть идентичной. Эти разъемы мы соединим плоским кабелем. Изготовить такой плоский кабель с разъемами IDC-16F самостоятельно без наличия специального инструмента практически невозможно, потому либо придется такой инструмент приобрести, либо попросить установить разъемы на ваш кабель в любой фирме, которая занимается сборкой и ремонтом компьютеров. Можно употребить и готовый кабель даже с большим количеством линий, если на плате использовать разъемы PLD (т. е., если не установлен кожух). Это решение не очень красивое, т. к. при этом кабельная часть разъема будет выходить за пределы разъема на плате, и это нужно предусмотреть в раскладке платы, иначе разъем кабеля может во что-нибудь упереться.

Рассмотрим подробнее работу схемы платы управления. При включении питания цепочка R1C1 обеспечивает надежный Reset. Напомню (см. главу 18), что ставить эту цепочку необязательно — производитель МК гарантирует нормальный Reset и без каких-либо внешних элементов, однако для лучшей защиты от помех это не помешает, ведь часы у нас должны работать по идее годами в круглосуточном режиме.

После установления питания диод VD2 «запрет» батарею, которая имеет напряжение заведомо ниже, чем на выходе стабилизатора. Оба диода — с переходом Шоттки, падение напряжения на них не превышает 0,2–0,4 В.

Теперь разберемся с нашими компараторными примочками. В нормальном режиме кнопка Кн2 (S3 на плате индикации — см. рис. 20.2) разомкнута и на работу схемы не влияет. Напряжение батареи фактически напрямую (делитель R4/R5 делит сигнал в отношении 300/301) попадает на инвертирующий вход компаратора. Это напряжение сравнивается с напряжением на стабилитроне VD3, равном примерно 3,9 В. Стабилитрон обязательно должен быть маломощный, типа КС139Г, в стеклянном корпусе, или соответствующий импортный, в противном случае сопротивление резистора R35 надо снизить примерно в два-три раза. Когда напряжение батареи упадет ниже этого уровня (выбранного с некоторым запасом — при 3 В МК еще может нормально работать, но часть напряжения батареи упадет на диоде VD2, кроме того, следует учитывать, что смена батарейки может произойти не сразу), то компаратор перебросится в состояние логической единицы по выходу.

Программа (см. далее) зарегистрирует падение напряжения батарейки, и разделительное двоеточие (пара светодиодов VD1 и VD2 на схеме по рис. 20.2, подключенных к выводу мигания от Timer 1) перестанет мигать и будет гореть постоянно. Восстановление произойдет сразу, как только батарею сменят на свежую. Та же реакция будет, если просто отключить батарею тумблером «Бат» (S1 на рис. 20.1) или удалить ее. Для того, чтобы в этих случаях вход компаратора не оказывался «висящим в воздухе», и предназначен резистор R5. Ток через него настолько мал (около 1,5 мкА), что на разряд батареи это не оказывает влияния. С8 защищает вход от наведенных на этом резисторе помех.

Разумеется, отличить нажатие кнопки Кн2 от внезапного выключения батарейки МК не в состоянии, но «правильная» реакция на нажатие Кн2, как мы увидим далее, происходит только в режиме установки часов — когда предварительно была нажата кнопка Кн1 (S2 на рис. 20.2). Нажатие Кн2 и в самом деле будет восприниматься, как отключение батарейки — ив режиме установки, и в рабочем режиме, но только на время ее нажатия, а после отпускания состояние МК сразу восстановится. Поэтому функции друг другу не мешают, за исключением невероятного совпадения, если батарейка «захочет» разрядиться как раз в момент установки времени (и при разряженной или отключенной батарейке, увы, установку времени производить нельзя).

При пропадании внешнего питания запирается диод VD1, а диод VD2 открывается, и напряжение батареи попадает на питание МК. Резистор R6 вкупе с развязывающим конденсатором С2 служат для большей устойчивости работы МК в момент перепада напряжений при переключении питания, для той же цели служит конденсатор С7, установленный параллельно кнопке Кн1 (иначе при перепадах напряжения может спонтанно возникать прерывание, и часы войдут в режим установки, о котором далее). Одновременно с переключением питания становится равным нулю напряжение на стабилитроне, а так как при этом стабилитрон представляет собой обрыв в цепи, то установлен резистор R36, который служит тем же целям, что и резистор R5. Компаратор работать перестает (точнее, он всегда будет показывать «нормальную» батарею), но нас это не волнует, т. к. индикации все равно нет.

Тумблер «Бат» (S1 на рис. 20.1) нужен для отключения батареи в случае, если вы хотите остановить часы надолго, а вот тумблер для включения сетевого питания тут совершенно не требуется (разве что на время отладки).

Программа

Полный текст программы часов можно скачать с сайта автора по ссылке: http://revich.lib.ru/AVR/clock.zip. Все подробности приведены в качестве комментариев к тексту программы, здесь мы рассмотрим только общее ее построение и принцип работы.

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

Восьмиразрядный Timer 0 у нас будет по событию переполнения управлять разрядами в режиме динамической индикации. При заданной частоте на входе Timer 0, равной 1/8 от тактовой частоты (4 МГц), частота управления разрядами получится равной 1/256 от 4 МГц/8 = 500 кГц, т. е. чуть меньше 2 кГц, а каждый из четырех разрядов будет включаться с частотой почти 500 Гц, что однозначно превышает порог заметности мигания.

* * *

Заметки на полях

Заметим, что при проектировании питания подобных устройств следует учитывать еще одно обстоятельство: в динамическом режиме нельзя использовать для питания индикаторов пульсирующее напряжение (как в схеме со статической индикацией вроде термометра из главы 17) — обязательно возникнут биения между частотой питающего напряжения и частотой переключения разрядов, и яркость свечения будет пульсировать. Потому напряжение +12 В необязательно должно быть стабилизированным, но для него обязательно наличие сглаживающего фильтра. На самом деле в данной конструкции это условие соблюдается автоматически, т. к. те же +12 В подаются и на вход стабилизатора + 5 В, но могут встретиться конструкции, в которых питание индикаторов осуществляется от отдельной обмотки трансформатора, и нам об этом забывать не следует.

* * *

16-разрядный Timer 1 у нас будет управлять собственно отсчетом времени по прерыванию сравнения, как это делалось в главе 19. Для этого в регистры сравнения загружается число 62 500, а предварительный коэффициент деления задается равным 1/64, тогда прерывание таймера будет возникать с частотой 4 МГц/64/62 500 = 1 Гц. На практике число для сравнения подгоняется под конкретный кварц, и обычно почему-то меньше теоретической величины 62 500 (так, в моем случае оно было равно 62 486).

* * *

Подробности

Как быстро подобрать коэффициент деления? Можно воспользоваться высокоточным частотомером для измерения длительности секундного импульса на выводе ОС1А. При отсутствии такого прибора (мультиметры, позволяющие измерять частоту, не подойдут решительно, а большинство радиолюбительских частотомеров могут использоваться лишь для ориентировочной прикидки) нужно воспользоваться следующим приемом: установить часы с каким-то определенным коэффициентом (например, с теоретическим значением 62 500) по точным часам, например, по компьютерному времени, которое несложно выставить через Интернет очень точно. Так как небольшая ошибка все равно может сохраниться (см. далее процедуру установки), то после установки отметьте точную разницу в секундах между моментом смены показаний минут нашей конструкции и точных часов и запишите ее. Потом выдержите часы достаточно длительный промежуток времени (чем длиннее, тем точнее). Снова точно установите время в компьютере и опять запишите разницу в момент смены минут.

Таким образом вы получите величину ухода часов — пусть, например, она составляет 200 секунд в месяц в сторону отставания. Это значит, что у нас секундный интервал длиннее необходимого на 200/2 592 000 = 7,7·10-5 часть, т. е. на 77 микросекунд (число 2 592 000 есть число секунд за 30 дней, проверьте). Эту же величину мы можем получить и с помощью частотомера. На 77 микросекунд и следует уменьшить период «тиков» таймера, для чего нужно уменьшить наш коэффициент деления на величину 62 500·7,7·10-5 ~= 5, т. е в регистры таймера необходимо записать число 62 495. То же число можно получить, исходя из того, что при коэффициенте деления 1:64 и кварце 4 МГц каждый такт таймера длится 16 микросекунд. Отметьте, что несмотря на кажущуюся достаточно высокую величину коэффициента деления 62 500, изменение его всего на единицу изменит ход часов на целых 40 секунд в месяц, т. е. более, чем на секунду в сутки — это является следствием использования 16-разрядных счетчиков-таймеров и крупнейшим недостатком использования МК для отсчета времени. Для более тонкой подстройки придется изощряться, придумывая всякие хитрости.

* * *

Кроме этого, в процедуре инициализации разрешается прерывание от кнопки Кн1 (INT1). Для кнопки Кн2 отдельного прерывания не требуется, ее состояние отслеживается непосредственно в процессе установки (см. далее). По окончании установок разрешаются прерывания (команда sei), и далее программа переходит к выполнению бесконечного цикла, во время которого производится мониторинг состояния определенных узлов.

Основная логика работы часов следующая. Каждую секунду, когда происходит прерывание Timer 1, счетчик секунд sek увеличивается на 1 (см. процедуру обработки прерывания TIM1 по метке mtime). Если его значение не равно 60, то больше ничего не происходит, если равно, то регистр sek обнуляется, и далее по цепочке обновляются значения текущего времени, хранящиеся в регистрах emin, dmin, ehh и dhh (см. их определения в начале программы).

Прерывание по переполнению Timer 0 для управления разрядами происходит независимо от прерывания Timer 1 и использует установленные в последнем значения часов. По Timer 0 обнуляются все выходы всех портов, управляющие индикацией, затем проверяется значение счетчика POS, отсчитывающего последовательные номера разрядов (от 0 до 3). Чтобы не тратить время на всякие проверки и обнуления, для организации счетчика до 4 здесь используется тот факт, что число 4 совпадает с числом комбинаций первых двух битов. Тогда для последовательного непрерывного счета (0-1-2-3-0-1…) достаточно каждый раз увеличивать счетчик на единицу (см. команду inc POS в конце процедуры), а в начале ее лишь обнулять старшие шесть битов (команда andi POS,3). Далее в зависимости от значения счетчика (cpi POS….) устанавливаем питание нужного индикатора (sbi PortD….) и вызываем процедуру установки маски сегментов SEG_SET, где в зависимости от значения данного разряда в часах устанавливается и маска.

В процедуре SEG_SET и, собственно, в процедурах установки маски (OUT_х) я предлагаю вам разобраться самостоятельно, Есть и другие способы — например, непосредственного задания маски рисунков цифр через загрузку констант командой lpm для чтения констант из памяти, тогда не потребуется длинной процедуры установки битов по отдельности (см. далее). Но такую маску удобно использовать, если у вас выводы управления разрядами идут подряд (к примеру, когда биты 0–7 порта D соответствуют битам маски 0–7). Тогда маску достаточно приложить к регистру порта, и программа резко сокращается. А здесь это сделать трудно — перестраивание маски под выводы различных портов займет не меньше места, чем простая и понятная прямая установка выводов.

Процедура установки часов накладывается на всю эту картину и работает следующим образом. При коротком нажатии на Кн1 возникает прерывание INT1 (процедура по метке INTT1), в котором первым делом проверяется, есть ли сетевое питание (бит 1 регистра Flag, см. далее), иначе и сама установка не требуется. Далее запрещается само прерывание INT1 во избежание дребезга. Разрешается оно в прерывании Timer 1 (см. в исходном тексте начало процедуры TIM1), которое, как мы уже знаем, происходит каждую секунду. Таким образом время нечувствительности, в течение которого можно отпустить кнопку без последствий (без перескока на произвольный разряд), составляет случайную величину от 0 до 1 с. На самом деле это не совсем верное решение, и сделано так только для простоты, — по-хорошему следовало бы пропустить одну секунду, и только потом разрешать, иначе вероятность дребезга все-таки остается большой.

Далее в прерывании INT1 устанавливается отдельный счетчик разрядов set_up, который будет считать от 1 до 4 (если он больше, то выходим из режима установки), и признак режима установки (бит 0 регистра Flag). Если этот признак установлен, то разряд, соответствующий установленному номеру в счетчике set_up, станет мигать. Это достигается с помощью вспомогательного счетчика count (см. процедуру TIM1 по метке CONT1). В этом же месте программы отслеживается состояние Кн2 — если она нажата и удерживается, то каждую секунду происходит увеличение значения выбранного разряда на 1 в тех пределах, в которых это допускается (для единиц минут — от 0 до 9, для десятков минут — от 0 до 5, для десятков часов — от 0 до 2, причем предел единиц часов зависит от значения десятков), далее значение опять обращается в 0. Отпустив кнопку Кн2, вы фиксируете установленное значение, а нажав кратковременно на Кн1, переходите к следующему разряду. После прохождения всех разрядов, при последнем (пятом) нажатии Кн1 режим установки отменяется, т. е. бит 0 регистра Flag сбрасывается (см. процедуру по прерыванию INT1).

Немаловажная особенность этой конструкции — то, что во время установки счет времени прекращается, а при выходе из режима установки счетчик секунд устанавливается в состояние 59 (команда idi sek,59), т. е. счет сразу же начинается с новой минуты. Окончание установки — это довольно важный момент, который можно организовать по-разному, но данный способ наиболее удобен, т. к. вам достаточно дождаться окончания текущей минуты по образцовым часам, и в этот момент сделать последнее нажатие, выйдя из режима установки, чтобы довольно точно синхронизировать время. Сравните, например, как неудобно исполнена ручная установка часов в Windows, где часы продолжают идти и во время установки. А если бы мы обнуляли счетчик секунд вместо его установки в максимальное значение, то нам пришлось каждый раз устанавливать число минут на единицу большее текущего, что неудобно.

Теперь об обеспечении режима автономной работы. Программа контроллера в непрерывном цикле опрашивает значение логического уровня на выводе номер 12 (РВО, он же AIN+), и когда оно становится равным нулю, принимает меры к снижению потребления, в первую очередь за счет отключения внешних портов (см. процедуру Disable). Как только внешнее питание восстанавливается, автоматически возобновляется нормальный режим работы (Restore).

При перебрасывании компаратора в любою сторону происходит прерывание ACOMPI. В нем вывод 15 (ОС1) отключается от таймера Timer 1 и устанавливается навсегда в единичное состояние, если состояние компаратора есть логическая единица (т. е. когда истощается или отключается батарейка). Тогда двоеточие горит постоянно. И наоборот, вывод этот опять подключается к автоматическому миганию, когда компаратор перебрасывается обратно в нулевое состояние.

Детали и конструкция

В качестве источника питания мы используем внутренности блока со встроенной вилкой, с номинальным напряжением питания 10 В и током не менее 500 мА (такие продаются для некоторых игровых консолей). Напряжение на холостом ходу у него будет составлять примерно 13–14 В, под нагрузкой 130 мА оно сядет как раз примерно до 11–12 В.

В качестве кнопок Кн1 и Кн2 с легким нажатием удобно использовать обычные микропереключатели (известные в отечественном варианте под названием МП-1), но со специальной металлической лапкой-рычагом, которая предназначена для того, чтобы уменьшить усилия нажатия и увеличить зону срабатывания (вообще-то такие кнопки предназначены для использования в качестве концевых выключателей). Подойдут импортные кнопки типа SM5 (см. рис. 20.3). Тогда нам не придется портить внешний вид фалыдпанели кнопками или устанавливать их где-то сзади, а установить их прямо на плату индикаторов и просверлить в дымчатом оргстекле напротив них маленькие отверстия, через которые кнопку можно нажимать зубочисткой или другим острым предметом. Чтобы отверстие в оргстекле выглядело «фирменно», сверлить следует осторожно, на малых оборотах, затем вручную сверлом или зенковкой сделать аккуратную фаску с лицевой стороны и обработать отверстие маслом, чтобы оно не белело. Подобное решение хорошо еще и тем, что случайное нажатие кнопок — беда почти всех бытовых электронных устройств — совершенно исключено.

Рис. 20.3. Кнопка SM5 c лапкой-рычагом

После изготовления платы индикации сначала следует установить с обратной стороны разъем, а затем «обдуть» лицевую часть платы черной эмалью из баллончика, не слишком густо (достаточно одного слоя), чтобы краска не затекла в отверстия. Потом на черную плату уже монтируются индикаторы, светодиоды разделительной точки и кнопки. Светодиоды нужно выбирать, естественно, того же цвета свечения, что и индикаторы. Имейте в виду, что сама по себе характеристика «желтый» или «зеленый» еще ни о чем не говорит, — только в таблице, приведенной в главе 7, два зеленых цвета и три красных, а у разных изделий разных фирм их может быть еще больше. И чтобы разница не бросалась в глаза, приготовьтесь к тому, что покупать придется несколько разновидностей и подбирать оттенок по месту. Под индикаторы указанного типоразмера (1 дюйм) подойдут светодиоды диаметром 3 мм, обычные 5-миллиметровые будут слишком выделяться (а под меньшие индикаторы потребуются светодиоды с еще меньшим диаметром). Светодиоды при этом желательно иметь с диффузным рассеиванием, чтобы их было одинаково видно со всех углов зрения. Так что вопрос их подбора может оказаться непростым.

Для каждого типа светодиодов придется подобрать резистор R34 (см. рис. 20.1) согласно необходимой яркости (для прозрачных номинал его будет больше, для диффузных — меньше). Устанавливать эту пару диодов следует не прямо друг над другом, а с некоторым наклоном, соответственно наклону цифры индикатора. Неплохо будут выглядеть и прямоугольные светодиоды (5×2 мм), также под наклоном, только их боковые грани придется закрасить густой черной краской или аккуратно обернуть их непрозрачной липкой лентой.

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

Когда мы соединим плату управления с платой индикации кабелем и подключим питание, схема заработать сразу не сможет, потому что нужно запрограммировать МК. Для этого вы должны подключить к разъему XI программатор и загрузить hex-файл с программой. Часы должны «затикать» светодиодами и показать все нули на индикаторах. Потом можно браться за установку времени.

Без сомнения, вы легко сможете доделать эту конструкцию, добавив в нее, к примеру, функции будильника. Причем это можно сделать даже без переделки схемы, если «повесить» функции установки и включения будильника на те же кнопки, разделив их с простой установкой за счет отсчета времени удержания кнопки (т. е. между нажатием и отпусканием). Сложнее, правда, будет обеспечить выход на «пищалку», но ее можно «повесить» на тот же вывод «мигалки» управления разделительными светодиодами, если при срабатывании будильника заполнять включенное состояние мигалки частотой 2 кГц, предназначенной для управления разрядами, — например, переключая с этой частотой вывод ОС1 то на вход, то на выход (при этом в обычном режиме «пищалка» будет еле слышно тикать). Но, разумеется, никто вас не заставляет жаться и применять именно 2313 — возьмите модель Mega8 или Mega8515, где выводов гораздо больше, и все окажется куда проще. Тем более, что в этом случае можно придумать и еще что-то, например, добавить маленькие разряды секундомера в углу передней панели, а будильник дополнить «полицейской» мигалкой, переключая красный и синий светодиоды попеременно.

Измеритель температуры и давления на AVR

Прежде чем непосредственно заняться этой относительно сложной конструкцией, нам придется углубиться в теорию и понять, как в восьмиразрядном контроллере производить арифметические действия с многобайтовыми числами, и к тому же получать результат в десятичной системе счисления. Без этого никакой измеритель с индикацией спроектировать невозможно, т. к. АЦП контроллера выдает абстрактные численные результаты, а нам нужны физические величины. Подгонять выходную шкалу с помощью регулирования соотношений опорного и измеряемого напряжения, как мы это делали в цифровом термометре из главы 17, при наличии процессора — не просто глупое, но и крайне неудобное занятие: для термометра нужна одна шкала, для датчика давления — совсем другая (а если бы мы еще пару датчиков других величин придумали вставить?).

Поэтому для начала поучимся оперировать в контроллере большими числами и представлять их в десятичной форме. В следующей главе мы перейдем к Arduino, где таких проблем не существует вовсе, — любые арифметические действия программируются «прозрачно» для пользователя, а сопутствующие проблемы за вас уже решили создатели компилятора AVRGCC. Зато когда вы поглядите на объем получающегося кода, то оцените преимущества программирования на ассемблере. И дело даже не в самом объеме (аналогичная программа для Arduino просто не влезла бы в память mega8535), а в скорости исполнения: к этой программе мы спокойно можем добавить еще часы с будильником, запись в память, общение с компьютером, и все это будет спокойно выполняться на частоте 4 МГц с максимально возможной скоростью и без потерь.

Арифметика многобайтовых чисел в МК

Сложение и вычитание больших чисел в МК не представляет трудностей. Корректная операция сложения двух 16-разрядных чисел будет занимать две команды:

add RL1,RL2

adc Rh2,Rh3

Здесь переменные RL1 и RL2 содержат младшие байты слагаемых, a Rh2 и Rh3 — старшие. Если при первой операции результат превысит 255, то перенос запишется во все тот же флаг переноса С и учтется при второй операции. Общий результат окажется в паре Rh2:RL1. Совершенно аналогично выглядит операция вычитания. Примеры операций с большим числом слагаемых вы найдете в тексте программ далее.

А вот с умножением и делением несколько сложнее. Выполнение типовых операций на AVR для чисел с различной разрядностью, вообще говоря, приводится в фирменных руководствах по применению: «аппнотах» (Application Notes, в данном случае номер 200). Но эти процедуры для наших целей все равно придется творчески переработать. Поэтому мы не будем на них останавливаться, а сразу воспользуемся тем обстоятельством, что для контроллеров семейства Mega определены аппаратные операции умножения. Тогда и алгоритм сильно упрощается и легко модифицируется для любого размера операндов и результата. Вот так выглядит алгоритм для перемножения двух 16-разрядных сомножителей с получением 24-разрядного результата (в названиях исходных переменных отражен факт основного назначения такой процедуры — для умножения неких данных на некий коэффициент[37]):

Как видите, если нужно получить полный 32-разрядный диапазон, просто добавьте еще один регистр для старшего разряда (temp3, к примеру) и одну строку кода перед командой ret:

adc temp3,r01

Естественно, можно просто обозвать r01 через temp3, тогда и добавлять ничего не придется.

Деление — значительно более громоздкая процедура, чем умножение, требует больше регистров и занимает больше времени. Операции деления двух чисел (и 8- и 16-разрядных) приведены в той же «аппноте» 200, но они не всегда удобны на практике: часто нам приходится делить результат какой-то ранее проведенной операции умножения или сложения, а он нередко выходит за пределы двух байтов.

Здесь нам потребуется вычислять среднее значение для уточнения результата измерения по сумме отдельных измерений. Если даже само измерение укладывается в 16 разрядов, то сумма нескольких таких результатов уже должна занимать три байта. В то же время делитель — число измерений — будет относительно небольшим и укладывается в один байт. Но мы не будем здесь заниматься построением «настоящих» процедур деления (интересующихся отсылаю к моей книге [21]). Многие подобные задачи на деление удается решить значительно более простым и менее громоздким методом, если заранее подгадать так, чтобы делитель оказался кратным степени 2. Тогда все деление сводится, как мы знаем, к сдвигу разрядов вправо столько раз, какова степень двойки.

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

He правда ли, гораздо изящнее и понятнее? Попробуем от радости решить задачку, которая на первый взгляд требует по крайней мере знания высшей алгебры — умножить некое число на дробный коэффициент (вещественное число с «плавающей запятой»). Теоретически для этого требуется представить исходные числа в виде мантисса-порядок, сложить порядки и перемножить мантиссы. Нам же неохота возиться с этим представлением, т. к. мы не проектируем универсальный компьютер, и в подавляющем большинстве реальных задач все конечные результаты у нас есть целые числа.

На самом деле эта задача решается очень просто, если ее свести к последовательному умножению и делению целых чисел, представив реальное число в виде целой дроби с оговоренной точностью. В десятичной форме это выглядит так: представим число 0,48576 как 48 576/100 000. И если нам требуется на такой коэффициент умножить, к примеру, число 976, то можно действовать, не выходя за рамки диапазона целых чисел: сначала умножить 976 на 48 576 (получится заведомо целое число 47 410 176), а потом поделить результат на 105, чисто механически перенеся запятую на пять разрядов. Получится 474,10176 или, если отбросить дробную часть, 474. Большая точность нам и не требуется, т. к. и исходное число было трехразрядным.

Улавливаете, к чему я клоню? Наше ноу-хау будет состоять в том, что мы для того, чтобы «вогнать» дробное число в целый диапазон в микроконтроллере, будем использовать не десятичную дробь, а двоичную — деление тогда сведется к той же самой механической процедуре сдвига разрядов вправо, аналогичной переносу запятой в десятичном виде.

Итак, чтобы умножить 976 на коэффициент 0,48576, следует сначала последний вручную умножить, например, на 216 (65 536), и тем самым получить числитель соответствующей двоичной дроби (у которой знаменатель равен 65 536) — он будет равен 31 834,76736, или, с округлением до целого, 31 835. Такой точности хватит, если исходные числа не выходят, как у нас, за пределы 3–4 десятичных разрядов. Теперь мы в контроллере должны умножить исходную величину 976 на константу 31 835 (см. процедуру перемножения ранее) и полученное число 31 070 960 (оно оказывается 4-байтовым — $01DA1AF0, потому нашу процедуру Mui1x16 придется чуть модифицировать, как сказано при ее описании) сдвинуть на 16 разрядов вправо:

В результате, как вы можете легко проверить, старшие байты окажутся нулевыми, а в ddM: ddL окажется число 474 — тот же самый результат. Но и это еще не все — такая процедура приведена скорее для иллюстрации общего принципа. Ее можно еще больше упростить, если обратить внимание на то, что сдвиг на восемь разрядов есть просто перенос значения одного байта в соседний (в старший, если сдвиг влево, и в младший — если вправо). Итого получится, что для сдвига на 16 разрядов вправо нам надо всего-навсего отбросить два младших байта и взять из исходного числа два старших ddHH: ddH — это и будет результат. Проверьте — $01DA и есть 474. Никаких других действий вообще не требуется!

Если степень знаменателя дроби, как в данном случае, кратна 8, то действительно никакого деления, даже в виде сдвига, не требуется, но чаще всего это не так. Однако и тогда приведенный принцип может помочь — например, при делении на 215 вместо пятнадцатикратного сдвига вправо результат можно сдвинуть на один разряд влево (умножив число на два), а потом уже выделить из него старшие два байта. В программе далее мы будем делить на 210 = 1024, отбрасывая младший байт (деление на 8) и еще дважды сдвигая результат вправо. Вот такая специальная арифметика в МК.

Операции с числами в формате BCD

О двоично-десятичных числах или числах в формате BCD было подробно рассказано в главе 14. Как ясно из сказанного там, упакованные BCD-числа удобны для хранения данных, но неудобны для отображения и для выполнения арифметических операций с ними. Поэтому перед отображением упакованные BCD-числа распаковывают, перемещая старший разряд в отдельный байт и заменяя в обоих байтах старшие полубайты нулями. А перед проведением арифметических действий их переводят в обычный формат, после чего опять преобразуют в упакованный формат BCD. Вот этими операциями мы и займемся. Следует отметить, что в системе команд процессора 8051 (а также и знаменитого 8086) есть специальные команды десятичной коррекции, но в AVR их нет, и придется изобретать им замену самостоятельно.

В области двоично-десятичных преобразований (BCD-преобразований) есть три основные задачи:

□ преобразование двоичного/шестнадцатеричного числа в упакованный BCD-формат;

□ распаковка упакованного BCD-формата для непосредственного представления десятичных чисел с целью их вывода на дисплей;

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

Некоторые процедуры для преобразования в BCD-формат содержатся в фирменной Application notes 204. Приведем здесь вариант такой процедуры, более экономичный в части использования регистров. Исходное hex-число находится в регистре temp, распакованный результат — в tempi: temp. Процедура довольно короткая:

Заодно приведем одно из решений обратной задачи — преобразование упакованного BCD в hex-число, после чего с ним можно производить арифметические действия (хотя в программе далее это нам не понадобится). По сравнению с «фирменной» BCD2bin8 эта процедура хоть и немного длиннее, но понятнее и более предсказуема по времени выполнения:

Более громоздкая задача — преобразование многоразрядных чисел. Преобразовывать BCD-числа, состоящие более чем из одного байта, обратно в hex-формат приходится крайне редко, зато задача прямого преобразования возникает на каждом шагу. В программе далее нам понадобится преобразование 16-разрядного hex-числа в упакованный BCD. Реализацию этой задачи нет смысла рассматривать подробно — она во всем аналогична рассмотренному случаю, с готовой процедурой bin2BCD16 вы можете ознакомиться в исходном тексте программы TPjmeter (см. далее).

Хранение данных в ОЗУ

В проектируемом измерителе для всех операций переменных-регистров не хватит, и часть данных придется хранить в ОЗУ (SRAM). Познакомимся с общими принципами обращения к ячейкам этой памяти.

Для чтения и записи SRAM предназначены регистры х, y и z — т. е. пары r27:r26, r29:r28 и r31:r30, которые по отдельности еще именуют XH: XL, YH: YL, ZH: ZL — в том же порядке (т. е. старшим в каждой паре служит регистр с большим номером). Если обмен данными производится между памятью и другим регистром общего назначения, то достаточно задействовать только одну из этих пар (любую), если же между областями памяти — целесообразно задействовать две. Независимо от того, какую из пар мы используем, чтение и запись происходят по идентичным схемам, меняются только имена регистров.

Покажем основной порядок действий при чтении из памяти в случае использования регистра z (r31:r30). Чтение одной ячейки с заданным адресом Address, коррекция ее значения и обратная запись производятся так:

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

Абсолютно аналогично выглядят команды чтения:

А вот как можно в цикле записать одно и то же значение из temp в 16 идущих подряд ячеек памяти, начиная с нулевого адреса старших 256 байтов памяти:

Напомним, что область пользовательского ОЗУ начинается с адреса $60 (9610). При попытке записать что-то по меньшему адресу вы обязательно попадаете в какой-то регистр, и результат окажется непредсказуем. Также не следует забывать о том, что последние адреса ОЗУ заняты под стек, который обязательно задействуется, если в программе применяются прерывания. Так, в ATmega8535 имеется 512 байтов SRAM, потому последний адрес (RAMEND) будет равен 96 + 512 — 1 = 607 ($25F), но не стоит занимать адреса ОЗУ выше примерно 592 ($250).

Использование встроенного АЦП

Встроенный АЦП последовательного приближения входит в состав почти всех МК семейства Mega и большинства МК семейства Tiny, кроме простейших младших моделей и, увы, знакомого нам Tiny2313. Мы не будем жаться (от батареек термометру-барометру работать не придется, и экономить тут нечего) и выберем ATmega8535 в корпусе с 40 выводами, у которого имеются четыре порта А, В, С и D полностью (каждый по 8 выводов) и некоторая часть выводов задействована только под альтернативные функции.

Сначала несколько общих слов о встроенных АЦП. Во всех моделях AVR общего назначения они многоканальные и 10-разрядные (за некоторым исключением, например, в ATmega8 из 6 каналов только четыре имеют разрешение 10 разрядов, а оставшиеся два — 8, а в новейшем семействе Xmega АЦП имеет 12 разрядов).

Многоканальность означает, что имеется только одно ядро преобразователя, которое по желанию программиста может подключаться к одному из входов через аналоговый мультиплексор, наподобие 561КП2, рассмотренного в главе 15. Если вы, как чаще всего и бывает, задействуете лишь часть входов, то остальные могут использоваться, как обычные порты ввода/вывода.

Точность АЦП номинально составляет ±2 LSB, плюс еще 0,5 LSB за счет нелинейности по всей шкале. То есть фактически такой АЦП с точки зрения абсолютной точности соответствует 8-разрядному. При соблюдении всех условий эту точность, впрочем, можно повысить, правда, условия довольно жесткие и включают в себя как «правильную» разводку выводов АЦП, так и, например, требование остановки цифровых узлов на время измерения, чтобы исключить наводки (специальный режим ADC Noise Reduction, которого мы здесь касаться не будем).

Чтобы не углубляться в детали этого процесса и не усложнять задачу, мы в дальнейшем поступим проще: предпримем ряд мер, чтобы обеспечить стабильность результата, а абсолютную ошибку скомпенсируем за счет калибровки, которая все равно потребуется. Для этой цели погрешности встроенного АЦП нам хватит и без особых ухищрений, важно только, чтобы показания не «дребезжали». Уменьшение дребезга почти до нуля у нас будет достигаться тем, что, во-первых, на входе канала мы поставим конденсатор для фильтрации неизбежных в совмещенных аналого-цифровых схемах наводок на внешние цепи (фирменное руководство рекомендует еще последовательно с ним включать индуктивность порядка 10 мкГн, но мы без этого обойдемся). Во-вторых, мы будем измерять несколько раз и усреднять значения отдельных измерений.

АЦП в МК AVR могут использовать три источника опорного напряжения на выбор: внешний, встроенный и напряжение питания аналоговой части. Последний вариант, как самый простой, мы и применим — все равно подгонкой масштабов мы заниматься не будем, а все рассчитаем в цифровом виде. Отметим, что выводы аналогового питания сделаны отдельно от цифрового (хотя в простейших случаях это может быть и одно и то же питание, но мы их также разделим). Применение встроенного опорного источника при нестабильном общем питании мы рассмотрим в главе 22 на примере Arduino.

Пару слов о самой организации измерений. АЦП последовательного приближения (см. главу 17) должен управляться определенной тактовой частотой, для чего в его состав входит делитель тактовой частоты самого МК, подобный предделителю у таймеров. Рекомендуется подбирать этот коэффициент деления так, чтобы тактовая частота АЦП укладывалась в промежуток от 50 до 200 кГц. Например, для тактовой частоты МК 4 МГц подойдет коэффициент деления 32, тогда частота АЦП составит 125 кГц. Преобразование может идти в непрерывном режиме (после окончания преобразования сразу начинается следующее), запускаться автоматически по некоторым прерываниям (не для всех типов AVR) или каждый раз запускаться по команде. Мы воспользуемся только последним «ручным» режимом, т. к. нам для осреднения результатов тогда удобно будет точно отсчитывать число преобразований. В таком режиме на одно преобразование уходит 14 тактов, потому для приведенного примера с частотой 125 кГц время преобразования составит приблизительно 9 мс.

По окончании процесса преобразования возникает прерывание АЦП, в обработчике которого результат измерения читается из соответствующих регистров. Поскольку число 10-разрядное, то оно займет два байта, у которых старшие 6 разрядов равны нулю. Это удобно, т. к. мы можем без опасений суммировать до 64 (26) результатов в рамках двухбайтового числа, не привлекая дополнительных регистров, и затем простым сдвигом, как мы обсуждали ранее, вычислять среднее.

Датчики температуры и давления

Аналоговая часть схемы измерения температуры совпадает с описанной в главе 17, за исключением диапазона выходных сигналов и, соответственно, несколько иных параметров. Чтобы использовать диапазон встроенного АЦП полностью, нам надо подавать сигнал от 0 до 5 В (точнее, до значения опорного напряжения, которое здесь совпадает с аналоговым питанием), причем с отрицательными напряжениями на входе в данном случае АЦП работать «не умеет» (в некоторых моделях AVR есть АЦП с дифференциальным режимом, и даже с предварительными усилителями, но точность при этом значительно снижается). При указанных на схеме (рис. 20.4) номиналах резисторов диапазон выходных напряжений всей схемы составит около 4,9 В, т. е. мы задействуем весь диапазон АЦП с некоторым запасом. Резистор R4, который устанавливает нижнюю границу диапазона, нужно выбирать равным не сопротивлению датчика при 0°, как в схеме по рис. 17.9, а равным его сопротивлению при нижней требуемой температуре.

С датчиком атмосферного давления все еще проще — ряд фирм выпускают готовые датчики давления. Мы возьмем барометрический датчик МРХ4115 фирмы Motorola, питающийся от напряжения 5 В и имеющий удобный диапазон выхода примерно от 0,2 до 4,6 В. При этом учтем, что большая абсолютная точность нам не требуется, только стабильность — для небольших высот над уровнем моря можно считать, что при изменении высоты на каждые 10–12 м давление меняется примерно на 1 мм рт. ст. Так что в пределах такого города, как Москва, с естественными перепадами высот до 100 и более метров[38], оно само по себе будет «гулять» в пределах как минимум 10 мм рт. ст., даже без учета этажности зданий. И нам все равно целесообразно будет подогнать результат «по месту» так, чтобы не иметь крупных расхождений с прогнозом погоды по телевидению, — иначе показания прибора окажутся никому не нужны.

Схема

С учетом всего сказанного схема термометра-барометра будет выглядеть так, как показано на рис. 20.4 (напомним, что ОУ МАХ478 можно заменить, например, на ОР293, см. главу 12). Чтобы не загромождать схему, здесь не показан узел индикации, т. к. он аналогичен тому, что используется в часах из предыдущего раздела, за исключением того, что должен содержать не четыре, а шесть разрядов (показания в формате «33,3»° и «760» мм рт. ст.). К ним можно добавить постоянно горящие индикаторы, показывающие единицы измерения, подобно тому, как это делалось в главе 17 (рис. 17.9).

Рис. 20.4. Схема измерителя температуры и давления на МК ATmega8535

На рис. 20.5 показан внешний вид табло такого измерителя, где дополнительные индикаторы изготовлены на основе шестнадцатисегментных PSA-05 красного свечения, в то время как основные семисегментные цифры — зеленого свечения. Минус, как и в главе 17, изготовлен из плоского светодиода.

Рис. 20.5. Размещение индикаторов измерителя температуры и давления

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

Затем в процедуре индикации мы читаем эти константы с помощью инструкции lpm, которая специально предназначена для чтения констант из памяти программ. Инструкция находит их по адресу, в данном случае по метке OUT_N (т. к. адресация в памяти производится байтами, а нумерация команд выполняется словами, то адрес метки приходится умножать на два). После чего выводим в порт С непосредственно маску цифр:

Маски расположены по порядку цифр от 0 до 9. Поэтому перед выполнением этой последовательности команд у нас в рабочем регистре temp должно содержаться значение, соответствующее цифре, выводимой в текущем такте индикации. Так мы избавляемся от процедур рисования знаков. Разряды РВ0-РВ5 назначаем для управления разрядами индикации, а вывод PD7 — для управления знаком температуры.

Не показан на схеме и программирующий разъем, который одинаков для любой схемы на AVR и приведен на рис. 19.2 (соответствующие выводы для ATmega8535 названы на схеме рис. 20.4).

То, что вывод MOSI (вывод 6) совпадает с выводом индикации единиц давления, вас смущать уже не должно. Однако незадействованные в других функциях выводы программирования (в данном случае MISO и SLK, выводы 7 и 8) следует не забыть подсоединить к питанию (в нашем случае к цифровому питанию +5 Вц) «подтягивающими» резисторами номиналом от 1 до 10 кОм, как и показано на рис. 19.2.

Схема источника питания показана на рис. 20.6.

Рис. 20.6. Схема источника питания для измерителя температуры и давления

Измеритель имеет четыре питания (+5 Вц, +5 Ва, — 5 Ва и +12 В для индикации) и три «земли», причем обычным значком «» здесь обозначена аналоговая «земля» GNDa. Линия цифровой «земли» обозначена GNDц, кроме этого, имеется еще общий провод индикаторов GNDи. Все три «земли» соединяются только на плате источника питания. Отмечу, что готовый трансформатор с характеристиками, указанными на схеме, вы можете не найти. Поэтому смело выбирайте тороидальный трансформатор мощностью порядка 10–15 Вт на напряжение вторичной обмотки 10–12 В (которое будет использоваться для индикаторов и стабилизатора +5 Вц), измерьте на нем количество витков на вольт (как описано в главе 9) и домотайте три одинаковых обмотки на 7–8 В, каждая поверх существующих, проводом не тоньше 0,3 мм в диаметре. Удобнее всего их мотать одновременно сложенным втрое проводом заранее рассчитанной длины.

Программа

Чтобы перейти к обсуждению непосредственно программы измерителя, нам нужно решить еще один принципиальный вопрос. Передаточная характеристика любого измерителя температуры, показывающего ее в градусах Цельсия, должна «ломаться» в нуле — ниже и выше абсолютные значения показаний возрастают. Так как мы тут действуем в области положительных напряжений, то этот вопрос придется решать самостоятельно (в АЦП типа 572ПВ2, напомним, oпpeделeниe абсолютной величины и индикация знака производились автоматически).

Это несложно сделать, если представить формулу пересчета значений температуры в виде уравнения N = K·|xZ|, где N — число на индикаторе, х — текущий код АЦП, Z — код АЦП, соответствующий нулю градусов Цельсия (при наших установках он должен соответствовать примерно середине диапазона). Чтобы вычислить значение абсолютной величины, нам придется сначала определять, что больше — х или Z, и вычитать из большего меньшее. Заодно при этой операции сравнения мы определяем значение знака. Если в регистрах AregH: AregL содержится значение текущего кода АЦП х, а в регистрах KoeffH: KoeffL значение коэффициента Z, то алгоритм выглядит примерно вот так:

Здесь разряд 7 порта D (вывод 21 контроллера) управляет плоским светодиодом «минус», который горит, если температура ниже нуля, и погашен, если выше. Давление занимает только положительную область значений, поэтому там такой сложной процедуры не понадобится. Если вы посмотрите на характеристику датчика в фирменном описании, то выясните, что он работает не с начала шкалы — нулевому напряжению на выходе (и, соответственно, нулевому коду АЦП) будет соответствовать некоторое значение давления. В результате можно ожидать, что в формуле пересчета значений давления, представленной в виде N = K(x + Z), все величины будут в положительной области.

Физический смысл коэффициента К — крутизна характеристики датчиков в координатах «входной код АЦП — число на индикаторах». Умножение на коэффициент К мы будем производить описанным ранее методом — через представление его в виде двоичной дроби (за основу берется 210 = 1024, этого будет достаточно). Вычисление ориентировочных значений коэффициентов К и Z поясняется далее, при описании процедуры калибровки.

Теперь можно окинуть взглядом собственно программу. Целиком ее текст и результирующий hex-файл можно скачать с сайта автора по адресу http://revich.lib.ru/AVR/TPineter.zip. При всей своей видимой «навороченности», программа TPmeter занимает в памяти программ контроллера всего 632 байта — сравните со многими килобайтами и даже десятками килобайт, которые будет занимать аналогичная программа на Arduino.

Как вы видите из таблицы прерываний, здесь используется всего один, самый простой Timer 0, который срабатывает с частотой около 2000 раз в секунду. В его обработчике по метке TIM0 и заключена большая часть функциональности. В каждом цикле сначала проверяется счетчик cRazr, который отсчитывает разряды индикаторов (от 0 до 5). В соответствии с его значением происходит формирование кода индицируемого знака и затем на нужный разряд подается питание. После формирования цифры программа переходит к довольно запутанному, на первый взгляд, алгоритму работы АЦП. На самом деле он не так уж и сложен.

Управляют этим процессом две переменных: счетчик циклов countcyk и счетчик преобразований count. Первый из них увеличивается на 1 каждый раз, когда происходит прерывание таймера. Когда его величина достигает 32 (т. е. когда устанавливается единица в бите 5, см. команду sbrs countcyk, 5), то значение счетчика сбрасывается для следующего цикла, и происходит запуск преобразования АЦП, причем для канала, соответствующего значению бита в регистре Flag, указывающего, что именно мы измеряем сейчас: температуру или давление. Таким образом измерения равномерно распределяются по времени.

Сами преобразования отсчитываются счетчиком count до 64 (поэтому цикл одного измерения занимает чуть более секунды: 32×64 = 2048 прерываний таймера, а в секунду их происходит примерно 1953). Когда это значение достигается, то мы переходим к обработке результатов по описанным ранее алгоритмам: сумма измерений делится на 64 (т. е. вычисляется среднее за секунду), затем вычитается или прибавляется значение коэффициента Z и полученная величина умножается на коэффициент К, точнее — на его целый эквивалент, полученный умножением на 1024. Затем произведение делится на это число (отбрасывается младший байт и оставшиеся сдвигаются на два разряда вправо) и преобразуется к распакованному двоично-десятичному виду, отдельные цифры которого размещаются в памяти для последующей индикации. Как только очередной такой цикл заканчивается, меняется значение бита в регистре Flag, поэтому давление и температура измеряются попеременно. В целом выходит, что значение каждой из величин меняется примерно раз в две секунды и представляет собой среднее за половину этого периода. Собственно результат измерения читается в прерывании АЦП (процедура по метке readADc), которое происходит автоматически по окончании каждого преобразования. В нем увеличивается значение счетчика count, извлекается из памяти предыдущее значение суммы показаний (в зависимости от регистра Flag — температуры или давления), считываются значения АЦП, суммируются с предыдущими значениями, и сумма записывается обратно в память. Практически весь алгоритм мы описали — осталось только понять, как получить значения коэффициентов преобразования К и Z и затем произвести точную калибровку.

Калибровка

Для того чтобы прибор заработал, в него необходимо ввести предварительные значения коэффициентов преобразования К и Z, причем такие, желательно, чтобы они были достаточно близки к настоящим, и измеритель не показал бы нам сразу «погоду на Марсе». В программе «зашиты» некие значения коэффициентов (см. процедуру Reset, Секцию Запись коэффициентов в самом конце программы), которые вы можете использовать, если в точности воспроизведете схему по рис. 20.4 и используете тот же самый датчик давления. Как они получены?

Схема датчика температуры при указанных параметрах должна выдавать, как вы можете подсчитать, значение от 0 до 5 В в диапазоне температур примерно от -47 до 55 °C. То есть на 102 °C у нас приходится 1024 градации АЦП, и крутизна характеристики, если считать градусы с десятичными долями, составит 1020/1024 = 0,996 тысячных долей градуса на единицу кода АЦП. Для вычислений в МК эту величину мы хотим умножить на 1024, так что можно было бы и не делить — ориентировочное значение коэффициента К и так будет 1020.

Величину Z, соответствующую 0 °C, вычислить также несложно. Мы полагаем, что нулевому значению кода соответствует температура -47°, тогда значение кода в нуле должно составить величину 470, поделенную на крутизну: 470/0,996 = 471.

Теперь разберемся с давлением. «Если повар нам не врет», то диапазон датчика, соответствующий изменению напряжения на его выходе от 0 до 4,6 В, составляет примерно 850 мм рт. ст. Диапазон 0–4,6 В будет соответствовать изменению кодов примерно от 0 до 940 единиц, т. е. крутизна К равна 850/940 = 0,904 мм рт. ст. на единицу кода. В приведенном для наших расчетов виде это составит 0,904 — 1024 = 926. «Подставка» Z есть значение кода на нижней границе диапазона датчика, которая равна около 11 мм. рт. ст., соответственно, Z = 11/0,904 = 12 единиц. Полученные величины «по умолчанию» и «зашиваем» в программу.

Для уточнения этих величин необходимо произвести калибровку. Откалибруем уже отлаженный прибор сначала по температуре. Для этого следует запустить прибор и поместить датчик температуры в воду, записав для двух значений температур (как можно ближе к 0°, но не ниже его, и около 30–35 °C) показания датчика (t) и реальные значения температуры по образцовому термометру (t’). Они, естественно, будут различаться.

Для расчета новых (правильных) значений коэффициентов K‘ и Z’ достаточно решить относительно них систему уравнений:

Здесь величины со штрихами относятся к правильным (новым) значениям, а без штрихов — к старым, причем значение коэффициента К нужно подставлять в изначальной форме (а не умноженным на 1024). Система четырех уравнений содержит четыре неизвестных, два из которых (величины кодов x1 и х2) вспомогательные.

Если вы забыли, как решаются такие простые системы — обратитесь к любому справочнику по математике для средней школы (или к пособию по использованию Excel в алгебраических расчетах). Вычисленные значения (не забудьте К умножить на 1024!) «забейте» в программу и перепрограммируйте контроллер.

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

Для получения двух точек дождитесь, пока давление на улице не станет достаточно низким, а затем, наоборот, высоким — экстремальные значения давления в европейской части России составляют примерно 720 и 770 мм рт. ст. Чем дальше будут отстоять друг от друга значения, тем точнее калибровка. Для повышения точности можно усреднить коэффициенты, рассчитанные по нескольким парам значений давления, но это стоит делать, только если у вас хватит терпения вести наблюдения в течение нескольких месяцев, когда будет пройдено несколько минимумов и максимумов. Средние значения давления при калибровке лучше не учитывать, т. к. ошибка ее из-за узкого интервала и так достаточно велика.

Можно ли объединить часы, описанные в первом разделе этой главы, с измерителем температуры и давления? Конечно, но я предоставляю читателям сделать это самостоятельно. Одно только замечание: общее количество индикаторов составит 10 штук (6 для измерителя и 4 для часов), и это почти предельная величина для динамической индикации. Увеличивать частоту обхода индикаторов нельзя до бесконечности — у контроллера может просто не хватить быстродействия, и он начнет терять прерывания, сбиваясь в опросе датчиков или, что еще хуже, в отсчете времени (правда, это отчасти решается увеличением тактовой частоты). Но и быстродействие транзисторных ключей тоже ограничено, и при слишком высокой частоте обхода будут подсвечиваться ненужные и терять яркость нужные сегменты. Потому, возможно, схему придется продумывать более тщательно и применять индикаторы со встроенным контроллером-драйвером, позволяющим обойтись меньшим числом соединений и без дополнительных ключей. Такие индикаторы мы увидим в следующей главе, где будем конструировать настоящую метеостанцию с часами, выносным радиодатчиком и сохранением данных на флэш-карте.

igorkov.org — Автономный самописец

Автономный самописец

Устройство BaroLog создано для длительного автономного мониторинга давления и температуры. Предполагаемое время работы устройства от 3х АА-батареек – не менее 1 года. Работа возможна при температурах от -10˚С до 40˚С (диапазон в первую очередь ограничен используемым элементом питания).

Предполагается использовать для записи годовых циклов давления/температуры в пещерах. Устройство может быть сконфигурировано для различных интервалов записи показаний (от 8 секунд до нескольких часов). Следует учитывать, что размера памяти для коротких интервалов записи не хватит на целый год (к примеру, при записи каждые 8 секунд, размер хранимого лога всего 9 суток).

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

В основе устройства лежит микроконтроллер Atmel ATmega8 (во 2ой аппаратной версии заменен на ATmega88). Для измерения давления используется датчик Bosch BMP085, в нем же имеется термометр. Так же опционально предусмотрен акселерометр Freescale MMA7455 для определения двигательной активности и датчик HOPERF HSF1000 (барометр с пределом измерений 10атм).

Часы реального времени реализуются средствами микроконтроллера. Для этого к контроллеру подключен кварцевый резонатор на 32768Гц. Он тактирует внутренний таймер (Timer2), прерывания от таймера идут с максимально доступным интервалом: 8 секунд. Метка текущего времени представлена в UNIX-формате (32-битное число секунд от определенной даты).

Реализация барометра HFS1000 не закончена, предполагалось использовать его в качестве второго датчика давления с низкой точностью, но большим диапазоном, позволяющим фиксировать давление под водой. Для связи с внешним миром используется Bluetooth модуль HC-05.

Сохранение данных происходит на микросхему Flash-памяти Atmel AT45DBxxxD, объемом от 128кБ до 4Мб (AT45DB642D объемом 8Мб не поддерживается).

Актуальная схема:

Плата первой версии «baro-log 1.0» (с ошибками, схема):

На ней были найдены следующие ошибки:

  • Требуется посадить корпус кварца на землю и добавить конденсаторы на ноги кварца. Наблюдались проблемы со стартом кварца.
  • Требуется добавить резистор в цепи MISO перед AT45 (иначе есть проблемы с прошивкой контроллера по ISP).
  • Перепутаны Сток-Исток (выводы 2-3) у транзисторов в цепи питания.
  • Не подключен вывод AVCC (6) у MMA7455.
  • Некорректная разводка MMA7455.

Недочеты первой аппаратной версии:

  • Посадочное место QFP-32 имеет слишком большие контактные площадки.
  • Площадка INT0, фиксация асинхронного события на ней.
  • Отсутствует разводка под кнопку (на INT1).

А вот сборочный для второй версии устройства:

Внешний вид (без корпуса):

И процесс упаковки в корпус:

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

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

Так же вся плата залита акриловым лаком (Plastik 70), сделано это из-за того, что предполагается длительная работа в условиях высокой влажности (а герметичный корпус из-за барометра применять проблематично).

Потребление в режиме самописца:

Добавлено: на микроконтроллере ATmega88, потребление в режиме самописца составляет менее 1мкА. Таким образом, схема при питании от АА и даже ААА батареек получается практически вечной.

Пример обработки собранных данных в Excel:

Пример обработки собранных данных в браузере (при помощи пакетов Highcharts, PapaParce, JQuery):

Обработка данных доступна на этой странице. Страница работает через браузер (посредством JavaScript), так что их можно сохранить и использовать локально.

Синхронное баронивелирование

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

Для вычисления разности высот между точками необходимо просто выразить значение h:

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

P_0 = 101325.0 Па
μ   = 0.02896 кг/моль
g   = 9.807 м/(с*с)
R   = 8.3143 Дж/(моль*К)

Сложность заключается только в выборе температуры. Разность значений при выборе температуры в диапазоне от 0 до 20°С выйдет около 7%, в большинстве случаев это вполне допустимо. От погодных условий давление «прыгает» куда сильнее, в пересчете на высоту значения могут отличаться на 200-300 метров. В случае с пещерой, температуру можно указать точнее, мало того и общие ее колебания там намного меньше.

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

Выявленные недоработки

В процессе первых реальных тестов были выявлены следующие недоработки:

  1. Протокол чтения данных по Bluetooth далек от идеального, процесс довольно длительный. Это не проблема самого Bluetooth, а проблема реализации протокола, существенно ускорить можно двумя способами: перейти на бинарный протокол и использовать скорости общения не 9600 бодд, а 115200 бодд. В настоящий момент данные могут читаться порядка 20-30 минут. Такая длительность не является критичной, но может доставить некоторые неудобства, особенно если захочется снять данные в походных условиях.
  2. У микроконтроллеров ATmega88 (в отличие от ATmega8) просто шикарное энергопотребление (в режимах сна ниже чуть ли не на порядок), но при этом отвратительный внутренний генератор. ATmega8 отлично работает без калибровок по UART интерфейсу (требуется точность генератора не хуже 5-7%). При этом ATmega88 сразу требует калибровки генератора (благо опорный источник имеется в виде часового кварца), но и это ей не сильно помогает: в процессе чтения данных наблюдаются зависания протокола. По всей видимости, частота контроллера за это время «уплывает» на такое значение, что по интерфейсу перестают идти данные.
  3. На одном из самописцев (всего тестировалось 4 штуки), происходила остановка кварцевого резонатора. При этом он самостоятельно через несколько часов продолжал работу. Выявлено это было уходом внутренних часов на 1.5 суток и подтверждалось скачками давления/температуры на определенных точках графика и общим смещением в профиле высот. Что примечательно, данные «заморозки» случались только на плато (т.е. при нахождении самописца на высоте около 900м над уровнем моря) и вне зависимости от температуры. Требуется тщательно разобраться в причинах такого зависания, пока основное подозрение на брак кварцевого резонатора.

Особо много вопросов возникает из-за последнего пункта.

Планируемые модификации
  1. Добавление поддержки в микропрограмме датчика DHT21 для текущей ревизии платы. Данный датчик измеряет температуру и влажность.
  2. Модификации логики калибровки, проверка таймингов на осциллографе.
  3. Эксперименты с «заморозкой», для точного выявления причин замеченного зависания (в процессе).
  4. Новая версия платы, на ней будет добавлен датчик SHT21 (скорее всего вместо HSF1000) и замен BMP085 на более современный BMP180.
Документация

СДЕЛАЙ СЕБЕ КРУТЫЕ НАСТОЛЬНЫЕ ЧАСЫ С ТЕРМОМЕТРОМ И БАРОМЕТРОМ! — voltNik

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

Итак, для сборки нам понадобится набор электронных модулей. Для начала берем LCD экран 2004 и модуль подключения к шине I2C. Модуль нужно припаять сзади к экрану. Наносим флюс и запаиваем первый контакт. Он встал не ровно, поэтому его нужно выровнять, для этого разогреваем паяльником тот же контакт и выравниваем платы параллельно. Ну все, теперь ровно и можно запаивать остальные контакты.

Еще для сборки понадобится программируемая платформа Arduino Nano, модуль DS1302, модуль BMP180, фоторезистор и один резистор на 10 кОм, пьезодинамик и три кнопки с колпачками. Ссылки на все эти компоненты находятся в описании видео и есть на странице проекта.

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

Как многие наверно уже догадались сегодня мы будем собирать проект продвинутых настольных часов с отображением температуры, давления и с адаптивной подсветкой экрана. Удивительно, но облазив половину Интернета – я не смог найти готового и законченного проекта настольных часов на Ардуино. Мне регулярно попадались только примитивные сборки на макетках с простейшим отображением времени, без будильников, без настроек и без отображения температуры. Поэтому пришлось все делать с нуля.

Конечно проект не был бы законченным без корпуса. Для сборки часов подойдет популярный китайский пластиковый корпус для электроники черного цвета. Экран 2004 в него влазит, но придется срезать плату примерно на пять миллиметров по краям. Именно так сделал AlexGyver в одном из своих видео. Если у вас нет 3D принтера – то это будет отличный рабочий вариант.

Я же изначально планировал использовать для корпуса 3D принтер. Поэтому лезу в Tinkercad и готовлю проект корпуса под печать. В нем заранее будут предусмотрены технологические отверстия для кнопок, фоторезистора и стойки для установки и прикручивания экрана.

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

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

Лицевую сторону корпуса немного повело и загнуло края. Это не деффект печати и не отклеивание от стола – а это потому, что я оторвал деталь на горячую, не дав ей остыть. Ну вот такой я не терпеливый. Поэтому советую ждать, когда стол остынет и лишь потом снимать с него готовые детали. Но как по мне, такой изгиб даже лучше смотрится.

Финальная примерка, блок кнопок перенес и расположил на торце, а с другой стороны будет торчать порт USB от Ардуино. Сразу прикручиваем экран мелкими саморезами к корпусу. Отверстия для этого уже предусмотрены в корпусе.

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

Подключил фоторезистор и реализовал адаптивную подсветку экрана в зависимости от внешнего освещения. Теперь по ночам часики будут уменьшать свою яркость и не будут слепить.

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

Осталась финальная сборка. Подключать все нужно по этой схеме. На шине I2C Ардуино параллельно подключен экран и модуль барометра. Учтите!  Барометр питается от 3.3 вольта! Поэтому его обязательно нужно питать от порта 3.3 вольта Ардуино. Конвертер I2C на канал данных до 3.3 вольта не обязателен, об этом указано в спецификации модуля. Резистор на 10 кОм и фоторезистор образуют делитель напряжения адаптивной подсветки и подключается в А0 порт. Сама же подсветка экрана регулируется ШИМ сигналом Ардуино и подключается в порт D3. Т.е. перемычку на модуле I2C нужно снять и запаять туда провод.

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

Часть модулей приходит из Китая с уже напаянными контактами. Они нам не нужны. Поэтому раскусываем площадку и выпаиваем контакты.

Всю сборку буду производить на одножильный цветной монтажный провод. Он тонкий и удобен тем, что можно скрутить вместе до 6 проводков и они влезут в контакт Ардуино. Больших токов тут не планируется – поэтому его более чем достаточно.

Фоторезистор собрал на куске дешевой макетной платы. Провода сразу скручиваем в косичку чтобы случайно их не оторвать. Запаиваем провода на барометр. Экран, подсветку, модуль кнопок. Далее фиксируем все модули внутри корпуса, на винты, двухсторонний скотч и на термоклей. Ну на что хотите на то и фиксируйте, тут задача чтобы ничего не болталось и не съезжало со своих мест.

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

Далее подключаем Ардуино к компьютеру, заходим на страницу проекта – ссылка на него есть в описании видео. Скачиваем архив с прошивкой, распаковываем его. Устанавливаем в программе модуль Arduino Nano и нужный COM-порт. И жмем «Загрузить». Но экран у меня не включился. Как оказалось, напутал контакты шины I2C подключенные к портам А4 и А5. Частая ошибка, поэтому выпаиваем провода и меняем их местами.

Теперь все включилось. На экране видим 2000 год и нули. Еще не хватает контрастности экрана. Поэтому отверткой настраиваем контраст, для этого есть подстроечный резистор сзади экрана.

Далее нужно установить время. Жмем синюю кнопку один раз и часы переходят в режим настройки. Тут можно настроить часы, минуты, секунды. Внизу находится установка будильника. Плюс или минус в конце обозначают включен будильник или нет. Установка года, месяца, даты и последняя настройка дня недели.

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

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

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

Клеим ножки и устанавливаем часики на свое место. Но чет не хватает. Да, надо печатнуть название. А то как же без этого. Установил в принтер желтый флуоресцентный пластик и напечатал название. Переношу буквы с помощью скотча, а клеить буду на уже привычный ацетон. Это же ABS. Кажется так себе выглядит, но стоит посветить на надпись ультрафиолетовым фонариком как она загорается, ну и в темноте она немного будет подсвечиваться. Крутяка получилась!

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

В дальнейшем я планирую расширить функционал этих часов и добавить в них внешние беспроводные температурные датчики и график изменения давления. Т.е. доработать часы до полноценной погодной станции. Если вам понравился данный проект, то ставьте лайк и не забудьте подписаться на канал. Уже готовлю для вас новые классные видео! На этом сегодня все, всем пока-пока!

Zone.com — электронные комплекты, электронные проекты, электронные схемы, электроника «сделай сам»


Circuit-Zone.com — Electronic Projects



Усилитель FM-передатчика мощностью 1 Вт Опубликовано в среду, 30 марта 2022 г.   •   Категория: FM-передатчики

Усилитель FM-передатчика мощностью 1 Вт с разумно сбалансированной конструкцией, предназначенный для усиления радиочастот в диапазоне 88–108 МГц. Это может считаться довольно чувствительной конфигурацией при использовании с качественными транзисторами ВЧ-усилителя мощности, триммерами и катушками индуктивности.Он предполагает коэффициент усиления мощности от 9 до 12 дБ (от 9 до 15 раз). При входной мощности 0,1 Вт выходная мощность может быть значительно больше 1 Вт. Транзистор Т1 желательно выбирать исходя из входного напряжения. Для напряжения 12В рекомендуется использовать транзисторы типа 2N4427, КТ920А, КТ934А, КТ904, BLX65, 2SC1970, BLY87. Для напряжения 18-24В возможно использование транзисторов типа 2N3866, 2N3553, КТ922А, BLY91, BLX92A. Вы также можете рассмотреть возможность использования 2N2219 с входным напряжением 12 В, однако это даст выходную мощность около 0.4 Вт.

Опубликовано 14 марта 2022 г.   •   Категория: Разное

Современные модели железных дорог управляются в цифровом виде с использованием протокола Digital Command Control (DCC), аналогичного сетевым пакетам. Эти пакеты данных содержат адрес устройства и набор инструкций, который встроен в виде напряжения переменного тока и подается на железнодорожный путь для управления локомотивами. Большим преимуществом DCC по сравнению с аналоговым управлением постоянным током является то, что вы можете независимо контролировать скорость и направление многих локомотивов на одном и том же железнодорожном пути, а также управлять многими другими осветительными приборами и аксессуарами, используя тот же сигнал и напряжение.Коммерческие декодеры DCC доступны на рынке, однако их стоимость может довольно быстро возрасти, если у вас есть много устройств для управления. К счастью, вы можете самостоятельно собрать простой DCC-декодер Arduino для декодирования DCC-сигнала и управления до 17 светодиодами/аксессуарами на каждый DCC-декодер.

Опубликовано вторник, 1 февраля 2022 г.   •   Категория: FM-радио / приемники

Это, пожалуй, один из самых простых и маленьких FM-приемников для приема местных FM-станций. Простой дизайн делает его идеальным для карманного FM-приемника.Аудиовыход приемника усиливается микросхемой усилителя LM386, которая может управлять небольшим динамиком или наушниками. Схема питается от трех элементов питания типа ААА или АА. Секция FM-приемника использует два радиочастотных транзистора для преобразования частотно-модулированных сигналов в аудио. Катушка L1 и переменный конденсатор образуют контур настроенного резервуара, который используется для настройки на любые доступные FM-станции.

Опубликовано в четверг, 20 января 2022 г.   •   Категория: FM-передатчики

Это сборка известного FM-передатчика Veronica.Передатчик был построен на двух отдельных платах. Первая плата (на фото выше) — это сам передатчик Veronica с выходной мощностью 600 мВт при питании от напряжения 12 В или 1 Вт при питании от напряжения 16 В. Вторая плата представляет собой ВЧ-усилитель мощности, в котором используется транзистор 2SC1971 для усиления выходного сигнала Veronica примерно до 7 Вт. Хотя передатчик может питаться от напряжения 9-16 В, рекомендуется, чтобы и передатчик, и усилитель питались от напряжения 12 В, поскольку 600 мВт является верхним пределом для управления транзистором 2SC1971.

Простой стереофонический FM-передатчик, использующий микроконтроллер AVR Опубликовано вторник, 4 января 2022 г.   •   Категория: FM-передатчики

Я был очарован идеей сделать простой стереокодер для создания стерео FM-передатчика. Не то чтобы стерео много значило для меня вдали от компьютера. Я использую передатчик FM-радиовещания для передачи выходного сигнала моих компьютеров на FM-радио на кухне, в спальне, на подъездной дорожке и в саду. В таких обстоятельствах я считаю, что моно достаточно, будь то музыка или радиопрограммы из Интернета, поскольку я все равно в основном занят чем-то другим.Когда я стою на четвереньках в саду и по локоть сажаю куст, музыка действительно не кажется мне более сладкой, когда она звучит в стерео. Но это не помешало мне увлечься идеей создания стереокодера. Стерео всегда казалось большим количеством схем и беспокойства из-за небольшой выгоды, которую оно давало. То есть до нескольких недель назад.

Опубликовано Пятница, 24 декабря 2021 г.   •   Категория: FM-радио / приемники

Высокочувствительный приемник TEA5711 позволяет принимать удаленные станции на расстоянии более 150 миль (240 км).Хорошая селективность достигается с помощью керамических фильтров с узкой полосой пропускания. Автоматический контроль частоты AFC захватывает станции для приема без дрейфа. Стереоразделение, которое зависит от мощности сигнала, очень заметно на сильных сигналах. А в высококачественных наушниках звук насыщенный, с глубокими базами и высокими высокими частотами, что позволяет часами наслаждаться стереомузыкой.

Простой FM-передатчик своими руками Опубликовано Пятница, 1 октября 2021 г.   •   Категория: FM-передатчики

Вы когда-нибудь задумывались, как так получилось, что вы можете просто настроиться на свой любимый канал FM-радио.Более того, когда-нибудь возникало желание создать собственную FM-станцию ​​на определенной частоте? Ну, если ответ да на любой из этих вопросов, то вы находитесь в правильном месте!. Мы собираемся заняться изготовлением небольшого FM-передатчика для хобби с действительно простым руководством по компонентам и компонентами, которые легко доступны с полки.

Усилитель мощности 50 Вт с LM3886 Опубликовано 31 августа 2021 г.   •   Категория: Усилители

Это моя вторая встреча с LM3886.Я был доволен звуком, который этот чип выдал в первый раз, поэтому я решил сделать еще один усилитель с ним. Схема основана на схеме в даташите на микросхему с небольшими изменениями. Я удалил конденсатор временной задержки, подключенный к выводу MUTE, потому что лучше использовать отдельную схему защиты от постоянного тока, которая имеет аналогичную функциональность. Выходную индуктивность L1 я сделал, намотав 15 витков эмалированного провода на резистор R7. Диаметр проволоки должен быть не менее 0,4 мм. Все было завернуто в термоусадку.Я использовал неполяризованный конденсатор 47 мкФ/63 В для C2. Это может быть обычный электролитический конденсатор, но лучше использовать неполяризованный или биполярный.

BLF147 Усилитель УКВ мощностью 150 Вт Опубликовано 29 июня 2021 г.   •   Категория: FM-передатчики

Одной из самых последних разработок здесь является усилитель передатчика УКВ мощностью 150 Вт с силовым транзистором BLF147. Результаты очень впечатляющие: более 150 Вт во всем диапазоне при входной мощности 10 Вт и питании 24 В постоянного тока. Более 200 Вт достигается при 28 В постоянного тока и более 250 Вт при горячем смещении 4-5 А в режиме покоя.Печатная плата представляет собой тефлоновую стеклянную плату с печатными линиями передачи и фарфоровыми колпачками. Внешний фильтр гармоник не требуется, так как фильтрация встроена в согласующую схему.

Полностью регулируемый блок питания Опубликовано 26 мая 2021 г.   •   Категория: Блоки питания

В этой схеме используется регулятор LM317, выбранный из-за его встроенной защиты от перегрузки по току и перегрева. Его выходной ток увеличен до 5А транзистором MJ2955. Выходное напряжение регулируется потенциометром VR1.Регулируемое ограничение тока от 60 мА до 5 А обеспечивается операционным усилителем TL071 IC, который используется в качестве компаратора, который контролирует напряжение на токоизмерительных резисторах 0,1 Ом.

Circuit-Zone.com © 2007-2022. Все права защищены.


Цепь цифрового датчика температуры с использованием микроконтроллеров 8051 и AVR

Датчики температуры

широко используются в электронном оборудовании для отображения температуры. Вы можете видеть цифровые часы, отображающие значение комнатной температуры.Это происходит из-за встроенного в него датчика температуры. В этом проекте я покажу вам, как спроектировать схему цифрового датчика температуры. В процессе я объясню две схемы: одна с использованием микроконтроллера 8051, а другая с использованием микроконтроллера ATmega8.

Значение температуры является аналоговым. Следовательно, он преобразуется в цифровое значение с помощью аналого-цифрового преобразователя (АЦП), а затем отображается. В этой статье описывается то же преобразование аналогового значения в цифровое значение.

Принцип работы цифрового датчика температуры

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

Здесь используются микроконтроллеры 8051 и ATmega8. ATmega8 имеет встроенный аналого-цифровой преобразователь с шестью мультиплексированными каналами 10-битного разрешения. Это уменьшает взаимодействие внешнего аналого-цифрового преобразователя IC. Аналоговое значение температуры напрямую подается на входные каналы АЦП микроконтроллера. Метод последовательного приближения используется для внутреннего аналого-цифрового преобразования.

Но в случае с микроконтроллером 8051 (в данном проекте используется AT89C51) он не имеет встроенного АЦП, как ATmega8.Следовательно, я собираюсь соединить внешнюю микросхему АЦП ADC0804 с микроконтроллером 8051 для преобразования аналоговых значений температуры в цифровые значения.

Связанная статья: Термометр со шкалой Цельсия, использующий микроконтроллер AT89C51

Цепь цифрового датчика температуры с использованием 8051

Принципиальная схема

Необходимые компоненты

  • AT89C51 (микроконтроллер 8051)
  • 11,0592 МГц Cystal
  • 2 конденсатора 33 пФ
  • Конденсатор 10 мкФ/16 В
  • 3 резистора 10 кОм
  • Блок резисторов 1 кОм x 8
  • потенциометр 10 кОм
  • ЖК-дисплей 16X2
  • АЦП0804
  • ЛМ35
  • Конденсатор 150 пФ
  • Резистор 330 Ом
  • Блок питания
  • Соединительные провода
  • 8051 Программатор
Схема

Контакты цифровых выходов микросхемы АЦП подключены к контактам PORT3 8051.Выводы PORT0 подтянуты с помощью блока резисторов 1 кОм и подключены к выводам данных ЖК-дисплея 16 × 2. P2.0 и P2.1 8051 подключены к RS и E LCD.

LM35 подключен к аналоговому входу VIN+ (контакт 6) ADC0804. Основные компоненты, такие как осциллятор, сброс и т. д., здесь не объясняются.

Код
Рабочий

После выполнения всех подключений и записи кода на микроконтроллер 8051 включите питание. Датчик температуры LM35 передает аналоговые данные о температуре на ADC0804, которые он преобразует в цифровые значения и отправляет на 8051.

После получения цифровых значений микроконтроллер 8051 выполняет небольшой расчет, а затем отображает температуру на ЖК-дисплее.

Цепь цифрового датчика температуры с использованием ATmega8

Принципиальная схема
Схема цепи цифрового датчика температуры

Компоненты цепи:

  • Резисторы – R1 – R7 номиналом 330 Ом каждый.
  • Датчик температуры LM35
  • Микроконтроллер ATmega8
  • 7-сегментный дисплей
Схема цифрового датчика температуры

Цифровая схема измерения температуры состоит из микроконтроллера ATmega8, датчика температуры LM35, 7-сегментного дисплея.Датчик температуры Lm35 подключен к одному из каналов АЦП микроконтроллера.

ATmega8 имеет шесть каналов АЦП на порту C. Контакты PC0-PC5 Atmega8 действуют как каналы АЦП. Это показывает, что можно связать шесть аналоговых значений. Но за один раз выполняется только одно преобразование в зависимости от приоритета входных каналов. Разрешение АЦП 10 бит. Помните, что для преобразования Vref и Avcc подключаются извне, как показано на схеме.

Как правило, все контакты портов микроконтроллера ATmega8 действуют как обычные контакты ввода/вывода, пока не будут объявлены их специальные функции.Регистры АЦП внутри контроллера должны быть объявлены, чтобы порт C действовал как канал АЦП.

Датчик температуры

Lm35 имеет три контакта. Поместите плоскую поверхность к себе, первый контакт — это Vcc, второй контакт — это выход, а третий контакт — это земля. Выходной контакт датчика температуры подключен к первому каналу АЦП, т.е. контакту PC0 микроконтроллера.

Семисегментный дисплей имеет восемь контактов и один общий. Оставив Dp, подключите все семь контактов к порту B. Подключите A к PB0, B к PB1,_____, G к PB6.Используемый здесь семисегментный дисплей представляет собой обычный катодный дисплей. Между контроллером и дисплеем использовались токоограничивающие резисторы.

Видео моделирования цепи цифрового датчика температуры
Как работать с цепью цифрового датчика температуры?

Сначала подайте питание на цепь. Микроконтроллер постоянно проверяет вход на канал АЦП. Он преобразует аналоговую температуру в цифровое значение и отображается в виде семи сегментов. Увеличивайте или уменьшайте значение температуры, нажимая на стрелки под дисплеем датчика температуры.Всякий раз, когда происходит изменение, канал АЦП преобразует ввод и отображает его в виде семи сегментов. Отображаемое значение температуры в два раза превышает исходное значение. Это происходит из-за различий в размере шага. Итак, перед отображением значения разделите значение на 2 и вычтите из него 1, чтобы отобразить точное значение.

Алгоритм программирования для микроконтроллера

Следующие шаги объясняют, как настроить внутренние регистры АЦП микроконтроллера ATmega8 и отобразить значение на семисегментном дисплее.

  • Первоначально выберите один канал из шести каналов АЦП, к которому подключен датчик температуры, и выберите источник опорного напряжения с помощью регистра ADMUX.

Пример: ADMUX=01000000.
Если выбран канал ADC0 и выбран параметр Avcc с внешним конденсатором на выводе Aref

  • Включите АЦП и выберите предварительно скалярное значение с помощью регистра ADCSRA.

Пример: ADCSRA = (1< Если выбрано предварительно скалярное значение 128 и включен АЦП.ADPS0, ADPS1, ADPS2, ADPS3 являются предварительными скалярными битами.

  • Проверьте бит флага в регистре ADCSRA, который устанавливается после завершения преобразования.
  • Считайте значение из регистра ADC и назначьте значение порту B, которое отображается в семи сегментах.
  • Полученное двузначное значение может быть отображено на двух семи сегментах.
Цифровой датчик температуры Выходное видео проекта

Применение схемы цифрового датчика температуры

  1. Цифровые датчики температуры широко используются в повседневной жизни
  2. Они используются для защиты окружающей среды.
  3. Цифровые датчики температуры можно найти в кондиционерах, где они регулируют температуру в зависимости от температуры в помещении.
  4. Их можно увидеть в цифровых часах, показывающих комнатную температуру вместе со временем.
  5. Его можно использовать на приборных панелях в автомобиле для отображения температуры двигателя, чтобы избежать внезапной остановки из-за перегрева.
  6. Нет необходимости во внешней микросхеме АЦП для преобразования в случае ATmega8.

404 Ошибка — Страница не найдена

Страна COUNTRYAfghanistanÅland IslandsAlbaniaAlgeriaAmerican SamoaAndorraAngolaAnguillaAntigua и BarbudaArgentinaArmeniaArubaAustraliaAustriaAzerbaijanBahamasBahrainBangladeshBarbadosBelarusBelgiumBelizeBeninBermudaBhutanBoliviaBosnia и HerzegovinaBotswanaBouvet IslandBrazilBritish Индийский океан TerritoryBruneiBulgariaBurkina FasoBurundiCambodiaCameroonCanadaCape VerdeCaribbean NetherlandsCayman IslandsChadChileChinaChristmas IslandCocos IslandsColombiaComorosCongo, Демократическая RepublicCook IslandsCosta RicaCroatiaCubaCuraçaoCyprusCzech RepublicDenmarkDjiboutiDominicaDominican RepublicEast TimorEcuadorEgyptEl SalvadorEquatorial GuineaEritreaEstoniaEthiopiaFalkland IslandsFaroe IslandsFijiFinlandFranceFrench GuianaFrench PolynesiaFrench Южный TerritoriesGabonGambiaGeorgiaGermanyGhanaGibraltarGreeceGreenlandGrenadaGuadeloupeGuamGuatemalaGuernseyGuineaGuinea-BissauGuyanaHaitiHondurasHong KongHungaryIcelandIndiaIndonesiaIranIraqIrelandIsle из ManIsraelItalyIvory CoastJamaicaJapanJerseyJordan KazakhstanKenyaKiribatiKosovoKuwaitKyrgyzstanLaosLatviaLebanonLesothoLiberiaLibyaLiechtensteinLithuaniaLuxembourgMacaoMacedoniaMadagascarMalawiMalaysiaMaldivesMaliMaltaMarshall IslandsMartiniqueMauritaniaMauritiusMayotteMexicoMicronesiaMoldovaMonacoMongoliaMontenegroMontserratMoroccoMozambiqueMyanmarNamibiaNauruNepalNetherlandsNew CaledoniaNew ZealandNicaraguaNigerNigeriaNiueNorfork IslandNorwayOmanPakistanPalauPalestinian TerritoryPanamaPapua Новый GuineaParaguayPeruPhilippinesPitcairn IslandPolandPortugalPuerto RicoQatarRepublic из CongoReunionRomaniaRussiaRwandaSaint HelenaSaint Киттс и NevisSaint LuciaSaint Пьер и MiquelonSaint Винсент и GrenadinesSamoaSan MarinoSao Томе и PrincipeSaudi ArabiaSenegalSerbiaSeychellesSierra LeoneSingaporeSint MaartenSlovakiaSloveniaSolomon IslandsSomaliaSouth AfricaSouth Грузии и Южные Сандвичевы IslandsSouth KoreaSouth SudanSpainSri LankaSudanSurinameSvalbard и Ян MayenSwazilandSwedenSwitzerlandSyriaTaiwanTajikistanTanzaniaThaila ндТогоТокелауТонгаТринидад и ТобагоТунисТурцияТуркменистанОстрова Теркс и КайкосТувалуУгандаУкраинаОбъединенные Арабские ЭмиратыВеликобританияСоединенные ШтатыОтдаленные малые острова СШАУругвайУзбекистанВануатуВатиканВенесуэлаВьетнамВиргинские острова, Британские Виргинские острова, СШАЗападная СахараЙеменЗамбияЗимбабве

Патент США на электронную схему управления работой часов. Патент (Патент № 10,353,345, выдан 16 июля 2019 г.)

ПЕРЕКРЕСТНАЯ ССЫЛКА НА РОДСТВЕННЫЕ ЗАЯВКИ

Настоящая заявка является национальной фазой США международной заявки №PCT/EP2016/053159, поданной 15 февраля 2016 г., и испрашивает приоритет по заявке на европейский патент № 15155119.9, поданной 13 февраля 2015 г., раскрытие которой настоящим включено во всей своей полноте посредством ссылки.

ПРЕДПОСЫЛКИ ИЗОБРЕТЕНИЯ

Область изобретения

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

Описание родственного уровня техники

US 2009/135678, позже опубликованный как выданный патент США. US 8130596 B2 раскрывает электронную схему для управления работой часов, содержащую процессор для взаимодействия с периферийными элементами часов. Схема имеет средства инициализации, позволяющие контроллерам предоставлять входы и выходы для периферийных элементов часов. Один способ в соответствии с этим известным уровнем техники позволяет переключать процессор из пассивного режима в активный режим, при этом активный режим позволяет процессору выполнять инструкции.Процессор получает сигнал прерывания по меньшей мере от одного периферийного элемента часов, при этом указанный сигнал передается на процессор через средства связи; процессор включается, он выполняет команду, связанную с сигналом прерывания, и снова переводит процессор в пассивный режим, как только команда была выполнена, или в режим ожидания, чтобы уменьшить общее потребление электроэнергии схемой электронных часов. Одним из обязательных периферийных элементов является система, используемая для выполнения функции часов, либо приводящих стрелки, либо обеспечивающих цифровое представление времени.

US 2013/0303087 A1 раскрывает платформу подключенных устройств, в которой объединены различные элементы связи. Упоминается, что это включает в себя смарт-часы, подключенные музыкальные плееры, смартфоны, планшетные компьютеры и устройства для чтения электронных книг, обеспечивающие, в частности, беспроводной доступ к различным носителям. В документе говорится, что смарт-часы сокращают мощность, потребляемую дополнительной радиосвязью, и смогут использовать батарейки типа «таблетка». Эти часы обычно имеют богатый интерфейс и отображают текст на циферблате.Пользователи этих устройств часто жалуются, что не могут прочитать текст из-за его небольшого размера, что цифровой дисплей не очень изящный, и что они предпочитают аналоговые часы. ИНЖИР. 3 этого предшествующего уровня техники сочетает в себе традиционные аналоговые стрелки и цифровой дисплей за аналоговым механизмом.

Патент США. В US 5289452 представлены средства инициализации, воздействующие на периферийные элементы часов без вмешательства процессора в средства инициализации.

ЕР 2541347 А2 раскрывает электронную схему хронометража с двумя доменами источника питания.Питание подается в каждый из доменов электропитания соответствующим одним из источников электропитания. Регистры хронометража дублируются для каждого из доменов электропитания. Регистры хронометража синхронизируются между доменами источника питания, если один из регистров хронометража изменен или если один из источников питания выключен, а затем снова включен. Схема хронометража использует один кусок кремния для системы. Регистры дублируются для экономии энергии. Однако каждый раз, когда микропроцессор просыпается, он синхронизирует и устанавливает регистры, при этом на это действие уходит дополнительная мощность.Кроме того, документ относится к RTC. Часы реального времени не имеют двигателей или драйверов двигателей и не являются чипом, способным управлять часовым механизмом.

Патент США. В US-A-5045988 описано изолированное управление инвертором переменного тока с регулируемой частотой, включающее в себя низковольтный микроконтроллер, привязанный к потенциалу земли, и генератор сигналов, соединенный с микроконтроллером через последовательную линию передачи данных, включая устройства оптической развязки. Генератор сигналов плавает при отрицательном потенциале шины источника постоянного тока для инвертора.Генератор сигналов формирует сигналы переключения для инвертора под управлением микрокомпьютера. Генератор сигналов, схема последовательной связи и другие вспомогательные схемы являются частью единой интегральной схемы для конкретного приложения.

Патент США. US 6047380 относится к функции пробуждения микроконтроллера для микропроцессора с использованием I 2 C схема и прерывание, когда микроконтроллер его получает, тогда как настоящее изобретение обычно не используется в микросхеме часов.

СУЩНОСТЬ ИЗОБРЕТЕНИЯ

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

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

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

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

Интерфейсы могут быть последовательными интерфейсами, особенно интерфейсами I 2 C или SPI. Они также могут быть параллельными интерфейсами. Преимуществом интерфейса I 2 C является простое подключение с меньшими требованиями к пространству за счет соединений SCL и SDA.

Энергонезависимая память первой интегральной схемы может состоять из памяти OTP (однократно программируемой). Дополнительная логика имеет перезаписываемые регистры в рамках интерфейса.

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

Интерфейсы микроконтроллера и первой электронной схемы могут быть подключены к дополнительным периферийным элементам для дополнительных функций, связанных со смарт-часами, температурой, локализацией GPS, функциями GSM или Bluetooth.

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

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

Сигналы, выдаваемые средством контроля состояния, приспособлены для перевода микроконтроллера в спящий режим или для пробуждения микроконтроллера.

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

US 2009/135678 использует схему электронных часов со средствами инициализации, способными воздействовать на контроллеры периферийных элементов, чтобы инициализировать указанные контроллеры путем отправки данных без участия процессора и позволить указанным контроллерам выполнять операции независимо от процессора и/или энергонезависимая память. Не поясняется, чем управляет центральный процессор предшествующего уровня техники; в настоящем изобретении используется отдельная микросхема, и инициализация выполняется с помощью OTP в микросхеме. В другом варианте осуществления упомянутая отдельная микросхема также может быть инициализирована из отдельного микроконтроллера, например.грамм. микроконтроллер в чипе Bluetooth RF.

EP 2 541 347 A2 предоставляет дублированные регистры. ASIC согласно настоящему изобретению имеет одиночные регистры, которые всегда включены. Тем не менее, энергопотребление ниже, так как ASIC в большинстве функций является известной часовой микросхемой с добавлением того, что доступ к указанным регистрам предоставляется.

КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ

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

РИС. 1 иллюстрирует подключенную систему ASIC для часов в соответствии с вариантом осуществления изобретения;

РИС. 2 показана интегральная схема подключенных часов согласно варианту осуществления изобретения; и

РИС. 3 — диаграмма сигналов во времени для последовательного интерфейса согласно варианту осуществления изобретения.

ОПИСАНИЕ ИЗОБРЕТЕНИЯ

РИС. 1 иллюстрирует подключенную систему ASIC для часов согласно варианту осуществления изобретения.Подключенные часы ASIC 1 приводят в действие стандартный аналоговый часовой механизм 3 . Функциональные возможности аналогового механизма могут включать, помимо прочего, отображение долей секунды, таких как десятые доли секунды, секунды, минуты, часы, приливы, фазы луны и будильник. Типичная ASIC для часов содержит генератор, подключенный к внешнему кварцевому кристаллу 11 для генерации тактового сигнала с частотой 32 768 Гц, и внутреннюю схему для обеспечения точно синхронизированных управляющих токов на соединении 21 с двигателями часового механизма на основе частот, генерируемых в часах. ASIC по указанной схеме.

Подключенная ASIC 1 для часов имеет, кроме того, интерфейс 6 , который позволяет считывать и записывать его регистры 16 внешним устройством, таким как микроконтроллер 2 . Интерфейс 6 также может быть подключен к другим устройствам 4 , обеспечивающим дополнительную функциональность.

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

Как обычно, SDA относится к последовательной линии данных, а SCL — к последовательной линии синхронизации. Обычного 7- или 10-битного адресного пространства со скоростями передачи 100 кбит/с или 400 кбит/с достаточно для передачи информации, относящейся к времени и данным.

На стороне микроконтроллера предусмотрен дополнительный интерфейс 26 , который должен быть таким же, как на ASIC.

В зависимости от типа интерфейса 6 , используемого в ASIC 1 , другие интерфейсы 26 , такие как SPI или параллельный интерфейс, также могут использоваться в сочетании с интерфейсом ASIC 6 .Затем интерфейс 26 микроконтроллера 2 позволяет ASIC 1 читать и записывать его регистры 36 . Интерфейс 26 также может быть подключен к другим устройствам 4 , обеспечивающим дополнительную функциональность.

Система предпочтительно питается от батарейки типа монеты 1,5 В 5 . Анод батареи 5 соединяется с линиями питания 15 и 25 подключенных часов ASIC 1 , а также микроконтроллера 2 .

Микроконтроллер 2 представляет собой программируемое устройство общего назначения, обычно содержащее ядро ​​процессора, память и программируемые периферийные устройства ввода/вывода. Микроконтроллер 2 имеет блок пробуждения 14 и может быть активирован либо пользователем с помощью внешней кнопки или датчика 24 , либо подключенной ASIC часов 1 через последовательный интерфейс. 6 . Затем происходит соединение между интерфейсом 26 и блоком пробуждения 14 .Микроконтроллер 2 также может быть выключен самостоятельно или пользователем с помощью дополнительной внешней кнопки или датчика 24 , или он может быть выключен подключенной ASIC часов 1 через последовательный интерфейс 6 . После такого выключения микроконтроллер 2 находится в спящем режиме и потребляет минимум энергии.

Подключенные часы ASIC 1 , показанные на РИС. 2 состоит из ASIC 100 , последовательного интерфейса 118 , в данном случае интерфейса I 2 C 102 , но это также может быть SPI или другой интерфейс интегральной схемы, кварцевый кристалл с частотой 32 768 Гц 117 , двигатели 114 для секунд и 115 для даты, а также вспомогательный выход 116 для управления функциями, отличными от двигателя (например, пьезоэлектрический зуммер для сигнализации).

ASIC 100 состоит из генератора с частотой 32 768 Гц 101 , интерфейса I 2 C 102 , энергонезависимой одноразовой программируемой памяти (OTP) 7, 70 9 сек. различных регистров 10 10 104 , регистр запрета 105 для регулировки точности времени, делительная цепочка 106 для деления частоты кварца 32 768 Гц на несколько подходящих частот для работы в качестве часов, счетчик-индикатор 107 , содержащий отображаемое значение времени , календарь справочного счетчика времени 108 , содержащий фактическое значение времени в секундах, минутах, часах, днях, месяцах и годах, включая информацию о високосных годах, счетчик будильника 109 для хранения значения времени для будильника, логический блок 110 для управления всеми логическими операциями, схема привода двигателя 111 для секундной стрелки, схема привода двигателя 112 для даты, и вспомогательная управляющая схема 113 для управления выходом для других функций.Энергонезависимая память может содержать или состоять из памяти с одновременным программированием (OTP).

Драйверы двигателей 111 , 112 на РИС. 1 показаны в качестве иллюстрации. При необходимости можно добавить или заменить дополнительные драйверы двигателей. Например, можно добавить дополнительные драйверы двигателей для управления дополнительными двигателями хронографа. Концепция подключенных часов позволяет устанавливать параметры двигателя, такие как ширина импульса двигателя, рабочий цикл и период, либо с помощью OTP, либо через регистры часов 104 посредством связи с контроллером через интерфейс I 2 C 118 .

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

Интерфейс I 2 C 102 позволяет внешнему контроллеру считывать и записывать контрольные регистры 104 и счетчики. Счетчик времени будильника 109 способен инициировать прерывание на линии I 2 C, которое можно использовать для пробуждения контроллера 2 на фиг.1, который, в свою очередь, может активировать другие компоненты, такие как радиоканал (например, Bluetooth) или датчики (например, датчик вибрации), чтобы активировать различные интеллектуальные функции, возможно, также адресуемые на интерфейсе I 2 C 26 микроконтроллера . 2 .

РИС. 3 показана диаграмма зависимости сигнала прерывания от времени для последовательного интерфейса согласно варианту осуществления изобретения. Чтобы пометить прерывание по шине I 2 C, подключенная ASIC часов 100 ведет себя как мастер I 2 C с ограниченной функциональностью.Прерывание сигнализируется отправкой условия START 201 , за которым немедленно следует условие STOP 202 через время t D-STASTO . Это показано на фиг. 3. Возможно, но не обязательно, чтобы I 2 возможности C-мастера больше не поддерживались. Но можно ограничить возможности мастера I 2 C указанными выше.

Часовой механизм содержит интегральную схему 1 или 100 , кристалл кварца 11 или 117 и все необходимые механические детали для создания кварцевых часов.Использование подключенной ASIC часов 1 , как описано выше, позволяет контроллеру 2 считывать точное время с часового механизма 3 или 114 или 115 через соответствующее содержимое регистра ASIC или устанавливать точное время. в часовом механизме. Подключенная ASIC 1 для часов, как описано выше, позволяет контроллеру 2 установить сигнал тревоги в часовом механизме, который впоследствии можно использовать для пробуждения упомянутого контроллера 2 . Другими словами, активный микроконтроллер 2 вычисляет установленное время для своего следующего действия на периферийных элементах и ​​передает это время в качестве сигнала пробуждения по последовательной шине на ASIC 1 , которая принимает это время и запрограммирована на использование. этот сигнал для пробуждения микроконтроллера 2 в установленном порядке.Тем временем микроконтроллер 2 автоматически выключается или, что более безопасно, прием времени в качестве сигнала пробуждения ASIC 1 используется для отправки сигнала выключения обратно по последовательной шине на микроконтроллер 2. . Примером такой функции может быть установление связи с базовой станцией GSM или устройством GPS для определения местоположения.

Поскольку обычно контроллер 2 потребляет гораздо больше энергии, чем «компоненты часов» часов (например, контроллер 2 будет потреблять, возможно, несколько микроампер, а подключенная ASIC часов 1 с драйверами будет потреблять, возможно, менее сотни наноампер), мощность от батареи 5 можно сэкономить, отключив контроллер 2 , когда он не требуется.Контроллер 2 можно включать и выключать с помощью кнопки по линии 24 или по прерыванию от подключенных часов ASIC 1 через последовательные интерфейсы 6 и 26 . Часовой механизм может работать непрерывно со скоростью энергопотребления, сравнимой с обычными кварцевыми часами.

Это имеет следующие преимущества:

  • 1) Производители «умных часов» или «умных носимых устройств» сохраняют функциональность часов, когда «умная» функция отключена.
  • 2) Энергопотребление «умных часов» или «умных носимых устройств» можно снизить, отключив «умную» функцию, когда она не требуется.
  • 3) Стандартные часовые механизмы разрабатывались на протяжении многих лет, чтобы обеспечить привлекательный и модный дизайн. «Умный» функционал можно интегрировать в уже считающийся модным дизайн.
  • 4) Стандартные часовые механизмы водонепроницаемы до определенной глубины воды.
  • 5) Подключенный часовой механизм может включать «умную» функцию с помощью прерывания, что позволяет «умной» функции активироваться в заданное время.В качестве альтернативы пользователь может включить контроллер с помощью кнопки, когда это необходимо.
  • 6) Интеллектуальные функции могут отображаться или сигнализироваться с помощью подключенных часов. Примерами могут быть: подсчет шагов, подсчет часов сна, компас, вибрация «тихий» будильник для входящих вызовов, автоматическая настройка часового пояса, барометр, а также температура.
  • 7) Система не ограничена конкретным микроконтроллером 2 . Пользователь волен выбирать тип контроллера, который ему нужен, так как ASIC 1 — это отдельная микросхема.
  • 8) Подключенная ASIC для часов 1 имеет то преимущество, что ее можно настроить либо с помощью энергонезависимой памяти в качестве автономной ASIC для часов, либо ее можно настроить по мере необходимости с помощью контроллера. Это дает производителю гибкость и сокращает количество ASIC, которые он должен иметь в своем инвентаре.
  • 9) Описанная ASIC для подключенных часов также имеет то преимущество, что может управлять датой таким образом, что в начале/конце месяца отображается правильное количество дней, поскольку доступна информация о месяце и году.Это может быть реализовано, например, с помощью отдельного двигателя для отображения даты.

СПИСОК УСЛОВНЫХ ОБОЗНАЧЕНИЙ 1connected часы ASIC2microcontroller3analogue смотреть movement4further функции unit5battery6I 2 C interface11quartz crystal14wake вверх unit15supply движение line16registers21watch connection24wake вверх line25supply line26I 2 С interface36registers100connected часов ASIC10132 кГц oscillator102I2C interface103OTP104watch время register105inhibition register106divider107display counter108reference счетчик109счетчик времени тревоги110логический блок111секунды водителя двигателя112дата водителя двигателя113вспомогательные системы привода двигателя114секунды двигателя115дата двигателя116вспомогательные двигатели201время пускового сигнала202время стоп-сигнала

барометрический%20давление%20датчик%20светодиод%20схема и примечания по применению

ppt на датчиках

Реферат: «Преобразователи давления» барометр датчик барометра Датчики давления барометрический 5220 датчик барометрического давления инструкция по применению Honeywell 3153
Текст: Нет доступного текста файла


Оригинал
PDF Ан-105 150/5220-16С.150/5220-16С ppt на преобразователях «Датчики давления» барометр датчик барометра Датчики давления барометрический 5220 замечание по применению датчика барометрического давления ханивелл 3153
2013 – Недоступно

Резюме: нет абстрактного текста
Текст: Нет доступного текста файла


Оригинал
PDF МС5637-02БА03 MS5637 DA5637-02BA03 ECN1938
2013 – Недоступно

Резюме: нет абстрактного текста
Текст: Нет доступного текста файла


Оригинал
PDF МС5611-01БА03 МС5611-01БА DA5611-01BA03 ECN1742
бмп085

Реферат: барометрический BMP085 BOSCH SMD500 Bosch BMP085 BMP085 smd500 микромеханический датчик i2c bmp085 барометрический датчик погоды
Текст: Нет доступного текста файла


Оригинал
PDF БМП085 БМП085 03 гПа барометрический BMP085 БОШ СМД500 Бош БМП085 БМП085 смд500 микромеханический датчик i2c bmp085 барометрический датчик погоды
Недоступно

Резюме: нет абстрактного текста
Текст: Нет доступного текста файла


Оригинал
PDF МС5637-02БА03 MS5637 DA5637-02BA03 ECN1978
1999 г. — нет в наличии

Резюме: нет абстрактного текста
Текст: Нет доступного текста файла


Оригинал
PDF WMS14 30 дней ВМС-14 ВМС-14Д ВМС-05D ВМС-14Т ВМС-14ТХС ВМС-14БП ВМС-14РФ
2003 — барометр mpx2100ap

Реферат: Принципиальная схема цифрового манометра MPX2100ap Проект цифрового манометра FE202
Текст: Нет доступного текста файла


Оригинал
PDF АН1326 барометр mpx2100ap MPX2100ap Схема цифрового манометра FE202 Проект цифрового манометра
Датчик давления Sensotec FPG

Реферат: Датчик давления Sensotec FPA AA161 Датчик давления Sensotec FP2000 Датчик давления Sensotec 4-контактный разъем mini din SENSOTEC AA111 BENDIX «10-контактный» штекерный разъем BENDIX ptih разъем Bendix 6-контактный
Текст: Нет доступного текста файла


Оригинал
PDF FP2000 АА113 АА116 АА117 АА513 АА516 АА517 АА161 АА111 Датчик давления Sensotec FPG Датчик давления Sensotec FPA АА161 Датчик давления Sensotec FP2000 Датчик давления Sensotec проводка мини дин 4pin СЕНСОТЕК AA111 BENDIX «10-контактный» штекерный разъем BENDIX штекерный соединитель бендикс 6 контактный
2002 — Недоступно

Резюме: нет абстрактного текста
Текст: Нет доступного текста файла


Оригинал
PDF WT4401-D WT4401-S WT4401-D Д-105
ХКА0811АР

Реферат: транзистор smd ZH HCA0611AR миниатюрный усиленный датчик абсолютного давления датчик давления время отклика мс датчик барометрического давления
Текст: Нет доступного текста файла


Оригинал
PDF
1998 — барометр mpx2100ap

Резюме: MPX2100 mc145453
Текст: Нет доступного текста файла


Оригинал
PDF АН1326 барометр mpx2100ap MPX2100 mc145453
Недоступно

Резюме: нет абстрактного текста
Текст: Нет доступного текста файла


Оригинал
PDF MS5607-02BA03Барометрический МС5607-02БА DA5607-02BA03 ECN1741
2001 — дизель

Резюме: Драйвер форсунки Common Rail 4267G K352 производитель дизельных форсунок Infineon емкостный датчик давления инжектор 4990 дизельный датчик давления дизельный инжектор
Текст: Нет доступного текста файла


Оригинал
PDF B112-H7866-X-X-7600 дизель Драйвер форсунки Common Rail 4267G К352 производитель дизельных форсунок емкостный датчик давления infineon 4990 инжекторный дизель Датчик давления дизельный инжектор
2004 — ЖК-дисплей SEIKO 16×2

Реферат: барометр как подключить давление к MPX2102 16×2 жк метод БАРОМЕТРИЧЕСКИЙ ДАТЧИК ДАВЛЕНИЯ светодиод схема 8749 МИКРОКОНТРОЛЛЕР L168200J000 MICRO USA Датчик давления 16х2 жк 16 пин 16 пин схема жк дисплея 16х2
Текст: Нет доступного текста файла


Оригинал
PDF АН1979 MPXM2102A MC68HC908QT4 АН1979/Д ЖК-дисплей SEIKO 16×2 барометр как подключить давление к MPX2102 ЖК-метод 16×2 Цепь светодиода ДАТЧИКА БАРОМЕТРИЧЕСКОГО ДАВЛЕНИЯ 8749 МИКРОКОНТРОЛЛЕР L168200J000 МИКРО США датчик давления ЖК-дисплей 16×2, 16 контактов 16 контактная схема жк дисплея 16х2
2003 — PX02C116A5T

Резюме: нет абстрактного текста
Текст: Нет доступного текста файла


Оригинал
PDF WT4400-D ФМА-900 WT4401-D WT4401-S ВТ4401-Д, PX02C116A5T
2007 — Микроконтроллер стиральных машин

Реферат: емкостный датчик давления моющий емкостный датчик давления медицинский MEMS датчик артериального давления MPXH6101A датчики давления серии MPX5000 MPX2300DT1 MPXH6115A спирометр MPXH6300A
Текст: Нет доступного текста файла


Оригинал
PDF MPXC2011DT1 MPXC2012DT1 MPX2300DT1 MPX2301DT1 Микроконтроллер стиральных машин промывка емкостного датчика давления емкостный датчик давления медицинский МЭМС-датчик артериального давления MPXH6101A Датчики давления серии MPX5000 MPX2300DT1 MPXH6115A спирометр MPXH6300A
1997 — барометр mpx2100ap

Реферат: MPX2100ap Блок-схема интерфейсной платы MPX200 MC68HC11 проект цифровой датчик давления абсолютный цифровой манометр проект 4-разрядный ЖК-дисплей BCD СЧЕТЧИК AN1326 проект цифровой датчик давления операционный усилитель дискретная схема
Текст: Нет доступного текста файла


Оригинал
PDF АН1326/Д АН1326 барометр mpx2100ap MPX2100ap MPX200 Блок-схема интерфейсной платы MC68HC11 проект цифровой датчик абсолютного давления Проект цифрового манометра 4-разрядный ЖК-счетчик BCD АН1326 проект цифровой датчик давления дискретная схема операционного усилителя
2009 — АН3914

Реферат: строительная метеостанция MPL115A 12039 гистограмма led hp mpl11 canberra 802-4 548392 ДАТЧИК БАРОМЕТРИЧЕСКОГО ДАВЛЕНИЯ светодиодная схема 8951 Микроконтроллер
Текст: Нет доступного текста файла


Оригинал
PDF АН3914 МПЛ115А МПЛ115А АН3914 здание метеостанции 12039 гистограмма привела л.с. mpl11 канберра 802-4 548392 Цепь светодиода ДАТЧИКА БАРОМЕТРИЧЕСКОГО ДАВЛЕНИЯ 8951 Микроконтроллер
2005 — Драйвер форсунки Common Rail

Резюме: k792 k792 datasheet транзистор Инжектор Common Rail Технические данные 4267G дизельный двигатель ic 812 smd «емкостный датчик давления» дизельный насос Common Rail емкостный датчик давления
Текст: Нет доступного текста файла


Оригинал
PDF КП125 ПГ-ДСОФ-8-12 КП125 B138-H8612-X-X-7600 Драйвер форсунки Common Rail к792 даташит на транзистор к792 Инжектор Common Rail Технические данные 4267G дизель IC 812 смд «емкостный датчик давления» дизельный насос Common Rail емкостный датчик давления
2010 — ПГ-ДСОФ-8-16

Реферат: емкостный датчик давления медицинский SP000700772 KP235 KP23X kp234 infineon датчик давления ic DSOF давление воздуха автомобильный двигатель измерение температуры с помощью датчика DSOF
Текст: Нет доступного текста файла


Оригинал
PDF КП23х ПГ-ДСОФ-8-16 емкостный датчик давления медицинский SP000700772 КП235 КП234 датчик давления infineon ic DSOF сжатый воздух автомобильный Измерение температуры двигателя с помощью датчика ДСОФ
Недоступно

Резюме: нет абстрактного текста
Текст: Нет доступного текста файла


Оригинал
PDF МТС420/400 МТС400 МТС420 МТС420) МТС420СС МТС400СС МТС420СС
2006 — Цепь светодиода ДАТЧИКА БАРОМЕТРИЧЕСКОГО ДАВЛЕНИЯ

Резюме: 16×2 ЖК-метод L168200J000 ДАТЧИК БАРОМЕТРИЧЕСКОГО ДАВЛЕНИЯ Светодиодная выходная схема 8749 МИКРОКОНТРОЛЛЕР SEIKO ЖК-дисплей 16×2 ДАТЧИК БАРОМЕТРИЧЕСКОГО ДАВЛЕНИЯ барометр AN1979 nt 6812
Текст: Нет доступного текста файла


Оригинал
PDF АН1979 MPXM2102A MC68HC908QT4 Цепь светодиода ДАТЧИКА БАРОМЕТРИЧЕСКОГО ДАВЛЕНИЯ ЖК-метод 16×2 L168200J000 Цепь выхода светодиода ДАТЧИКА БАРОМЕТРИЧЕСКОГО ДАВЛЕНИЯ 8749 МИКРОКОНТРОЛЛЕР ЖК-дисплей SEIKO 16×2 ДАТЧИК БАРОМЕТРИЧЕСКОГО ДАВЛЕНИЯ барометр АН1979 нт 6812
1995 — барометр mpx2100ap

Резюме: преобразование шестнадцатеричного в двоично-десятичный код AN1326 шестнадцатеричное преобразование двоично-десятичного кода, схема барометра, 4-разрядный ЖК-счетчик двоично-десятичного обозначения MPX2000 MC78L08ACP MC68HC11E9 MC33272
Текст: Нет доступного текста файла


Оригинал
PDF АН1326/Д АН1326 АН1326/Д* барометр mpx2100ap преобразование hex в bcd АН1326 шестнадцатеричное преобразование BCD принципиальная схема барометра 4-разрядный ЖК-счетчик BCD MPX2000 MC78L08ACP MC68HC11E9 MC33272
2001 — Q62705K352

Реферат: 4267G «Драйвер форсунки» емкостный датчик давления ДАТЧИК ДАВЛЕНИЯ IC Датчик положения клапана EGR форсунка дизельная TC1775 SKB06N60 650P
Текст: Нет доступного текста файла


Оригинал
PDF B112-H7866-X-X-7600 Q62705K352 4267G «драйвер форсунки» емкостный датчик давления ДАТЧИК ДАВЛЕНИЯ IC Датчик положения клапана EGR инжекторный дизель ТС1775 СКБ06Н60 650P
Недоступно

Резюме: нет абстрактного текста
Текст: Нет доступного текста файла


Оригинал
PDF МТС420/400 МТС400 МТС420 МТС420) МТС420СС МТС400CC МТС420СС

Arduino Часы реального времени Реле Электронная схема Микроконтроллер, Экспериментальная лаборатория Метод испытаний PNG

Arduino Часы реального времени Реле Электронная схема Микроконтроллер, Экспериментальная лаборатория Метод испытаний PNG | HiClipart Arduino Часы реального времени Реле Электронная схема Микроконтроллер, Экспериментальная лаборатория Метод испытаний PNG

Ключевые слова

PNG Информация о клипарте

  • Размеры PNG 808x433px
  • PNG Размер файла 111.46 КБ
  • MIME-тип Изображение/png
  • Доминирующий цвет PNG голубой

Лицензия

HiClipart — это открытое сообщество, где пользователи могут обмениваться изображениями в формате PNG. Все PNG-клипарты в HiClipart предназначены для некоммерческого использования, указание авторства не требуется. Если вы являетесь автором и обнаружите, что этот PNG распространяется без вашего разрешения, сообщите о нарушении DMCA, свяжитесь с нами.

  • Arduino Uno ATmega328 Электроника Микроконтроллер, продвинутые проекты микроконтроллеров PNG 500x500px Размер файла: 272.51 КБ
  • Электрическая сеть Portable Network Graphics Электронная схема Печатная плата Электротехника, монтажная плата PNG 4283x4697px 4283x4697px Размер файла: 785.04KB
  • Arduino Uno ATmega328 Микроконтроллер Электроника, другие PNG 800x600px 800x600px Размер файла: 469,99 КБ
  • Печатная плата Значок электрической сети, Линейная плата, подключение синей линии PNG 2024x2291px 2024x2291px Размер файла: 261.34 КБ
  • Arduino Uno ATmega328 Одноплатный микроконтроллер, другие PNG 800x557px Размер файла: 390.05KB
  • NodeMCU ESP8266 Wi-Fi Lua USB, USB PNG 700x525px Размер файла: 199,17 КБ
  • Arduino Uno ATmega328 Микроконтроллер Atmel AVR, USB PNG 577x577px Размер файла: 90,69 КБ
  • Материнская плата Компьютерная техника Компьютерные иконки, Компьютер PNG 768x768px Размер файла: 435.59 КБ
  • Микроконтроллер Электроника Разработка продукта Встроенная система, дизайн PNG 800x638px Размер файла: 422.4KB
  • черная иллюстрация процессора компьютера, интегральные схемы и микросхемы Центральный процессор Computer Icons, микросхема PNG 1024x768px 1024x768px Размер файла: 377.24 КБ
  • Электронная схема Печатная плата Электрическая сеть Принципиальная схема, Die Antwoord PNG 1000x853px Размер файла: 315.98 КБ
  • Компьютерные корпуса и корпуса Raspberry Pi 3 Одноплатный компьютер, пи PNG 2400x1459px 2400x1459px Размер файла: 779.17KB
  • Raspberry Pi 3 Одноплатный компьютер Asus Tinker Board, Компьютер PNG 828x654px Размер файла: 403.93 КБ
  • Raspberry Pi 3 Raspberry Pi: Полное руководство Печатная плата Модуль камеры, Компьютер PNG 960x579px Размер файла: 577.34 КБ
  • иллюстрация электрической схемы, электрическая сеть печатная плата электронная схема электроника, дизайн электронной платы PNG 1396x1445px Размер файла: 69.77 КБ
  • Электронная промышленность Электронная промышленность Электротехника Электронная техника, Компьютер PNG 502x519px 502x519px Размер файла: 450.71 КБ
  • Микроконтроллер Электроника Arduino Nano ATmega328, USB PNG 2604x1985px 2604x1985px Размер файла: 1,06 МБ
  • Материнская плата Компьютерное оборудование, печатная плата PNG 6106x5028px 6106x5028px Размер файла: 2,17 МБ
  • Микроконтроллер Компьютерное оборудование STMicroelectronics FreeRTOS, Evaluate PNG 754x1000px 754x1000px Размер файла: 387.17 КБ
  • Arduino Uno ATmega328 Микроконтроллер Atmel AVR, Arduino Mega2560 PNG 525x700px 525x700px Размер файла: 246 КБ
  • Электронная схема Электроника Печатная плата Тату Схема подключения, электрическая схема PNG 850x1038px Размер файла: 235.93 КБ
  • Raspberry Pi Универсальный ввод / вывод Raspbian ESP8266 Компьютер, бакалавр наук PNG 1000x666px 1000x666px Размер файла: 828.82 КБ
  • Arduino Uno Печатные платы Микроконтроллер Электроника, программирование Arduino PNG 800x445px Размер файла: 459.81KB
  • Электронная техника Электроника Электротехника Электронная схема, технология PNG 980x982px 980x982px Размер файла: 109,67 КБ
  • Цепные линии, линии, креатив, белый и серый абстрактный PNG 2489x2489px 2489x2489px Размер файла: 312,8 КБ
  • Печатная плата Принципиальная схема Icon, Science and Technology Line PNG 774x717px Размер файла: 47.37 КБ
  • Arduino Electronics Электронная схема Микроконтроллер Встроенная система, логотип arduino PNG 656x656px Размер файла: 218.09 КБ
  • Автоматический выключатель Распределительный щит Электрические выключатели Электрическая сеть Электрические провода и кабели, abb electric PNG 500x500px Размер файла: 150,25 КБ
  • красная электронная схема иллюстрации, компьютерная сеть печатная плата электронная схема иллюстрация, физическая схема PNG 1605x1522px 1605x1522px Размер файла: 1015.26 КБ
  • Электрический кабель Электрические провода и кабели Макетная перемычка, провода PNG 4088x4088px 4088x4088px Размер файла: 4,65 МБ
  • Макет Электронная схема Электронный комплект Электроника Электронный компонент, электронные схемы PNG 512x512px 512x512px Размер файла: 230.79 КБ
  • Электронная схема Электрическая сеть Цифровая электроника, цифровая классификация PNG 1500x970px 1500x970px Размер файла: 280.84 КБ
  • синий и белый, технология печатной платы, научно-техническая линия PNG 1000x1000px Размер файла: 1,13 МБ
  • Световой резистор Детектор датчика, свет PNG 512x512px 512x512px Размер файла: 74,35 КБ
  • черный компьютер, иллюстрация, компьютерное оборудование, программное обеспечение для ноутбуков Dell, техническое обслуживание PNG 1345x993px Размер файла: 5,1 МБ
  • Raspberry Pi 3 Компьютерные корпуса и корпуса Одноплатный компьютер, Компьютер PNG 2000x1398px 2000x1398px Размер файла: 150.48 КБ
  • иллюстрация желтой печатной платы, принципиальная схема печатная плата электрическая сеть электронная схема, компьютерная плата PNG 2754x1506px 2754x1506px Размер файла: 115.76 КБ
  • Технология поверхностного монтажа Микроконтроллер PIC Интегральные схемы и микросхемы Электроника, локальная микросхема PNG 2950x2797px 2950x2797px Размер файла: 2,35 МБ
  • NodeMCU ESP8266 Arduino Микроконтроллер ввода/вывода общего назначения, Wi-Fi PNG 616x519px Размер файла: 286.2 КБ
  • Arduino Uno Печатная плата Электроника Микроконтроллер, Arduino Mega2560 PNG 768x598px Размер файла: 508.6KB
  • Печатная плата Электронная схема Интегральная схема Электрическая сеть, Компьютерный чип PNG 1334x961px 1334x961px Размер файла: 1,06 МБ
  • Оперативная память Компьютерная память Компьютерное оборудование, оперативная память PNG 6396x2466px 6396x2466px Размер файла: 882.28 КБ
  • Печатная плата Электронная схема Компьютерный файл, раскрашенная вручную технологическая плата, иллюстрация синего и бирюзового цвета PNG 2391x1678px 2391x1678px Размер файла: 326.35 КБ
  • Микроконтроллер Arduino Uno Печатная плата Электроника, arduino PNG 1024x570px Размер файла: 493.33 КБ
  • Вращающийся энкодер Шаговый двигатель Arduino Двигатель постоянного тока Серводвигатель, спидометр / PNG 1024x708px Размер файла: 86.43 КБ
  • Микроконтроллер Arduino Atmel AVR ATmega328 Ввод/вывод, мини PNG 2176x1915px 2176x1915px Размер файла: 2,67 МБ
  • Инженерия, Электрическая сеть, Печатные платы, Электронная схема, Провод, Электрический разъем, Линия, Электронная техника PNG 2400x1602px 2400x1602px Размер файла: 456.78 КБ
  • Raspberry Pi Micro-USB Одноплатный компьютер Wi-Fi, USB PNG 1024x1024px 1024x1024px Размер файла: 4,02 МБ
  • квадратная сине-белая доска, черно-белая электрическая сеть Печатная плата Электронная схема, НАУКА И схема PNG 614x438px 614x438px Размер файла: 145.11 КБ
  • Автоматический выключатель Schneider Electric Electric Switches Электротехника Электрические провода и кабели, другие PNG 2100x946px 2100x946px Размер файла: 940.38 КБ
  • Micro Bit BBC Micro Electronics Технология компьютерного программирования, BBC PNG 566x453px Размер файла: 55,97 КБ
  • соединения белых электронных компонентов, Интегральная схема Электронная схема Принципиальная схема Печатная плата, Микросхема интегральной схемы PNG 2433x1696px 2433x1696px Размер файла: 229,4 КБ
  • иллюстрация зданий фабрики разных цветов, строительная промышленность фабрики изометрическая проекция, здание промышленного парка, здание фабрики PNG 1000x698px 1000x698px Размер файла: 848 КБ
  • Блок управления двигателем автомобиля Электронный блок управления Впрыск топлива Модуль управления трансмиссией, Ecu Repair PNG 600x460px Размер файла: 88.66 КБ
  • иллюстрация линий черного провода, печатная плата, электронная схема, интегральная схема, линии микросхем PNG 998x1000px 998x1000px Размер файла: 222.13 КБ
  • Твердотельное реле Электрические выключатели Электрическая сеть Электронная схема, строительная сетка PNG 800x800px Размер файла: 161.49 КБ
  • Электронная схема Электроника Компьютерные иконки Схема подключения Печатная плата, символ PNG 512x512px 512x512px Размер: 7.02 КБ
  • RAM Компьютерное оборудование ROM Хранение компьютерных данных Флэш-память, оперативная память PNG 1289x2088px 1289x2088px Размер файла: 1,99 МБ
  • Макет Электронная схема Электроника Печатная плата Прототип, другие PNG 727x596px 727x596px Размер файла: 586.23 КБ
  • Автоматический выключатель Распределительный щит Электричество Схема подключения Электроэнергия, Электроэнергетическая система PNG 1100x580px 1100x580px Размер файла: 374.33 КБ
  • Микроконтроллер ESP8266 Arduino NodeMCU ESP32, подвесная плата PNG 855x570px Размер файла: 349.44 КБ
  • Световой резистор Детектор датчика, лазер PNG 600x500px Размер файла: 21,71 КБ
  • Микроконтроллер MicroPython ESP32 Интернет вещей Wi-Fi, USB PNG 1000x1000px Размер файла: 490.88KB
  • Акселерометр Интерфейс Pmod Последовательный периферийный интерфейс Блок инерциальных измерений Барометр, барометр PNG 600x600px 600x600px Размер файла: 407.97 КБ
  • Электронная схема Печатная плата Электрическая сеть Инкапсулированные компьютерные иконки PostScript, Hitech PNG 643x505px Размер файла: 53,85 КБ
  • сине-серая иллюстрация материнской платы компьютера, компьютерная мышь, компьютерное оборудование, настольные компьютеры, мультяшная материнская плата PNG 6340x5222px Размер файла: 1,88 МБ
  • Samsung SSD 960 EVO NVMe M.2 Samsung 970 EVO NVMe M.2 Внутренний SSD MZ-V7E Samsung 860 EVO SSD Твердотельный накопитель, Samsung PNG 700x700px Размер файла: 158.38 КБ
  • Датчик Холла Arduino MEMS датчик магнитного поля, датчик Холла PNG 500x500px Размер файла: 176.82 КБ
  • Raspberry Pi 3 Адаптер Камера USB, Камера PNG 1200x1200px 1200x1200px Размер файла: 265.41 КБ
  • Ноутбук DDR3 SDRAM Настольные компьютеры Компьютерная память, оперативная память PNG 1600x1600px Размер файла: 1,11 МБ
  • Компьютерные иконки Электронная схема Электрическая сеть Электроника Печатная плата, Electronic Arts PNG 1200x1200px Размер: 39.53 КБ
  • Схема подключения микроконтроллера Arduino Шаговый двигатель, Шаговый двигатель PNG 1280x1210px Размер файла: 122,5 КБ
  • конденсаторы, Электронный компонент Интегральная схема Значок транзистора, Значок электронных компонентов PNG 1389x1627px Размер файла: 668.96KB
  • Bluetooth Беспроводной мобильный телефон Последовательный порт Arduino, HC-05 Модуль Bluetooth ведущий-ведомый один PNG 600x600px Размер файла: 93.41 КБ
  • Датчик влажности почвы Содержание воды, влажность PNG 1100x1100px 1100x1100px Размер файла: 801.13KB
Загрузить больше PNG-клипартов

Мы используем файлы cookie для анализа нашего трафика и улучшения предоставляемых нами услуг. Продолжая использовать этот веб-сайт, вы соглашаетесь на использование нами файлов cookie, как это определено в нашей политике конфиденциальности. принимать

Счетчики счетчиков :: Next.gr

—  Страница 7

  • Цифровые часы можно легко сделать с помощью микроконтроллера PIC, DS1307 и ЖК-дисплея 16G-2.Я уже писал о взаимодействии DS1307 RTC с микроконтроллером PIC. DS1307 RTC может работать как в 24-часовом, так и в 12-часовом режиме с индикатором AM/PM. Это….

  • Эта схема позволяет вам накладывать заголовок и/или время на входящий видеосигнал, что очень полезно при редактировании видеокассет. Это также хорошее введение в видеосигналы и их обработку.Следующий текст взят из статьи Дэвида: With the….

  • В приведенной ниже схеме 60 отдельных светодиодов используются для индикации минут на часах, а 12 светодиодов — для индикации часов. Схема источника питания и базы времени такая же, как описано выше в схеме часов с 28 светодиодами. Минутная секция часов….

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

  • 12 светодиодов можно расположить по кругу для обозначения 12 часов на циферблате, а дополнительные 12 светодиодов можно расположить по внешнему кругу для обозначения 5-минутных интервалов в пределах часа. 4 дополнительных светодиода используются для индикации времени от 1 до 4 минут.

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

  • Часы показывают время с интервалом в 5 минут. Можно установить часы и минуты. Нет ни будильника, ни индикатора AM/PM. Для циферблата я использовал 2 куска ленолиума, склеенных вместе для увеличения толщины.(Пара напольных плиток тоже подойдет.) ….

  • Часы с цифровыми неоновыми лампами, также известными как никси. Эти устройства отображения были распространены в шестидесятые и семидесятые годы, и их использование сократилось после изобретения светодиодных дисплеев. В настоящее время русификаторы стали ценными стариками, и их трудно сделать даже жесткими….

  • можно расположить по кругу, чтобы представить 12 часов на циферблате, а дополнительные 12 светодиодов можно расположить по внешнему кругу, чтобы указать 5-минутные интервалы в пределах часа.4 дополнительных светодиода используются для индикации времени от 1 до 4 минут.

  • ..

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

  • В схеме используются 60 отдельных светодиодов для индикации минут часов и 12 светодиодов для индикации часов. Схема источника питания и базы времени такая же, как описано выше в схеме часов с 28 светодиодами. Минутная секция часов состоит из….

  • Это комбинация цифровых часов и контроллера заряда солнечной панели, используемая для поддержания глубокого цикла батареи от солнечной панели.Выход таймера используется для управления нагрузкой 12 В в течение 32-минутного интервала каждый день. Время запуска устанавливается с помощью 9 dip….

  • MCU представляет собой CMOS-микроконтроллер ATMEL 89C4051 с 4 КБ памяти кода, 128 байт встроенной оперативной памяти и 8-битными портами 1 и 3. Чип аналого-цифрового преобразователя — HARRIS CA3162, 3-разрядный DVM. В аналого-цифровом преобразователе используется интегратор с двумя наклонами, обеспечивающий частоту дискретизации 10 Гц.Цифровой выход….

  • Принципиальная схема (см. рисунок) и электронная сборка довольно просты, так как большая часть волшебства происходит в коде микроконтроллера….

  • Я разработал и построил часы с кольцевым счетчиком в 1970 году.Основание представляет собой блок грецкого ореха диаметром 12 дюймов и толщиной 2 дюйма из выдолбленной заготовки приклада. Задняя сторона основания имеет выемку для крепления печатной платы. Я закинул его в большую рейку и…

  • Схема подключения часов и подсветки экрана радио для ртутного соболя 1999 года с 3.0L vin U. Я часами искал на alldata и MichellOnDemand и абсолютно ничего не нашел.Пожалуйста помоги! Не знаю, имеет ли это значение, но машина….

  • Порт 1 контроллера (AT89C4051) используется в качестве линий данных для ЖК-дисплея (начиная с контакта 7-контакта 14 ЖК-дисплея). здесь я использую ЖК-дисплей 16 x 2 строки. В первой строке я покажу «ДЕНЬ» и «ДАТА», во второй строке я покажу «ВРЕМЯ» с….

  • Часы были упомянуты в предыдущем разделе в связи с их действием с FF.Вы помните, что эта схема представляет собой синхронизирующий сигнал, генерируемый оборудованием для управления операциями. Эта функция управления продемонстрирована как в D, так и в J-K FF…..

  • Используя эту схему, вы можете сконструировать маятниковые часы с электромагнитным импульсом и шагом в 1 секунду. На прототипе маятниковый стержень имеет длину 115 см с бобиной, отрегулированной так, чтобы он колебался каждую секунду.Он подвешен на коротком отрезке боевой пружины от….

  • Для одного из физических проектов автора требовался точный тактовый сигнал с частотой 1 Гц (секунды). К сожалению, прецизионные 10-мегагерцовые кварцевые кристаллы дороги, а другая проблема заключалась в неспособности большинства обычных или садовых логических микросхем 40xx CMOS работать на….

  • Эти точные часы с частотой один импульс в секунду состоят из нескольких общих деталей и питаются от сети с частотой 50 или 60 Гц, но без прямого подключения к ней.Звуковой сигнал или щелчок, похожий на метроном, и/или видимая вспышка превзойдут время в одну секунду и могут быть полезны….

  • Термин VCXO означает кварцевый генератор с управлением напряжением. Частоту такого генератора можно немного регулировать за счет изменения управляющего напряжения. Генераторы VCXO CLK использовались в различных приложениях, таких как цифровые Т….

  • До появления светодиодов (LED) и жидкокристаллических дисплеев (LCD) в электронной промышленности использовались лампы с холодным катодом для отображения чисел, символов и даже символов. Несмотря на то, что они называются «ламповыми», они отличаются от «радио-ламповых» тем, что не имеют нагревателя….

  • Многие электронные проекты требуют генератора временной развертки с точностью до секунды или около того.Один из способов сделать это с помощью микроконтроллера, кварцевого кристалла и некоторого программного обеспечения. Но гораздо дешевле и проще переработать старые аналоговые кварцевые часы…..

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

  • ..

  • Механизм, с помощью которого обычный горшок можно использовать в качестве цифрового горшка, поскольку мне нужно, чтобы настройка каждого горшка была преобразована в число от 0 до 15. Я использую эту информацию для определения продолжительности каждого шага.Я достиг этого, разработав аналог….

  • Часы состоят из двух плат; один несет генератор HT и логику процессора, другой — лампы. Это позволяет сделать дизайн немного более компактным, чем предыдущие попытки, но не позволяет сэкономить столько места, сколько я надеялся. Трубки монтируются на….

  • Ламповые часы состоят из высоковольтного источника питания, счетчиков семи колец и процессора Atmel AVR.

Добавить комментарий

Ваш адрес email не будет опубликован.