Schema collegamento Arduino MEGA2560 + level shifter + MPU6050

Ciao ragazzi, finalmente mi sono deciso di collegare il level shifter, come consigliato da astrobeed, tra la mia Arduino mega2560 e il giroscopio mpu-6050.
Questo dovrebbe ridurre gli errori/problemi che l'mpu-6050 genera collegato direttamente alla mega2560.

Mi dite se il collegamento è corretto?
ho il terrore di fare danni..

Grazie!

Il lato HV (5V) va bene, il lato LV (3.3V) non va bene, devi collegare LV al 3.3V della Mega, l'alimentazione del modulo con l'MPU deve essere quella indicata dal produttore, se è dotato di regolatore 5V, se è senza regolatore 3.3V.

Ciao astrobeed,

l'alimentazione del modulo con l'MPU deve essere quella indicata dal produttore, se è dotato di regolatore 5V, se è senza regolatore 3.3V.

Se è dotato di regolatore, ti riferisci all MPU6050 o al level shifter?
Perchè l'MPU6050 è 5v tolerant (attualmente appunto eì attaccato direttamente ai 5v arduino)

Ti allego il nuovo schema e l'immagine con le istruzioni del level shifter.
Noterai che il level shifter è leggermente diverso da quello che appare nel mio schema comunque non credo ci siano problemi.

Se il Level Shifter e' dotato di regolatore interno ( come pare ) va' bene il primo schema che hai postato.
Sempre che la MPU6050 voglia il 3.3V sul Vcc ( gliela fornisce il Level Shifter ). Altrimenti se pure l'MPU6050 ha il suo regolatore dovresti collegarla al +5V e lasciare l'uscita LV del Level Shifter libera

Ciao Brunello,
ricordo che la priva volta che lessi di questo modulo giroscopio, il GY-521, notai la dicitura:
voltage 3.3v/5v (5v tolerant)

Dalle istruzioni :

Alimentazione e interfaccia I2C:

Il Modulo può essere alimentato con un valore di tensione continua che deve essere compreso tra un minimo di 3V ed un massimo di 5V.

Poiché il chip MPU-6050 prevede di essere alimentato con una tensione Vdd compresa tra 2.375V e 3.46V, il modulo utilizza un regolatore di tensione interno per riportare la tensione esterna applicata entro i limiti permessi per la tensione Vdd e precisamente 3.3V.

Per quanto riguarda i livelli della logica di controllo va osservato, in particolare per il livello logico High, che non si deve superare il valore di alimentazione Vdd ( che al massimo potrà essere di 3.6V) e questo pone un vincolo alla alimentazione ed ai livelli logici dell’utilizzatore esterno (MCU/microController/Arduino ecc) a meno che le porte SDA e SCL di quest’ultimo non siano di tipo Open-Collector. Se quest’ultima condizione non è verificata, ovvero i livelli logici dell’utilizzatore esterno sono superiori a 3.3V, è allora necessario interporre tra questo ed il GY-521 un Convertitore di Livelli Logici (Logic Level Shifter LLC) da 5V a 3.3V acquistabile separatamente nel negozio.

NOTA sulla compatibilità con Arduino:
Arduino attua, con la Libreria Wire fornita con l’IDE, la comunicazione I2C sulle porte A4 (SDA) e A5 (SCL) che sono Open-Collector a meno che, via software, non si abiliti il pull-up interno del microController.

Purtroppo Wire abilita il pull-up interno per cui il livello logico High sulle porte A4 e A5 si porta a 5V (valore di alimentazione di Arduino) creando una situazione di incompatibilità con i dispositivi che hanno una logica di controllo con livello High inferiore a 5V.

Per ristabilire la compatibilità e necessario modificare il file twi.c della libreria Wire, eliminando le istruzioni di attivazione del pull-up. A tale riguardo con il modulo invieremo anche le istruzioni per procedere in tal senso.

Relativamente poi all’alimentazione del modulo si può utilizzare sia l’uscita a 5V che a 3.3V di Arduino.

Quindi diciamo che il primo schema che ho postato potrebbe andare?

Che casino che state facendo.
L'MPU6050 NON è 5V tolerant, è un device che DEVE funzionare a 3.3V, semmai è la breakout che dispone di un regolatore a 3.3V pertanto si può alimentare, la scheda, a 5V.
Il level shifter non dispone di nessun regolatore, sono solo dei mos, e richiede le due alimentazioni distinte, 5V per il lato HV e 3.3V per il lato LV, il consumo di corrente è irrisorio, pochi uA.
Se la breakout con l'MPU6050 ha il regolatore, come sembra, il suo pin Vcc va collegato al 5V, non va collegato al pin LV del level shifter.

astrobeed:
Che casino che state facendo.
L'MPU6050 NON è 5V tolerant, è un device che DEVE funzionare a 3.3V, semmai è la breakout che dispone di un regolatore a 3.3V pertanto si può alimentare, la scheda, a 5V.
Il level shifter non dispone di nessun regolatore, sono solo dei mos, e richiede le due alimentazioni distinte, 5V per il lato HV e 3.3V per il lato LV, il consumo di corrente è irrisorio, pochi uA.
Se la breakout con l'MPU6050 ha il regolatore, come sembra, il suo pin Vcc va collegato al 5V, non va collegato al pin LV del level shifter.

Ok, vediamo se ci sto capendo qualcosa..
Ecco lo schema:

E' corretto?

Si, così va bene.

Il level shifter non dispone di nessun regolatore, sono solo dei mos, e richiede le due alimentazioni distinte, 5V per il lato HV e 3.3V per il lato LV, il consumo di corrente è irrisorio, pochi uA.

Dissento, visto che questa board Level Shifter dispone di regolatore da +5V a +3.3V.
Quindi lascia pure il pin LV libero

Ok.. quindi:

dovrebbe andare??

Allora, cablato e provato l'ultimo schema e il gyroscopio parte e funziona.

Ora inizio qualche test per vedere se gli errori del giroscopio (che commetteva con il vecchio cablaggio) sono stati risolti con l'utilizzo di questo schema e relativo utilizzo del level shifter.

Per ora grazie 1000 ragazzi, come sempre siete stati utilissimi.