- Erforderliche Komponenten
- Verwendete Software
- 433 MHz HF-Sender- und Empfängermodul
- Schaltplan
- Erstellen des Projekts für Atmega 8 mit CodeVision
- CODE und Erklärung
- Laden Sie den Code auf Atmega8 hoch
Wir machen unsere Projekte Wireless macht es immer cool und erweitert auch den Bereich, in dem es gesteuert werden kann. Angefangen von der Verwendung einer normalen IR-LED für die drahtlose Kurzstreckensteuerung bis hin zu einem ESP8266 für die weltweite HTTP-Steuerung gibt es viele Möglichkeiten, etwas drahtlos zu steuern. In diesem Projekt lernen wir, wie man drahtlose Projekte mit einem 433-MHz-HF-Modul und einem AVR-Mikrocontroller erstellt.
In diesem Projekt machen wir folgende Dinge: -
- Wir verwenden Atmega8 für den HF-Sender und Atmega8 für den HF-Empfängerbereich.
- Wir verbinden eine LED und einen Druckknopf mit Atmega8-Mikrocontrollern.
- Auf der Senderseite verbinden wir den Druckknopf mit Atmega und übertragen die Daten. Auf der Empfängerseite empfangen wir die Daten drahtlos und zeigen die Ausgabe auf der LED an.
- Wir verwenden Encoder- und Decoder-IC, um 4-Bit-Daten zu übertragen.
- Die Empfangsfrequenz beträgt 433 MHz, wenn ein billiges RF TX-RX-Modul verwendet wird, das auf dem Markt erhältlich ist.
Erforderliche Komponenten
- Atmega8 AVR Mikrocontroller (2)
- USBASP-Programmierer
- 10-poliges FRC-Kabel
- Brotbrett (2)
- LEDs (2)
- Drucktaste (1)
- HT12D- und HT12E-Paar
- RX-TX RF-Modul
- Widerstände (10k, 47k, 1M)
- Überbrückungsdrähte
- 5V Stromversorgung
Verwendete Software
Wir verwenden die CodeVisionAVR- Software zum Schreiben unseres Codes und die SinaProg- Software zum Hochladen unseres Codes auf Atmega8 mit dem USBASP-Programmierer.
Sie können diese Software über die angegebenen Links herunterladen:
CodeVisionAVR :
SinaProg:
Bevor wir uns mit den Schaltplänen und Codes befassen, wollen wir uns mit der Funktionsweise des HF-Moduls mit Encoder-Decoder-ICs vertraut machen.
433 MHz HF-Sender- und Empfängermodul
Dies sind die Sender- und Empfängermodule, die wir im Projekt verwenden. Es ist das billigste verfügbare Modul für 433 MHz. Diese Module akzeptieren serielle Daten in einem Kanal.
Wenn wir die Spezifikationen der Module sehen, ist der Sender für einen Betrieb von 3,5 bis 12 V als Eingangsspannung ausgelegt und die Sendedistanz beträgt 20 bis 200 Meter. Es sendet im AM-Protokoll (Audio Modulation) mit einer Frequenz von 433 MHz. Wir können Daten mit einer Geschwindigkeit von 4 KB / S und einer Leistung von 10 mW übertragen.
Im oberen Bild sehen wir die Pinbelegung des Sendermoduls. Von links nach rechts sind die Pins VCC, DATA und GND. Wir können die Antenne auch hinzufügen und an der im obigen Bild angegebenen Stelle löten.
Für die Empfängerspezifikation hat der Empfänger eine Nennspannung von 5 V Gleichstrom und 4 mA Ruhestrom als Eingang. Die Empfangsfrequenz beträgt 433,92 MHz mit einer Empfindlichkeit von -105 dB.
Im obigen Bild sehen wir die Pinbelegung des Empfängermoduls. Die vier Pins sind von links nach rechts, VCC, DATA, DATA und GND. Diese beiden mittleren Stifte sind intern verbunden. Wir können einen oder beide verwenden. Es ist jedoch eine gute Praxis, beide zum Verringern der Rauschkopplung zu verwenden.
Eines wird im Datenblatt nicht erwähnt: Der variable Induktor oder POT in der Mitte des Moduls wird für die Frequenzkalibrierung verwendet. Wenn wir die gesendeten Daten nicht empfangen konnten, besteht die Möglichkeit, dass die Sende- und Empfangsfrequenzen nicht übereinstimmen. Dies ist eine HF-Schaltung, und wir müssen den Sender auf den perfekten Sendefrequenzpunkt einstellen. Ebenso wie der Sender verfügt auch dieses Modul über einen Antennenanschluss. Wir können Draht in gewickelter Form für einen längeren Empfang löten.
Die Übertragungsreichweite hängt von der an den Sender gelieferten Spannung und der Länge der Antennen auf beiden Seiten ab. Für dieses spezielle Projekt haben wir keine externe Antenne und 5 V auf der Senderseite verwendet. Wir haben mit 5 Metern Entfernung nachgesehen und es hat perfekt funktioniert.
Weitere Informationen zum HF-Paar finden Sie in der HF-Sender- und Empfängerschaltung. Sie können mehr über die Funktionsweise von RF erfahren, indem Sie folgende Projekte überprüfen, die RF-Paare verwenden:
- HF-gesteuerter Roboter
- IR-HF-Wandlerschaltung
- HF-ferngesteuerte LEDs mit Raspberry Pi
- HF-gesteuerte Haushaltsgeräte
Schaltplan
Schaltplan für die Seite des HF-Senders
- Pin D7 von atmega8 -> Pin13 HT12E
- Pin D6 von atmega8 -> Pin12 HT12E
- Pin D5 von atmega8 -> Pin11 HT12E
- Pin D4 von atmega8 -> Pin10 HT12E
- Druckknopf an Pin B0 von Atmega.
- 1 M-Ohm-Widerstand zwischen Pin 15 und 16 von HT12E.
- Pin17 von HT12E an Datenpin des HF-Sendermoduls.
- Pin 18 von HT12E auf 5V.
- GND Pin 1-9 und Pin 14 von HT12E und Pin 8 von Atmega.
Schaltplan für HF-Empfängerseite
- Pin D7 von atmega8 -> Pin13 HT12D
- Pin D6 von atmega8 -> Pin12 HT12D
- Pin D5 von atmega8 -> Pin11 HT12D
- Pin D4 von atmega8 -> Pin10 HT12d
- LED an Pin B0 von Atmega.
- Pin14 von HT12D an Datenpin des RF-Empfängermoduls.
- 47Kohm Widerstand zwischen Pin15 und 16 von HT12D.
- GND Pin 1-9 von HT12D und Pin 8 von Atmega.
- LED an Pin 17 von HT12D.
- 5V an Pin 7 von Atmega und Pin 18 von HT12D.
Erstellen des Projekts für Atmega 8 mit CodeVision
Führen Sie nach der Installation dieser Software die folgenden Schritte aus, um ein Projekt zu erstellen und Code zu schreiben:
Schritt 1. CodeVision öffnen Klicken Sie auf Datei -> Neu -> Projekt . Das Bestätigungsdialogfeld wird angezeigt. Klicken Sie auf Ja
Schritt 2. Der CodeWizard wird geöffnet. Klicken Sie auf die erste Option, dh AT90 , und klicken Sie auf OK.
Schritt 3. Wählen Sie Ihren Mikrocontroller-Chip, hier nehmen wir Atmega8 wie gezeigt.
Schritt 4: - Klicken Sie auf Ports. Im Senderteil ist unsere Drucktasteneingabe und 4 Datenleitungen ausgegeben werden. Wir müssen also 4 Pins Atmega als Ausgang initialisieren. Klicken Sie auf Port D. Machen Sie Bit 7, 6, 5 und 4 durch Klicken darauf.
Schritt 5: - Klicken Sie auf Programm -> Generieren, Speichern und Beenden . Jetzt ist mehr als die Hälfte unserer Arbeit abgeschlossen
Schritt 6: - Erstellen Sie einen neuen Ordner auf dem Desktop, damit unsere Dateien im Ordner verbleiben, da sie sonst auf das gesamte Desktop-Fenster verteilt werden. Benennen Sie Ihren Ordner wie gewünscht, und ich schlage vor, zum Speichern von Programmdateien denselben Namen zu verwenden.
Wir werden nacheinander drei Dialogfelder haben, um Dateien zu speichern. Machen Sie dasselbe mit den beiden anderen Dialogfeldern, die angezeigt werden, nachdem Sie das erste gespeichert haben.
Nun sieht Ihr Arbeitsbereich so aus.
Der größte Teil der Arbeit wird mit Hilfe des Assistenten erledigt. Jetzt müssen wir nur noch wenige Codezeilen für den Sender- und Empfängerteil schreiben und das wars…
Führen Sie die gleichen Schritte aus, um Dateien für den Empfängerteil zu erstellen. Im Empfängerteil ist nur Led unser Ausgang, also machen Sie Port B0 Bit zu Out.
CODE und Erklärung
Wir werden Code zum drahtlosen Umschalten der LED mithilfe von RF schreiben. Der vollständige Code für Atmega auf Sender- und Empfängerseite ist am Ende dieses Artikels angegeben.
Atmega8-Code für HF-Sender:
Zunächst Fügen Sie delay.h zu verwenden Verzögerung in unserem Code - Header - Datei.
#einschließen
Kommen Sie nun zu den letzten Codezeilen, in denen Sie eine while- Schleife finden. Unser Hauptcode wird in dieser Schleife sein.
In der While- Schleife senden wir 0x10 Byte an PORTD, wenn die Taste gedrückt wird, und senden 0x20, wenn die Taste nicht gedrückt wird. Sie können einen beliebigen Wert zum Senden verwenden.
während (1) { if (PINB.0 == 1) { PORTD = 0x10; } if (PINB.0 == 0) { PORTD = 0x20; } } }
Atmega- Code für HF-Empfänger
Deklarieren Sie zuerst Variablen über der void- Hauptfunktion zum Speichern eingehender Zeichen vom RF-Modul.
#einschließen
Kommen Sie nun zur while- Schleife. Speichern Sie in dieser Schleife eingehende Bytes in einem char-variablen Byte und prüfen Sie, ob das eingehende Byte mit dem übereinstimmt, das wir in unserem Senderteil geschrieben haben. Wenn die Bytes gleich sind, machen Sie PortB.0 hoch und nehmen Sie NICHT PORTB.0, um die LED umzuschalten.
während (1) { Byte = PIND; if (PIND.7 == 0 && PIND.6 == 0 && PIND.5 == 0 && PIND.4 == 1) { PORTB.0 = ~ PORTB.0; delay_ms (1000); }}}
Erstellen Sie das Projekt
Unser Code ist vervollständigt. Jetzt müssen wir unser Projekt aufbauen . Klicken Sie wie gezeigt auf das Projekt-Symbol erstellen.
Nach dem Erstellen des Projekts wird im Ordner Debug-> Exe eine HEX-Datei generiert, die sich in dem Ordner befindet, den Sie zuvor zum Speichern Ihres Projekts erstellt haben. Wir werden diese HEX-Datei verwenden, um mit der Sinaprog-Software in Atmega8 hochzuladen.
Laden Sie den Code auf Atmega8 hoch
Schließen Sie Ihre Schaltkreise gemäß dem angegebenen Diagramm an, um Atmega8 zu programmieren. Schließen Sie die eine Seite des FRC-Kabels an den USBASP-Programmierer an und die andere Seite wird wie unten beschrieben mit den SPI-Pins des Mikrocontrollers verbunden:
- Pin1 der FRC-Buchse -> Pin 17, MOSI von Atmega8
- Pin 2 ist mit Vcc von atmega8 verbunden, dh Pin 7
- Pin 5 mit Reset von atmega8 verbunden, dh Pin 1
- Pin 7 mit SCK von atmega8 verbunden, dh Pin 19
- Pin 9 mit MISO von atmega8 verbunden, dh Pin 18
- Pin 8 mit GND von atmega8 verbunden, dh Pin 8
Schließen Sie die restlichen Komponenten gemäß Schaltplan auf dem Steckbrett an und öffnen Sie den Sinaprog.
Wir werden die oben generierte Hex-Datei mit dem Sinaprog hochladen. Öffnen Sie sie und wählen Sie Atmega8 aus dem Dropdown-Menü Gerät. Wählen Sie die HEX-Datei wie gezeigt aus dem Ordner Debug-> Exe aus .
Klicken Sie nun auf Programm.
Sie sind fertig und Ihr Mikrocontroller ist programmiert. Verwenden Sie dieselben Schritte, um einen anderen Atmega auf der Empfängerseite zu programmieren.
Der vollständige Code und das Demonstrationsvideo sind unten angegeben.