• Witaj na Forum Arduino Polska! Zapraszamy do rejestracji!
  • Znajdziesz tutaj wiele informacji na temat hardware / software.
Witaj! Logowanie Rejestracja


Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
Nadajnik(FS1000A) i odbiornik(MX-RM-5V) na jednym arduino
#1
Cześć wszystkim Smile

Takie oto nadajnik i odbiornik posiadam link tu

Mam takie pytanie, czy możliwe jest nadawanie i odbieranie na jednym arduino? Chcę przetestować nadajnik i odbiornik czy wgl działają, ogarnąć komunikacje. Mam taki kod :

KOD NADAJNIKA: 

Kod:
#include <VirtualWire.h>

// definiujemy piny

#define transmit_pin 10

void setup()
{
 // przygotowujemy potrzebne informacje dla biblioteki
   vw_set_tx_pin(transmit_pin);
   vw_setup(2000);
   
}

void loop()
{
 
 String toSend = ("hello world"); // tekst wiadomości
 char msg[23]; // tworzymy tablicę typu char
 toSend.toCharArray(msg, toSend.length() + 1); // konwertujemy nasz tekst do tablicy char'ów
 

 vw_send((uint8_t *)msg, strlen(msg));// wysyłamy
 vw_wait_tx();

 delay(1000); // czekamy 1 sekundę
 
}

KOD ODBIORNIKA: 
Kod:
#include <VirtualWire.h>


#define receive_pin 11


void setup()
{
   Serial.begin(9600);
   Serial.println("setup");
// przygotowujemy potrzebne informacje dla biblioteki
   vw_set_rx_pin(receive_pin);
   vw_setup(2000);    
   vw_rx_start(); // startujemy odbieranie danych (uruchamiamy)

 
}

void loop()
{
 // częśc wymagana do poprawnego działania biblioteki
   uint8_t buf[VW_MAX_MESSAGE_LEN];
   uint8_t buflen = VW_MAX_MESSAGE_LEN;

   if (vw_get_message(buf, &buflen)) // jeśli odbierzemy dane
   {
    int i;

     
    Serial.println("Got: "); // piszemy Got:
    
    for (i = 0; i < buflen; i++) // w pętli zczytujemy dane z odbiornika
    {
        Serial.print(buf[i], HEX); // i wypisujemy dane na Serial'u
        Serial.print(' ');
    }
    Serial.println();
     
   }
}

Połączyłem to tak: 
Kod:
#include <VirtualWire.h>

// definiujemy piny

#define transmit_pin 10
#define receive_pin 11
void setup()
{
 // przygotowujemy potrzebne informacje dla biblioteki
   vw_set_tx_pin(transmit_pin);
   vw_setup(2000);

       Serial.begin(9600);
   Serial.println("setup");
// przygotowujemy potrzebne informacje dla biblioteki
   vw_set_rx_pin(receive_pin);
   vw_setup(2000);  
   vw_rx_start(); // startujemy odbieranie danych (uruchamiamy
   
}

void loop()
{
TRANSMITER();
RECRIVER();  

 
}

void TRANSMITER(){
 String toSend = ("hello world"); // tekst wiadomości
 char msg[23]; // tworzymy tablicę typu char
 toSend.toCharArray(msg, toSend.length() + 1); // konwertujemy nasz tekst do tablicy char'ów
 

 vw_send((uint8_t *)msg, strlen(msg));// wysyłamy
 vw_wait_tx();

 delay(1000); // czekamy 1 sekundę  
}

void RECRIVER(){
  // częśc wymagana do poprawnego działania biblioteki
   uint8_t buf[VW_MAX_MESSAGE_LEN];
   uint8_t buflen = VW_MAX_MESSAGE_LEN;

   if (vw_get_message(buf, &buflen)) // jeśli odbierzemy dane
   {
 int i;

     
 Serial.println("Got: "); // piszemy Got:
 
 for (i = 0; i < buflen; i++) // w pętli zczytujemy dane z odbiornika
 {
     Serial.print(buf[i], HEX); // i wypisujemy dane na Serial'u
     Serial.print(' ');
 }
 Serial.println();
     
   }
}

Połączenie kabli: (@edit na tym sie wzorowałem)
link


Nadajnik podpinam pod 3.3v bo działa z takim napięciem według strony na której kupiłem. 

Mam ewentualnie jeszcze do dyspozycji Raspberry Pi Zero, żeby sprawdzić tylko nie mogę nigdzie znaleźć kodu odbiornika w pythonie Big Grin  Ostatecznie chce wysyłać dane z czujników arduino i przetwarzać na raspberry . Pozdrawiam.
 
Odpowiedź
#2
Z użyciem VirtualWire tego nie zrobisz: http://forum.arduino.cc/index.php?topic=233915.0
Dodatkowo już samo "sklejenie" kodu w ten sposób świadczy o tym że niem masz pojęcia jak dziaała delay(). Proponuje opanować podstawy a dopiero potem brać się za komunikację.
Pomagam za darmo więc szanuj mój czas.
Wklejaj tekst a nie jego zdjęcie.
Nie pisz następnego postu jak nie odpowiedziałeś na poprzedni.
Jak mądrze zadawać pytania
 
Odpowiedź
  


Skocz do:


Przeglądający: 1 gości