- Komponenter krävs
- Programvara som används
- 433MHz RF-sändare och mottagarmodul
- Kretsschema
- Skapa projektet för Atmega 8 med hjälp av CodeVision
- KOD och förklaring
- Ladda upp koden till Atmega8
Att göra våra projekt trådlösa gör att det alltid ser coolt ut och utökar också det intervall inom vilket det kan styras. Från att använda en vanlig IR-LED för trådlös kortdistansstyrning till en ESP8266 för HTTP-kontroll över hela världen finns det många sätt att styra något trådlöst. I det här projektet lär vi oss hur man bygger trådlösa projekt med en 433 MHz RF-modul och AVR-mikrokontroller.
I det här projektet gör vi följande saker: -
- Vi använder Atmega8 för RF-sändaren och Atmega8 för RF-mottagarsektionen.
- Vi gränssnitt en LED och en tryckknapp med Atmega8 mikrokontroller.
- På sändarsidan gränssnitt vi Tryckknapp med Atmega och överför data. På mottagarsidan kommer vi att ta emot data trådlöst och visa utdata på LED.
- Vi använder kodare och avkodare IC för att sända 4-bitars data.
- Mottagningsfrekvensen är 433MHz med billig RF TX-RX-modul som finns på marknaden.
Komponenter krävs
- Atmega8 AVR Microcontroller (2)
- USBASP-programmerare
- 10-stifts FRC-kabel
- Brödbräda (2)
- Lysdioder (2)
- Tryckknapp (1)
- HT12D och HT12E-par
- RX-TX RF-modul
- Motstånd (10k, 47k, 1M)
- Bygeltrådar
- 5V strömförsörjning
Programvara som används
Vi använder CodeVisionAVR- programvaran för att skriva vår kod och SinaProg- programvaran för att ladda upp vår kod till Atmega8 med USBASP-programmerare.
Du kan ladda ner dessa program från de angivna länkarna:
CodeVisionAVR :
SinaProg:
Innan vi går in i scheman och koder, låt oss förstå hur RF-modulen fungerar med IC-kodar-avkodare.
433MHz RF-sändare och mottagarmodul
Det är sändar- och mottagarmodulerna vi använder i projektet. Det är den billigaste modulen för 433 MHz. Dessa moduler accepterar seriell data i en kanal.
Om vi ser specifikationerna för modulerna klassas sändaren för 3,5-12V drift som ingångsspänning och sändningsavståndet är 20-200 meter. Det sänds i AM (Audio Modulation) -protokoll med 433 MHz- frekvens. Vi kan överföra data med en hastighet av 4KB / S med 10mW effekt.
I den övre bilden kan vi se uttaget på sändarmodulen. Från vänster till höger är stiften VCC, DATA och GND. Vi kan också lägga till antennen och löd den på den punkt som anges i bilden ovan.
För mottagarspecifikationen har mottagaren en klassificering på 5V likström och 4MA viloström som ingång. Mottagningsfrekvensen är 433,92 MHz med -105DB- känslighet.
I bilden ovan kan vi se uttaget på mottagarmodulen. De fyra stiften är från vänster till höger, VCC, DATA, DATA och GND. De två mellersta stiften är internt anslutna. Vi kan använda någon eller båda. Men det är bra att använda båda för att sänka bullerkopplingen.
En sak nämns inte i databladet, variabel induktor eller POT i mitten av modulen används för frekvenskalibrering. Om vi inte kunde ta emot de överförda uppgifterna finns det möjligheter att sändnings- och mottagningsfrekvensen inte matchas. Detta är en RF-krets och vi måste ställa in sändaren vid den perfekta sända frekvenspunkten. På samma sätt som sändaren har den här modulen också en antennport; vi kan lödtråd i lindad form för längre mottagning.
Sändningsområdet är beroende av spänningen som matas till sändaren och längden på antennerna på båda sidor. För detta specifika projekt använde vi inte extern antenn och använde 5V på sändarsidan. Vi kontrollerade med 5 meters avstånd och det fungerade perfekt.
Läs mer om RF-par i RF-sändar- och mottagarkretsen. Du kan förstå mer om RF-funktionen genom att kontrollera följande projekt som använder RF-par:
- RF-kontrollerad robot
- IR till RF-omvandlare
- RF-fjärrstyrda lysdioder med Raspberry Pi
- RF-kontrollerade hushållsapparater
Kretsschema
Kretsschema för RF-sändarsidan
- Stift D7 av atmega8 -> Pin13 HT12E
- Stift D6 av atmega8 -> Pin12 HT12E
- Stift D5 för atmega8 -> Pin11 HT12E
- Stift D4 av atmega8 -> Pin10 HT12E
- Tryckknapp för att stifta B0 från Atmega.
- 1M-ohm motstånd mellan stift 15 och 16 i HT12E.
- Stift 17 av HT12E till stift för RF-sändarmodulen.
- Stift 18 på HT12E till 5V.
- GND stift 1-9 och stift 14 i HT12E och stift 8 i Atmega.
Kretsschema för RF-mottagarsidan
- Stift D7 av atmega8 -> Pin13 HT12D
- Stift D6 av atmega8 -> Pin12 HT12D
- Stift D5 av atmega8 -> Pin11 HT12D
- Stift D4 av atmega8 -> Pin10 HT12d
- LED till stift B0 från Atmega.
- Pin14 av HT12D till datapinne för RF-mottagarmodul.
- 47Kohm-motstånd mellan stift 15 och 16 i HT12D.
- GND-stift 1-9 i HT12D och Pin 8 i Atmega.
- LED till stift 17 på HT12D.
- 5V till stift 7 i Atmega och stift 18 på HT12D.
Skapa projektet för Atmega 8 med hjälp av CodeVision
Efter installation av dessa program följer du stegen nedan för att skapa projekt- och skrivkod:
Steg 1. Öppna CodeVision Klicka på Arkiv -> Nytt -> Projekt . Dialogrutan Bekräftelse visas. Klicka på Ja
Steg 2. CodeWizard öppnas. Klicka på det första alternativet, dvs AT90 , och klicka på OK.
Steg 3. Välj ditt mikrokontrollerchip, här tar vi Atmega8 som visas.
Steg 4: - Klicka på Portar. I sändardelen är tryckknappen vår ingång och 4 datalinjer matas ut. Så vi måste initiera 4 stift av Atmega som utdata. Klicka på Port D. Gör bit 7, 6, 5 och 4 genom att klicka på den.
Steg 5: - Klicka på Program -> Generera, spara och avsluta . Nu är mer än hälften av vårt arbete slutfört
Steg 6: - Skapa en ny mapp på skrivbordet så att våra filer förblir i mappen annars sprids den på hela skrivbordsfönstret. Namnge din mapp som du vill och jag föreslår att du använder samma namn för att spara programfiler.
Vi kommer att ha tre dialogrutor efter varandra för att spara filer. Gör detsamma med andra två dialogrutor som kommer att visas när du sparar den första.
Nu ser din arbetsyta ut så här.
Vårt mesta av arbetet slutförs med hjälp av guiden. Nu måste vi bara skriva några rader kod för sändaren och mottagardelen och det är det…
Följ samma steg för att skapa filer för mottagardelen. I mottagardelen är endast Led vår utgång så gör Port B0 bit till ut.
KOD och förklaring
Vi kommer att skriva kod för att växla lysdioden trådlöst med RF. Komplett kod för både Atmega vid sändarens och mottagarens sidor ges i slutet av denna artikel.
Atmega8-kod för RF-sändare:
Först Inkludera delay.h rubrikfil för att använda fördröjning i vår kod.
#omfatta
Nu, kom till de sista raderna i koden där du hittar en stund slinga. Vår huvudkod kommer att finnas i den här slingan.
I While loop skickar vi 0x10 byte till PORTD när du trycker på knappen och kommer att skicka 0x20 när knappen inte trycks in. Du kan använda vilket värde som helst för att skicka.
medan (1) { if (PINB.0 == 1) { PORTD = 0x10; } om (PINB.0 == 0) { PORTD = 0x20; } } }
Atmega- kod för RF-mottagare
Först förklara variabler ovan ogiltiga huvudfunktion för lagring av inkommande tecken från RF-modul.
#omfatta
Nu kommer till när slingan. I den här slingan lagrar du inkommande byte till en variabel byte och kontrollerar om den inkommande byten är densamma som vi skriver i vår sändardel. Om byte är samma, gör PortB.0 högt och ta INTE av PORTB.0 för att växla lysdioden.
medan (1) { byte = PIND; if (PIND.7 == 0 && PIND.6 == 0 && PIND.5 == 0 && PIND.4 == 1) { PORTB.0 = ~ PORTB.0; delay_ms (1000); }}}
Bygg projektet
Vår kod är klar. Nu måste vi bygga vårt projekt . Klicka på Build the project icon as shown.
Efter att ha byggt projektet genereras en HEX-fil i mappen Debug-> Exe som finns i mappen som du tidigare har skapat för att spara ditt projekt. Vi kommer att använda den här HEX-filen för att ladda upp i Atmega8 med Sinaprog-programvaran.
Ladda upp koden till Atmega8
Anslut dina kretsar enligt det givna diagrammet till programmet Atmega8. Anslut den ena sidan av FRC-kabeln till USBASP-programmeraren och den andra sidan kommer att anslutas till SPI-stift på mikrokontrollern enligt beskrivningen nedan:
- Pin1 av FRC-honkontakt -> Pin 17, MOSI för Atmega8
- Stift 2 ansluten till Vcc för atmega8 dvs stift 7
- Stift 5 anslutet till Återställning av atmega8, dvs stift 1
- Stift 7 ansluten till SCK för atmega8 dvs stift 19
- Stift 9 ansluten till MISO på atmega8 dvs stift 18
- Stift 8 ansluten till GND för atmega8 dvs stift 8
Anslut de återstående komponenterna på panelen enligt kretsschemat och öppna Sinaprog.
Vi laddar upp den ovan genererade Hex-filen med Sinaprog, så öppna den och välj Atmega8 från rullgardinsmenyn Enhet. Välj HEX-filen från mappen Debug-> Exe som visas.
Klicka nu på Program.
Du är klar och din Microcontroller är programmerad. Använd samma steg för att programmera en annan Atmega på mottagarsidan.
Komplett kod och demonstration Video ges nedan.