Радиолоцман Электроника en
расширенный поиск +
  

21-08-2018

Измеритель индуктивности на микроконтроллере PIC16F1936

Microchip » PIC16F1936, Atmega328

Журнал РАДИОЛОЦМАН, май 2018

Lukas Fässler

soldernerd.com

На портале РадиоЛоцман публиковалась статья [1] с описанием простой конструкции цифрового прибора для измерения индуктивности, в основе которого была плата Arduino Uno. Этот вариант прибора, по отзывам пользователей, хорошо зарекомендовал себя в работе, но для повседневного использования, возможно, вы хотели бы иметь, нечто похожее на мультиметр. Поэтому было решено разработать новую версию прибора, которая питается от 9-вольтовой батареи и помещена в пластиковый корпус, напечатанный на 3D принтере (Рисунок 1).

Измеритель индуктивности на микроконтроллере PIC16F1936
Рисунок 1. Измеритель индуктивности на микроконтроллере PIC.

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

Прибор выполнен на микроконтроллере (МК) Microchip PIC16F1936. Этот выбор не связан с какими-то особенностями данной модели, просто такие МК остались у автора от прошлых проектов. Была даже мысль использовать ATmega328 – тот самый МК, который установлен на плате Arduino Uno. Но для измерения частоты и управления ЖК-индикатором ATmega328 слишком избыточен. Кроме того, он несколько дороже микроконтроллера PIC. Поэтому, несмотря на то, что переход к совершенно другому МК означает написание программного кода с нуля, было принято решение использовать PIC16F1936.

Принципиальная схема измерителя индуктивности изображена на Рисунке 2. Как видите, входная часть прибора (LC-генератор, преобразователь синусоидального сигнала в прямоугольный, делитель частоты), а также схема управления, включая цепь подавления дребезга контактов кнопки, идентичны версии измерителя на Arduino, поэтому для понимания работы схемы и ее характеристик рекомендуется обратиться к статье [1]. Что касается питания, то в схему варианта на МК PIC введен дополнительный регулятор напряжения 5 В серии LM2931-5.0. Выходной сигнал SLOW_FREQ с делителя частоты поступает для обработки непосредственно в микроконтроллер (порт RB0).

Измеритель индуктивности на микроконтроллере PIC16F1936
Рисунок 2. Принципиальная схема автономного измерителя индуктивности на
микроконтроллере PIC16F1936.

Теперь о ЖК-индикаторе. В данном случае применен Midas MCCOG21605B6W-BNMLW – достаточно компактный символьный ЖК-индикатор, синий с белой подсветкой, имеющий две строки по 16 символов. Он управляется по интерфейсу I2C (порты МК RC3, RC4), но еще дополнительно используется вход сброса RST (порт RC2).

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

  • Используется совершенно другой МК: PIC16F1936 вместо Atmega328.
  • Код написан на Си в компиляторе mikroC для микроконтроллеров PIC компании mikroElektronika, а не в стиле Arduino Си++.
  • Дисплей, используемый в этой версии прибора, имеет интерфейс I2C, а не обычный параллельный интерфейс контроллера Hitachi.

При написании кода, как и ожидалось, много времени ушло на реализацию управления ЖК индикатором, а точнее, его контроллером. Похоже, что интерфейс I2C реализован в нем как надстройка для основного Hitachi-совместимого контроллера. Сама по себе такая концепция была бы неплоха, если бы не одно «но» – техническое описание дисплея. И если бы не предыдущий опыт работы с другими графическими дисплеями Midas, совместимыми с Hitachi, автору пришлось бы отказаться от его использования в устройстве. Вот примеры недостатков технического описания, из-за которых возникли проблемы при написании части кода для управления ЖК-индикатором:

  • В документе нет нумерации страниц. Да, это незначительный недостаток, но вы когда-нибудь видели техническое описание с непронумерованными страницами?
  • Имеется вход сброса. Аналогично многим сигналам сброса различных контроллеров, активный уровень сигнала низкий. В техническом описании об этом не сказано ничего.
  • Очень подробно рассмотрены некоторые функции контроллера Hitachi, но ни слова о том, что эти функции недоступны через интерфейс I2C.
  • Как и всем дисплеями с контроллерами, совместимыми с Hitachi, ЖК-индикатору Midas требуется время на запуск и инициализацию. В противном случае вы просто не сможете с ним работать. Но прочитать об этом, опять же, вы не сможете.

Но, в конце концов, все заработало прекрасно. Для этого измерителя у МК более чем достаточно ОЗУ, Flash-памяти и вычислительной мощности, поэтому не стоит ожидать, что код будет каким-либо образом оптимизирован. Этого просто не нужно. Бóльшую часть математических операций он выполняет с плавающей точкой, что «раздувает» размер скомпилированного кода и очень тормозит его выполнение, но для нашей задачи этого вполне хватает и оставляет неиспользуемым порядка половины доступного объема Flash и ОЗУ.

а) Измеритель индуктивности на микроконтроллере PIC16F1936
б) Измеритель индуктивности на микроконтроллере PIC16F1936
Рисунок 3. Корпус измерителя индуктивности.

Корпус прибора был спроектирован в среде FreeCAD (Рисунок 3). Это, как следует из названия, бесплатный инструмент с отрытым кодом, простой и понятный в изучении.

Измеритель индуктивности на микроконтроллере PIC16F1936
Рисунок 4. Внешний вид печатной платы измерителя индуктивности
с установленными компонентами.

Двусторонняя печатная плата проектировалась в Eagle под микроконтроллер в корпусе SOIC (Рисунок 4). Проектные файлы также доступны для загрузки.

Ссылки

Загрузки

Материалы по теме

Перевод: Vadim по заказу РадиоЛоцман

На английском языке: Stand-alone Inductance Meter on PIC16F1936

Цена PIC16F1936PIC16F1936 на РадиоЛоцман.Цены — от 46,20 до 330 руб.
40 предложений от 30 поставщиков
Исполнение: SOIC-28L. SOIC 28/I°/14KB FLASH, 512B RAM, 256B EEPROM, LCD, 1.8-5.5V Микроконтроллер широкого назначения PIC16F1936-I/SO. Описание в формате PDF
ПоставщикПроизводительНаименованиеЦена
AliExpressCS8615C TDA7419 PL2303TA DRV8811PWPR DRV8811 STC12C5608AD CH452A PIC16F1933-I/так PCA9535PW PIC16F1936-I/SS PIC16F1938-I/SS46 руб.
ЭлитанMicrochipPIC16F1936-I/SO62 руб.
ЭлрусMicrochipPIC16F1936-I/SOот 148 руб.
ТаймЧипсMicrochipPIC16F1936-E/MVпо запросу
Для комментирования материалов с сайта и получения полного доступа к нашему форуму Вам необходимо зарегистрироваться.
Имя
Рекомендуемые публикации по теме:
Форум  »
Измеритель индуктивности
Форум  »
Измеритель емкости и индуктивности
Схемы  »
Измеритель емкости и индуктивности
Форум  »
Обсуждение: Измеритель емкости и индуктивности
Форум  »
Обсуждение: Измеритель индуктивности на Arduino

При перепечатке материалов с сайта прямая ссылка на РадиоЛоцман обязательна.

Приглашаем авторов статей и переводов к публикации материалов на страницах сайта.

CR2032PH — батарейка повышенной емкости от Fanso
Пассивные компоненты для передовых разработок
Срезы ↓
Новая Инженерная Школа
Новая Инженерная Школа
Курсы и семинары для инженеров, технологов, разработчиков и конструкторов предприятий приборостроения.
Рейтинг@Mail.ru