Projekt:Nano-Langwellensender: Unterschied zwischen den Versionen
Dg3hda (Diskussion | Beiträge) (Bild) |
Dg3hda (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
||
Zeile 8: | Zeile 8: | ||
}} | }} | ||
==Übersicht== | |||
'''Achtung!''' | <span style="color:#ff0000">'''Achtung!''' | ||
# Projekt ist noch TBD | # Projekt ist noch TBD | ||
# Sendebetrieb nur lizenzierten Funkamateuren erlaubt | # Sendebetrieb nur lizenzierten Funkamateuren erlaubt | ||
</span> | |||
Verwendung eines handelsüblichen Arduino Nano als Langwellenbake niedriger Leistung für Amateurfunk. | Verwendung eines handelsüblichen Arduino Nano als Langwellenbake niedriger Leistung für Amateurfunk. | ||
Mit den | 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. | ||
==Verantwortlicher== | ==Verantwortlicher== | ||
Zeile 26: | Zeile 24: | ||
==Details== | ==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%. Vor Einsatz an effektiven Antennen sollte man einen Tief- oder Bandpassfilter zwischenschalten um das Rechteckspektrum auf möglichst die eine, erwünschte Linie zurechtzuknüppeln. | |||
==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 | |||
[[Datei:Arduino Nano Telegraphiebake.mp4]] | [[Datei:Arduino Nano Telegraphiebake.mp4]] | ||
== Code == | |||
Der folgende Code codiert ein N in Morsetelegraphie, bitte an eigenes Rufzeichen und Message anpassen! | |||
<pre> | |||
#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 | |||
} | |||
} | |||
</pre> | |||
== Referenzen == |
Version vom 8. Mai 2017, 22:06 Uhr
Arduino Langwellensender
Status: unstable | |
---|---|
Beschreibung | Amateurfunk-Morsebake aus Arduino Nano |
Ansprechpartner | Hendi |
Übersicht
Achtung!
- Projekt ist noch TBD
- Sendebetrieb nur lizenzierten Funkamateuren erlaubt
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.
Verantwortlicher
Hendi, dg3hda
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%. Vor Einsatz an effektiven Antennen sollte man einen Tief- oder Bandpassfilter zwischenschalten um das Rechteckspektrum auf möglichst die eine, erwünschte Linie zurechtzuknüppeln.
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 } }