Помогите с передачей 433Мгц

exivmaks
Offline
Зарегистрирован: 28.05.2016

Всем привет. Не ругайтесь, я в этом деле новичо. Вобщем собрал схему: два ардуино, один датчик температуры (DS18B20) , передатчик 433Мгц и соответственно приемник. Схема работает из примера библиотеки VirtualWire, сигнал передается. Проблема в том что не могу передать значения датчика температуры для вывода в serial port.

ПОМОГИТЕ ПОЖАЛУЙСТА!!!

 

PS: Гугл не помог(.

Araris
Offline
Зарегистрирован: 09.11.2012

Тут Вам тоже никто не поможет, пока не выложите свои (не примеры из библиотеки, они лишь основа) исходники скетчей передатчика и приёмника. Как выкладывать, написано здесь : http://arduino.ru/forum/obshchii/vstavka-programmnogo-koda-v-temukommentarii

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Исправьте ошибки в строке 22 скетча передатчика и строке 10 скетча приёмника.

Araris
Offline
Зарегистрирован: 09.11.2012

Но, чьёрт побьери, Евгений, как Вам это удаётся ???

exivmaks
Offline
Зарегистрирован: 28.05.2016

Извеняюсь, не понял.

exivmaks
Offline
Зарегистрирован: 28.05.2016

Вобщем получилось передать значения,но как с датчика воткнуть не могу понять

передатчик

#include <Wire.h>
#include <VirtualWire.h>
#include <EasyTransferVirtualWire.h>
long a=1;
long b=10;
long c=100;
//-----------------------------
EasyTransferVirtualWire ET; 
struct SEND_DATA_STRUCTURE {
   byte ID;
  long a ;
  long b ; 
  long c ;
  
  };

SEND_DATA_STRUCTURE mydata;
void setup(void)
{
 
  Serial.begin(9600);  
//работа с 433мгц

  ET.begin(details(mydata));
  mydata.ID = 1;

  vw_set_ptt_inverted(true); 
  vw_set_tx_pin(5); //порт к которому подключен передатчик 433 мГц
  vw_setup(2000); 
    
  randomSeed(analogRead(0));
}

void loop(void)
{ 
   for (int i=0; i <= 10; i++){ 
  mydata.a = a+i;
  mydata.b = b+i;
  mydata.c = c+i;
 
  ET.sendData();
  delay(3000); //время что бы передатчик успел передать данные
   }
  

}

приемник


#include <VirtualWire.h>
#include <EasyTransferVirtualWire.h>
#include <Wire.h>


EasyTransferVirtualWire ET; 

struct SEND_DATA_STRUCTURE 
{

  byte ID;
  long a ;
  long b ; 
  long c ;

};


SEND_DATA_STRUCTURE mydata;
 void setup(){

  ET.begin(details(mydata));
  Serial.begin(9600);
 
  vw_set_ptt_inverted(true);  
  vw_setup(2000);      //  Скорость порта
  vw_set_rx_pin(8);    //порт к которому подключен приемник 433 мГц
  vw_rx_start();       
 
 
  
  
}

void loop(){
 
 
  if(ET.receiveData()){
   
    if (mydata.ID == 1)
    {
       
       
     // Температуру в градусах Цельсия
   Serial.print("a=");
   Serial.println(mydata.a);   
  
  Serial.print(" b=");
  Serial.println(mydata.b);
  
  Serial.print(" c=");
  Serial.println(mydata.c);
  
  Serial.println();
  Serial.println();
  delay(1000);
  
              }

        }

}

 

ve3yn4ik
Offline
Зарегистрирован: 17.06.2015

 

никогда не работал с передачиками, но по скетчу  

ET.begin(details(mydata));  

отвечает за передачу инфомации что записано в "mydata" , нужно обявить новою константу записать в нее данние с датчика заменить на "mydata"


int t;      // переменная датчика

ET.begin(details(t));  

поправте если что не так .

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Araris пишет:

Но, чьёрт побьери, Евгений, как Вам это удаётся ???

Дык, хрустальный шар и всё такое.