Telecomando IR?

Ciao a tutti, è un pò che non mi faccio sentire, comunque ora vi espongo il mio problema,non riesco in nessun modo a far capire all'arduino che e viene premuto il tasto 5 sul telecomando IR , deve eseguire un dato codice, ovvero questo pezzetto :"
digitalWrite(p1, HIGH);
digitalWrite(p2, LOW);
digitalWrite(p3, LOW);
digitalWrite(p4, LOW);

  • delay(tempo); *
    digitalWrite(p1, LOW);
    digitalWrite(p2, HIGH);
    digitalWrite(p3, LOW);
    digitalWrite(p4, LOW);
    delay (tempo);
    digitalWrite(p1, LOW);
    digitalWrite(p2, LOW);
    digitalWrite(p3, HIGH);
    digitalWrite(p4, LOW);
    delay(tempo);
    digitalWrite(p1, LOW);
    digitalWrite(p2, LOW);
    digitalWrite(p3, LOW);
    digitalWrite(p4, HIGH);
    delay(tempo);
    che deve comandare un motore passo passo...finché il pulsante non viene rilasciato...mentre se viene premuto un altro pulsante deve eseguire un altro codice finche tale pulsante non viene rilasciato...ma...come devo fare? O.o grazie a tutti

semplicemente una cosa del genere

int indexPdaMettereAlto=0;
int arrayDiP[]={p1, p2, p3, p4};
void loop(){
  pulsantePremuto=leggiIR();

  if (pulsantePremuto){
    for (int i=0;i<4;i++){
      if (i==pDaMettereAlto){
          digitalWrite(arrayDiP[i], HIGH);
      }else{
          digitalWrite(arrayDiP[i], LOW);
      }
    }
    pDaMettereAlto++;
    if (4>=pDaMettereAlto){
        pDaMettereAlto=0;
    }
    delay(tempo);
  }

}

perdonami ma non ho capito...anche perchè a me l'else non serve assolutamente...

l'else si che ti serve, altrimenti non "azzeri" lo stato precedente del pin.

allora, passo1: leggi se arriva il comando da IR. se non arriva non so cosa bisognerebbe fare, quindi ho lasciato che continua a funzionare l'ultimo comando dato.
se arriva qualcosa:
passo2: scorre l'array di pin che vanno ai sensori, attivando solo il pin con indice nell'array "pDaMettereAlto", che al primo giro è 0 e spegnendo gli altri.
passo3: sposta pDaMettereAlto al prossimo pin, ovvero incrementa di 1 l'index desiderato, se va fuori dall'array (pDaMettereAlto>=4) allora lo riporta a 0 (l'inizio)
passo4: delay per evitare il bounce del comando, ovvero per evitare che una pressione di pulsante (che invia più di un segnale) venga letta più volte.
passo5: ricomincia da capo.

nota: se non rimettessi a low gli altri pin, allora il pin rimarrebbe high anche se attivi il successivo: quindi alla fine di 4 letture di sensore con comando ricevuto, ti ritroveresti tutti e 4 i pin allo stato HIGH, cosa che tu non vuoi (da quanto hai scritto).

hai provato la libreria IRremote ?

#include <IRremote.h>

ciao Marbi

Attenzione: certe codifiche dei telecomandi non ripetono in eterno il codice anche se lo tieni premuto; considera questo per non cercare un errore che non c'é.
Ciao Uwe