Как сделать вентилятор с временным вентилятором

Как сделать вентилятор с временным вентилятором
Как сделать вентилятор с временным вентилятором
Anonim

Как создать вентилятор с временным вентилятором

Нужно проветривать комнату? В этой статье вы узнаете, как я сделал вентилятор с синхронизацией по времени с помощью реле, чтобы выпустить влажный воздух в каюте моей лодки. Он управляется с помощью PIC16F628A и имеет ЖК-дисплей.

Пусть поток воздуха

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

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

Image
Image

Есть по крайней мере два способа справиться с этим. Один из способов - мыть и чистить в сжатые сроки. Теперь, как весело? Будучи выродка, которым я являюсь, вместо этого я кое-что наделал: вентилятор, который циркулирует и издает влажный воздух на фиксированной, временной основе.

Проектирование системы

Я хочу, чтобы система выполняла следующие действия:

  • Распространение воздуха
  • Автоматическое включение / выключение в постоянном интервале
  • Запуск от аккумуляторной батареи автомобиля
  • Содержите зарядное устройство для зарядки аккумулятора
  • Содержит дисплей, отображающий время и другую информацию

Чтобы создать такую систему, мне понадобятся следующие части:

  • Вентилятор 12v
  • Микроконтроллер
  • 12-вольтная батарея и зарядное устройство на 12 В
  • 2 реле, что-то отслеживать время и винтовые клеммы.
  • Другие части, согласно приведенному ниже списку

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

Установка будет работать от автомобильной батареи. Мой поклонник оценен 12v 4.5A. Чтобы аккумулятор всегда заряжался сверху, я подключу его к зарядному устройству. Чтобы зарядное устройство не перегружалось, когда вентилятор работает, я собираюсь заставить систему «отключить» зарядное устройство во время работы вентилятора. В одном реле будет работать вентилятор, а в другом реле будет работать зарядное устройство. Когда вентилятор работает, батарея не заряжается, а когда вентилятор не работает, аккумулятор заряжается.

Чтобы отслеживать время, я использую модуль GPS. В этом проекте я буду использовать модуль Skylab SKM53 (PDF). Это устройство отправляет несколько предложений NMEA по UART каждую секунду. В техническом паспорте рекомендуется использовать резистор подтягивания 10K как на RXD, так и на TXD. Это увеличит стабильность последовательных данных. Я этого не делал, и я не заметил никакой нестабильности. Мне может повезти. На той же странице в техническом описании указано, что следует добавить подходящие разделители. Электролиз 10 мкФ и керамика толщиной 0, 1 мкФ. Когда я макетировал схему, я использовал только керамику 0.1uF.

Image
Image

Снимок экрана из таблицы Skylab (PDF)

Я использую предложение «RMC», чтобы получить время. Примером предложения RMC является следующее:

$ GPRMC, 075747.000, A, +2233, 89990 N, 11405, 3368, Е, 3.9, 357.8, 260210,,, А * 6A

Первые числа после $ GPRMC - это время. В этом примере, время 07:57:47. Нам будет нужна эта информация.

Image
Image

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

Image
Image

«A» указывает действительное исправление, а «V» указывает на неверное исправление. В моем программном обеспечении я проверяю правильное исправление. Эти буквы чувствительны к регистру.

Чтобы структурировать проекты, мне нравится создавать блок-диаграмму. Таким образом, я «визуализирую» то, что я хочу делать.

Image
Image

На приведенной выше блок-схеме я разбил все на свой блок. Это также полезно, если мне нужно устранить схему или схему.

аппаратные средства

Принципиальная схема основана на блок-схеме. Я воспроизвел все блоки на блок-диаграмме, чтобы отразить компоненты и их соединения в схеме.

Image
Image

В техническом описании для регулятора LM7805 указано, что для стандартного приложения вам потребуется всего 0, 33 мкФ на входном штыре и 0, 1 мкФ на выходном выводе. Итак, почему я использую разные ценные колпачки и некоторые дополнительные? Я использую их для сглаживания ввода и вывода. Это может быть слишком много, но у меня очень хороший опыт в этой конфигурации регулятора. Если вы не используете конденсаторы, регулятор может начать колебаться. Регулятор LM7805 - это старый линейный регулятор. Почему бы не использовать современный регулятор переключения? Коммутационные регуляторы намного эффективнее линейных регуляторов. Это то, что я укладывал.

Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image

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

Я импортировал список деталей из BOM. ULP в OpenOffice Calc и удалил некоторые ненужные столбцы:

Image
Image

Не показывать в схеме мои предохранители. У меня есть номинальный предохранитель на 12 В 8 А на положительном проводе вентиляторов, и у меня на зарядном устройстве положительный провод.

Image
Image

Программного обеспечения

Вы можете загрузить C-source из ссылки для загрузки в конце этой статьи. Код хорошо прокомментирован, но я сделаю некоторые дополнительные моменты здесь.

Когда я делаю программу, я следую определенной структуре. На этой диаграмме показана структура:

Image
Image

Код начинается с включения необходимых библиотек, за которыми следуют биты конфигурации. В качестве хорошей практики программирования считается включение битов конфигурации в исходный код. Тогда будет намного легче увидеть, что вы сделали, а другим - помочь устранить неполадки. Кроме того, если вы заработаете проект через несколько месяцев, вы сразу увидите бит.

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

Следующее - переменные: все переменные объявляются здесь.

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

Далее идут функции. Теперь очень важно начать комментирование. Обычно у меня есть несколько строк над каждой функцией, которые рассказывают, что делает функция вообще. Я также комментирую строки кода внутри функций.

Одним из примеров является функция, которая инициализирует порт UART в этом проекте:


// FUNCTION TO INIT THE UART PORT void uart_init(void) { TXSTAbits. BRGH = 0; // high baud selection bit, 1=high, 0=low TXSTAbits. SYNC = 0; // USART mode selection bit, 1=sync mode, 0=async mode TXSTAbits. TX9 = 0; // 9-bit selection bit, 1=9-bit transmission, 0=8-bit transmission RCSTAbits. CREN = 1; // Continous receive enable bit, 1=enable continous receive /* Calculate the SPBRG with 16MHz crystal 16MHz 16000000 /9600 = 1666.6666 1666.6666 / 64 = 26.0416 26.0416 - 1= 25.0416 25.041 = 25 */ SPBRG = 25; // 9600-n-8-1 PIE1bits. RCIE = 1; // USART receive interrupt enable bit, 1=enable RCSTAbits. SPEN = 1; // Serial port enable bit, 1=serial port enable TXSTAbits. TXEN = 1; // transmit enable bit, 1=transmit eanble return; }

Вы увидите первую строку комментария, объясняющую, что делает функция. Затем все строки кода прокомментированы, поэтому я знаю, что происходит.

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

Скачать код

Вывод

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

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

Зачем использовать GPS-модуль? Я мог бы использовать микроконтроллер как простой таймер. Затем мне пришлось сделать какой-то интерфейс, чтобы установить время. Или я был бы счастлив, если бы он работал без учета реального времени. Он будет работать в течение 5 минут каждый час. С помощью GPS я могу запрограммировать его на пять минут на каждый час.

Картина

Image
Image

Попробуйте этот проект сами! Получить спецификацию.