Inhoudsopgave:

Infraroodsensor gebruiken met Arduino 8 stappen (met afbeeldingen) Antwoorden op al uw "Hoe?"
Infraroodsensor gebruiken met Arduino 8 stappen (met afbeeldingen) Antwoorden op al uw "Hoe?"

Video: Infraroodsensor gebruiken met Arduino 8 stappen (met afbeeldingen) Antwoorden op al uw "Hoe?"

Video: Infraroodsensor gebruiken met Arduino 8 stappen (met afbeeldingen) Antwoorden op al uw
Video: 🇳🇱 INFRAROOD ONTVANGER MET AFSTANDSBEDIENING (HX1838 VS1838) - Arduino les #9 2024, November
Anonim
Infraroodsensor gebruiken met Arduino
Infraroodsensor gebruiken met Arduino

Wat is een infrarood (ook wel IR) sensor?

Een IR-sensor is een elektronisch instrument dat IR-signalen scant in specifieke frequentiebereiken die zijn gedefinieerd door normen en deze omzet in elektrische signalen op de uitgangspen (meestal signaalpen genoemd). De IR-signalen worden voornamelijk gebruikt voor het verzenden van opdrachten via de ether op korte afstanden (meestal enkele meters), zoals waarmee u al hebt gewerkt op tv-afstandsbedieningen of andere soortgelijke elektronische apparaten.

IR-communicatieprotocol

Elk signaal vertegenwoordigt een specifieke code. Elektrische signalen kunnen weer worden omgezet naar de daadwerkelijke data/code die de afzender heeft verzonden. Wanneer u op een knop op de afstandsbediening van uw tv drukt, genereert deze een signaal dat overeenkomt met de knopcode (bijv. Aan/Uit, Volume omhoog, enz.) en stuurt dit naar een ontvanger (in dit geval uw tv). Zowel zender als ontvanger kwamen een reeks codes overeen, zodat de ontvanger op basis van elke code weet wat hij moet doen. De manier waarop een code moet worden gemoduleerd (gemodelleerd) als een signaal, is gedefinieerd in verschillende standaarden en elke sensorfabrikant probeert normaal gesproken een product te produceren dat daarmee compatibel is, zodat het in verschillende apparaten kan worden gebruikt. Een van de bekendste standaardprotocollen is van NEC. U vindt een korte geschiedenis van IR-protocollen op Wikipedia onder Consumer IR-titel.

Stap 1: Hoe ziet een IR-sensor eruit?

Hoe ziet een IR-sensor eruit?
Hoe ziet een IR-sensor eruit?
Hoe ziet een IR-sensor eruit?
Hoe ziet een IR-sensor eruit?
Hoe ziet een IR-sensor eruit?
Hoe ziet een IR-sensor eruit?

IR-sensoren zijn beschikbaar op verschillende pakketten. Hier ziet u enkele typische verpakkingen voor een IR-ontvanger.

Stap 2: IR Sensor Breakout Board/module

IR Sensor Breakout Board/module
IR Sensor Breakout Board/module
IR Sensor Breakout Board/module
IR Sensor Breakout Board/module
IR Sensor Breakout Board/module
IR Sensor Breakout Board/module
IR Sensor Breakout Board/module
IR Sensor Breakout Board/module

Je kunt ze ook kopen als een IR-module / breakout-bord op eBay, Aliexpress of Amazon. Dergelijke modules bevatten normaal gesproken een van de bovengenoemde sensoren met een mooi breadboard-vriendelijk pakket samen met een LED die zou knipperen wanneer de sensor een signaal detecteert. Door dit te doen, zou u merken of er gegevens worden overgedragen. Ik raad ten zeerste aan om met een van deze modules te beginnen.

Opmerking: als je een onbewerkte IR-sensor hebt, verandert er niets, behalve dat je de datasheet van de sensor moet controleren om er zeker van te zijn dat je hem correct bedraden, want anders zou je een mooie blauwe rook kunnen krijgen met een geur die een tijdje zou aanhouden. uur. Je weet wat ik bedoel;)

