Устройства на микроконтроллерах pic своими руками
Схема цифровой шкалы на Arduino UNO для связного КВ-приемника
Здесь приводится описание цифровой шкалы для коротковолнового связного приемника, работающего в диапазонах 160м, 80м, 40м, 20м, 10м или любом из них. Шкала работает с двухстрочным ЖК-дисплеем. В его верхней строке показывает значение частоты в кГц,а в нижней длину волны в метрах. Внося .
Самодельный велоспидометр на ARDUINO UNO (ATMEGA328)
Здесь описывается цифровой прибор на микроконтроллере, измеряющий скорость движения велосипеда. Индикатором служит ЖК-дисплей типа 1602А, он стандартный, на основе контроллера HD44780. Обозначение 1602А фактически значит, что он на две строки по 16 символов в строке. Используется только одна его .
Девятиразрядный мультиметр на АЦП AD7705 и AVR микроконтроллере
Основой предлагаемого мультиметра является микросхема 16-битного двухканального дельта-сигма аналого-цифрового преобразователя (АЦП) AD7705. Широко распространенные мультиметры на основе АЦП двойного интегрирования ICL7106 [2] обеспечивают отображение результата преобразования числом, не превышающим 1999, что соответствует, без учета знака, 11-битному АЦП, за вычетом 48 единиц счёта.
Реле времени на микроконтроллере AVR ATtiny2313 с индикатором фирмы Data Vision
Схема и описание самодельного реле времени на AVR микроконтроллере ATtiny2313 с индикатором фирмы Data Vision. Реле времени (таймеры), пожалуй, одна из самых массовых разработок конструкторов электронных техники. Автор предлагает вариант 4-х канального реле времени, разработанного на базе микроконтроллера семейства AVR и жидкокристаллического индикатора фирмы Data Vision. Принципиальная схема реле времени .
Макет светофора на ARDUINO UNO, схема и описание
Этот макет светофорного управления движения на перекрестке можно использовать в различных играх по изучению правил дорожного движения. Он может быть сделан как в миниатюрном, настольном варианте для передвижения по нему игрушечных моделей машин и кукол-пешеходов, так и в варианте для детского .
Самодельный кодовый замок на микроконтроллере (PIC16F628A)
Схема самодельного кодового замка, построенного на микроконтроллере PIC16F628A и транзисторах, имеет цифровое табло. Этот замок можно использовать для ограничения доступа в помещение, гараж, дом, сейф, шкаф. Его исполнительным устройством может служить механизм запирания двери автомобиля .
Часы с календарем на индикаторах ИН-12
Предлагаемые часы показывают текущее время и дату, обладают функциями будильника. Их особенность - использование газоразрядных цифровых индикаторов ИН-12. Подобные индикаторы широко применялись в электронных часах и цифровых измерительных приборах в семидесятые годы прошлого века. Индикаторы .
Автоматическое управления вентиляцией помещения, схема на МК ATtiny2313A
Схема самодельного устройства, автоматически включающего и выключающего принудительную вентиляцию помещения. Работа устройства осуществляется в зависимости от относительной влажности воздуха в помещении и скорости её изменения. Оно не содержит дефицитных деталей и может быть помещено в стандартный .
Двоичные часы на микроконтроллере PIC16F628A
Схема самодельных двоичных часов на микроконтроллере PIC16F628A и светодиодах. Эти необычные карманные часы могут стать оригинальным подарком. Индикатор времени в них построен всего на шести единичных светодиодах. Секрет в том, что число часов и число минут текущего времени отображаются ими .
Полицейская крякалка своими руками
Предоставляю вам схему спец сигнала (Крякалка), для самостоятельной сборки. Решил поставить ребенку на велосипед (пусть прохожих под домом пугает), но так же можно и в автомобиль поставить (если есть связи в ГАИ). Данное устройство состоит из минимум деталей, а так же простая в сборке и под силу каждому.
Часы на лампах ИН своими руками
В интернете цены на часы основанные на лампах ИН-14 если и попадаются еще, то цены на них весьма дороговаты. Мы рассмотрим как спаять часы на лампах ИН своими руками, так как это намного дешевле чем купить готовые,при этом они всегда будут радовать ваши глаза.
JDM программатор своими руками с внешним питанием
Пришло время еще раз затронуть тему изготовление программатора, так как цены на них не такие и маленькие,и при этом гарантии нет что он заработает. Рассмотрим схему программатора jdm с внешним питанием,с помощью которого програмируются микросхемы PIC и подключаемому к стационарному компьютеру через COM(rs232) порт.
Список прошиваемых PIC микроконтроллеров в статье.
Простое ИК управление своими руками
Простое ИК управление своими руками
Управление устройствами по ИК каналу может пригодиться для разных нужд, как в квартире так и за ее пределами. Например приспособить для открытия или закрытия дверей автомобиля, включение и выключения люстры с пульта и т.д. Данная схема ИК управления является лишь главным устройством передатчика и приемника.
Данное устройство предназначено для управления нагрузками на небольшой дистанции. За основу взят дешевый, миниатюрный ПДУ с eBay. К нему был изготовлен дешифратор на микроконтроллере PIC12F675. Режим работы - кнопка. Состояние на выходе дешифратора удерживается до тех пор, пока нажата кнопка на пульте.
Схема новогодней гирлянды на микроконтроллере своими руками
Гирлянда на микроконтроллере своими руками
С наступающим вас дорогие пользователи. И к предстоящему празднику решил порадовать вас схемой- новогодняя гирлянда на микроконтроллере pic.
И прошу к просмотру подробнее данной статьи.
Полицейская крякалка своими руками на PIC
Полицейская крякалка своими руками на PIC
Предлагаю вам для повторения схему звукового устройства, имитирующего сигнал "Милицейской Сирены". Устройство сделано на микроконтроллере PIC16F628. Схема имеет две различные сирены и "Крякалку".
В основном полицейскую крякалку ставят в автомобиль,так что смотрите еще другие схемы для авто
Так же вам понадобиться программатор для PIC, вот схема
Схема простого измерителя емкости
Простой измеритель емкости и индуктивности
Вы скажите что современные измерительные приборы имеют функцию измерять емкость и индуктивность. Но не так давно такие приборы очень много весили так как микросхемы только появлялись и требовали особого навыка работы.
В статье предлагается проверенная схема своими руками измерителя емкости и индуктивности катушки.Если вы задавались вопросом как измерить емкость или индуктивность.То вам сюда.Схема собрана на микроконтроллере PIC 16F84A.
Дубликатор(копировальщик) ключей от домофона своими руками
Схема копирования ключей от домофона
Бывает что нам нужно изготовить ключ от всех домофонов,но в интернете есть не всех шифровки, и для копирования предлогаю схему копирования или как называют копирщика домофонных ключей на микроконтроллере pic
Копии домофонных ключей делаются с помощью компьютерной программы и адаптера, подключаемого к компьютеру.
Схема электронных часов на PIC микроконтроллере
Часы с будильником на PIC
Схема часов с будильником своими руками вы можете собрать такую как на фото слева.
Часы можно питать как от сети,но ставить блок питания,или же от батареек но или от аккумуляторов,но при использовании других методов непредусматривая сеть,следует отключать индикатор.
Схема электронных часов
Схема электронных часов на pic16f628a
Предлогаю вашему вниманию схему электронных часов своими руками на микроконтроллере PIC 16F628A
Выбор микроконтроллера обычно осуществляется под необходимые задачи. Для изучения хорошо подойдет популярный МК с минимальным набором периферии: 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.
-
выбор МК и его конфигурация
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
--
Если прочитать комментарии, то станет ясно, что данная программа рассчитана на использование внешнего кварца 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
>
Изменим конфигурацию под себя:
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 с.
Теперь нам необходимо записать эту прошивку в МК, собрать устройство согласно схеме и проверить, что у нас все получилось как надо.
Программатор
Все таже схема:
- 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в к питанию.
Результат работы можно увидеть на видео.
Итак, у нас получилось самое простое устройство на микроконтроллере: мигалка светодиодом.
Теперь нам необходимо научиться пользоваться всей оставшейся периферией, но об этом в следущей статье.
25.07.2011 14 комментариев
17.07.2011 1 комментарий
Очень нобычные и забавные часы можно скостролить при помощи схемы, показанной ниже:Принцип работы этих часов демострирует следующая картинка — думаю, все будет понятно без лишних объясненией: скачать прошивкускачать печатку
ВольтАмперВаттметр PIC16F676
11.07.2011 2 комментария
Бортовой компьютер для мотоцикла с LCD от Nokia 6280
11.07.2011 1 комментарий
В данном проекте мото-бортового компьютера вы увидите как можно использовать LCD-дисплей от мобильного телефона Nokia 6280, управляемый микроконтроллером PIC18F4455. Данный БК установлен на мотоцикле Yamaha TDM850 (99 г. выпуска). Характеристики устройства: отображение текущей передачи (с 1 по 5), плюс нейтральная передача напряжение аккумулятора. Отображение аналоговое и цифровое время с запуска отображение аналогового и цифрового спидометра […]
Часы-термометр-секундомер на PIC16F628A
11.07.2011 0 комментариев
Данное устройство позволят считать время, измерять температуру, использовать секундомер. Дополнительно это устройство ведет простую статистику температуры — минимум/максимум, а в остальном мало отличается от уймы подобных устройств. Для индикации используются светодиодные 7-ми сегментные индикаторы с десятичной точкой, зеленого свечения. Индикация динамическая. Устройство имеет следующие функции: Индикация текущего времени в формате ЧЧ.ММ в течение 3-х секунд, […]
ЧАСЫ-БУДИЛЬНИК С ДУ на PIC16F628A
11.07.2011 0 комментариев
3 канала РФ дистанционного управления
11.07.2011 0 комментариев
FM стерео тюнер на микросхеме TEA5711 с синтезатором частоты и с управлением на микроконтроллере PIC16F628
11.07.2011 0 комментариев
В данное время сложилась такая ситуация, что высококачественные цифровые FM тюнеры имеются только в составе дорогих магнитол. Из тех немногочисленных конструкций, найденных на просторах Интернета ничего достойного внимания не было. Данный приемник был разработан с целью восполнить этот пробел. Приемник представляет собой функционально законченный блок с линейным выходом, подключаемым к усилителю мощности НЧ. Предназначен для […]
Дистанционное включение нагрузки
11.07.2011 0 комментариев
На сегодняшний деньсхемных решений включения дистанционно нагрузки великое множество – это один извариантов с применением микроконтроллера PIC12F629 схема и программа на оригинальность и функциональность не претендует онаразрабатывалась под конкретные условия эксплуатации об этом вкратце. Батя попросил собрать схему управленияводяным насосом, установленным на скважине, чтоб была возможность включатьудаленно с огорода полив, брат предложилтрадиционную схему на магнитных пускателях […]
Сенсорный выключатель
11.07.2011 1 комментарий
Прибор для проверки исправности датчиков перемещения
В современных промышленных станках используются цифровые устройства для измерения перемещения механизмов, датчиками которых служат электромеханические устройства, например, ПДФ-3М [1] или ЛИР-158 [2] и аналогичные, использующие двухфазный метод счёта. Предлагаемый прибор предназначен для проверки и отбраковки таких датчиков. Метод проверки —… Продолжить чтение →
Источник бесперебойного питания в системе освещения дома от солнечных батарей
В доме автора нередко отключают электропитание, что очень некстати в тёмное время суток, когда детям нужно делать уроки, а у остальных членов семьи остаются незаконченными домашние дела. Это побудило его изготовить резервную систему питания. Было выяснено, что потребляемая полностью включённым… Продолжить чтение →
Блок управления RGB-светодиодной лентой
Сейчас очень популярно освещение с помощью светодиодных лент. Особенно интересно применение RGB-светодиодных лент, потому что это позволяет получить самую разнообразную окраску освещения. Это устройство предназначено для управления RGB-светодиодной лентой или тремя светодиодными блоками с общими анодами. Устройство обеспечивает 13 режимов… Продолжить чтение →
Автоматика освещения подъезда на AVR
Описание и назначение устройства Публикация статьи рассчитана больше на начинающих — тех, кто только пытается заняться освоением и пониманием работы устройств на AVR микроконтроллерах. Поэтому приведённый здесь проект в AVR Studio с текстом исходного кода написан с подробными комментариями. Мне… Продолжить чтение →
Индикатор напряжения в электросети
Индикатор предназначен для непрерывного измерения и индикации напряжения в электросети. Индикатор состоит из цифрового трехразрядного измерителя напряжения, источника питания и датчика напряжения электросети. По сути, датчик напряжения электросети и источник питания это единое целое. Прибор питается от электросети через источник… Продолжить чтение →
Читайте также: