While arduino: while — Arduino Reference

While — — Проект модульной электроники Arduino

В этом эксперименте мы изучим еще одно логическое условие, которое даст нам больше возможностей для программирования.

!Важная информация

Давайте познакомимся с инструкцией while , одной из самых интересных доступных структур программирования. Вы можете не замечать, но она присутствует в нашей жизни. Например: пока вы очень спите, вы должны спать. Пока вы еще голодны, ешьте.

Как и если , объявление требует завершения двух компонентов: условие остановки и последствие . Логика while() работает следующим образом:

Пока условие остановки не выполняется, последствие запускает повторно . Только когда достигается условие остановки, программа выходит из цикла while() и переходит к остальным инструкциям программы. Можно сказать, что путь while() работает аналогично функции loop() , с той разницей, что функция loop() не имеет условия остановки, то есть «работает вечно».

!Идентификация компонентов

!Компоненты кода

Выполнение условия : while( [условие остановки] ) { [последствие] };

Анатомия в то время как :

 в то время как(Это не выходные)
{
  Работа с 06:00 до 18:00
}
 

Это значит, что пока не выходные, надо работать.

Условие останова может быть любым типом объявления, которое можно оценить как истинное или ложное. Чтобы построить эти условные объявления, мы обычно используем операторы сравнения, как уже объяснялось в эксперименте if .

!Работа на Arduino

Приведенный ниже код включает желтый светодиод, когда ПРАВАЯ кнопка не нажата.

// Контакт, подключенный к кнопке
кнопка intPin = A0;
// Переменная для проверки состояния кнопки
состояние кнопки int;
// Сопоставление светодиодов с соответствующими выводами
инт желтый светодиод = A1;

недействительная установка ()
 {
 // Инициализируем контакт светодиода как выход
 pinMode (желтый светодиод, ВЫХОД);
 // Определяем контакт кнопки как вход
 pinMode(кнопкаPin, ВВОД);
}