Stap 3: Vereiste onderdelen en componenten

Vereiste onderdelen en componenten
Vereiste onderdelen en componenten

Hier vindt u de lijst met componenten die u nodig heeft om deze tutorial te voltooien:

eBay-links:

  • 1 x Arduino Uno:
  • 1 x IR-sensormodule met afstandsbediening:
  • 4 x 220 ohm weerstanden:
  • 4 x LED:
  • 8 x Dupont-kabel:
  • 1 x soldeerloze breadboard:
  • 1 x Mini breadboard (optioneel):

Amazon.com-links:

  • 1 x Arduino Uno:
  • 1 x IR-sensormodule met afstandsbediening:
  • 1 x soldeerloze breadboard:
  • 4 x 220 ohm weerstanden:
  • 4 x LED:
  • 8 x Dupont-kabel:
  • 1 x Mini breadboard (optioneel):

Stap 4: IR-sensor aansluiten op Arduino

IR-sensor aansluiten op Arduino
IR-sensor aansluiten op Arduino
IR-sensor aansluiten op Arduino
IR-sensor aansluiten op Arduino
IR-sensor aansluiten op Arduino
IR-sensor aansluiten op Arduino

Het opzetten van een IR-sensorverbinding met Arduino is heel eenvoudig. Naast de VCC- en GND-pin heeft de sensor slechts één uitgangspin die moet worden aangesloten op een van de digitale pinnen van de Arduino. In dit geval is deze aangesloten op pin 13.

Ik heb geprobeerd zowel de IR-sensormodule als de onbewerkte IR-sensorconfiguratie te demonstreren. Zoals te zien is op foto's, is de positie van de VCC- en GND-pinnen op de sensormodule het tegenovergestelde van de onbewerkte sensor. Het is echter mogelijk dat dit niet het geval is voor uw sensor, dus zoals vermeld in de vorige stap, controleert u eerst de datasheet als u de onbewerkte sensor gebruikt.

Stap 5: Zoek de code die overeenkomt met elke toets op de afstandsbediening

Zoek de code die overeenkomt met elke toets op de afstandsbediening
Zoek de code die overeenkomt met elke toets op de afstandsbediening
Zoek de code die overeenkomt met elke toets op de afstandsbediening
Zoek de code die overeenkomt met elke toets op de afstandsbediening
Zoek de code die overeenkomt met elke toets op de afstandsbediening
Zoek de code die overeenkomt met elke toets op de afstandsbediening

Om Arduino te programmeren om iets te doen wanneer u op een toets op de afstandsbediening drukt, moet u eerst de code hebben die overeenkomt met die toets. De sleutelcode is een getal dat normaal gesproken als hexadecimaal wordt weergegeven. Elke afstandsbediening heeft zijn eigen set sleutelcodes, terwijl het mogelijk is dat twee controllers dezelfde code delen voor verschillende doeleinden. Het hebben van verschillende sleutelcodes en het gebruik van verschillende frequentiebereiken zorgt ervoor dat twee afstandsbedieningen van verschillende apparaten geen interferentie hebben. Daarom reageert uw dvd-speler helemaal niet wanneer u van tv-zender verandert.

Om de codes voor uw IR-afstandsbediening te detecteren, moet u eerst een eenvoudige schets uitvoeren die probeert de code van de sensor te lezen wanneer u op een toets drukt en die via de seriële poort naar uw computer verzendt, waar u er toegang toe hebt met behulp van Serial Monitor-tools van Arduino-IDE. Dit is wat de schets bij dit gedeelte doet. Het is beter om op elke knop te drukken om de code te zien en de lijst met codes ergens op te schrijven, zodat u deze code in de toekomst niet opnieuw hoeft uit te voeren. De lijst met toetscodes die u als tabel in de afbeelding ziet, zijn eigenlijk codes die ik heb ontvangen bij het indrukken van knoppen op mijn goedkope IR-afstandsbediening.

Je hebt ook toegang tot de daadwerkelijke broncode die wordt gedeeld op mijn Arduino-webeditor op ir-key-code-logger.

Opmerking: wees niet bang als je ergens tussenin een code als FFFFFF ziet. Het betekent dat je een knop een tijdje ingedrukt hebt gehouden. We komen er later op terug. Voor nu negeer ze gewoon en concentreer je op andere codes.

Stap 6: Bedien een set LED's met IR-afstandsbediening

Bedien een set LED's met IR-afstandsbediening
Bedien een set LED's met IR-afstandsbediening
Bedien een set LED's met IR-afstandsbediening
Bedien een set LED's met IR-afstandsbediening
Bedien een set LED's met IR-afstandsbediening
Bedien een set LED's met IR-afstandsbediening

Nu we voor elke knop een code hebben, is het tijd om ons te concentreren op de manier waarop we ze kunnen gebruiken. Normaal gesproken gebruik je de IR-afstandsbediening om opdrachten naar Arduino te sturen om bijvoorbeeld een lamp aan of uit te doen, een robot in een bepaalde richting te bewegen, iets op een LCD/OLED-scherm weer te geven, enz. Hier proberen we het proces te demonstreren met een eenvoudige schakeling bestaande uit 4 LED's in verschillende kleuren. We willen ze allemaal in- of uitschakelen met een speciale knop van de IR-afstandsbediening. Zoals je op het schema kunt zien, moet je de Arduino op de volgende manier aansluiten op LED's en sensor:

Arduino GND -> IR-sensor GND.

Arduino VCC -> IR-sensor VCC.

Arduino 13 -> IR-sensorsignaaluitgang.

Arduino 2 -> Anode van de blauwe LED (kortere pin van de blauwe LED)

Arduino 3 -> Anode van de groene LED (kortere pin van de groene LED)

Arduino 4 -> Anode van de gele LED (kortere pin van de gele LED)

Arduino 5 -> Anode van de rode LED (kortere pin van de rode LED)

Arduino GND -> Kathode van alle LED's via een 220 ohm weerstand (langere pin van de LED's)

Je kunt de code die overeenkomt met dit circuit vinden in het bijgevoegde bestand of op mijn Arduino-webeditor op ir-led-control.

Stap 7: Problemen oplossen

Tijdens het opzetten van uw project en het volgen van de stappen kunt u veel vreemde situaties tegenkomen. Hier is de lijst met enkele veelvoorkomende fouten die u kunt krijgen bij het werken met de IR-sensor.

FFFFFFF krijgen bij het indrukken van een toets

Wanneer u op een knop drukt, merkt u misschien dat deze meestal een code als FFFFFF meldt. Dit gebeurt wanneer u op een knop drukt en deze een tijdje ingedrukt houdt, zelfs voor een korte tijd. Het scenario is dat wanneer u de eerste keer op de knop drukt, de IR-afstandsbediening de knopcode verzendt en zolang u de knop ingedrukt houdt, wordt het verzenden van FFFFFF herhaald, wat betekent dat de gebruiker nog steeds op de onlangs gerapporteerde knop drukt. Dat zou goed zijn. Je kunt ze gewoon weglaten. De eigenlijke code is degene die je net voor FFFFFF op de seriële monitor hebt gekregen.

IR-sensor reageert helemaal niet en lijkt warm te worden

Schakel de stroom uit!!! Als u zeker weet dat de schets van de keycodelogger correct is, kan het probleem te wijten zijn aan de verkeerde instelling van uw draden. Het scenario dat mij overkwam was dat ik voor mijn IR-module (degene die aan het bord was bevestigd) de VCC en GND op de tegenovergestelde manier had aangesloten (vanwege het niet gebruiken van de juiste kleuren voor mijn aansluitdraden). Hierdoor verbrandde de sensorcomponent en kwam er een mooie blauwe rook op. Ik kocht een pakket onbewerkte IR-sensoren en probeerde het te vervangen en nu werkt het als een charme:). Helaas maakte ik dezelfde fout toen ik aan het testen was met de onbewerkte IR-sensor en deze keer gebeurde er niets behalve dat de sensor warm werd. Controleer dus altijd het circuit voordat u de stroom inschakelt!

