Ardumoto e diodo infrarossi

buongiorno, ho un problema col comandare due motori tramite ardumoto
SparkFun Ardumoto Shield Kit - KIT-14180 - SparkFun Electronics e diodo infrarossi SparkFun Ardumoto Shield Kit - KIT-14180 - SparkFun Electronics.
La cosa strana è che il diodo da solo funziona e i motori da soli funzionano ma se li metto insieme non funzionano.
Probabilmente ho sbagliato il codice, qui metto un esempio di codice che ho provato

#include <IRremote.h>
int pwm_a = 3;  //PWM control for motor outputs 1 and 2 is on digital pin 3
int pwm_b = 11;  //PWM control for motor outputs 3 and 4 is on digital pin 11
int dir_a = 12;  //direction control for motor outputs 1 and 2 is on digital pin 12
int dir_b = 13; 
int RECV_PIN = 6;
IRrecv irrecv(RECV_PIN);
decode_results results;

void setup()
{
  analogWrite(pwm_a, 100);  
  analogWrite(pwm_b, 100);
  Serial.begin(9600);
  irrecv.enableIRIn(); // Start the receiver
}

void loop() {
  if (irrecv.decode(&results)) {
    Serial.println(results.value, DEC);
    delay (100);
    irrecv.resume(); // Receive the next value
  }
  int val = results.value;

  if(val == 2011275392) {
    digitalWrite(dir_a, HIGH); 
    digitalWrite(dir_b, LOW);
  } 
  else{

    if(val == 2011271296){
      digitalWrite(dir_a, LOW); 
      digitalWrite(dir_b, HIGH);
    } 
  }


}
// 2011271296 e 2011275392 sono due tasti dell'Apple Remote

Ciao djtandrea
Hai messo 2 volte il link del Motor shield e manca il link del LED infrarosso.

Come hai collegato il LED infrarosso?
Come alimenti l' arduiono e i motori?
Usi il LED infrarossi come ricevitore?

Il codice mi sembra giusto.

Ciao Uwe

IR Receiver Diode - TSOP38238 - SEN-10266 - SparkFun Electronics ecco il diodo.
LED infrarossi lon ce ne sono c'è solo il diodo, il led è nel telecomando,
e per il diodo:
ho collegato la massa del diodo a GND poi l'ingresso ai 5v e l'out alla porta 6.
Poi l'arduino lo alimento a 9v con una batteria, e per l'ardumoto ho piegato il pin vin e ci ho attaccato 4 pile AA.
E il led come detto prima non c'è.

P.S. il diodo è collegato tramite protoshield

Ciao djtandrea
Il Tuo problema é che solo un motore gira mentre l'altro no?

Incominciamo a chiamare il TSOP382 ricevitore infarrossi.

Poi l'arduino lo alimento a 9v con una batteria,

dove hai collegato la batteria

l'ardumoto ho piegato il pin vin e ci ho attaccato 4 pile AA.

vuol dire che Vin di ardumotor non é collegato con Vin del Arduino, ma ai 6V delle batterie stilo? il polo delle Batterie Stilo é colegato a gnd?
Per i collegamenti del TSOP382xx avrai segiuto lo datasheet.

Il TSOP382xx é un fotodiodo con un amplificatore, filtro e demodulatore. La frequenza che lascia passare il filto é decodificato nel numero del componente dopo il numero 382. Quella frequenza dovrebbe corrispondere con quella del telecomando. Non é molto chiaro, ma mi sembra che quello che vende la sparkfun sia per 38Khz. È una frequenza molto usata e maggior parte dei telecomandi dovrebbero usare questa frequenza.

Vedo nel codice:
int pwm_a = 3;  //PWM control for motor outputs 1 and 2 is on digital pin 3 l' ardumotor usa i pin 10 a 13 percui pwm_a deve essere 10.
lo schema del Ardumoto lo trovi http://www.sparkfun.com/datasheets/Robotics/Ardumoto_v12.pdf

Ciao Uwe

no, non ne gira nemmeno uno.
l'arduino è alimentato tramite l'entrata classica e l'ardumoto tramite uno
Screw Terminals 3.5mm Pitch (2-Pin) - PRT-08084 - SparkFun Electronics collegato ai due fori accanto che si vedono accanto ai terminali per i motori.
per il codice è giusto il pin 3 secondo i commenti e secondo le prove effettuate.

Ciao djtandrea.
Scusami, noto solo adesso che ci sono 2 versoni diverse del ardumoto: la versione 12 usa i pin 10 al 13, la versione 13 i pin 3, 11-13.
Se hai controllato sará giusto il pin 3.
Domanda cretina; l'alimentazione della scheda é polarizzata giusta?
Ciao Uwe

penso di si perchè ci sono i segni + e -

secondo me il problema è che nel loop usa il digitalWrite() al posto dell'analogWrite()... il ponte H c'è scritto di governarlo col PWM!
altro problema che può nascereè che la libreria dell'infrarosso vada a giocare con i timer, spu++anando il PWM

djtandrea
per prova metti "pinMode(pwm_a, OUTPUT); digitalWrite(pwm_a, HIGH);" al posto di "analogWrite(pwm_a, 100);"
e la stessa cosa con pwm_b
Se li gira il motore é un problema di libreria.
ciao Uwe

al momento sto avendo un problema col porta-batterie per le stilo, perchè mi si è staccato il filo e non ho il saldatore ( lo comprerò a breve),
ma non penso sia quello il problema perchè i motori girano anche se l'output è analogico e penso che il problema non sia lì perchè cambierebbe poco.

cambia tanto. per il PWM vengono usati i timer intern del ATmega; la libreria IR anche lei visto che lavora con tempi potrebbe usare uno o piú timer e percui le 2 cose vanno in conflitto
Ciao Uwe

ok appena entro in possesso di un saldatore lo faccio.
grazie

l'ho fatto ma niente.

manda il nuovo codice.
Ciao Uwe