Ове основе Ардуина разматрају методу примене кода кроз који се може укључити или искључити стање спољног дугмета у Ардуину или надгледати.
Дигитални серијски читач
Овде кроз пример учимо како надгледати стање прекидача извођењем серијске комуникације преко вашег Ардуина и рачунара путем УСБ-а.
Поред Ардуино плоче, потребне су вам следеће основне ставке:
Хардвер
Тренутни прекидач, дугме или прекидач притисни за укључивање
Отпорник од 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
}
Претходни: Прилагођени контролер протока воде са кругом тајмера Следеће: Претварање аналогног у дигитално (аналогно серијско читање) - Основе Ардуина