Схемы на pic12f683 своими руками

Добавил пользователь Владимир З.
Обновлено: 05.10.2024

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

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

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

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

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

Режим работы транзистора устанавливается таким образом, чтобы при отсутствии входного сигнала (в тишине) напряжение на его коллекторе было около 0,25-0,ЗV.

То есть, транзистор практически открыт, находится в режиме насыщения. При приеме микрофоном звука достаточной громкости на коллекторе транзистора возникает хаотический импульсный сигнал по амплитуде достигающий 2V.

Внутренний компаратор микроконтроллера настроен таким образом, чтобы реагировал на напряжение более 0,625V (величина опорного напряжения задана 0,625V).

Схема акустического реле на микроконтроллере PIC12F683

Рис. 1. Схема акустического реле на микроконтроллере PIC12F683.

Таким образом, чувствительность входа порта GP1 установлена 0,625V. Чувствительность микрофона можно регулировать, изменяя сопротивление резистора R1. С его увеличением чувствительность падает.

Но увлекаться уменьшением R1 для повышения чувствительности не стоит, так как при R1 менее ЗК может возникнуть перегрузка встроенного усилителя микрофона.

Прошивка МК и замечания

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

При каждом двухкратном звуке меняется состояние порта GP5. Нагрузкой управляет выходной каскад на оптопаре и симисторе. Напряжение питания нагрузки переменное 220V.

Мне необходимо было управлять сервомашинкой Turnigy TG9.
В качестве языка программирования был выбран Hi-Tech PICC v9.81, программатор PicKit2, микроконтроллер PIC12F683.

Turnigy TG9

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


Схема данного устройства проста:

Микроконтроллер работает от внутреннего тактового генератора и включена внутренняя подтяжка ресета.

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

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


Функция DelayUs(unsigned int time) получает значение на которое должен задержаться таймер, так как таймер инкрементирующий то это значение нужно отнимать от максимального значения таймера (0xFFFF). Выполнение программы останавливается до получения флага переполнения: while(TMR1IF!=1).

Функция выдающая импульсы (програмный ШИМ):

Функция получения результатов с АЦП:


Главная функция с бесконечным циклом выполнения:

Здесь происходит инициализация АЦП, порта ввода/вывода, и основной цикл программы в котором полученное знацение с АЦП корректируется и подается на сервоманинку.


--> -->

--> Ваш браузер
chrome 27.0.1453.93


Для тех, кто интересуется всякими моргалками, у меня есть простенькая схема светового автомата на PIC16F628A. Я собрал его в виде сердечка, на каждый канал я навесил по 13 светодиодов. Моргает довольно красиво. В схеме 8 каналов и 8 программ, которые сменяются автоматически. Скорость моргания регулируется кнопками + и - При отключении питания эти настройки сохраняются в памяти контроллера. При прошивке контроллера биты конфигурации (INTRC IO и PWRTE) устанавливаются автоматически.


Схема собрана на микроконтроллере PIC16F628A. Она может считать входные импульсы от 0 до 9999. Импульсы поступают на линию порта RA3 (кнопка SA1 активный уровень низкий). С каждым импульсом показания индикатора меняются на +1. После 999 импульса на индикаторе высвечивается 0 и загорается точка начала второй тысячи (правая по схеме) и т. д. Так счёт может продолжаться до значения 9999. После этого счёт останавливается. Кнопка SA3 (линия порта RА1) служит для сброса показаний в 0. Изначально схема была изготовлена для работы с питанием от трёх пальчиковых батарей. Поэтому с целью экономии энергии в схему включена кнопка включения индикации для контроля состояния счётчика SA2 (линия порта RA4). Если в этой кнопке нет необходимости, её контакты можно закоротить.


Наверное у каждого есть маленькие родственники – дети. Ребёнок рано или поздно начинает осваивать счёт. Обучение наиболее эффективно проводить в форме игры. Для этих целей существуют различные настольные игры, в которых количество ходов определяется с помощью игральных кубиков (костей). Моя маленькая племянница проявляет большой интерес к электронным игрушкам, особенно к тем, у которых есть кнопки и которые мигают. Ненужными деталями она украшает своих пластилиновых человечков. И совсем недавно, для настольных игр я собрала ей электронный кубик, т.н. цифровую кость.



8 лет назад Nokia выпустила культовый телефон, ставший символом мобильной связи, и пускай о нем сейчас вспоминают лишь с усмешкой, могу поспорить, что у 90% процентов читателей он еще сохранился. Ну не принято у нас отдавать на переработку мобильные телефоны! Использовать мы будем дисплей …

Прибор состоит из исполнительного УСТРОЙСТВА, связанного с ПК через Com порт и программы управления 'rs232tst.exe' которая работает под Windows 95/98. Исполнительное УСТРОЙСТВО имеет три светодиода, включать и выключать которые Вы можете нажатием кнопки мыши. При этом программа посылает УСТРОЙСТВУ команду управления. Микроконтроллер обрабатывает принятую команду, включает или выключает требуемый светодиод, посылает компьютеру подтверждение выполненого действия. Разумеется светодиоды можно заменить чем то другим, например ключем на семисторе, который будет включать и выключать свет в комнате и т. п. .


