Остановка выполнения действия

Yanki
Offline
Зарегистрирован: 28.04.2016

Добрый день, заранее извиняюсь за глупый вопрос, пока не могу понять как реализовать, подскажите пожалуйста, как можно прервать действие. Допустим у нас есть светодиод, пульт с приемником и потенциометр. Как сделать, чтоб при получении сингала с пульта, диод загорался и оставался включенным пока показатель потенциометра не достигнут >= 100, как только поступает такое значение, светодиод выключается 

#include <IRremote.h>

int analogPin = A0;
int led = 13;
int RECV_PIN = 2;
IRrecv irrecv(RECV_PIN);
decode_results results;

void setup() {
  pinMode(led,OUTPUT);
  Serial.begin(9600);
  irrecv.enableIRIn();
}

void loop() {
  int rawReading = analogRead(analogPin) /4;
  Serial.println(rawReading);
  if (irrecv.decode(&results)) {
    Serial.println(results.value);
    if (results.value == 629155073) // При получении кодировки 1
    {
      if (rawReading < 100){
        digitalWrite (led, HIGH);
      }
      if (rawReading >= 100){
        digitalWrite (led, LOW);
      }
      irrecv.resume();
    }
  }
}

 

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

Ввести переменную, описывающую следующие состояния:

0 - начальное состояние, команды с пульта не получались,

1 - сигнал получен, диод горит, потенциометр <100,

2 - сигнал получен, диод выключен (конечное состояние),

и прописать условия перехода из одного состояния в другое.