Arduino:Примеры/IfStatement
Содержание | Знакомство с 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