Задать вопрос
@oc1tane

Arduino. Мигание светодиодом из setup?

Гуру тостера выручайте не могу разобраться с миганием в ардуино. Как я знаю setup - инициализируется всего 1 раз, а у loop - имеется цикл.
Вот простой пример мигание светодиодом
void setup() {
  // initialize digital pin LED_BUILTIN as an output.
  pinMode(LED_BUILTIN, OUTPUT);
}

// the loop function runs over and over again forever
void loop() {
  digitalWrite(LED_BUILTIN, HIGH);   // turn the LED on (HIGH is the voltage level)
  delay(1000);                       // wait for a second
  digitalWrite(LED_BUILTIN, LOW);    // turn the LED off by making the voltage LOW
  delay(1000);                       // wait for a second
}

Я же хочу сделать мигание на ответ если отсутствует в приводе W5100, SD карта
те типа того (отрывок кода)
if (!SD.begin(4)) { func(); }

//и где-то вынесенное описание 
void func();

Но вопрос как он будет мигать если цикла нет? в setup?
как можно грамотно сделать мигание светодиода на реакцию если нет SD?
  • Вопрос задан
  • 337 просмотров
Подписаться 1 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 1
MonaGioconda
@MonaGioconda
Сразу предупреждаю, что это не самое элегантное решение, но кажется самым банальным.
Забрасываете функцию мигания светодиода в бесконечный цикл с тем или иным условием выхода. Насколько понимаю, в вашем случае условием будет наличие SD-карты.
Пример:
void loop() {
    while (!SD.begin(4)) { 
        digitalWrite(LED_BUILTIN, HIGH);   // turn the LED on (HIGH is the voltage level)
        delay(1000);                       // wait for a second
        digitalWrite(LED_BUILTIN, LOW);    // turn the LED off by making the voltage LOW
        delay(1000); 
    }
}


Не работал с W5100 и поэтому не совсем уверен касательно данного варианта, но можно также обратить внимание на возможность использования прерываний. Но только при условии, если вставленная/не- карта влияет на HIGH/LOW-уровень данного pin'a.
UPD. Данный вариант подойдёт в лучшем случае, если используете плату Arduino Due
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы