Как сделать вентилятор с синхронизацией по времени
Нужно проветрить комнату? В этой статье вы узнаете, как я сделал вентилятор с реле и синхронизацией по GPS, чтобы отводить влажный воздух в каюту моей лодки. Он управляется PIC16F628A и имеет ЖК-дисплей.
Нужно проветрить комнату? В этой статье вы узнаете, как я сделал вентилятор с реле и синхронизацией по GPS, чтобы отводить влажный воздух в каюту моей лодки. Он управляется PIC16F628A и имеет ЖК-дисплей.
Пусть воздух течет
В небольших помещениях, где вентиляция практически отсутствует, воздух обычно остается неподвижным. Если воздух немного влажный, в определенных местах наверняка есть плесень и грибок.
Плесень и грибки встречаются в природе и необходимы для разрушения листьев, древесины и других растительных остатков. Поскольку у меня в лодке много дерева, наверняка там будет плесень и грибок. Я не могу помешать им войти, но я могу принять некоторые меры, чтобы попытаться сохранить окружающую среду внутри моей лодки как можно более враждебной для плесени и грибков.
Есть как минимум два способа справиться с этим. Один из способов - мыть и чистить по жесткому графику. Как же это весело? Как компьютерщик, я придумал кое-что вместо этого:вентилятор, который циркулирует и выпускает влажный воздух на фиксированной и временной основе.
Проектирование системы
Я хочу, чтобы система выполняла следующие действия:
- Циркулируйте воздух
- Автоматически включать / выключать через постоянный интервал.
- Работают от автомобильного аккумулятора.
- Содержат зарядное устройство для зарядки аккумулятора.
- Содержать дисплей, показывающий время и другую информацию.
Для изготовления такой системы мне понадобятся следующие детали:
- Вентилятор на 12 В
- микроконтроллер
- Аккумулятор на 12 В и зарядное устройство на 12 В.
- 2 реле, что-то для отслеживания времени и винтовые клеммы.
- Другие детали в соответствии со списком деталей ниже
Я хочу, чтобы вентилятор работал на пять минут каждый час. Это будет жестко закодировано в программном обеспечении.
Установка будет работать от автомобильного аккумулятора. Мой вентилятор рассчитан на 12 В, 4,5 А. Чтобы аккумулятор всегда был заряжен до предела, я подключу его к зарядному устройству. Чтобы зарядное устройство не было перегружено при работающем вентиляторе, я собираюсь заставить систему «отключать» зарядное устройство при работающем вентиляторе. Одно реле будет управлять вентилятором, а другое реле - зарядным устройством. Когда вентилятор работает, аккумулятор не заряжается, а когда вентилятор не работает, аккумулятор заряжен.
Чтобы отслеживать время, я использую модуль GPS. В этом проекте я буду использовать модуль Skylab SKM53-series (PDF). Это устройство каждую секунду отправляет несколько предложений NMEA через UART. В таблице данных рекомендуется использовать подтягивающий резистор 10 кОм как на RXD, так и на TXD. Это повысит стабильность последовательных данных. Я этого не делал и нестабильности не заметил. Может мне повезет. На той же странице в техническом описании сказано, что необходимо добавить соответствующие развязывающие конденсаторы. Электролитический 10 мкФ и керамический 0,1 мкФ. Когда я собирал схему, я использовал только керамику 0,1 мкФ.
Снимок экрана из таблицы данных Skylab (PDF).
Я использую предложение «RMC», чтобы узнать время. Пример предложения RMC следующий:
$ GPRMC, 075747.000, A, 2233.89990, N, 11405.3368, E, 3.9,357,8,260210 ,,, A * 6A
Первые числа после $ GPRMC - время. В этом примере время 07:57:47. Нам понадобится эта информация.
Следующее, что нам понадобится, это префикс, который сообщает нам, есть ли у модуля GPS действительное определение местоположения. В приведенном выше примере это заглавная буква A после трех нулей.
«A» указывает на действительное исправление, а «V» указывает на недопустимое исправление. В своем программном обеспечении я проверяю наличие действительного исправления. Эти буквы чувствительны к регистру.
Чтобы структурировать проекты, я люблю составлять блок-схему. Таким образом я «визуализирую» то, что хочу делать.
На приведенной выше блок-схеме я разбил все на отдельные блоки. Это также полезно, если мне нужно устранить неисправность схемы или схемы.
Аппаратное обеспечение
Принципиальная схема основана на блок-схеме. Я воспроизвел все блоки на блок-схеме, чтобы отразить компоненты и их соединения в схеме.
В таблице данных регулятора LM7805 указано, что для стандартного приложения вам понадобится всего 0,33 мкФ на входном контакте и 0,1 мкФ на выходном контакте. Так почему я использую разные ценные крышки и еще кое-что? Я использую их для сглаживания ввода и вывода. Это может быть слишком много, но у меня есть очень хороший опыт работы с этой конфигурацией регулятора. Если не использовать конденсаторы, регулятор может начать колебаться. Регулятор LM7805 - это старый линейный регулятор. Почему бы не использовать современный импульсный стабилизатор? Импульсные регуляторы намного эффективнее линейных регуляторов. Это то, что у меня было.
Я мог бы сэкономить на деталях и пространстве, используя всего одно реле. Я хочу два реле. Одна из причин использования двух реле заключается в том, что я хочу иметь небольшой промежуток времени между отключением зарядного устройства и запуском вентилятора.
Я импортировал список деталей из BOM.ULP в OpenOffice Calc и удалил некоторые ненужные столбцы:
На схеме не показаны мои предохранители. У меня есть предохранитель на 12 В, 8 А на плюсовом проводе вентилятора и такой же предохранитель на плюсовом проводе зарядного устройства.
Программное обеспечение
Вы можете скачать исходный код C по ссылке для скачивания в конце этой статьи. Код хорошо прокомментирован, но я сделаю здесь несколько дополнительных моментов.
Когда я составляю программу, я придерживаюсь определенной структуры. На этой схеме показана структура:
Код начинается с включения необходимых библиотек, за которыми следуют биты конфигурации. Включение конфигурационных битов в исходный код считается хорошей практикой программирования. Тогда будет намного легче увидеть, что вы сделали, и другим людям будет проще устранять неполадки. Кроме того, если вы начнете работать над проектом через несколько месяцев, вы сразу увидите его фрагменты.
Когда биты конфигурации в порядке, я перехожу к определениям. Здесь я определяю скорость кристалла, которую я подключил к схемам. Также определены порты микроконтроллера.
Следующее - переменные:здесь объявлены все переменные.
Пришло время прототипировать функции. Здесь я перечисляю все функции, которые использует программа. Некоторые программисты считают это пустой тратой времени, но мне это нравится, и я держу это. Это действительно необходимо, если вы структурируете программу с функциями после основного цикла программы.
Далее идут функции. Теперь действительно важно начать комментировать. Обычно у меня есть несколько строк над каждой функцией, которые рассказывают, что функция в целом делает. Я также комментирую строки кода внутри функций.
Одним из примеров является функция, которая инициализирует порт UART в этом проекте:
// ФУНКЦИЯ ИНИЦИИРОВАНИЯ ПОРТА UART void uart_init (недействительно) { TXSTAbits.BRGH =0; // бит выбора высокой скорости, 1 =высокий, 0 =низкий TXSTAbits.SYNC =0; // Бит выбора режима USART, 1 =режим синхронизации, 0 =асинхронный режим TXSTAbits.TX9 =0; // 9-битный бит выбора, 1 =9-битная передача, 0 =8-битная передача RCSTAbits.CREN =1; // Бит разрешения непрерывного приема, 1 =разрешить непрерывный прием / * Рассчитайте SPBRG с кристаллом 16 МГц 16 МГц 16000000/9600 =1666,6666 1666,6666 / 64 =26,0416 26,0416 - 1 =25,0416 25,041 =25 * / СПБРГ =25; // 9600-н-8-1 PIE1bits.RCIE =1; // Бит разрешения прерывания приема USART, 1 =разрешить RCSTAbits.SPEN =1; // Бит включения последовательного порта, 1 =включение последовательного порта TXSTAbits.TXEN =1; // бит разрешения передачи, 1 =передача возвращение; }
Вы увидите первую строку комментария, объясняющую, что делает функция. Затем все строки кода комментируются, поэтому я знаю, что происходит.
Когда все функции на месте, пора переходить к основной программе. Основная программа начинается с нескольких операторов, прежде чем входит в бесконечный цикл.
jc_lettheairflow.c.zip
Заключение
В этой статье я попытался сделать окружающую среду в моей лодке как можно более враждебной для плесени и грибка с помощью вентилятора, который дует и циркулирует воздух. Вентилятор подключен к патрубку, выходящему из кабины. Я использовал модуль GPS, чтобы отслеживать время, и я использовал два реле для включения / выключения вентилятора. Чтобы аккумулятор оставался заряженным, я использовал другое реле для включения и выключения зарядного устройства.
Я предоставляю читателю вывести эту схему на новый уровень и отобразить дату.
Зачем использовать модуль GPS? Я мог бы использовать микроконтроллер как простой таймер. Затем мне пришлось сделать какой-то интерфейс, чтобы установить время. Или я был бы счастлив, если бы он работал без учета реального времени. Он будет работать по 5 минут каждый час. С помощью GPS я могу программно настроить его на бег от пяти минут до каждого часа.
Изображение
Попробуйте сами! Получите спецификацию.
Промышленное оборудование
- Как сделать стекловолокно
- Как сделать прототип
- Как сделать ваши системы воздушных компрессоров более эффективными
- Как работают осушители воздуха?
- Как удалить загрязнения из сжатого воздуха
- Как заменить гидравлический шланг
- Как сделать металлический патрон для токарного станка
- Как это работает:тепло компрессионной сушилки
- Как это работает:ротационный зубчатый компрессор
- Примите решение о повторном подключении к вашей системе сжатого воздуха