Всем привет! Сегодня мы поговорим с вами об условном операторе ifв контексте программирования платы ardiuno uno. Тема условных операторов уже освещалась на сайте, кто не читал, советую ознакомиться.
Кроме конструкции условного оператора if
или if-else
также используется структура else-if. С помощью этой конструкции программа будет проверять следующее условие на предмет истинности, если предыдущее условие ложное:
В качестве примера, рассмотрим следующую задачу:
Программа считывает значения с аналогового вывода (пина) платы ардуино уно и сравнивает его со значением, что присвоено переменной attentionLimit (с англ. порог сигнализации). В случае, если считываемое значение выше заложенного, светодиод включается.
Для того, чтобы выполнить практическую часть проекта, нам понадобится:
- Плата Arduino Uno;
- 1 переменный/подстроечный резистор (далее – ПР);
- 3 резистора на 220 Ом;
- 3 светодиода (зеленый, красный, белый);
- Джамперы.
Схема подключения
Рассмотрим алгоритм работы программы.
Переменная analogValueFromResistant принимает значения полученные в результате считывания данных с аналогового вывода (пина) A0, к которому подключен средняя нога ПР. Как писал ранее, значение, что присваивается переменной analogValueFromResistant сравнивается со значением переменной attentionLimit, которое мы задали при написании программы. В случае, когда значение analogValueFromResistant будет превышать значение переменной attentionLimit, светодиод, что подключен на 9 вывод (пин) платы будет включатся. Если же считанное значение будет меньше сравниваемого, светодиод останется в выключенном состоянии или выключится, если до этого был включён.
С включением одного светодиода разобрались. Доработаем схему, добавив два светодиода и два резистора. Вращая вал ПР, мы будем включать один из трех светодиодов. Для реализации данной задачи воспользуемся конструкцией условного оператора else-if.
Программа будет сравнивать считываемое значение с заданными пределами:
- от 0 (min) до 400 – включается зеленый светодиод (выполняется первое условие);
- от 400 до 800 – включается красный светодиод (не выполняется ни первого, ни второго условия);
- от 800 до 1023 (max) – включается белый светодиод (выполняется второе условие).
Урок 9
P.S. Красный светодиод включается при невыполнении первого и второго условия. То есть значение на аналоговом входе больше 400 (предел зеленого), но меньше 800 (предел белого).
На вопрос о «реальных знаниях» отвечу прямо — с картой памяти и работой с файлами ещё не сталкивался. В планах, на этой недели приобрести модуль SD карт для Arduino, и в плотную заняться данным вопросом.
дякую за відповідь. мені простіше було зробити картрідер. є купа китайских магнітол з розємом під картку. а далі ставиться дільники, і на 3.3в стабілізатор. карт памяті загалом теж чимало. єдина фігня великих карт пам’яті не бачить. 1-2 гб без проблем. для теста 4 засунув. 4 гб 4 класу вже не побачив. з екранами працював, з датчиками працював, з шаговими движками працював. RTC, акселерометр, карта пам’яті, і серво движки, GSM, GPS, і звуковими картами ще не стикався. якось не було потреби
питання на засипку. а реальні знання оп ардуіні в наявності ? воюю з SD карткою. не можу «построчно» виводити дані з файла. зчитав рядок, відправив в порт, і чекаю відповіді. зчитування дампа файла працює але призупинити потік даних не виходить.
жаба давить купувати готовий блок до станка. намагаюсь написати.
питання не актуальне. далі буду баги виправляти