===== Эксперимент 9. Монитор порта =====
**“Монитором порта”** – небольшая утилита, входящая в состав Arduino IDE. Она предназначена для обмена данными с помощью последовательного порта. Так как в Arduino IDE нет встроенных средств для отладки прошивок, монитор порта является единственным доступным для этого средством.\\
Запустить данную утилиту можно несколькими способами:
* через меню **Инструменты>Монитор порта**
* сочетанием клавиш **Ctrl+Shift+M**
* либо кнопкой на панели быстрого доступа
{{ :products:ardu:monitorport.png?direct |}}
Рисунок 1. Монитор порта Arduino IDE\\
* в верхней части окна находится поле ввода, для отправки данных в последовательный порт;
* в центральной части отображаются данные, полученные из последовательного порта;
* в нижней части расположено меню настроек.
Давайте используя предыдущий эксперимент выведем данные аналогового сигнала в монитор порта.
==== Схема эксперимента ====
{{ :products:ardu:adcexp_sch.png?nolink |}}
//Рисунок 1. Электрическая принципиальная схема эксперимента//
{{ :products:ardu:exp05.png?direct&600 |}}
//Рисунок 2. Монтажная схема эксперимента//
==== Программный код эксперимента ====
const int analogPin = A0;//константа с номером пина для переменного резистора
const int ledPin = 3;//константа с номером пина(ШИМ) для светодиода
int inputValue = 0;//значение считанного аналогового сигнала
int outputValue = 0;//коэффициент заполнения ШИМ сигнала
void setup() {
Serial.begin(9600);//открываем последовательный порт со скоростью 9600 бод/с
}
void loop() {
inputValue = analogRead(analogPin);//считываем аналоговый сигнал и записываем его в переменную
Serial.print("Аналоговый сигнал ");//подпись данных
Serial.println(inputValue);//выводим значение переменной **inputValue** в монитор порта
outputValue = map(inputValue,0,1023,0,255);//преобразуем считанные данные из интервала 0-1023 пропорционально в интервал 0 to 255
analogWrite(ledPin,outputValue);//формируем ШИМ сигнал в соответствии с конвертированными данными
}
Для вывода данных необходимо немного дополнить программу.\\
В блоке функции **setup()**, вызываем метод **begin** класса **Serial** и указать скорость соединения:\\
''Serial.begin(9600);''\\
И в блоке функции **loop()** вызываем метод **print()** для вывода текста и метод для вывода данных **println()**, в качестве аргумента указываем переменную **inputValue**, в которую записывается значение считанного сигнала с пина **A0**:\\
''Serial.println(inputValue);''\\
==== Дополнительное задание ====
Измените программу так, чтобы в монитор порта также выводилось значение ШИМ сигнала