Помогите с программированием Arduino Nano для запуска вентилятора через ползунковый переключатель через определенные промежутки времени.
Я пытаюсь использовать Arduino Nano для запуска моего вентилятора для ПК на 5 В, который, я знаю, это звучит безумно, он будет установлен на предмете Tupperware, который будет контролировать поток воздуха через него через вентилятор. Однако я понятия не имею, как программировать Arduino, но знаю, как программировать другие вещи, когда делал это в классе. Установка представляет собой перезаряжаемую литий-ионную портативную батарею напряжением 5 В, подключенную к переключателю, который будет подключен к Arduino, и когда переключатель срабатывает/переворачивается, он обеспечивает питание Arduino, загружает его и запускает код, который будет прикажите вентилятору работать через определенные промежутки времени. Идея использования интервалов связана с тем, что батарея имеет непрерывное время работы всего 23 часа и 10 минут при включении вентилятора. Псевдокод будет выглядеть примерно так:
Нажмите переключатель, Nano включится с последующей программой. Дважды в час Nano запускает вентилятор. Вентилятор работает от 20 до 30 секунд при каждом запуске. После завершения серии из 48 циклов включения/выключения (24 часа) Nano переходит в спящий режим в целях экономии энергии. Чтобы возобновить циклы, пользователь должен снова нажать переключатель.
Я почти уверен, что у меня проблемы с аппаратным обеспечением, но если нет, пожалуйста, сообщите мне.
Я прикрепил изображение того, как это примерно будет выглядеть: батарея слева, переключатель посередине, затем Arduino (не видно на рисунке), затем вентилятор.
< /п>
Я знаю, что прошу о многом, хотя даже не знаю, с чего начать кодирование, но я буду искренне и бесконечно благодарен.
@Amin Al Ashqar, 👍0
Обсуждение1 ответ
Вы не можете запустить вентилятор напрямую от контакта 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
- Загрузка Arduino Nano дает ошибку: avrdude: stk500_recv(): programmer is not responding
- Программа Nano Every с использованием порта UPDI
- Невозможно получить показания счетчика (Modbus)
- Проблема кодирования индикатора велосипедной передачи
- Можно ли поставить arduino последовательно с зарядным устройством?
- Асинхронные вызовы функций в скетче ардуино
- как быстро loop() работает в Arduino
- Двигатель постоянного тока шумит, но не вращается
Было бы полезно увидеть схему и некоторый код, хотя вы утверждаете, что у вас еще нет кода..., @Greenonline