Projekt:Nano-Langwellensender

Aus Schaffenburg
Version vom 28. Mai 2021, 11:58 Uhr von Dg3hda (Diskussion | Beiträge) (Fork)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Wechseln zu: Navigation, Suche
Crystal Clear action run.png
Arduino Langwellensender

Status: stable

WhatsApp Image 2017-05-05 at 21.32.15.jpeg
Beschreibung Amateurfunk-Morsebake aus Arduino Nano
Ansprechpartner Hendi


Übersicht

Achtung!

  1. Sendebetrieb nur lizenzierten Funkamateuren erlaubt, und die wissen um die Probleme und besonderheiten.

Verwendung eines handelsüblichen Arduino Nano als Langwellenbake niedriger Leistung für Amateurfunk.

Mit den Arduinos kann man relativ hochfrequente Signale erzeugen und damit Sender bauen. Die Modulationssignale kann er dank timern auch kontrollieren, z.B. für Morsetelegraphie das Signal tasten. Dieses Beispiel arbeitet im 137 kHz Amateurfunkband.

Davon abgeleitet wurde das Projekt Langwellen-Kabelsucher

Verantwortlicher

Hendi, dg3hda Rindphi.jpg

Details

Aufgrund meiner Bequemlichkeit wird der Träger in den Pausen nicht abgestellt sondern nur die Pulsweite auf Minimalwert gestellt. Bei Aussendung mit "vollem Pegel" steht die Pulsweite bei ~50%.


Empfangsprobe

Das Signal wurde in etwa 1/2 m Entfernung mit einem Kenwood TH-F7E an dessen interner Ferritstabantenne empfangen und ein kleines Video aufgenommen

Code

Der folgende Code codiert ein N in Morsetelegraphie, bitte an eigenes Rufzeichen und Message anpassen!

#include <avr/io.h>
#include <util/delay.h>

int main(void)
{
//Ausgang konfigurieren
pinMode(3, OUTPUT);
//Timer 2 modus zurechtbitteln
TCCR2A = _BV(COM2A1) | _BV(COM2B1) | _BV(WGM21) | _BV(WGM20);
TCCR2B = _BV(WGM22) | _BV(CS20);
//Timer 2 einen maximalen Zählwert vorgeben, bestimmt Frequenz
OCR2A = 117;

//sorry
while (1)
{
//Pause von 10 Sekunden
OCR2B = 0;Minimale Pulsbreite. Träger wird also nicht ganz abgeschaltet aber reduziert.   
_delay_ms(10000); //sag nix!
OCR2B = 59;     //Tastung ~ 50% Tastverhältnis der PWM
_delay_ms(300);  //Dauer eines bequemen DAH oder Interzeichenpause
OCR2B = 0;      //Aus
_delay_ms(100);  //Intersymbolpause oder ein DIT
OCR2B = 59;     //Und Träger wieder her
_delay_ms(100);  //Dauer eines bequemen Dah
OCR2B = 0;      //Träger wieder weg
}
}

Referenzen