Устройства на микроконтроллерах pic – Проекты на PIC

Устройства на микроконтроллерах — Меандр — занимательная электроника

Схемы на микроконтроллерах PIC, AVR

В современных промышленных стан­ках используются цифровые уст­ройства для измерения перемещения механизмов, датчиками которых служат электромеханические устройства, на­пример, ПДФ-3М [1] или ЛИР-158 [2] и аналогичные, использующие двухфаз­ный метод счёта. Предлагаемый прибор предназначен для проверки и отбраков­ки таких датчиков. Метод проверки — подсчёт числа импульсов на один обо­рот вала датчика. В приборе, схема которого изображе­на на рис. …

Читать далее

Постоянная ссылка на это сообщение: http://meandr.org/archives/36475

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

Читать далее

Постоянная ссылка на это сообщение: http://meandr.org/archives/36457

Сейчас очень попу­лярно освещение с помощью светодиод­ных лент. Особенно интересно примене­ние RGB-светодиодных лент, потому что это позволяет полу­чить самую разно­образную окраску освещения. Это устройство предназначено для управления RGB-светодиодной лентой или тремя свето­диодными блоками с общими анодами. Устройство обеспечивает 13 режимов работы светодиодной ленты: Выключенное состояние. Включены все светодиоды. Включены красные светодиоды. Включены зеленые светодиоды. Включены …

Читать далее

Постоянная ссылка на это сообщение: http://meandr.org/archives/36423

Описание и назначение устройства Публикация статьи рассчитана больше на начина­ющих — тех, кто только пытается заняться освоени­ем и пониманием работы устройств на AVR микро­контроллерах. Поэтому приведённый здесь проект в AVR Studio с текстом исходного кода написан с под­робными комментариями. Мне хотелось на реальном простом устройстве, которое может найти конкрет­ное применение в быту, привести пример реализа­ции …

Читать далее

Постоянная ссылка на это сообщение: http://meandr.org/archives/36158

Индикатор предназна­чен для непрерывного измерения и индикации напряжения в электро­сети. Индикатор состоит из цифрового трехразряд­ного измерителя напряжения, источника питания и датчика напряжения электросети. По сути, датчик напря­жения электросети и источник питания это единое целое. Прибор питается от электросети через источник питания, состоящий из понижаю­щего трансформатора, выпрямителя и стабили­затора на микросхеме 7805. Напряжение пита­ния измерителя 5V …

Читать далее

Постоянная ссылка на это сообщение: http://meandr.org/archives/36074

meandr.org

Осваиваем простейший микроконтроллер PIC. Часть 1 / Habr

Выбор микроконтроллера обычно осуществляется под необходимые задачи. Для изучения хорошо подойдет популярный МК с минимальным набором периферии: PIC16F628A.

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

На первых страницах перечислены основные характеристики МК (русское описание).

Основные моменты, которые нам понадобятся:

  • микроконтроллер содержит внутренний генератор на 4 MHz, так же можно подключить внешний кварц частотой до 20 MHz
  • 16 ног микроконтроллера можно использовать как цифровые входы\выходы
  • есть 2 аналоговых компаратора
  • 3 таймера
  • CCP модуль
  • USART модуль
  • 128 байт энергонезависимой памяти EEPROM

Схема расположения выводов:

Vdd — питание.

Vss — земля.

Это минимум, необходимый для работы МК.

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

Компилятор


Как я уже писал в предыдущих статьях, самым простым и легким я посчитал компилятор JAL с IDE JALEdit.

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

Запускаем JALEdit. Открываем пример програмы для нашего микроконтроллера: 16f628a_blink.jal, дабы не портить исходник, сразу сохраняем ее в новый файл, к примеру, 16f628a_test.jal.

