collapse

* Posts Recentes

Arame de Estendal por almamater
[Ontem às 16:16]


O que é isto ? por SerraCabo
[12 de Abril de 2024, 14:20]


Amplificador - Rockboard HA 1 In-Ear por almamater
[11 de Abril de 2024, 20:46]


Emulador NES em ESP32 por dropes
[10 de Abril de 2024, 15:30]


Meu novo robô por josecarlos
[29 de Março de 2024, 18:30]


Bateria - Portátil por almamater
[25 de Março de 2024, 22:14]


Escolher Osciloscópio por jm_araujo
[06 de Fevereiro de 2024, 23:07]


TP4056 - Dúvida por dropes
[31 de Janeiro de 2024, 14:13]


Leitura de dados por Porta Serie por jm_araujo
[22 de Janeiro de 2024, 14:00]


Distancia Cabo por jm_araujo
[08 de Janeiro de 2024, 16:30]

Autor Tópico: Sensor de temp dois arduinos, do quarto para a sala via RF  (Lida 49503 vezes)

0 Membros e 1 Visitante estão a ver este tópico.

Offline r16

  • Mini Robot
  • *
  • Mensagens: 339
Re: Sensor de temp dois arduinos, do quarto para a sala via RF
« Responder #45 em: 02 de Setembro de 2012, 22:53 »
Experimenta agora.

Código: [Seleccione]
#include <VirtualWire.h> // É necessário utilizar esta biblioteca para transmitir a informação
#define dht11_pin 53 //Analog port 0 on Arduino Uno

void setup() {
  pinMode(dht11_pin, OUTPUT);
  digitalWrite(dht11_pin, HIGH);
  pinMode(6,OUTPUT);
  Serial.begin(9600);
  vw_set_tx_pin(6);
  vw_set_ptt_inverted(true);
  vw_setup(2000);
}

void loop()
{
  Serial.println("Inicio");
  byte dht11_dat[5];   
  byte dht11_in;
  byte i;
       
  digitalWrite(dht11_pin, LOW);
  delay(18);
  digitalWrite(dht11_pin, HIGH);
  delayMicroseconds(1);
  pinMode(dht11_pin, INPUT);
  delayMicroseconds(40);     
  if (digitalRead(dht11_pin))
  {
    delay(1000);
    return;
  }
  delayMicroseconds(80);
  if (!digitalRead(dht11_pin))
  {
      return;
  }
  delayMicroseconds(80);
  for (i=0; i<5; i++)
  {  dht11_dat[i] = read_dht11_dat();}
    Serial.println("info recebida");
  pinMode(dht11_pin, OUTPUT);
  digitalWrite(dht11_pin, HIGH);
  byte dht11_check_sum = dht11_dat[0]+dht11_dat[2];
  if(dht11_dat[4]!= dht11_check_sum)
  {
    Serial.println("Erro");
  }
  char dados[5];
  for (int b=0;b<5;b++) {
    dados[b] = dht11_dat[b];
  }
 
  vw_send((uint8_t *)dados, strlen(dados));
  vw_wait_tx();
  Serial.println("Informacao transmitida");
  delay(2000);
}

byte read_dht11_dat()
{
  byte i = 0;
  byte result=0;
  for(i=0; i< 8; i++)
  {
    while (!digitalRead(dht11_pin));
    delayMicroseconds(30);
    if (digitalRead(dht11_pin) != 0 )
      bitSet(result, 7-i);
    while (digitalRead(dht11_pin));
  }
  return result;
}
[/quote]

neste so aparece INICIO

Offline rglove

  • Mini Robot
  • *
  • Mensagens: 527
Re: Sensor de temp dois arduinos, do quarto para a sala via RF
« Responder #46 em: 02 de Setembro de 2012, 22:57 »
Acho que o problema está nesses ifs, estão a ser verificados e o return faz com que o loop comece de início.
Experimenta sem os ifs:

Código: [Seleccione]
#include <VirtualWire.h> // É necessário utilizar esta biblioteca para transmitir a informação
#define dht11_pin 53 //Analog port 0 on Arduino Uno

