Accumulator-shop.ru

Аккумулятор Шоп
0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Библиотека устройств на микроконтроллерах

25.07.2011 4 комментария

егулятор предназначен для плавного управления мощностью активнойнагрузки, питающейся от сети переменного тока 220 вольт частотой 50 Гц.Мощность нагрузки зависит от типа применяемого симистора. В основуметода управления положен принцип фазового регулирования моментавключения симистора, включенного последовательно с нагрузкой. Фото регулятора представлены на риснках :В момент включения мощность на нагрузке нарастает плавно, что удобно,если регулятор будет использоваться для […]

Дистанционное включение нагрузки

Принципиальная схема и конструкция

В основе принципиальной схемы измерителя лежит микроконтроллер PIC 12 F 629 от Microchip . Данный процессор выпускается в корпусах с 8 выводами и способен работать при напряжении питания от 2 до 5.5В. К его достоинством можно отнести встроенный генератор тактовой частоты и режим пониженного энергопотребления. Объем внутренней Flash -памяти программ — 1Кб позволяет легко реализовать опрос датчика и преобразование температуры.

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

Датчиком температуры выбран термометр с цифровым выходом MCP9800, опять же от Microchip.Эта микросхема интересна, прежде всего тем, что выпускается в компактном корпусе SOT-23. Использование шины I2C делает ее подключение к микроконтроллеру элементарным. Опять же наличие спящего режима повышает привлекательность применения MCP9800 для систем с батарейным питанием.

Отображение показаний температуры производится на жидкокристаллическом индикаторе TIC 3321. Он не требует подсветки, вследствие чего потребляет минимальный ток. Для передачи данных в индикатор необходимо подключить всего три линии. Широкий температурный диапазон работы от -40 до +80ºС позволяет строить не только комнатные, но и уличные модели приборов.

Печатная платаВид со стороны элементов
Печатная плата Вид со стороны элементов

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

Arduino программатор PIC-ов.

@Lazy-R, а вот меня эта программа не радует. Консольная гораздо лучше, и надо было просто сделать для нее графический интерфейс. Спасибо за ваше сообщение, я внесу изменения, когда обзаведусь этим микроконтроллером.

upd1: вызов, который затирает всю флэш-память в функции EraseButton_Click вместе с ячейкой памяти 03FF, в которой содержится OSCCAL в виде инструкция + константа (например, 34 5C):

Palomo

  • #104
  • #105

Аллайя

  • #106

А с чего решили, что там 13 вольт должно быть? Моя схемка повеселей будет:
Схема.pngПлата 1.pngПлата 2.png

P.S. на схеме R3 и R4 подключены без учета наличия светодиода. Если хотите включить в схему светодиод, удалите эти резисторы из схемы, а у R2 измените номинал до 1 кОм.

Вложения

  • #107

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

Если открыть код (ProgramPIC.ino) то можно обнаружить набор пинов, среди которых есть PIN_VDD подключенный к ардуине на D2, который внезапно в схеме отсутствует. Так же в коде есть намеренный порядок подключения питания. итого вход PIC:VCC нужно подавать не с голого +5 вольт а с этого пина (если вспомнить об ограничении 40ма на аутпут пин то желательно подключать через резистор 200ом (есть мнение, что при таком сопротивлении просядет напряжение и работать так не будет — нужен. доп транзистор для управлениея питанием)), я лично подключил через 47ом (какой был), больше для галочки. Склоняюсь к тому, что схема без исправления иногда работала у некоторых формучан по случайному стечению обстоятельств.
Транзистор использовал 2n2222 (такой был под рукой, собственно все собирал из подручных материалов включая огрызок макетки). Резисторы вместо 1.2к поставил 1к (какие были).
20210925_132133.jpg20210925_132141.jpg20210925_132201.jpg20210925_132214.jpg20210925_132242.jpg

Не вижу как прикрепить файл, в исходнике (ProgramPIC.ino) я делал следующие правки:
1. поменял пины для удобства (соответствуют схеме выше)

  • #108

@Nnm, всё наоборот. В оригинальной схеме топика ошибок нет. Там очень широкий простор для модификаций, который практически не способен убить функциональность. Схема просто рассчитана на практически идеальное питание. Поэтому на вход нужно ставить большой и толстый конденсатор как в моей реализации или вообще выпрямитель.
Задам риторический вопрос: у вас сие устройство не стирает калибровочную константу pic12f629? Потому что у меня при отладке серверного кода (на ардуине) оно не желает даже переходить на ветку, ответственную за обработку именно pic12f629/675, в которой КК снова должна записываться.

Вот тут я собрал весь клиентский и серверный код, и последнюю версию платы в kicad. Исправлена куча ошибок оригинальных авторов. Всё работает, кроме pic12f629/675. Может всё-таки здесь найдется гений работы с чужим кодом?

  • #109

Задам риторический вопрос: у вас сие устройство не стирает калибровочную константу pic12f629? Потому что у меня при отладке серверного кода (на ардуине) оно не желает даже переходить на ветку, ответственную за обработку именно pic12f629/675, в которой КК снова должна записываться.

Читайте так же:
Три провода с потолка как повесить люстру

Вот тут я собрал весь клиентский и серверный код, и последнюю версию платы в kicad. Исправлена куча ошибок оригинальных авторов. Всё работает, кроме pic12f629/675. Может всё-таки здесь найдется гений работы с чужим кодом?

Не стирает. Подключился, прогнал erase, ребутнул ардуино, запустил ArdPicProgHost.exe заново, выполнил read — константа на месте (такая-же как и была — 342C, остальное 3FFF).

Я уверенно говорю "ошибка в схеме" т.к. в оригинале прилагается прошивка ардуины + схема, и они друг другу не соотвутствуют. Качество кода причем очень хорошее (лучше 99% кода, который можно найти в интернете) и я склонен доверять коду.

Конденсатор на 1000мкф в цепи с нагрузкой через 10ком — как по мне перебор.

  • #110
  • #111

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

использовал host.rar из оригинального поста в этой теме, скачивал его вчера.

Мой тестер показывал на 5в линии (и на HIGH выходах ардуины) 4.6 вольта, если что. Тестеру я склолнен верить (более менее), ориентируясь на напряжение на голом юсб — 4.99в.

  • #112
  • #113

configSave);" — случайно удалена или вы забыли об этом? я не говорю что она там должна быть, я не вникал, но все таки.

  • #114

@Nnm, да, это может влиять. Это я мог удалить только случайно, спасибо за помощь.

upd: удаленная строчка не влияет – константа все равно затирается. Буду анализировать отличия вашей реализации.

  • #115

@Eig, я запустил вашу версию .ino на своем хосте и она тоже не затирает константу, пару нюансов:
1. я вернул пропавшую строчку упомянутую выше
2. код не собирался пока я не переместил matchString повыше (в моей версии таких проблем небыло, но там вместо typedef у меня using и нету пометки PROGMEM, которая по идее не нужна для не-указателей) судя по всему у вас как минимум другая версия Arduino IDE (у меня 1.8.15) и возможно это влияет.
Пробовал собрать ваш хост (нужно возиться с VBA — не хочу), запускал дебажный exe-шник из репы — он не отображает содержание FLASH, забил.

А вот вам пруф на ошибку в схеме:
prog-enter-diagram.png
источник: http://ww1.microchip.com/downloads/en/DeviceDoc/41191D.pdf
ссылка на источник взята из комментариев в коде.

Пробуйте мою схему. Кстати я для полноты померял ток на всякий случай — PIC629 накидывает максимум 5ма (при erase и write) — за резистор я бы не переживал (для dip8 и dip14 во всяком случае).

Моя гипотеза такова: вы попадаете в режим программирования незадокументированным способом по какому-то стечению обстоятельств и PIC не полностью сбрасывается/инициализируется, это потенциально может зависеть и от ревизии/партии самих чипов. Насколько я понимаю +5в у вас в процессе работы с PIC-а никогда не пропадает.

ТехнарьКто

  • #116

PS Если баг стабильно работает, то это уже фича

  • #117

@Nnm, Моя версия Arduino 1.9.0-beta. У меня все собирается.
Проверил ваш вариант схемы, добавив резистор 47 Ом между PIN_VDD и PIC_VDD. И разорвав питание PIC_VDD от 5 Вольт. При таком питании не происходит инициализации PIC. Вернее, на четверть секунды что-то появляется в интерфейсе, и затем все поля становятся пустыми. Похоже, не хватает питания. Возможно это связано с наличием дополнительных элементов в цепи и суммарной длиной дорожек цепи, так как у меня там два слота для разных типов PIC. Попробую кинуть проводок напрямую и еще сильнее порезать схему.

Так и есть. И, как выясняется, это не мешает программировать, например, pic16f628a. А вот PIC12F629/675 требуют перезаписи калибровочной константы, что требует программного управления питанием (5V). И именно поэтому в оригинале питание организовано через пин D2.

UPD: Получилось при прямом подключении D2 и PIC_VDD через резистор 47 Ом – константа перезаписывается. Похоже, мешал электролитический конденсатор.

@ТехнарьКто, В начале темы приведен ПРОВЕРЕННО НЕРАБОТАЮЩИЙ на недокументированных возможностях программатор из Ардуины. По факту пришлось капитально править код для PIC16F, чтобы оно стало юзерфрендли, а PIC12F работает в таком режиме, но затирает калибровочную константу, ЧТО ПРИМЕНЕНИЕ ТАКОЙ СХЕМЫ СВОДИТ НА НЕТ. По сути вы устроили флейм на 5 страниц. Никакой фичи в этом нет, если она практически не применима.

UPD2: Внес изменения в репу. Добавил скомпилированный hex ProgramPIC. Теперь все питается через D2. Тумблером выбирается PIC16F или PIC12F, иначе нет никакой гарантии, что это будет работать. Электролит убрал, потому что питание теперь через Arduino.

  • #118

@Eig как это у вас так стоял конденсатор? он нивелировал управление пином VDD? если так, то понятно.
Я уже собрался писать разные предположения но раз у вас все заработало то хорошо, поздравляю и все же я оставлю некоторые комментарии — вдруг они окажутся полезными.

Читайте так же:
От люстры идет только 2 провода

1. по питанию для pic16 — не могу ничего утверждать, я изучал конкретно pic12f629/675 и сосредоточился на нем (у меня другого и нету), если это при высоковольтном программировании — это ок. Я в первую очередь при поиске ошибки исходил из того, что в режим программирования должно быть невозможно попасть случайно (случайной комбинацией на пинах в процессе работы готового устройства), высоковольтный детектор на MCLR является разумной защитой, порядок включения питания — дополнением, но насчет попадания туда при включенном 5в питании — зависит от деталей реализации микросхемы и потенциально от ее конфига.

2. "не хватает питания" — насколько я понял, питания "хватало" для более крупной микросхемы — pic16, но нехватало для pic12 — это очень странно. Но когда есть сомнения по питанию — лучше конкретно проверить, у меня на ардуино нано по usb входу стоит диод шоттки который кушает около 0.25 вольта, недавно я столкнулся с ситуацией когда USB устройство стало работать "частично" при недостаточном питании от usb (именно стало и именно частично — я думал все сдохло, но внезапно стало работать нормально при подключении без usb хаба который тоже кушал около 0.25 вольта, при чем ранее при абсолютно тех же условиях устройство работало полноценно, видимо что-то деградировало, но затрудняюсь определить что).

3. длина дорожек — при замере мой pic 629 кушал до 5ма, что эквивалентно 1ком на 5 вольтах, очень сомневаюсь что реалистично развести такие длинные дорожки, чтобы они имели весомое сопротивление и поделили напряжение до "недостаточного". Касательно паразитных емкостей — тоже не верю в такие предположения, там частоты до 1мгц, что весьма не много (представьте себе, что происходит в материнских платах современных компьютеров на их частотах). Еще по длине — посмотрите снова на лапшу из проводов в первом посте — и все вроде как работает.

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

Программирование микроконтроллеров + фирменные средства

Существует солидная группа фирменных программаторов для микроконтроллеров семейства PIC. Наиболее известные аппаратные средства:

  • REAL ICE

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

На основе информации: Uolsinectis

КРАТКИЙ БРИФИНГ

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

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

Выбор микроконтроллера обычно осуществляется под необходимые задачи. Для изучения хорошо подойдет популярный МК с минимальным набором периферии: 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.

    выбор МК и его конфигурация

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

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

  • 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 (прошивки) от считывания программатором.
Читайте так же:
Как повесить люстру как подключать провода

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

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

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

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

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


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

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

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

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

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

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

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

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

Кнопка сброса

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

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

Прошивка

Присваиваем нашему светодиоду и кнопке переменные:

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

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

Задержка считается просто:
частота генератора у нас 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

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

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

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

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

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

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

Program All, затем Verify All

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

