problema comando motorino e comando infrarossi

Ho realizzato un piccolo circuito con dei transistor che vanno a controllare il verso di rotazione di un motorino elettrico in DC, ho provato questo circuito con un alimentazione di 5v esterna ad Arduino (perche il motorino assorbe più di quello che Arduino può erogare) e due piccoli bottoni. Il circuito per il controllo del motorino funziona. HO deciso di eliminare i pulsanti facendo dare l'impulso sulla base dei transistor da Arduino tramite un sensore IR(38khz) ovvero premo un pulsante sul mio telecomando , il segnale arriva al sensore infrarossi che mi attiva o disattiva i pin per gli impulsi sulle basi. Ho un problema però, ho collegato tutto ma quando premo il pulsante che mi interessa non succede niente ! Dove può stare il problema? Grazie a tutti

  1. Hai provato il solo IR ? Da solo funziona ?
  2. come hai collegato il tutto ?
  3. quale libreria IR usi ?
  4. posta lo sketch del tuo programma (usa i tag code) se grosso allegalo

si ho provato il sensore IR e funziona tant'è che ho decodificato il codice esadecimale che mi da alla pressione del tasto del telecomando, l'IR l'ho collegato ad arduino al pin 11, mentre ho collegato rispettivamente gnd e vss del sensore a GND e 5v di arduino, poi su un altra piccola bredboard ho collegato quattro transistor bc337 in modo da controllare il senso di rotazione del motorino in DC. Quindi alimento a parte il motorino mentre le basi dei transistor dovrei alimentare con i 5v che mi da arduino in uscita. Spero di essermi spiegato meglio, ti allego lo sketch per farti capire meglio. Grazie
PS: uso la libreria IRremote

IR_comando_prova_cancello_automatico.ino (2.6 KB)

In allegato c'è la foto che mostra come ho collegato i transistor e il motorino

Mi pare errato il codice, la resume deve essere fatta come ultima cosa.

if (irrecv.decode(&results))
{ if(results.decode_type == PANASONIC)        // metti il tipo giusto!!!
  { Serial.println(results.value, HEX);
    //dump(&results);
    if(results.value == 0x1FC42BD) 
    { ...
    }
  }
  irrecv.resume(); // Receive the next value
}