void setup() {
  pinMode(dht11_pin, OUTPUT);
  digitalWrite(dht11_pin, HIGH);
  pinMode(6,OUTPUT);
  Serial.begin(9600);
  vw_set_tx_pin(6);
  vw_set_ptt_inverted(true);
  vw_setup(2000);
}

void loop()
{
  Serial.println("Inicio");
  byte dht11_dat[5];   
  byte dht11_in;
  byte i;
       
  digitalWrite(dht11_pin, LOW);
  delay(18);
  digitalWrite(dht11_pin, HIGH);
  delayMicroseconds(1);
  pinMode(dht11_pin, INPUT);
  delayMicroseconds(40);     
  delayMicroseconds(80);
  delayMicroseconds(80);
  for (i=0; i<5; i++)
  {  dht11_dat[i] = read_dht11_dat();}
    Serial.println("info recebida");
  pinMode(dht11_pin, OUTPUT);
  digitalWrite(dht11_pin, HIGH);
  byte dht11_check_sum = dht11_dat[0]+dht11_dat[2];
  if(dht11_dat[4]!= dht11_check_sum)
  {
    Serial.println("Erro");
  }
  char dados[5];
  for (int b=0;b<5;b++) {
    dados[b] = dht11_dat[b];
  }
 
  vw_send((uint8_t *)dados, strlen(dados));
  vw_wait_tx();
  Serial.println("Informacao transmitida");
  delay(2000);
}

byte read_dht11_dat()
{
  byte i = 0;
  byte result=0;
  for(i=0; i< 8; i++)
  {
    while (!digitalRead(dht11_pin));
    delayMicroseconds(30);
    if (digitalRead(dht11_pin) != 0 )
      bitSet(result, 7-i);
    while (digitalRead(dht11_pin));
  }
  return result;
}

Offline r16

  • Mini Robot
  • *
  • Mensagens: 339
Re: Sensor de temp dois arduinos, do quarto para a sala via RF
« Responder #47 em: 02 de Setembro de 2012, 23:01 »
Acho que o problema está nesses ifs, estão a ser verificados e o return faz com que o loop comece de início.
Experimenta sem os ifs:

Código: [Seleccione]
#include <VirtualWire.h> // É necessário utilizar esta biblioteca para transmitir a informação
#define dht11_pin 53 //Analog port 0 on Arduino Uno

void setup() {
  pinMode(dht11_pin, OUTPUT);
  digitalWrite(dht11_pin, HIGH);
  pinMode(6,OUTPUT);
  Serial.begin(9600);
  vw_set_tx_pin(6);
  vw_set_ptt_inverted(true);
  vw_setup(2000);
}

void loop()
{
  Serial.println("Inicio");
  byte dht11_dat[5];   
  byte dht11_in;
  byte i;
       
  digitalWrite(dht11_pin, LOW);
  delay(18);
  digitalWrite(dht11_pin, HIGH);
  delayMicroseconds(1);
  pinMode(dht11_pin, INPUT);
  delayMicroseconds(40);     
  delayMicroseconds(80);
  delayMicroseconds(80);
  for (i=0; i<5; i++)
  {  dht11_dat[i] = read_dht11_dat();}
    Serial.println("info recebida");
  pinMode(dht11_pin, OUTPUT);
  digitalWrite(dht11_pin, HIGH);
  byte dht11_check_sum = dht11_dat[0]+dht11_dat[2];
  if(dht11_dat[4]!= dht11_check_sum)
  {
    Serial.println("Erro");
  }
  char dados[5];
  for (int b=0;b<5;b++) {
    dados[b] = dht11_dat[b];
  }
 
  vw_send((uint8_t *)dados, strlen(dados));
  vw_wait_tx();
  Serial.println("Informacao transmitida");
  delay(2000);
}

byte read_dht11_dat()
{
  byte i = 0;
  byte result=0;
  for(i=0; i< 8; i++)
  {
    while (!digitalRead(dht11_pin));
    delayMicroseconds(30);
    if (digitalRead(dht11_pin) != 0 )
      bitSet(result, 7-i);
    while (digitalRead(dht11_pin));
  }
  return result;
}

AGORA no LCD na primeira linha com o teu codigo de tutorial receptor

aparece na primeira linha humi 30%

Offline rglove

  • Mini Robot
  • *
  • Mensagens: 527
Re: Sensor de temp dois arduinos, do quarto para a sala via RF
« Responder #48 em: 02 de Setembro de 2012, 23:06 »
E o que é que aparece na temperatura?
Experimenta então este para o transmissor e abre o serial monitor do mesmo para ver se recebes a temperatura e a humidade:

Código: [Seleccione]
#include <VirtualWire.h> // É necessário utilizar esta biblioteca para transmitir a informação
#define dht11_pin 53 //Analog port 0 on Arduino Uno

void setup() {
  pinMode(dht11_pin, OUTPUT);
  digitalWrite(dht11_pin, HIGH);
  pinMode(6,OUTPUT);
  Serial.begin(9600);
  vw_set_tx_pin(6);
  vw_set_ptt_inverted(true);
  vw_setup(2000);
}

void loop()
{
  Serial.println("Inicio");
  byte dht11_dat[5];   
  byte dht11_in;
  byte i;
       
  digitalWrite(dht11_pin, LOW);
  delay(18);
  digitalWrite(dht11_pin, HIGH);
  delayMicroseconds(1);
  pinMode(dht11_pin, INPUT);
  delayMicroseconds(40);     
  delayMicroseconds(80);
  delayMicroseconds(80);
  for (i=0; i<5; i++)
  {  dht11_dat[i] = read_dht11_dat();}
    Serial.println("info recebida");
  pinMode(dht11_pin, OUTPUT);
  digitalWrite(dht11_pin, HIGH);
  byte dht11_check_sum = dht11_dat[0]+dht11_dat[2];
  if(dht11_dat[4]!= dht11_check_sum)
  {
    Serial.println("Erro");
  }
  char dados[5];
  for (int b=0;b<5;b++) {
    dados[b] = dht11_dat[b];
  }
 
  vw_send((uint8_t *)dados, strlen(dados));
  vw_wait_tx();
  Serial.println("Informacao transmitida");
  Serial.println("Temp: " + String(dht11_dat[0]) + "; Hum: " + String(dht11_dat[2]));
  delay(2000);
}

byte read_dht11_dat()
{
  byte i = 0;
  byte result=0;
  for(i=0; i< 8; i++)
  {
    while (!digitalRead(dht11_pin));
    delayMicroseconds(30);
    if (digitalRead(dht11_pin) != 0 )
      bitSet(result, 7-i);
    while (digitalRead(dht11_pin));
  }
  return result;
}

Offline r16

  • Mini Robot
  • *
  • Mensagens: 339
Re: Sensor de temp dois arduinos, do quarto para a sala via RF
« Responder #49 em: 02 de Setembro de 2012, 23:15 »
E o que é que aparece na temperatura?
Experimenta então este para o transmissor e abre o serial monitor do mesmo para ver se recebes a temperatura e a humidade:

Código: [Seleccione]
#include <VirtualWire.h> // É necessário utilizar esta biblioteca para transmitir a informação
#define dht11_pin 53 //Analog port 0 on Arduino Uno

void setup() {
  pinMode(dht11_pin, OUTPUT);
  digitalWrite(dht11_pin, HIGH);
  pinMode(6,OUTPUT);
  Serial.begin(9600);
  vw_set_tx_pin(6);
  vw_set_ptt_inverted(true);
  vw_setup(2000);
}

void loop()
{
  Serial.println("Inicio");
  byte dht11_dat[5];   
  byte dht11_in;
  byte i;
       
  digitalWrite(dht11_pin, LOW);
  delay(18);
  digitalWrite(dht11_pin, HIGH);
  delayMicroseconds(1);
  pinMode(dht11_pin, INPUT);
  delayMicroseconds(40);     
  delayMicroseconds(80);
  delayMicroseconds(80);
  for (i=0; i<5; i++)
  {  dht11_dat[i] = read_dht11_dat();}
    Serial.println("info recebida");
  pinMode(dht11_pin, OUTPUT);
  digitalWrite(dht11_pin, HIGH);
  byte dht11_check_sum = dht11_dat[0]+dht11_dat[2];
  if(dht11_dat[4]!= dht11_check_sum)
  {
    Serial.println("Erro");
  }
  char dados[5];
  for (int b=0;b<5;b++) {
    dados[b] = dht11_dat[b];
  }
 
  vw_send((uint8_t *)dados, strlen(dados));
  vw_wait_tx();
  Serial.println("Informacao transmitida");
  Serial.println("Temp: " + String(dht11_dat[0]) + "; Hum: " + String(dht11_dat[2]));
  delay(2000);
}

byte read_dht11_dat()
{
  byte i = 0;
  byte result=0;
  for(i=0; i< 8; i++)
  {
    while (!digitalRead(dht11_pin));
    delayMicroseconds(30);
    if (digitalRead(dht11_pin) != 0 )
      bitSet(result, 7-i);
    while (digitalRead(dht11_pin));
  }
  return result;
}

ora bem no codigo emissor nesse aparece isto no serial:

Inicio
info recebida
Informacao transmitida
Temp: ; Hum: 
Inicio
info recebida
Informacao transmitida
Temp: ; Hum: 
Inicio


no codigo receptor, abocado enganei me nao tinha o teu a correr tinha ESTE e tenho este de momento

Código: [Seleccione]
#include <VirtualWire.h>
#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
int ledPin = 10;

void setup()
{
  pinMode(ledPin, OUTPUT);
    lcd.begin(16, 2);
    Serial.begin(9600);
    pinMode(9,INPUT);
    vw_set_rx_pin(9); // Pino de recepção
    vw_set_ptt_inverted(true);
    vw_setup(2000);
    vw_rx_start(); // Necessário para começar a receber informação
}

void loop()
{
  analogWrite(ledPin, 600);
    uint8_t buf[VW_MAX_MESSAGE_LEN];
    uint8_t buflen = VW_MAX_MESSAGE_LEN;

    if (vw_get_message(buf, &buflen)) // Caso chegue alguma mensagem ao receptor
    {
int i;
        digitalWrite(13, true); // Esta parte é opcional, eu utilizei para testar e ver se estava a receber alguma coisa
for (i = 0; i < buflen; i++) // Basicamente isto vai repetir para cada byte recebido e vai guardar a informação numa array de caracteres
{
          if (i==0){
             lcd.setCursor(0,0);
             lcd.print("Humi ");
             lcd.print(buf[i], DEC);
             lcd.print(" %");
          }
          if (i==2){
             lcd.setCursor(0,1);
             lcd.print("Temp ");
             lcd.print(buf[i], DEC);
             lcd.print(" C");
  }
}
            Serial.println(String("Humidade: " + String(buf[0],DEC) + "%; Temperatura: " + String(buf[2],DEC) + "ºC"));
            digitalWrite(13, false);
    }
}

aparece isto no serial monitor receptor:
Humidade: 29%; Temperatura: 0ºC
Humidade: 28%; Temperatura: 0ºC
Humidade: 27%; Temperatura: 0ºC
Humidade: 27%; Temperatura: 0ºC


e caracteres malucos no lcd e depois desaparecem

Offline rglove

  • Mini Robot
  • *
  • Mensagens: 527
Re: Sensor de temp dois arduinos, do quarto para a sala via RF
« Responder #50 em: 02 de Setembro de 2012, 23:34 »
Experimenta este código. Utiliza uma biblioteca que anexei. Faz o download e mete na pasta das bibliotecas.
Abre dps o serial monitor e diz o que recebes. Usa o código no arduino que tem o sensor.

Código: [Seleccione]
#include <dht11.h>
 
dht11 DHT11;
 
#define DHT11PIN 2
 
void setup()
 {
   Serial.begin(115200);
   Serial.println("DHT11 TEST PROGRAM ");
   Serial.print("LIBRARY VERSION: ");
   Serial.println(DHT11LIB_VERSION);
   Serial.println();
 }
 