Soms detecteert de sensor een code die ik nog nooit eerder heb gezien

Dit is een van de meest voorkomende problemen. Dit komt waarschijnlijk door een van de volgende redenen:

Je richt je IR-afstandsbediening niet rechtstreeks op de sensor

Dit zal ertoe leiden dat u nieuwe codes krijgt (meestal langere codes) die u nog nooit eerder heeft ontvangen en die normaal gesproken niet overeenkomen met de lengte van de codes die u al heeft. Denk er dus aan om de afstandsbediening altijd op uw sensor te richten.

Je gebruikt een goedkope IR-afstandsbediening (zoals degene die ik in deze tutorial heb gebruikt)

In plaats van goedkope onvoorspelbare afstandsbedieningen te gebruiken, kunt u hetzelfde scenario proberen met de afstandsbediening van uw tv of dvd-speler of een IR-afstandsbediening van alle apparaten die u heeft. Ze hebben normaal gesproken een goede signaal-/hardwarekwaliteit (en zijn natuurlijk duurder) en op basis van mijn ervaring werken ze normaal gesproken goed, zelfs als je je afstandsbediening niet rechtstreeks op de sensor richt.

Hoe weet ik of een gelogde code geen afval is?

De codes worden normaal gesproken in hexadecimaal formaat weergegeven. Als je ze converteert naar de corresponderende binaire waarde, zul je merken dat de binaire representatie van de laatste byte de negatie is van de byte die daarvoor komt. Als je dit weet, kun je deze check in je code doen om er zeker van te zijn dat de code die je hebt ontvangen wel of niet geldig is. Als u bijvoorbeeld FF7A85 hebt, zou de binaire weergave als volgt zijn:

1111 1111 0111 1010 1000 0101

Van links naar rechts is elke batch van 4 cijfers een weergave van een teken in het oorspronkelijke hexadecimale getal. Zoals u kunt zien, is de batch die overeenkomt met 7 0111 en de batch die overeenkomt met 8 is 1000, wat de exacte ontkenning ervan is. Met ontkenning bedoel ik dat alle nullen enen zouden zijn en alle enen zouden worden vervangen door nullen. Hetzelfde geldt voor de volgende die A (1010) en 5 (0101) is.

Stap 8: Wat te doen?

Nu is het uw beurt. Het is allemaal aan uw verbeelding om te zien wat u kunt doen met deze kleine eenvoudige sensor in uw hand. Hier zijn enkele ideeën om mee te beginnen:

  • Gebruik de IR-afstandsbediening van een van de apparaten die je thuis hebt (tv, stereo, enz.) en probeer deze te gebruiken in je Arduino-project
  • Probeer alle LED's tegelijk in te schakelen door op een toets te drukken en schakel ze vervolgens uit met een andere toets
  • Gebruik de omhoog/omlaag-knop van de afstandsbediening om de LED's een voor een aan/uit te zetten totdat ze allemaal aan/uit gaan
  • Maak een verkeerslicht met behulp van LED's en bedien het met je afstandsbediening
  • Als je een kleine gelijkstroommotor bij de hand hebt, probeer dan te starten/stoppen of de draairichting ervan te veranderen via de IR-afstandsbediening
  • Je kunt de afstandsbediening van je tv gebruiken om je robot te bedienen of sommige sensoren/actuatoren erop in-/uitschakelen

Laat het me weten bij opmerkingen, wat zou je doen (of heb je al gedaan) met behulp van IR-afstandsbediening.

Aanbevolen: