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("");
}
*/
}
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?
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?