помогите новичку! как добавить функцию без delay.

Нет ответов
vadimdj001
Offline
Зарегистрирован: 22.11.2015

Здравствуйте! 

Вкл/выкл светодиода, подключённого к цифровому порту, без использования функции delay().  

Как я понял, что «одновременно» можно выполнять другой код, без прерывания на мигание светодиодом.

Вопрос: Что надо добавить чтобы отправлять цифра 3 и светодиод начал мигать бесконечно, когда повторно отправляем цифра 3 перестал мигать светодиод.

int ledPin_1 = 11;
int ledPin_2 = 12;
int ledPin_3 = 13;
 
void setup() {
  Serial.begin(9600);
 
  pinMode(ledPin_1, OUTPUT);
  pinMode(ledPin_2, OUTPUT); 
  pinMode(ledPin_3, OUTPUT);
 
}
 
void loop() {
 
  if (Serial.available() > 0) {
     int i = Serial.read()-48;   
 
    if (i == 1)digitalWrite(ledPin_1, !digitalRead(ledPin_1));
    if (i == 2)digitalWrite(ledPin_2, !digitalRead(ledPin_2));
    if (i == 3)
 
  }
}
 
 
Я пробовал добавить этот скетч но к сожалению ничево на полючаеца, заранее спасибо?
 
int ledPin_3 = 13;           
int value = LOW;           
long previousMillis = 0;   
long interval = 500;  
 
void setup()
{
  pinMode(ledPin_3, OUTPUT);
}
 
void loop()
{
 
  if (millis() - previousMillis > interval) {
    previousMillis = millis();   
   
    if (value == LOW)
      value = HIGH;
    else
      value = LOW;
 
    digitalWrite(ledPin_3, value);
  }
}