Macchinina con arduino uno

Ciao, sono un appassionato di arduino, sto creando una macchinina comandata via IR con un telecomando di un televisore, un motore DC e un servo. il mio problema è che non riesco a mandare avanti la macchinina e contemporaneamente farla girare a dx o sx via IR, cioè la macchinina va avanti e quando è ferma ruota anche lo “sterzo” quando invio il comando via IR, inoltre nell’andare avanti, nonostante tenga il pulsante del telecomando sempre premuto, il motore gira però poi sembra come se si stoppasse, spero di essere stato chiaro. help me!

#include <Servo.h>
#include <IRremote.h>
int receiver = A0; //ricevitore IR
int val = 0;
int transistorPin = 9;
IRrecv irrecv(receiver);
decode_results results;
Servo myservo;

void setup(){
Serial.begin(9600);
irrecv.enableIRIn(); 
myservo.attach(12);
pinMode(transistorPin,OUTPUT);
}

void loop(){
 myservo.write(20);
 val = analogRead(receiver);
  if (irrecv.decode(&results)) 
  {
    Serial.println(results.value, HEX);
    irrecv.resume();
  }
  if(results.value == 0x758C9D82){
  Serial.println("LEFT");                               
  myservo.write(0);        //angolazione servo 0°      
  delay(100);                       
  }
  if(results.value == 0x8AF13528){
  Serial.println("CENTRO");
  myservo.write(20);  //angolazione servo 20°
  delay(100);
  }
  if(results.value == 0x53801EE8){
  Serial.println("RIGHT");            //angolazione servo 40°                  
  myservo.write(40);              
  delay(100);                        
  }
  if(results.value == 0x68733A46){
    Serial.println("MOTORE ACCESO");
    digitalWrite(transistorPin,HIGH);
   // delay(2000);
  }
  else{
    digitalWrite(transistorPin,LOW);
  }
}

programma_completo.ino (1.15 KB)

Ti invitiamo a presentarti (dicci quali conoscenze hai di elettronica e di programmazione) qui: Presentazioni e a leggere il regolamento: Regolamento - qui una serie di schede by xxxPighi per i collegamenti elettronici vari: ABC - Arduino Basic Connections - qui le pinout delle varie schede by xxxPighi: Pinout - qui una serie di link [u]generali[/u] utili: Link Utili

Ciao marcoierimonte, Stai facendo sbagli enormi con lo sketch. I telecomandi IR delle TV quando tieni premuto un tasto inviano il segnale vero e proprio una volta, poi inviano in modo persistente un numero a caso che dipende dalla marca del telecomando (es. 437158). Non puoi quindi pensare di tenere premuto il tasto per far andare il motore e neanche di premere contemporaneamente i tasti per sx e dx. Potresti riadattare lo sketch del bottone che accende o spegne il LED e che lo tiene acceso dopo la pressione (che ora non posso darti stando sul cellulare), mettendo al posto di if (val == HIGH) {} un bellissimo if (results.value == codicetasto) {}. Per lo sterzo devi togliere il myservo.write(20) all'inizio del loop(), dato che non puoi premere due tasti in contemporanea. Facci sapere come vanno le cose in questo modo, spero d'esserti stato d'aiuto. PS: ad inizio frase la lettera maiuscola.

ciao, grazie per l'aiuto, non capisco dove effettuare la modifica del togliere l'high e inserire il codice perchè a tutti ho già inserito il codice del telecomando.