Kytkimen seurantatila (digitaalinen lukusarja) - Arduino Basics

Kokeile Instrumenttia Ongelmien Poistamiseksi





Tämä Arduinon perusteet käsittelee koodin toteuttamistapaa, jonka avulla ulkoisen painikkeen ON- tai OFF-tila voidaan lukea tai valvoa Arduinossa.

Digitaalinen lukusarja

Tässä opitaan esimerkin avulla kuinka valvoa kytkimen tilaa suorittamalla sarjaliikennettä Arduinon ja tietokoneen välillä USB: n kautta.



Yli Arduino-korttisi tarvitset seuraavat perustiedot:

Laitteisto

Hetkellinen kytkin, painike tai push-to-ON-kytkin



10k, 1/4 watin ohmin vastus

leipälauta
koukku- tai hyppyjohtimen linkit

Piirin käyttö

Toimenpide voidaan suorittaa seuraavilla vaiheilla:

Ota 3 kappaletta hyppyjohtoja ja kiinnitä ne Arduino-laudallesi. Kaksi johtoa, punainen ja musta, menee kahteen pitkään pystysuoraan riviin leipälautan puolella, joista tulee levyn syöttöjohdot kantamaan tarvitaan 5 V DC piirilevylle.

Kolmatta johtoa käytetään digitaalisen nastan 2 kytkemiseen push-to-ON-kytkimen yhteen johtimeen.

Tämä painikkeen erityinen johto liittyy myös alas vedettävään 10 k: n vastukseen negatiiviseen syöttökiskoon tai maahan. Kytkimen toinen vapaa johto on kytketty positiiviseen 5 voltin syöttöön.

Kun yllä olevat kytkennät on tehty, kytkin vaihtaa tai suorittaa kaksoistoiminnon piirissä, kun sitä työnnetään.

Normaalisti, kun kytkin on irrotetussa asennossa, sen kaksi johtoa pysyvät eristettyinä siten, että tappi, joka on kytketty maahan maahan alasvetovastuksen kautta, tuottaa LOW- tai loogisen 0-tason.

Painetussa tilanteessa kytkin suorittaa hetkellisen sillan sen kahdesta johtimesta siten, että sen johtimiin kohdistuu + 5 volttia, jolloin niiden korkeus on KORKEA tai looginen 1.

Digitaalisten i / o-pinoutien eristäminen muista asioista saattaa pakottaa LEDin menemään hajanauhaan ja aiheuttaa virheellisen vilkkumisen. Tämä johtuu siitä, että syötettä ei renderoidu mihinkään tai sitä ei pidetä riippuvassa asennossa - eli sitä ei ole määritelty mihinkään tiettyyn logiikkaan, ei korkeaan eikä alhaiseen (+ 5 V tai 0 V), tästä syystä käytämme alasvetovastus kytkimellä.

Kaavamainen

Koodin ymmärtäminen

Seuraavassa alla olevassa ohjelmassa aloitetaan sarjaliikenne asetustoiminnossa nopeudella 9600 bittiä sekunnissa, tämä aloitetaan Arduino-kortin ja liitetyn tietokoneen välillä: Serial.begin (9600)

Seuraavassa vaiheessa laukaistaan ​​digitaalinen nasta 2, tappi, joka olisi vastuussa lähdöstä työntökytkimellä tulona: pinMode (2, INPUT) Tämä viimeistelee asetuksemme, nyt purjehdimme koodimme pääpiiriin .

Täällä painettaessa painiketta 5 volttia päästään virtapiirimme läpi, kun taas tulotappi liitetään maahan 10-kiloisen vastuksen kautta, kun se on puristamattomassa tilassa.

Yllä mainittua kutsutaan digitaaliseksi tuloksi, joka viittaa ehtoon, jossa kytkin voi olla vain tietyssä tilassa joko on-tilassa (Arduinon hyväksymänä '1' tai LOGIC HIGH) tai pois päältä -tilana (visualisoitu) Arduino '0' tai LOGIC LOW), ilman mitään muita määrittelemättömiä aikoja.

Perustoiminta, joka meidän on suoritettava ohjelman pääpiirissä, on käyttää muuttujaa pitämään painikkeella lähetetyt tiedot paikallaan.

Kuten edellä on esitetty, signaalien ollessa joko '1' tai '0', käytämme tässä int-tietotyyppiä. Voimme nimetä tämän muuttujan sensorValueeksi ja korjata sen vastaamaan kaikkea, mitä digitaalisella nastalla 2 luetaan. Kaikki nämä ovat saavutettavissa yhden koodirivin kautta:

int sensorValue = digitalRead (2) Kun Arduino on lukenut syötteen, tulosta se takaisin tietokoneelle desimaaliarvona.

Tämä voidaan toteuttaa komennon Serial.println () avulla koodin loppurivillä: Serial.println (sensorValue)

Tämän jälkeen, kun Sarjamonitori käynnistetään Arduino-toimialueella, voimme todeta 0-ketjun, kun painike on auki, ja ketjut 1, jos painiketta pidetään suljetussa tilassa.

/*
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
}




Edellinen: Räätälöity vesivirtauksen säädin ajastinpiirillä Seuraava: Analogisen muuntaminen digitaaliseksi (analoginen lukusarja) - Arduino Basics