задержка после нажатия на клавишу

Mamaley
Offline
Зарегистрирован: 02.09.2015

Народ ... Есть скетч на простое управление 8ю реле.

 Но из-за управления через интернет, происходят разного рода задержки...

Вопрос - что дописать, дабы после нажатия, реле срабатывало 1сек. и выключалось 

до следующего нажатия ...?

int ledPin8 = 8; // l,p
int ledPin2 = 2; // e,r
int ledPin4 = 4; // s
int ledPin6 = 6; // a
int ledPin7 = 7; // k,o
int ledPin5 = 5; // d
int ledPin3 = 3; // w
int ledPin9 = 9; // j,i
void setup()
{
  Serial.begin(9600);
  pinMode (ledPin9, OUTPUT);
  pinMode (ledPin2, OUTPUT);
  pinMode (ledPin3, OUTPUT);
  pinMode (ledPin4, OUTPUT);
  pinMode (ledPin5, OUTPUT);
  pinMode (ledPin6, OUTPUT);
  pinMode (ledPin7, OUTPUT);
  pinMode (ledPin8, OUTPUT);}

void loop() {
  
   while (Serial.available()) {
      char val = Serial.read();


      if (val == 'w')
      {
        digitalWrite(ledPin3, HIGH);
      }
      if (val == 's')
      {
        digitalWrite(ledPin4, LOW);
      }
      if (val == 'a')
      {
        digitalWrite(ledPin6, LOW);
      }
      if (val == 'd')
      {
        digitalWrite(ledPin5, LOW);
      }
      if (val == 'e')
      {
        digitalWrite(ledPin2, LOW);
      }
      if (val == 'r')
      {
        digitalWrite(ledPin2, HIGH);
      }
      if (val == 'l')
      {
        digitalWrite(ledPin8, LOW);
      }
      if (val == 'p')
      {
        digitalWrite(ledPin8, HIGH);
      }
      if (val == 'j')
      {
        digitalWrite(ledPin9, LOW);
      }
      if (val == 'i')
      {
        digitalWrite(ledPin9, HIGH);
      }
      if (val == 'k')
      {
        digitalWrite(ledPin7, LOW);
      }
      if (val == 'o')
      {
        digitalWrite(ledPin7, HIGH);
      }
      if (val == 'x')
      {
        digitalWrite(ledPin3, HIGH);
        digitalWrite(ledPin4, HIGH);
      }
      if (val == 'c')
      {
        digitalWrite(ledPin5, HIGH);
        digitalWrite(ledPin6, HIGH);
      }}}

 

UserDead
UserDead аватар
Offline
Зарегистрирован: 29.11.2015

Варианта два delay или millis.

Примерчик прост как чашка чая. Даже в среде есть примеры типа Blink или blinkWithoutDelay

Посмотрите пример там. 

Mamaley
Offline
Зарегистрирован: 02.09.2015

Спасибо ... Я так и делал , проблема была в прошивальщике ... Теперь всё ок...