deeprootedevil
@deeprootedevil

Как сделать переключение между кнопками?

#include <IRremote.h>

int inches = 0;
int k = 0;
int RECV_PIN = 2;
IRrecv irrecv(RECV_PIN);
decode_results results;

int cm = 0;

long readUltrasonicDistance(int triggerPin, int echoPin)
{
  pinMode(triggerPin, OUTPUT);  
  digitalWrite(triggerPin, LOW);
  delayMicroseconds(5);
  
  digitalWrite(triggerPin, HIGH);
  delayMicroseconds(10);
  digitalWrite(triggerPin, LOW);
  pinMode(echoPin, INPUT);
  
  return pulseIn(echoPin, HIGH);
}

void setup()
{
  Serial.begin(9600);
  irrecv.enableIRIn();

}

void loop()
{
  if (irrecv.decode(&results)) {//irrecv.decode(&results) returns true if anything is recieved, and stores info in varible results 
    unsigned int value = results.value; //Get the value of results as an unsigned int, so we can use switch case 
    Serial.println(value);
  
    switch (value) { 
    case 255: 
       
        
      cm = readUltrasonicDistance(12, 13) / 46;
  
        inches = (cm / 2.54);
        Serial.print(inches);
        Serial.print("in, ");
        Serial.print(cm);
        Serial.println("cm");
        delay(100);
      
      break;
     
      
    case 20655:	
        
      cm = readUltrasonicDistance(12, 13) / 46 * 1.01;
  
        inches = (cm / 2.54);
        Serial.print(inches);
        Serial.print("in, ");
        Serial.print(cm);
        Serial.println("cm");
        delay(100);
   
    break;
    }
    //irrecv.resume();
  }
  
}


Нужно чтобы кейс со значением 255 работал постоянно, но при этом другие кнопки на пульте также работали.
  • Вопрос задан
  • 169 просмотров
Пригласить эксперта
Ответы на вопрос 2
@AlexSku
не буду отвечать из-за модератора
Нужно чтобы кейс со значением 255 работал постоянно

Он должен быть первым и у него не должно быть break.
Ответ написан
@Vasilii_B2
Разрабатываю ПО и электронику
Не однозначный вопрос ?!?
- Если нужно чтобы всегда выполнялся кусок кода (содержащийся в case 255) - выведи его из switch() совсем.
- Если нужно чтобы выполнялся case 255: при условии что к нет подходящего условия для кода switch(value) - то есть такое понятие как default:
- Если нужно чтобы при любом описанном значении case выполнялся код из case 255 - сделай кусок кода из case 255 функцией и вставляй вызов этой функции в каждый case.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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