3.01.1. Практикум.md
Эти задачи помогут вам закрепить знания о переменных, типах данных и работе с последовательным портом в Рудироне
. Вы будете создавать программы для реальных ситуаций, таких как сохранение скорости робота или данных метеостанции, и проверять результаты через монитор порта. Подумайте, какие типы данных выбрать для каждой задачи, и попробуйте самостоятельно написать код!
Задача №1. Скорость робота
Введение
Вы создали робота, который движется по комнате, и его контроллер измерил текущую скорость — 7.1 км/ч. Чтобы сохранить это значение и проверить его, нужно создать переменную и вывести её значение на компьютер через последовательный порт. Это как отправить роботу команду: «Скажи, как быстро ты едешь!».
Задание
Напишите программу для Рудирона
, которая создаёт переменную speed
типа float
со значением 7.1
и выводит её значение в монитор порта. Проверьте результат, убедившись, что в мониторе отображается «7.1».
Вопросы для размышления:
1. Почему для скорости робота лучше использовать тип float
, а не int
?
2. Что произойдёт, если изменить значение speed
на 10.5
и перезагрузить программу?
3. Как добавить в вывод текст, чтобы в мониторе порта отображалось «Скорость: 7.1 км/ч»?
Задача №2. Метеостанция
Введение
Вы собираете метеостанцию на базе Рудирона
, которая измеряет температуру (25.3 °C), влажность (60%) и отправляет сообщение «Погода ясная». Чтобы сохранить эти данные, нужно создать три переменные разных типов и вывести их значения через последовательный порт. Это как записать показания погоды в дневник и показать их на компьютере!
Задание
Напишите программу для Рудирона
, которая создаёт три переменные: temp
типа float
со значением 25.3
, humidity
типа int
со значением 60
, и weather
типа String
со значением «Погода ясная». Выведите значения всех переменных в монитор порта, каждое на новой строке.
Вопросы для размышления:
1. Почему для влажности выбран тип int
, а не float
?
2. Что произойдёт, если заменить Serial.println()
на Serial.print()
для всех выводов?
3. Как изменить код, чтобы в мониторе порта отображалось «Температура: 25.3 C»?
Задача №3. Проверка размера памяти
Введение
Вы хотите оптимизировать программу для Рудирона
, чтобы она занимала меньше памяти. Для этого нужно узнать, сколько байт занимают разные типы данных. Давайте создадим программу, которая покажет размеры типов int
, char
и byte
и выведет их через последовательный порт. Иногда проще спросить у платы, сколько памяти занимает переменная, чем заглядывать в «паспорт» каждого типа данных!
Задание
Напишите программу для Рудирона
, которая выводит размеры типов данных int
, char
и byte
в монитор порта с поясняющим текстом, например, «Размер int: 4 байта».
Вопросы для размышления:
1. Почему byte
занимает меньше памяти, чем int
, и когда его использование предпочтительнее?
2. Что произойдёт, если добавить в код вывод размера типа float
? Какой результат вы ожидаете?
3. Как знание размеров типов данных может помочь в создании больших проектов?
Поздравляем, вы научились создавать переменные и выводить данные через Serial
в проектах с Рудироном
! Если какая-то задача оказалась сложной, вы можете посмотреть решения в файле с ответами. Теперь переходите к следующему параграфу, чтобы освоить операторы и сделать ваши программы ещё функциональнее.
- Страницы
- 1. Введение
- 1.01. Лабораторная работа №1.1
- 1.02. Лабораторная работа №1.2
- 1.03. Лабораторная работа №1.3
- 1.04. Лабораторная работа №1.4
- 1.05. Лабораторная работа №1.5
- 2. Основы электроники
- 2.01. Электрический ток и параметры цепи
- 2.01.1. Лабораторная работа №2.1.1
- 2.01.2. Лабораторная работа №2.1.2
- 2.02. Сопротивление в цепи
- 2.02.1. Лабораторная работа №2.2.1
- 2.02.2. Лабораторная работа №2.2.2
- 2.03. Полупроводники
- 2.03.1. Лабораторная работа №2.3.1
- 2.03.2. Лабораторная работа №2.3.2
- 3. Основы программирование на C++
- 3.01. Типы данных и переменные
- 3.01.1. Практикум
- 3.02. Операторы в C++
- 3.02.1. Практикум
- 3.03. Структуры ветвления
- 3.03.1. Практикум
- 3.04. Структуры повторения
- 3.04.1. Практикум
- 3.05. Массивы
- 3.05.1. Практикум
- 3.06. Функции
- 3.06.1. Практикум
- 3.07. Решения задач
- 4. Программирование микроконтроллеров
- 4.01. Цифровые сигналы и GPIO
- 4.01.1. Лабораторная работа №4.1.1
- 4.01.2. Лабораторная работа №4.1.2
- 4.01.3. Лабораторная работа №4.1.3
- 4.01.4. Лабораторная работа №4.1.4
- 4.01.5. Лабораторная работа №4.1.5
- 4.01.6. Лабораторная работа №4.1.6
- 4.01.7. Лабораторная работа №4.1.7
- 4.01.8. Лабораторная работа №4.1.8
- 4.02. Аналоговые сигналы и ШИМ
- 4.02.1. Лабораторная работа №4.2.1
- 4.02.2. Лабораторная работа №4.2.2
- 4.02.3. Лабораторная работа №4.2.3
- 4.02.4. Лабораторная работа №4.2.4
- 4.02.5. Лабораторная работа №4.2.5
- 4.03. Аналоговый сигнал и АЦП
- 4.03.1. Лабораторная работа №4.3.1
- 4.03.2. Лабораторная работа №4.3.2
- 4.03.3. Лабораторная работа №4.3.3
- 4.03.4. Лабораторная работа №4.3.4
- 4.03.5. Лабораторная работа №4.3.5
- 4.04. Аналоговый сигнал и ЦАП
- 4.04.1. Лабораторная работа №4.4.1
- 4.04.2. Лабораторная работа №4.4.2
- 4.05. Генерация и измерение импульсов
- 4.05.1. Лабораторная работа №4.5.1
- 4.05.2. Лабораторная работа №4.5.2
- 4.06. Аппаратные прерывания
- 4.06.1. Лабораторная работа №4.6.1
- 4.06.2. Лабораторная работа №4.6.2
- 4.07. Псевдопараллелизм
- 4.07.1. Лабораторная работа №4.7.1
- 4.07.2. Лабораторная работа №4.7.2
- 4.08. Интерфейсы связи - UART
- 4.08.1. Лабораторная работа №4.8.1
- 4.09. Интерфейсы связи - I2C
- 4.09.1. Лабораторная работа №4.9.1
- 4.10. Интерфейсы связи - SPI
- 4.10.1. Лабораторная работа №4.10.1
- home
-
imgs
- 1. Введение
- 1.01. Лабораторная работа №1.1
- 1.02. Лабораторная работа №1.2
- 1.03. Лабораторная работа №1.3
- 1.04. Лабораторная работа №1.4
- 1.05. Лабораторная работа №1.5
- 2. Основы электроники
- 2.01. Электрический ток и параметры цепи
- 2.01.1. Лабораторная работа №2.1.1
- 2.01.2. Лабораторная работа №2.1.2
- 2.02. Сопротивление в цепи
- 2.02.1. Лабораторная работа №2.2.1
- 2.02.2. Лабораторная работа №2.2.2
- 2.03. Полупроводники
- 2.03.1. Лабораторная работа №2.3.1
- 2.03.2. Лабораторная работа №2.3.2
- 3. Основы программирование на C++
- 3.01. Типы данных и переменные
- 3.01.1. Практикум
- 3.02. Операторы в C++
- 3.02.1. Практикум
- 3.03. Структуры ветвления
- 3.03.1. Практикум
- 3.04. Структуры повторения
- 3.04.1. Практикум
- 3.05. Массивы
- 3.05.1. Практикум
- 3.06. Функции
- 3.06.1. Практикум
- 3.07. Решения задач
- 4. Программирование микроконтроллеров
- 4.01. Цифровые сигналы и GPIO
- 4.01.1. Лабораторная работа №4.1.1
- 4.01.2. Лабораторная работа №4.1.2
- 4.01.3. Лабораторная работа №4.1.3
- 4.01.4. Лабораторная работа №4.1.4
- 4.01.5. Лабораторная работа №4.1.5
- 4.01.6. Лабораторная работа №4.1.6
- 4.01.7. Лабораторная работа №4.1.7
- 4.01.8. Лабораторная работа №4.1.8
- 4.02. Аналоговые сигналы и ШИМ
- 4.02.1. Лабораторная работа №4.2.1
- 4.02.2. Лабораторная работа №4.2.2
- 4.02.3. Лабораторная работа №4.2.3
- 4.02.4. Лабораторная работа №4.2.4
- 4.02.5. Лабораторная работа №4.2.5
- 4.03. Аналоговый сигнал и АЦП
- 4.03.1. Лабораторная работа №4.3.1
- 4.03.2. Лабораторная работа №4.3.2
- 4.03.3. Лабораторная работа №4.3.3
- 4.03.4. Лабораторная работа №4.3.4
- 4.03.5. Лабораторная работа №4.3.5
- 4.04. Аналоговый сигнал и ЦАП
- 4.04.1. Лабораторная работа №4.4.1
- 4.04.2. Лабораторная работа №4.4.2
- 4.05. Генерация и измерение импульсов
- 4.05.1. Лабораторная работа №4.5.1
- 4.05.2. Лабораторная работа №4.5.2
- 4.06. Аппаратные прерывания
- 4.06.1. Лабораторная работа №4.6.1
- 4.06.2. Лабораторная работа №4.6.2
- 4.07. Псевдопараллелизм
- 4.07.1. Лабораторная работа №4.7.1
- 4.07.2. Лабораторная работа №4.7.2
- 4.08. Интерфейсы связи - UART
- 4.08.1. Лабораторная работа №4.8.1
- 4.09. Интерфейсы связи - I2C
- 4.09.1. Лабораторная работа №4.9.1
- 4.10. Интерфейсы связи - SPI
- 4.10.1. Лабораторная работа №4.10.1
- home