Arduino switch case пример

Оператор Switch

Подобно конструкции if, switch. case управляет процессом выполнения программы, позволяя программисту задавать альтернативный код, который будет выполняться при разных условиях. В частности, оператор switch сравнивает значение переменной со значением, определенном в операторах case. Когда найден оператор case, значение которого равно значению переменной, выполняется программный код в этом операторе.

Ключевое слово break является командой выхода из оператора case и обычно используется в конце каждого case. Без оператора break оператор switchбудет продолжать вычислять следующие выражения, пока не достигнет break или конец оператора switch.

Пример
Синтаксис:
Параметры:
  • var: переменная, которая вычисляется для сравнения с вариантами в case
  • label: значение, с которым сравнивается значение переменной
Смотреть также:

Авторизация

Примеры

Изменяем яркость светодиода — плавное изменение яркости светодиода функцией analogWrite().

Мигаем светодиодом — пример подключения светодиода к Arduino и работы с ним

Тактовая кнопка — считывание состояния кнопки

Мигаем светодиодом без delay() — еще один, более практичный способ мигать светодиодом

Доброго времени суток!

Скетчи в среде разработки Arduino IDE, равно, как и программы на других языках, выполняются так же, как большинство из нас читает художественную книгу: слева направо и сверху вниз. Такие программы называются линейными являются очень простыми и очень быстро подходят к концу. Команды в таких программах выполняются друг за дружкой несмотря ни на что. Вот пример такой программы:

pinMode(13, OUTPUT); // назначаем 13-ю ножку на выход
digitalWrite(13, HIGH); // устанавливаем высокий уровень на 13-й ножке
delay(2000); // ждем 2 секунды
digitalWrite(13, LOW); // устанавливаем низкий уровень на 13-й ножке

Читайте также:  Gremlins inc coop land

В ходе выполнения этой программы загорится светодиод на плате и через 2 секунды потухнет. Не думаю, что ради такой простой задачи, стоит приобретать плату на базе МК ATMega 328P — есть и более простые способы ее решения. Тот же таймер 555, но речь пойдет не об этом.
Что же такое программа в целом? Для себя, после чтения разных книжек, я уяснил, что программа — это структура данных + алгоритм их обработки. Алгоритм — это, в свое время, описание действий программы, в зависимости от изменяющихся условий или задумок программиста. Чтобы изменить естественный ход выполнения программы, существует несколько конструкций:
— операторы выбора (if/else, switch/case);
— операторы цикла (for, while, do/while);
— оператор условного присваивания (?);
— вызов подпрограммы (функции);
— (честное слово, просто для коллекции!) переход к метке (goto);
— прерывания (attachInterrupt, detachInterrupt).
Те, кто знаком с устройством программной кухни Arduino, скажет, что в 4-х строчках "линейной" программы я слукавил читателям 5 раз и будет прав. Прочтя эту статью, я надеюсь, что большинство увидит, почему так произошло.
Если я что-то пропустил, поправьте меня в комментариях.
А пока давайте побеседуем об вышеперечисленных управляющих конструкциях.

Об операторе выбора if/else я уже писал и довольно развернуто, поэтому повторяться не буду. А вот рассказать про конструкцию switch/case считаю нужным.
Синтаксис этого оператора выглядит так.

Содержание

Использование оператора Switch при считывании данных от датчика [1]

Оператор if() позволяет создать ситуацию, которая может разрешиться только двумя вариантами – TRUE или FALSE. Однако порой требуется создать не два варианта, а больше, и тут можно воспользоваться несколькими операторами if(), но есть и другой способ – применить оператор switch(). Данный же урок продемонстрирует, как при помощи оператора switch() определять одно из четырех состояний фоторезистора – «темно», «тускло», «средняя яркость» и «очень ярко».

Читайте также:  Гибернация на ноутбуке при запуске что это

В этом примере сначала программа будет считывать данные от фоторезистора. Затем она воспользуется функцией map(), чтобы раздробить полученные данные на четыре отрезка/значения: 0, 1, 2 и 3. Наконец, она использует оператор switch(), чтобы вывести на компьютер одно из четырех сообщений – в зависимости от того, какое из четырех значений будет возвращено функцией analogRead(). То есть, по сути, в финале программа выведет на компьютер информацию о том, какую степень яркости «чувствует» фоторезистор.

Необходимое оборудование

  • Плата Arduino;
  • Фоторезистор (или другой аналоговый датчик);
  • Один 10 кОм резистор;
  • Макетная плата Breadboard;
  • Провода-перемычки;

Фоторезистор подключен к 0-ому входному аналоговому и 5-вольтовому контактам по принципу делителя напряжения. С другой стороны к нему подсоединен 10000-омовый резистор, который тоже подключен к 0-ому аналоговому контакту и «земле». Функция analogRead() будет возвращать из этой цепи данные в диапазоне от 0 до 600. Сам урок должен проходить в достаточно освещенном помещении.