Arduino управление программой

February 2, 2012 by admin Комментировать »

if

Конструкция   if   проверяет,   будет   ли   выполнено   некое   условие,   такое,   как, например, будет ли аналоговое значение больше заданного числа, и выполняет какое-то выражение в скобках, если это условие true (истинно). Если нет, то выражение в скобках будет пропущено. Формат для if следующий:

if (someVariable ?? value)

{

что-нибудь сделаем;

}

Пример выше сравнивает someVariable со значением (value), которое может быть и переменной, и константой. Если выражение или условие в скобках истинно, выполняется выражение в фигурных скобках. Если нет, выражение в фигурных скобках пропускается, и программа выполняется с оператора, следующего за скобками.

Примечание: Остерегайтесь случайного использования «=», как в if (x = 10), что технически правильно, определяя x равным 10, но результат этого всегда true. Вместо этого используйте «==», как в if (x == 10), что осуществляет проверку значения x — равно ли оно 10 или нет. Запомните «=» – равно, а «==» – равно ли?

if…else

Конструкция if…else позволяет сделать выбор «либо, либо». Например, если вы хотите  проверить  цифровой  вход  и  выполнить  что-то,  если  он  HIGH,  или выполнить что-то другое, если он был LOW, вы должны записать следующее:

if (inputPin == HIGH)

{

}

else

{

}

делаемА;

делаемБ;

else может также предшествовать другой проверке if так, что эти множественные, взаимоисключающие проверки могут запускаться одновременно. И возможно даже неограниченное количество подобных else переходов. Хотя следует помнить, что только один набор выражений будет выполнен в зависимости от результата проверки:

if (inputPin < 500)

{

делаемА;

}

else if (inputPin >= 1000)

{

}

else

{

}

делаемБ;

делаемВ;

Примечание: Конструкция if просто проверяет, будет ли выражение в круглых скобках истинно или ложно. Это выражение может быть любым правильным, относительно языка Си, выражением, как в первом примере if (inputPin == HIGH). В этом примере if проверяет только то, что означенный вход в состоянии высокого логического уровня или действительно ли напряжение на нѐм 5 вольт.

for

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

for (инициализация; условие; выражение)

{

что-нибудь делаем;

}

«Инициализация» локальной переменной, или счѐтчика, имеет место в самом начале и происходит только один раз. При каждом проходе цикла проверяется

«условие». Если условие остаѐтся истинным, то следующее выражение и блок выполняются, а условие проверяется вновь. Когда условие становится ложным, цикл завершается.

Следующий пример начинается с целого i равного 0, проверяет, остаѐтся ли i ещѐ меньше 20, и, если так, увеличивает i на 1 и выполняет блок в фигурных скобках:

for (int i = 0; i < 20; i++)        // декларируем i, проверяем, меньше ли оно

// чем 20, увеличиваем i на 1

{

digitalWrite (13, HIGH);          // устанавливаем вывод 13 в ON

delay (250);                             // пауза в ¼ секунды digitalWrite (13, LOW);                                      // сбрасываем вывод 13 в OFF delay (250);                                       // пауза в ¼ секунды

}

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

while

Цикл while продолжается, и может продолжаться бесконечно, пока выражение в скобках не станет false (ложно). Что-то должно менять проверяемую переменную, иначе из цикла никогда не выйти. И это должно быть в вашем коде, как, скажем, увеличение переменной, или внешнее условие, как, например, проверяемый сенсор.

while (someVariable ?? value)

{

что-нибудь делаем;

}

Следующий пример проверяет, будет ли someVariable меньше 200, и если да, то выполняются выражения в фигурных скобках, и цикл продолжается, пока someVariable остаѐтся меньше 200.

while (someVariable < 200)  // проверяем, меньше ли 200 переменная

{

что-нибудь делаем;            // выполняем операции в скобках

someVariable++;                  // увеличиваем переменную на 1

}

do…while

Цикл do управляемый «снизу» цикл, работающий на манер цикла while, с тем отличием, что условие проверки расположено в конце цикла, таким образом, цикл выполнится хотя бы один раз.

do

{

что-нибудь делаем;

} while (someVariable ?? value);

Следующий пример присваивает readSensor переменной x, делает паузу на 50 миллисекунд, затем цикл выполняется, пока x меньше, чем 100.

do

{

x = readSensors();                 // присваиваем значение

// readSensors() переменной x delay (50);    // пауза 50 миллисекунд

} while (x < 100);                     // продолжение цикла, если x меньше 100

Источник: Гололобов В. – С чего начинаются роботы. О проекте Arduino для школьников (и не только) – 2011

Оставить комментарий

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