A kapcsoló állapotának figyelése (digitális olvasási sor) - Arduino alapjai

Próbálja Ki A Műszerünket A Problémák Kiküszöbölésére





Ez az Arduino alapismeretek egy olyan kód megvalósításának módját tárgyalja, amelyen keresztül egy külső nyomógomb BE vagy KI állapota olvasható vagy ellenőrizhető az Arduino-ban.

Digitális olvasási sorozat

Itt egy példán keresztül megtanuljuk, hogyan lehet monitorozni a kapcsoló állapotát azáltal, hogy soros kommunikációt folytatunk az Arduino és a számítógép között USB-n keresztül.



Az Arduino táblán felül a következő alapvető elemekre van szükség:

Hardver

Pillanatnyi kapcsoló, gomb vagy push-to-ON kapcsoló



10k, 1/4 watt ohmos ellenállás

kenyérdeszka
összekötő vagy áthidaló vezetékek.

Áramkör működtetése

A művelet a következő lépésekkel hajtható végre:

Vegyen 3 darab áthidaló vezetéket, és kösse össze az Arduino deszkájával. A vörös és fekete huzalok közül kettő a kenyérlemez oldalán található két hosszú függőleges sorra megy, amelyek a tábla tápkábeleivé válnak a szükséges 5 V DC az alaplapra.

A harmadik vezetéket arra használjuk, hogy a digitális 2 érintkezőt a push-to-ON kapcsoló egyik vezetékéhez csatlakoztassuk.

A gomb ezen kivezetése összekapcsolódik egy lehúzható 10k ellenállással a negatív tápvezetékkel vagy a talajjal. A kapcsoló másik szabad vezetéke az 5 voltos táp pozitív csatlakozásával van összekötve.

A fenti kapcsolatok létrejötte után a kapcsoló kettős műveletet kapcsol be vagy hajt végre az áramkörben, ha megnyomják.

Normális esetben, amikor a kapcsoló nincs csatlakoztatva, a két vezeték elválasztva marad, így a csap, amely a földhöz kapcsolódik a lehúzható ellenálláson keresztül, LOW vagy logikai 0 szintet eredményez.

A préselt helyzetben a kapcsoló pillanatnyi áthidalást hajt végre két vezetékén, oly módon, hogy a vezetékei + 5 voltnak vannak kitéve, ami HIGH vagy logikai 1 szintet eredményez rajtuk.

A digitális i / o csatlakozók elkülönítése a többi dologtól arra kényszerítheti a LED-et, hogy rendellenesen villogjon, és rendellenesen villogjon. Ez annak a ténynek köszönhető, hogy a bemenetet nem rendelték el semmihez, vagy „lógó” helyzetben tartották - vagyis nincs meghatározva semmilyen határozott logikához, sem magas, sem alacsony (+ 5 V vagy 0 V), ezért alkalmazzuk a lehúzható ellenállás a kapcsolóval.

Vázlatos

A kódex megértése

Az alábbi programban soros kommunikációt kezdünk a beállítási funkción belül, másodpercenként 9600 bit adatsebességgel, ezt az Arduino kártya és a csatolt számítógép között kezdeményezzük: Serial.begin (9600)

A következő lépésben kiváltjuk a digitális 2-es csapot, azt a csapot, amely a kimenetért felelne, és a nyomógombot bemenetként használnánk: .

Itt a nyomógomb megnyomásakor 5 volt engedi átjutni az áramkörünkön, míg a bemeneti tű a 10 kilohmos ellenálláson keresztül kapcsolódik a földhöz, ha nincs nyomva.

A fentieket digitális bemenetnek nevezzük, amely olyan állapotra utal, amikor a kapcsoló csak egy adott állapotban lehet, vagy bekapcsolt állapotban (amelyet az Arduino „1” -nek vagy LOGIC HIGH-nak elfogad), vagy kikapcsolt állapotnak (megjelenítve) az Arduino „0” -ként vagy LOGIKAI LOW-ként), semmilyen más meghatározatlan sáv nélkül.

Az alapvető művelet, amelyet a program fő ciklusában végre kell hajtanunk, egy változó alkalmazása a nyomógombbal küldött információk helyben tartására.

Amint fentebb tárgyaltuk, hogy a jelek '1' vagy '0' formában vannak, itt int adattípust alkalmazunk. Nevezhetjük ezt a változót sensorValue-nak, és javíthatjuk úgy, hogy megfeleljen mindennek, ami a 2. digitális tűn olvasható. Mindezek egy kódsor segítségével érhetők el:

int sensorValue = digitalRead (2) Miután az Arduino elolvasta a bemenetet, tizedesérték formájában nyomtassa vissza a számítógépre.

Ez a Serial.println () parancs segítségével valósítható meg a kód záró sorában: Serial.println (sensorValue)

Ezt követően, valahányszor a soros monitort az Arduino tartományban indítják, a „0” láncnak lehetünk tanúi, amikor a nyomógomb nyitva van, és az „1” láncokat, ha a gombot zárt állapotban tartják.

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




Előző: Testreszabott vízáramlás-szabályozó időzítő áramkörrel Következő: Az analóg konvertálása digitálisra (analóg olvasósorozat) - Arduino alapjai