Arduino:Примеры/IfStatement: различия между версиями
Myagkij (обсуждение | вклад) м (Замена текста — «<syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS">» на «<syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS" enclose="div">») |
Myagkij (обсуждение | вклад) Нет описания правки |
||
Строка 135: | Строка 135: | ||
<references /> | <references /> | ||
{{Навигационная таблица/Справочник языка Arduino}} | |||
{{Навигационная таблица/Arduino библиотеки}} | |||
{{Навигационная таблица/Телепорт}} | |||
[[Категория:Пример]] | [[Категория:Пример]] | ||
[[Категория:Примеры]] | [[Категория:Примеры]] | ||
[[Категория:Пример программирования Arduino]] | [[Категория:Пример программирования Arduino]] | ||
[[Категория:Примеры программирования Arduino]] | [[Категория:Примеры программирования Arduino]] |
Версия от 16:07, 5 декабря 2021
Содержание | Знакомство с Arduino | Продукты | Основы | Справочник языка Arduino | Примеры | Библиотеки | Хакинг | Изменения | Сравнение языков Arduino и Processing |
Оператор If (оператор условия) [1]
Оператор if() – это фундаментальная основа управления программой. С его помощью можно задать, случится или нет то или иное событие в зависимости от того, соответствуют ли текущие условия заданным вами параметрам. Выглядит он следующим образом:
if (someCondition) {
// в этой секции делаем что-либо, если заданное условие верно
}
Существует и другая вариация – if-else (т.е. «если да, то...» и «а если нет, то...»), которая выглядит следующим образом:
if (someCondition) {
// в этой секции делаем что-либо, если заданное условие верно
} else {
// в этой секции делаем что-либо, если заданное условие не верно
}
Или вот еще одна вариация с if-else, где проверяется второе условие (на тот случай, если первое не верно):
if (someCondition) {
// в этой секции делаем что-либо, если заданное условие верно
} else if (anotherCondition) {
// в этой секции делаем что-либо, если первое условие не верно,
// а второе верно.
Оператор if() используется повсеместно. В примере ниже мы будем включать светодиод на 13-ом контакте (впрочем, на многих Arduino светодиод к 13-ому контакту подключен по умолчанию), если значение, считанное на входном аналоговом контакте, будет превышать определенный порог.
Необходимое оборудование
- Плата Arduino;
- Потенциометр или другой регулируемый резистор;
- 220-омовый резистор;
- Светодиод;
- Провода-перемычки;
Цепь
Схема
Код
В примере ниже переменная analogValue используется для хранения данных, считанных от потенциометра, который подключен к 0-ому аналоговому контакту на Arduino (analogPin 0). Затем эти данные сравниваются с заданным порогом. Если значение analogValue будет выше этого порога, то светодиод на 13-ом контакте загорится, а если меньше, то так и останется в выключенном состоянии.
/*
Условия – оператор If
Этот пример демонстрирует использование оператора if().
Он считывает состояние потенциометра (подключенного к входному аналоговому контакту),
а затем либо включает светодиод
(если значение от потенциометра превысило определенный порог),
либо нет (если не превысило).
Независимо от результата выводит данные на Serial Monitor.
Цепь:
* потенциометр подключен к 0-ому аналоговому контакту
(т.е. центральный контакт потенциометра – к аналоговому контакту,
боковые – к 5 вольтам и «земле»).
* светодиод подключен к 13-ому цифровому контакту и «земле»
* Примечание: на большинстве Arduino уже имеется светодиод,
подключенный к 13-ому контакту;
поэтому, если у вас именно такая плата,
то вам дополнительного светодиода не требуется.
Создан 17 января 2009,
модифицирован 9 апреля 2012 Томом Иго (Tom Igoe).
Этот код не защищен авторским правом.
http://arduino.cc/en/Tutorial/IfStatement
*/
// Здесь вписываем константы. Это значения, которые не изменятся:
const int analogPin = A0; // контакт, к которому подключен потенциометр
const int ledPin = 13; // контакт, к которому подключен светодиод
const int threshold = 400; // произвольный «порог чувствительности»,
который должен находиться в диапазоне значений,
которые можно считать с аналогового контакта
void setup() {
// делаем контакт светодиода выходным контактом:
pinMode(ledPin, OUTPUT);
// инициализируем последовательную передачу данных:
Serial.begin(9600);
}
void loop() {
// считываем значение потенциометра:
int analogValue = analogRead(analogPin);
// если данные, считанные с аналогового датчика (т.е. с потенциометра),
// выше заданного порога, включаем светодиод:
if (analogValue > threshold) {
digitalWrite(ledPin, HIGH);
}
else {
digitalWrite(ledPin,LOW);
}
// выводим на Serial Monitor данные, считанные с аналогового контакта:
Serial.println(analogValue);
delay(1); // делаем задержку между считываниями – для стабильности программы
}
См.также
- if()
- if...else
- analogRead()
- digitalWrite()
- serial.begin()
- serial.print()
- For Loop
- While Loop
- Switch Case
- Array
Внешние ссылки
- Страницы с устаревшим атрибутом подсветки синтаксиса «enclose»
- Страницы, использующие повторяющиеся аргументы в вызовах шаблонов
- Справочник языка Arduino
- Arduino
- Перевод от Сubewriter
- Проверка:myagkij
- Оформление:myagkij
- Редактирование:myagkij
- Страницы, где используется шаблон "Навигационная таблица/Телепорт"
- Страницы с телепортом
- Пример
- Примеры
- Пример программирования Arduino
- Примеры программирования Arduino