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
Внешние ссылки
Arduino продукты | |
---|---|
Начальный уровень | Arduino Uno • Arduino Leonardo • Arduino 101 • Arduino Robot • Arduino Esplora • Arduino Micro • Arduino Nano • Arduino Mini • Arduino Starter Kit • Arduino Basic Kit • MKR2UNO • TFT-дисплей Arduino |
Продвинутые функции | Arduino Mega 2560 • Arduino Zero • Arduino Due • Arduino Mega ADK • Arduino Pro • Arduino Motor Shield • Arduino USB Host Shield • Arduino Proto Shield • MKR Proto Shield • MKR Proto Large Shield • Arduino ISP • Arduino USB 2 Serial Micro • Arduino Mini USB Serial Adapter |
Интернет вещей | Arduino Yun • Arduino Ethernet • Arduino MKR1000 • Arduino WiFi 101 Shield • Arduino GSM Shield V2 • Arduino WiFi Shield • Arduino Wireless SD Shield • Arduino Wireless Proto Shield • Arduino Ethernet Shield V2 • Arduino Yun Shield • Arduino MKR1000 Bundle |
Носимые устройства | Arduino Gemma • Lilypad Arduino Simple • Lilypad Arduino Main Board • Lilypad Arduino USB • LilyPad Arduino SimpleSnap |
3D-печать | Arduino Materia 101 |
Устаревшие устройства | - |
Примеры Arduino | |
---|---|
Стандартные функции | |
Основы |
|
Цифровой сигнал |
|
Аналоговый сигнал |
|
Связь |
|
Управляющие структуры |
|
Датчики |
|
Дисплей |
Примеры, объясняющие основы управления дисплеем:
|
Строки |
|
USB (для Leonardo, Micro и Due плат) |
В этой секции имеют место примеры, которые демонстрируют использование библиотек, уникальных для плат Leonardo, Micro и Due.
|
Клавиатура |
|
Мышь |
|
Разное |
- Страницы, использующие повторяющиеся аргументы в вызовах шаблонов
- Справочник языка Arduino
- Arduino
- Перевод от Сubewriter
- Проверка:myagkij
- Оформление:myagkij
- Редактирование:myagkij
- Страницы, где используется шаблон "Навигационная таблица/Телепорт"
- Страницы с телепортом
- Пример
- Примеры
- Пример программирования Arduino
- Примеры программирования Arduino