Опора деревянной одностоечной и способы укрепление угловых опор: Опоры ВЛ - конструкции, предназначенные для поддерживания проводов на необходимой высоте над землей, водой...
История создания датчика движения: Первый прибор для обнаружения движения был изобретен немецким физиком Генрихом Герцем...
Топ:
Отражение на счетах бухгалтерского учета процесса приобретения: Процесс заготовления представляет систему экономических событий, включающих приобретение организацией у поставщиков сырья...
Характеристика АТП и сварочно-жестяницкого участка: Транспорт в настоящее время является одной из важнейших отраслей народного хозяйства...
Выпускная квалификационная работа: Основная часть ВКР, как правило, состоит из двух-трех глав, каждая из которых, в свою очередь...
Интересное:
Подходы к решению темы фильма: Существует три основных типа исторического фильма, имеющих между собой много общего...
Наиболее распространенные виды рака: Раковая опухоль — это самостоятельное новообразование, которое может возникнуть и от повышенного давления...
Мероприятия для защиты от морозного пучения грунтов: Инженерная защита от морозного (криогенного) пучения грунтов необходима для легких малоэтажных зданий и других сооружений...
Дисциплины:
2018-01-30 | 2888 |
5.00
из
|
Заказать работу |
|
|
Сontinue пропускает оставшиеся операторы в текущем шаге цикла. Вместо них выполняется проверка условного выражения цикла, а break используется для принудительного выхода из циклов do, for или while, не дожидаясь завершения цикла по условию.
Задания для самостоятельного решения
1.Сделайте напряженный вариант игры: пусть интервал между сигналами будет в диапазоне от 10 до 15 секунд.
Листинг:
1. #defineBUZZER_PIN 12 // порт с пьезодинамиком
2. #define PLAYER_COUNT 2 // количество игроков-ковбоев
3. // вместо перечислени¤ всех портов по-одному, мы объ¤вл¤ем пару
4. // списков: один с номерами портов с кнопками, другой Ч со
5. // светодиодами. —писки также называют массивами (англ. array)
6. int buttonPins[PLAYER_COUNT] = {2, 3};
7. int ledPins[PLAYER_COUNT] = {9, 11};
8. void setup()
9. {
10. pinMode(BUZZER_PIN, OUTPUT);
11. for (int player = 0; player < PLAYER_COUNT; ++player) {
12. // при помощи квадратных скобок получают значение в массиве
13. // под указанным в них номером.Ќумераци¤ начинаетс¤ с нул¤
14. pinMode(ledPins[player], OUTPUT);
15. pinMode(buttonPins[player], INPUT_PULLUP);
16. }
17. }
18. void loop()
19. {
20. // даем сигнал Ђпли!ї, выждав случайное врем¤ от 2 до 7 сек
21. delay(random(10000, 15000));
22. tone(BUZZER_PIN, 3000, 250); // 3 килогерца, 250 миллисекунд
23. for (int player = 0;; player = (player + 1) % PLAYER_COUNT) {
24. // если игрок номер Ђplayerї нажал кнопку...
25. if (!digitalRead(buttonPins[player])) {
26. //...включаем его светодиод и сигнал победы на 1 сек
27. digitalWrite(ledPins[player], HIGH);
28. tone(BUZZER_PIN, 4000, 1000);
29. delay(1000);
30. digitalWrite(ledPins[player], LOW);
31. }
32. }
33. }
3.Добавьте в игру еще двух ковбоев!
Листинг:
1. #defineBUZZER_PIN 13 // порт с пьезодинамиком
2. #define PLAYER_COUNT 4 // количество игроков-ковбоев
3. // вместо перечислени¤ всех портов по-одному, мы объ¤вл¤ем пару
4. // списков: один с номерами портов с кнопками, другой Ч со
5. // светодиодами. —писки также называют массивами (англ. array)
|
6. int buttonPins[PLAYER_COUNT] = {2, 3, 4, 5};
7. int ledPins[PLAYER_COUNT] = {9, 10, 11, 12};
8. void setup()
9. {
10. pinMode(BUZZER_PIN, OUTPUT);
11. for (int player = 0; player < PLAYER_COUNT; ++player) {
12. // при помощи квадратных скобок получают значение в массиве
13. // под указанным в них номером. Ќумераци¤ начинаетс¤ с нул¤
14. pinMode(ledPins[player], OUTPUT);
15. pinMode(buttonPins[player], INPUT_PULLUP);
16. }
17. }
18. void loop()
19. {
20. // даем сигнал Ђпли!ї, выждав случайное врем¤ от 2 до 7 сек
21. delay(random(10000, 15000));
22. tone(BUZZER_PIN, 3000, 250); // 3 килогерца, 250 миллисекунд
23. for (int player = 0;; player = (player + 1) % PLAYER_COUNT)
24. {
25. // если игрок номер Ђplayerї нажал кнопку...
26. if (!digitalRead(buttonPins[player])) {
27. //...включаем его светодиод и сигнал победы на 1 сек
28. digitalWrite(ledPins[player], HIGH);
29. tone(BUZZER_PIN, 4000, 1000);
30. delay(1000);
31. digitalWrite(ledPins[player], LOW);
32. }
33. }
34. }
Эксперимент 13. Секундомер
В этом эксперименте мы создаем секундомер, который считает до 10.
Принципиальная схема
Код
1. #define FIRST_SEGMENT_PIN 2
2. #define SEGMENT_COUNT 7
3. byte numberSegments[10] = {
4. 0b00111111, 0b00001010, 0b01011101, 0b01011110, 0b01101010,
5. 0b01110110, 0b01110111, 0b00011010, 0b01111111, 0b01111110,
6. };
7. void setup()
8. {
9. for (int i = 0; i < SEGMENT_COUNT; ++i)
10. pinMode(i + FIRST_SEGMENT_PIN, OUTPUT);
11. }
12. void loop()
13. {
14. int number = (millis() / 1000) % 10;
15. int mask = numberSegments[number];
16. for (int i = 0; i < SEGMENT_COUNT; ++i) {
17. boolean enableSegment = bitRead(mask, i);
18. digitalWrite(i + FIRST_SEGMENT_PIN, enableSegment);
19. }
20. }
Вопросы для проверки себя
|
|
Опора деревянной одностоечной и способы укрепление угловых опор: Опоры ВЛ - конструкции, предназначенные для поддерживания проводов на необходимой высоте над землей, водой...
Организация стока поверхностных вод: Наибольшее количество влаги на земном шаре испаряется с поверхности морей и океанов (88‰)...
Типы сооружений для обработки осадков: Септиками называются сооружения, в которых одновременно происходят осветление сточной жидкости...
Особенности сооружения опор в сложных условиях: Сооружение ВЛ в районах с суровыми климатическими и тяжелыми геологическими условиями...
© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!