RF 315/433 MHz sändar modul och Arduino (5 / 5 steg)
Steg 5: Virtuell tråd... inuti
Meddelanden skickas med utbildning ingressen, meddelande längd och kontrollsumma. Meddelanden skickas med 4 till 6 bitars kodning för bra DC balans och en CRC-kontrollsumma för meddelandeintegritet.
Kan vi använda seriell kommunikation med? svaret är nej
FRÅGA mottagare kräver en explosion av utbildning pulser för att synkronisera sändare och mottagare, och också kräver god balans mellan 0 och 1 i meddelandeströmmen för att upprätthålla DC balansen i meddelandet, UARTs ger inte dessa. De arbetar lite med ASK trådlöst, men inte liksom denna kod.
Full funktion för det här biblioteket:
För att använda VirtualWire biblioteket, måste du ha
#include < VirtualWire.h >
För att välja den sändare Data stift, Tom:
vw_set_tx_pin
Om du vill välja mottagare Data stift, Tom:
vw_set_rx_pin
Setup överföringshastigheten, Tx hastighet måste vara samma som på Rx.
hastigheten kommer att vara ett nummer av Bit Per sekund mellan 0-9600, för kort avstånd kan du använda snabb hastighet, för långa avstånd "upp till 90m" måste du använda sänka överföringshastigheten så mycket som möjligt.
vw_setup (uint16_t hastighet);
Starta mottagaren PLL löpning, du måste göra detta innan du kan ta emot några meddelanden, ring
vw_rx_start();
Du måste göra detta innan du kan ta emot några meddelanden. När en messageis tillgänglig (bra kontrollsumma eller inte), vw_have_message() returnerar true.
vw_rx_stop();
Block och vänta tills sändaren är inaktiv, kallas:
vw_wait_tx();
Block och vänta tills det finns ett meddelande från mottagaren, ring:
vw_wait_rx();
Skicka ett meddelande med den angivna längden, ring:
vw_send (uint8_t * buf, uint8_t len);
Returnerar sant om ett oläst meddelande är tillgänglig från den mottagaren., ring:
vw_have_message();