Результат

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


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

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

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

Проверка состояния вывода МК с помощью PINx

Чтобы в любой момент времени знать, какой потенциал присутствует на выводе, следует проверить (считать) соответствующий бит в регистре PIN.

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

Читайте так же:
Как снять люстру чтобы не ударило током

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

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

Один контакт ключа соединим с землей (общим проводом), а второй – с выводом микроконтроллера. Когда ключ разомкнут, – вывод находится под высоким потенциалом (+ 5 В), подтянутый внутренним резистором МК. При этом соответствующий бит регистра PIN будет установлен в единицу.

При нажатии на кнопку данный вывод соединится с общим проводом (“минусом”) и на нем возникнет низкий потенциал. А бит регистра PIN автоматически установится в ноль.

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

Частотомер на PIC16F628А своими руками

Частотомер на PIC16F628 своими рукамиОдним из приборов-помощников радиолюбителя должен быть частотомер. С его помощью легко обнаружить неисправность генератора, измерить и подстроить частоту. Генераторы очень часто встречаются в схемах. Это приемники и передатчики, часы и частотомеры, металлоискатели и различные автоматы световых эффектов…

Особенно удобно пользоваться частотомером для подстройки частоты, например при перестройки радиостанций, приёмников или настройки металлоискателя.

Один из таких несложных наборов я недорого приобрёл на сайте китайского магазина здесь: GEARBEST.com

Частотомер на PIC16F628 своими руками

Набор содержит:

  • 1 x PCB board (печатная плата);
  • 1 x микроконтроллер PIC16F628A;
  • 9 x 1 кОм резистор;
  • 2 x 10 кОм резистор;
  • 1 x 100 кОм резистор;
  • 4 x диоды;
  • 3 x транзисторы S9014, 7550, S9018;
  • 4 x конденсаторы;
  • 1 x переменный конденсатор;
  • 1 x кнопка;
  • 1 x DC разъём;
  • 1 x 20МГц кварц;
  • 5 x цифровые индикаторы.

Описание частотомера

  • Диапазон измеряемых частот: от 1 Гц до 50 МГц;
  • Позволяет измерять частоты кварцевых резонаторов;
  • Точность разрешение 5 (например 0,0050 кГц; 4,5765 МГц; 11,059 МГц);
  • Автоматическое переключение диапазонов измерения частоты;
  • Режим энергосбережения (если нет изменения показаний частоты — автоматически выключается дисплей и на короткое время включается;
  • Для питания Вы можете использовать интерфейс USB или внешний источник питания от 5 до 9 В;
  • Потребляемый ток в режиме ожидания — 11 мА

Схема содержит небольшое количество элементов. Установка проста — все компоненты впаиваются согласно надписям на печатной плате.

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

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

Частотомер на PIC16F628 своими руками

Напряжение на выводах микроконтроллера

  1. 4,0
  2. 4,0
  3. 0,3
  4. 5,0
  5. 0,98
  6. 0,98
  7. 0,98
  8. 0,98
  9. 0,98
  10. 0,98
  11. 5
  12. 1,26
  13. 2,13
  14. 4
  15. 4,12

Генератор для проверки кварцев

Частотомер на PIC16F628 своими руками

Приступаем к сборке

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

Частотомер на PIC16F628 своими руками

Ну и вид на весь набор в полностью разложенном виде.

Частотомер на PIC16F628 своими руками

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

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

Конденсаторы маркируются также как и резисторы.
Первые две цифры — число, третья цифра — количество нулей после числа.
Получившийся результат равен емкости в пикофарадах.
Но на этой плате есть конденсаторы, не попадающие под эту маркировку, это номиналы 1, 3 и 22 пФ.
Они маркируются просто указанием емкости так как емкость меньше 100 пФ, т.е. меньше трехзначного числа.

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

Частотомер на PIC16F628 своими руками

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

Частотомер на PIC16F628 своими руками

Немного рассмотрим такой компонент, как — подстроечный конденсатор. Это конденсатор, ёмкость которого можно изменять в небольших пределах (обычно 10-50пФ). Это элемент тоже неполярный, но иногда имеет значение как его впаивать. Конденсатор содержит шлиц под отвертку (типа головки маленького винтика), который имеет электрическое соединение с одним из выводов. Чтобы было меньше влияния отвертки на параметры цепи, надо впаивать его так, чтобы вывод соединенный со шлицом, соединялся с общей шиной платы.

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

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

Читайте так же:
Как подключить люстру с 3 проводами один выключатель

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

Длительность пайки каждой ножки не должна превышать 2 сек! Между пайками ножек должно пройти не менее 3 сек на остывание.

Частотомер на PIC16F628 своими руками

Ну вот собственно и всё!

Частотомер на PIC16F628 своими руками

Теперь осталось смыть остатки канифоли щёткой со спиртом.

Частотомер на PIC16F628 своими руками

Осталось правильно вставить микросхему в свою «кроватку» и подключить питание к схеме.

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

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

При подключении питания и отсутствия сигнала на входе высвечивается .

Частотомер на PIC16F628 своими руками

Первым делом нашёл кучу кварцев и начал проверять. Следует отметить, что частота кварца, например 32,768 кГц не может быть измерена, т.к. измерение ограничивается в диапазоне от 1 МГц.

Можно измерить, например 48 МГц, но следует иметь ввиду, что будет измерены гармонические колебания кварцевого генератора. Так 48 МГц будет измерена основная частота 16 МГц.

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

Частотомер на PIC16F628 своими руками

Режим программирования частотомера позволяет вычесть четыре основные запрограммированные ПЧ частоты 455 кГц; 3,9990 МГц; 4,1943 МГц; 4,4336 МГц; 10,700 Гц, а также любую собственную частоту.

Таблица алгоритма програмирования

Частотомер на PIC16F628 своими руками

Чтобы войти в режим программирования (Prog) нужно нажать и удерживать кнопку в течении 1-2 сек.

Затем нажимаем кнопку и поочередно пролистываем меню:

«Quit» — «Выход» : прерывает режим программирования, ничего не сохраняя.

«Add» — «Добавление» : сохранение измеренной частоты и в дальнейшем эта частота будет складываться с измеряемыми частотами.

«Sub» — «Вычитание» : сохранение измеренной частоты и в дальнейшем она будет вычитаться с измеряемыми частотами.

«Zero«- «Ноль» — обнуляет все ранее запрограммированные значения.

«table» — «Таблица«: в этой таблице можно выбрать основные запрограммированные частоты 455 кГц; 3,9990 МГц; 4,1943 МГц; 4,4336 МГц; 10,700 Гц. После выбора записи (длительное нажатие), вы вернетесь в «Главное меню» и выберите пункт «Add» — «добавить» или «Sub» — «убавить«.

«PSave» / «NoPSV«: включает / отключает режим энергосбережения. Дисплей отключается если нет изменения частоты некоторое время.

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

Интересный обучающий конструктор. Собрать частотомер под силу даже начинающему радиолюбителю.

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

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

Доработка частотомера

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

Можно спаять один из предложенных ниже.

Частотомер на PIC16F628 своими руками

Сопротивление R6 на верхней и R9 на нижней схеме подбирается в зависимости от напряжения питания и устанавливается на его левом выводе 5 В. При питании 5 В сопротивление можно не ставить.

Частотомер на PIC16F628 своими руками

… или простой, на одном транзисторе:

Номиналы сопротивлений указаны при питании 5В. Если у Вас питание усилителя другим напряжением, то подберите номинал R2,3 чтобы на коллекторе транзистора было половина питания.

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

Частотомер на PIC16F628 своими руками

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

Частотомер на PIC16F628 своими руками Частотомер на PIC16F628 своими руками Частотомер на PIC16F628 своими руками

Надеюсь, что обзор данного конструктора-частотомера был интересен и полезен. Удачи!

Как прошивать микроконтроллер? С чего начать изучение?

Официальный программатор для семейств PIC – это PICkit V3, является наиболее распространенным. Программный код загружается в чип с помощью ПО, которое есть на диске, он идёт в комплекте с программатором. IDE имеет название MPlab. Является официальной средой разработки от производителя, между прочим, бесплатной. Для изучения устройств есть отличная книга на русском языке «Pic-микроконтроллеры. Полное руководство» автор её Сид Катцен. Кроме этой книги вы найдете огромное количество видео-уроков и текстовых материалов, которые вам помогут.

Применение микроконтроллеров PIC весьма широко, многие радиолюбители собирают металлоискатели и счетчики Гейгера на этих МК.

голоса
Рейтинг статьи
Ссылка на основную публикацию
Adblock
detector