EnergiAlternativa

Page Index Toggle Pages: [1] 2 3 ... 5 Send TopicPrint
Normal Topic trasmissione 433mhz (Read 26807 times)
ronwal
Ex Member
**


--------

Gender: Male
trasmissione 433mhz
18.02.15 at 22:03:01
Print Post  
Salve a tutti, vorrei provare a trasmettere tramite un arduino uno ,tre segnali analogici ad un arduino nano e visualizzarli su un disp 20x4...
  
Back to top
 
IP Logged
 
ronwal
Ex Member
**


--------

Gender: Male
Re:trasmissione 433mhz
Reply #1 - 18.02.15 at 22:04:45
Print Post  
i due modulini che ho sono questi:
[LINK
  
Back to top
 
IP Logged
 
ronwal
Ex Member
**


--------

Gender: Male
Re:trasmissione 433mhz
Reply #2 - 18.02.15 at 22:08:14
Print Post  
Su arduino 1 su A0 collego un partitore per la lettura di tensione di un banco 24v,suA1e A2 due sensori di corrente ad effetto hall.. e mi andranno a misurare la corrente di due stringhe differenti di pannelli fotovoltaici del mio impianto ad isola!
Chi ha voglia di aiutarmi?...
Io non sono un gran che per la programmazzione!!
  
Back to top
 
IP Logged
 
ElettroshockNow
Forum Administrator
*****
Offline


yottawatt

Posts: 3920
Location: Roma
Gender: Male
Zodiac sign: Gemini
Re:trasmissione 433mhz
Reply #3 - 19.02.15 at 16:25:47
Print Post  
Devi trasmettere usando una codifica Manchester.

Con Arduino puoi farlo usando semplicemente la libreria virtualwire.

Credo di averla usata nel progetto powermeter (trovi sia il tx che rx).

Unica nota dolente....
I moduli ricevitori non funzionano bene.
I tx Ok (oltre 30m)

Ciao
Elettro
  

Il Tempo non lo vede nessuno,il lavoro lo vedono tutti (Mamma)
Impara a rubare con gli occhi (Papà)
Back to top
YouTube  
IP Logged
 
ronwal
Ex Member
**


--------

Gender: Male
Re:trasmissione 433mhz
Reply #4 - 19.02.15 at 18:06:30
Print Post  
Ciao elettro...cosa vuol dire? non riesco a trasmettere da una stanza all'altra?
  
Back to top
 
IP Logged
 
ronwal
Ex Member
**


--------

Gender: Male
Re:trasmissione 433mhz
Reply #5 - 19.02.15 at 18:15:03
Print Post  
Ho dato un occhio al tuo progetto, fuori dalla mia portata...
Purtroppo non ho capito come funziona la virtualwire!
  
Back to top
 
IP Logged
 
ElettroshockNow
Forum Administrator
*****
Offline


yottawatt

Posts: 3920
Location: Roma
Gender: Male
Zodiac sign: Gemini
Re:trasmissione 433mhz
Reply #6 - 19.02.15 at 18:47:20
Print Post  
CITAZIONE (ronwal, 19/02/2015 18:15:03 ) Quote:
Ciao elettro...cosa vuol dire? non riesco a trasmettere da una stanza all'altra?

Per esperienza non ho mai superato i 5 metri con quei moduli Sad , e il responsabile è il modulo ricevitore.

Usando il Tx e un ricevitore Aurel è tutta un'altra storia, 30 metri garantiti.

Per oltrepassare tale distanza oltre agli accurati accorgimenti sull'antenna bisogna sostituire anche il tx.

Magari con un BoostTx sempre dell'Aurel con i 500m garantiti .... fino a 1Km Shocked: ..


Tornando alla distanza stanza stanza con i moduli in tuo possesso (forse i miei erano difettosi).

Usa la libreria VirtualWire sia per il tx che per RX impostando nel setup i piedini che utilizzerai per la trasmissione e ricezione


vw_set_tx_pin(transmit_pin);
  vw_set_rx_pin(receive_pin);
  vw_set_ptt_pin(transmit_en_pin);
  vw_set_ptt_inverted(true);
  vw_setup(2000);



-----------Trasmettitore--------------------

Poi quello che trasmetti lo metti in un array

char msg[3] = {Tensione,Corrente,ecc};

indicando quanti byte trasmetterai  nell'istruzione successiva

vw_send((uint8_t *)msg, 3 );
vw_wait_tx();




----------Ricevitore---------------------------------------
Sul Ricevitore avrai:

    uint8_t buf[VW_MAX_MESSAGE_LEN];
    uint8_t buflen = VW_MAX_MESSAGE_LEN;
    if (vw_get_message(buf, &buflen)) 
    {
      Tensione = [1];
      Corrente = buf[2]);
      ecc = buf[3]);
}


Io uso questo metodo Smiley
Unico neo .... trasmette solo byte ,quindi valori da 0 a 255 ....
Per gli int o float devi convertirli in byte --> trasmettere ---->riconvertirli

Forse esisteranno altre librerie ,ma io non le conosco Sad
  

Il Tempo non lo vede nessuno,il lavoro lo vedono tutti (Mamma)
Impara a rubare con gli occhi (Papà)
Back to top
YouTube  
IP Logged
 
ronwal
Ex Member
**


--------

Gender: Male
Re:trasmissione 433mhz
Reply #7 - 19.02.15 at 19:06:52
Print Post  
ecco...le cose incominciano ad essere piu chiare....quindi se io prendo il valore analogico letto che va da 0-1024 non lo posso inviare......
  
Back to top
 
IP Logged
 
ElettroshockNow
Forum Administrator
*****
Offline


yottawatt

Posts: 3920
Location: Roma
Gender: Male
Zodiac sign: Gemini
Re:trasmissione 433mhz
Reply #8 - 19.02.15 at 19:42:30
Print Post  
CITAZIONE (ronwal, 19/02/2015 19:06:52 ) Quote:
ecco...le cose incominciano ad essere piu chiare....quindi se io prendo il valore analogico letto che va da 0-1024 non lo posso inviare......


Direttamente No.

Devi dividere la variabile a 16bit in due byte da 8bit : (in realtà la tua variabile è a 10Bit)

Lettura = XXXX

byte Lettura1 = Lettura&0xFF;
byte Lettura2=(Lettura&0xFF00)>>8;


A questo punto invii i due byte

char msg[2] = {Lettura1,Lettura2};
vw_send((uint8_t *)msg, 2 );
vw_wait_tx();


TX ------------->-------->------->> RXSmiley


Riceverai i due byte :
uint8_t buf[VW_MAX_MESSAGE_LEN];
uint8_t buflen = VW_MAX_MESSAGE_LEN;
if (vw_get_message(buf, &buflen))
{
Lettura1 = buf[1];
Lettura2 = buf[2]);
}

e ricrei la variabile

Lettura = (int(buf[2]<<8)+buf[1]);

Lettura = XXXX
  

Il Tempo non lo vede nessuno,il lavoro lo vedono tutti (Mamma)
Impara a rubare con gli occhi (Papà)
Back to top
YouTube  
IP Logged
 
ronwal
Ex Member
**


--------

Gender: Male
Re:trasmissione 433mhz
Reply #9 - 19.02.15 at 20:32:59
Print Post  
le operazioni matematiche le devo fare prima o dopo la trasmissione?
  
Back to top
 
IP Logged
 
ElettroshockNow
Forum Administrator
*****
Offline


yottawatt

Posts: 3920
Location: Roma
Gender: Male
Zodiac sign: Gemini
Re:trasmissione 433mhz
Reply #10 - 19.02.15 at 20:51:17
Print Post  
CITAZIONE (ronwal, 19/02/2015 20:32:59 ) Quote:
le operazioni matematiche le devo fare prima o dopo la trasmissione?


Leggi il valore analogico
Converti in Byte
Trasmetti i Byte
-------------------->
Ricevi i byte
Converti nel valore
  

Il Tempo non lo vede nessuno,il lavoro lo vedono tutti (Mamma)
Impara a rubare con gli occhi (Papà)
Back to top
YouTube  
IP Logged
 
ElettroshockNow
Forum Administrator
*****
Offline


yottawatt

Posts: 3920
Location: Roma
Gender: Male
Zodiac sign: Gemini
Re:trasmissione 433mhz
Reply #11 - 19.02.15 at 21:13:04
Print Post  
TX


Code (C++)
Select All
//---------------------------------------------------------------
#include < VirtualWire.h >

void setup() {
  vw_set_tx_pin(12);
  vw_set_rx_pin(11);
  vw_set_ptt_pin(3);
  vw_set_ptt_inverted(true);
  vw_setup(2000);
}

void loop() {

  int Tensione_adc = analogRead(A0);

  byte Tens1 = Tensione_adc&0xFF;
  byte Tens2=(Tensione_adc&0xFF00)>>8;
  char msg[2] = {Tens1,Tens2};
  vw_send((uint8_t *)msg, 2 );
  vw_wait_tx();
}
//-----------------------------------------------------------------
 





RX

Code (C++)
Select All
//------------------------------------------------------------------
#include < VirtualWire.h >
int Tensione_adc;


void setup() {
  vw_set_tx_pin(12);
  vw_set_rx_pin(11);
  vw_set_ptt_pin(3);
  vw_set_ptt_inverted(true);
  vw_setup(2000);
}


void loop() {
    uint8_t buf[VW_MAX_MESSAGE_LEN];
    uint8_t buflen = VW_MAX_MESSAGE_LEN;
    if (vw_get_message(buf, &buflen))
    {
      Tensione_adc = (int(buf[1]<<8)+buf[0]);
    }
}

//------------------------------------------------------------ 




NOTA: Togliere gli spazi in  < VirtualWire.h > per evitare errori nella compilazione  <VirtualWire.h>
« Last Edit: 08.08.15 at 10:11:49 by ElettroshockNow »  

Il Tempo non lo vede nessuno,il lavoro lo vedono tutti (Mamma)
Impara a rubare con gli occhi (Papà)
Back to top
YouTube  
IP Logged
 
ronwal
Ex Member
**


--------

Gender: Male
Re:trasmissione 433mhz
Reply #12 - 19.02.15 at 21:19:36
Print Post  
tensione adc sara un valore compreso tra 0-1024 giusto?
per farlo vedere su disp....il solito lcd print (tensione adc)
  
Back to top
 
IP Logged
 
ElettroshockNow
Forum Administrator
*****
Offline


yottawatt

Posts: 3920
Location: Roma
Gender: Male
Zodiac sign: Gemini
Re:trasmissione 433mhz
Reply #13 - 19.02.15 at 21:25:46
Print Post  
Sisi lcd.print("tensione_adc");

forse prima dovrai aggiungere

float tensione= Tensione_adc/fattore_conversione;
lcd.print("tensione,1"); //visualizzazione ad una cifra decimale
  

Il Tempo non lo vede nessuno,il lavoro lo vedono tutti (Mamma)
Impara a rubare con gli occhi (Papà)
Back to top
YouTube  
IP Logged
 
ronwal
Ex Member
**


--------

Gender: Male
Re:trasmissione 433mhz
Reply #14 - 19.02.15 at 21:26:11
Print Post  
e per gli altri due valori copio e incollo?
  
Back to top
 
IP Logged
 
Page Index Toggle Pages: [1] 2 3 ... 5
Send TopicPrint
 

TOP100-SOLAR Galleria Immagini EnergiAlternativa