Схемы на pic16f84 своими руками
Приветствую всех любителей Nixie-часов! С удовольствием вношу свою лепту, предлагая конструкцию на 4-х индикаторах ИН-14. Программировать микроконтроллеры я к сожалению не умею, но с удовольствием повторяю понравившиеся мне конструкции.
Простой ампер вольтметр на микроконтроллере атмега 8. Собрав себе лабораторный блок питания, решил к нему прикрутить цифровой AVметр, порывшись в интернете нашёл несложную схемку.
Фотографии и прошивка удалены по просьбе автора, все подробности на официальном сайте по ссылке
Все подробности и комментарии здесь
USBasp - простой внутрисхемный USB-программатор для микроконтроллеров Atmel AVR. Программатор построен на микроконтроллере ATMega88 (или ATMega8) и содержит минимум деталей. Программатор использует свой USB-драйвер, никакие специальные USB контроллеры не нужны.
Это простой цифровой вольтметр на 7-сегментных индикаторах, может бить неплохим дополнением к лабораторному блоку питания.
В схеме используется PIC-контроллер PIC16F676, у которого есть АЦП 10-бит 8 каналов, но этот проект использовать только один канал для измерения напряжения.
Схема достаточно простая:
В этой статье описано создание датчика движения на основе модулей с пассивным ИК датчиком. Есть много моделей модулей с PIR датчиком от разных производителей, но в основе у них лежит один принцип. Они имеют один выход, который дает сигнал низкого или высокого уровня (в зависимости от модели) при обнаружении движения. В моем проекте микроконтроллер PIC12F635 постоянно следит за логическим уровнем на выходе модуля с датчиком и включает зуммер, когда он высокий.
Главная -> Статьи -> Устройства на микроконтроллерах -> Цифровой терморегулятор на микроконтроллере PIC16F84A
Микроконтроллеры уже давно вошли в современную электронную аппаратуру и являются главной частью бытовых и
промышленных устройств . Область их применения простирается от космической техники до микроволновых печей
и телевизоров . Наиболее популярные для широкого применения производят компании MICROCHIP и ATMEL .
В этой статье я надеюсь убить сразу двух зайцев :
1. Помочь Вам изготовить самостоятельно полезное устройство .
2. Вызвать у Вас интерес к применению микроконтроллеров в своих конструкциях .
Если у Вас появиться желание узнать больше , то настоятельно рекомендую не начинать изучение с
чтения книжек на эту тему . Книги пригодятся когда Вы поймете самые основы . Сканы самых полезных я выложил
Вернемся к нашей теме . Рассматриваемая ниже схема публиковалась в журнале РАДИО №1 2006г. и неоднократно
перерабатывалась и обсуждалась на форумах . Я помогу Вам её реализовать . Все необходимые материалы лежат на
моём сайте . Предполагается , что Вы ни разу не имели дела с микроконтроллерами и у Вас появилось желание быстро повторить понравившеюся конструкцию .
Устройство может применяться в качестве термостата для систем отопления , котлов , теплиц , холодильного оборудования
Принципиальная схема терморегулятора .
Печатная плата устройства .
Роль датчика выполняет интегральный цифровой термометр DS18B20 . Рабочий диапазон температур –55..+125 °С .
Нагрузкой управляет малогабаритное реле К1. Светодиодный индикатор—любой 4—разрядный с общими
анодами . Задание температуры осуществляется микропереключателями SB1-SB2 . Последняя уставка сохраняется в
энергонезависимой памяти микроконтроллера . Гистерезис—2°С . В рабочем режиме прибор показывает текущее зна-
чение измеряемой температуры .
Общие затраты на приобретение деталей составят примерно 7 $ . Аналогичный готовый прибор стоит примерно 25-30$.
Вот и задумайтесь , как прекрасно уметь изготовить вещь своими руками . Для микроконтроллера рекомендую приобрести
две панельки—для нашего прибора и для программатора . После сборки конструкции переходим к сборке программатора .
Микроконтроллеры PIC для начинающих
На современном рынке есть ряд семейств и серий микроконтроллеров от разных производителей, среди них можно выделить AVR, STM32 и PIC. Каждое из семейств нашло свою сферу применения. В этой статье я расскажу начинающим о микроконтроллерах PIC, а именно, что это такое и что нужно знать для начала работы с ними.
Что такое PIC
PIC – это название серии микроконтроллеров, которые производятся компанией Microchip Technology Inc (США). Название PIC происходит от Peripheral Interface Controller.
Микроконтроллеры PIC имеют RISC-архитектуру. RISC – сокращённый набор команд, используется также в процессорах для мобильных устройств. Есть целый ряд примеров её использования: ARM, Atmel AVR и другие.
Компания Microchip в 2016 году купила Atmel – производителя контроллеров AVR. Поэтому на официальном сайте представлены микроконтроллеры семейства и PIC и AVR.
Семейства
Baseline (PIC10F2xx, PIC12F5xx, PIC16F5x, PIC16F5xx) ;
Mid-range (PIC10F3xx, PIC12F6xx, PIC12F7xx, PIC16F6xx, PIC16F7xx, PIC16F8xx, PIC16F9xx) ;
Enhanced Mid-range (PIC12F1xxx, PIC16F1xxx) ;
High-end или PIC18 (18Fxxxx, 18FxxJxx and 18FxxKxx).
Характеристики, которых приведены в таблице ниже.
Кроме 8 битных микроконтроллеров компания Microchip производит 16-битные:
DsPIC30/33F для обработки сигналов.
Представители 16-битного семейства работают со скоростью от 16 до 100 MIPS (выполнено миллионов инструкций в секунду). Стоит отметить и особенности:
машинный цикл – 2 такта;
разрядность АЦП – 16 бит;
поддерживают ряд протоколов связи (UART, IrDA, SPI, I2S™, I2C, USB, CAN, LIN and SENT), ШИМ и прочее.
Также есть семейство 32 битных микроконтроллеров – PIC32MX, основные особенности:
работают на частоте до 120 мГц;
выполняют до 150 MIPS;
АЦП: 10-бит, 1 Msps (скорость квантования), до 48 каналов.
С какого PIC начать?
Одним из популярнейших в среде радиолюбителей микроконтроллеров является PIC16f628A. Его технические характеристики такие:
Есть встроенный тактовый генератор. Вы можете настроить для работы с частотой 4 или 8 МГц;
18 пинов, из них 16 – ввод/вывод, а 2 – питание;
Для работы на частотах до 20 МГц можно подключить кварцевый резонатор, но в этом случае на ввод/вывод останется не 16, а 14 ног;
В маркировке есть буква F, это значит, что используется FLASH-память, объёмом в 2048 слов;
14-битные инструкции, 35 штук;
4 аналоговых входа;
На входах PORTB есть подтягивающие резисторы;
Машинный цикл – 4 такта кварцевого резонатора или внутреннего генератора);
128 байт EEPROM;
USART – последовательный порт;
внутренний источник опорного напряжения;
питается от 3.3 до 5 В.
Причинами популярности является низкая цена и возможность тактирования от внутреннего генератора.
Какая цоколевка у 16f628 изображено ниже:
Блочная внутренняя схема этого микроконтроллера изображена ниже.
Научитесь разрабатывать устройства на базе микроконтроллеров и станьте инженером умных устройств с нуля: Инженер умных устройств
На что следует обратить внимание на схеме в первую очередь?
У этого микроконтроллера есть два порта PORTA и PORTB. Каждый пин, каждого из них может использоваться как вход и выход, а также для подключения периферии или задействования других модулей микроконтроллера.
Рассмотрим эту часть схемы крупно.
Например, порты RB0-RB3 – могут выступать в роли аналоговых. К RA6, RA7 в случае необходимости подключается источник тактирования (кварцевый резонатор). Сами же выводы микроконтроллера настраиваются в режим входа/выхода с помощью регистра TRIS.
Для этого есть команды типа:
TRISA = 0; // Все выводы порта А устанавливаются как выходы
TRISB = 0xff; // Все выводы порта B назначаются как входы
TRISA0 = 1; // Так назначается отдельный пин как вход (1) или выход (0)
TRISA5 = 1 ; // здесь 5 вывод порта А – назначен входом
Вообще режимы работы, включение WDT (сторожевого таймера) выбор источника тактирования микроконтроллера и прочее настраивается с помощью регистров специального назначения — SFR, а память и данные хранятся в GFR – простыми словами это статическое ОЗУ.
Для удобства ниже приведены эти таблицы в виде картинок (нумерация регистров, как и всё в цифровой электронике начинается с 0, поэтому номер четвертого – 3).
Как подключить и на каком языке программировать?
Чтобы запустить этот микроконтроллер достаточно подать плюс на Vdd и минус на Vss. Если нужен кварцевый резонатор, то он подключается к выводам 16 и 15 (OSC1 и OSC2) микроконтроллера PIC16f628, для других контроллеров с большим или меньшим числом выводов – смотрите в datasheet. Но этот момент нужно указывать при программировании и прошивке.
Кстати о переносимости и совпадении цоколевки – на 16f84A – она аналогична, и на многих других.
Фрагмент схемы с подключенным к pic16f628a внешним резонатором:
Есть два основных языка для программирования микроконтроллеров PIC – это assembler и C, есть и другие, например PICBasic и т.д. Еще можно выделить упрощенный язык программирования JAL (just another language).
В 1 строке подключается библиотека микроконтроллеров PIC, далее подключается библиотека программы задержки.
PORTA = 0; // переводит все пины порта А в низкий уровень (лог. 0)
PORTB = 0xff; // переводит все пины порта B в высокий уровень (лог. 1)
RB5 = 1; // На пятом выводе порта B высокий уровень
А так выглядит та же программа, но уже на языке JAL, я перевел на русский язык комментарии от разработчиков встроенных примеров в JALedit (среда разработки).
Возникает соблазн выбрать JAL, и вам он может показаться проще. Безусловно на нём можно реализовать любые проекты, но с точки зрения пользы для вас как для специалиста – это бесполезный язык. Значительно больших результатов вы добьетесь, изучая синтаксис и принципы программирования на языке C (большая часть популярных сейчас языков C-подобны) или на Assembler – это низкоуровневый язык, который заставит вас понимать принцип работы устройства и что происходит в программе в каждый конкретный момент времени.
В чем работать
Если сказать совсем обобщенно для работы с любыми микроконтроллерами нужно:
1. Текстовый редактор.
3. Программа для загрузки прошивки в микроконтроллер.
И я даже читал старые учебники, где автор, работая из-под DOS писал код, компилировал и прошивал его разными средствами. Сейчас же под все популярные операционные системы есть среды для разработки, как узкоспециализированные (для конкретного семейства микроконтроллеров или семейств от одного производителя) так и универсальные (либо содержат все необходимые инструменты, либо они подключаются в виде плагинов).
MPASM — используется для разработки на языке Assembler от фирмы Microchip ;
MPLAB — также IDE от Microchip для PIC-контроллеров. Состоит из множества блоков для тестирования, проверки, работы с кодом и компиляции программ и загрузки в микроконтроллер. Также есть версия MPLAB X IDE – отличается большим функционалом и построена на базе платформы NetBeans ;
JALedit — подходит для языка JAL, о котором мы упоминали выше ;
И ряд других менее известных.
Как прошивать микроконтроллер?
Для PIC-микронотроллеров есть ряд программаторов. Официальным считается PICkit. Их 4 версии. Но можно прошивать и универсальными, например, TL866 (он поддерживает почти всё, что может понадобится начинающему радиолюбителю, при этом очень дешевый).
Также в сети есть ряд различных схем программаторов для ПИКов, как для работы через COM-порт:
Так и через USB (на самом деле тоже com, только через преобразователь на ИМС MAX232).
Заключение
Микроконтроллеры PIC16 подходят для простых проектов, типа простой автоматики, вольтметров, термометров и прочих мелочей. Но это не значит, что нельзя делать на этом семействе сложные и большие проекты, я привел пример того для чего чаще всего их используют. Для общего представления рекомендую посмотреть несколько видео:
В одной статье рассматривать темы о том, как программировать микроконтроллеры, неважно какого семейства, безсмысленно. Поскольку это очень большой объём информации. Для начинающих советую к прочтению:
Добрый день. Моя первая статья. На авторство не претендую, просто делюсь опытом сборки. Это кухонный таймер на pic16f84 с полноценной клавиатурой и четырех-сегментным дисплеем. Оригинал статьи на Радиокоте (Автор - Allex).
На написание статьи сподвинуло отсутствие печатной платы в оригинале и небольшая ошибка с резистором R3 (нужно вместо 100 кОм поставить 100 Ом).
Итак что нам нужно:
1. 7805;
2. Два лед индикатора с общим катодом Rl-D5613 (хотя я рекомендую переразвести плату под индикаторы Rl-D5611);
3. 1 бипер на 5 Вольт с внутренним генератором;
4. 5 резисторов на 10 кОм;
5. 1 резистор на 100 Ом;
6. 3 резистора на 100 кОм;
7. микроконтроллер pic16f84;
8. 12 кнопок (такого типа как стоят в мышках, только с длинными кнопками);
9. Кварц на 4 мГц;
10. 2 конденсатора на 33пФ;
11. 1 конденсатор на 0,33мФ;
12. 1 конденсатор на 0,1мФ;
13. Питающие контакты от батарейки типа "крона";
14. Корпус Z-19 (по желанию можно взять другого типа с отсеком под батарейку);
15. Панелька под микроконтроллер на 18 ног.
Переводим печатную плату на текстолит методом ЛУТ и травим (после травления часть дорожек были оборваны, потому устройство сразу не заработало, после исправление разрывов, устройство заработало).
Прошиваем микроконтроллер. В программе ICprog выставляем фьюзы все на "снятые" и в выпадающем списке на "HS".
Собираем устройство по схеме:
14 нога плюс. 5 нога минус. К 4 ноге резистор на 10кОм и к плюсу питания. К 15-16 ноге кварц и конденсаторы и на минус.
Далее монтируем в корпус, вырезаем окошко и клеем оргстекло, также вырезаем отверстия под кнопки.
Вид готового устройства.
Минусы устройства:
• В данной реализации не продумана защита ПП от грязи, стоит поставить или накладки (шляпки) на кнопки, или купить готовую клавиатуру.
• Также стоит добавить выключатель на батарейку так как при 9В он потребляет до 50 мкА, а при севшей батарейки до 5В всего 15 мкА.
Плюсы:
• Низкое энергопотребление, на одной батарейке до 40 часов.
• Небольшие размеры.
• Простота реализации. Мало деталей.
• Не нуждается в настройке.
• Полноценная клавиатура (не нужно жене объяснять сколько раз куда тыкать).
• Наличие часов.
А это рекомендации автора по настройке:
После сборки LC метра прибор запускается с первого включения. Для однострочного LCD индикатора 1601 необходимо замкнуть джампер J1. Для двухстрочного, типа 1602 - оставить разомкнутым. Подстроечным резистором 10К нужно отрегулировать контрасность LCD дисплея. Чем ближе движок резистора к "земле", тем выше контрасность дисплея.
После первого включения необходимо проверить частоту генератора на выходе LM311N, замкнув джампер J2, при положении переключателя L/C на С.
Частота на экране LCD должна быть в районе 550 кГц (значение отображается без одного знака в младшем разряде, например - 55000).
Далее, берём индуктивность с точно измеренным значением L на эталонном приборе (E7-8 и т.д.). Аналогично - подготовим и эталонную ёмкость (можно обойтись и без измерений, если взять для проверки прибора детали с нормированным отклонением от номинала, например - 1%).
Начинать настройку прибора, лучше всего в режиме измерения ёмкости - C.
Кратковременно нажимаем кнопку SW1 - калибровка.
На экране обнулятся показания до C=0.0 pF.
Вставляем в гнёзда эталонную ёмкость и если показания прибора отличаются от необходимого значения, то подбираем ёмкость, включённую последовательно с контактами низковольтного реле, подпаивая к ней конденсаторы небольшой ёмкости, каждый раз повторяя калибровку прибора, пока не добьёмся совпадения показаний прибора с номиналом эталонной ёмкости.
Не забываем, что конденсаторы 1000 пФ и индуктивность 82 мкГ нужны с наименьшими температурными коэффициентами ТКЕ и ТКИ, чтобы уменьшить температурный дрейф показаний прибора!
Для измерений индуктивностей, прибор нужно переключить в режим измерений индуктивностей - L.
Далее, вставляем перемычку в измерительные гнёзда прибора и нажимаем кнопку Калибровка. На экране появляется надпись Calibrating и показания прибора обнуляются L=0.00 mkH.
Вытаскиваем перемычку и подключаем измеряемую индуктивность. Больше ничего нажимать не нужно. Считываем показания прибора.
Читайте также: