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

Я пытаюсь использовать Arduino Nano для запуска моего вентилятора для ПК на 5 В, который, я знаю, это звучит безумно, он будет установлен на предмете Tupperware, который будет контролировать поток воздуха через него через вентилятор. Однако я понятия не имею, как программировать Arduino, но знаю, как программировать другие вещи, когда делал это в классе. Установка представляет собой перезаряжаемую литий-ионную портативную батарею напряжением 5 В, подключенную к переключателю, который будет подключен к Arduino, и когда переключатель срабатывает/переворачивается, он обеспечивает питание Arduino, загружает его и запускает код, который будет прикажите вентилятору работать через определенные промежутки времени. Идея использования интервалов связана с тем, что батарея имеет непрерывное время работы всего 23 часа и 10 минут при включении вентилятора. Псевдокод будет выглядеть примерно так:

Нажмите переключатель, Nano включится с последующей программой. Дважды в час Nano запускает вентилятор. Вентилятор работает от 20 до 30 секунд при каждом запуске. После завершения серии из 48 циклов включения/выключения (24 часа) Nano переходит в спящий режим в целях экономии энергии. Чтобы возобновить циклы, пользователь должен снова нажать переключатель.

Я почти уверен, что у меня проблемы с аппаратным обеспечением, но если нет, пожалуйста, сообщите мне.

Я прикрепил изображение того, как это примерно будет выглядеть: батарея слева, переключатель посередине, затем Arduino (не видно на рисунке), затем вентилятор.

Фото LiPo-аккумулятора, переключателя и вентилятора< /п>

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

, 👍0

Обсуждение

Было бы полезно увидеть схему и некоторый код, хотя вы утверждаете, что у вас еще нет кода..., @Greenonline


1 ответ


2

Вы не можете запустить вентилятор напрямую от контакта Arduino. Для работы вентилятора потребуется большой ток. Вместо этого подключите вентилятор через транзистор/мосфет к Arduino.

Также добавьте к вентилятору обратноходовой диод, так как вращение вентилятора может вызвать огромные (но короткие) скачки напряжения, которые могут повредить транзистор/моптический транзистор.

Псевдокод будет выглядеть примерно так:

for( byte i=0; i<48; i++ )
{
  digitalWrite(fanPin, HIGH);
  delay(20000);
  digitalWrite(fanPin, LOW);
  delay(1780000);
}

Вы также можете перевести Arduino в спящий режим на эти полчаса. Вы можете использовать библиотеку LowPowerSleep. Затем замените delay(ms) на LowPower.sleep(ms).

Наконец, некоторые блоки питания автоматически отключаются, если не обнаруживают, что ничего не потребляет энергию. Arduino без включенного вентилятора будет потреблять настолько мало тока (по сравнению с зарядкой телефона), что такой блок питания отключится.

,

Достойный ответ, хотя использование отсрочки – это приучение к вредным привычкам, от которых нужно будет практически сразу отучиться. (Для ОП функция delay() приводит к зависанию вашего приложения, поэтому, если вам нужно написать код, который делает что-то еще в функции задержки. Лучше использовать функцию millis() и некоторые математические вычисления для записи время начала события и проверьте, прошло ли желаемое время. Выполните поиск по запросу «Arduino мигает без задержки», чтобы найти пример кода, объясняющий этот метод., @Duncan C