Статья 2.3: Условные операторы и циклы
🔀 Условные операторы (if-else)
Условный оператор — это "развилка" в программе. В зависимости от условия программа идет по разным путям.
[Начало]
│
▼
[Условие?]
/ \
/ \
Да/ \Нет
/ \
▼ ▼
[Действие 1] [Действие 2]
💻 Примеры условных операторов:
Условные операторы и циклы в Arduino
1. Оператор if (если)
int temperature = 30;
void loop() {
if (temperature > 25) {
// Если температура больше 25
digitalWrite(ledPin, HIGH); // Включить светодиод
}
}
void loop() {
if (temperature > 25) {
// Если температура больше 25
digitalWrite(ledPin, HIGH); // Включить светодиод
}
}
2. Оператор if-else (если-иначе)
int buttonState = digitalRead(2);
if (buttonState == HIGH) {
// Если кнопка нажата
Serial.println("Кнопка нажата!");
} else {
// Если кнопка не нажата
Serial.println("Кнопка отпущена");
}
if (buttonState == HIGH) {
// Если кнопка нажата
Serial.println("Кнопка нажата!");
} else {
// Если кнопка не нажата
Serial.println("Кнопка отпущена");
}
3. Операторы сравнения:
| Оператор | Значение | Пример |
|---|---|---|
== | равно | x == 5 |
!= | не равно | x != 5 |
> | больше | x > 5 |
< | меньше | x < 5 |
>= | больше или равно | x >= 5 |
<= | меньше или равно | x <= 5 |
4. Циклы - оператор for
// Мигаем светодиодом 5 раз
for (int i = 0; i < 5; i++) {
digitalWrite(ledPin, HIGH);
delay(500);
digitalWrite(ledPin, LOW);
delay(500);
}
// i = 0, 1, 2, 3, 4 (5 раз)
for (int i = 0; i < 5; i++) {
digitalWrite(ledPin, HIGH);
delay(500);
digitalWrite(ledPin, LOW);
delay(500);
}
// i = 0, 1, 2, 3, 4 (5 раз)
5. Циклы - оператор while
int counter = 0;
// Повторять пока счетчик меньше 10
while (counter < 10) {
Serial.println(counter);
counter++;
}
// Повторять пока счетчик меньше 10
while (counter < 10) {
Serial.println(counter);
counter++;
}
🎯 Практический проект: Светофор
int redPin = 9;
int yellowPin = 10;
int greenPin = 11;
void setup() {
pinMode(redPin, OUTPUT);
pinMode(yellowPin, OUTPUT);
pinMode(greenPin, OUTPUT);
}
void loop() {
// Красный свет (5 секунд)
digitalWrite(redPin, HIGH);
digitalWrite(greenPin, LOW);
delay(5000);
// Желтый свет (2 секунды)
digitalWrite(yellowPin, HIGH);
digitalWrite(redPin, LOW);
delay(2000);
// Зеленый свет (5 секунд)
digitalWrite(greenPin, HIGH);
digitalWrite(yellowPin, LOW);
delay(5000);
}
int yellowPin = 10;
int greenPin = 11;
void setup() {
pinMode(redPin, OUTPUT);
pinMode(yellowPin, OUTPUT);
pinMode(greenPin, OUTPUT);
}
void loop() {
// Красный свет (5 секунд)
digitalWrite(redPin, HIGH);
digitalWrite(greenPin, LOW);
delay(5000);
// Желтый свет (2 секунды)
digitalWrite(yellowPin, HIGH);
digitalWrite(redPin, LOW);
delay(2000);
// Зеленый свет (5 секунд)
digitalWrite(greenPin, HIGH);
digitalWrite(yellowPin, LOW);
delay(5000);
}
×
Комментарии (0)
Комментариев пока нет. Будьте первым!
Оставить комментарий