Alimentazione esterna motori DC +L293D+ Breadboard

Ciao, ho 54 anni ed ho promesso a mio figlio di 7 che gli avrei costruito un Robot. Non so quasi nulla di elettronica a parte quello che ho letto in un paio di libri. Ora, ho uno chassis con due motori DC che richiedono 6V per funzionare ed ho un integrato L293D che ho messo su una breadboard. Ho fatto i vari collegamenti ma non riesco a capire come mettere l'alimentazione esterna (5 pile da 1,5V) per fare muovere i due motori. Di seguito metto la pinnatura che ho utilizzato e due righe di codice che vovrebbe essere un test per i due motori:

/* 01/06/2013: legenda per L293D
----- motore 1 
pin L293 ¦ Nome     ¦ Porta rduino
1           ¦1,2EN     ¦ porta digitale 4
2           ¦1A        ¦ porta digitale 5
3           ¦1Y        ¦ Terminale 1 del motore (filo)
4           ¦Heat Sink ¦ GND
5           ¦Heat Sink ¦ GND
6           ¦2Y        ¦ Terminale 2 del motore (altro filo)
7           ¦2A        ¦ Porta digitale 12
8           ¦Vcc2      ¦ Porta 3,3V
---- motore 2
9           ¦3,4EN     ¦ Porta digitale 6
10         |3A        ¦ Porta digitale 7
11         ¦3Y        ¦ Terminale 2 del motore 2
12         ¦Heat Sink ¦ GND
13         ¦Heat Sink ¦ GND
14         ¦4Y        ¦ Terminale 1 del motore 2
15         ¦4A        ¦ Porta digitale 11
16         ¦Vcc1      ¦ limentazione 5V
--------------------------------------------- */

 //motore 1
 const int motor1Pin = 5;   // 1A
 const int motor2Pin = 12;  // 2A
 const int enable1Pin = 4;   // 1,2EN
 //motore 2
 const int motor3Pin = 10;   // 3A
 const int motor4Pin = 11;  // 4A
 const int enable2Pin = 6;   // 3,4EN 
 void setup(){
 //motore 1
pinMode(motor1Pin,OUTPUT);
pinMode(motor2Pin,OUTPUT);
pinMode(enable1Pin,OUTPUT);
//motore 2
pinMode(motor3Pin,OUTPUT);
pinMode(motor4Pin,OUTPUT);
pinMode(enable2Pin,OUTPUT);

digitalWrite(enable1Pin,HIGH);
digitalWrite(enable2Pin,HIGH);
    }
 void loop(){
 digitalWrite(motor1Pin,HIGH);  // 1A
 digitalWrite(motor2Pin,HIGH);  // 2A
digitalWrite(motor3Pin,HIGH);  // 3A
digitalWrite(motor4Pin,HIGH);  // 4A 
  delay(300);
  digitalWrite(motor1Pin,LOW);  // 1A
 digitalWrite(motor2Pin,LOW);  // 2A
  delay(3000);
digitalWrite(enable1Pin,LOW);
digitalWrite(enable2Pin,LOW);
delay(300);
digitalWrite(enable1Pin,HIGH);
digitalWrite(enable2Pin,HIGH);
delay(300);
 }

chiedo se perfavore qualcuno puo' darmi una mano.
Spero di essere stato chiaro nell'esposizione del problema, altrimenti vedro' di rimediare.
grazie in anticipo.
Massimo

edit by mod: per favore includere il codice usando gli appositi tag

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

Vcc é l' alimentazione del L293D
Vcc2 é l' alimentazione del motore. Qua devi collegare i 6V.

Ciao Uwe

GRAZIE!!
solo una cosa non ho ancora compreso, la massa (GND) della mia alimentazione esterna la collego anchessa alla bradbord dove c'e' gia' la GND di arduino UNO?
In pratica, da una parte della b.board avro' alimentazione e GND di arduino e dall'altra alimentazione e GND dell'alimentazione esterna?

ciao

Tieni separate le 2 masse.

Vespucci:
Tieni separate le 2 masse.

NON TENRE LE MASSE SEPARATE. Devi collegarle tra di loro. Il L293D ha solo una massa.

Ciao Uwe

Scusa Uwe (ti faccio questa domanda anche per me), ma se ha 2 alimentazioni separate, alimenta la logica e motore con batterie e arduino solo per i segnali ?

La parte logica del L293D funziona a 5V. Puoi alimentarla dal Arduino. La parte di potenza (motore) la alimenti separatamente perché l' Arduino non puó fornire le correnti necessarie.

In generale é da dire che la misura di tensione avviene sempre tra 2 punti. Se non colleghi le masse non c'é riferiemnto e percui non puoi misurare una tensione. Anche un'entrata digitale fa una misura di tensione per sapere che il segnale applicato é L o H.

Ciao Uwe

Aspetta la parte logica del l293D funziona anche a 12 o più , quello che volevo dirgli è alimentare sia logica che motore con le batterie e arduino solo con usb, e comunque non è questo il problema, è quando hai specificato che le masse devono essere in comune che mi hai messo dubbi su come ho fatto fino a ora io. :~

Ti spiego fino a ora io distinguevo proprio alimentazione e masse del motore da quella di arduino, e dato che con l293d il tutto funzionava sono andato giù tranquillo, ma dato che erano tutte sperimentazioni in vista di produrre un attrezzo con 2 integrati lmd18200 e 2 motori dc di potenza (24v,2A) , mi consigli comunque di mettere le masse in comune ?

Grazie Uwe, le tue dritte sono state molto utili.
Ieri sera sono finalmente riuscito a far funzionare il tutto sulla bradbord.
Le masse le ho messe assieme (arduino UNO e slimentazione esterna).
Al pin 16 ho collegato i 5V di arduino e al pin 8 il positivo dell'alimentazione esterna (5 pile da 1.5V). Collegato il resto dei Pin digitali di Arduino ed i motori e fatto lo cketck di test ed i motori hanno fatto quello che mi aspettavo.
Posso contnuare con la costruzione di questo mio primo Robot e siccome ho intenzione di renderlo un po' piu' ineteressante mi sa che ci risentiremo.
grazie a tutti.
ciao
Massimo

Vespucci:
Aspetta la parte logica del l293D funziona anche a 12 o più ,...

Il datasheet é chiareo la tensione di alimentazione logica deve essere tra 4,5V e 7V.

Vespucci:
Ti spiego fino a ora io distinguevo proprio alimentazione e masse del motore da quella di arduino, e dato che con l293d il tutto funzionava sono andato giù tranquillo, ma dato che erano tutte sperimentazioni in vista di produrre un attrezzo con 2 integrati lmd18200 e 2 motori dc di potenza (24v,2A) , mi consigli comunque di mettere le masse in comune ?

Non so quante volte in questo forum ho chiesto se le masse erano collegate oppure ho detto di collegare le masse.
Le masse non devono essere collegate solo se hai 2 circuiti di alimentazione isolati e i dati li trasmetti con optoisolatori o con piccoli trasformatori di segnale. In tutti gli altri casi le masse delle diverse alimentazioni DEVONO essere collegate.

Ciao Uwe

Scusa Uwefed ho letto male il datasheet del 293d e vero alim. logica tra 4-5 7v :roll_eyes:

Per le masse da collegare insieme , abbi pazienza lo so che tu probabilmente lo avevi già ripetuto molte volte nel forum e non volevo essere io a fartelo ripetere per l'ennesima volta , ma è una di quelle cose che io pensando di fare la cosa giusta non mi ero mai informato, se pensi che fino a 2 mesi fa non distinguevo un resistore da un condensatore...

Comunque grazie dell'informazione.

alimenta tutto con 5 volt e vedi che funziona tutto bene, io lo utilizzo così per pilotare un motore a 24 volt alimentandolo a 12 per vari motivi ma funziona bene e l293d funziona na meraviglia :wink: evita di mettere regolatori di tensione che appena c’è un carico attaccato scaldano e non è che sia molto bello che dei ragazzi in giro :slight_smile: quindi se alimenti tutto a 5 funziona lo stesso tutto :slight_smile: buona fortuna :slight_smile: