Код для активации светодиода через 2 минуты и мигания через 30 секунд.

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

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

, 👍1

Обсуждение

Как вы собираетесь делать *что-нибудь*, если электричество было отключено?!, @Majenko

Я запитаю Arduino ячейкой и назначу два контакта в качестве датчика, если они соединены друг с другом, чем каждый, это нормально, если они обрезаны, Arduino будет мигать светодиодом через 2 минуты и будет продолжать мигать с интервалом 30 секунд., @Yusuf Been Hashem

Может ли кто-нибудь помочь мне с кодом, который может включать насос на 5 секунд, а затем включать вентилятор на 3 секунды, и операция продолжается в том же духе., @Tunde Olaniyi


4 ответа


2

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

,

Я отредактировал это сейчас, не могли бы вы мне помочь, @Yusuf Been Hashem

Я думаю, что было бы проще использовать перезаряжаемый блок питания USB. Они очень распространены. Я добавил ссылку «дайте мне погуглить это для вас», чтобы вы могли видеть, о чем я говорю. Я все еще думаю, что оптическая изоляция сетевого питания от Arduino — хорошая идея. Поэтому я придерживаюсь того, что говорит ответ. Прочитайте страницы, на которые ведут ссылки. Тогда задавайте свои вопросы. Всегда лучше, если вы попытаетесь программировать, а затем зададите свои вопросы, опубликовав свой код вместе со своим вопросом., @st2000


1

Пример Blink расскажет вам, как мигать светодиодом, вам просто нужно изменить время в операторах задержки.

Вы хотите обнаружить отказ источника питания. У Arduino есть резервная батарея (ячейка) для питания в случае сбоя питания. Верно?

Существуют комплекты датчиков напряжения, которые могут контролировать напряжение сети, просто выполните поиск по запросу «Arduino Voltage sensor». Однако существует риск для вас при работе с сетевым напряжением. Поэтому использование оптической изоляции (как говорит ST2000), вероятно, безопаснее для вас. Может быть какая-то микросхема оптического изолятора, которая может управлять сетью и 5 В, обычно они белого цвета.

,

1

У меня есть код, отредактированный мной

int pinButton = 8; //пин куда мы подключаем кнопку
int LED = 2; // к пину подключаем светодиод

void setup() {
 pinMode(pinButton, INPUT); // устанавливаем контакт кнопки как INPUT
 pinMode(LED, OUTPUT); // устанавливаем вывод светодиода как ВЫХОД
}

void loop() {
 start:delay(120000);
 check:int stateButton = digitalRead(pinButton); //читаем состояние кнопки
 if(stateButton == 0) { //если не нажата

   digitalWrite(LED, HIGH);
   delay(250);
   digitalWrite(LED, LOW);
   delay(30000);
   goto check;
 } 
 else { // если нажать
  digitalWrite(LED, LOW);
  goto start;
 }
}
,

goto start полностью избыточен, потому что в конце loop он все равно возвращается к его началу. Пожалуйста, избегайте использования goto - ваш другой может быть заменен циклом while, @Nick Gammon


1

ОТКАЗ ОТ ОТВЕТСТВЕННОСТИ. Это всего лишь предложение. Пожалуйста, не ненавидьте этот ответ.

Можно использовать конденсатор. Суперконденсатор (большой емкости) с подходящей схемой кражи джоулей для вашего проекта может питать Arduino еще примерно 5 минут, даже если основное питание отключено, плюс вам не нужен дополнительный источник питания после отключения основного источника. Это может быть полезно, если вам нужно заменить батарею или переместить ее в другое место, но вы не хотите, чтобы модуль выключался.

const int led = 13;    //светодиодный штифт
const int sensor = A0; // подключите к этому источнику питания, при необходимости используйте делитель напряжения
                       //это будет работать как вольтметр

void setup()
{
  pinMode(led, OUTPUT);
  pinMode(sensor, INPUT);
}

void loop()
{
  int V = analogRead(sensor);
  V = map(V,0,1023,0,5); // 5 заменяется количеством напряжения, которое вы подаете на Arduino

  if(V < 1) // когда мощность ниже точки или просто отключена, конденсатор
            // сработает сама по себе, потому что Arduino потребляет энергию
    {
    delay(120000)
    while(V < 1)
    {
      V = analogRead(sensor);
      V = map(V,0,1023,0,5);

      digitalWrite(led, HIGH);
      delay(500);
      digitalWrite(led, LOW);
      delay(29500);
    }
  }
}
,