Автомат световых эффектов - это устройство, которое может создавать
различные световые эффекты в автоматическом или полуавтоматическом режиме.
Самый просто автомат световых эффектов - "бегущий огонь" мы рассматривали на
уроке 2 ("Мигаем светодиодами").
Соберем простую схему из 8-ми светодиодов:
int pin; void setup() { pinMode(7, OUTPUT); pinMode(6, OUTPUT); pinMode(5, OUTPUT); pinMode(4, OUTPUT); pinMode(3, OUTPUT); pinMode(2, OUTPUT); pinMode(1, OUTPUT); pinMode(0, OUTPUT); } void loop() { digitalWrite(0, HIGH); // Устанавливаем высокий уровень на выводе 0 delay(200); // Ждем 200 миллисекунд digitalWrite(0, LOW); // Устанавливаем низкий уровень на выводе 0 delay(200); // Ждем 200 миллисекунд digitalWrite(1, HIGH); // Устанавливаем высокий уровень на выводе 1 delay(200); // Ждем 200 миллисекунд digitalWrite(1, LOW); // Устанавливаем низкий уровень на выводе 1 delay(200); // Ждем 200 миллисекунд digitalWrite(2, HIGH); // Устанавливаем высокий уровень на выводе 2 delay(200); // Ждем 200 миллисекунд digitalWrite(2, LOW); // Устанавливаем низкий уровень на выводе 2 delay(200); // Ждем 200 миллисекунд digitalWrite(3, HIGH); // Устанавливаем высокий уровень на выводе 3 delay(200); // Ждем 200 миллисекунд digitalWrite(3, LOW); // Устанавливаем низкий уровень на выводе 3 delay(200); // Ждем 200 миллисекунд digitalWrite(4, HIGH); // Устанавливаем высокий уровень на выводе 4 delay(200); // Ждем 200 миллисекунд digitalWrite(4, LOW); // Устанавливаем низкий уровень на выводе 4 delay(200); // Ждем 200 миллисекунд digitalWrite(5, HIGH); // Устанавливаем высокий уровень на выводе 5 delay(200); // Ждем 200 миллисекунд digitalWrite(5, LOW); // Устанавливаем низкий уровень на выводе 5 delay(200); // Ждем 200 миллисекунд digitalWrite(6, HIGH); // Устанавливаем высокий уровень на выводе 6 delay(200); // Ждем 200 миллисекунд digitalWrite(6, LOW); // Устанавливаем низкий уровень на выводе 6 delay(200); // Ждем 200 миллисекунд digitalWrite(7, HIGH); // Устанавливаем высокий уровень на выводе 7 delay(200); // Ждем 200 миллисекунд digitalWrite(7, LOW); // Устанавливаем низкий уровень на выводе 7 delay(200); // Ждем 200 миллисекунд }
int pin; void setup() { pinMode(7, OUTPUT); pinMode(6, OUTPUT); pinMode(5, OUTPUT); pinMode(4, OUTPUT); pinMode(3, OUTPUT); pinMode(2, OUTPUT); pinMode(1, OUTPUT); pinMode(0, OUTPUT); } void loop() { digitalWrite(0, 1); // Устанавливаем высокий уровень на выводе 0 digitalWrite(1, 0); // Устанавливаем высокий уровень на выводе 1 digitalWrite(2, 0); // Устанавливаем высокий уровень на выводе 2 digitalWrite(3, 1); // Устанавливаем высокий уровень на выводе 3 digitalWrite(4, 1); // Устанавливаем высокий уровень на выводе 4 digitalWrite(5, 0); // Устанавливаем высокий уровень на выводе 5 digitalWrite(6, 1); // Устанавливаем высокий уровень на выводе 6 digitalWrite(7, 0); // Устанавливаем высокий уровень на выводе 7 delay(2000); // Ждем 200 миллисекунд digitalWrite(0, 0); // Устанавливаем высокий уровень на выводе 0 digitalWrite(1, 1); // Устанавливаем высокий уровень на выводе 1 digitalWrite(2, 1); // Устанавливаем высокий уровень на выводе 2 digitalWrite(3, 0); // Устанавливаем высокий уровень на выводе 3 digitalWrite(4, 0); // Устанавливаем высокий уровень на выводе 4 digitalWrite(5, 1); // Устанавливаем высокий уровень на выводе 5 digitalWrite(6, 0); // Устанавливаем высокий уровень на выводе 6 digitalWrite(7, 1); // Устанавливаем высокий уровень на выводе 7 delay(2000); // Ждем 200 миллисекунд }
while(i < 200) { // выполнить что-то, повторив 200 раз i++; }While будет обрабатывать в цикле непрерывно то, что внутри фигурных скобок, пока истинно условие в круглых скобках. и бесконечно до тех пор, пока выражение в круглых скобках
do { // последовательность операторов } while (проверка условия);
for (x = 0; x < 255; x ++) { if (x > 40 && x < 120){ // если истина то прыгаем сразу на следующую итерацию цикла continue; } digitalWrite(PWMpin, x); delay(50); }
return; return значение; // обе формы допустимы
label: // // какой-либо код // goto label; // переходим к метке labelЗамечание по использованию