Go Down

Topic: DOMOTICA: Comunicazione tra arduini tramite RF lowcost (Read 18 times) previous topic - next topic

leo72


..... ed invece che usare un atmega potresti usare un attiny! In questo modo "sprecheresti" meno pin.


Non più. Col metodo della resistenza (Arduino 2009) o del condensatore (Arduino UNO) si può programmare un Attiny85 usando l'Arduino come programmatore.
Ovviamente l'Attiny ha delle limitazioni, non so se può andar bene per il tuo progetto:
1) quanti pin usa?
2) hai una velocità minima di clock richiesta?
3) usi librerie non standard?

dr4gone

1)per il mio telecomando per ora pin 2 3 e 6, ma conto di aggiungere almeno altri 2 pulsanti, quindi conta i pin 2.3,4,5 per i pulsanti e il 6 per il tx, quindi 5 pin digitali.

2) no, dato che deve trasmettere solo una stringa alla pressione di un pulsante non credo che ci siano problemi di clock.

3) Si, virtualwire.h

leo72

1) un Attiny85 di "serie" ha solo 6 pin liberi. Esistono gli Attiny4313 che sono in formato DIP20 ma hanno solo 4 KB di Flash. Quanta memoria consuma il tuo sketch?
2) l'Attiny ha un oscillatore interno che può operare a 1 MHz o 8 MHz. Può usare anche un quarzo esterno (fino a 20 MHz) ma perdi 2 pin.
3) Uhm... Questa potrebbe essere un problema, se utilizzasse specifiche hardware proprie degli Atmega.

dr4gone

mi sa che non fa al caso mio...

lo sketch per ora occupa 3490 bytes quindi siamo quasi al limite...  e conta che dovrei aggiungere il watchdog e lo sleep se capscio come funzionano per risparmiare la batteria...
Quindi sicuramente supererò i 4 Kbytes.

non so cosa usi la libreria virtualwire... ma alla fine uso un atmega e sto tranquillo...

Il problema impellente ora è salvaguardare la vita della batteria.
Tu ne sai qualcosa?


leo72

Hai fatto un po' di confusione con quanto ti ho scritto.  XD
I 4 KB erano riferiti all'Attiny4313, quello in DIP20: te lo menzionavo casomai ti servissero più pin. Un Attiny85 ha 8 KB di flash.

Per quanto riguarda la batteria non so dirti molto: sicuramente un Atmega standalone consumerà meno dell'Arduino completo (esso ha 2 chip sotto tensione, diversi altri componenti sempre alimentati ecc...).

dr4gone

#140
Apr 06, 2011, 07:41 pm Last Edit: Apr 06, 2011, 07:43 pm by dr4gone Reason: 1
Grazie dei consigli..
Con l'attiny85 resterebbe il problema della compatibilità con la libreria virtualwire..

Cmq ora che ho trovato quella pista dell' ibernazione che fa risparmiare ancora di piu batteria.. la seguo.. anche perchè come dice Guglio il modulo RF TX trasmette sempre quando è sottotensione, quindi sicuramente la batteria ne risente...

Ora devo uscire.. ma se entro stasera nessuno mi riesce ad aiutare in questo post, magari apro un topic separato.. magari ha più visibilità e ci si può concentrare meglio sul problema.

superlol

usa un mosfet sull'alimentazione negativa del trasmettitore perchè se rimane sempre sotto tensione è logico che "ciuccia" un bel po di batteria.

poi magari usare un pic a 8bit? si hanno difficoltà nel programmarlo è vero ma costano meno e ce ne sono di 8000 tipi diversi solo a 8 bit. per cui...
Il nuovo forum italiano sull'elettronica: http://www.electroit.tk/ <--- Nuovamente online!

lesto

abbassare il cock (già detto?)
comunque sul datasheet atmega ci sono tutti i trucchi che i progettisti hanno messo per risparmiare corrente :)
sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

dr4gone


usa un mosfet sull'alimentazione negativa del trasmettitore perchè se rimane sempre sotto tensione è logico che "ciuccia" un bel po di batteria.

Bene! mi puoi dire che tipo di mosfet serve e come collegarlo?
Non ne ho mai usato uno..  :smiley-roll-sweat: :smiley-roll-sweat:

Per problemi di spazio avevo sperato che si potesse fare anche solo via software con questo http://www.arduino.cc/playground/Learning/ArduinoSleepCode ,  ma pensandoci da solo forse non basta, poichè manda in sleep il microcontrollore, ma non manda in sleep il TX..
serve sempre il mosfet, vero?

superlol

il mosfet mi pare il più adatto e spreca meno spazio, per il collegamento, base a un pin arduino che deve essere in high poi metti il mosfet tra il negativo del trasmettitore e il negetivo generale, se non funziona mettilo al positivo anche se generalmente non si fa. se non vuoi usare un mosfet anche un NPN dovrebbe andare bene..
Il nuovo forum italiano sull'elettronica: http://www.electroit.tk/ <--- Nuovamente online!

dr4gone

#145
Apr 07, 2011, 03:10 pm Last Edit: Apr 07, 2011, 03:13 pm by dr4gone Reason: 1
non so proprio che tipo di mosfet prendere.. io ho un IRF520. Va bene?

Per i collegamenti se non ho capito male dovrei mettere il source sul GND del TX e il drain sul GND generale?
Sulla gate devo mettere il pin data del tx? o nulla?
Basta solo questo?

Guglio

Cerca sul datasheet del tuo TX se ci sono scritti i consumi..
Secondo me basta un banalissimo transistor
ArduMAP: Mappa degli utenti che utilizzano Arduino.
http://www.guglio.net/ArduMAP

dr4gone

#147
Apr 07, 2011, 04:05 pm Last Edit: Apr 07, 2011, 04:25 pm by dr4gone Reason: 1
Non c'è scritto quasi niente su questo coso... http://www.sparkfun.com/datasheets/Wireless/General/MO-SAWR.pdf

Posso misurare in qualche modo il consumo?
Tipo con un tester misurare quanta corrente assorbe e poi fare i conti?

Intanto ho ridotto le dimensioni a questo:

Conto di isolare i piedini del regolatore di tensione e del pulsante che escono dall'altro lato con un velo di colla a caldo.
Ho messo il regolatore di tensione sul retro e ho recuperato lo spazio per il mosfet o transistor che sia..
Ora basta capire cosa utilizzare e soprattutto come  ]:D :smiley-mr-green:

dr4gone

#148
Apr 08, 2011, 08:59 am Last Edit: Apr 08, 2011, 10:04 am by dr4gone Reason: 1
allora?? c'è qualcuno che ne capisce un po di elettronica?
Mi potete dire se faccio esplodere qualcosa?  :smiley-mr-green: :smiley-mr-green:
Dovrei usare un mosfet come un interruttore.
Devo impedire al modulo TX di rimanere sempre sottotensione e scaricarmi la batteria.

Il modulo TX per ora è collegato così:  
-----  GND
-----  DATA
----- +5V

A quello che ho capito, per interrompere il costante afflusso di tensione al modulo tx devo usare un mosfet.
Ho un IRF520 sotto mano

Quindi devo interrompere il curcuito e ho pensato di farlo così:

Massa dell'atmega sul source e quella del tx sul drain, il tutto pilotato dal pin di arduino, che quando ha livello logico alto (+5v) eccita la gate e chiude il circuito tra source e gain....

Ho preso una cantonata o potrebbe funzionare?

Ma non sono sicuro che funzioni, e soprattutto i collegamenti con la gate e il pin data potrebbero andare?

p.s.
Ragionandoci un po, mi sa che mi conviene fare così:
Dato che il pin che parte da arduino e comanda il tx è uno solo, mi sa che mi conviene lasciarlo diretto tra atmega e TX, e usare un altro pin per fare eccitare la gate, magari mettendogli anche un led per segnalare la trasmissione..

Della serie... Premo pulsante, invio quello che devo al tx con un pin e contemporaneamente setto ad HIGH l'altro pin per il controllo della gate.
Così dovrebbe andare no?


            Atmega                         MOSFET                          TX
-----  GND arduino --------> Source          Drain <------------ GND
-----  pin 13 arduino  -------> Gate
------ pin 2 arduino -----------------------------------------> DATA
----- +5V  arduino ------------------------------------------> +5V

Guglio

ArduMAP: Mappa degli utenti che utilizzano Arduino.
http://www.guglio.net/ArduMAP

Go Up