
ЭКЗ ПРАКТИКА 3-й курс
.pdf63.ШИМ, его команды и особенности.
ШИМ (широтно-импульсная модуляция) — это метод управления мощностью,
который используется для регулировки яркости светодиодов, скорости вращения двигателей и других задач. В Arduino ШИМ реализуется через цифровые выходы, которые поддерживают функцию PWM.
Основные команды для работы с ШИМ
1.analogWrite(pin, value): Основная команда для управления ШИМ. pin — номер пина, поддерживающего ШИМ, а value — значение от 0 до 255, где 0 — минимальная мощность, а 255 — максимальная.
2.pinMode(pin, mode): Устанавливает режим работы пина (например, OUTPUT для ШИМ).
3.delay(ms): Используется для создания пауз между изменениями ШИМ-сигнала.
Особенности ШИМ в Arduino
•Частота ШИМ: Для большинства плат Arduino частота ШИМ составляет около 490 Гц, но на некоторых пинах она может быть выше (например, 980 Гц).
•Совместимость пинов: Не все цифровые пины поддерживают ШИМ. Например, на
Arduino Uno это пины 3, 5, 6, 9, 10 и 11.
•Разрядность: ШИМ в Arduino имеет 8-битную разрядность, что позволяет задавать 256 уровней мощности.
•Применение: ШИМ используется для управления яркостью светодиодов, скоростью вращения двигателей, генерации звуковых сигналов и других задач.

64.Монитор порта,его команды и особенности.
Монитор порта
Чтобы работать с портом на стороне компьютера, понадобится монитор порта - программа, которая умеет отправлять и читать данные с COM порта. Таких программ много и подойдёт любая, но в Arduino IDE есть свой встроенный монитор порта, что очень удобно. Чтобы начать работу, нужно выбрать порт (тот же, что был выбран для загрузки прошивки) и открыть монитор:
В окне монитора порта есть несколько важных настроек:
•Скорость - скорость связи. Должна совпадать со скоростью UART, установленной в программе на микроконтроллере. Обычно 9600 или 115200
•Конечный символ - символ, который будет добавляться в конце текста при отправке из монитора порта
Команды и функции монитора порта
1.Serial.begin(скорость): Эта команда инициализирует последовательное соединение. Например, Serial.begin(9600) устанавливает скорость соединения на 9600 бод.
2.Serial.print(): Выводит текст или данные на монитор порта. Например,
Serial.print("Hello") напишет "Hello" в окне монитора.
3.Serial.println(): Аналогична Serial.print(), но добавляет перенос строки.
4.Serial.read(): Считывает данные, полученные через последовательное соединение. Используется для обработки входных данных.
5.Serial.available(): Проверяет, есть ли доступные данные для чтения. Возвращает количество байтов в буфере.
6.Serial.write(): Отправляет байты данных через последовательное соединение.
7.Serial.flush(): Очищает выходной буфер передачи данных.
Особенности монитора порта
•Скорость передачи данных: Обе стороны (Arduino и монитор порта) должны иметь одинаковую скорость, указанную в Serial.begin().
•Формат данных: Монитор порта поддерживает текстовый и бинарный форматы.
•Выбор терминатора: В интерфейсе монитора порта можно указать, какой символ будет использоваться для окончания строки (например, "Нет", "Новая строка", "Возврат каретки").
•Двусторонняя связь: Вы можете не только отправлять данные с платы, но и передавать команды на плату через монитор порта.
•Отладка в реальном времени: Используется для просмотра значений переменных или диагностики ошибок.

65.Arduino, виды разновидности плат.
Классические Arduino
Первые официальные платы на основе устаревших МК AVR. Тем не менее, крайне приятны в работе и обучении:
•ATmega328p
•Arduino UNO - самая первая и самая популярная модель, идёт почти во всех наборах. Не рекомендуется к покупке, т.к. большая и неудобная для подключения
•Arduino Nano - компактная и дешёвая версия UNO, на которой выведены дополнительные пины МК. Самая сбалансированная и удобная плата для большинства проектов - как для макетов, так и для пайки
•Arduino Mini - компактная версия Nano без встроенного "загружатора" для пайки в проект
•ATmega32U4
•Arduino Leonardo - аналог UNO на чуть более современном процессоре, основная фишка - аппаратная эмуляция клавиатуры/мыши по USB
•Arduino Micro - компактная версия Leonardo с теми же возможностями для USB
•Arduino MEGA - плата для очень крупных проектов, имеет много пинов и памяти
•Digispark - дешёвая плата на младшей серии МК - мало пинов и памяти, но есть программная эмуляция USB. Можно взять "на сдачу" - пригодится
Espressif
Платы на очень мощных и дешёвых китайских МК с огромным объёмом памяти и поддержкой WiFI (старшие модели - ещё и Bluetooth):
•ESP8266
•ESP-01 - сильно урезанная плата без "загружатора" с 1-2 доступными пинами, подходит для компактных проектов
•Wemos D1 mini - очень удобная компактная плата, выведены все доступные пины
•NodeMCU - то же самое, но выведены лишние пины - плата крупнее размером, лишние пины могут запутать
•ESP32
•ESP32 DevKit - плата на более мощном МК, больше памяти и пинов. Неудобно работать на макетке
•ESP32-CAM - версия с цветной камерой и слотом под SD-карту на борту. Неудобно работать на макетке, нет встроенного "загружатора"
•ESP32C3
•Luatos - отличная компактная плата под замену Wemos Mini
•XIAO - очень маленькая плата для самых компактных WiFi-проектов

Pi Pico
Недорогая и очень популярная на западе плата на мощном двухъядерном процессоре RP2040. Имеет несколько интересных особенностей, умеет программироваться на Python, хорошо показывает себя в проектах, где нужно "быстро дрыгать ногами". Для остального не имеет смысла при наличии на рынке дешёвых ESP с WiFi.
STM32
Платы на старых, но гораздо более "мощных" МК STM32. Особо не имеют смысла для работы с Arduino-фреймворком, т.к. раскрывают свои возможности именно при работе "напрямую". Не рекомендуются для знакомства с робототехникой:
•BluePill (STM32F103C8T6)
•BlackPill (STM32F411CE) - более производительный МК