Надгледање стања прекидача (дигитални серијски читач) - Ардуино основа

Испробајте Наш Инструмент За Елиминисање Проблема





Ове основе Ардуина разматрају методу примене кода кроз који се може укључити или искључити стање спољног дугмета у Ардуину или надгледати.

Дигитални серијски читач

Овде кроз пример учимо како надгледати стање прекидача извођењем серијске комуникације преко вашег Ардуина и рачунара путем УСБ-а.



Поред Ардуино плоче, потребне су вам следеће основне ставке:

Хардвер

Тренутни прекидач, дугме или прекидач притисни за укључивање



Отпорник од 10 к, 1/4 вата

плоча за хлеб
спојне или краткоспојне жице.

Цирцуит Оператион

Операција се може извршити у следећим корацима:

Узмите 3 комада краткоспојних жица и закачите их својом Ардуино плочом. Две жице, црвена и црна, иду у два дуга вертикална реда на бочној страни плоче која постају напојни каблови плоче како би носили потребно 5В једносмерне струје на плочу.

Трећа жица се користи за повезивање дигиталног пина 2 на један од проводника прекидача пусх-то-ОН.

Овај одређени кабл дугмета такође се повезује са падајућим отпорником од 10 к за негативну доводну шину или земљу. Други слободни кабел прекидача повезан је са позитивним напоном од 5 волти.

Са горе наведеним везама, прекидач пребацује или изводи двоструку акцију у колу када се притисне.

Обично када је прекидач у неповезаном положају, његова два кабла остају изолована, тако да иглица која је повезана са земљом преко падајућег отпора даје НИЗАК ниво или ниво логике 0.

У притиснутој ситуацији, прекидач на тренутак изврши премошћивање своја два кабла, тако да су његови каблови подвргнути + 5 волти, што даје ВИСОКИ или логички ниво 1 преко њих.

Изолација дигиталних улазно / излазних извода из остатка ствари може довести до тога да ЛЕД диода нестане и проузрокује неуобичајено трептање. То је због чињенице да улаз није ни на шта приказан нити је задржан у „висећем“ положају - што значи да није назначен никаквом одређеном логиком, ни високом ни ниском (+ 5 В или 0 В), то је разлог зашто користимо падајући отпорник са прекидачем.

Шема

Разумевање кодекса

У следећем програму испод, започињемо са серијском комуникацијом у оквиру функције подешавања брзином од 9600 битова података у секунди, то се покреће између плоче Ардуино и прикљученог рачунара: Сериал.бегин (9600)

У следећем кораку покрећемо дигитални пин 2, пин који би био одговоран за излаз помоћу прекидача као улаза: пинМоде (2, ИНПУТ) Ово завршава наше „подешавање“, сада упловљавамо у главну петљу нашег кода .

Овде се притиском на дугме дозвољава 5 волти да прође кроз наш круг, док се улазни пин повезује са земљом кроз отпорник од 10 килохм када је у притиснутом стању.

Горе наведено називамо дигиталним улазом, што се односи на стање када прекидач може бити само у одређеном стању или у стању укључености (Ардуино га прихвата као '1', или ЛОГИЦ ХИГХ) или у стању искључености (визуелизовано Ардуино као '0' или ЛОГИЦ ЛОВ), без икаквих других недефинисаних држава између.

Основна радња коју треба да извршимо у главној петљи програма је примена променљиве за задржавање информација на месту које су послате путем дугмета.

Као што је горе речено са сигналима који су у облику „1“ или „0“, овде користимо инт тип података. Ову променљиву можемо назвати сенсорВалуе и поправити је тако да одговара свему што се чита на дигиталном пину 2. Све ово постаје оствариво у једном реду кода:

инт сенсорВалуе = дигиталРеад (2) Након што Ардуино прочита улаз, одштампајте га назад на рачунар у облику децималне вредности.

То се може имплементирати уз помоћ наредбе Сериал.принтлн () у завршној линији кода: Сериал.принтлн (сенсорВалуе)

Након тога, кад год се серијски монитор покрене у Ардуино домену, били бисмо сведоци ланца „0“ док је тастер отворен и ланци „1“ у случају да се дугме држи у затвореном стању.

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




Претходни: Прилагођени контролер протока воде са кругом тајмера Следеће: Претварање аналогног у дигитално (аналогно серијско читање) - Основе Ардуина