Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слеваПредыдущая версия
Следующая версия
Предыдущая версия
products:aruno:exp9 [2020/05/28 19:54] alexnikproducts:aruno:exp9 [2020/05/29 12:03] (текущий) alexnik
Строка 2: Строка 2:
  
 **“Монитором порта”** – небольшая утилита, входящая в состав Arduino IDE. Она предназначена для обмена данными с помощью последовательного порта. Так как в Arduino IDE нет встроенных средств для отладки прошивок, монитор порта является единственным доступным для этого средством.\\ **“Монитором порта”** – небольшая утилита, входящая в состав 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. Монтажная схема эксперимента// 
 + 
 +==== Программный код эксперимента ==== 
 + 
 +<file cpp Exp8[enable_line_numbers="2"start_line_numbers_at="1"]> 
 +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);//формируем ШИМ сигнал в соответствии с конвертированными данными 
 +
 +</file> 
 + 
 +Для вывода данных необходимо немного дополнить программу.\\ 
 +В блоке функции **setup()**, вызываем метод **begin** класса **Serial** и указать скорость соединения:\\ 
 +''Serial.begin(9600);''\\ 
 +И в блоке функции **loop()** вызываем метод **print()** для вывода текста и метод для вывода данных **println()**, в качестве аргумента указываем переменную **inputValue**, в которую записывается значение считанного сигнала с пина **A0**:\\  
 +''Serial.println(inputValue);''\\ 
 + 
 + 
 +==== Дополнительное задание ==== 
 +<WRAP center round tip 60%> 
 +Измените программу так, чтобы в монитор порта также выводилось значение ШИМ сигнала 
 +</WRAP>