Мониторинг на състоянието на комутатор (цифров сериен четец) - Основи на Arduino

Опитайте Нашия Инструмент За Премахване На Проблемите





Тези основи на Arduino обсъждат метода за внедряване на код, чрез който състоянието ON или OFF на външен бутон може да бъде прочетено или наблюдавано в Arduino.

Цифров сериен четец

Тук научаваме чрез пример как да наблюдаваме състоянието на комутатора чрез извършване на серийна комуникация през вашия Arduino и вашия компютър чрез USB.



В допълнение към вашата дъска Arduino, ще изисквате следните основни елементи:

Хардуер

Моментален превключвател, бутон или превключвател за включване



10k, резистор 1/4 вата ома

макет
връзки за свързване или джъмпер.

Операция на веригата

Операцията може да се извърши със следните стъпки:

Вземете 3 парчета джъмперни проводници и ги закачете с вашата дъска Arduino. Два от проводниците, червен и черен, преминават към двата дълги вертикални реда отстрани на макетната плоча, които се превръщат в захранващи кабели на дъската, за да носят необходими 5V DC към платката.

Третият проводник се използва за свързване на цифровия щифт 2 към един от проводниците на превключвателя push-to-ON.

Този конкретен проводник на бутона също се свързва с падащ 10k резистор към отрицателната захранваща шина или земята. Другият свободен проводник на превключвателя е свързан с положителното захранване от 5 волта.

С направените по-горе връзки превключвателят превключва или изпълнява двойно действие във веригата при натискане.

Обикновено, когато превключвателят е в изключено положение, двата му проводника остават изолирани, така че щифтът, който е свързан със земята чрез падащия резистор, прави НИСКО или логическо ниво 0.

В натиснато положение превключвателят изпълнява моментно свързване на двата си извода, така че неговите изводи се подлагат на + 5 волта, което прави ВИСОКО или логическо ниво 1 през тях.

Изолирането на цифровите входно-изходни изводи от останалите неща може да принуди светодиода да изчезне и да предизвика нестабилно мигане. Това се дължи на факта, че входът не се визуализира за нищо или се държи в 'висящо' положение - което означава, че не е определен за някаква определена логика, нито висока, нито ниска (+ 5V или 0V), това е причината, поради която използваме падащ резистор с превключвателя.

Схематично

Разбиране на кодекса

В следващата програма по-долу започваме с последователна комуникация в рамките на функцията за настройка със скорост 9600 бита данни в секунда, което се инициира между платката Arduino и прикачения компютър: Serial.begin (9600)

В следващата стъпка задействаме цифров щифт 2, щифта, който ще отговаря за изхода с натискащия превключвател като вход: pinMode (2, INPUT) Това завършва нашата „настройка“, сега ние плаваме в основния цикъл на нашия код .

Тук при натискане на бутона се разрешава 5 волта да преминат през нашата верига, докато входният щифт се свързва със земята през 10-килограмовия резистор, когато е в натиснато състояние.

Горното е това, което ние наричаме цифров вход, което се отнася до състояние, при което превключвателят може да бъде само в определено състояние или включено състояние (прието от Arduino като „1“, или LOGIC HIGH) или изключено състояние (визуализирано от Arduino като „0“ или LOGIC LOW), без други неопределени държави между тях.

Основното действие, което трябва да изпълним в основния цикъл на програмата, е да приложим променлива за поддържане на информацията на място, изпратена чрез бутона.

Както беше обсъдено по-горе, като сигналите са под формата на „1“ или „0“, тук използваме тип данни int. Можем да наречем тази променлива като SensValue и да я коригираме, за да съответства на всичко, което се чете на цифров щифт 2. Всичко това става постижимо чрез един ред код:

int sensorValue = digitalRead (2) След като Arduino прочете входа, отпечатайте го обратно на компютъра под формата на десетична стойност.

Това може да бъде изпълнено с помощта на командата Serial.println () в заключителния ред на кода: Serial.println (sensorValue)

След това, всеки път, когато серийният монитор се инициира в домейна Arduino, ще станем свидетели на верига от „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
}




Предишна: Персонализиран контролер на водния поток с верига на таймера Напред: Преобразуване на аналогов в цифров (сериен аналогов прочит) - Основи на Arduino