Jungiklio būklės stebėjimas (skaitmeninė skaitymo serija) - „Arduino“ pagrindai

Išbandykite Mūsų Instrumentą, Kaip Pašalinti Problemas





Šiame „Arduino“ pagrinde aptariamas kodo, per kurį „Arduino“ galima skaityti ar stebėti išorinio mygtuko įjungimo arba išjungimo būseną, įgyvendinimo metodas.

Skaitmeninis skaitymo serialas

Čia mes sužinome pavyzdį, kaip stebėti jungiklio būseną, atliekant nuoseklų ryšį per „Arduino“ ir kompiuterį per USB.



Nepaisant jūsų „Arduino“ lentos, jums reikės šių pagrindinių elementų:

Aparatinė įranga

Trumpalaikis jungiklis, mygtukas arba mygtukas „įjungti“



10k, 1/4 vatų omo rezistorius

Bandomoji Lenta
sujungimo arba trumpiklio laidų jungtys.

Grandinės valdymas

Operaciją galima atlikti atlikus šiuos veiksmus:

Paimkite 3 jungiamųjų laidų dalis ir prijunkite juos prie „Arduino“ lentos. Du laidai, raudoni ir juodi, eina į dvi ilgas vertikalias eilutes, esančias duonos lentos šone, kurios tampa lentos tiekimo laidais, kad būtų galima nešioti reikalinga 5 V nuolatinė srovė prie plokštės.

Trečiasis laidas naudojamas skaitmeniniam kaiščiui 2 prijungti prie vieno iš „push-to-ON“ jungiklio laidų.

Šis konkretus mygtuko laidas taip pat susiejamas su nuleidžiamu 10k rezistoriumi prie neigiamo tiekimo bėgio ar žemės. Kitas laisvas jungiklio laidas yra susietas su teigiama 5 voltų įtampa.

Atlikus pirmiau minėtas jungtis, jungiklis perjungia grandinę arba atlieka dvigubą veiksmą, kai jis paspaudžiamas.

Paprastai, kai jungiklis yra atjungtoje padėtyje, jo du laidai lieka izoliuoti taip, kad kaištis, sujungtas su žeme per ištraukiamą rezistorių, padarys LOW arba loginį 0 lygį.

Paspaudus situaciją, jungiklis akimirksniu sujungia du jo laidus taip, kad jo laidai veikiami + 5 voltų įtampa, o tai per HIGH arba logika 1.

Išskyrus skaitmeninius įvesties / išvesties kontaktus nuo kitų dalykų, LED gali būti priverstas pereiti į šipulį ir sukelti nepastovų mirksėjimą. Taip yra dėl to, kad įvestis niekam nepateikta arba laikoma „kabančioje“ padėtyje - tai reiškia, kad ji nėra paskirta jokiai apibrėžtai logikai, nei aukštai, nei žemai (+ 5 V arba 0 V), todėl mes naudojame ištraukiamas rezistorius su jungikliu.

Schema

Kodekso supratimas

Šioje toliau pateiktoje programoje mes pradedame nuoseklųjį ryšį sąrankos sąrankoje 9600 duomenų bitų per sekundę greičiu. Tai pradedama tarp „Arduino“ plokštės ir prijungto kompiuterio: „Serial.begin“ (9600)

Kitame etape mes įjungiame skaitmeninį kaištį 2, kaištį, kuris būtų atsakingas už išvestį, naudodamas stūmoklio jungiklį: pinMode (2, INPUT) Tai užbaigia mūsų „sąranką“, dabar mes plaukiame į pagrindinę savo kodo kilpą .

Čia paspaudus mygtuką, per 5 grandines leidžiama patekti per mūsų grandinę, o įvesties kaištis susiejamas su žeme per 10 kilohm rezistorių, kai jis yra nesuspaustas.

Aukščiau mes vadiname skaitmeniniu įėjimu, kuris reiškia sąlygą, kai jungiklis gali būti tik tam tikroje būsenoje arba įjungtoje būsenoje (kurią „Arduino“ priima kaip „1“, arba „LOGIC HIGH“), arba išjungtoje būsenoje (vizualizuota) „Arduino“ kaip „0“ arba „LOGIC LOW“), tarp jų nėra jokių kitų neapibrėžtų datų.

Pagrindinis veiksmas, kurį turime atlikti pagrindinėje programos cikle, yra taikyti kintamąjį, kad informacija būtų laikoma vietoje, kuri buvo siunčiama paspaudus mygtuką.

Kaip aptarta aukščiau, kai signalai yra „1“ arba „0“ formos, mes čia naudojame int duomenų tipą. Šį kintamąjį galime pavadinti „sensorValue“ ir pataisyti, kad jis atitiktų viską, kas skaitoma skaitmeniniame 2 smeigtuke. Visa tai pasiekiama per vieną kodo eilutę:

int sensorValue = digitalRead (2) Kai „Arduino“ perskaitys įvestį, atspausdinkite ją atgal į kompiuterį dešimtainės reikšmės pavidalu.

Tai galima įgyvendinti naudojant komandą Serial.println () kodo baigiamojoje eilutėje: Serial.println (sensorValue)

Po to, kai „Serdu Monitor“ bus įjungtas „Arduino“ srityje, mes matysime „0“ grandinę, kai mygtukas yra atidarytas, ir grandines „1“, jei mygtukas laikomas uždarytas.

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




Pora: Individualus vandens srauto valdiklis su laikmačio grandine Kitas: Analoginio konvertavimas į skaitmeninį (analoginio skaitymo seriją) - „Arduino“ pagrindai