Программирование Arduino урок 9 — условный оператор if-else

Всем привет! Сегодня мы поговорим с вами об условном операторе 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 (предел белого).

Картотека программирования

>Купить в подарок или заказать уникальную вещь<


ПОДЕЛИТЕСЬ С ДРУЗЬЯМИ!


About alexlevchenko

Ценю в людях честность и открытость. Люблю мастерить разные самоделки. Нравится переводить статьи, ведь кроме того, что узнаешь что-то новое - ещё и даришь другим возможность окунуться в мир самоделок.

4 Replies to “Программирование Arduino урок 9 — условный оператор if-else”

  1. На вопрос о «реальных знаниях» отвечу прямо — с картой памяти и работой с файлами ещё не сталкивался. В планах, на этой недели приобрести модуль SD карт для Arduino, и в плотную заняться данным вопросом.

    1. дякую за відповідь. мені простіше було зробити картрідер. є купа китайских магнітол з розємом під картку. а далі ставиться дільники, і на 3.3в стабілізатор. карт памяті загалом теж чимало. єдина фігня великих карт пам’яті не бачить. 1-2 гб без проблем. для теста 4 засунув. 4 гб 4 класу вже не побачив. з екранами працював, з датчиками працював, з шаговими движками працював. RTC, акселерометр, карта пам’яті, і серво движки, GSM, GPS, і звуковими картами ще не стикався. якось не було потреби

  2. питання на засипку. а реальні знання оп ардуіні в наявності ? воюю з SD карткою. не можу «построчно» виводити дані з файла. зчитав рядок, відправив в порт, і чекаю відповіді. зчитування дампа файла працює але призупинити потік даних не виходить.
    жаба давить купувати готовий блок до станка. намагаюсь написати.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

* Copy This Password *

* Type Or Paste Password Here *