[Risolto] - Problema comunicazione seriale

Salve a tutti, son qui per spiegarvi in parole povere che cosa ho intenzione di fare, in modo tale che così anche voi avete un'idea delle mie idee xD (Ok questa era pessima).
Ad ogni modo, quello che intendo realizzare, è un semplice programma che, a seconda di cosa riceve tramite infrarossi, invii determinate strighe sulla seriale.

Posto qui di seguito il mio sketch:

#include "IRremote.h"

int RECV_PIN = 10;
IRrecv irrecv(RECV_PIN);
decode_results results;

void setup()
{
  Serial.begin(9600);
  irrecv.enableIRIn(); // Start the receiver
  pinMode(11, OUTPUT);
}

void loop() {
  if (irrecv.decode(&results)) {
    Serial.println(results.value);
    digitalWrite(11, HIGH);
    delay(500);
    digitalWrite(11, LOW);
    irrecv.resume();
  }
  
   if ( results.value == 551520375 ){ //tasto 1 sul telecomando
  Serial.println("Ciao");
  delay(500);
  }
  
}

Cosa fa questo sketch?
-Tramite un sensore ad infrarossi capta se vengono premuti dei tasti su un telecomando, e li visualizza sulla seriale accendendo un led.

Cosa vorrei fare io?
-Come vedete ho inserito un if con un codice esadecimale: 551520375, ovvero il codice che corrisponde al tasto 1 del mio telecomando.
-Ora vorrei fare in modo che quando esso viene premuto, esso stampi sulla seriale "Ciao".
Usando il codice sopracitato tutto questo avviene, ma non perfettamente, quello che vorrei fare io infatti è far in modo che si visualizzi "Ciao" solo esclusivamente quando viene effettivamente premuto il pulsante..

Cosa fa il codice ora come ora?
Quando viene premuto il pulsante, sulla seriale mi ritrovo:

551520375
Ciao
Ciao
Ciao
Ciao
Ciao

Praticamente all'infinito.. Come posso ovviare a questo problema? Avevo pensato di inserire un irrecv.resume(); Subito dopo al Serial.Println Ma non funziona.. Idee?

Modificalo così

void loop() {
  if (irrecv.decode(&results)) {
    Serial.println(results.value);
    digitalWrite(11, HIGH);
    delay(500);
    digitalWrite(11, LOW);
    irrecv.resume();

   if ( results.value == 551520375 ){ //tasto 1 sul telecomando
  Serial.println("Ciao");
  delay(500);
  }
}  
}

Ti stamperà "ciao" ogni volta che premi il pulsante del telecomando che corrisponde a 551520375.

Aaaa....ecco a cosa ti serviva :slight_smile:

Ahahah tu si che sei un genio :wink: Si, hai notato? Carino vero? :slight_smile: Grazie ancora una volta comunque, chiedo ai mod di chiudere ormai questo treadh xD

EnigmaAren92:
Ahahah tu si che sei un genio :wink: Si, hai notato? Carino vero? :slight_smile: Grazie ancora una volta comunque, chiedo ai mod di chiudere ormai questo treadh xD

puoi chiuderlo tu stesso in fondo a sinistra ma non credo ce ne sia bisogno piu che altro metti [Risolto] all'inizio del titolo del topic :wink: