Sekundenblinker und Zeitzeichen
von Constantin
Elektronik-Labor
Projekte
Mikrocontroller PicoBasic
Mein erster Versuch mit PicoBasic auf dem Rpi Pico war ein einfacher
Blinker. Weil ich Wartezeiten von einer Sekunde eingesetzt habe, ist
die LED genau eine Sekunde lang an und eine Sekunde lang aus. Es blinkt
genau im Takt mit dem Ticken der Wanduhr.
Rem Sekundenblinker
L1:
0x09FF Pdir = 255
0x0800 Pout = 0
0x1A01 Delay s = 1
0x0802 Pout = 2
0x1A01 Delay s = 1
0x2000 Goto L1:
Auch über den PWM-Ausgang kann man die Sekunden ausgeben. Wenn ich da
einen kleinen Lautsprecher anschließe, kommen alle zwei Sekunden Töne
mit 1000 Hertz raus, die genau eine Sekunde lang sind.
Rem Sekundenpieps
L1:
0x09FF Pdir = 255
0x0800 Pout = 0
0x1000 PWM1 = 0
0x1A01 Delay s = 1
0x0802 Pout = 2
0x1080 PWM1 = 128
0x1A01 Delay s = 1
0x2000 Goto L1:
Erweiterung (B.K.)
Bei einem Test fiel auf: In einem Radio kann man die Töne auf
Mittelwelle leise hören, wenn ein Kabel als Antenne an PWM1
angeschlossen wird. Das sind die Oberwellen von 1 kHz, ähnlich wie beim
Morse-Übungsgerät.
Die PWM-Frequenz kann man beim Pico bis auf 250 kHz erhöhen, um
stärkere Signale zu bekommen. Damit man aber auch etwas hört, muss man
die PWM-Ausgabe periodisch ein- und ausschalten. Damit entsteht ein
amplitudenmoduliertes Signal. In den Pausen sorgt der Träger dafür,
dass die ALC im Radio nicht das Rauschen hochdreht.
Rem Zeitzeichen
0x09FF Pdir = 255
0x010A A = 10
0x21F0 Gosub L240:
Rem PWM 250 kHz
0x103F PWM1 = 63
L1:
0x0800 Pout = 0
0x1A01 Delay s = 1
0x0802 Pout = 2
0x03F9 C = 249
L2:
0x1000 PWM1 = 0
0x1901 Delay ms = 1
0x103F PWM1 = 63
0x1901 Delay ms = 1
0x1000 PWM1 = 0
0x1901 Delay ms = 1
0x103F PWM1 = 63
0x1901 Delay ms = 1
0x2508 C*Goto L2:
0x2004 Goto L1:
In einer Zählschleife mit 250 Durchläufen wird zweimal ein- und
ausgeschaltet, jeweils für eine Millisekunde. Der Ton dauert auch
wieder genau eine Sekunde. Im Radio erscheint ein starker
Zeitzeichen-Sender bei 1250 kHz, der fünften Oberwelle der
PWM-Frequenz.
Elektronik-Labor
Projekte
Mikrocontroller PicoBasic