mpu6050 e L293D

Ciao a tutti sono sicuro che qualcuno avrà già affrontato il problema, ma proprio non so che pesci prendere :frowning:
Stavo cercando di fare un robot self-balancing utilizzando l’MPU6050 come giroscopio e L293D che comanda i due motori delle ruote.
Dopo aver collegato tutto ho provato i vari collegamenti in “singolo” e tutto ok (quindi leggo i valori del MPU6050 e i motori girano).
Nella creazione dello sketch per il self-balancing tutto bene finchè non alimento anche i motori (riesco a leggere i valori del giroscopio), perchè a quel punto dopo pochi secondi di funzionamento corretto arduino uno si bocca. Non capisco dove sia l’errore e cosa succeda, so solo che da monitor seriale non vedo più i valori del giroscopio, e i motori ruotano senza più controllo.

Allego lo sketch e il circuito.

Grazie dell’aiuto in anticipo :slight_smile:

robot_balancing.ino (7.59 KB)

La mia ipotesi è che le batterie dei motori non hanno la coppia necessaria per controllarlo . La L293 è limitata a circa 500 mA per motore credo .

Ciao raschemmel ed innanzitutto grazie della risposta. Potresti per favore spiegarmi meglio? Non ho pressoché nessuna conoscenza in elettronica. Si L293D ha 500mA per uscita e le batterie sono da quasi 2A l'una. Al momento per quanto riguarda l'alimentazione ho Arduino alimentato tramite usb, l'MPU6050 ai 3,3v di arduino e solo i motori vengono alimentati dalle batterie. Grazie ancora

e le batterie sono da quasi 2A l’una.

Non capisco cosa vuoi dire. Che tipo di batterie avete?
Quante batterie?
Puoi pubblicare una foto delle vostre batterie e motori e un link fornitore per i motori ? Sai come misurare la corrente assorbita dalle batterie quando i motori sono in funzione ? Qualcosa su i motori o le batterie è probabilmente la causa , ma senza particolari non posso fare .

(Google Translate)

Batterie ricaricabili normalissime della panasonic. Sulle batterie c'è scritto 1900 mAh e sono 4.

http://www.all-batteries.it/batterie-ricaricabili-nimh-blister-x4-aa-panasonic-ready-to-use-1-2v-1900mah-ach6437.html

Ecco i motori:

http://www.futurashop.it/motoriduttore-6-vdc-180-rpm-9145-motorid24wd

Ho provato con un alimentatore da 1A ma le ruote neanche girano...

Ed in più i provato con questa shield motor:

http://www.futurashop.it/motor-shield-per-arduino-montata-8220-vma03

ma il risultato non cambia.

Grazie del tempo dedicatomi

Sulle batterie c’è scritto 1900 mAh e sono 4.

ciò è la tensione dalle batterie allo scudo del motore ?

4 x 1.5V = 6V

La L293 perde 1,5 a 2V internamente. È necessario fornire lo scudo con almeno 8V per ottenere 6V al motore .

Motors

Alimentazione max.: 6 Vdc
Rapporto di riduzione: 120:1
Coppia torsione:

  • a 3V: 1,2 kg cm
  • a 6V: 1,92 kg cm
    Velocità senza carico:
  • a 3V: 90 rpm
  • a 6V: 180 rpm
    Corrente senza carico:
  • a 3V: 60 mA
  • a 6V: 71 mA
    Corrente di stallo:
  • a 3V: 260 mA
  • a 6V: 470 mA
    Dimensioni motoriduttore (mm): 55 x 48,3 x 23
    Peso: circa 45 g

Dopo aver collegato tutto ho provato i vari collegamenti in “singolo” e tutto ok (quindi leggo i valori del MPU6050 e i motori girano).
Nella creazione dello sketch per il self-balancing tutto bene finchè non alimento anche i motori (riesco a leggere i valori del giroscopio), perchè a quel punto dopo pochi secondi di funzionamento corretto arduino uno si bocca. Non capisco dove sia l’errore e cosa succeda, so solo che da monitor seriale non vedo più i valori del giroscopio, e i motori ruotano senza più controllo.

Se ho capito bene , lei dice che dopo pochi secondi di un corretto funzionamento si perde le coordinate del giroscopio e il ripristino Arduino e dei motori a corto di controllo?

Non riesco a leggere il tuo schema di circuito , ma sembra che ci sia un errore nell’angolo in alto a destra con il piccolo circuito .
I fili rossi e neri da quel bordo stanno andando alla stessa connessione . Poiché il diagramma è così povero resoltution pixel non riesco a leggerlo . Si prega di ripubblicare lo schema elettrico con un file di immagine di almeno 1 Mbyte .

Non posso aprire il file di codice . Si prega di copiare e incollare il codice nel post tramite il pulsante tag codice ( [ < / > ] )

Ok. Questa sera posteró il codice è lo schema di fritzing Potrei aver sbagliato il collegamento su fritzing ma quello fisico è corretto perché riesco a controllare la rotazione dei singoli motori con uno sketch apposito. Il codice sicuramente andrà corretto ma finché si blocca tutto non ho modo di lavorarci.

Le batterie sono da 1.2x4=4.8V

Dopo pochi secondi di lavoro il monitor seriale smette di mostrare il valore del giroscopio ed i motori ruotano senza controllo nella direzione in cui stavano andando nel momento che il monitor seriale si è bloccato.

Non credo che si sta per piacerà quello che sto per dirvi , ma penso che il problema è causato dal collegamento del monitor seriale. Come stai di alimentare il arduino ? Si sta utilizzando il perno Vin o USB ? L' unico modo che conosco per verificare questo è il problema è quello di collegare un LCD I2C e stampare i valori per il display LCD in modo da poter eseguire senza il cavo del monitor seriale USB collegato . Se il problema va via dopo aver rimosso il cavo USB che poi conferma che era la connessione USB che causa il problema . Il problema è che è necessario utilizzare il più piccolo ritardo possibile per le stampe a cristalli liquidi in modo da non rallentare il codice di bilanciamento .

Inoltre , 4,8 volt può non essere sufficiente a causa della caduta di tensione interna del chip L293 . Non si può frun 6V motori con 4.8V = 1,5 V = 3.3V . È possibile verificare questo misurando la tensione sul motore al primo avvio di eseguirlo. Ho bisogno di sapere esattamente che cosa tensione è sui motori al momento di iniziare a farlo funzionare .

Ho provato anche senza il monitor seriale ma il risultato non cambia. Ad un certo punto vedo le ruote girare senza controllo. Il monitor seriale lo utilizzo proprio come debug. Volevo cercare di capire dove è come si bloccava, quindi ho abilitato il seriale, altrimenti non lo avrei usato.

Ho provato anche senza il monitor seriale ma il risultato non cambia. Ad un certo punto vedo le ruote girare senza controllo.

Forse si rimuove il cavo USB ?

Anche questo fatto. Ho provato in tutti i modi possibili, se i motori ruotano dopo qualche secondo lo sketch si blocca e Arduino rimane nello stato in cui si trovava prima di bloccarsi. Se però stacco l'alimentazione al motore non ho nessun problema, lo sketch continua il suo loop.

Non so proprio cosa fare....

Se però stacco l'alimentazione al motore non ho nessun problema, lo sketch continua il suo loop.

Hai bisogno di provare con un alimentatore 8V / 3A al posto delle batterie . Non ha senso in ogni ulteriore test con le stesse batterie e non vi è alcun senso cercare qualsiasi altra cosa fino a quando si è tentato un 8V // alimentatore 3A (non batterie) . Ottenere un alimentatore e correre i fili dalla fornitura ai motori . Utilizzare un metro per misurare la corrente . Nel frattempo , mentre siete alla ricerca di un alimentatore , misurare la tensione del motore e corrente. Ho già chiesto queste informazioni in Risposta # 7 e non capito.

Ho controllato la tensione ed arrivano 3.2 volt alle ruote. Ho provato alimentandolo a 7.5V ma 1A (per il momento non ho altro) ma non cambia niente. Ho aggiunto anche un led con lo scopo del lampeggio. Finchè le ruote ruotano secondo il controllo dello sketch il led lampeggia, dopo pochi secondi le ruote girano senza controllo in un unico senso ed il led rimane fisso acceso.

Allego ancora il collegamento sperando che si veda meglio. Non allego lo sketch perchè ne ho provati di vari e fatti in maniera differente, ma il risultato non cambia.

Ho pensato a diodi e condensatori, potrebbero essere di aiuto?

Se fosse danneggiato qualcosa credo che non andrebbe mai e non solo quando alimento i motori.

Spero che tu abbia idee per me, io le ho finite. Nel frattempo cercherò un alimentatore da 8V 3A.

Grazie ancora

3.2V non è sufficiente tensione ai motori . Ho ancora bisogno di sapere qual è il corrente del motore è . Prova a testare i motori con un altro codice in esecuzione

Chiaramente il cablaggio del motore o il controller ha un problema . È necessario scrivere un programma di test che contiene il codice solo per i motori e nient'altro. Si deve avere più di 3,2 V attraverso i motori . Ho ancora bisogno di conoscere la corrente del motore . Si stanno facendo alcun progresso . È necessario rimuovere tutti i cavi per il controller del motore e ricominciare da capo . Collegare il cablaggio di controllo del motore SOLO e testare i motori con un altro codice o fili collegato ! Non cercare di eseguirlo con solo 3,2 V attraverso il motore . È necessario trovare una fonte di energia in grado di fornire 8V al controller del motore . Misurare la tensione sul pin 16 del L293 e verificare che sia 5V . Dopo aver rimosso tutti i fili e il codice ad eccezione di quelli che controllano i motori e si dispone di una fonte di alimentazione con 8V sul pin - 8 del L293 , quindi verificare i motori . ( E misurare la corrente del motore )

È necessario rimuovere tutti i cavi per il controllo del motore come bene e ricablare da zero . Collegare solo i fili per il motore - 1 prima e testarlo . Quindi collegare i cavi per il motore -2 e testarlo. Anche misurare la tensione sul pin 5V del arduino .

Non ho intenzione di guardare un Fritzing . Ci vuole troppo tempo per tracciare le linee . Se si disegna uno schema su un foglio di carta per stampanti e pubblicare una foto di esso controllerò la presenza di errori . Se non è possibile disegnare uno schema è possibile fare un elenco di cablaggio ( un elenco numerato di ogni componente , con l'elenco a cui è collegato il componente . ) Guarderò esso .

Ok, ricomincerò tutto rifacendo i collegamenti e cercherò di capire quanta corrente arriva a ti farò avere tutto assieme allo schema dei collegamenti. Ieri sera ho alimentato i motori a 8v1A ma lo stallo è avvenuto lo stesso.

Ho già testato solo motori ed l293 con uno sketch apposito, e non ho alcun problema, controllo i motori in singolo in direzione e velocità. Il problema si presenta solo quando collego MPU6050 con il motore.

Ti farò sapere tutto nei prossimi giorni, per almeno 2 giorni non riuscirò a fare niente.

Nel frattempo ti ringrazio della disponibilità :)

Ho già testato solo motori ed l293 con uno sketch apposito, e non ho alcun problema, controllo i motori in singolo in direzione e velocità. Il problema si presenta solo quando collego MPU6050 con il motore.

Sta dicendo che se si esegue solo il codice del motore senza codice MPU6050 che i motori funzionano bene con il gruppo batterie 4,8 V ?

perché non hai menzionato prima? Non pensi che sarebbe utile conoscere ?

Ho bisogno di testare i motori , come ho richiesto, senza alcun codice MPU6050 esecuzione. Ho bisogno della tensione attraverso entrambi i motori e la corrente attraverso il motore sinistro e il motore DESTRA.

Ma lo ho scritto nel post di apertura... :) Con gli attuali componenti del mio progetto (Arduino uno, l293d, 2 motoriduttori, Mpu6050 e scheda bluetooth hc05) ho eseguito tutti i test con degli sketch creati appositamente ed i collegamenti usati nel progetto.

Se io in questo momento carico lo sketch dei motori li controllo senza difficoltà. Se carico lo sketch di lettura valori dell'Mpu6050 funziona correttamente.

La scheda bluetooth ora è scollegata.

Il problema è in tutti gli sketch composti di tutti i componenti, e si presenta solo quando alimento i motori (ho creato più sketch che lavorano in maniera differente ma con tutti i componenti)

Grazie :)

l problema deve essere che il Google Translate traduzione del tuo post di apertura non mettere in chiaro quello che hai appena affermato nel tuo ultimo post .
Si prega di precisare:
Non c’è niente di sbagliato con i motori ?
( Se si esegue solo il codice del motore , i motori funzionano bene )

SI NO ?

Se questo è vero , il problema è un problema di software e non si può fare a perché il software non è la mia area di competenza e non sarebbe in grado di individuare l’errore.

Tra l’altro , io sono il PST , quindi se non risponde probabilmente è perché sto dormendo . In questo momento è 11:00 in Italia .
È 02:00 dove mi trovo . Mi sveglio nel bel mezzo della notte e rispondo e poi tornare a letto fino alla sera successiva .

Ok, i try ti write in English, sorry for my language. You don't worry, now you sleep. You answer me later. :) Yes the motor run very good if it works alone.

The sketch for all components I belive it is fine because I wrote more sketch and every sketch have the same problem. I toke the function for run the motors from the sketch for motor and I added it at the sketch final

If I run the sketch without power supply for the motor (without power supply for the pin 8 of l293 )it run always good. But if give power supply at the l293, few second and Arduino is not controllable. It is stuck.

If I run the sketch without power supply for the motor (without power supply for the pin 8 of l293 )it run always good. But if give power supply at the l293, few second and Arduino is not controllable. It is stuck.

Pin-8 is the motor power supply . That's where the motor supply should be connected pin-16 is the 5V logic supply for the L293.

Run the motors using only motor code with the motor supply connected to pin-8 of the L293 and tell me if it works.

I do NOT understand what you mean by this:

But if give power supply at the l293, few second and Arduino is not controllable. It is stuck

WHAT does that MEAN ?

Post photos of two hand drawn schematics : 1- schematic of L293 wiring when it works correctly. 2-schematic of L293 wiring when it does NOT work correctly.

Se si sta utilizzando uno scudo del motore che aveva L293 chip su di esso la tua domanda potrebbe avere un senso , perché uno scudo motore ha una presa di ingresso di alimentazione esterna barreljack , ma il diagramma Fritzing che hai postato con il tuo post apertura mostra un chip L293 e vi è una sola pin per la potenza del motore e che è pin- 8 . Pin - 16 è per l' alimentazione logica 5V . Quindi la domanda che hai fatto (che ho detto che non capisco ) non ha senso

If I run the sketch without power supply for the motor (without power supply for the pin 8 of l293 )it run always good. But if give power supply at the l293, few second and Arduino is not controllable. It is stuck.

How can it work with no motor power connected to pin 8 ? Where is the power coming from to drive the motors if there is no power supply connected to pin-8 ? è necessario individuato la fonte di energia per i motori quando lo si esegue con niente collegato al pin 8 e misurare la corrente della fonte di alimentazione e inserire la misura della corrente e la posizione in cui è stata presa la misura.

I have an L293 circuit on a breadboard that I have ALWAYS run with the motor power (12V) connected to pin-8.

Look at the datasheet

Cosa dice su Vcc2 ? ( A pagina 3 )

Do you understand WHY we need to locate tge source of motor power when there is no connection to pin-8 ?

Capite perché quello che stai dicendo non ha alcun senso ?