Оглавление:

Aquarium Light PWM с Arduino: 3 шага
Aquarium Light PWM с Arduino: 3 шага

Видео: Aquarium Light PWM с Arduino: 3 шага

Видео: Aquarium Light PWM с Arduino: 3 шага
Видео: Amazing arduino project 2024, Ноябрь
Anonim
Aquarium Light PWM с Arduino
Aquarium Light PWM с Arduino

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

В основном светодиодное освещение питается от источника питания 12 В, а arduino контролирует интенсивность света, модулируя напряжение с помощью n-канального MOSFET (я использовал IRFS630). Arduino может питаться от того же источника питания, но я использовал отдельный USB-блок питания 5 В для arduino и запитал его через USB, а не через Vin.

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

Шаг 1: Необходимые детали

Необходимые детали
Необходимые детали
Необходимые детали
Необходимые детали
Необходимые детали
Необходимые детали
Необходимые детали
Необходимые детали

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

Итак, вот список деталей, которые я использовал:

1. Arduino nano - 1 шт.

2. Дисплей LCD 1602 - 1 шт.

3. Адаптер IIC / I2C для LCD 1602 - 1 шт.

4. DS1302 RTC - 1 шт. (С батареей CR2032)

5. кнопка с крышкой - 1 шт.

6. n-канальный MOSFET (я использовал IRFS630) - 1 шт.

7. Резистор 10 кОм - 1 шт.

8. Необязательно - некоторые люди говорят, что вы должны использовать резистор между выводом pwm arduino и затвором полевого МОП-транзистора для защиты aruino, другие говорят, что вы этого не сделаете, по крайней мере, не для приложений с низким энергопотреблением, я не использовал его, и он работает нормально, намного ниже 20 мА, потребляемого с вывода Arduino, но если вы хотите, вы можете использовать резистор 100 Ом.

ОБНОВЛЕНИЕ: После 2 месяцев тестирования я пришел к выводу, что 100 Ом просто необходимо! Ардуино продолжало блокироваться без него, случайным образом. Теперь работает отлично

Вам также понадобятся инструменты для пайки, чтобы припаять адаптер I2C к ЖК-дисплею, и если вы хотите сделать его, как я, на макетной плате или на печатной плате. Я использовал контакты заголовка для подключения arduino, потому что это дает мне свободу извлекать arduino, программировать его и снова устанавливать (и его легче заменить).

9. Дополнительно - макетная плата / печатная плата.

10. Дополнительно - контакты заголовка - по 15 и более контактов каждый - 2 шт. (Необходимы для подключения arduino nano к плате)

Вот и все, теперь приступим к работе!

Шаг 2. Собираем все вместе

Собираем вещи вместе
Собираем вещи вместе
Собираем вещи вместе
Собираем вещи вместе
Собираем вещи вместе
Собираем вещи вместе

Сначала вы должны припаять адаптер IIC / I2C к ЖК-дисплею 1602 (также работает с другими ЖК-дисплеями, такими как 2004). Для этого используйте предоставленную схему.

Теперь, если вы хотите использовать макетную плату, просто следуйте схеме и убедитесь, что только заземление является общим для источника питания светодиодов и источника питания Arduino, если вы используете PS 5 В для Arduino (на USB-кабеле), в противном случае вы можете подключить тот же PS через пин Vin на ардуино.

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

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

Я также включил схему фритзинга.

_

PS = блок питания (если кому интересно)

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

Шаг 3. Поместите код в MCU

Я прикрепил файл.ino и две библиотеки, которые использовал, чтобы не было несовместимости. Код объясняется в файле.ino.

Также для адреса дисплея I2C вы можете использовать прикрепленный i2c-scanner.ino, чтобы узнать его.

Любые комментарии и предложения приветствуются. Повеселись!

Рекомендуемые: