Pages: [1]   Go Down
Author Topic: Ardumoto e diodo infrarossi  (Read 7413 times)
0 Members and 1 Guest are viewing this topic.
0
Offline Offline
Newbie
*
Karma: 0
Posts: 20
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

buongiorno, ho un problema col comandare due motori tramite ardumoto
http://www.sparkfun.com/products/9896 e diodo infrarossi http://www.sparkfun.com/products/9896.
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
Code:
#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
Logged

BZ (I)
Online Online
Brattain Member
*****
Karma: 272
Posts: 21940
+39 349 2158303
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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
Logged

0
Offline Offline
Newbie
*
Karma: 0
Posts: 20
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

http://www.sparkfun.com/products/10266 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
Logged

BZ (I)
Online Online
Brattain Member
*****
Karma: 272
Posts: 21940
+39 349 2158303
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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

Incominciamo a chiamare il TSOP382 ricevitore infarrossi.
Quote
Poi l'arduino lo alimento a 9v con una batteria,
dove hai collegato la batteria
Quote
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:
Code:
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


  



« Last Edit: January 09, 2011, 05:07:27 pm by uwefed » Logged

0
Offline Offline
Newbie
*
Karma: 0
Posts: 20
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

no, non ne gira nemmeno uno.
l'arduino è alimentato tramite l'entrata classica e l'ardumoto tramite uno
http://www.sparkfun.com/products/8084 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.
Logged

BZ (I)
Online Online
Brattain Member
*****
Karma: 272
Posts: 21940
+39 349 2158303
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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
Logged

0
Offline Offline
Newbie
*
Karma: 0
Posts: 20
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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

0
Offline Offline
Shannon Member
****
Karma: 136
Posts: 10525
:(){:|:&};:
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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
« Last Edit: January 10, 2011, 11:02:30 am by lestofante » Logged

sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

BZ (I)
Online Online
Brattain Member
*****
Karma: 272
Posts: 21940
+39 349 2158303
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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
Logged

0
Offline Offline
Newbie
*
Karma: 0
Posts: 20
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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.
Logged

BZ (I)
Online Online
Brattain Member
*****
Karma: 272
Posts: 21940
+39 349 2158303
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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
Logged

0
Offline Offline
Newbie
*
Karma: 0
Posts: 20
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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

0
Offline Offline
Newbie
*
Karma: 0
Posts: 20
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

l'ho fatto ma niente.
Logged

BZ (I)
Online Online
Brattain Member
*****
Karma: 272
Posts: 21940
+39 349 2158303
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

manda il nuovo codice.
Ciao Uwe
Logged

Pages: [1]   Go Up
Jump to: