На этот раз я представляю проект часов на газоразрядных индикаторах и микроконтроллере PIC18F2550. Я выбрал этот проект, чтобы получить больше опыта в проектировании и отладке оборудования. Так же хотел попробовать реализовать импульсный источник питания(DC-DC), поэтому в этих часах использовал два DC-DC преобразователя. Один для формирования высокого напряжения 170 Вольт, собранный на MAX1771 и используемый для питания индикаторов ИН-12А, заполненными неоном, а второй собранный на TL2575, используется для питания остальных компонентов схемы напряжением 5 Вольт. В основе устройства микроконтроллер PIC18F2550. Основная коммуникационная шина в схеме - I2C, ее используют DS1307 - микросхема часов реального времени, а также два расширителя ввода/вывода MCP23017, которые управляют высоковольтными дешифраторами К155ИД1(аналог 74141). PIC также содержит устройство USB HID, используемое для связи с компьютером и установки времени/параметров.

Программное обеспечение для микроконтроллера

Я хотел добавить некоторые дополнительные функции к часам, и мне нужен был способ их установки. Поскольку у меня уже была поддержка USB в предыдущем проекте, я решил использовать тот же микроконтроллер (PIC18F2550) и для этого устройства. Но его использование накладывает некоторые ограничения. Я знал, что хочу добавить RGB-светодиоды в проект и иметь возможность регулировать яркость каждого цвета с помощью ШИМ. К сожалению, выбранный мной контроллер имеет только два аппаратных модуля PWM, и один уже используется для управления барграфом ИН-13. Поскольку используется высокая тактовая частота (Fosc = 48 МГц), я использовал второй модуль таймера для программной реализации ШИМ и вызывал ее из обработчика прерываний. Чтобы установить яркость отдельного цвета, установите предел яркости цвета от 0 до 255. Прерывание вызовет функцию достаточно быстро, поэтому светодиоды плавно тускнеют, не мерцая.

void Nixie_SoftwarePWM(void)
{
   static unsigned char Tim0Ctr = 0;

   // Timer will increment from 0 -> 255 then roll over.
   Tim0Ctr++;

   // +---------------------------------------------------+
   // | Software PWM. Counter will run from 0 to 255. Set |
   // | the color limits within the same range where      |
   // | 0 = off, 255 = Always On.                         |
   // +---------------------------------------------------+

   // Red LED control
   if (Tim0Ctr < RedLim)
      NIXIE_RED_LED_ON();
   else
      NIXIE_RED_LED_OFF();

   // Green LED control
   if (Tim0Ctr < GreenLim)
      NIXIE_GREEN_LED_ON();
   else
      NIXIE_GREEN_LED_OFF();

   // Blue LED control
   if (Tim0Ctr < BlueLim)
      NIXIE_BLUE_LED_ON();
   else
      NIXIE_BLUE_LED_OFF();
}

Схема устройства

Часы на PIC18F2550 и газоразрядных индикаторах ИН -12А - схема

Печатная плата

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

Фото готового устройства

Скриншот приложения для ПК

Видео работы устройства


Файлы к статье "Часы на PIC18F2550 и газоразрядных индикаторах ИН-12А"
Описание:

Исходный код, файл прошивки микроконтроллера, приложение для ПК, схема

Размер файла: 815.98 KB Количество загрузок: 254 Скачать