- Komponenter, der kræves
- Brugt software
- 433MHz RF-sender og modtagermodul
- Kredsløbsdiagram
- Oprettelse af projektet til Atmega 8 ved hjælp af CodeVision
- KODE og forklaring
- Upload koden til Atmega8
At gøre vores projekter trådløs får det altid til at se cool ud og udvider også rækkevidden, inden for hvilken det kan styres. Fra at bruge en normal IR-LED til trådløs kortdistancekontrol til en ESP8266 til verdensomspændende HTTP-kontrol, er der mange måder at styre noget trådløst på. I dette projekt lærer vi, hvordan man bygger trådløse projekter ved hjælp af et 433 MHz RF-modul og AVR-mikrocontroller.
I dette projekt gør vi følgende ting: -
- Vi bruger Atmega8 til RF-senderen og Atmega8 til sektionen RF-modtager.
- Vi interface en LED og en trykknap med Atmega8 mikrokontroller.
- På sendersiden interface vi trykknap med Atmega og overføre data. På modtagersiden modtager vi dataene trådløst og viser output på LED.
- Vi bruger encoder og dekoder IC til at transmittere 4 bit data.
- Modtagelsesfrekvens er 433 MHz ved hjælp af billige RF TX-RX-moduler, der er tilgængelige på markedet.
Komponenter, der kræves
- Atmega8 AVR Microcontroller (2)
- USBASP-programmør
- 10-polet FRC-kabel
- Brødbræt (2)
- LED'er (2)
- Trykknap (1)
- HT12D og HT12E par
- RX-TX RF-modul
- Modstande (10k, 47k, 1M)
- Jumper Wires
- 5V strømforsyning
Brugt software
Vi bruger CodeVisionAVR software til at skrive vores kode og SinaProg software til at uploade vores kode til Atmega8 ved hjælp af USBASP programmerer.
Du kan downloade disse software fra de givne links:
CodeVisionAVR :
SinaProg:
Før vi går i skemaer og koder, lad os forstå, hvordan RF-modulet fungerer med Encoder-Decoder IC'er.
433MHz RF-sender og modtagermodul
Det er de sender- og modtagermoduler, vi bruger i projektet. Det er det billigste modul til rådighed til 433 MHz. Disse moduler accepterer serielle data i en kanal.
Hvis vi ser specifikationerne for modulerne, er senderen bedømt til 3,5-12V drift som indgangsspænding, og sendeafstanden er 20-200 meter. Det transmitteres i AM (Audio Modulation) -protokol ved 433 MHz- frekvens. Vi kan overføre data med en hastighed på 4KB / S med 10mW effekt.
På det øverste billede kan vi se pin-out på sendermodulet. Fra venstre mod højre er benene VCC, DATA og GND. Vi kan også tilføje antennen og lodde den på det punkt, der er angivet i ovenstående billede.
For Receiver specifikationen, modtageren har en rating på 5V DC og 4MA Hvilestrøm som input. Modtagefrekvensen er 433,92 MHz med en -105DB følsomhed.
På ovenstående billede kan vi se pin-out på modtagermodulet. De fire ben er fra venstre mod højre, VCC, DATA, DATA og GND. Disse midterste to ben er internt forbundet. Vi kan bruge en eller begge dele. Men det er en god praksis at bruge begge dele til at sænke støjkoblingen.
En ting er heller ikke nævnt i databladet, den variable induktor eller POT i midten af modulet bruges til frekvenskalibrering. Hvis vi ikke kunne modtage de transmitterede data, er der muligheder for, at den transmitterende og modtagende frekvens ikke matches. Dette er et RF-kredsløb, og vi skal indstille senderen til det perfekte transmitterede frekvenspunkt. På samme måde som senderen har dette modul også en antenneport; vi kan lodde ledning i oprullet form for længere modtagelse.
Transmissionsområdet er afhængigt af spændingen, der leveres til senderen, og længden af antennerne i begge sider. Til dette specifikke projekt brugte vi ikke ekstern antenne og brugte 5V på sendersiden. Vi tjekkede med 5 meters afstand, og det fungerede perfekt.
Lær mere om RF-par i RF-transmitter og modtager kredsløb. Du kan forstå mere om RF-funktionen ved at kontrollere følgende projekter, der bruger RF-par:
- RF-styret robot
- IR til RF konverter kredsløb
- RF-fjernstyrede LED'er ved hjælp af Raspberry Pi
- RF-kontrollerede husholdningsapparater
Kredsløbsdiagram
Kredsløbsdiagram for RF-sendersiden
- Pin D7 af atmega8 -> Pin13 HT12E
- Pin D6 af atmega8 -> Pin12 HT12E
- Pin D5 af atmega8 -> Pin11 HT12E
- Pin D4 af atmega8 -> Pin10 HT12E
- Trykknap til pin B0 fra Atmega.
- 1M-ohm modstand mellem pin15 og 16 i HT12E.
- Pin17 af HT12E til datapind på RF-transmittermodul.
- Pin 18 af HT12E til 5V.
- GND pin 1-9 og Pin 14 i HT12E og Pin 8 i Atmega.
Kredsløbsdiagram for RF-modtagerens side
- Pin D7 af atmega8 -> Pin13 HT12D
- Pin D6 af atmega8 -> Pin12 HT12D
- Pin D5 af atmega8 -> Pin11 HT12D
- Pin D4 af atmega8 -> Pin10 HT12d
- LED til pin B0 fra Atmega.
- Pin14 af HT12D til datapind på RF-modtagermodul.
- 47Kohm-modstand mellem pin15 og 16 i HT12D.
- GND pin 1-9 af HT12D og Pin 8 af Atmega.
- LED til pin 17 i HT12D.
- 5V til pin 7 i Atmega og pin 18 i HT12D.
Oprettelse af projektet til Atmega 8 ved hjælp af CodeVision
Efter installation af disse softwares skal du følge nedenstående trin for at oprette projekt- og skrivekode:
Trin 1. Åbn CodeVision Klik på File -> New -> Project . Dialogboksen Bekræftelse vises. Klik på Ja
Trin 2. CodeWizard åbnes. Klik på den første mulighed, dvs. AT90 , og klik på OK.
Trin 3. Vælg din mikrocontrollerchip, her tager vi Atmega8 som vist.
Trin 4: - Klik på Porte. I Transmitter del, Trykknap er vores indgang og 4 datalinjer udlæses. Så vi er nødt til at initialisere 4 ben Atmega som output. Klik på Port D. Lav bit 7, 6, 5 og 4 som ud ved at klikke på den.
Trin 5: - Klik på Program -> Generer, gem og afslut . Nu er mere end halvdelen af vores arbejde afsluttet
Trin 6: - Opret en ny mappe på skrivebordet, så vores filer forbliver i mappen ellers spredes den på hele skrivebordsvinduet. Navngiv din mappe, som du vil, og jeg foreslår, at du bruger det samme navn til at gemme programfiler.
Vi har tre dialogbokse efter hinanden for at gemme filer. Gør det samme med de to andre dialogbokse, der vises, når du har gemt den første.
Nu ser dit arbejdsområde sådan ud.
Vores mest af arbejdet er afsluttet ved hjælp af guiden. Nu skal vi kun skrive få linier kode til sender- og modtagerdel, og det er det…
Følg de samme trin for at oprette filer til modtagerdelen. I modtagerdelen er kun Led vores output, så gør Port B0 bit til ud.
KODE og forklaring
Vi skriver kode til at skifte LED trådløst ved hjælp af RF. Komplet kode for både Atmega på sender- og modtagerens sider er angivet i slutningen af denne artikel.
Atmega8-kode til RF-sender:
Først Inkluder delay.h headerfil for at bruge forsinkelse i vores kode.
#omfatte
Kom nu til de sidste linier med kode, hvor du finder et stykke løb. Vores hovedkode vil være i denne sløjfe.
I While loop sender vi 0x10 byte til PORTD, når der trykkes på knappen, og vi sender 0x20, når der ikke trykkes på knappen. Du kan bruge en hvilken som helst værdi til at sende.
mens (1) { hvis (PINB.0 == 1) { PORTD = 0x10; } hvis (PINB.0 == 0) { PORTD = 0x20; } } }
Atmega- kode til RF-modtager
Først erklæres variabler over ugyldige hovedfunktion til lagring af indgående tegn fra RF-modul.
#omfatte
Kom nu til while- løkken. I denne sløjfe skal du gemme indgående byte til en variabel byte med char og kontrollere, om den indgående byte er den samme, som vi skriver i vores transmitterdel. Hvis byte er ens, skal du gøre PortB.0 høj og tage IKKE af PORTB.0 for at skifte LED.
mens (1) { byte = PIND; hvis (PIND.7 == 0 && PIND.6 == 0 && PIND.5 == 0 && PIND.4 == 1) { PORTB.0 = ~ PORTB.0; forsinkelse_ms (1000); }}}
Byg projektet
Vores kode er afsluttet. Nu skal vi bygge vores projekt . Klik på Byg projektikonet som vist.
Efter opbygning af projektet genereres en HEX-fil i mappen Debug-> Exe , som findes i den mappe, du tidligere har lavet for at gemme dit projekt. Vi bruger denne HEX-fil til at uploade i Atmega8 ved hjælp af Sinaprog-software.
Upload koden til Atmega8
Forbind dine kredsløb i henhold til det givne diagram til programmet Atmega8. Tilslut den ene side af FRC-kablet til USBASP-programmøren og den anden side vil oprette forbindelse til SPI-stifter på mikrocontrolleren som beskrevet nedenfor:
- Pin1 af FRC hunstik -> Pin 17, MOSI af Atmega8
- Pin 2 forbundet til Vcc af atmega8 dvs. Pin 7
- Pin 5 forbundet til Reset af atmega8 dvs. Pin 1
- Pin 7 tilsluttet SCK af atmega8 dvs. Pin 19
- Pin 9 forbundet til MISO af atmega8 dvs. Pin 18
- Pin 8 tilsluttet GND af atmega8 dvs. Pin 8
Tilslut de resterende komponenter på brødbrættet som beskrevet i kredsløbsdiagrammet, og åbn Sinaprog.
Vi uploader ovenstående genererede Hex-fil ved hjælp af Sinaprog, så åbn den, og vælg Atmega8 fra rullemenuen Enhed. Vælg HEX-filen fra mappen Debug-> Exe som vist.
Klik nu på Program.
Du er færdig, og din mikrokontroller er programmeret. Brug de samme trin til at programmere en anden Atmega på modtagersiden.
Komplet kode og demonstration Video er angivet nedenfor.