Hallo, ich hab folgendes Problem. Ich möchte eine Variable über die
VirtualWire Library von einem Arduino zu einem anderen verschicken. Mit
den beiden Sketches unten kann ich nur einen String übertragen. Muss ich
also eine int oder float variable in einen String konvertieren (wenn ja,
wie?) oder gibt es auch eine andere Möglichkeit.
Sketch Sender:
-----------------------
// 433 Mhz-Sender angeschlossen an PIN 7
#include <VirtualWire.h>
#undef int
#undef abs
#undef double
#undef float
#undef round
void setup()
{
vw_set_ptt_inverted(true); // Required for RF Link module
vw_setup(2000); // Bits per sec
vw_set_tx_pin(7); // pin 7 is used as the transmit
data
}
void loop()
{
const char *msg = "Testnachricht"; // this is your message to
send
vw_send((uint8_t *)msg, strlen(msg));
vw_wait_tx(); // Wait for message to
finish
delay(200);
}
Sketch Empfänger:
-----------------------
// 433 Mhz-Empfänger angeschlossen an PIN 7
#include <VirtualWire.h>
#undef int
#undef abs
#undef double
#undef float
#undef round
void setup()
{
Serial.begin(9600);
vw_set_ptt_inverted(true); // Required for RX Link Module
vw_setup(2000); // Bits per sec
vw_set_rx_pin(7); // We will be receiving on pin 7
vw_rx_start(); // Start the receiver
}
void loop()
{
uint8_t buf[VW_MAX_MESSAGE_LEN];
uint8_t buflen = VW_MAX_MESSAGE_LEN;
if (vw_get_message(buf, &buflen)) // check to see if anything has
been received
{
int i;
// Message with a good checksum received.
for (i = 0; i < buflen; i++)
{
Serial.print((char)buf[i]); // the received
data is stored in buffer
}
Serial.println("");
}
/*
ReserveCode
for (i = 0; i < buflen; i++)
{
Serial.print((char)buf[i]); // the received
data is stored in buffer
}
Serial.println("");
}
*/
}
holmes schrieb: > Hallo, ich hab folgendes Problem. Nämlich einen Sender für 433 Millihertz zu finden. :-)
Harald Wilhelms schrieb: > holmes schrieb: > >> Hallo, ich hab folgendes Problem. > > Nämlich einen Sender für 433 Millihertz zu finden. :-) Hey, ich komm grad nicht mit. Wo hab ich den 433 Milliherz geschrieben?
holmes schrieb: > Hey, ich komm grad nicht mit. Wo hab ich den 433 Milliherz geschrieben? holmes schrieb: > Funkübertragung 433mhz | Arduino ^^^^^^
Millihertz wird aber mHz geschrieben. Keine Ahnung, wie man bei mhz auf Millihertz kommen kann. Bitte keine falschen Hinweise.
Hallo, du könntest die binären Daten der Variablen direkt übertragen. Z.B. für eine Variable "float x" bekommst du mittels &x die Adresse an der die Daten stehen und mittels "sizeof(x)" die Anzahl der Bytes. Zum Hin/Her-Kopieren der Daten kannst die Funktiom memcpy verwenden.
holmes schrieb: > Hey, ich komm grad nicht mit. Wo hab ich den 433 Milliherz geschrieben? Nur im Titel. Der Sender dürfte auch gar nicht das Problem sein, eher die passende Antenne. Die VirtualWire Library ist übrigens ersetzt durch die RadioHead Library. In den Datenpaketen kannst du übertragen, was du möchtest - auch Speicherbereiche in Binärform.
Mitleser2 schrieb: > Millihertz wird aber mHz geschrieben. Keine Ahnung, wie man bei mhz auf > Millihertz kommen kann. Bitte keine falschen Hinweise. Warum bitte sollte bei "mhz" die Zuordnung zu "MHz" naheliegender als die zu "mHz" sein. Solch eine Angabe sollte schon gerne etwas genauer als auf einen Faktor 1000000000 sein.
Forist schrieb: > Mitleser2 schrieb: >> Millihertz wird aber mHz geschrieben. Keine Ahnung, wie man bei mhz auf >> Millihertz kommen kann. Bitte keine falschen Hinweise. > > Warum bitte sollte bei "mhz" die Zuordnung zu "MHz" naheliegender als > die zu "mHz" sein. Solch eine Angabe sollte schon gerne etwas genauer > als auf einen Faktor 1000000000 sein. . weil die Shift-Taste entweder komplett klemmt, oder gar nicht. . weil es keine Funkmodule 433mHz gibt . weil es niemanden jemals gegeben hat, der mhz geschrieben hat und damit Millihertz meinte (außer denen, die Klugscheißen, ohne selbst zu wissen wie man mHz schreibt)
Mitleser2 schrieb: > . weil die Shift-Taste entweder komplett klemmt, oder gar nicht. Tut sie offensichtlich nicht, oder wo vermutest du bei "Funkübertragung 433mhz | Arduino" einen Totalklemmer?
Hey, vielen dank für die schnelle Hilfe. Ich werd das mal mit der RadioHead Library versuchen. Ich hoffe ich finde da einen passenden Beispiel-Code. Und das mit den 433 mhz - tut mir echt leid. Ich hab mich da einfach vertippt. Ich meinte natürlich MHz. LG
> tut mir echt leid. Ich hab mich da einfach vertippt. > Ich meinte natürlich MHz. Lass dich nicht veräppeln, das war zu 99,99999999% allen klar. Wer hier wegen Rechtschreibung herum meckert, sollte besser Deutschlehrer werden und dieses Forum den Menschen überlassen, die an Technik Spass haben. Ok, wer jetzt sowohl an Technik als auch an Deutsch Spass hat mag da anderer Meinung sein.
Stefan Us schrieb: > Lass dich nicht veräppeln, das war zu 99,99999999% allen klar. Spätesten bei D (Deka-) und d (dezi) schwindet die Anzahl der 9en ;-) Wenn man unter QRSS sucht, findet man übrigens Datenübertragungen mit einer typischen Bitfrequenz in der Größenordnung von 30mHz ...
Stefan Us schrieb: > Wer hier wegen Rechtschreibung herum meckert, Hier geht es nicht um Rechtschreibung, sondern um einen sinnentstellenden Fehler. Als Techniker sollte man sich eine klare, für alle verständliche Sprache angewöhnen.
SCNR.. ..deutsche Sprache ist ja auch keine Technikersprache.. - Sonnenblumenöl - Rapsöl - Olivenöl - Salatöl? - Babyöl?? - Motoröl ..und angenommen, man will eine Schraube aus dem Material Holz - ist das dann eine Holzschraube? Und was ein Techniker ist, der liest das "mhz" vllt. schon gar nicht mehr, weil "Funk" und "433" schon ausreichen für die Entscheidung "Schau ich rein oder nicht.."
Ach.... Auf Tippfehlern rum zu hacken ist schwach. Sind sie sinnentstellend, kann man nachfragen, oder den Thread/Beitrag ignorieren. Wenn aus dem Kontext hervorgeht, was gemeint ist, dann ist es die neurotische Fehlanpassung "Pingeliger Perfektionismus" welche mal wieder aus dem Ruder läuft. Nobody is perfect! (und selbst der nicht zu 100%) Wenn sich Leser und Schreiber etwas Mühe geben ist eine fachliche Diskussion, trotz kleiner Fehler, möglich. Und überhaupt: Korrekturen sind hier im Forum nur sehr begrenzt möglich. Also ist das ein Geschrei über gewesenes, unabwendbares.... Tipp: Wenn jemand einen Bock schießt, und es Kröten für ihn zu schlucken gibt, dann muss man die Kröten nicht noch unbedingt vorher in Dreck wälzen.
holmes schrieb: > Muss ich > also eine int oder float variable in einen String konvertieren (wenn ja, > wie?) oder gibt es auch eine andere Möglichkeit. wer hindert dich itoa ftoa dtoa zu nutzen? int2ascii float2ascci double2ascii oder sprintf zu nutzen?
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.