IR kontrollerade låsmekanismen (4 / 6 steg)

Steg 4: Steg 4: Arduino kod



Jag kommer att gå sektionsvis diskutera de viktigaste funktionerna i koden. Tredjepartsbibliotek kan importeras från GitHub. Den LiquidCrystal och IRremote biblioteken finns på GitHub. Jag var tvungen att skapa biblioteket från början för HCSR04 Proximity Sensor (förhoppningsvis du kan hitta den bifogade ovan). I dessa bibliotek, kan du hitta de variabler som krävs för att skicka ett kommando eller anropa en funktion. Varje bibliotek har en C++ (programvara för kodning) och .h (förlängning header-fil). Om du skapar ditt eget bibliotek, måste du skapa båda dessa.

Nästa gå jag vidare till initiering av variablerna. Vi har flera klasser från Servo, IRremote, LiquidCrystal och HCSR04 bibliotek och de variabler som deklareras. Jag har också definierat flera av knapparna på fjärrkontrollen jag använde. Klassen LiquidCrystal instansierar ett LCD objekt som kallas "lcd". LCD adressen är 0x27 med 16 kolumner och 2 rader. HCSR04 Närhetssensor har två utlösare. "Trigger" PIN-koden är ansvarig för att skicka ut en puls. Denna puls antingen studsar tillbaka (ekon) eller får skingras i rymden. "Echo" PIN-koden får en flytande värde som tilldelats stift 8. Utlösaren tar i utlösta pulserar och konverterar värdet till centimeter (per min egen designade bibliotek). De avstånd som rörelsesensor tar emot definieras som flytande värden. De kunde har definierats som heltalsvärden men jag ville att mätningarna är korrekt och det innebär att de värden som läses har decimalvärden (ett exempel är 6.52 cm).

Flytta till setup, initiera jag i2C bussen på LCD-skärmen som jag använder. I2C i huvudsak minskar antalet stift som jag måste använda på min Arduino. Jag initiera bakgrundsbelysningen på LCD-skärmen också. Om du vill visa dina resultat på en seriell monitor måste du använda ett Serial.begin(baudrate) kommando för att fastställa hur många symboler att läsa. Detta startar kommunikationen mellan Arduino och seriell bildskärmen. Jag klar LCD-skärm om det finns några felaktiga symboler eller bokstäver på skärmen. Jag ställa markören till mitten av den första raden och välkomnar användaren till modulen. Det väntar en sekund och skärmen är avmarkerad igen. IR-mottagaren är redo att ta i värden från IR remote. Likaså flyttas servomotor till läge 0.

Slutligen, vi flytta till den viktigaste loopen. Distance1 deklareras som utlösare som skickas och tas emot. Det här värdet avläses närhet senor till Arduino i centimeter. last_distance har som namnet antyder. Det lagrar senaste avståndet som läses. Mer i detalj kommer att tillhandahållas om funktionen av dessa kommandon senare. Den om (irrecv.decode (& resultat)) kommandot används för att mappa adressen för varje knapptryckning. Varje knapp har en egen bitström är associerade med den. Eftersom detta projekt handlar om att öppna ett lås med ett angivet värde, måste detta kommando vara den första öglan i den viktigaste loopen. last_distance > distance1 jämför de värden som lagrats. Om föregående avståndet var större än det nuvarande avståndet är skärmen avmarkerad så det ingen finns vid dörren. På samma sätt om distance1 < = 7 (cm) så att användaren kommer att uppmanas att ange lösenordet. Endast ett värde fungerar (9). Alla andra värden (0-8) kommer att instruera användaren att försöka igen. Dock för värde = 9, dörren kommer att låsa upp och hälsa på användaren. Det finns också en nästlade for-loop i detta om uttalande. Den kapslade för loop gör motorn att sparka på och simulera låsa upp dörren. Avståndet < = 7 är här för att kontrollera om användaren är fortfarande på dörren eller om han/hon har gått inne eller vänster. Om användaren är fortfarande vid dörren, förblir dörren öppen. Dörren kommer att vara öppet i 4 sekunder att tillåta användaren att gå genom dörren och sedan det kommer fortsätta att stänga. Efter 4 sekunders fördröjning, är servomotor fristående. Jag gör detta för att förhindra överskott kraft levereras till motorn när den inte används. Dessutom har jag serial.println() kommandon för att visa resultaten på serial monitorn.

