Bewaking van de status van een schakelaar (digitaal lezen serieel) - Arduino Basics

Probeer Ons Instrument Voor Het Oplossen Van Problemen





Deze basisprincipes van Arduino bespreekt de methode voor het implementeren van een code waarmee de AAN of UIT-status van een externe drukknop kan worden gelezen of bewaakt binnen de Arduino.

Digitaal lezen serieel

Hier leren we aan de hand van een voorbeeld hoe we de status van een schakelaar kunnen bewaken door seriële communicatie uit te voeren tussen uw Arduino en uw pc via USB.



Naast je Arduino-bord, heb je de volgende fundamentele items nodig:

Hardware

Een tijdelijke schakelaar, knop of een push-to-ON-schakelaar



Weerstand van 10 k, 1/4 watt ohm

broodplank
hook-up of jumperdraadverbindingen.

Circuitwerking

De bewerking kan worden gedaan met de volgende stappen:

Neem 3 stukjes jumperdraden en sluit ze aan op je Arduino-bord. Twee van de draden, rood en zwart, gaan naar de twee lange verticale rijen aan de zijkant van het breadboard die de voedingskabels van het bord worden om het bord te dragen. vereiste 5V DC op het bord.

De derde draad wordt gebruikt om de digitale pin 2 aan te sluiten op een van de draden van de push-to-ON-schakelaar.

Deze specifieke aansluiting van de knop is ook verbonden met een pull-down 10k-weerstand naar de negatieve voedingsrail of de aarde. De andere vrije kabel van de schakelaar is verbonden met de positieve 5 volt voeding.

Met de bovenstaande verbindingen gemaakt, schakelt de schakelaar om of voert een dubbele actie uit in het circuit wanneer er op wordt gedrukt.

Normaal gesproken, wanneer de schakelaar in een ontkoppelde positie staat, blijven de twee draden geïsoleerd, zodat de pin die via de pull-down-weerstand met de aarde is verbonden, een LAAG of een logisch 0-niveau geeft.

In de ingedrukte situatie voert de schakelaar een tijdelijke overbrugging van zijn twee draden uit, zodat de draden worden blootgesteld aan + 5 volt, waardoor er een HOOG of logisch 1-niveau overheen wordt weergegeven.

Door de digitale i / o-pinouts te isoleren van de rest van de dingen, kan de LED in de war raken en onregelmatig knipperen veroorzaken. Dit komt doordat de invoer nergens naar wordt weergegeven, of in een 'hangende' positie wordt gehouden - wat betekent dat het niet is toegewezen aan een bepaalde logica, noch hoog noch laag (+ 5V of 0V), dit is de reden waarom we de pull-down weerstand met de schakelaar.

Schematisch

De code begrijpen

In het onderstaande programma beginnen we met seriële communicatie binnen de setup-functie met een snelheid van 9600 bits gegevens per seconde, dit wordt geïnitieerd tussen het Arduino-bord en de aangesloten computer: Serial.begin (9600)

In de volgende stap activeren we digitale pin 2, de pin die verantwoordelijk zou zijn voor de output met de push switch als input: pinMode (2, INPUT) Hiermee is onze 'setup' voltooid, nu varen we de hoofdlus van onze code binnen .

Hier, door op de drukknop te drukken, mag 5 volt door ons circuit komen, terwijl de ingangspen met de aarde wordt verbonden via de weerstand van 10 kilo-ohm wanneer deze in een niet-ingedrukte toestand is.

Het bovenstaande is wat we een digitale ingang noemen, wat verwijst naar een toestand waarin de schakelaar alleen in een bepaalde staat kan zijn, hetzij een aan-toestand (geaccepteerd door de Arduino als een '1', of LOGIC HIGH) of een uit-toestand (gevisualiseerd door de Arduino als een '0', of LOGIC LOW), zonder enige andere ongedefinieerde sates ertussenin.

De fundamentele actie die we moeten uitvoeren in de hoofdlus van het programma, is het toepassen van een variabele om de informatie op zijn plaats te houden die via de drukknop is verzonden.

Zoals hierboven besproken met de signalen in de vorm van een '1' of een '0', gebruiken we hier een int datatype. We kunnen deze variabele een naam geven als sensorValue, en het repareren zodat het overeenkomt met alles wat op digitale pin 2 wordt gelezen. Al deze worden haalbaar via één regel code:

int sensorValue = digitalRead (2) Zodra de Arduino de invoer heeft gelezen, print je deze terug naar de computer in de vorm van een decimale waarde.

Dit kan worden geïmplementeerd met behulp van het commando Serial.println () in de afsluitende regel van de code: Serial.println (sensorValue)

Hierna, telkens wanneer de seriële monitor wordt geïnitieerd in het Arduino-domein, zouden we getuige zijn van een ketting van '0'en als de drukknop open is, en kettingen van' 1'en als de knop in gesloten toestand wordt gehouden.




Een paar: Aangepaste waterstroomregelaar met timercircuit Vervolg: Analoog naar digitaal converteren (analoog serieel lezen) - Arduino Basics