- Komponenter kreves
- Programvare brukt
- 433MHz RF-sender og mottakermodul
- Kretsdiagram
- Opprette prosjektet for Atmega 8 ved hjelp av CodeVision
- KODE og forklaring
- Last opp koden til Atmega8
Å gjøre prosjektene våre trådløse gjør at det alltid ser kult ut og utvider også rekkevidden det kan styres i. Fra å bruke en vanlig IR-LED for trådløs kortdistansekontroll til en ESP8266 for verdensomspennende HTTP-kontroll, er det mange måter å kontrollere noe trådløst på. I dette prosjektet lærer vi hvordan vi bygger trådløse prosjekter ved hjelp av en 433 MHz RF-modul og AVR-mikrokontroller.
I dette prosjektet gjør vi følgende ting: -
- Vi bruker Atmega8 for RF-senderen og Atmega8 for RF-mottakerseksjonen.
- Vi grensesnitt en LED og en trykknapp med Atmega8 mikrokontrollere.
- På sendersiden kobler vi trykknapp med Atmega og overfører dataene. På mottakersiden vil vi motta dataene trådløst og vise utdataene på LED.
- Vi bruker encoder og dekoder IC for å overføre 4-biters data.
- Mottaksfrekvensen er 433Mhz ved å bruke billig RF TX-RX-modul tilgjengelig i markedet.
Komponenter kreves
- Atmega8 AVR Microcontroller (2)
- USBASP programmerer
- 10-pinners FRC-kabel
- Brødbrett (2)
- Lysdioder (2)
- Trykknapp (1)
- HT12D og HT12E par
- RX-TX RF-modul
- Motstander (10k, 47k, 1M)
- Jumper Wires
- 5V strømforsyning
Programvare brukt
Vi bruker CodeVisionAVR programvare for å skrive koden vår og SinaProg programvare for å laste opp koden vår til Atmega8 ved hjelp av USBASP programmerer.
Du kan laste ned disse programvarene fra de gitte linkene:
CodeVisionAVR :
SinaProg:
Før vi går inn i skjemaene og kodene, la oss forstå hvordan RF-modulen fungerer med Encoder-Decoder ICs.
433MHz RF-sender og mottakermodul
Dette er sender- og mottakermodulene vi bruker i prosjektet. Det er den billigste modulen tilgjengelig for 433 MHz. Disse modulene godtar serielle data i en kanal.
Hvis vi ser spesifikasjonene til modulene, er senderen vurdert til 3,5-12V drift som inngangsspenning, og sendeavstanden er 20-200 meter. Den overføres i AM (Audio Modulation) -protokoll med 433 MHz- frekvens. Vi kan overføre data med en hastighet på 4KB / S med 10mW effekt.
I det øvre bildet kan vi se pin-out på sendermodulen. Fra venstre til høyre er pinnene VCC, DATA og GND. Vi kan også legge til antennen og lodde den på punktet angitt i bildet ovenfor.
For mottaker spesifikasjonen, har mottageren en vurdering av 5V DC 4 mA og Hvilestrøm som inndata. Mottaksfrekvensen er 433,92 MHz med en følsomhet på -105DB.
På bildet ovenfor kan vi se pin-out på mottakermodulen. De fire pinnene er fra venstre til høyre, VCC, DATA, DATA og GND. De to midterste pinnene er koblet internt. Vi kan bruke hvilken som helst eller begge deler. Men det er en god praksis å bruke begge deler for å senke støykoblingen.
En ting er heller ikke nevnt i databladet, variabel induktor eller POT midt på modulen brukes til frekvenskalibrering. Hvis vi ikke kunne motta de overførte dataene, er det muligheter for at sende- og mottaksfrekvensene ikke samsvarer. Dette er en RF-krets, og vi må stille inn senderen på det perfekte sendte frekvenspunktet. Også, samme som senderen, har denne modulen også en antenneport; vi kan loddetråd i kveilform for lengre mottak.
Overføringsområdet er avhengig av spenningen som leveres til senderen og lengden på antennene på begge sider. For dette spesifikke prosjektet brukte vi ikke ekstern antenne og brukte 5V på sendersiden. Vi sjekket med 5 meters avstand, og det fungerte perfekt.
Lær mer om RF-par i RF-senderen og mottakerkretsen. Du kan forstå mer om hvordan RF fungerer ved å sjekke følgende prosjekter som bruker RF-par:
- RF-kontrollert robot
- IR til RF-omformerkrets
- Fjernkontrollerte RF-lysdioder ved bruk av Raspberry Pi
- RF-kontrollerte hvitevarer
Kretsdiagram
Kretsskjema for RF-sendersiden
- Pin D7 av atmega8 -> Pin13 HT12E
- Pin D6 av atmega8 -> Pin12 HT12E
- Pin D5 av atmega8 -> Pin11 HT12E
- Pin D4 av atmega8 -> Pin10 HT12E
- Trykknapp for å feste B0 fra Atmega.
- 1M-ohm motstand mellom pin15 og 16 i HT12E.
- Pin17 av HT12E til data pin av RF-sendermodul.
- Pin 18 av HT12E til 5V.
- GND pin 1-9 og Pin 14 av HT12E og Pin 8 av Atmega.
Kretsdiagram for RF-mottakersiden
- Pin D7 av atmega8 -> Pin13 HT12D
- Pin D6 av atmega8 -> Pin12 HT12D
- Pin D5 av atmega8 -> Pin11 HT12D
- Pin D4 av atmega8 -> Pin10 HT12d
- LED til pin B0 fra Atmega.
- Pin14 av HT12D til data pin av RF mottaker modul.
- 47Kohm motstand mellom pin15 og 16 i HT12D.
- GND pin 1-9 av HT12D og Pin 8 av Atmega.
- LED til pinne 17 av HT12D.
- 5V til pin 7 av Atmega og pin 18 av HT12D.
Opprette prosjektet for Atmega 8 ved hjelp av CodeVision
Når du har installert disse programvarene, følger du trinnene nedenfor for å lage prosjekt- og skrivekode:
Trinn 1. Åpne CodeVision Klikk på File -> New -> Project . Bekreftelsesdialogboksen vises. Klikk på Ja
Trinn 2. CodeWizard åpnes. Klikk på det første alternativet, dvs. AT90 , og klikk OK.
Trinn 3. Velg din mikrokontrollerbrikke, her tar vi Atmega8 som vist.
Trinn 4: - Klikk på Porter. I senderdelen er trykknappen vår inngang, og 4 datalinjer sendes ut. Så vi må initialisere 4 pins Atmega som utgang. Klikk på port D. Lag bit 7, 6, 5 og 4 ut ved å klikke på den.
Trinn 5: - Klikk på Program -> Generer, lagre og avslutt . Nå er mer enn halvparten av arbeidet vårt fullført
Trinn 6: - Lag en ny mappe på skrivebordet slik at filene våre forblir i mappen ellers vil den være spredt på hele skrivebordsvinduet. Navngi mappen din slik du vil, og jeg foreslår at du bruker samme navn for å lagre programfiler.
Vi vil ha tre dialogbokser etter hverandre for å lagre filer. Gjør det samme med andre to dialogbokser som vises etter at du har lagret den første.
Nå ser arbeidsområdet ditt slik ut.
Det meste av arbeidet vårt er fullført ved hjelp av Wizard. Nå må vi skrive bare noen få linjer med kode for sender og mottakerdel, og det er det…
Følg de samme trinnene for å opprette filer for mottakerdelen. I mottakerdelen er bare Led vår utgang, så gjør Port B0 bit til ut.
KODE og forklaring
Vi vil skrive kode for å bytte lysdioden trådløst ved hjelp av RF. Komplett kode for både Atmega på sender- og mottakersiden er gitt på slutten av denne artikkelen.
Atmega8-kode for RF-sender:
Først Inkluder delay.h headerfil for å bruke forsinkelse i koden vår.
#inkludere
Nå, kom til de siste kodelinjene der du finner en stund- løkke. Vår hovedkode vil være i denne sløyfen.
I While loop sender vi 0x10 byte til PORTD når du trykker på knappen og vil sende 0x20 når knappen ikke trykkes. Du kan bruke hvilken som helst verdi for å sende.
mens (1) { if (PINB.0 == 1) { PORTD = 0x10; } hvis (PINB.0 == 0) { PORTD = 0x20; } } }
Atmega- kode for RF-mottaker
Erklær først variabler over ugyldige hovedfunksjon for lagring av innkommende tegn fra RF-modul.
#inkludere
Nå kommer til mens løkken. I denne sløyfen lagrer du innkommende byte til en variabel byte med tegn og sjekker om den innkommende byten er den samme som vi skriver i senderdelen. Hvis byte er det samme, gjør PortB.0 høy og ta IKKE av PORTB.0 for å bytte LED.
mens (1) { byte = PIND; hvis (PIND.7 == 0 && PIND.6 == 0 && PIND.5 == 0 && PIND.4 == 1) { PORTB.0 = ~ PORTB.0; delay_ms (1000); }}}
Bygg prosjektet
Koden vår er fullført. Nå må vi bygge prosjektet vårt . Klikk på Bygg prosjektikonet som vist.
Etter at prosjektet er bygd, genereres en HEX-fil i Debug-> Exe- mappen som du finner i mappen du tidligere har laget for å lagre prosjektet. Vi bruker denne HEX-filen til å laste opp i Atmega8 ved hjelp av Sinaprog-programvaren.
Last opp koden til Atmega8
Koble kretsene dine i henhold til gitt diagram til programmet Atmega8. Koble til den ene siden av FRC-kabelen til USBASP-programmereren og den andre siden vil koble til SPI-pinner på mikrokontrolleren som beskrevet nedenfor:
- Pin1 av FRC kvinnelig kontakt -> Pin 17, MOSI av Atmega8
- Pin 2 koblet til Vcc av atmega8 dvs. Pin 7
- Pin 5 koblet til tilbakestilling av atmega8 dvs. Pin 1
- Pin 7 koblet til SCK av atmega8 dvs. Pin 19
- Pin 9 koblet til MISO på atmega8 dvs. Pin 18
- Pin 8 koblet til GND av atmega8 dvs. Pin 8
Koble de resterende komponentene på brødplaten i henhold til kretsskjemaet og åpne Sinaprog.
Vi laster opp den genererte Hex-filen ovenfor ved hjelp av Sinaprog, så åpne den og velg Atmega8 fra rullegardinmenyen for enhet. Velg HEX-filen fra Debug-> Exe- mappen som vist.
Nå, klikk på Program.
Du er ferdig og Microcontroller er programmert. Bruk de samme trinnene for å programmere en annen Atmega på mottakersiden.
Komplett kode og demonstrasjon Video er gitt nedenfor.