Som kort diskuterats tidigare, kommer att trycka på någon annan knapp inte aktivera motorn så jag var tvungen att se till att alla andra knappen inte göra någonting (värden för 0-8). LCD-skärmen uppmanas användaren att försöka igen. Om du har glömt ditt lösenord, kan du trycka på EQ-knappen och LCD-skärmen kommer att uppmana dig att betygsätta kursen. Det är en "Påminnelse" meddelande ordstav "påminnelse: på en skala från 0-9, hur AWESOME är denna klass?" Efter detta, kan rensar skärmen och du nu i det korrekta värdet 9.

Denna nästa kommando är mycket viktigt: irrecv.resume(); Om du inte lägger det här, att mottagaren inte längre kontrollera för en annan ingång. Det här kommandot förhindrar slingan låsa upp efter en iteration eller knappen press.

Om avståndet är större än 7 cm men mindre än 10 cm, symboliserar detta användaren närmar sig den modulen eller dörren. Du kommer igen instrueras att ange lösenordet.

Utgående ut slingan, jag har en sista om uttalande. Om senaste avståndet är större än det nuvarande avståndet, betyder det att användaren är ingenstans att finna. Dessutom, jag har den kontroll för att se till att användaren inte någonstans att ses av inklusive & & distance1 > 12 (cm). Detta betyder att någon var där och lämnade. Skärmen rensas igen. Det finns en nästlade for-loop som säger, okej jag såg att dörren öppnas, låsa flyttades till upplåst läge och nu jag kommer att flytta tillbaka till låst läge. Servomotor är ansluten och LCD-skärmen berättar personen hejdå. Motorn rör sig 35 grader tillbaka till låst läge. Efter servomotor görs med sin uppgift, är det återigen fristående för att förhindra överstyrning motorn och minimera kraften för att driva servomotor. Detta är slutet av slingan och kommer att köras kontinuerligt.

Se Steg
Relaterade Ämnen

Avlägsen kontrollerade dörrlås

Detta instructable är baserad på att utforma en automatisk dörr låssystem. Detaljerad ritning får också stöd av förståelse.Syftet med denna rapport är att utforma en avlägsen kontrollerade elektroniska låsmekanism. Denna design är en lösning till säk...

Antik lampa orgel - MIDI/OSC kontrollerade

skapa din egen antik lampa orgel för att lägga till nostalgisk atmosfär midi instrument!12 glödlampor motsvarar de 12 tonerna i en oktav (minus oktav tonen). Rektangulära rutan utspelar sig om du vill placera ljuskällorna vertikalt för display, medan...

CO2 Laser vatten flöde Monitor - Arduino Powered / Windows kontrollerade

CO2 Laser vatten flöde Monitor och larmDrivs av en Arduino och kontrollerade av anpassade program på en Windows PCAtt förlänga livslängden på en CO2 laser röret är det nödvändigt att pumpa kylvatten genom det medan det fungerar. Om pumpen inte eller...

DIY Audio kontrollerade lasershow!

Tack vare Instructables fick vår hackerspace The Rabbit Hole 2 ogudaktiga EVO laserpekare. De är ganska mäktiga gröna lasrar och vi trodde det skulle vara häftigt att använda en av dem med någon form av ljud-program.Naturligtvis detta lett till oss t...

Arduino kontrollerade ljus dimmer

Varning: Vissa människor försöka bygga detta med en optocoupler med zerocrossing coz "som är bättre" rätt? Vissa får även höra i elektronik butiker är det bättre att använda sådan optocoupler. FEL. Detta fungerar endast med en random brand optoc...

Android kontrollerade Garage dörröppnare

Mitt projekt är en Android kontrollerade Garage dörröppnare. Denna typ av projekt har gjort innan, men med omfattande hårdvara, sådan arduino styrelser, servrar, etc., och involverade komplicerad kodning och pengar. Jag gjorde det alla med minimal hå...

Autonoma, kartong, Rasberry Pi kontrollerade QuadCopter

detta är en autonom kartong quadcopter drivs av en Raspberry Pi. Det klarar av trådlös kommunikation samt samt realtid bildbehandling via kamera.Detta quadcopter byggdes av 4 sophomores vid Olin College of engineering för en klass som kallas principe...

Skapa en internet kontrollerad robot med Livebots

här kommer du lära dig hur du skapar en internet kontrollerad robot eller annan installation med Livebots.Livebots är ett projekt jag arbetar på som består av en lättanvänd webbplats för alla robotar att människor kan interagera med via internet.Som...

Utomjordingar APC - Radio kontrollerade

"självständigt inriktade partikelstråle falangen. Whap! Fräs hälften en stad med denna valp. Vi fick taktiskt smart-missiler, fasas-plasma puls-gevär, RPG'S. Vi fick sonic eee-lectronic ballbreakers, vi fick kärnvapen, vi fick knivar... vassa pinnar....

Android kontrollerade Arduino Bluetooth Panzer

Remote Control bilar är kul att köra runt i rummet eller vandrande huset. Vad kan vara roligare för det? När du har synligheten som om du rider i den. En trådlös IP-kamera är svaret. Eller låt oss säga att du har övervakningskameror runt huset eller...

Android kontrollerade LCD/LED Display - ingen Android-programmering, nr lödning behövs.

IntroductionDetta bygga använda Arduino plattform för att styra en LCD/LED display från din Android mobil. Det är en plug and play bygga som kräver nr Android programmering, ingen lödning och ingen handstil av Arduino kod, det du inte vill.Den grundl...

Android kontrollerade ljus och kraft, pfodDevice för Arduino

Uppdatering: Se Android/Arduino för nybörjare - Design anpassade Android menyer att slå Arduino utgångar på och av. Absolut No programmering krävs för ett alternativ som inte kräver någon programmering alls.===========================================...

Bygga en enorm RC monstertruck - Golf Cart Wheels - Moped Motor - Remote kontrollerade

här är en DIY att bygga en enorm RC monstertruck. Du måste ha en svetsare.Jag har haft att se fjärrstyrda lastbilar kommit långt under de senaste par åren. Jag har även ägt flera av dem längs vägen. Det hela började med AA drivs 2WD lastbilar med enk...

80cm trasiga LED-TV förvandlats till 50W avlägsen kontrollerade ljuslåda

Idag kommer vi förvandla trasiga 80cm LCD TV till en avlägsen kontrollerade ljuslåda för ljusterapi.Jag kom TV: N för billiga pengar som LCD-skärmen var trasig. TV: N används LED-teknik för ryggen ljus och allting arbetat böter. Det är formen en kine...

Aleph 1,0 - Internet kontrollerad Mikroskop Roboten Manipulator

Aleph 1.0 är en avlägsen kontrollerade robotic manipulator för biologiska eller kemiska sonder. Idén kom från det faktum att forskare behöver ett säkert sätt att manipulera och analysera bioriskavfall eller giftiga ämnen eller att helt enkelt Observe...

Blitzkrieg: Bluetooth kontrollerad 110lb bekämpa roboten.

Vi alla älskade att titta på "Robowars" en seriell TV-show. Blotta ljudet av metall kolliderar mot metall, robotar som kastade om av arena flipper, gnistor som kastas av döda metall, som paraderade runt av Killalot, att få brann lite och ha herr...

En temperatur kontrollerade laboratorium VÄRMARE

EN TEMPERATUR KONTROLLERADE LABORATORIUM VÄRMAREDen enhet som beskrivs är en elektriskt uppvärmd luft bad med justerbar power input och temperatur reglering via en PID digital temperatur styrenhet. Det är lämpliga för användning som en värmare för ke...

Autonoma, trådlöst kontrollerade svävare

detta är en instructable som tar dig genom en hel och en halv månad av arbete, designa och skapa en wirelessly kontrollerade modulära svävare, som kan kontrolleras med en RC controller, eller göras helt fristående. Jag ska gå igenom hur vi byggt vår...

Hjärnan-kontrollerade RC helikopter

detta Instructable visar du hur tar en Radio Controller helikopter och ändra fjärrkontrollen maskinvaran så att den kan drivs av fri, öppen källkod programvara och flugit baserat på hjärnvågorna mätningar av koncentration och avslappning av konsument...