- Componenten vereist
- Gebruikte software
- 433 MHz RF-zender- en ontvangermodule
- Schakelschema
- Het project voor Atmega 8 maken met CodeVision
- CODE en uitleg
- Upload de code naar Atmega8
Door onze projecten draadloos te maken, ziet het er altijd cool uit en vergroot het ook het bereik waarin het kan worden bediend. Beginnend met het gebruik van een normale IR-LED voor draadloze bediening op korte afstand tot een ESP8266 voor wereldwijde HTTP-bediening, zijn er veel manieren om iets draadloos te bedienen. In dit project leren we hoe we draadloze projecten kunnen bouwen met behulp van een 433 MHz RF-module en AVR-microcontroller.
In dit project doen we de volgende dingen: -
- We gebruiken Atmega8 voor de RF-zender en Atmega8 voor de RF-ontvanger.
- We koppelen een LED en een drukknop met Atmega8-microcontrollers.
- Aan de zenderzijde koppelen we Pushbutton met Atmega en verzenden we de gegevens. Aan de ontvangerzijde ontvangen we de gegevens draadloos en tonen we de output op LED.
- We gebruiken encoder en decoder IC om 4 bit data te verzenden.
- Ontvangstfrequentie is 433Mhz met behulp van goedkope RF TX-RX-module die op de markt verkrijgbaar is.
Componenten vereist
- Atmega8 AVR Microcontroller (2)
- USBASP programmeur
- 10-pins FRC-kabel
- Broodplank (2)
- Leds (2)
- Drukknop (1)
- HT12D en HT12E paar
- RX-TX RF-module
- Weerstanden (10k, 47k, 1M)
- Doorverbindingsdraden
- 5V voeding
Gebruikte software
We gebruiken CodeVisionAVR- software voor het schrijven van onze code en SinaProg- software voor het uploaden van onze code naar Atmega8 met behulp van de USBASP-programmeur.
U kunt deze software downloaden via de gegeven links:
CodeVisionAVR :
SinaProg:
Laten we, voordat we ingaan op de schema's en codes, de werking van de RF-module met Encoder-Decoder IC's begrijpen.
433 MHz RF-zender- en ontvangermodule
Dat zijn de zender- en ontvangermodules die we in het project gebruiken. Het is de goedkoopste module die beschikbaar is voor 433 MHz. Deze modules accepteren seriële data in één kanaal.
Als we de specificaties van de modules zien, is de zender geschikt voor werking van 3,5-12V als ingangsspanning en is de zendafstand 20-200 meter. Het zendt uit in het AM-protocol (Audiomodulatie) met een frequentie van 433 MHz. We kunnen gegevens overdragen met een snelheid van 4KB / S met een vermogen van 10mW.
In de bovenste afbeelding kunnen we de pin-out van de zendermodule zien. Van links naar rechts zijn de pinnen VCC, DATA en GND. We kunnen ook de antenne toevoegen en deze solderen op het punt dat in de bovenstaande afbeelding wordt aangegeven.
Voor de ontvangerspecificatie heeft de ontvanger een vermogen van 5V gelijkstroom en 4MA ruststroom als ingang. De ontvangstfrequentie is 433,92 MHz met een gevoeligheid van -105DB.
In de bovenstaande afbeelding kunnen we de pin-out van de ontvangermodule zien. De vier pinnen zijn van links naar rechts, VCC, DATA, DATA en GND. Die middelste twee pinnen zijn intern met elkaar verbonden. We kunnen een van beide of beide gebruiken. Maar het is een goede gewoonte om beide te gebruiken om de geluidskoppeling te verlagen.
Een ding wordt ook niet vermeld in de datasheet, de variabele inductor of POT in het midden van de module wordt gebruikt voor frequentiekalibratie. Als we de verzonden gegevens niet kunnen ontvangen, zijn er mogelijkheden dat de zend- en ontvangstfrequenties niet overeenkomen. Dit is een RF-circuit en we moeten de zender afstemmen op het perfecte uitgezonden frequentiepunt. Ook heeft deze module, net als de zender, een antennepoort; we kunnen draad in opgerolde vorm solderen voor een langere ontvangst.
Het zendbereik is afhankelijk van de spanning die aan de zender wordt geleverd en de lengte van de antennes aan beide zijden. Voor dit specifieke project hebben we geen externe antenne gebruikt en 5V aan de zenderzijde. We hebben gecontroleerd op 5 meter afstand en het werkte perfect.
Lees meer over het RF-paar in het RF-zender- en ontvangercircuit. U kunt meer begrijpen over de werking van RF door de volgende projecten te controleren die een RF-paar gebruiken:
- RF-gestuurde robot
- IR naar RF-convertercircuit
- RF-afstandsbediende LED's met Raspberry Pi
- RF-gestuurde huishoudelijke apparaten
Schakelschema
Schakelschema voor RF-zenderzijde
- Pin D7 van atmega8 -> Pin13 HT12E
- Pin D6 van atmega8 -> Pin12 HT12E
- Pin D5 van atmega8 -> Pin11 HT12E
- Pin D4 van atmega8 -> Pin10 HT12E
- Drukknop voor Pin B0 van Atmega.
- 1M-ohm weerstand tussen pin15 en 16 van HT12E.
- Pin17 van HT12E naar gegevenspin van RF-zendmodule.
- Pin 18 van HT12E op 5V.
- GND pin 1-9 en pin 14 van HT12E en pin 8 van Atmega.
Schakelschema voor RF-ontvangerzijde
- Pin D7 van atmega8 -> Pin13 HT12D
- Pin D6 van atmega8 -> Pin12 HT12D
- Pin D5 van atmega8 -> Pin11 HT12D
- Pin D4 van atmega8 -> Pin10 HT12d
- LED naar Pin B0 van Atmega.
- Pin14 van HT12D naar gegevenspin van RF-ontvangermodule.
- 47Kohm-weerstand tussen pin15 en 16 van HT12D.
- GND pin 1-9 van HT12D en Pin 8 van Atmega.
- LED naar pin 17 van HT12D.
- 5V naar pin 7 van Atmega en pin 18 van HT12D.
Het project voor Atmega 8 maken met CodeVision
Volg na het installeren van deze software de onderstaande stappen om een project te maken en code te schrijven:
Stap 1. Open CodeVision Klik op Bestand -> Nieuw -> Project . Er verschijnt een bevestigingsvenster. Klik op Ja
Stap 2. CodeWizard wordt geopend. Klik op de eerste optie, dwz AT90 , en klik op OK.
Stap 3. Kies uw microcontrollerchip, hier nemen we Atmega8 zoals afgebeeld.
Stap 4: - Klik op Poorten. In Zenderdeel, drukknop is onze inbreng en 4 gegevenslijnen worden uitgevoerd. We moeten dus 4 pinnen van Atmega initialiseren als uitvoer. Klik op Poort D. Maak Bit 7, 6, 5 en 4 zoals uit door erop te klikken.
Stap 5: - Klik op Program -> Generate, Save and Exit . Nu is meer dan de helft van ons werk voltooid
Stap 6: - Maak een nieuwe map op het bureaublad zodat onze bestanden in de map blijven, anders wordt het verspreid over het hele bureaubladvenster. Geef uw map een naam zoals u wilt en ik raad u aan dezelfde naam te gebruiken om programmabestanden op te slaan.
We zullen achter elkaar drie dialoogvensters hebben om bestanden op te slaan. Doe hetzelfde met de andere twee dialoogvensters die verschijnen nadat u de eerste hebt opgeslagen.
Nu ziet uw werkruimte er zo uit.
Ons meeste werk is voltooid met de hulp van de wizard. Nu hoeven we maar een paar regels code te schrijven voor het zender- en ontvangergedeelte en dat is het…
Volg dezelfde stappen om bestanden te maken voor het ontvangergedeelte. In het ontvangergedeelte is alleen Led onze output, dus maak Port B0 bit naar out.
CODE en uitleg
We zullen code schrijven voor het draadloos schakelen van de LED met behulp van RF. De volledige code voor zowel de Atmega aan de zender- als de ontvangerzijde vindt u aan het einde van dit artikel.
Atmega8-code voor RF-zender:
Voeg eerst delay.h header-bestand toe om delay in onze code te gebruiken.
# omvatten
Ga nu naar de laatste regels code waar u een while- lus vindt. Onze hoofdcode bevindt zich in deze lus.
In While- lus sturen we 0x10 byte naar PORTD wanneer de knop wordt ingedrukt en sturen we 0x20 wanneer de knop niet wordt ingedrukt. U kunt elke waarde gebruiken om te verzenden.
while (1) { if (PINB.0 == 1) { PORTD = 0x10; } if (PINB.0 == 0) { PORTD = 0x20; } } }
Atmega- code voor RF-ontvanger
Declareer eerst variabelen boven de ongeldige hoofdfunctie voor het opslaan van inkomend karakter van de RF-module.
# omvatten
Kom nu naar de while- lus. Sla in deze lus inkomende bytes op in een char-variabele byte en controleer of de inkomende byte hetzelfde is als in ons zendergedeelte. Als de bytes hetzelfde zijn, maak dan PortB.0 hoog en neem NIET van PORTB.0 om de LED om te schakelen.
while (1) { byte = PIND; if (PIND.7 == 0 && PIND.6 == 0 && PIND.5 == 0 && PIND.4 == 1) { PORTB.0 = ~ PORTB.0; delay_ms (1000); }}}
Bouw het project
Onze code is voltooid. Nu moeten we ons project bouwen . Klik op Build the project icon, zoals weergegeven.
Na het bouwen van het project wordt een HEX-bestand gegenereerd in de Debug-> Exe- map die te vinden is in de map die u eerder hebt gemaakt om uw project op te slaan. We zullen dit HEX-bestand gebruiken om te uploaden in Atmega8 met Sinaprog-software.
Upload de code naar Atmega8
Verbind uw circuits volgens het gegeven diagram om Atmega8 te programmeren. Sluit de ene kant van de FRC-kabel aan op de USBASP-programmeur en de andere kant maakt verbinding met de SPI-pinnen van de microcontroller zoals hieronder beschreven:
- Pin1 van FRC vrouwelijke connector -> Pin 17, MOSI van Atmega8
- Pin 2 verbonden met Vcc van atmega8 dwz Pin 7
- Pin 5 verbonden met Reset van atmega8 dwz Pin 1
- Pin 7 verbonden met SCK van atmega8 dwz pin 19
- Pin 9 verbonden met MISO van atmega8 dwz pin 18
- Pin 8 verbonden met GND van atmega8 dwz Pin 8
Sluit de overige componenten aan op het breadboard volgens het schakelschema en open de Sinaprog.
We zullen het hierboven gegenereerde Hex-bestand uploaden met de Sinaprog, dus open het en kies Atmega8 uit het vervolgkeuzemenu Device. Selecteer het HEX-bestand in de map Debug-> Exe , zoals weergegeven.
Klik nu op Programma.
U bent klaar en uw Microcontroller is geprogrammeerd. Gebruik dezelfde stappen om een andere Atmega aan de ontvangerzijde te programmeren.
Volledige code en demonstratievideo wordt hieronder gegeven.