Advertentie
Verberg dit in je woonkamer en lach terwijl de TiVo-box schijnbaar bezeten is door een demon die eist om goedkope winkelkanalen te bekijken. Of het je uiteindelijke doel is om elke tv in de buurt uit te schakelen of een universele tv te bouwen Siri-gestuurde afstandsbediening, dit project dient als een goed startpunt om de basisprincipes van IR-besturing te leren en ontvangers.
In deze 'grap' maken we een apparaat dat een reeks IR-afstandsbedieningen opneemt en vervolgens afspeelt. Het werkt met elk apparaat dat een IR-afstandsbediening gebruikt, of zelfs een combinatie van apparaten tegelijk - het opnemen van maximaal 10 toetsaanslagen.
Componenten
Hier is een lijst met de dingen die je nodig hebt voor dit project:
- Arduino en patchdraden
- IR-ontvanger, zoals TSOP382 - maar je zou een compatibele moeten kunnen vinden in oude elektronica. Ik heb de mijne uit een reserve RGB-verlichtingscontroller gehaald. Ze hebben meestal 3 poten en zijn zwart, met één kant die eruitziet als een LED die in tweeën is gehakt en vastzit. Ik weet zeker dat daar een technisch woord voor is.
- IR-zender LED, zoals TIL38 - nogmaals, deze komen vrij vaak voor, maar ik kocht een nieuwe krachtige van Maplin; ze zien er identiek uit als elke andere LED, dus zorg ervoor dat u ze niet door elkaar haalt in uw elektronische kit!
- Geschikte weerstand voor uw IR-LED - gebruik deze LED-rekenmachine gezien de voedingsspanning (5 V van de Arduino) en de voorwaartse spanning en stroom van het LED-gegevensblad (meestal ongeveer 1,2 V @ 20 mA). Dit kwam in mijn geval uit op 220 ohm.
- Drukknop en 10k pulldown en 100 ohm weerstanden.
- Download de IR-afstandsbibliotheek door Ken Shirriff uit Github en plaats in je Arduino / bibliotheken map. Er is ook een voorbeeldcode die we gebruiken, die dan toegankelijk zou moeten zijn vanaf de Arduino Open -> Bibliotheken menu.

Bedrading
Tackle dit circuit in drie delen - de schakelaar is een beetje lastig, maar al het andere is eenvoudig. Denk eraan dat het korte been van de LED met het platte vlak de kathode is (negatief of aarde); het lange been is de anode (positief).

Signalen ontvangen
Ga je gang en open de bibliotheken / IRremote / IRrecvDemo voorbeeld code. Zorg ervoor dat de RECV_Pin correct is ingesteld, compileer en upload en open vervolgens de seriële console op 9600 baud. Pak elke afstandsbediening die je bij de hand hebt, richt hem op je ontvanger en begin op knoppen te drukken. Verschillende knoppen produceren verschillende codes; sommigen zullen dan een lange druk met de begincode aangeven FFFFFF, terwijl verschillende afstandsbedieningen de code eenvoudigweg opnieuw kunnen herhalen.

Voor een meer gedetailleerde weergave van de gegevens die worden ontvangen, bekijk de IRrecvDump voorbeeld in plaats daarvan, dat zowel het type ontvangen signaal aangeeft (32-bit NEC in dit geval), als de ruwe waarden. Goed om te weten, maar in de meeste gevallen wil je gewoon de gedecodeerde waarden.

Een signaal herhalen
We schrijven onze grap vandaag niet helemaal opnieuw, dus ga je gang en bekijk de IRrecord voorbeeld. De codecomplexiteit neemt hier enorm toe, maar het is meestal allemaal om te gaan met verschillende soorten IR-codes - fundamenteel is dit wat er in de lus gebeurt:
- Controleer of de knop wordt ingedrukt, speel het momenteel opgeslagen signaal opnieuw af als dit het geval is en herhaal elke 50 ms totdat het wordt ingedrukt.
- Als dat niet gebeurt en er wordt een signaal gedetecteerd, noteer dat dan.
De grootste beperking van dit voorbeeld is dat het slechts met één code tegelijk werkt, dus als je op een andere externe knop drukt, wordt de laatste overschreven. De knop speelt eenvoudig het allerlaatste ontvangen signaal af. Compileer en voer de code uit, zodat u aan de slag kunt met deze basissignaalversterker. Voor het afspelen van een enkel signaal werkt het prima, maar dat is van weinig praktisch nut in een grap of anderszins.
De grap!
Laten we het een beetje aanpassen om 10 of meer ondeugende signalen op te nemen. Je kunt de volledige gewijzigde code hier, maar hier volgt een overzicht van de wijzigingen die ik heb aangebracht voor het geval u dit zelf wilt programmeren:
- Definieer 3 nieuwe arrays van grootte 10 voor het opslaan van een set signalen elke keer dat er een wordt gedetecteerd, en een geheel getal om de grootte van die arrays op te slaan.
- Sla een index op van waar we ons momenteel bevinden in die array. Verhoog de index elke keer dat een signaal wordt gedetecteerd, maar verhoog niet als het signaal een herhalingscode is.
- Een booleaanse waarde die ervoor zorgt dat er niet meer wordt geregistreerd zodra we het maximum hebben bereikt.
- Een boolean om aan te geven of we in de afspeelmodus zijn of niet, in plaats van de knop ingedrukt te houden; veranderde ook de knoplogica om dit te veranderen.
Merk op dat de indicator-LED op de Arduino (pin 13) gaat branden zodra het geheugen vol is. Op dit moment moet u 10 keer drukken op de knop opnemen - niet minder - en de afspeelmodus wacht 1 seconde tussen elke herhaling van de knop. Hier is het in actie:
Je kunt ofwel spelen met het maken van meer IR-grappen, of dit een goede start vinden voor een meer episch domotica project Home Automation Guide Met Raspberry Pi en ArduinoDe markt voor domotica wordt overspoeld met dure consumentensystemen, onderling onverenigbaar en kostbaar om te installeren. Als je een Raspberry Pi en een Arduino hebt, kun je in principe hetzelfde bereiken met ... Lees verder ; en vergeet niet al het andere te bekijken Arduino-projecten. Deel uw creaties (of problemen) in de opmerkingen en laat uw waardering voor dit artikel zien door het te delen op uw favoriete sociale netwerken!
Afbeelding tegoed: DaGoaty
James heeft een BSc in Artificial Intelligence en is CompTIA A + en Network + gecertificeerd. Hij is de hoofdontwikkelaar van MakeUseOf en brengt zijn vrije tijd door met het spelen van VR paintball en bordspellen. Hij bouwt al pc's sinds hij een kind was.