Cingolato con Arduino

Salve a tutti ho deciso di realizzare un piccolo cingolato comandato tramite due arduino e due xbee :grin:, ma i due motori non funzionano come dovrebbero per pilotarli ho usato un ponte H sn754410ne , alimento la parte logica e arduino con 5V (presi dalla porta USB) e i motori a 6V(alimentati con 6 AA che danno 9 Volts stabilizzati a 6 Volts tramite ln7806cv con opportuni condensatori ) tuttavia se scollego arduino, per qualche istante continua ad essere alimentato, quindi deduco che la corrente torni indietro verso l'Arduino e questo non dovrebbe succedere o sbaglio? Metto anche il circuito fatto con fritzing e il codice che ho provato per testare il circuito.Ho provato anche a sostituire il ponte H con un' 'altro compatibile come l' l293ne ma niente lo stesso.

// programma gestione due motori con integrato sn754410ne



void setup()
{
  
  pinMode(7, OUTPUT);
  pinMode(4, OUTPUT);
  
  pinMode(10, OUTPUT);
  pinMode(9, OUTPUT);
  
}

void loop()
{    
  
    digitalWrite(7,HIGH);    
    digitalWrite(4,LOW);

    digitalWrite(10,HIGH);        
    digitalWrite(9,LOW);

    

    delay(3000); 
    
    digitalWrite(7,LOW);
    digitalWrite(4,HIGH);    
    
    digitalWrite(9,LOW); 
    digitalWrite(10,HIGH);
    
    
    
    delay(3000);  
  
}

Spero in un vostro aiuto non so piu dove sbattere la testa =(

robotSketch.fzz (24 KB)

Nessuno riesce a darmi una mano? :frowning:

Metti uno schema non fatto con Fritzing, non tutti possono aprirlo. Ad esempio su questo PC non ho quel programma (che comunque non è il più idoneo per gli schemi).

con che cosa lo dovrei fare lo schema? comunque lo schema di montaggio che ho usato è quello classico riportato anche nel forum http://arduino.cc/en/Tutorial/MotorKnob solo che anzi pilotare un motore bipolare ne piloto due da 6 Volts, inoltre la tensione dei motori la ottengo tramite stabilizzatore di tensione come gia accennato nel primo post, comunque nel frattempo mi era venuto un dubbio a riguardo... puo essere che le batterie scaricandosi mandino in protezione lo stabilizzatore? le ho misurate hanno una tensione di 7,80 Volts

Il programma di riferimento è Eagle Cad. Alternativamente KiCad. Fritzing non è il massimo.
Se non hai altro, prova esportando lo schema come immagine ed allegala ad un post.
Se la tensione scende troppo , lo stabilizzatore restituirà in uscita una tensione inferiore a quella nominale (quindi inferiore ai 6V).

quindi la mia ipotesi è da scartare....nel frattempo che cerco il problema c'è un'altro modo per pilotare questi motori ?

skalash:
quindi la mia ipotesi è da scartare....nel frattempo che cerco il problema c'è un'altro modo per pilotare questi motori ?

Non ho esperienza di motori, attendiamo qualcuno più capace. Provvedi però a fornire lo schema, aiuterà a trovare il problema.

ok appena ho tempo installo il programma e posto lo schema

skalash:
quindi la mia ipotesi è da scartare....nel frattempo che cerco il problema c'è un'altro modo per pilotare questi motori ?

ma che motori sono? sicuro che siano motori DC?hai un datasheet?(non è un interrogatorio vorrei solo aiutarti)
prima cosa hai provato a muovere un solo motore alal volta?(senza xbee e quant'altro ovviamente)?
ci sono moltissimi modi per comandare motori DC anche alcuni shield se non ti va di sbatterci troppo la testa.

Ti riporto quanto scritto dal costruttore --> two brushed DC motors with 210 mA free run and 2.4 A stall current at 7.2 V
comunque si ho provato con un motore alla volta e funziona poi ho collegato anche l' altro e al primo tentativo funzionava tutto, al secondo quando davo il comando di andare avanti solo uno, poi quando davo il comando indietro funzionavano tutti e due il chip del ponte H si scalda ma non eccessivamente un dito ce lo si puo mettere si sente appena che è caldo, comunque una cosa che mi lascia un po perplesso è che se stacco l'alimentazione di arduino (USB) rimane acceso per un paio di secondi e poi si spegne , non credo che questa cosa giovi all' Arduino.

Skalash.

uhh non è che quel ponte H ha bisogno di diodi esterni?? fai lo schema con carta+penna, oppure fai uno screen-shot di fritzing...

un0'immagine la possono aprire tutti :slight_smile:

lesto:
uhh non è che quel ponte H ha bisogno di diodi esterni?? fai lo schema con carta+penna, oppure fai uno screen-shot di fritzing...

un0'immagine la possono aprire tutti :slight_smile:

L'avevo detto anch'io di esportare in immagine.... ma forse non mi ha letto :smiley:

Ho controllato entrambi i ponti h che ho usato hanno i diodi incorporati

NON collegare TX e RX dell'xbee direttamente all'arduino, li bruci erchè non sono tolleranti ai 5V dei segnali seriali di arduino.

il ponte H immagino che lo pilloti in PWM.. occhio che io sappia ci sono 2 modalità per pilotarli e una NON va bene col PWM

segui questa guida:
http://scuola.arduino.cc/it/content/controlla-motore-dc-ponte-h-l293d

hai risoldo?
comunque, a parte che mancano i diodi di ricircolo sulle uscite che vanno ai motori, dicevi che uno alla volta vanno, questa cosa vale per entrambi o solo per uno?
potrebbe essere che il driver si scaldi ed entri in protezione termica, però leggendo il datsheet non ho visto niente a riguardo http://docs-europe.electrocomponents.com/webdocs/0b87/0900766b80b878b5.pdf
il regolatore di tensione che vedo dopo le batterie cosa è? sicuro che tenga tutta quella corrente e che non sia lui che va in protezione termica?

Allora ho fatto il test funziona tutto pero dopo un po che lo uso non esegue correttamente la 1° parte o meglio gira solo un motore la, 2°e 3° funziona.

Il regolatore funziona bene.
Ho controllato che non ci siano falsi contatti non ce ne dovrebbero essere, ho ipotizzato anche che le batteri non ce la fanno ad alimentare entrambi ho sono scariche , cosi le ho sostituite con alimentatore da 9 Volts e 1A non cambia niente

void setup()
{
  
  pinMode(7, OUTPUT);
  pinMode(4, OUTPUT);
  pinMode(8, OUTPUT);
 
  pinMode(12, OUTPUT);
  pinMode(13, OUTPUT);
  pinMode(2, OUTPUT);
 
  
}

void loop()
{    
    // 1° parte
    digitalWrite(8,HIGH);      
    digitalWrite(12,HIGH);   
    
    digitalWrite(7,HIGH);    
    digitalWrite(4,LOW);
     
    digitalWrite(13,HIGH);  
    digitalWrite(2,LOW);
   
  
    delay(3000);
    
    // 2° parte 
    digitalWrite(8,HIGH);
    digitalWrite(12,HIGH);  
   
    digitalWrite(7,LOW);    
    digitalWrite(4,HIGH);
      
    digitalWrite(13,LOW);
    digitalWrite(2,HIGH); 
    
    
    delay(3000);
    
    // 3° parte
    digitalWrite(8,LOW);
    digitalWrite(12,LOW);
    
    delay(1000);
    
}

Comunque sei sicuro che ci vogliono i diodi? io so che l' sn754410ne li ha gia integrati e anche nello schema postato da Madwriter non compaiono.

Il datasheet a riguardo della temperatura dice --> Continuous total power dissipation at (or below) 25°C free-air temperature (see Note 2)

NOTES: 2. For operation above 25°C free-air temperature, derate linearly at the rate of 16.6 mW/°C. To avoid exceeding the design maximum virtual junction temperature, these ratings should not be exceeded. Due to variations in individual device electrical characteristics
and thermal resistance, the built-in thermal overload protection can be activated at power levels slightly above or below the rated
dissipation.

che tradotto alla buona con google traduttore non ha molto senso --> Continua dissipazione di potenza totale a (o sotto) a 25 ° C in aria libera della temperatura (vedi nota 2) Per un funzionamento superiore ai 25 ° C in aria libera della temperatura, ridurre linearmente al tasso del 16,6 mW / ° C. Per evitare di superare la durata massima di progettazione temperatura di giunzione virtuale, queste valutazioni non devono essere superati. A causa di variazioni nelle caratteristiche dei singoli dispositivi elettrici e la resistenza termica, il built-in protezione termica può essere attivata a livelli di potenza leggermente sopra o sotto la valutazione dissipazione.

Nel frattempo potete suggerirmi qualche altro modo per pilotare i motori io avevo pensato con degli opotisolatori e qualche porta NOT si potrebbe fare o sto solo dicendo cavolate? :~

skalash:
Nel frattempo potete suggerirmi qualche altro modo per pilotare i motori io avevo pensato con degli opotisolatori e qualche porta NOT si potrebbe fare o sto solo dicendo cavolate? :~

Comprati questa che è facilissima da usare:
http://www.ladyada.net/make/mshield/

altrimenti dai un occhiata qui:
http://glgprograms.altervista.org/index.php?p=micro/arduino-8