Историки об Елизавете Петровне: Елизавета попала между двумя встречными культурными течениями, воспитывалась среди новых европейских веяний и преданий...
Архитектура электронного правительства: Единая архитектура – это методологический подход при создании системы управления государства, который строится...
Топ:
Оценка эффективности инструментов коммуникационной политики: Внешние коммуникации - обмен информацией между организацией и её внешней средой...
Комплексной системы оценки состояния охраны труда на производственном объекте (КСОТ-П): Цели и задачи Комплексной системы оценки состояния охраны труда и определению факторов рисков по охране труда...
Методика измерений сопротивления растеканию тока анодного заземления: Анодный заземлитель (анод) – проводник, погруженный в электролитическую среду (грунт, раствор электролита) и подключенный к положительному...
Интересное:
Аура как энергетическое поле: многослойную ауру человека можно представить себе подобным...
Национальное богатство страны и его составляющие: для оценки элементов национального богатства используются...
Искусственное повышение поверхности территории: Варианты искусственного повышения поверхности территории необходимо выбирать на основе анализа следующих характеристик защищаемой территории...
Дисциплины:
|
из
5.00
|
Заказать работу |
Содержание книги
Поиск на нашем сайте
|
|
|
|
Метод Serial.read(),возвращает первый байт, пришедший на последовательный порт, или -1, если ничего не пришло.
Метод available() объекта Serial возвращает количество байт, полученных через последовательный порт.
Чем отличаются конструкции for и while?
В отличие от цикла со счетчиком for, цикл while(expression) выполняется до тех пор, пока логическое выражение expression истинно.
4.Каким образом можно организовать более сложное ветвление, чем if … else?
В этой программе мы дополняем if конструкцией else if. Это еще один условный оператор, который проверяется только в случае ложности выражения, данного первому оператору. Несколько else if могут следовать друг за другом, при этом каждое следующее условие будет проверяться только в случае невыполнения всех предыдущих. Если в конце разместить else, он выполнится только если ни одно из условий не выполнено.
Как можно объединить текстовые строки?
Объекты типа String позволяют производить конкатенацию, т.е. объединение строк.
Как можно привести текстовую строку, содержащую цифры, к числовому типу?
Мы используем один из методов String, toInt(), который заставляет считать строку не набором цифр, но числом.
Задания для самостоятельного решения
Проверьте, попадает ли переданное число в диапазон значений, которые нужно передавать в analogWrite(). Передайте на компьютер сообщение об ошибке, если нет.
Листинг:
1. #define LED_PIN 9
2. String message;
3. void setup()
4. {
5. pinMode(LED_PIN, OUTPUT);
6. Serial.begin(9600);
7. }
8. void loop()
9. {
10. while (Serial.available()) {
11. // считываем (англ. read) пришедший символ в переменную
12. char incomingChar = Serial.read();
13. if (incomingChar >= '0' && incomingChar <= '9') {
14. // если пришел символ-цифра, добавл¤ем его к сообщению
15. message = message + incomingChar;
16. } else if (incomingChar == '\n') {
17. int PWM = message.toInt();
18. if (PWM > 255) {
19. Serial.println("веденное число больше необходимого диапозона!");
20. }
21. else {
22. analogWrite(LED_PIN, PWM);
23. Serial.println("—ветодиод включен");
24. // обнуляем накопленное сообщение, чтобы начать все заново
25. message = "";
26. }
27. }
28. }
29. }
2. Переделайте программу так, что бы устройство распознавало текстовые команды, например «on» и «off», и соответственно включало и выключало светодиод.
Листинг:
1. #define LED_PIN 9
2. String message;
3. void setup()
4. {
5. pinMode(LED_PIN, OUTPUT);
6. Serial.begin(9600);
7. }
8. void loop()
9. {
10. while (Serial.available()) {
11. // считываем (англ. read) пришедший символ в переменную
12. char incomingChar = Serial.read();
13. message += incomingChar;
14. message.toLowerCase();
15. if (incomingChar == '\n') {
16. if (message == "on\n") {
17. digitalWrite(LED_PIN, HIGH);
18. Serial.println("Светодиод включен");
19. message = "";
20. }
21. if (message == "off\n") {
22. digitalWrite(LED_PIN, LOW);
23. Serial.println("Светодиод вЫключен");
24. message = "";
25. }
26. else {
27. //отправл¤ем уведомление о неверной команде в терминал
28. Serial.println("Вы ввели не верную команду!");
29. message = "";
30. }
31. }
32. }
33. }
Эксперимент 20. Перетягивание каната
В этом эксперименте мы создаем еще одну игру, на этот раз нужно быстрее соперника нажать кнопку 20 раз.
Принципиальная схема

Код
1. #define BUZZER_PIN 0
2. #define FIRST_BAR_PIN 4
3. #define BAR_COUNT 10
4. #define MAX_SCORE 20
5. volatile int score = 0;
6. void setup()
7. {
8. pinMode(1, OUTPUT);
9. for (int i = 0; i < BAR_COUNT; ++i)
10. pinMode(i + FIRST_BAR_PIN, OUTPUT);
11. pinMode(BUZZER_PIN, OUTPUT);
12. attachInterrupt(INT1, pushP1, FALLING);
13. attachInterrupt(INT0, pushP2, FALLING);
14. }
15. void pushP1() { ++score; }
16. void pushP2() { --score; }
17. void loop()
18. {
19. digitalWrite(1, HIGH);
20. tone(BUZZER_PIN, 2000, 1000);
21. while (abs(score) < MAX_SCORE) {
22. int bound = map(score, -MAX_SCORE, MAX_SCORE, 0, BAR_COUNT);
23. int left = min(bound, BAR_COUNT / 2 - 1);
24. int right = max(bound, BAR_COUNT / 2);
25. for (int i = 0; i < BAR_COUNT; ++i)
26. digitalWrite(i + FIRST_BAR_PIN, i >= left && i <= right);
27. }
28. tone(BUZZER_PIN, 4000, 1000);
29. while (true) {}
30. }
Вопросы для проверки себя
|
|
|
Архитектура электронного правительства: Единая архитектура – это методологический подход при создании системы управления государства, который строится...
Археология об основании Рима: Новые раскопки проясняют и такой острый дискуссионный вопрос, как дата самого возникновения Рима...
Механическое удерживание земляных масс: Механическое удерживание земляных масс на склоне обеспечивают контрфорсными сооружениями различных конструкций...
Опора деревянной одностоечной и способы укрепление угловых опор: Опоры ВЛ - конструкции, предназначенные для поддерживания проводов на необходимой высоте над землей, водой...
© cyberpediasu.com 2017-2026 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!