Opis użycia modułu radiowego nadajnik FS1000A i odbiornik 433MHz za pomocą Arduino Nano

Opis ogólny modułu:moduł

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

 

 

 

odbiornik_nadajnik

 

 

 

 

 

 

 

 

 

Modułu radiowy + Arduino Nano

schemat podłączenia

 

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.

Zbudowano na Drupalu