IR gecontroleerd "Locking" mechanisme (4 / 6 stap)

Stap 4: Stap 4: Arduino Code


Ik zal gaan door de sectie bespreken de belangrijkste kenmerken van de code. Derden bibliotheken kunnen worden geïmporteerd uit GitHub. De LiquidCrystal en IRremote bibliotheken kunnen worden gevonden op GitHub. Ik had voor het maken van de bibliotheek vanaf nul voor de Sensor van de nabijheid van de HCSR04 (Hopelijk vindt u het gekoppeld hierboven). In deze bibliotheken, kunt u de variabelen die zijn vereist voor het verzenden van een opdracht of een functie aanroept. Elke bibliotheek heeft een C++ (software voor het coderen van) en de .h (extensie headerbestand). Als het maken van uw eigen bibliotheken, moet u beide maken.

Volgende die ik inga op de initialisatie van de variabelen. We hebben verschillende klassen van de Servo, IRremote, LiquidCrystal en HCSR04 bibliotheken en de variabelen die zijn gedeclareerd. Ik heb ook enkele van de knoppen op de afstandsbediening die ik gebruikte gedefinieerd. De klasse LiquidCrystal instantieert een LCD-object aangeduid als "lcd". Het LCD-adres is 0x27 met 16 kolommen en 2 rijen. De Sensor van de nabijheid van de HCSR04 heeft twee triggers. De "trigger"-pin is verantwoordelijk voor het afgeven van een puls. Deze puls stuitert terug (echos) of wordt afgevoerd in de ruimte. De "echo" pin ontvangt een zwevende waarde toegewezen aan pin 8. Deze trigger neemt in de geactiveerde pols en zet de waarde in centimeters (per mijn eigen ontworpen bibliotheek). De afstanden die de nabijheidssensor ontvangt worden gedefinieerd als zwevende waarden. Ze kon zijn gedefinieerd als integerwaarden maar ik wilde de metingen nauwkeurig te zijn en dit betekent dat de waarden die worden gelezen decimale waarden (een voorbeeld zou 6.52 cm).

Verplaatsen naar de setup, initialiseren ik de i2C-bus op het LCD-scherm dat ik gebruik. I2C bezuinigingen in wezen neer op het aantal pinnen dat ik moet gebruiken op mijn Arduino. Ik de achtergrondverlichting van de LCD-scherm ook worden geïnitialiseerd. Als u wilt uw resultaten op een seriële monitor bekijken moet u een Serial.begin(baudrate)-opdracht gebruiken om vast te stellen hoeveel symbolen om te lezen. Hiermee start u de communicatie tussen de Arduino en de seriële monitor. Ik schakel het LCD-scherm voor het geval dat er sprake is van onjuiste symbolen of letters op het scherm. Ik stel de cursor naar het midden van de eerste rij en juich de gebruiker naar de module. Hij wacht een seconde en het scherm opnieuw wordt gewist. De IR ontvanger is klaar om te nemen in de waarden van de IR RAS. Ook wordt de servomotor verplaatst naar positie 0.

Tot slot gaan we naar de hoofdlus. distance1 is aangegeven als de trigger wordt verstuurd en ontvangen. Deze waarde is van de sensor van de nabijheid naar de Arduino in centimeters gelezen. last_distance doet wat de naam al aangeeft. Het slaat de laatste afstand die kan worden gelezen. Meer in detail zal worden verstrekt over de functie van deze opdrachten later. De als (irrecv.decode (& resultaten)) opdracht wordt gebruikt voor het adres voor elke druk op de knop toewijzen. Elke knop heeft een eigen bit-stream gekoppeld. Omdat dit project is over het openen van een slot met een opgegeven waarde, moet deze opdracht worden de eerste lus in de hoofdlus. last_distance > distance1 vergelijkt de waarden die zijn opgeslagen. Als de vorige afstand groter dan de huidige afstand was is dan het scherm ontruimd omdat er niemand bij de deur. Evenzo, als distance1 < = 7 (cm) dan de gebruiker wordt gevraagd het wachtwoord op te geven. Slechts één waarde zal werken (9). Alle andere waarden (0-8) zal instrueren de gebruiker om opnieuw te proberen. Echter voor waarde = 9, de deur zal openmaken en begroeten de gebruiker. Ook is er een geneste for-lus in dit als verklaring. De geneste voor lus de motor maakt te schoppen op en simuleren de deur ontgrendelen. De afstand < = 7 is hier om te controleren of de gebruiker nog steeds bij de deur of als hij/zij is gegaan binnen of links. Als de gebruiker nog steeds bij de deur, blijft de deur open. De deur blijft open gedurende ongeveer 4 seconden kan de gebruiker door de deur te gaan en vervolgens het zal overgaan tot het sluit. Na de 4 seconden vertraging, is de servomotor losgekoppeld. Ik doe dit om te voorkomen dat teveel macht wordt geleverd aan de motor wanneer het niet in gebruik. Bovendien, heb ik serial.println() opdrachten voor het weergeven van de resultaten op de seriële monitor.

Als kort besproken prior, zal een andere knop in te drukken niet actuate de motor dus ik had om ervoor te zorgen dat een andere knop deed niets (waarden 0-8). Het LCD-scherm wordt de gebruiker gevraagd te proberen opnieuw. Als u uw wachtwoord bent vergeten, kunt u de EQ knop en het LCD-scherm zal prompt u voor de stem van de cursus. Het is een boodschap van "Herinnering" zeggen "herinnering: op een schaal van 0-9, hoe ontzagwekkend deze klasse is?" Na dit, het scherm wordt gewist en nu kun je in de juiste waarde van 9.

Dit volgende commando is erg belangrijk: irrecv.resume(); Als u het niet hier zetten, zal de ontvanger niet langer controleren voor een andere ingang. Deze opdracht voorkomt dat de lus na het indrukken van een knop of iteratie opsluiten.

Als de afstand groter dan 7 cm, maar minder dan 10 cm is, symboliseert dit de gebruiker naderen van de module of de deur. U zal opnieuw worden geïnstrueerd om het wachtwoord.

Sluiten van de lus, ik heb een final als verklaring. Als de laatste afstand groter dan de huidige afstand is, betekent dit dat de gebruiker nergens is te vinden. Bovendien, ik heb het controleren om ervoor te zorgen dat de gebruiker niet overal gezien worden door & & distance1 > 12 (cm). Dit betekent dat iemand er was, en verliet. Het scherm wordt weer gewist. Er is een geneste for-lus die zegt, oke ik zag dat de deur geopend, de vergrendeling werd verplaatst naar de ontgrendelde positie en nu zal ik terugplaatst in de vergrendelde positie. De servomotor vastzit en het LCD-scherm vertelt de persoon vaarwel. De motor wordt 35 graden terugverplaatst naar de vergrendelde positie. Nadat de servomotor is klaar met haar taak, is deze opnieuw om te voorkomen dat overdriving van de motor en het minimaliseren van het energieverbruik voor het aandrijven van de servomotor ontkoppeld. Dit is het einde van de lus en voortdurend zal draaien.

Gerelateerde Artikelen

Arduino gecontroleerd Lock Box met magneetklep en RFID

Arduino gecontroleerd Lock Box met magneetklep en RFID

De RFID Lock Box combineert Arduino RFID en een solenoïde uw zeer eigen persoonlijke om veilig te maken! Het vergrendelen kunnen alleen worden geopend met sleutel kaarten die u hebt geprogrammeerd in het systeem, vergrendeling iedereen uit!Deze gids
Single Post Gate met Locking mechanisme

Single Post Gate met Locking mechanisme

Mijn ouders wilden een poort die niet aanraken het huis & die de gardner vanaf de buitenkant en de binnenkant als kon openen dat de man die ze gecontracteerd om het te doen een goedkope baan heeft. Dus na een maand van denken, dit wat ik kwam is metE
Mini Cooper elektrische deur vergrendeling Actuator repareren / "Locking" mechanisme

Mini Cooper elektrische deur vergrendeling Actuator repareren / "Locking" mechanisme

deze instructiable details hoe te repareren van een Mini cooper deur vergrendeling actuator. Ik deed dit aan mijn 2003 mini cooper s. Ik was ziek van lezing over de talloze aantal mensen die om te vervangen dit slecht ontworpen component met een nieu
Miata kofferbak Opener - Lock mechanisme is mislukt waardoor de Hatch geplakt Shut

Miata kofferbak Opener - Lock mechanisme is mislukt waardoor de Hatch geplakt Shut

Vandaag ging ik naar het helpen van mijn vader met zijn 90 Mazda Miata. Als het bleek uit de kofferbak zat dicht omdat het slot mechanisme is mislukt. Door design is er geen back-up voor de toegang tot de kofferbak, in het geval van het slot mechanis
Stargate 3D medaillon met verborgen "Locking" mechanisme

Stargate 3D medaillon met verborgen "Locking" mechanisme

na een poging mijn eerste 3D medaillon, heb ik besloten om te proberen om mezelf een beetje meer uitdaging.  Ik was in gesprek met mijn vriend over hoe het netjes om een kleine Stargate die een medaillon zou openstellen zou zijn. Dit zou een goed mom
Arduino Lock mechanisme

Arduino Lock mechanisme

Dit is een eenvoudige Arduino project dat een systeem van de huisveiligheid emuleert.Het is volledig op Proteus gesimuleerd, maar je niet verwachten veel verschil op een echte omgeving dat moet.U zult vereisen:ProteusAtmel StudioVisuele Micro voor At
Super eenvoudig geheime boekenplank deur & boek ontgrendelen mechanisme

Super eenvoudig geheime boekenplank deur & boek ontgrendelen mechanisme

Veel heb zoals, ik veronderstel, ieder kind die strips lezen of Batman of een van de vele literaire of pop-cultuur voorbeelden van geheime deuren leiden naar een vleermuizengrot of geheime passage/kamer, keek ik gedroomd van het hebben van mijn eigen
Inleiding tot hobbyist Lock picking Aka: LockSport

Inleiding tot hobbyist Lock picking Aka: LockSport

Lock picking krijgt een slechte wrap. Wanneer de meeste mensen de zin horen, het congers beelden van illegale activiteiten en gewetenloze personas. Maar echt, als het gaat om petty diefstal de meest effectieve strategie is niet van plan om te plukken
GEHEIME magnetische LOCK lade

GEHEIME magnetische LOCK lade

Hallo iedereen! Vandaag zal ik u tonen hoe te maken van een geheime lade onder uw tabel oppervlak met het gebruik van een verborgen magnetische vergrendeling. De lade is nauwelijks zichtbaar vanaf de bovenkant en vanwege haar verborgen magnetische ve
Hoe terug te vorderen van een Master Lock 4 nee. Combinatie

Hoe terug te vorderen van een Master Lock 4 nee. Combinatie

Oke, dus je een enigszins duur Masterlock met een 4 nummer draaien combinatie hebt.  Helaas, u hebt verloren of vergeten de combinatie die deze bijzondere Masterlock opent.  Bummer.Met vier sets van cijfers heeft het openen van dit slot ongeveer 10.0
DIY fiets U-Lock

DIY fiets U-Lock

Dat pakte al mijn aardse bezittingen in de achterkant van een oude 1992 Ford Ranger, ik clunked en stuiterde langs de 689 mijl tussen San Diego, CA, en Provo, UT. Na bijna 10 uur rijden, trok ik uit de snelweg en op een stad straat, wanneer mijn vrac
Verkorten van uw Lock-On fiets handvatten

Verkorten van uw Lock-On fiets handvatten

Als je de neiging te sleutelen van uw fiets mij alot, is hebben een paar van lock-on grips een zegen. Niet meer moeite om ze uitstappen wanneer u wisselen van uw stuur, shifters, of brakelevers wilt, terwijl de "locking" mechanisme voorkomt dat
Kruisboog Trigger-mechanisme (eenvoudige maar stevige)

Kruisboog Trigger-mechanisme (eenvoudige maar stevige)

AhoihoiVandaag wij maken een trigger/lock mechanisme voor een vrij krachtige kruisboog, zou ook werken voor BB guns hoewel.Zowel van mijn BB guns gebruiken dit ontwerp. En hier gaan we:Stap 1: Sjablonen, materiaal en gereedschapTools:-Schroevendraaie
15 minuten spindel Lock Upgrade voor uw X2 MiniMill

15 minuten spindel Lock Upgrade voor uw X2 MiniMill

Shanghai SIEG Machinery Company, een Aziatische machinefabrikant, maakt een kleine, Bank-top freesbank bekend als de "SIEG X2" of gewoon "X 2". De X2 wordt meestal particulier gebrandmerkt en is beschikbaar rond de wereld uit vele bron