void loop()
 {
   Serial.println("\n");
 
  int chk = DHT11.read(DHT11PIN);
 
  Serial.print("Read sensor: ");
   switch (chk)
   {
     case DHTLIB_OK:
                Serial.println("OK");
                break;
     case DHTLIB_ERROR_CHECKSUM:
                Serial.println("Checksum error");
                break;
     case DHTLIB_ERROR_TIMEOUT:
                Serial.println("Time out error");
                break;
     default:
                Serial.println("Unknown error");
                break;
   }
 
  Serial.print("Humidity (%): ");
   Serial.println((float)DHT11.humidity, 2);
 
  Serial.print("Temperature (oC): ");
   Serial.println((float)DHT11.temperature, 2);
   
  delay(2000);
 }
 

Offline r16

  • Mini Robot
  • *
  • Mensagens: 339
Re: Sensor de temp dois arduinos, do quarto para a sala via RF
« Responder #51 em: 02 de Setembro de 2012, 23:39 »
Experimenta este código. Utiliza uma biblioteca que anexei. Faz o download e mete na pasta das bibliotecas.
Abre dps o serial monitor e diz o que recebes. Usa o código no arduino que tem o sensor.

Código: [Seleccione]
#include <dht11.h>
 
dht11 DHT11;
 
#define DHT11PIN 2
 
void setup()
 {
   Serial.begin(115200);
   Serial.println("DHT11 TEST PROGRAM ");
   Serial.print("LIBRARY VERSION: ");
   Serial.println(DHT11LIB_VERSION);
   Serial.println();
 }
 
void loop()
 {
   Serial.println("\n");
 
  int chk = DHT11.read(DHT11PIN);
 
  Serial.print("Read sensor: ");
   switch (chk)
   {
     case DHTLIB_OK:
                Serial.println("OK");
                break;
     case DHTLIB_ERROR_CHECKSUM:
                Serial.println("Checksum error");
                break;
     case DHTLIB_ERROR_TIMEOUT:
                Serial.println("Time out error");
                break;
     default:
                Serial.println("Unknown error");
                break;
   }
 
  Serial.print("Humidity (%): ");
   Serial.println((float)DHT11.humidity, 2);
 
  Serial.print("Temperature (oC): ");
   Serial.println((float)DHT11.temperature, 2);
   
  delay(2000);
 }
 


Read sensor: OK
Humidity (%): 30.00
Temperature (oC): 30.00


Read sensor: OK
Humidity (%): 30.00
Temperature (oC): 30.00


Read sensor: OK
Humidity (%): 30.00
Temperature (oC): 30.00


Read sensor: OK
Humidity (%): 30.00
Temperature (oC): 30.00


Read sensor: OK
Humidity (%): 30.00
Temperature (oC): 30.00




Offline rglove

  • Mini Robot
  • *
  • Mensagens: 527
Re: Sensor de temp dois arduinos, do quarto para a sala via RF
« Responder #52 em: 02 de Setembro de 2012, 23:41 »
Ligaste em que pino a saida do sensor? Tens de ligar ao pino 2, ou então muda o pino no código para o pino que quiseres.

Offline r16

  • Mini Robot
  • *
  • Mensagens: 339
Re: Sensor de temp dois arduinos, do quarto para a sala via RF
« Responder #53 em: 02 de Setembro de 2012, 23:43 »
foi o que fiz mudei para o pin que tenho o DATA do dht11 ao arduino.

ta a ler bem

Offline rglove

  • Mini Robot
  • *
  • Mensagens: 527
Re: Sensor de temp dois arduinos, do quarto para a sala via RF
« Responder #54 em: 02 de Setembro de 2012, 23:47 »
Experimenta variar a temperatura, ou a humidade, só para ter a certeza que não há nenhum erro e os valores que está a mostrar são os reais.

Se estiver tudo ok já te envio outro código.

Offline r16

  • Mini Robot
  • *
  • Mensagens: 339
Re: Sensor de temp dois arduinos, do quarto para a sala via RF
« Responder #55 em: 02 de Setembro de 2012, 23:50 »
Experimenta variar a temperatura, ou a humidade, só para ter a certeza que não há nenhum erro e os valores que está a mostrar são os reais.

Se estiver tudo ok já te envio outro código.

sim coloquei a mao em cima apertei o sensor aumentou os valores

Offline rglove

  • Mini Robot
  • *
  • Mensagens: 527
Re: Sensor de temp dois arduinos, do quarto para a sala via RF
« Responder #56 em: 02 de Setembro de 2012, 23:57 »
Ok, então experimenta este código:
Código: [Seleccione]
#include <dht11.h>
#include <VirtualWire.h>
 
dht11 DHT11;
 
#define DHT11PIN 2
 
void setup()
 {
   Serial.begin(115200);
   vw_set_tx_pin(6);
   vw_set_ptt_inverted(true);
   vw_setup(2000);
 }
 
void loop()
 {
   Serial.println("\n");
 
  int chk = DHT11.read(DHT11PIN);
 
  Serial.print("Read sensor: ");
   switch (chk)
   {
     case DHTLIB_OK:
                Serial.println("OK");
                break;
     case DHTLIB_ERROR_CHECKSUM:
                Serial.println("Checksum error");
                break;
     case DHTLIB_ERROR_TIMEOUT:
                Serial.println("Time out error");
                break;
     default:
                Serial.println("Unknown error");
                break;
   }
 
  Serial.print("Humidity (%): ");
   Serial.println(DHT11.humidity);
 
  Serial.print("Temperature (oC): ");
   Serial.println(DHT11.temperature);
   char data[1];
   data[0] = DHT11.temperature;
   data[1] = DHT11.humidity;
   vw_send((uint8_t *)data, strlen(data));
   vw_wait_tx();
  delay(2000);
 }

Vou escrever o código para o receptor, mas entretanto podes experimentar com o do tutorial. O do lcd não vai funcionar ainda, não vale a pena tentares com esse. Tenta com o do tutorial, mas vais receber caracteres estranhos. Se receberes é bom sinal.

Offline r16

  • Mini Robot
  • *
  • Mensagens: 339
Re: Sensor de temp dois arduinos, do quarto para a sala via RF
« Responder #57 em: 03 de Setembro de 2012, 00:09 »
Ok, então experimenta este código:
Código: [Seleccione]
#include <dht11.h>
#include <VirtualWire.h>
 
dht11 DHT11;
 
#define DHT11PIN 2
 
void setup()
 {
   Serial.begin(115200);
   vw_set_tx_pin(6);
   vw_set_ptt_inverted(true);
   vw_setup(2000);
 }
 
void loop()
 {
   Serial.println("\n");
 
  int chk = DHT11.read(DHT11PIN);
 
  Serial.print("Read sensor: ");
   switch (chk)
   {
     case DHTLIB_OK:
                Serial.println("OK");
                break;
     case DHTLIB_ERROR_CHECKSUM:
                Serial.println("Checksum error");
                break;
     case DHTLIB_ERROR_TIMEOUT:
                Serial.println("Time out error");
                break;
     default:
                Serial.println("Unknown error");
                break;
   }
 
  Serial.print("Humidity (%): ");
   Serial.println(DHT11.humidity);
 
  Serial.print("Temperature (oC): ");
   Serial.println(DHT11.temperature);
   char data[1];
   data[0] = DHT11.temperature;
   data[1] = DHT11.humidity;
   vw_send((uint8_t *)data, strlen(data));
   vw_wait_tx();
  delay(2000);
 }

Vou escrever o código para o receptor, mas entretanto podes experimentar com o do tutorial. O do lcd não vai funcionar ainda, não vale a pena tentares com esse. Tenta com o do tutorial, mas vais receber caracteres estranhos. Se receberes é bom sinal.

bom com este codigo de emissor recebo:


Read sensor: OK
Humidity (%): 28
Temperature (oC): 28


Read sensor: OK
Humidity (%): 27
Temperature (oC): 29


Read sensor: OK
Humidity (%): 27
Temperature (oC): 29


Read sensor: OK
Humidity (%): 27
Temperature (oC): 29


mas com o teu codigo de receptor:

Código: [Seleccione]
int ledPin = 10; // pino a substituir o potenciometro para contraste
   
   
    #include <VirtualWire.h>

char info[30];

