433MHz adat továbbítás

Processing/Wiring (illetve C) nyelvű programozási fogások, tippek. (AVR-Duino, Arduino, EthDuino, Diecimila, Severino, Nano, LilyPad)
karolyia
Újonc
Újonc
Hozzászólások: 8
Csatlakozott: 2017. április 14. péntek, 7:47

433MHz adat továbbítás

HozzászólásSzerző: karolyia » 2017. október 17. kedd, 12:46

Sziasztok!

Van egy korábbi projektem, ami eddig működött. A hw úgy néz ki, hogy:
ADÓ: Nano + 433 jeladó + 10K thermistor + visszajelző led
VEVŐ: UNO + 433 vevő +10k thermistor

Ez így tökéletesen működött. A vevőm egy Mega volt, egy 16x2 I2C lcd-vel. A megát el kellett használnom egy másik projekthez, most egy UNO-t próbálok berakni helyette, de én akárhogy nézem a dolgot, se a hw-ben, se a sw-ben nem találom a hibát. Már 20x szétszedtem, újrakábeleztem, újraírtam, másik változókkal, lecseréltem az uno-t nanora, kicseréltem a 10k-s thermistort, kicseréltem a jeladót, kicseréltem a vevőt. Kifogytam az ötletekből....

A jeladón semmit se változtattam, a programot nem írtam át. A vevő programja lent van. A vevő nem kap jelet, az if ciklus üresen forog...

A jeladó kódja (ezen nem változtattam semmit:

Kód: Egész kijelölése

#include <VirtualWire.h>

float temp;
char msg[6];
float R1 = 10000, logR2, R2, T, Tc, Tf;
float c1 = 1.009249522e-03, c2 = 2.378405444e-04, c3 = 2.019202697e-07;
int Vo, LedPin = 12, sensor = 0; ;


void setup()
{
  pinMode(LedPin, OUTPUT);
  Serial.begin(9600);
  vw_set_tx_pin(2);
  vw_setup(2000);
}

void loop()
{ digitalWrite(LedPin, LOW);

  Vo = analogRead (sensor);
  R2 = R1 * (1023.0 / (float)Vo - 1.0);
  logR2 = log(R2);
  T = (1.0 / (c1 + c2 * logR2 + c3 * logR2 * logR2 * logR2));
  Tc = T - 273.15;

  Serial.print ("Hőmérséklet: ");
  Serial.println (Tc);
  dtostrf(Tc, 6, 2, msg);
  Serial.println("Adatkonvertálás");

  digitalWrite(LedPin, HIGH);

  vw_send((uint8_t *)msg, strlen(msg));
  Serial.println("Adatküldés...");
  vw_wait_tx();
  Serial.println("Adat elküldve");
  Serial.println(" ");

  digitalWrite(LedPin, LOW);
  delay(2000);
}


Vevő kódja, kiszedtem belőle a kijelzőt, elég a soros monotoron az adatfolyam:

Kód: Egész kijelölése

#include <VirtualWire.h>
void setup()
{
    delay(1000);
    Serial.begin(9600); 

    vw_set_rx_pin(2);
    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))
    {
  int i;

  Serial.print("ADAT: ");
 
  for (i = 0; i < buflen; i++)
  {
      Serial.print(buf[i]);
      Serial.print(' ');
  }
  Serial.println();

    }
    delay(2000);
}

karolyia
Újonc
Újonc
Hozzászólások: 8
Csatlakozott: 2017. április 14. péntek, 7:47

Re: 433MHz adat továbbítás

HozzászólásSzerző: karolyia » 2017. október 17. kedd, 12:47

Vagyis nem az if pöröf, hanem a loop. If nem teljesül...

Avatar
Robert
Elektronbűvölő
Hozzászólások: 9757
Csatlakozott: 2005. december 9. péntek, 7:00
Tartózkodási hely: Budapest
Kapcsolat:

Re: 433MHz adat továbbítás

HozzászólásSzerző: Robert » 2017. október 17. kedd, 17:39

Melyik 433-as?
Nem hangolódott el?

Ne összevissza tesztelj, hanem funkcionálisan.
Pl.: 433 mikor ad magas/alacsony jelet? Önállóan tudnak azok legalább beszélgetni?

NE a VirtualWire eljárással játszál!
Hülye tipp: Arduino keretrendszer nem változott?
VWire eszközkönyvtár?
http://www.tavir.hu - a gazda :)

karolyia
Újonc
Újonc
Hozzászólások: 8
Csatlakozott: 2017. április 14. péntek, 7:47

Re: 433MHz adat továbbítás

HozzászólásSzerző: karolyia » 2017. október 18. szerda, 7:03

FS1000A a jeladó és MX RM 5V a vevő típusa. Elhangolódás kizárva szerintem. Frekiváltáshoz ellenállást kéne rajta cserélni elméletileg, de ha el is hangolódott se lenne érdekes, mert próbáltam már 3 másik jeladó-vevő párost.

Ezt a magas/alacsony jelet és az önálló kommunikáció tesztet nem értem. Az hogy néz ki? Lehet hülyeség amit írok, de nem kell ahhoz oszciloszkóp? :oops:

Mi a baj a WirtualVire-al? A keret nem változott, csak a vérnyomásom mikor nekiesek 120-adik alkalommal és még mindig nem működik... :D

karolyia
Újonc
Újonc
Hozzászólások: 8
Csatlakozott: 2017. április 14. péntek, 7:47

Re: 433MHz adat továbbítás

HozzászólásSzerző: karolyia » 2017. október 18. szerda, 7:48

Megoldódott. A jeladós arduinóból eltávozott a D12 pin...újra megadtam neki, hogy az kimenet, leteszteltem egy leddel és most tökéletes.
Az a vicc, hogy nem is klón, hanem dobozos, eredeti cucc... :x

vargham
Tranzisztorgyógyász
Hozzászólások: 157
Csatlakozott: 2014. január 8. szerda, 8:32
Kapcsolat:

Re: 433MHz adat továbbítás

HozzászólásSzerző: vargham » 2017. október 20. péntek, 13:54

>eltávozott a D12 pin
Ez alatt mit értesz?

Avatar
Robert
Elektronbűvölő
Hozzászólások: 9757
Csatlakozott: 2005. december 9. péntek, 7:00
Tartózkodási hely: Budapest
Kapcsolat:

Re: 433MHz adat továbbítás

HozzászólásSzerző: Robert » 2017. október 23. hétfő, 7:23

Tipp: Nem volt benne a kódban hogy kimenet. De így is állítható, hogy low/high állapotú legyen. És az meg is jeleni - mégha bemenet is a láb. A szivárgó áram meg képes jelszintet adni _kifele_ max. a terhelhetősége pár 10 uA.
http://www.tavir.hu - a gazda :)


Vissza: “Arduino / C-nyelvű programozás (AVR-Duino, EthDuino, Arduino, Diecimila)”

Ki van itt

Jelenlévő fórumozók: apeape valamint 5 vendég