Opis ogólny modułu:
Specyfikacja:
- Napięcie zasilania: od 2,5 V do 12 V
- Pobór prądu: 4 mA dla 5 V, 15 mA dla 9 V
- Częstotliwość pracy: 433 MHz
- Modulacja: ASK
- Zasięg do: 100 m
- Prędkość transmisji: do 9,6 Kb
- Interfejs: jednoprzewodowy TTL
- Złącze do wlutowania zewnętrznej anteny
Modułu radiowy + Arduino Nano
Program po naciśnięciu guzika powoduje wysłanie wiadomości z nadajnika do odbiornika, wyświetlenie tego faktu na konsoli oraz zaświecenie wbudowanej lampki LED na płytce arduino odbiornika.
Kod programu:
Kod nadajnika:
#include <VirtualWire.h>
#include <VirtualWire_Config.h>
//Potrzebna biblioteka VirtualWire
//Do sciagniecia z:
http://www.airspayce.com/mikem/arduino/VirtualWire/VirtualWire-1.27.zip
const char *message = "Me";
int button = 12;
void setup() {
pinMode(button,INPUT);
pinMode(LED_BUILTIN,OUTPUT);
Serial.begin(9600);
vw_set_tx_pin(5); // ustawienie pinu transmisji danych
vw_setup(2000);// sszybkosc transmisji bps
}
void loop(){
if (digitalRead(button) == HIGH){
Serial.println("GUZIK!");
digitalWrite(LED_BUILTIN,HIGH);
String message="XTEKST";
char msg[20];
message.toCharArray(msg, message.length() +1);
vw_send((uint8_t *)msg, strlen(msg)); // wysłanie wiadomości
vw_wait_tx(); // Poczekaj aż cała wiadomość zostanie wysłana
Serial.println(message);
delay(2000);
digitalWrite(LED_BUILTIN,LOW);
}
}
Kod odbiornika:
#include <VirtualWire.h>
#include <VirtualWire_Config.h>
#define receive_pin 11
void setup()
{
pinMode(LED_BUILTIN, OUTPUT);
Serial.begin(9600);
Serial.println("setup");
vw_set_rx_pin(receive_pin); // sustawienie pinu odbiuoru danych
vw_setup(2000); // Bits per sec
vw_rx_start(); // zacznij nasłuchiwać
}
void loop()
{
String wiadomosc;
digitalWrite(LED_BUILTIN,LOW);
uint8_t buf[VW_MAX_MESSAGE_LEN];
uint8_t buflen = VW_MAX_MESSAGE_LEN;
if (vw_get_message(buf, &buflen)) { // jeżeli wiadomość została odebrana
Serial.println("ODERBRALO");
if (buf[0]=='X'){ //i jeżeli pierwszą literą jest ‘X’
int i;
Serial.println("ODERBRALO POPRAWNE");
digitalWrite(LED_BUILTIN,HIGH);
Serial.println("Got: ");
for (i = 0; i < buflen; i++) // w pętli czytamy dane z odbiornika
{
wiadomosc+=char(buf[i]);
}
Serial.println(wiadomosc);
delay(700);
digitalWrite(LED_BUILTIN, LOW); // gasimy LED
}
else if(buf[0]!='X'){
digitalWrite(LED_BUILTIN,LOW);
Serial.println("ODEBRALO NIEPOPRAWNA WIADOMOSC");
}
}
}
Opis działania programu
Kiedy sensor wykryje światło, dioda się zapala (jest to stan domyślny po zasileniu urządzenia napięciem o ile sensor jest odsłonięty). Kiedy przysłonimy sensor, np. palcem, dioda gaśnie.