Сегодня, наверное, нет ни одного человека, который бы не слышал о пользе "серебряной воды". Ещё за 2500 лет до нашей эры египетские воины использовали серебро для лечения боевых ран - накладывали на них тонкие серебряные пластины, и раны быстро заживали. В русской же православной церкви святую воду для прихожан всегда выдерживали в серебряных сосудах. В настоящее время установлено, что ионы серебра действуют более чем на 650 видов патогенных бактерий, вирусов и грибков (спектр действия любого антибиотика 5-10 видов бактерий).


Предлагаемое устройство предназначено для оповещения о произошедшем событии по GSM каналу, проще говоря СМС-кой. Подключаем его телефону и вперёд. СМС посылаются в PDU формате, что обеспечивает большую совместимость сей приставки с различными телефонами, на изучение оного формата пришлось потратить несколько недель, а потом ещё 2 недели на отладку формирующих функций.


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

Контроль 15-ти контактов одним входом PIC-микроконтроллера


В некоторых простых методах контроля нажатия кнопок используется минимальное количество входов. Для этого используются RC-цепочки, в которых измеряется время срабатывания для идентификации нажатой кнопки, или используется вход АЦП с резисторным делителем для каждой нажимаемой кнопки. В данном небольшом проекте используется… Продолжить чтение →

Регулятор яркости светодиодной линейки

Общие сведения. Светодиодное освещение является экономичным источником света, для комфорта в доме применяют регуляторы яркости LED лампочек. Данная конструкция была разработана для регулировки дежурного освещения в прихожей. Управляется регулятор с помощью беспроводного пульта см. Рис.3 (как в автомобильных сигнализациях). Можно… Продолжить чтение →

Микроконтроллеры PIC для начинающих

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

Микроконтроллеры PIC для начинающих

Что такое PIC

PIC – это название серии микроконтроллеров, которые производятся компанией Microchip Technology Inc (США). Название PIC происходит от Peripheral Interface Controller.

Микроконтроллеры PIC имеют RISC-архитектуру. RISC – сокращённый набор команд, используется также в процессорах для мобильных устройств. Есть целый ряд примеров её использования: ARM, Atmel AVR и другие.

Компания Microchip в 2016 году купила Atmel – производителя контроллеров AVR. Поэтому на официальном сайте представлены микроконтроллеры семейства и PIC и AVR.

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

Семейства

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).

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

Характеристики, которых приведены в таблице ниже.

Характеристики микроконтроллеров PIC

Кроме 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 изображено ниже:

Цоколевка у 16f628

Блочная внутренняя схема этого микроконтроллера изображена ниже.

Структура микроконтроллера 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 внешним резонатором:

Фрагмент схемы с подключенным к pic16f628a внешним резонатором

Есть два основных языка для программирования микроконтроллеров PIC – это assembler и C, есть и другие, например PICBasic и т.д. Еще можно выделить упрощенный язык программирования JAL (just another language).

Пример программы микроконтроллера PIC на языке C

В 1 строке подключается библиотека микроконтроллеров PIC, далее подключается библиотека программы задержки.

PORTA = 0; // переводит все пины порта А в низкий уровень (лог. 0)
PORTB = 0xff; // переводит все пины порта B в высокий уровень (лог. 1)
RB5 = 1; // На пятом выводе порта B высокий уровень

А так выглядит та же программа, но уже на языке JAL, я перевел на русский язык комментарии от разработчиков встроенных примеров в JALedit (среда разработки).

Пример программы на языке JAL

Возникает соблазн выбрать JAL, и вам он может показаться проще. Безусловно на нём можно реализовать любые проекты, но с точки зрения пользы для вас как для специалиста – это бесполезный язык. Значительно больших результатов вы добьетесь, изучая синтаксис и принципы программирования на языке C (большая часть популярных сейчас языков C-подобны) или на Assembler – это низкоуровневый язык, который заставит вас понимать принцип работы устройства и что происходит в программе в каждый конкретный момент времени.

В чем работать

Если сказать совсем обобщенно для работы с любыми микроконтроллерами нужно:

1. Текстовый редактор.

3. Программа для загрузки прошивки в микроконтроллер.

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

MPASM — используется для разработки на языке Assembler от фирмы Microchip ;

MPLAB — также IDE от Microchip для PIC-контроллеров. Состоит из множества блоков для тестирования, проверки, работы с кодом и компиляции программ и загрузки в микроконтроллер. Также есть версия MPLAB X IDE – отличается большим функционалом и построена на базе платформы NetBeans ;

JALedit — подходит для языка JAL, о котором мы упоминали выше ;

И ряд других менее известных.

MPLAB IDE

Как прошивать микроконтроллер?

Для PIC-микронотроллеров есть ряд программаторов. Официальным считается PICkit. Их 4 версии. Но можно прошивать и универсальными, например, TL866 (он поддерживает почти всё, что может понадобится начинающему радиолюбителю, при этом очень дешевый).

Программаторы для PIC-микронотроллеров

Также в сети есть ряд различных схем программаторов для ПИКов, как для работы через COM-порт:

Схема программатора

Так и через USB (на самом деле тоже com, только через преобразователь на ИМС MAX232).

Заключение

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

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

Читайте также: