Вопрос по потенциометру

Vasaiziza
Offline
Зарегистрирован: 25.12.2015

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

#include <IRremote.h>

#define RECV_PIN   2
#define ledPin1    7
#define ledPin2    6
#define POT        0
int val = 0;

IRrecv irrecv(RECV_PIN);
decode_results results;

void setup()
{
  Serial.begin(9600);
  irrecv.enableIRIn();
  pinMode(ledPin1, OUTPUT);
  pinMode(ledPin2, OUTPUT);
  pinMode(POT, INPUT);
}

void loop()
{

  int x;
  x = analogRead(POT) / 4;
  Serial.println(x);
  
  
  if (irrecv.decode(&results)) 
  {
    Serial.println(results.value);
    if (results.value == 16582903)
       { 
           if (x >= 0 && x < 100)
               {
                  digitalWrite(ledPin1, HIGH);
                  digitalWrite(ledPin2, LOW);
                 }
           else if (x > 100 && x < 200)
                 {
                  digitalWrite(ledPin1, LOW);
                  digitalWrite(ledPin2, HIGH);
                  }
      irrecv.resume();
       }
}

 

Tomasina
Tomasina аватар
Offline
Зарегистрирован: 09.03.2013

Перефразируйте.

Vasaiziza
Offline
Зарегистрирован: 25.12.2015

Имеется пульт ДУ, приемник, два светодиода,  потенциометр. Считываю данные с потенциометра, делю на 4 чтоб получить от 0 до 255. Теперь, допустим потенциометрнаходится в 0, на пульте ДУ падаем сигнал, загорается первый светодиод, начинаем поворачивать потенциометр, и как значения превышают 100, выкл. первый диод, загорается второй. У меня так не получается сделать, выходит только с повторной командой с ДУ т.е. поворачиваем потенциометр повторно нажимаем кнопку, тогда выкл.первый, вкл. второй.

Tomasina
Tomasina аватар
Offline
Зарегистрирован: 09.03.2013

по коду когда первое условие выполнится (загорится первый светодиод), команда в строке 44 (не знаю что означает) выбивает из цикла сравнения, происходит переход к строке 22, т.е. ожидание команды с пульта.

vvadim
Offline
Зарегистрирован: 23.05.2012

при нажатии кнопки на пульте меняеете состояние и крутите свой пот любуясь светиками

при повторном нажатии кнопки ( или другой ) возвращаетесь в исходное состояние