Автомат световых эффектов - это устройство, которое может создавать
различные световые эффекты в автоматическом или полуавтоматическом режиме.
Самый просто автомат световых эффектов - "бегущий огонь" мы рассматривали на
уроке 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Замечание по использованию