- Componente necesare
- Software folosit
- Modul emițător și receptor RF de 433 MHz
- Diagrama circuitului
- Crearea proiectului pentru Atmega 8 folosind CodeVision
- COD și explicație
- Încărcați codul în Atmega8
Realizarea proiectelor noastre fără fir îl face întotdeauna să arate cool și, de asemenea, extinde gama în care poate fi controlat. Începând de la utilizarea unui LED IR normal pentru controlul wireless pe distanțe scurte până la un ESP8266 pentru control HTTP la nivel mondial, există o mulțime de moduri de a controla ceva fără fir. În acest proiect, învățăm cum să construim proiecte fără fir folosind un modul RF de 433 MHz și un microcontroler AVR.
În acest proiect facem următoarele lucruri: -
- Folosim Atmega8 pentru transmițătorul RF și Atmega8 pentru secțiunea receptorului RF.
- Interfață un LED și un buton cu microcontrolere Atmega8.
- Pe partea transmițătorului, interacționăm butonul cu Atmega și transmitem datele. Pe partea receptorului, vom primi datele fără fir și vom afișa ieșirea pe LED.
- Folosim codificator și decodor IC pentru a transmite date pe 4 biți.
- Frecvența de recepție este de 433 MHz utilizând modulul RF TX-RX ieftin disponibil pe piață.
Componente necesare
- Microcontroler AVR Atmega8 (2)
- Programator USBASP
- Cablu FRC cu 10 pini
- Pană de pâine (2)
- LED-uri (2)
- Buton (1)
- Pereche HT12D și HT12E
- Modul RF RX-TX
- Rezistoare (10k, 47k, 1M)
- Sârme jumper
- Alimentare 5V
Software folosit
Folosim software-ul CodeVisionAVR pentru scrierea codului nostru și software-ul SinaProg pentru încărcarea codului nostru în Atmega8 folosind programatorul USBASP.
Puteți descărca aceste programe din linkurile date:
CodeVisionAVR :
SinaProg:
Înainte de a intra în schemă și coduri, să înțelegem modul de funcționare al modulului RF cu encoder-decodor IC-uri.
Modul emițător și receptor RF de 433 MHz
Acestea sunt modulele emițător și receptor pe care le folosim în proiect. Este cel mai ieftin modul disponibil pentru 433 MHz Aceste module acceptă date seriale pe un canal.
Dacă vedem specificațiile modulelor, emițătorul este evaluat pentru funcționarea de 3,5-12V ca tensiune de intrare, iar distanța de transmisie este de 20-200 metri. Transmite în protocolul AM (modulare audio) la o frecvență de 433 MHz. Putem transfera date la o viteză de 4KB / S cu o putere de 10 mW.
În imaginea de sus putem vedea pin-out-ul modulului Transmițător. De la stânga la dreapta pinii sunt VCC, DATA și GND. De asemenea, putem adăuga antena și o putem lipi pe punctul indicat în imaginea de mai sus.
Pentru specificația receptorului, receptorul are un rating de 5V c.c. și curent de repaus 4MA ca intrare. Frecvența de recepție este de 433,92 MHz cu o sensibilitate de -105DB.
În imaginea de mai sus putem vedea pin-out-ul modulului receptor. Cei patru pini sunt de la stânga la dreapta, VCC, DATA, DATA și GND. Acești doi pini din mijloc sunt conectați intern. Putem folosi oricare sau ambele. Dar este o bună practică să le folosiți atât pentru a reduce cuplajul de zgomot.
De asemenea, un singur lucru nu este menționat în foaia tehnică, inductorul variabil sau POT din mijlocul modulului este utilizat pentru calibrarea frecvenței. Dacă nu am putea primi datele transmise, există posibilități ca frecvențele de transmisie și recepție să nu fie potrivite. Acesta este un circuit RF și trebuie să reglăm transmițătorul la punctul de frecvență transmis perfect. De asemenea, la fel ca și emițătorul, acest modul are și un port de antenă; putem lipi sârmă sub formă de spirală pentru o recepție mai lungă.
Gama de transmisie este dependentă de tensiunea furnizată emițătorului și de lungimea antenelor din ambele părți. Pentru acest proiect specific nu am folosit antenă externă și nu am folosit 5V pe partea transmițătorului. Am verificat la 5 metri distanță și a funcționat perfect.
Aflați mai multe despre perechea RF în circuitul transmițătorului și receptorului RF. Puteți înțelege mai multe despre funcționarea RF prin verificarea următoarelor proiecte care utilizează perechea RF:
- Robot controlat RF
- Circuitul convertorului IR la RF
- LED-uri cu telecomandă RF folosind Raspberry Pi
- Electrocasnice controlate RF
Diagrama circuitului
Schema circuitului pentru partea transmițătorului RF
- Pinul D7 al atmega8 -> Pin13 HT12E
- Pinul D6 al atmega8 -> Pin12 HT12E
- Pinul D5 al atmega8 -> Pin11 HT12E
- Pinul D4 al atmega8 -> Pin10 HT12E
- Buton la pinul B0 al Atmega.
- Rezistor de 1M-ohm între pinii 15 și 16 ai HT12E.
- Pin17 de HT12E la pinul de date al modulului transmițător RF.
- Pinul 18 al HT12E la 5V.
- Pinul GND 1-9 și Pinul 14 al HT12E și Pinul 8 al Atmega.
Schema circuitului pentru partea receptorului RF
- Pinul D7 al atmega8 -> Pin13 HT12D
- Pinul D6 al atmega8 -> Pin12 HT12D
- Pinul D5 al atmega8 -> Pin11 HT12D
- Pinul D4 al atmega8 -> Pin10 HT12d
- LED la Pinul B0 al Atmega.
- Pinul 14 al HT12D la pinul de date al modulului receptorului RF.
- Rezistor de 47 Kohm între pinii 15 și 16 ai HT12D.
- Pinul GND 1-9 al HT12D și Pinul 8 al Atmega.
- LED la pinul 17 al HT12D.
- 5V la pinul 7 al Atmega și pinul 18 al HT12D.
Crearea proiectului pentru Atmega 8 folosind CodeVision
După instalarea acestor programe, urmați pașii de mai jos pentru a crea proiectul și scrierea codului:
Pasul 1. Deschideți CodeVision Faceți clic pe Fișier -> Nou -> Proiect . Va apărea caseta de dialog Confirmare. Faceți clic pe Da
Pasul 2. Se va deschide CodeWizard. Faceți clic pe prima opțiune, adică AT90 , și faceți clic pe OK.
Pasul 3. Alegeți cipul de microcontroler, aici vom lua Atmega8 așa cum se arată.
Pasul 4: - Faceți clic pe Porturi. În partea Transmițător, butonul este intrarea noastră și sunt scoase 4 linii de date. Deci, trebuie să inițializăm 4 pini de Atmega ca ieșire. Faceți clic pe Portul D. Faceți Bit 7, 6, 5 și 4 ca afară făcând clic pe el.
Pasul 5: - Faceți clic pe Program -> Generați, salvați și ieșiți . Acum, mai mult de jumătate din munca noastră este finalizată
Pasul 6: - Creați un folder nou pe desktop, astfel încât fișierele noastre să rămână în folder, altfel va fi împrăștiat pe întreaga fereastră a desktopului. Denumiți folderul după cum doriți și vă sugerez să utilizați același nume pentru a salva fișierele programului.
Vom avea trei casete de dialog una după alta pentru a salva fișiere. Faceți același lucru cu alte două casete de dialog care vor apărea după ce salvați prima.
Acum, spațiul dvs. de lucru arată astfel.
Cea mai mare parte a lucrării noastre este finalizată cu ajutorul Vrăjitorului. Acum, trebuie să scriem doar câteva linii de cod pentru partea emițător și receptor și atât…
Urmați aceiași pași pentru a crea fișiere pentru partea Receiver. În partea receptorului, doar Led-ul este ieșirea noastră, așa că faceți portul B0 bit să iasă.
COD și explicație
Vom scrie cod pentru comutarea LED-ului fără fir folosind RF. Codul complet pentru ambele laturi ale emițătorului și receptorului este prezentat la sfârșitul acestui articol.
Cod Atmega8 pentru emițător RF:
Mai întâi Includeți fișierul antet delay.h pentru a utiliza delay în codul nostru.
#include
Acum, ajungeți la ultimele linii de cod unde veți găsi o buclă de timp . Codul nostru principal va fi în această buclă.
În bucla While , vom trimite 0x10 octeți la PORTD când butonul este apăsat și, vom trimite 0x20 când butonul nu este apăsat. Puteți utiliza orice valoare pentru a trimite.
while (1) { if (PINB.0 == 1) { PORTD = 0x10; } if (PINB.0 == 0) { PORTD = 0x20; } } }
Cod Atmega pentru receptor RF
Mai întâi declarați variabilele de mai sus, anulați funcția principală pentru stocarea caracterelor primite din modulul RF.
#include
Acum vino la bucla while . În această buclă, stocați octeții de intrare într-un octet variabil char și verificați dacă octetul de intrare este același cu cel pe care îl scriem în partea noastră de transmițător. Dacă octeții sunt aceiași, faceți PortB.0 înalt și nu luați PORTB.0 pentru a comuta LED-ul.
while (1) { octet = PIND; if (PIND.7 == 0 && PIND.6 == 0 && PIND.5 == 0 && PIND.4 == 1) { PORTB.0 = ~ PORTB.0; delay_ms (1000); }}}
Construiți proiectul
Codul nostru este completat. Acum, trebuie să ne construim proiectul . Faceți clic pe Construiți pictograma proiectului așa cum se arată.
După construirea proiectului, un fișier HEX este generat în folderul Debug-> Exe care poate fi găsit în folderul pe care l-ați creat anterior pentru a vă salva proiectul. Vom folosi acest fișier HEX pentru a încărca în Atmega8 folosind software-ul Sinaprog.
Încărcați codul în Atmega8
Conectați-vă circuitele conform schemei date la programul Atmega8. Conectați o parte a cablului FRC la programatorul USBASP și cealaltă parte se va conecta la pinii SPI ai microcontrolerului așa cum este descris mai jos:
- Pinul 1 al conectorului femelă FRC -> Pinul 17, MOSI al Atmega8
- Pinul 2 conectat la Vcc al atmega8, adică Pinul 7
- Pinul 5 conectat la Resetarea atmega8, adică Pinul 1
- Pinul 7 conectat la SCK al atmega8, adică Pinul 19
- Pinul 9 conectat la MISO al atmega8, adică Pinul 18
- Pinul 8 conectat la GND al atmega8, adică Pinul 8
Conectați componentele rămase de pe panou conform schemei de circuit și deschideți Sinaprog.
Vom încărca fișierul Hex generat mai sus folosind Sinaprog, deci deschideți-l și alegeți Atmega8 din meniul derulant Dispozitiv. Selectați fișierul HEX din folderul Debug-> Exe așa cum se arată.
Acum, faceți clic pe Program.
Ați terminat și microcontrolerul dvs. este programat. Folosiți aceiași pași pentru a programa un alt Atmega în partea receptorului.
Codul complet și videoclipul demonstrativ sunt prezentate mai jos.