Различия

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

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

Предыдущая версия справа и слеваПредыдущая версия
Следующая версия
Предыдущая версия
products:aruno:exp8 [2020/05/28 14:20] alexnikproducts:aruno:exp8 [2020/08/28 11:48] (текущий) alexnik
Строка 38: Строка 38:
  
 ==== Схема эксперимента ==== ==== Схема эксперимента ====
- +{{ :products:ardu:adcexp_sch.png?nolink |}}
-{{ :products:esp-iot:exp7.1.png?nolink |}}+
 //Рисунок 1. Электрическая принципиальная схема эксперимента// //Рисунок 1. Электрическая принципиальная схема эксперимента//
  
-{{ :products:esp-iot:7.2_m.png?direct&600 |}}+{{ :products:ardu:exp05.png?direct&400 |}}
 //Рисунок 2. Монтажная схема эксперимента// //Рисунок 2. Монтажная схема эксперимента//
  
 ==== Программный код эксперимента ==== ==== Программный код эксперимента ====
  
-<file python Exp15.py[enable_line_numbers="2", start_line_numbers_at="1"]> +<file cpp Exp8[enable_line_numbers="2", start_line_numbers_at="1"]> 
-from machine import Pin, PWM +const int analogPin = A0;//константа с номером пина для переменного резистора 
-_init()+const int ledPin = 3;//константа с номером пина(ШИМдля светодиода 
 +int inputValue = 0;//значение считанного аналогового сигнала 
 +int outputValue = 0;//коэффициент заполнения ШИМ сигнала
  
-LedPin = 15 +void setup() { 
-led = Pin(LedPin, Pin.OUT+ }
-pwmLed = PWM(led)+
  
-adc machine.ADC(0)+void loop() { 
 +   inputValue analogRead(analogPin);//считываем аналоговый сигнал и записываем его в переменную 
 +   outputValue = map(inputValue,0,1023,0,255);//преобразуем считанные данные из интервала 0-1023 пропорционально в интервал 0 to 255 
 +   analogWrite(ledPin,outputValue);//формируем ШИМ сигнал в соответствии с конвертированными данными 
 + } 
 +</file>
  
-while True: +Давайте посмотрим, как все работает.\\ 
-    value adc.read() +в **строке 10** считываем аналоговый сигнал с пина к которому подключен переменный резистор и записываем его в переменную **inputValue**\\ 
-    pwmLed.duty(value+''   inputValue analogRead(analogPin);''\\ 
-</file>+в **строке 11** с помощью функции **map()** конвертируем сигнал записанный в переменную **inputValue** из диапазона 0-1023 (аналогового сигнала) в диапазон 0-255 (ШИМ сигнала) и записываем его в переменную **outputValue**\\ 
 +''   outputValue = map(inputValue,0,1023,0,255);''\\ 
 +и в **строке 12** формируем ШИМ сигнал на пине к которому подключен светодиод с коэффициентом заполнения записанным в переменную **outputValue** ранее\\ 
 +''   analogWrite(ledPin,outputValue);''\\
  
-В этой программе для нас нет ничего нового. Как обычно мы настроили вывод для светодиода, создали объект пина для него. Создали объект ШИМ. Создали объект АЦП. В бесконечном цикле считываем показания АЦП и передаем их в объект ШИМ как коэффициент заполнения. 
  
 ==== Дополнительное задание ==== ==== Дополнительное задание ====