Non riesco ad utilizzare l'I2C.

Buongiorno a tutti,
ho acquistato il sensore GY-801 (foto), che comprende giroscopio, bussola, accelerometro, barometro e termometro digitali. Sono ormai due settimane che cerco disperatamente di farlo funzionare guardando siti, blog e tutorial, ma senza risultati. Da quello che penso di aver capito, è Arduino che non è in grado di “vedere” il sensore, non che non sia in grado di utilizzarlo.
Io ho collegato SCL al pin A5 e SDA ad A4, come indicato ovunque, e, ovviamente, ground e vcc_in. Dopo diversi tentativi falliti, mi è venuto appunto il dubbio che Arduino non vedesse il sensore e ho scaricato dal sito ufficiale lo sketch in grado di rilevare i dispositivi connessi tramite I2C. L’output è stato ripetutamente chiaro: no I2C devices found.
Chiedo a voi, che sicuramente avete più esperienza di me, di chiarirmi un po’ la situazione.
Grazie mille e buona giornata

20161010_191232.jpg

20161010_191257.jpg

20161010_191429.jpg

Ti invitiamo a presentarti (dicci quali conoscenze hai di elettronica e di programmazione) qui: Presentazioni
e a leggere il regolamento se non lo hai già fatto: Regolamento
Qui una serie di link utili, non inerenti al tuo problema:

Primo suggerimento, visto che mi pare i pin sono giusti, collega direttamente senza passare dalla breadboard.

Nell'attesa della tua presentazione (... come ti ha segnalato Nid), suggerisco :

  1. verifica che arrivino veramente i +5V sul pin VCC_IN
  2. verifica il corretto collegamento tra il GND di Arduino ed il GND del GY-801
  3. invece di A4 ed A5, onde evitare qualisasi errore, collega SCL ed SDA del GY-801 agli appositi pin che trovi su Arduino UNO, vicino al connettore della USB, chiamati (e normalmente marcati) appunto SCL ed SDA

Guardando lo schema sembrerebbe che le resistenze di pull-up (da 2.2K) sono già presenti quindi ... lo scanner I2C dovrebbe sicuramente rilevare le varie unità presenti su quella schedina.

Guglielmo

Occhio che quella Breadboard non ha le linee di alimentazione contigue per tutta la lunghezza ( righe rosse e blu ) e li dove hai collegato i cavetti che vanno alla schedina probabilmente non c'e' tensione

Brunello:
Occhio che quella Breadboard non ha le linee di alimentazione contigue per tutta la lunghezza ( righe rosse e blu ) e li dove hai collegato i cavetti che vanno alla schedina probabilmente non c'e' tensione

Difatti ... vedi mie domande ai punti 1. e 2. ... ;D ;D ;D

Guglielmo

Grazie mille Guglielmo,
riguardo alla tensione ero sicuro che arrivasse (da tante volte che ho attaccato/staccato i vari collegamenti), ma non avevo mai provato a collegare ai pin SCL e SDA di Arduino: adesso viene finalmente visto!!! Ora devo solo riuscire a leggere i dati con l'ausilio delle librerie.
Grazie a tutti per la tempestività e per l'aiuto.

Tobia

Ragazzi mi spiace: sono sempre io... è stato un lampo... per un attimo lo scanner ha funzionato e mi ha dato l'indirizzo, ma poi ho provato a accedere all'L3G4200D il quale ha funzionato per 7-8 secondi, poi si è bloccato. Ho rifatto lo scanner (senza aver toccato niente dal momento in cui aveva funzionato) e non l'ha più ritrovato... :frowning: :frowning: Ho provato a rifare i collegamenti e niente...

C'è evidentemente un falso contatto ... le breadboard sono maledette e i jumpers non aiutano ... ::slight_smile:

Guglielmo

Grazie mille a tutti: ho trovato una saldatura malfatta. Dopo averla sistemata, il sensore funziona (o almeno sembra funzionare, nel senso che i dati in output sono alquanto strani) a dovere. Ora però non riesco a capire come devo fare per determinare l'inclinazione. Questo sensore mi servirà per rilevare appunto l'inclinazione su un piccola macchinina comandata a distanza, ma non so come fare. Io pensavo che il giroscopio desse come output l'inclinazione sui tre assi, non le velocità di rotazione... Qualcuno ha dei suggerimenti?
Grazie in anticipo
Tobia