void setup()
{
   pinMode(ledPin, OUTPUT);
    Serial.begin(9600);
    pinMode(7,INPUT);
    vw_set_rx_pin(7); // Pino de recepção
    vw_set_ptt_inverted(true);
    vw_setup(2000);
    vw_rx_start(); // Necessário para começar a receber informação
}

void loop()
{
 
  analogWrite(ledPin, 600);
   
    uint8_t buf[VW_MAX_MESSAGE_LEN];
    uint8_t buflen = VW_MAX_MESSAGE_LEN;

    if (vw_get_message(buf, &buflen)) // Caso chegue alguma mensagem ao receptor
    {
int i;
        digitalWrite(13, true); // Esta parte é opcional, eu utilizei para testar e ver se estava a receber alguma coisa
for (i = 0; i < buflen; i++) // Basicamente isto vai repetir para cada byte recebido e vai guardar a informação numa array de caracteres
{
          info[i]=buf[i];
}
Serial.println(String(info)); // Enviamos pela porta Serial a informação recebida
        memset( &info, 0, sizeof(info) ); // Fazemos reset à variável info para utilizar uma outra vez
        digitalWrite(13, false);
    }
}
nao recebo nada no serial monitor..

atencao que o bitrate do emissor ta muito alto nao sei se é mesmo assim se nao

Offline rglove

  • Mini Robot
  • *
  • Mensagens: 527
Re: Sensor de temp dois arduinos, do quarto para a sala via RF
« Responder #58 em: 03 de Setembro de 2012, 00:20 »
Alto? O bitrate está a 2000, esses módulos chegam aos 4800bps, não está alto. Tem de estar igual no receptor e no transmissor.

Provavelmente estás a receber, mas caracteres em branco.

Experimenta este código no receptor. Depois abre o serial monitor e posta o que recebeste.

Código: [Seleccione]
#include <VirtualWire.h>
void setup()
{
    Serial.begin(9600);
    pinMode(7,INPUT);
    vw_set_rx_pin(7);
    vw_set_ptt_inverted(true);
    vw_setup(2000);
    vw_rx_start();
}

void loop()
{
    uint8_t buf[VW_MAX_MESSAGE_LEN];
    uint8_t buflen = VW_MAX_MESSAGE_LEN;

    if (vw_get_message(buf, &buflen))
    {
        Serial.print("Temperatura: ");
        Serial.print(buf[0]);
        Serial.print("; Humidade: ");
        Serial.println(buf[1]);
    }
}

Offline r16

  • Mini Robot
  • *
  • Mensagens: 339
Re: Sensor de temp dois arduinos, do quarto para a sala via RF
« Responder #59 em: 03 de Setembro de 2012, 00:24 »
Alto? O bitrate está a 2000, esses módulos chegam aos 4800bps, não está alto. Tem de estar igual no receptor e no transmissor.

Provavelmente estás a receber, mas caracteres em branco.

Experimenta este código no receptor. Depois abre o serial monitor e posta o que recebeste.

Código: [Seleccione]
#include <VirtualWire.h>
void setup()
{
    Serial.begin(9600);
    pinMode(7,INPUT);
    vw_set_rx_pin(7);
    vw_set_ptt_inverted(true);
    vw_setup(2000);
    vw_rx_start();
}

void loop()
{
    uint8_t buf[VW_MAX_MESSAGE_LEN];
    uint8_t buflen = VW_MAX_MESSAGE_LEN;

    if (vw_get_message(buf, &buflen))
    {
        Serial.print("Temperatura: ");
        Serial.print(buf[0]);
        Serial.print("; Humidade: ");
        Serial.println(buf[1]);
    }
}

ok alterei ai nesse codigo o bitrate para ficar igual ao do emissor
e aparece isto no serial:

Temperatura: ; Humidade: 
Temperatura: ; Humidade: 
Temperatura: ; Humidade: 
Temperatura: ; Humidade: 
Temperatura: ; Humidade: 
Temperatura: ; Humidade: 


ou seja a tem e hum aparecem em branco

esta a:
  Serial.begin(115200 no emissor
e a   Serial.begin(115200
no receptor
« Última modificação: 03 de Setembro de 2012, 00:27 por r16 »