Различия

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

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

Следующая версия
Предыдущая версия
products:aruno:exp11 [2020/06/01 13:45] – создано alexnikproducts:aruno:exp11 [2020/06/01 19:59] (текущий) alexnik
Строка 1: Строка 1:
-===== Эксперимент 19. Умный светильник =====+===== Эксперимент 11. Умный светильник =====
  
-Результаты измерений можно использовать не только для вывода человеку, но и для принятия каких либо автоматических решений. Устройства, принимающие простые решения на основе входных данных называют устройствами автоматики. Создадим одно из них. Когда освещенность уменьшается ниже определенного значения наше устройство будет включать светодиод. +Устройства, принимающие простые решения на основе входных данных называют устройствами автоматики. Умный светильник - это одно из них. Когда освещенность уменьшается ниже определенного значения наше устройство будет включать светодиод. 
  
 ==== Схема эксперимента ==== ==== Схема эксперимента ====
-{{ :products:esp-iot:exp7.6_sch.png?nolink |}}+ 
 +{{ :products:ardu:exp11_sch.png?nolink |}}
 //Рисунок 1. Электрическая принципиальная схема эксперимента// //Рисунок 1. Электрическая принципиальная схема эксперимента//
  
-{{ :products:esp-iot:exp7.6.png?direct&600 |}}+{{ :products:ardu:exp11.png?direct&600 |}}
 //Рисунок 2. Монтажная схема эксперимента// //Рисунок 2. Монтажная схема эксперимента//
  
Строка 13: Строка 14:
 ==== Программный код эксперимента ==== ==== Программный код эксперимента ====
  
-<file python Exp19.py[enable_line_numbers="2", start_line_numbers_at="1"]> +<file cpp Exp11[enable_line_numbers="2", start_line_numbers_at="1"]> 
-from machine import Pin +int photocellPin = A0;  
-import time +int ledPin = 3;  
-_init()+int val = 0;    
  
-LedPin = 16 +void setup() {  
-led = Pin(LedPinPin.OUT)+   pinMode(ledPinOUTPUT);   
 +   pinMode(photocellPin, INPUT);   
 +
  
-adc = machine.ADC(0+void loop()  
-  +   val analogRead(photocellPin) 
-while True: +   if(val<=512) { 
-    value adc.read() +     digitalWrite(ledPin, HIGH) 
-    if value > 400: +    
-        led.on() +   else { 
-    else: +     digitalWrite(ledPin, LOW) 
-        led.off() +    } 
-    print(value) +}
-    time.sleep(1)+
 </file> </file>
  
-Если значение результата преобразования АЦП превышает 400 — включаем светодиод: +Алгоритм программы очень простой, считываем аналоговый сигнал через пин A0 контроллера, если значение ниже 512 включаем светодиод: 
-<code python [enable_line_numbers="2", start_line_numbers_at="12"]> +<code cpp [enable_line_numbers="2", start_line_numbers_at="12"]> 
-    if value > 400: +   if(val<=512) { 
-        led.on()+     digitalWrite(ledPin, HIGH);  
 +     }
 </code> </code>
  
 Иначе выключаем: Иначе выключаем:
-<code python [enable_line_numbers="2", start_line_numbers_at="14"]> +<code cpp [enable_line_numbers="2", start_line_numbers_at="15"]> 
-    else: +   else { 
-        led.off()+     digitalWrite(ledPin, LOW);  
 +    }
 </code> </code>
  
Строка 49: Строка 53:
 <WRAP center round tip 60%> <WRAP center round tip 60%>
   * Измени порог срабатывания умного светильника.   * Измени порог срабатывания умного светильника.
-  * Измени программучтобы при уменьшении освещенности светодиод выключался, а при увеличении — включался.+  * Измени программу чтобы выводить значение сигнала в монитор порта.
 </WRAP> </WRAP>