Arduino – Серийно Прочитане на Цифрова Информация

Източник:  arduino.cc

Превел: Т.Б.

Този пример Ви показва, как да проследявате състоянието на ел.ключ (прекъсвач), чрез установяването на „серийна“ (или още последователна) комуникация между Arduino и компютърът Ви посредством USB (Universal Serial Bus).

–> ХАРДУЕРНИ ИЗИСКВАНИЯ:

  • Платка Arduino
  • Бутон Без-задържане
  • Резистор 10 kΩ
  • Тестова платка (Breadboard)
  • Мостови проводници

–> СХЕМА:

* Изображението е създадено чрез Fritzing. За повече примери на схеми, посете страницата на проекта.

Свържете трите проводника към платката Arduino. Първите два, червеният и черния, свържете към дъргите вертикални редове от страната на тестовата платка, за да осигурите достъп до захранване 5V и маса.

Третият проводник свързва цифровият „Извод-2“ към едното краче на бутона. Същият извод на бутона се свързва към „изтеглящ“ (pull-down) резистор (в случая 10 kΩ) към земя.

Другото краче на бутона се свързва към захранването 5V.

Бутоните без-задържане или ключовете свързват два възела в електрическата схема, когато ги натиснете. Когато бутона е отворен (ненатиснат) несъществува ел.връзка между изводите му, затова извода на бутона се свързва към маса (GND) /през изтеглящ резистор/ и това състояние се прочита като „ниско“ или „лог.0“.

Когато бутона е затворен (натиснат), той осъществява ел.контакт между изводите си, свързвайки крачето към 5V, тогава състоянието се прочита като „високо“ или „лог.1“.

Ако прекъснете цифровият входно/изходен порт от всичко, светодиода може да премигва непостоянно. Това е така, тъй като входа в този случай е „плаващ“ (неустановен) – тоест, неразполага със здрава връзка към захранване или маса, затова ще сменя произволно нивата си високо/ниско.

Точно поради тази причина се нуждаем от изтеглящи (pull-down) резистори в схемата ни.

–> СХЕМА:

–> КОД:

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

Serial.begin(9600);

След което, инициализирате (зареждате) цифровият „Извод-2“, портът който ще прочита изходното състояние на бутона, като вход:

pinMode(2,INPUT);

След като вашата setup() функция е изпълнена, се преместваме в основният цикъл на вашата програма. Когато вашият бутон е натиснат, 5V ще преминат свободно през схемата,  и когато не е натиснат, входния порт ще е бъде свързан с маса през 10kΩ резистор.

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

Първото нещо, което трябва да направите в основният цикъл на вашата програма е да създадете (установите) променлива, която да съхранява постъпващата от бутона информация. Тъй като информацията идваща от ключа ще бъде „1“-ца или „0“-ла, вие може да използвате тип за информацията integer.

Повикваме тази променлива sensorValue, и в нея записваме (установяваме) каквото е било прочетено от цифровия „Извод-2“.

Всичко това Вие можете да постигнете само с един единствен ред от код:

int sensorValue=digitalRead(2);

Веднъж щом Arduino е „прочел“ входа, накарайте го да отпечата тази информация обратно към компютъра като десетична стойност (decimal).

Можете да направите това чрез командата  Serial.println()  в нашият последен ред от код:

Serial.print(sensorValue, DEC);

Сега когато отворите Serial Monitor в Arduino средата, вие ще видите „поток“ от „0“-ли ако ключа Ви е отворен и „1“-ци ако ключа е затворен.