Slēdža stāvokļa monitorings (digitālā lasāmā sērija) - Arduino pamati

Izmēģiniet Mūsu Instrumentu Problēmu Novēršanai





Šajā Arduino pamatinformācijā ir aprakstīta koda ieviešanas metode, ar kuras palīdzību Arduino var nolasīt vai uzraudzīt ārējās spiedpogas ieslēgšanas vai izslēgšanas stāvokli.

Digitālā lasīšanas sērija

Šeit mēs uzzinām, izmantojot piemēru, kā uzraudzīt slēdža stāvokli, veicot sērijveida saziņu visā Arduino un datorā, izmantojot USB.



Pārsniedzot jūsu Arduino dēli, jums būs nepieciešami šādi pamatelementi:

Aparatūra

Īslaicīgs slēdzis, poga vai “push-to-ON” slēdzis



10k, 1/4 vatu omu rezistors

maizes dēlis
savienojuma vai džempera stiepļu saites.

Ķēdes darbība

Darbību var veikt ar šādām darbībām:

Paņemiet 3 džemperu gabalus un piestipriniet tos ar Arduino dēli. Divas sarkanās un melnās stieples iet uz divām garām vertikālām rindām paneļa malā, kas kļūst par dēļa piegādes auklām, lai nēsātu nepieciešams 5V DC uz kuģa.

Trešo vadu izmanto, lai savienotu digitālo tapu 2 ar vienu no slēdža “push-to-ON” vadiem.

Šis konkrētais pogas vads ir saistīts arī ar nolaižamo 10k rezistoru ar negatīvo padeves sliedi vai zemi. Otrs slēdža brīvais vads ir saistīts ar pozitīvo 5 voltu padevi.

Kad ir izveidoti iepriekš minētie savienojumi, slēdzis pārslēdz vai veic divkāršu darbību ķēdē, kad tiek dots spiediens.

Parasti, ja slēdzis ir atvienotā stāvoklī, tā divi vadi paliek izolēti tā, ka tapa, kas ir savienota ar zemi, izmantojot nolaižamo rezistoru, rada LOW vai loģisku 0 līmeni.

Nospiedušajā situācijā slēdzis īslaicīgi savieno abus vadus tā, lai tā vadi būtu pakļauti + 5 voltiem, padarot AUGSTU vai loģisku 1 līmeni pāri tiem.

Digitālo i / o pieslēgumu izolēšana no pārējām lietām var piespiest gaismas diodi iet vaļā un izraisīt neregulāru mirgošanu. Tas ir saistīts ar faktu, ka ievade netiek neko atveidota vai tiek turēta “piekārtajā” pozīcijā - tas nozīmē, ka tā nav norādīta kādai noteiktai loģikai, nedz augstai, nedz zemai (+ 5 V vai 0 V), tāpēc mēs izmantojam nolaižamais rezistors ar slēdzi.

Shematisks

Izpratne par kodeksu

Šajā zemāk esošajā programmā mēs sākam sērijveida saziņu iestatīšanas funkcijā ar ātrumu 9600 datu biti sekundē, tas tiek uzsākts starp Arduino dēli un pievienoto datoru: Serial.begin (9600)

Nākamajā solī mēs aktivizējam digitālo tapu 2, tapu, kas būtu atbildīga par izvadi, ar ievades spiedpogu: pinMode (2, INPUT) Tas pabeidz mūsu iestatīšanu, tagad mēs ieejam mūsu koda galvenajā cilpā .

Šeit, nospiežot spiedpogu, ir atļauts 5 volti iziet cauri mūsu ķēdei, savukārt ieejas tapa tiek savienota ar zemi caur 10 kilohm rezistoru, kad tas ir nesaspiests.

Iepriekš mēs saucam par digitālo ieeju, kas attiecas uz stāvokli, kad slēdzis var būt tikai noteiktā stāvoklī vai nu ieslēgtā stāvoklī (Arduino pieņemts kā '1', vai LOGIC HIGH) vai izslēgtā stāvoklī (vizualizēts) Arduino kā “0” vai “LOGIC LOW”), starp kuriem nav citu nenoteiktu datumu.

Galvenā darbība, kas mums jāveic programmas galvenajā ciklā, ir mainīgā izmantošana, lai saglabātu informāciju, kas nosūtīta, izmantojot spiedpogu.

Kā iepriekš tika apspriests, kad signāli ir vai nu “1”, vai “0”, mēs šeit izmantojam int datu tipu. Mēs varam nosaukt šo mainīgo kā sensorValue un salabot tā, lai tas atbilstu visam, kas tiek lasīts 2. digitālajā tapā. Tie visi ir sasniedzami, izmantojot vienu koda rindiņu:

int sensorValue = digitalRead (2) Kad Arduino ir izlasījis ievadi, izdrukājiet to atpakaļ datorā decimāldaļas formā.

To var īstenot ar komandas Serial.println () palīdzību koda noslēdzošajā rindiņā: Serial.println (sensorValue)

Pēc tam, kad sērijveida monitors tiek aktivizēts Arduino domēnā, mēs redzēsim “0” ķēdi laikā, kad spiedpoga ir atvērta, un ķēdes “1” gadījumos, kad poga tiek turēta slēgtā stāvoklī.

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




Pāri: Pielāgots ūdens plūsmas kontrolieris ar taimera ķēdi Nākamais: Analogā konvertēšana uz digitālo (analogā nolasītā sērija) - Arduino pamati