Integrierender LED-Detector
Für
ein gegebenes Mikrocontroller-System (in diesem Fall den Sparrow)
lautete die Frage: Wie kann ich den einfachsten HF-Empfänger bauen? In
diesem System ist die LED mit B3 verbunden, und damit zugleich mit dem
analogen Eingang ADC3. Also warum nicht hier die Antenne anschließen.
Die LED sollte dann wie eine Detektor-Diode arbeiten. Allerdings wird
eine Vorspannung benötigt, damit die Diode einen günstigen Arbeitspunkt
hat. Und dafür wird der interne Pullup des Ports eingesetzt.
Für
noch mehr Empfindlichkeit wird ein Trick angewandt. Der Pullup wird nur
ganz kurz eingeschaltet. Die LED stellt zugleich einen kleinen
Kondensator mit wenigen pF dar und wird damit kurz bis auf ca. 2 V
aufgeladen. Nach dem Umschalten des Ports in den hochohmigen
Zustand leichtet die LED noch etwas nach und entlädt ihre Kapazität in
einigen Mikrosekunden bis auf ca. 1,5 V. Wenn aber ein HF-Signal
anliegt, entlädt sich die Diode stärker. Mehrere HF-Impulse integrieren
sich zu einem Spannungsabfall der LED. Deshalb soll das Verfahren
"integrierender Detektor" genannt werden. Man erreicht eine
Empfindlichkeit in der Größenordnung von 50 mV bei 100 kHz.
Hier
wurde eine Integrationszeit von 10 µS verwendet. Zunächst wird die
Leerlaufspannung ohne HF-Signal gemittelt, um daraus im laufenden
Betrieb den Spannungsabfall bei einem empfangenen HF-Signal berechnen
zu können. Über die Integrationszeit hat man einen gewissen Einfluss
auf die optimale Empfangsfrequenz. Für HF-Signale sehr hoher Frequenz
ist es besser ohne Verzögerung oder sogar bei dauerhaft eingeschaltetem
Pullup zu messen. Mit diesem einfachen Empfänger konnte ein Morsesignal
bei 400 kHz empfangen werden, wobei am Ausgang B0 ein
Piezo-Lautsprecher angeschlossen war: https://youtu.be/i6FLdRkIDl0 Eine weitere Anwendung ist das Aufspüren von HF-Störquellen: https://youtu.be/VrISHXWsJ9I
Tatsächlich
aber geht es hier um Größeres: Drahtlose Datenübertragung von einem
Controller zum anderen. Im Prinzip hat das auch schon funktioniert: Mit
dem Morse-Sputnik. Für eine bessere Störsicherheit soll aber eine selektive induktive Ankopplung ins Auge gefasst werden.
Download: Sparrow_RX.zip
Direkt laden: http://tiny.systems/categorie/cheepit/RFDetector.html
'ATtiny13 RF receiver
$regfile = "attiny13.dat"
$crystal = 1200000
$hwstack = 8
$swstack = 4
$framesize = 4
Config Portb = &B000000010
Dim T As Byte
Dim N As Byte
Dim D As Word
Dim Ref As Word
Dim Diff As Word
Config Adc = Single , Prescaler = Auto
Config Timer0 = Pwm , Prescale = 8 , Compare B Pwm = Clear Up
D = 0
For N = 1 To 20
Portb.3 = 1
Portb.3 = 0
Waitus 10 'integration time
D = D + Getadc(3) 'LED2 voltage
Next N
Ref = D / 20
Do
Portb.3 = 1
Portb.3 = 0
Waitus 10 'integration time
D = Getadc(3) 'LED2 voltage
If D >= Ref Then
Pwm0b = 0
Else
Diff = Ref - D
If Diff > 2 Then
Pwm0b = 128 'sound and LED1
Waitms 50
End If
End If
Loop
End