недействительный цикл () {
 
 // Проверяем, изменилось ли состояние кнопки
 buttonState = AnalogRead(buttonPin);
 // Убираем шум
 состояние кнопки = 1023;
 // Пока никакая кнопка не нажата, считывает снова
 в то время как (buttonState >
= 897) { // Включает желтый светодиод цифровая запись (желтый светодиод, ВЫСОКИЙ); buttonState = AnalogRead(buttonPin); } если (buttonState < 897) { // если нажата ПРАВАЯ кнопка пока (buttonState < 69) { // Выключает желтый светодиод digitalWrite (желтый светодиод, НИЗКИЙ); buttonState = AnalogRead(buttonPin); } } }

!Твоя очередь!

Попробуйте изменить код так, чтобы загорался зеленый светодиод и звучал зуммер.

Ответить

//Пин, подключенный к кнопке
кнопка intPin = A0;
//Пин, подключенный к зуммеру
внутренний зуммер = 5;
//Переменная для проверки состояния кнопки
состояние кнопки int;
// Сопоставление светодиодов с соответствующими выводами
инт желтый светодиод = A1;
инт зеленый светодиод = A2;

недействительная установка ()
 {
 // Инициализирует каждый вывод светодиода как выход
 pinMode (желтый светодиод, ВЫХОД);
 pinMode (зеленый светодиод, ВЫХОД);
 // Определяем вывод зуммера как выход
 pinMode (зуммер, ВЫХОД);
 // Определяем контакт кнопки как вход
 pinMode(кнопкаPin, ВВОД);
}

недействительный цикл () {
 
 // Проверяем, изменилось ли состояние кнопки
 buttonState = AnalogRead(buttonPin);
 // Убираем шумы
 состояние кнопки = 1023;
 // Пока ни одна кнопка не нажата, считывает снова
 в то время как (buttonState >
= 897) { // Включает желтый светодиод цифровая запись (желтый светодиод, ВЫСОКИЙ); цифровая запись (зеленый светодиод, НИЗКИЙ); buttonState = AnalogRead(buttonPin); } если (buttonState < 897) { // Если нажата ПРАВАЯ кнопка пока (buttonState < 69) { //выключает желтый светодиод digitalWrite (желтый светодиод, НИЗКИЙ); цифровая запись (зеленый светодиод, ВЫСОКИЙ); // Заставляет зуммер воспроизводить музыкальную ноту G в Гц тон (зуммер, 392); задержка(200); noTone (зуммер); buttonState = AnalogRead(buttonPin); } } }

Arduino IDE: for loops против while/do while #6

Симоне Кандидо

Просмотры сообщений: 1318

Добро пожаловать в наш учебник по программированию с использованием Arduino IDE. Сегодня мы рассмотрим циклы for и их использование с циклами while и do while.

Вы можете ознакомиться с предыдущими главами курса здесь:

  • Arduino IDE: циклы while и do while #5
  • Arduino IDE: включить светодиоды с помощью кнопки (если) #4.1
  • Arduino IDE: условная конструкция IF #4
  • Arduino IDE: арифметические и логические операторы #3
  • Arduino IDE: переменные, константы и макросы #2
  • Как я могу использовать Arduino IDE для написания программы? #1
  • Arduino IDE: что это такое и как это работает #0

Когда вы пытаетесь решить проблему, вы можете иметь дело с алгоритмом, который повторяет некоторые инструкции во время выполнения. Если вы хотите добиться повторения группы инструкций в течение заданного количества циклов, вы можете использовать цикл

for .

Цикл for использует повторяющуюся структуру со счетчиком (или перечислительную итерацию). Эта структура позволяет повторять определенную группу утверждений на основе счетного числа раз вместо истинности условия.

Переменная называется счетчиком , потому что она имеет функцию подсчета количества повторений.

Синтаксис цикла for следующий:

for (int i=min; i<=max; i++){ повторный_код; }

for (int i=min; i<=max; i++){

    repeated_code;

}

Repeat_code внутри цикла for выполняется максимальное количество раз. Инструкции повторяются столько раз, сколько необходимо, чтобы счетчик i от начального значения (min) до конечного значения (max), увеличивая его на 1 при каждом повторении.

Счетчик должен быть объявленной переменной типа int. Объявление может быть помещено внутри цикла for или ранее.

Учтите, что если вы создадите экземпляр типа переменной внутри цикла for, как в предыдущем примере, срок жизни переменной будет ограничен временем выполнения цикла, а переменная будет уничтожена в конце цикла. Если вам нужна более постоянная переменная, существующая вне цикла, вы должны вместо этого применить следующий синтаксис:

инт я; для (я=мин; я<=макс; я++){ повторный_код; } // Здесь вы можете повторно использовать переменную i

1

2

3

4

5

6

инт я;

for (i=min; i<=max; i++){

    repeated_code;

}

 

// Здесь вы можете повторно использовать переменную i

Но что происходит внутри цикла for? Как дела? Синтаксис можно схематизировать следующим образом, чтобы лучше понять характеристики:

for (инициализация; условие; итерация){ инструкции; }

для (инициализация; условие; итерация){

    инструкции;

}

Выражения инициализации, условия и итерации должны быть разделены точкой с запятой (;).

Первое выражение состоит из Инициализации: эта операция выполняется только один раз, когда запускается цикл for.

Второе выражение состоит из условия(ий): когда условие(я) истинно, код будет выполнен.

Третье выражение основано на итеративном счетчике: обычно это инструкция, которая увеличивает или уменьшает счетчик. Когда (второе) условие становится ложным, инструкции внутри блока цикла не будут выполняться, и программа выйдет из цикла.

Обратите внимание, что предложение условия является динамическим и зависит от значения счетчика: счетчик автоматически обновляется в каждом цикле цикла.

Третье предложение обычно обновляется на 1 в каждом цикле, но это не всегда так: мы можем видеть счетчики итераций, работающие на разных шагах, как положительных, так и отрицательных.

Управление повторением инструкций с использованием счетчика может быть достигнуто эквивалентным способом с использованием постусловной структуры повторения (do … while) или предусловной структуры (пока).

Структура for компактнее и проще для представления, чем структура while, если мы заранее знаем, сколько раз нам нужно повторить инструкции внутри цикла.

На самом деле, в принципе, любой алгоритм, использующий цикл for, может быть транскрибирован в форму, использующую только цикл while, и наоборот .

В следующей статье я представлю проект на Arduino с использованием RGB светодиода с программным изменением его цвета с помощью циклов. Вот черновик:

Предыдущие статьи:

  • Arduino IDE: циклы while и do while #5
  • Arduino IDE: включить светодиоды с помощью кнопки (если) #4.1
  • Arduino IDE: условная конструкция IF #4
  • Arduino IDE: арифметические и логические операторы #3
  • Arduino IDE: переменные, константы и макросы #2
  • Arduino IDE: как я могу использовать Arduino IDE для написания программы? #1
  • Arduino IDE: что это такое и как это работает #0

Подпишитесь на нас, чтобы быть в курсе новостей!

  • Пожертвовать
  • Ютуб
  • Блог
  • Фейсбук
  • Твиттер
  • Линкедин

Нравится:

Нравится Загрузка.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *