Overvågningstilstand for en switch (Digital Read Serial) - Grundlæggende om Arduino

Prøv Vores Instrument Til At Fjerne Problemer





Dette grundlæggende i Arduino diskuterer metoden til implementering af en kode, hvorigennem ON eller OFF-tilstanden for en ekstern trykknap kunne læses eller overvåges i Arduino.

Digital læseserie

Her lærer vi gennem et eksempel, hvordan man overvåger en switchs tilstand ved at udføre seriel kommunikation på tværs af din Arduino og din pc via USB.



Ud over dit Arduino Board vil du kræve følgende grundlæggende punkter:

Hardware

En øjeblikkelig switch, knap eller en push-to-ON-kontakt



10k, 1/4 watt ohm modstand

brødbræt
tilslutnings- eller forbindelsesledninger.

Kredsløb

Operationen kan udføres med følgende trin:

Tag 3 stykker jumperledninger og tilslut dem med dit Arduino-kort. To af ledningerne, røde og sorte, går til de to lange lodrette rækker på siden af ​​brødbrættet, som bliver bordets forsyningsledninger for at bære krævede 5V DC til kortet.

Den tredje ledning bruges til at forbinde den digitale pin 2 til en af ​​ledningerne på push-to-ON-kontakten.

Denne særlige ledning på knappen forbinder også med en nedadrettet 10k modstand til den negative forsyningsskinne eller jorden. Den anden ledning på kontakten er forbundet med den positive af 5 volt forsyning.

Med ovenstående tilslutninger skifter eller udfører kontakten eller udfører en dobbelt handling i kredsløbet, når det får et skub.

Normalt når kontakten er i en frakoblet position, forbliver de to ledninger isoleret, således at stiften, der er forbundet med jorden via nedtrækningsmodstanden, gør et LAVT eller et logisk 0-niveau.

I den pressede situation udfører kontakten en kortvarig bro mellem sine to ledninger, således at dens ledninger udsættes for + 5 volt, hvilket gengiver et HIGH eller logisk 1 niveau over dem.

At isolere de digitale i / o-pinouts fra resten af ​​tingene, kan tvinge LED'en til at gå haywire og forårsage uregelmæssig blinking. Dette skyldes, at indgangen ikke gengives til noget eller holdes i en 'hængende' position - hvilket betyder, at den ikke er udpeget til nogen bestemt logik, hverken høj eller lav (+ 5V eller 0V), det er grunden til, at vi anvender pull-down modstand med kontakten.

Skematisk

Forståelse af koden

I det følgende program nedenfor begynder vi med seriel kommunikation inden for opsætningsfunktionen med en hastighed på 9600 bit data pr. Sekund, dette initieres mellem Arduino-kortet og den tilsluttede computer: Serial.begin (9600)

I det næste trin udløser vi digital pin 2, den pin, der ville være ansvarlig for output med trykkontakten som input: pinMode (2, INPUT) Dette afslutter vores 'setup', nu sejler vi ind i hovedsløjfen i vores kode .

Her ved tryk på trykknappen får 5 volt lov til at komme igennem vores kredsløb, mens indgangsstiften forbindes med jorden gennem 10 kilohm modstanden, når den er i en ikke-presset tilstand.

Ovenstående er, hvad vi kalder en digital indgang, der refererer til en tilstand, hvor kontakten kun kan være i en bestemt tilstand enten en til-tilstand (accepteret af Arduino som en '1' eller LOGIC HIGH) eller en fra-tilstand (visualiseret af Arduino som en '0' eller LOGISK LAV), uden andre udefinerede sæt i mellem overhovedet.

Den grundlæggende handling, som vi har brug for at udføre i programmets hovedsløjfe, er at anvende en variabel til at holde informationen på plads, der er sendt via trykknappen.

Som diskuteret ovenfor med signalerne i form af enten '1' eller '0' anvender vi her en int-datatype. Vi kan navngive denne variabel som sensorValue og rette den, så den svarer til alt, hvad der læses på digital pin 2. Alle disse kan opnås via en kodelinje:

int sensorValue = digitalRead (2) Når Arduino har læst indgangen, skal du udskrive den tilbage til computeren i form af en decimalværdi.

Dette kan implementeres ved hjælp af kommandoen Serial.println () i den afsluttende linje i koden: Serial.println (sensorValue)

Efter dette, hver gang den serielle skærm initieres i Arduino-domænet, ville vi være vidne til en kæde af '0'er, mens trykknappen er åben position, og kæder' 1 i tilfælde af, at knappen holdes i lukket tilstand.

/*
DigitalReadSerial
Reads a digital input on pin 2, prints the result to the serial monitor
This example code is in the public domain.
*/
// digital pin 2 has a pushbutton attached to it. Give it a name:
int pushButton = 2

// the setup routine runs once when you press reset:
void setup() {
// initialize serial communication at 9600 bits per second:
Serial.begin(9600)
// make the pushbutton's pin an input:
pinMode(pushButton, INPUT)
}
// the loop routine runs over and over again forever:
void loop() {
// read the input pin:
int buttonState = digitalRead(pushButton)
// print out the state of the button:
Serial.println(buttonState)
delay(1) // delay in between reads for stability
}




Forrige: Tilpasset vandstrømningsregulator med timer-kredsløb Næste: Konvertering af analog til digital (analog læs seriel) - Arduino-grundlæggende