Funkübertragung mit Modul HTC-11
Ziel ist es mittels Funkübertragung Daten vom Atmega zum Rechner zu übertragen.
Ich hatte einige Schaltungen aufgebaut die mit Funk, Daten zum Rechner übertragen haben.
Leider gibt es diese Module nicht mehr im Handel, somit sah ich mich genötigt alternative Funkmodule zu nutzen.
Es gibt wohl eine Vielzahl von Module die sehr kostengünstig sind , leider funktionieren die meisten mit Bluetooth,
es ist zwar ein ausgereiftes System, allerdings ist die Reichweite auf ca max 10 Meter
sehr begrenzt.
Dann gibt es noch eine Vielzahl an Funkmodule die auch günstig zu bekommen sind, die aber kein Protokoll beinhalten,
insofern die Programmierung aufwändig und kompliziert ist.
Abschließend noch die Funkmodule die keine passende Schnittstelle aufweisen und somit auch ausscheiden.
Das hier benutzte Modul hat den Vorteil das es mit einer Spannung zwischen 3,3 und 5 Volt auskommt, womit es auch im Bereich
der Betriebsspannung liegt die auch für den Mikroprozessor der Firma Atmel ( Atmega 8 ) benötigt wird.
Das Modul HC-11 arbeitet auf einer Frequenz von 434 MHz und benutzt Standardmäßig eine Übertragungsrate von 9600 Baud.
Der Stromverbrauch liegt im Standby bei 80 uA und im Betrieb je nach Funktion bis max 22 mA.

Schaltung
Zur Schaltung ist nicht viel zu sagen, der Quarz ist nötig um die Übertragungsrate von 9600 Baud ohne Fehler übertragen zu können.
Die Led's werden nur benötigt um einige Betriebszustände darstellen zu können.




Software in Bascom geschrieben

Programm
$crystal = 3276800     Gibt die Quarzfrequenz an in Herz
$hwstack = 32   Default use 32 Hardware reservierte Speicher
$regfile "m8def.dat"    
Definiert den Atmega als Atmega8
$swstack = 10        
Default Software resvierung Speicher
$baud = 9600 Gibt die TXR TDR Schnittstelle frei
Variable deklarieren
Dim Eingang As String * 10
Empfangene Daten zwischenspeichern


E/Ausgänge festlegen
Ddrd.7 = 1    
Led Grün
Ddrb.5=1
Led Blau
Konfiguration fürs Display
Config Lcd = 16 * 2
Config Lcdpin = Pin , Db4 = Portd.4 , Db5 = Portd.6 , Db6 = Portd.3 , Db7 = Portd.2 , Rs = Portc.4 , E = Portc.5
Konfiguration für das Emfangen von Daten
Enable URXC
schaltet den URXC Interrupt ein
Sreg.7 = 1     Interrupts allgemein freigeben
On Urxc Datenempfang Namen für Routine angeben
Ucsrb.rxcie = 1 nur interupt zum empfang der Daten an RXD freigeben

URXC ist ein festgelegter Interrupt für den Datenempfang
wobei nach jedem empfangenen Byte ein interner Interrupt ausgelöst wird
Programm
Do
Wait 1
Toggle Portd.7

Print 1 Sendet das AscII Zeichen 1
Cls  
Display löschen
Locate 1 , 1
Lcd " Sende 1"
Locate 2 , 1
Lcd "Empfange=" ; Eingang Empfangene Daten ausgeben
Wait 1
Loop
Routine für den Datenempfang
Datenempfang:
Eingang = Eingang + Chr(udr) chr(udr) wandelt den empfangenen Wert aus UDR in ein ASCII Zeichen um
Return

HC-11 Funk Modul
Das HC_11 Modul arbeitet mit gewissen Standard Einstellungen die aber auch neu Parametriert werden können.
 Leider ist es mir nicht gelungen in den Befehlsmodus zu gelangen um so die Parameter zu ändern.
Datenblatt HC 11

Aktualisiert 09.11.2024