Alimentare l'arduino a tensioni molto basse (2.5V)

Ciao a tutti.
Vorrei interfacciare l'arduino con un accelerometro I2C/SPI, il LIS302DL.
Dal datasheet leggo che andrebbe alimentato a 2.5 V (volendo anche a 3.3), e le linee logiche non dovrebbero avere tensioni più alte della tensione di alimentazione.
Visto che non mi serve tanto number crunching sarebbe una cattiva idea far andare l'arduino a 2.5 V ? In alternativa, come abbassare i livelli logici da 5 a 2.5 V senza troppi componenti?
Il datasheet dell'ATMEGA328P dice che è possibile, ma il resto della board? Il mio è un Arduino Duemilanove, ma mi interessa saperlo anche per le altre board. L'idea sarebbe fornire +2.5 V al pin "5V", bypassando lo stadio di alimentazione, e ovviamente non usare l'USB ma attaccarmi direttamente a TX/RX.
Magari qualcuno ha già provato :slight_smile:

intendi linee analogiche?
scusa ma sono ignorante e non capisco cosa tu intenda per linee logiche :slight_smile:
Potrei chiamare Spock ma ho perso il numero ^^

mmh forse non è il termine corretto. Intendo le linee digitali I2C dell'accelerometro!

MA SCUSA PARLI DI INGRESSI ... ???? e nn dell'alimentazione della scheda ..... ok...
http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1253545607
stesso discorso ... se poi accelerometro da dei valori variabili a seconda della velocità in cui si muove... devi usare quelli analogici... per forza...

puoi abbassare le tensioni dei pin con partitori di tensione come si fa per interfacciare le sd

Quoto NetWorms: partitore di tensione con una resistenza.
Il multimetro deve essere un tuo amico in questa operazione.

Ma qualcuno ha mai usato I2C? è un bus half duplex. Non credo basti un partitore.
Funziona nel verso Arduino -> accelerometro, ma nel momento in cui è l'accelerometro che comunica con l'Arduino dovrei avere come livello logico alto minimo (secondo il datasheet del ATMEGA328p) 0.7 * Vcc = 0.7 * 5 V = 3.5 V, il che è ben difficile se l'accelerometro è alimentato a 2.5 V :smiley:
Sto immaginando un pasticcio tra un partitore, diodo e un transistor, ma sarei felice di copiare un design già fatto :smiley:
Altrimenti mi armo di oscilloscopio, breadboard e tanta pazienza e vi dico cosa viene fuori :stuck_out_tongue:

allora, un conto è l'alimentazione di un oggetto un altro il protocollo di comunicazione.
Puoi usare I2C con oggetti alimentati da 2 a 300V
Alimenta l'accellerometro con il partitore e poi comunica con esso tramite I2C con i PIN 4 e 5 dell'arduino
Non dovresti aver problemi

il datasheet dell'accelerometro (e penso anche di qualsiasi dispositivo simile) dice, riguardo gli Absolute Maximum Ratings (cioè neanche i parametri operativi, quelli di limite costruttivo):
Vin Input voltage on any control pin: -0.3 to Vdd_IO +0.3 V -> 2.8 V
Quindi dandogli 5 V potrei andare fuori specifica e rovinare l'accelerometro.

Mboh, forse non riesco a trovare le parole giuste per esprimere il concetto che ho in testa.

NON DEVI DARE 5V ALL'ACCELLEROMETRO: DEVI USARE UN PARTITORE DI TENSIONE CHE DA 5V FA SCENDERE LA TENSIONE A 2.5V

In questa pagina puoi trovare info al riguardo.
Nella figura di destra il Vin è la tesione 5V di arduino mentre la Vout quella che andrà sull'accellerometro.
Giocando con R1 e R2 ottieni una Vout di 2.5V

Non urlare per favore.
Se leggi bene parlo di tensione sulle linee digitali.
Vin Input voltage on any control pin

ma i raltà io nn ci ho capito molto ...

sono segnali ad alta impedenza.. se usi solo 2 apparchi attacati .. beh si possono considerare come segnali digitali .."normali"...
visto che hai parlato di tansistor (io uso solitamente relè a stato solido) io realizzerei appunto un circuito a transistor, se voi esagerare (ma visto le tensioni basse nn è necessario) con dei accopiatori ottici ...
l'unica cosa che nn ho capito... come usi i canali digitali di arduino.... dovresti usarne 2 "IN" e 2 "OUT" ... ma devi stare molto attento a come usi il protocollo ... se riesco butto poi giù uno schema .. semplificato ... per discuterci ...

Chiui la mia intenzione non è urlare ma evidenziare una cosa che sto cercando di dirti da almeno 5 post ma che per mia incapacità comunicativa non riesco.

Una tensione per essere definita tale è riferita a massa.
5V sono 5V perchè riferiti allo 0 del GND, 3.3V sono 3.3V perchè riferiti al GND e così via.

Ora se i pin 4 e 5 sono un bus non sono riferiti al GND e quindi non danno 5V. I 5V sono nella alimentazione ed è qui e solo qui che devi fare il partitore.

Tuttavia mi son preso la briga di fare una semplicissima ricerca con google:

Il secondo link "Interactive Matter" ti dice le medesime cose ma in inglese.
Ti dice a cosa ha collegato i vari PIN e solo per la tensione ti fa presente che è più bassa di 5V ovvero 3.3 (se vuoi essere certo di non bruciare nulla van bene anche 2.8V).

A questo punto per aver paura di peccare di superficialità dovuta all'ora tarda di ieri sera mi son imposto di fare una ricerca sempre con Google ed ho trovato questo post
Sketch to Support the LIS302DL (Break out Board) - SparkFun Electronics Forum e questo post
http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1213072318 dove dicono essenzialmente la stessa cosa: qui hanno addirittura alimentato l'accellerometro con 5Vdc e consigliano comunque un pullup da 5.6k per stabilizzare il segnale

Spero davvero di aver trovato le parole giuste trasportato dal fresco di questa mattinata d'autunno ;D

sdai un occhio ...http://www.lancos.com/e2p/easyI2Cbus.gif ...
ma io mettere 4 transistor .. i 2 agguintivi alimentati a 2.5v con tensione di controllo le uscite del pin 5V o 5 v con partitore per abassarla) . ... se nn disponi dell'alimentazione a 2.5 v ..allora poi usare un partitore per alimentare direttamente i pin del "accelerometro" o i transistor ....
ho fatto un disegno ma nn riesco ad inserirlo sulla base di quello del link .. anche se nn mi è chiaro la gestione della bidirezionalità dei pin di arduino.... devi cambiare il pinmode() a seconda se comunichi o ricevi ... boh forse ?

nathanvi: ma hai letto il datasheet?
Ti ho anche citato la parte rilevante.
Non dico tutto. Absolute Maximum Ratings. È una pagina.
Tutti i link che mi hai mandato sono di gente che se ne sbatte e addirittura qualcuno lo alimenta a 5V

Ora se i pin 4 e 5 sono un bus non sono riferiti al GND e quindi non danno 5V. I 5V sono nella alimentazione ed è qui e solo qui che devi fare il partitore.

Quindi i bus non lavorano in tensione, non ci passano elettroni e comunicano per magia.
No. I bus hanno una loro tensione di lavoro. Ad esempio +/-12 V per la seriale del pc (cosiddetti livelli CMOS), 5 V per i TTL, 3.3 V per i LVTTL.
I2C di per se non specifica una tensione di lavoro.
Ma se alimenti un dispositivo I2C a 5 V, questo comunicherà con livelli da 5V. Se lo alimenti a 3.3 questo userà i livelli a 3.3.
Se ne fai parlare due alimentati a tensioni diverse potresti rovinare qualcosa. Qualche volta si può fare, in questo caso NO perchè il datasheet (ma solo le leggi!) lo vieta.
Nel mio primo post volevo alimentare l'arduino a tensioni più basse proprio per farlo comunicare senza aggiungere hardware. Pensavo che qualcuno ci avesse già provato e avesse esperienza a riguardo.
A quanto pare no. Chiederò sul forum in inglese, non c'è nessun problema.
Il fatto che trovi tanti link di gente che dice che "funziona" non vuol dire che è la cosa corretta. Certo magari va, ma non ci si può fare affidamento per un progetto più complesso.
Ah conoscevo già lmgtfy. Preferisco il caro vecchio justfu ckinggoogleit.com peccato che qui non funzioni...

dadebo1:
La libreria Wire permette già di controllare dispositivi I2C usando i piedini 4 e 5, quindi non li gestitsco manualmente. Tra l'altro l'ATMEGA328 lo gestisce da se in hardware

Sto provando anche io a fare uno schemino, appena ha un po' di senso lo posto. :slight_smile:

capito anche io ora... :slight_smile: grazie.. io sono un po' più elettrico e meno .. harduwista :slight_smile: ...

ok ... io nn ho capito come aggiungere l'immagine nel post .. amen ..

C:\Documents and Settings\dbombelli\Documenti\Immagini\i2c.gif ?? dal mio pc nn si vede ...:frowning:

Ho trovato questo doc della philips. http://www.semiconductors.philips.com/acrobat_download/applicationnotes/AN97055.pdf
Ora però sto facendo altro con l'arduino, poi quando torno sugli accelerometri lo provo :slight_smile: