Antenne für elektromagnetische Wellen über Mikrocontroller (Transceiver und Empfänger)

Ich habe zwei Arduinos: Mega und Nano, und 2 Stahldrahtstücke als Antennen, die ich direkt in die Stiftschlitze gesteckt habe.

Ich habe meinen Mega2560 so eingerichtet, dass er an einem seiner Pins (PWM Digital Pin 8) einen Wechselstrom erzeugt, also habe ich jetzt ein sinusförmiges Signal (0-5 V, 40 mA), wie Sie in diesem Bild sehen können:

Geben Sie hier die Bildbeschreibung ein

Einen zweiten Arduino (Nano) habe ich als Empfänger eingerichtet. Ich habe einen Draht als Antenne in Analog Pin 1 gesteckt und ihn mit einem 1k-Pulldown-Widerstand verbunden, damit es kein Rauschen gibt. Sie können in einem Bild unten die AnalogRead-Funktion dieses Pins sehen (ich habe die Antenne ein paar Mal berührt :)

Geben Sie hier die Bildbeschreibung ein

Wie bekomme ich dieses Sinuswellensignal auf meinem Arduino Nano (Empfänger A1 Pin) über meine Antenne und elektromagnetische Wellen so einfach wie möglich?

Soll ich diesen Dipol-Antennentyp anstelle nur eines Drahtes verwenden:

Geben Sie hier die Bildbeschreibung ein Geben Sie hier die Bildbeschreibung ein

Oder diese Spulenantenne? Ich habe es vermasselt und kann keine Beispiele für Grundlagen von EM-Wellen finden, die mit Arduino arbeiten, nur vorgefertigte Hochfrequenzmodule.

ps: Hier ist ein interessantes Tutorial, das ich kürzlich gefunden habe, aber es implementiert nur einen Teil meiner Frage "Transceiver mit einem Draht als Antenne".

Nun, das wird nicht funktionieren. Trotzdem haben Sie herausgefunden, warum alle Beispiele, die Sie gefunden haben, externe Funkmodule verwenden. Könnten Sie uns für eine Erklärung, warum es nicht funktioniert, mitteilen, welche Frequenz Ihr Programm erzeugt?
Angenommen, "freq = 100" bedeutet 100 Hz ... hier ist ein Beispiel einer Antenne für 24000 Hz mit einer 240-mal kleineren Wellenlänge als Ihrer. Es ist über eine Meile breit; vielleicht brauchst du etwas größeres. en.wikipedia.org/wiki/VLF_Transmitter_Cutler
Beachten Sie, dass das Signal, das Sie zu empfangen versuchen, normalerweise als Rauschen zählt! Wenn Sie etwas tun, "um sicherzustellen, dass es kein Rauschen gibt", schadet dies auch Ihrem Signal.
@graham-nye Da mein Code 99 Samples in einer Sekunde plus 10 Millisekunden Verzögerung generiert und die Amplitude einer Sinuswelle etwa 255 Samples beträgt, dauerte es fast 4 Sekunden, um eine volle Oszillation zu erhalten, also ist die tatsächliche Frequenz wahrscheinlich 0,25 Hertz
Eine Dipolantenne wäre viel effizienter. Leider muss es für 0,25 Hz fast 600.000 km lang sein. Sie benötigen einen zweiten für Ihren Empfänger. Für alles andere verweise ich auf die Antwort von @dex.

Antworten (1)

Die kurze Antwort lautet: Sie benötigen mindestens ein bisschen mehr Schaltkreise, damit dies funktioniert. Abhängig vom Endziel: Kaufen Sie ein Sender + Empfänger-Kit oder greifen Sie auf analoge elektronische Schaltungen zurück.

Die lange Antwort:

Das Wichtigste zuerst, da Sie ein Vanila (dh die Arduino-Umgebung verwenden) Arduino Mega verwenden und die Abtastfrequenz des PWM auf 490 Hz ( Arduino PWM-Frequenzen ) eingestellt ist, kann dies maximal zu einem Signal von 245 Hz (Nyquist-Frequenz) führen. Was genau in den ELF- Frequenzen liegt.

Diese 245 Hz entsprechen einer Wellenlänge von etwa 1200 km. Das bedeutet, dass ein Halbwellendipol ungefähr 600 km überspannen müsste ... Ich bezweifle, dass dies auf dieses Steckbrett passt. Natürlich hindert Sie nichts daran, kleinere Antennen zu verwenden, die nur Bruchteile der Wellenlänge haben. Aber Sie reduzieren auch die von der Antenne empfangene Energie, wenn Sie sie kleiner machen. (ELF wurde und wird immer noch in der U-Boot-Kommunikation verwendet, ihre Lösung für das Energieproblem besteht darin, sehr lange nachlaufende Drahtantennen zu verwenden. Dies geht nicht einmal auf die Tatsache ein, dass Sie bei einer Abtastrate von 490 Hz eher eine Rechteckwelle bei 245 Hz erzeugen würden als ein Sinus, aber mit den gewählten 100Hz hat man dann eine noch niedrigere Frequenz!

Abgesehen von der minimalen Fähigkeit Ihrer Antenne, Energie aufzunehmen, wurde sie nicht auf kontrollierte Weise gekoppelt. Impedanzfehlanpassungen sorgen dafür, dass der größte Teil der Energie nicht einmal richtig abgestrahlt wird, und auf der Empfängerseite schränkt der gleiche Effekt den Empfang weiter ein.

Und im Allgemeinen sind die von einer Antenne kommenden Signale bestenfalls sehr schwach, möglicherweise im Mikrovoltbereich. Und der Arduino-Adc misst im Millivoltbereich. Faktor 1000 mal größer. Dies erklärt, warum Sie keinen empfangenen Sinus sehen würden. Um etwas Nützliches zu haben, müssten Sie eine sehr empfindliche Verstärkerstufe bauen, die alle Frequenzen außer Ihrem Signal herausfiltert. Dass man die Reaktion am Ausgang sieht, wenn man die Antenne berührt, liegt daran, dass der menschliche Körper kein schlechter Signalempfänger ist, wenn auch keine sehr leistungsfähige Antenne. (In Bezug auf Richtwirkung oder Signalselektivität. Ich nehme einfach so ziemlich alles auf.)

Beachten Sie auch, dass das Entwerfen von Antennen und ihren Eigenschaften fast ebenso eine Kunst wie eine Wissenschaft ist! Nichts, worüber man sich schlecht fühlen müsste.

Nur als Nebenbemerkung: Ich habe vor Jahren ähnliche Experimente durchgeführt. Nur zur Demonstration können Sie einen PWM-Ton auf einem Stift mit einem langen Draht als Antenne senden. Als nächstes können Sie ein einfaches altes analoges Radio verwenden, um das Signal aufzunehmen. Wenn Sie sich etwas Zeit und Mühe geben, werden Sie das Mario-Thema hören, das von und Arduino über ein Radio gespielt wird.

Also zum Schluss und abhängig von Ihrem Endziel:

  • Wenn Sie einen Kommunikationskanal einrichten möchten: Kaufen Sie ein Sender-Empfänger-Kit von ebay und verwenden Sie es als serielle Brücke.
  • Wenn Sie etwas über elektromagnetische Kommunikation lernen möchten: Gehen Sie zurück zu den Grundlagen und bauen Sie ein paar grundlegende Schaltungen auf. (Profi-Tipp: Steckbretter sind wegen parasitärer Einflüsse so ziemlich die schlechteste Basis für solche Schaltungen!)
Vielen Dank für diese klare und vollständige Antwort. Ich arbeite derzeit an diesem Transceiver-Tutorial- Link , also habe ich diese Idee, ob ich es mit Mikrocontrollern implementieren kann. Jetzt wird etwas klarer, und ich werde versuchen, an Verstärkungsstufen auf meiner Empfängerseite und an einer besseren Strahlung auf der Transceiverseite zu arbeiten. Danke noch einmal!
Vielleicht auch versuchen, die Arduino-Pins auf einer niedrigeren Ebene anzutreiben. Der direkte Registerzugriff ist um Größenordnungen schneller als analogWrite oder digitalWrite! Kombinieren Sie dies mit einem Bandpassfilter mit hohem Q und Sie erhalten viel höhere Frequenzen. (In der Größenordnung von einigen MHz.) Dies ist viel einfacher auszustrahlen und aufzunehmen. Das Filter sollte die Harmonischen der Rechteckwelle eliminieren. Empfänger sollte abstimmbar sein, Google ist dein Freund! Dies könnte Ihnen ein sehr einfaches, stromsparendes CW-Setup verschaffen. (PS: bei Folgefragen gerne behilflich!)
hier habe ich ein Tutorial gefunden, das meinem Thema nahe kommt. Sie können Arduino verwenden, um ein Audiosignal auf 666 kHz zu übertragen, und ich habe es getestet und es funktioniert, also denke ich, dass es definitiv nicht nur das monophone Signal ist, und ich denke, das bedeutet, dass pwm mehr als 490 Hz ausgeben kann, also hier ist ein Link, wenn Sie interessiert instructables.com/id/AM-Transmitter-With-Arduino