603.05K
Category: programmingprogramming

Оператор For

1.

Оператор For
Конструкция for используется для повторения блока операторов, заключенных в
фигурные скобки. Счетчик приращений обычно используется для приращения и
завершения цикла. Оператор for подходит для любых повторяющихся действий и часто
используется в сочетании с массивами коллекций данных/выводов.
Заголовок цикла for состоит из трех частей:
for (initialization; condition; increment) {операторы выполняющиеся в цикле}
Инициализация (Initialization) выполняется самой первой и один раз. Каждый раз в
цикле проверяется условие (condition), если оно верно, выполняется блок операторов
и приращение (increment), затем условие проверяется вновь. Когда логическое
значение условия становится ложным, цикл завершается.

2.

Оператор If
• if (условие) и ==, !=, <, > (операторы
сравнения)
• if, используется в сочетании с операторами
сравнения, проверяет, достигнута ли истинность
условия, например, превышает ли входное значение
заданное число. Формат оператора if следующий:

3.

Вам следует реализовать следующий
проект:
Задание на реализацию игры.
• Требуется чтобы на плате в определенной последовательности
повторять нажатием кнопок под диодами цвета, которые будут
загорятся в случайной последовательности. За каждое удачное
повторение должен издаваться звук на пьезе, и добавляться +1 на
индикаторе. Игра должна завершатся или из-за неправильного ответа
или когда вы дойдете до числа 10 на индикаторе.
• Вам потребуется:
2 диода, 2 кнопки, пьеза, индикатор семисегментый.
В помощь вам будет предоставлена распиновка и подключение
индикатора, а так же набросок схемы подключение диодов с пьезой.

4.

// список выводов Arduino для подключения к разрядам a-g
// семисегментного индикатора
int pins[7]={2,3,4,5,6,7,8};
// значения для вывода цифр 0-9
byte numbers[10] = { B11111100, B01100000, B11011010, B111100
10, B01100110,
B10110110, B10111110, B11100000, B11111110, B11100110};
// переменная для хранения значения текущей цифры
int number=0;
void setup()
{
// Сконфигурировать контакты как выходы
for(int i=0;i<7;i++)
pinMode(pins[i],OUTPUT);
}
void loop()
{
showNumber(number);
delay(1000);
number=(number+1)%10;
}
// функция вывода цифры на семисегментный индикатор
void showNumber(int num)
{
for(int i=0;i<7;i++)
{
if(bitRead(numbers[num],7-i)==HIGH) // зажечь сегмент
digitalWrite(pins[i],HIGH);
else // потушить сегмент
digitalWrite(pins[i],LOW);
}
}
English     Русский Rules