Весь код можно разделить на 4 блока:

  • выбор МК и его конфигурация
    include 16f628a -- подключение библиотеки нашего МК
    --
    -- This program assumes a 20 MHz resonator or crystal
    -- is connected to pins OSC1 and OSC2.
    pragma target clock 20_000_000 -- oscillator frequency
    -- configuration memory settings (fuses)
    pragma target OSC HS -- HS crystal or resonator
    pragma target WDT disabled -- no watchdog
    pragma target LVP disabled -- no Low Voltage Programming
    pragma target MCLR external -- reset externally
    --

  • объявление переменных, процедур, функций
    alias led is pin_A0
    pin_A0_direction = output

  • выполнение настроек и расчетов до основного цикла
    enable_digital_io() -- переключение всех входов\выходов на цифровой режим
  • бесконечный цикл основных действий МК
    forever loop
    led = on
    _usec_delay(250000)
    led = off
    _usec_delay(250000)
    end loop

Нажав F9 (или соответсвующую кнопку) программа скомпилируется в готовую прошивку, при этом будет видно сколько ресурсов МК будет задействовано:
Code :58/2048 Data:4/208 Hardware Stack: 0/8 Software Stack :80

Если прочитать комментарии, то станет ясно, что данная программа рассчитана на использование внешнего кварца 20MHz.
Так как у нас его пока нет, разберемся с конфигурацией и перепишем программу на использование внутреннего генератора.

Конфигурация


В разных микрокотнролерах существуют различные наборы конфигурационных битов. Узнать о назначении каждого бита можно в даташите (стр. 97).
В подключенной библиотеке каждому биту и каждому его значению присвоена читабельная переменная, остается только выбрать необходимые нам параметры.
-- Symbolic Fuse definitions
-- -------------------------
--
-- addr 0x2007
--
pragma fuse_def OSC 0x13 { -- oscillator
RC_CLKOUT = 0x13 -- rc: clkout on ra6/osc2/clkout, rc on ra7/osc1/clkin
RC_NOCLKOUT = 0x12 -- rc: i/o on ra6/osc2/clkout, rc on ra7/osc1/clkin
INTOSC_CLKOUT = 0x11 -- intosc: clkout on ra6/osc2/clkout, i/o on ra7/osc1/clkin
INTOSC_NOCLKOUT = 0x10 -- intosc: i/o on ra6/osc2/clkout, i/o on ra7/osc1/clkin
EC_NOCLKOUT = 0x3 -- ec
HS = 0x2 -- hs
XT = 0x1 -- xt
LP = 0x0 -- lp
}
pragma fuse_def WDT 0x4 { -- watchdog timer
ENABLED = 0x4 -- on
DISABLED = 0x0
-- off
}
pragma fuse_def PWRTE 0x8 { -- power up timer
DISABLED = 0x8 -- disabled
ENABLED = 0x0 -- enabled
}
pragma fuse_def MCLR 0x20 { -- master clear enable
EXTERNAL = 0x20 -- enabled
INTERNAL = 0x0 -- disabled
}
pragma fuse_def BROWNOUT 0x40 { -- brown out detect
ENABLED = 0x40 -- enabled
DISABLED = 0x0 -- disabled
}
pragma fuse_def LVP 0x80 { -- low voltage program
ENABLED = 0x80 -- enabled
DISABLED = 0x0 -- disabled
}
pragma fuse_def CPD 0x100 { -- data ee read protect
DISABLED = 0x100 -- disabled
ENABLED = 0x0 -- enabled
}
pragma fuse_def CP 0x2000 { -- code protect
DISABLED = 0x2000 -- off
ENABLED = 0x0 -- on
}
  • OSC — конфигурация источника тактирования
    может принимать 8 различных значений, 4 из которых нам могут понадобиться
    1. INTOSC_NOCLKOUT — внутренний генератор (4M Hz)
    2. HS — внешний высокочастотный кварц (8-20 MHz)
    3. XT = внешний кварц (200 kHz — 4 MHz)
    4. LP — внешний низкочастотный кварц (до 200 kHz)
  • WDT — сторожевой таймер.
    Основная работа этого таймера в том, что бы перезагрузить микроконтроллер когда он дотикает до конца.
    Что бы перезагрузки не происходило, его нужно своевременно обнулять.
    Таким образом при сбое счетчик таймера перестанет обнуляться, что приведет к сбросу МК. Иногда бывает удобно, но в данный момент нам это не потребуется.
  • PWRTE — очередной таймер.
    При активации он будет сбрасывать МК до тех пор, пока питание не поднимется до нужного уровня.
  • BROWNOUT — сброс МК при падении питания ниже нормы.
  • MCLR — активация возможности внешнего сброса МК.
    При включении функции МК будет в постоянном резете до тех пор, пока на ноге MCLR (pin 4) не будет положительного напряжения.
    Для сброса МК достаточно установить кнопку, замыкающую pin 4 на землю.
  • LVP — активация возможности программирования при низком напряжении.
    При активации один цифровой вход переключится в режим LVP (pin 10). Если подать 5В на эту ногу, то МК перейдет в режим программирования. Для нормальной работы МК требуется держать на этой ноге 0В (подсоединить к земле).
    Мы будем использовать программатор, использующий повышенное напряжение, потому LVP активировать не требуется.
  • CPD — защита EEPROM от считывания программатором.
  • CP — защита FLASH (прошивки) от считывания программатором.

Изменим конфигурацию под себя:

pragma target clock 4_000_000 -- указываем рабочую частоту, необходимо для некоторых функций расчета времени
-- конфигурация микроконтроллера
pragma target OSC INTOSC_NOCLKOUT -- используем внутренний генератор
pragma target WDT disabled -- сторожевой таймер отключен
pragma target PWRTE disabled -- таймер питания отключен
pragma target MCLR external -- внешний сброс активен
pragma target BROWNOUT disabled -- сбос при падении питания отключен
pragma target LVP disabled -- программирование низким напряжением отключено
pragma target CPD disabled -- защита EEPROM отключена
pragma target CP disabled -- защита кода отключена

Моргаем светодиодом по нажатию кнопки


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

Выберем еще неиспользуемую ногу МК. Возьмем, к примеру, RB5(pin 11). Данная нога не имеет дополнительных функций, потому она нам более нигде не понадобится.
В режиме цифрового выхода МК может притягивать к ноге либо питание, либо землю.
Подключать нагрузку можно как к плюсу, так и к минусу. Разница будет лишь в том, когда и в какую сторону потечет ток.


В первом случае ток потечет от МК при установке единицы, а во втором — к МК при установке нуля.

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

Для ограничения тока через ногу (максимально допустимо 25 мА на цифровой вход или 200 мА на все порты) установлен токоограничительный резистор. По простейшей формуле высчитываем минимальное значение в 125 Ом. Но так как предел нам не нужен, возьмем резистор в 500 Ом (а точнее ближайший подходящий).

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

Цифровой вход

Возьмем вторую неиспользуемую нигде ногу — RB4 (pin 10, указанная в распиновке функция PGM отностися к LVP, который мы отключили).
В режиме цифрового входа микроконтроллер может считывать два состояния: наличие или отсутствие напряжения. Значит нам необходимо подключить кнопку так, что бы в одном состоянии на ногу шел плюс, а во втором состоянии — к ноге подключалась земля.

В данном варианте резистор используется в качестве подтяжки (Pull-up). Обычно для подтяжки применяют резистор номиналом 10 кОм.

Впрочем, подтягивающий резистор не всегда необходим. Все ноги PORTB (RB0-RB7) имеют внутреннюю подтяжку, подключаемую программно. Но использование внешней подтяжки куда надежнее.

Можно подключать не только кнопку, главное помнить о ограничении тока через МК.
Кнопка сброса

Пока не забыли, что мы активировали внешний сброс, добавим аналогичную кнопку на ногу MCLR (pin 4).

После нажатия такой кнопки МК начнет выполнение программы с нуля.

Прошивка

Присваиваем нашему светодиоду и кнопке переменные:
enable_digital_io() -- переключение всех входов\выходов на цифровой режим
--
alias led is pin_B5 -- светодиод подключен к RB5
pin_B5_direction = output -- настраиваем RB5 как цифровой выход
--
alias button is pin_B4 -- кнопка подключена к RB4
pin_B4_direction = input -- настраиваем RB4 как вход
led = off -- выключаем светодиод

Теперь присваивая переменной led значения 1 или 0 (on или off, true или false, другие алиасы..) мы будем подтягивать к нужной ноге МК или плюс, или минус, тем самым зажигая и гася светодиод, а при чтении переменной button мы будем получать 1 если кнопка не нажата и 0 если кнопка нажата.

Теперь напишем необходимые нам действия в бесконечном цикле (эти действия будут выполняться постоянно. При отсутствии бесконечного цикла МК зависнет):

forever loop
led = off -- выключаем светодиод
_usec_delay(500000) -- ждем 0,5 сек
if Button == 0 then -- если кнопка нажата, выполняем действия
led = on -- зажигаем светодиод
_usec_delay(500000) -- ждем 0,5 сек
end if
end loop

Задержка считается просто:
частота генератора у нас 4MHz. Рабочая частота в 4 раза меньше: 1 MHz. Или 1 такт = 1 мкс. 500.000 мкс = 0,5 с.

Компилируем прошивку:

Errors :0 Warnings :0
Code :60/2048 Data:4/208 Hardware Stack: 0/8 Software Stack :80

Теперь нам необходимо записать эту прошивку в МК, собрать устройство согласно схеме и проверить, что у нас все получилось как надо.

Программатор


Все таже схема:

Смотрим на распиновку:

  • PGD — pin 13
  • PGC — pin 12
  • MCLR(Vpp) — pin 4
  • Vdd — pin 14
  • Vss — pin 5

Паяем…


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

В качестве питания 5В в данном случае использовался хвост от старой PS/2 мыши, вставленный в разъем для мыши.

Подключаем к компьютеру.

Качаем и запускаем WinPic800.

Идем в Settings->Hardware, выбираем JDM и номер порта, на котором висит программатор

Нажимаем Hardware Test, затем Detect Device

Открываем нашу прошивку pic628a_test.hex

На вкладке Setting можно проверить, что конфигурационные биты выставлены верно, при желании тут же их можно изменить

Program All, затем Verify All

Если ошибок не возникло, продолжаем паять.

Результат


Финальная схема:

От программатора нам мешает только высокое напряжение (12в) на MCLR. Дабы не отпаивать весь программатор, можно отпаять только один провод… Или просто не подключать программатор к COM порту. Остальные провода нам мешать не будут (а подключенные питание и земля только упростят пайку).

Кнопку на MCLR паять можно по желанию, но подтяжка обязательна.

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


Результат работы можно увидеть на видео.

Итак, у нас получилось самое простое устройство на микроконтроллере: мигалка светодиодом.

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

habr.com

Устройства на микроконтроллерах — Меандр — занимательная электроника

Схемы на микроконтроллерах PIC, AVR

В современных промышленных стан­ках используются цифровые уст­ройства для измерения перемещения механизмов, датчиками которых служат электромеханические устройства, на­пример, ПДФ-3М [1] или ЛИР-158 [2] и аналогичные, использующие двухфаз­ный метод счёта. Предлагаемый прибор предназначен для проверки и отбраков­ки таких датчиков. Метод проверки — подсчёт числа импульсов на один обо­рот вала датчика. В приборе, схема которого изображе­на на рис. …

Читать далее

Постоянная ссылка на это сообщение: http://meandr.org/archives/36475

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

Читать далее

Постоянная ссылка на это сообщение: http://meandr.org/archives/36457

Сейчас очень попу­лярно освещение с помощью светодиод­ных лент. Особенно интересно примене­ние RGB-светодиодных лент, потому что это позволяет полу­чить самую разно­образную окраску освещения. Это устройство предназначено для управления RGB-светодиодной лентой или тремя свето­диодными блоками с общими анодами. Устройство обеспечивает 13 режимов работы светодиодной ленты: Выключенное состояние. Включены все светодиоды. Включены красные светодиоды. Включены зеленые светодиоды. Включены …

Читать далее

Постоянная ссылка на это сообщение: http://meandr.org/archives/36423

Описание и назначение устройства Публикация статьи рассчитана больше на начина­ющих — тех, кто только пытается заняться освоени­ем и пониманием работы устройств на AVR микро­контроллерах. Поэтому приведённый здесь проект в AVR Studio с текстом исходного кода написан с под­робными комментариями. Мне хотелось на реальном простом устройстве, которое может найти конкрет­ное применение в быту, привести пример реализа­ции …

Читать далее

Постоянная ссылка на это сообщение: http://meandr.org/archives/36158

Индикатор предназна­чен для непрерывного измерения и индикации напряжения в электро­сети. Индикатор состоит из цифрового трехразряд­ного измерителя напряжения, источника питания и датчика напряжения электросети. По сути, датчик напря­жения электросети и источник питания это единое целое. Прибор питается от электросети через источник питания, состоящий из понижаю­щего трансформатора, выпрямителя и стабили­затора на микросхеме 7805. Напряжение пита­ния измерителя 5V …

Читать далее

Постоянная ссылка на это сообщение: http://meandr.org/archives/36074

meandr.org

Схемы, устройства и проекты на микроконтроллерах AVR

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

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

Двигатели постоянного тока относятся к числу наиболее часто используемых двигателей. Их можно встретить где угодно – начиная от простейших конструкций до продвинутой робототехники. В этой статье мы рассмотрим подключение двигателя постоянного тока к микроконтроллеру ATmega16 (семейство AVR). Но сначала немного … Читать далее →

Принцип действия датчиков Холла основан на так называемом «эффекте Холла», открытым Эдвином Холлом (Edwin Hall) в 1869 году. Этот эффект гласит: «эффект Холла основан на явлении возникновения поперечной разности потенциалов (называемой также холловским напряжением) при помещении проводника с постоянным током … Читать далее →

Широтно-импульсная модуляция (сокр. ШИМ, от англ. PWM — Pulse Width Modulation) является технологией, позволяющей изменять ширину импульсов в то время как частота следования импульсов остается постоянной. В настоящее время она применяется в разнообразных системах контроля и управления, а также в … Читать далее →

ATmega16 (семейство AVR) является дешевым 8 битным микроконтроллером и имеет достаточно большое число интерфейсов ввода-вывода общего назначения. Он поддерживает все часто используемые в настоящее время протоколы связи такие как UART, USART, SPI и I2C. Он достаточно широко применяется в робототехнике, … Читать далее →

Существует несколько способов программирования микроконтроллеров семейства AVR. В данной статье мы рассмотрим один из наиболее популярных в настоящее время способов программирования данных микроконтроллеров – с помощью программатора USBASP v2.0 и программы Atmel Studio 7.0. Хотя на нашем сайте уже есть … Читать далее →

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

Часто во многих конструкциях, использующих микроконтроллеры AVR, используется аналогово-цифровой преобразователь (АЦП) данных микроконтроллеров. Он используется везде где необходимо преобразовать какое-нибудь аналоговое значение в цифровое. Обычно это конструкции с датчиками температуры, датчиками наклона, датчиками тока, гибкими датчиками и т.п. На нашем … Читать далее →

Шаговые двигатели – это бесщеточные двигатели постоянного тока, которую могут вращаться от 00 до 3600 дискретными шагами. С каждым управляющим сигналом ось такого двигателя поворачивается на фиксированное значение (шаг). Управление вращением подобных двигателей осуществляется последовательностью специальных сигналов. В отличие от … Читать далее →

microkontroller.ru

Устройства на микроконтроллерах





     Очень простая самодельная домашняя компьютерная USB метеостанция на микроконтроллере и готовых датчиках погоды.

21.02.2015 Прочитали: 29357

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

06.02.2015 Прочитали: 28387

     Конструкция наручных электронных часов с микроконтроллером и двумя светодиодами, показывающим время в двоичном коде.

15.01.2015 Прочитали: 26452

     Программатор EXTRA-PIC v3.2, с возможностью программирования PIC и AVR контроллеров через COM порт.

06.12.2014 Прочитали: 53570

     Всего на одном отечественном вакуумном индикаторе ИН-12 и микроконтроллере PIC16F84A можно собрать небольшие оригинальные часы.

05.12.2014 Прочитали: 17871

     Простой LC метр — цифровой прибор с ЖК дисплеем, для определения значений ёмкости и индуктивности радиоэлементов.

04.12.2014 Прочитали: 34430

     Как сделать простой USB программатор для начинающих — подробная инструкция и архив с файлами документации.

21.11.2014 Прочитали: 37819

     Электронное информационное табло на 85 светодиодах — практический пример создания LED панели для вывода информации — букв, цифр и так далее.

23.10.2014 Прочитали: 35524






radioskot.ru

Устройства на микроконтроллерах — Страница 2 — Меандр — занимательная электроника

Схемы на микроконтроллерах PIC, AVR

Предлагаемый вариант отладочной платы предназначен для проверки и отладки программ микроконтроллеров семейства PICmicro в корпусе DIP-28, например: PIC18P2525, PIC18P2620, PIC16P76, PIC18P73, PIC16P870, PIC18P873, PIC18P876 и многих других. Она может быть полезна как начинающим радиолюбите­лям, так и опытным разработчикам встраиваемого программно­го обеспечения. Схема отладочной платы представле­на на рис. 1. Она имеет «на борту» следующий набор элементов: …

Читать далее

Постоянная ссылка на это сообщение: http://meandr.org/archives/35963

Схема фонаря показана на рисунке. На полевом транзисторе VT1, дрос­селе L1, диоде VD1 и конденсаторе С4 собран повышающий преобразователь, управляющие импульсы для которого вырабатывает микроконтроллер DD1. С подвижного контакта подстроенного резистора R1 снимают и подают на вход АЦП микроконтроллера часть напряже­нии питания для его контроля. Кнопкой SB1 включают фонарь и регулируют яркость его свечения. Пять …

Читать далее

Постоянная ссылка на это сообщение: http://meandr.org/archives/35687

Для реализации проекта понадобится 4 светодиодных матрицы 8х8, 4 сдвигающих регистра 74HC595 и управляющий микроконтроллер TINY13A. Задача заключается в том, чтобы зажечь все 256 светодиодов от нашего 8-выводного микроконтроллера TINY13A. Для этого дела выводов на данном микроконтроллере явно маловато, по этому будем расширять порты регистрами сдвига. Что бы всё работало я написал небольшую «детскую» программку, …

Читать далее

Постоянная ссылка на это сообщение: http://meandr.org/archives/35659

Таймер предназначен для задания и отсчета времени до 99 минут 59 секунд. После завершения заданного интервала происходит подключение нагрузки к электросети при помощи электромагнит­ного реле. В основе схемы микроконтроллер PIC16Р628A. Индикация осуществляется на стандартном двухстрочном 16-значном дисплее (1602). Управление при помощи четырех кнопок. Кнопка S4 служит для сброса. Кнопкой S3 можно выбрать что устанавливать, минуты …

Читать далее

Постоянная ссылка на это сообщение: http://meandr.org/archives/35655

Утечки горючих газов из бытовой газораспределительной сети либо баллонов регулярно становятся причинами трагедий. Естественно, на рынке представлено немало сигнализаторов [1-5], которые должны поднять тревогу, если уровень загазованности помещения выше нормы. Но слишком высокая стоимость такого прибора при сравнительной простоте его конструкции подталкивает к самостоятельному изготовлению подобного устройства. Основа предлагаемого сигнализатора — изображённый на рис. 1 …

Читать далее

Постоянная ссылка на это сообщение: http://meandr.org/archives/35574

meandr.org

Очень маленькое, но очень полезное устройство.

РадиоКот >Схемы >Цифровые устройства >Игрушки >

Очень маленькое, но очень полезное устройство.

Здравствуй, дорогой Кот! Позволь поздравить тебя с Днём рождения и от всей души пожелать рабочего вдохновения, творческих успехов ну и чтоб, как говорится, «всё Коту было Масленица»! А также преподнести тебе очень маленький скромный подарочек. Ой, а где же он? В кармане затерялся? Мяу-миу-рауж… О! Вот же он, «МИРАЖ»!!!

 

Надеюсь, он тебе понравится и станет твоим верным спутником. 

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

Итак, что же за хронометр сегодня у нас? Идея систем отображения с механической развёрткой, отнюдь, не нова. Данные часы были разработаны чуть больше полугода назад, когда один из приднестровских котов опубликовал здесь свою статью с подобным прибором. Целью моей разработки было создать некое совершенное во всех отношениях устройство подсчёта времени, основанное на подобных принципах, но лишённое всех недостатков модели приднестровского товарища. Во избежание «переноса недостатков» как принципиальная схема, так и программный код разрабатывались с нуля. Да и не было желания «ковыряться» в чужом коде, хотелось разработать что-то своё, новое и совершенно отличное. Так, после двух месяцев творческих поисков и двух неудачных образцов появился «МИРАЖ». Уникальность данного устройства счёта времени заключается  в его неимоверной простоте,  дешевизне и столь модных сегодня минималистических тенденциях. Как говорят: «Всё гениальное должно быть просто!». Но, не смотря на это, данный хронометр умеет считать секунды, минуты, часы, числа, месяцы, годы, вычисляет дни недели по дате и добавляет по дню в високосные годы. Кроме того этот «малыш» довольно точен и экономичен. За полгода его работы уход времени составил не более двух минут, а элемент питания до сих пор не требует замены.


Из чего же он состоит? «Сердцем» устройства является излюбленный посетителями данного сайта 8-ми битный Flash микроконтроллер фирмы Atmel – ATmega8. Секрет сверхнизкого энергопотребления устройства заключается в том, что большую часть времени МК, как и положено всем порядочным котам, «дрыхнет»! Причём столь глубоко, что его ток потребления составляет при этом немногим более 8мкА! «А кто же тогда время считает?» – спросите вы. А всё дело в том, что в его составе имеется хитрый таймер-счётчик TC2, имеющий в своём составе независимый генератор тактовых импульсов с предделителем и возможностью подключения внешнего кварцевого резонатора. Вот он-то как раз и считает генерируемые генератором импульсы с частотой  32 786Гц, которая задаётся внешним опорным «часовым кварцем». Один раз в секунду происходит переполнение таймера и по данному событию он формирует сигнал прерывания, способный «разбудить» вычислительное ядро микроконтроллера. При пробуждении запускается внутренний калиброванный RC-осциллятор с делителем на 8, от которого и происходит тактирование ядра частотой порядка 1,2 МГц. При этом ток потребления скачком возрастает до полутора миллиампер. Ядро производит математические действия и снова уходит в спящий режим. Переполнение таймера – не единственное условие для пробуждения МК. Это также происходит и по нажатию кнопки «Wake». При этом МК в течение 5 секунд не уходит в спящий режим, ожидая действий пользователя, и выполняя алгоритмы пользовательского интерфейса. Если по истечению 5 секунд никаких действий не последует, МК снова уйдёт в режим сна.

Как пользоваться данным устройством? Элементарно! Держите устройство в руке горизонтально батареей к себе. Кратковременно нажмите кнопку «Wake» и начните совершать взмахи влево-вправо с частотой от 3 до 5 взмахов в секунду. Перед вами появится «виртуальное табло» с отображением текущего времени.

 

Ещё одно кратковременное нажатие, и на «табло» появится текущая дата.

 

Затем год.

 

И, наконец, эмблемка «МИРАЖ».

Для установки времени необходимо в режиме отображения времени нажать и удерживать не менее 2 секунд кнопку «Wake» до засвечивания нижнего светодиода.  При взмахах появится:

 

Каждое кратковременное нажатие будет увеличивать отображаемый параметр на единицу. Ещё одно нажатие с удерживанием переключит в режим установки минут:

 

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

Аналогично устанавливается и дата. Необходимо перейти в режим отображения даты, далее нажатием с удержанием войти в режим установки даты. Далее производятся действия, аналогичные описанным выше как и при установке времени:

 

Ну чтож, без внимания остался лишь самый загадочный элемент устройства – это «датчик взмахов». Для удобства назовём его «акселерометр», хотя это и не совсем корректно.

 

Данный компонент изготавливается вручную. Для этого вам понадобятся напильник, паяльник, шило, кусачки-бокорезы ну и, конечно же, пара не очень кривых рук. За основу корпуса берётся планка штыревая типа PLD-80. От неё очень аккуратно откусываются 2 отрезка по 8 штырей. Все штыри вынимаются. В результате получается 16 штырей и 2 пластиковые детали. Далее 4 штыря изгибаются под прямым углом с отступом около 2мм от края и вставляются в одну из пластиковых деталей со стороны без углубления (см. фото).

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

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

В качестве грузика используется кусочек медной или латунной проволоки сечением около 1,5мм с золотым или серебряным покрытием – идеально подходят кусочки контактов некоторых старых «совковых» разъёмов. В качестве пружинки применена струнка, выпаянная из оптической головки лазерного CD/DVD привода. На таких струнках подвешиваются подвижные пластиковые рамки с обмотками и микролинзами. Пружинка должна иметь 1-1,5 витка (подбирается экспериментально), навивается на оправке диаметром около 1мм (вывод какого-нибудь выводного элемента с соответствующим сечением). Одним кончиком пружинка припаивается к грузику, на другом формируется «петелька», которая припаивается к медному прямоугольнику. Далее на штыри надевается вторая пластиковая деталь углублением вниз, образуя таким образом «крышечку коробочки» со всей «механикой» внутри. Далее «крышечку» необходимо снять, аккуратно подгибая пружинку тонким пинцетом, необходимо добиться, чтобы груз не касался верхней или нижней стенки коробочки, а был слегка прижат к левому контакту («крышечка» для проверки периодически устанавливается на место). Таким образом в собранной конструкции при взмахах грузик будет ударяться только о боковые штыри-контакты.

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

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

Номинал резисторов R1-R8 выбирается в соответствии цвета устанавливаемых светодиодов (точнее от заявленного напряжения их переходов). Для синих, белых, и ultra bright зелёных – 8-16 Ом, для красных, жёлтых и зелёных обычных – порядка 47-56Ом. Также хочу обратить ваше особое внимание на то, что микроконтроллер ATmega8A-AU по ряду его архитектурных особенностей в данной конструкции не применим. Устройство будет корректно работать только с МК ATmega8-16AU и ATmega8L-8AU.

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

 

Всем желаю удачи, хорошего настроения и побольше свободного времени!

 

«Кино» можно посмотреть по адресу: https://youtu.be/4j5wauVHah0

 

Фузы, прошивка и плата(SL5.0) находятся в архиве.

Файлы:
PCB, прошивка, фузы

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


Как вам эта статья?

Заработало ли это устройство у вас?


Эти статьи вам тоже могут пригодиться:

www.radiokot.ru

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *