Pages: 1 ... 8 9 [10] 11 12 13   Go Down
Author Topic: DOMOTICA: Comunicazione tra arduini tramite RF lowcost  (Read 17432 times)
0 Members and 1 Guest are viewing this topic.
Global Moderator
Italy
Offline Offline
Brattain Member
*****
Karma: 332
Posts: 22813
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

..... 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?
Logged


Italy
Offline Offline
Sr. Member
****
Karma: 0
Posts: 331
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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
Logged

Global Moderator
Italy
Offline Offline
Brattain Member
*****
Karma: 332
Posts: 22813
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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.
Logged


Italy
Offline Offline
Sr. Member
****
Karma: 0
Posts: 331
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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?

Logged

Global Moderator
Italy
Offline Offline
Brattain Member
*****
Karma: 332
Posts: 22813
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Hai fatto un po' di confusione con quanto ti ho scritto.  smiley-lol
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...).
Logged


Italy
Offline Offline
Sr. Member
****
Karma: 0
Posts: 331
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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.
« Last Edit: April 06, 2011, 12:43:28 pm by dr4gone » Logged

Riva del Garda, TN / Forlì
Offline Offline
Edison Member
*
Karma: 8
Posts: 2246
Il piu' modesto al mondo
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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...
Logged

Il nuovo forum italiano sull'elettronica: http://www.electroit.tk/ <--- Nuovamente online!

0
Offline Offline
Shannon Member
****
Karma: 131
Posts: 10474
:(){:|:&};:
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

abbassare il cock (già detto?)
comunque sul datasheet atmega ci sono tutti i trucchi che i progettisti hanno messo per risparmiare corrente smiley
Logged

sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

Italy
Offline Offline
Sr. Member
****
Karma: 0
Posts: 331
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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?
Logged

Riva del Garda, TN / Forlì
Offline Offline
Edison Member
*
Karma: 8
Posts: 2246
Il piu' modesto al mondo
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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..
Logged

Il nuovo forum italiano sull'elettronica: http://www.electroit.tk/ <--- Nuovamente online!

Italy
Offline Offline
Sr. Member
****
Karma: 0
Posts: 331
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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?
« Last Edit: April 07, 2011, 08:13:05 am by dr4gone » Logged

Fidenza, Parma
Offline Offline
God Member
*****
Karma: 9
Posts: 783
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Cerca sul datasheet del tuo TX se ci sono scritti i consumi..
Secondo me basta un banalissimo transistor
Logged

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

Italy
Offline Offline
Sr. Member
****
Karma: 0
Posts: 331
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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  smiley-twist smiley-mr-green
« Last Edit: April 07, 2011, 09:25:37 am by dr4gone » Logged

Italy
Offline Offline
Sr. Member
****
Karma: 0
Posts: 331
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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
« Last Edit: April 08, 2011, 03:04:47 am by dr4gone » Logged

Fidenza, Parma
Offline Offline
God Member
*****
Karma: 9
Posts: 783
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ti ho risposto nella discussione.
Logged

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

Pages: 1 ... 8 9 [10] 11 12 13   Go Up
Jump to: