Различия

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

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

Предыдущая версия справа и слеваПредыдущая версия
Следующая версия
Предыдущая версия
products:aruno:exp2 [2020/05/19 20:18] alexnikproducts:aruno:exp2 [2020/11/05 12:05] (текущий) – [Эксперимент 2. Маячок] alexnik
Строка 1: Строка 1:
 ===== Эксперимент 2. Маячок =====  ===== Эксперимент 2. Маячок ===== 
  
-В первом эксперименте мы мигали светодиодом, установленным на плате. Теперь настало время самостоятельно собрать схему и подключить светодиод. Перед этим нужно обязательно прочитать [[theory:breadboard|об устройстве макетной платы]], если это еще не сделано. Сначала нужно установить на макетную плату компоненты, потом провода.+В первом эксперименте мы мигали светодиодом, установленным на плате. Теперь настало время самостоятельно собрать схему и написать первый скетч.\\ 
 +Перед началом сборки схемы нужно обязательно ознакомиться [[theory:breadboard|с устройством макетной платы]], если это еще не сделано. \\ 
 +В первую очередь устанавливаются на макетную плату компоненты, потом провода.
  
 ==== Подключение светодиода ==== ==== Подключение светодиода ====
Строка 20: Строка 22:
  
 ==== Схема эксперимента ==== ==== Схема эксперимента ====
-{{ :products:esp-iot:exp2.1.png?direct |}}+{{ :products:ardu:exp2.1.png?nolink&400 |}}
 //Рисунок 1. Электрическая принципиальная схема эксперимента// //Рисунок 1. Электрическая принципиальная схема эксперимента//
 {{ :products:ardu:exp02.png?direct&600 |}} {{ :products:ardu:exp02.png?direct&600 |}}
Строка 32: Строка 34:
  
 ==== Программный код эксперимента ==== ==== Программный код эксперимента ====
-<file python Exp2 [enable_line_numbers="2", start_line_numbers_at="1"]>+<file cpp Exp2 [enable_line_numbers="2", start_line_numbers_at="1"]>
   void setup() {                   void setup() {                
        pinMode(2, OUTPUT);             pinMode(2, OUTPUT);     
Строка 59: Строка 61:
 Это делается выражением в функции setup(): Это делается выражением в функции setup():
 pinMode(2, OUTPUT); pinMode(2, OUTPUT);
-В функции setup() вызывается функция с именем pinMode(), которая устанавливает заданный по номеру пин в определенный режим: вход или выход. О каком пине и о каком режиме идёт речь указывается нами в круглых скобках, через запятую, сразу после имени функции. В нашем случае мы хотим, чтобы 2-ой пин работал как выход. (`OUTPUT` означает выход, `INPUT`— вход.) +<WRAP center round tip 60%>
-Уточняющие значения, расположенный в скобках после имени функции - называются аргументами функции. +
 Предназначение функция setup(): настроить плату как нужно, чтобы затем с ней работать. Предназначение функция setup(): настроить плату как нужно, чтобы затем с ней работать.
-Перейдём к функции loop():+</WRAP> 
 +В функции setup() вызывается функция с именем pinMode(), которая устанавливает заданный по номеру пин в определенный режим: вход или выход. О каком пине и о каком режиме идёт речь указывается нами в круглых скобках, через запятую, сразу после имени функции. В нашем случае мы хотим, чтобы 2-ой пин работал как выход. (`OUTPUT` означает выход, `INPUT`— вход.)\\ 
 +<WRAP center round tip 60%> 
 +Уточняющие значения, расположенный в скобках после имени функции - называются аргументами функции.  
 +</WRAP> 
 +Перейдём к функции loop()
 +<WRAP center round tip 60%> 
 +Функция loop() называется основным циклом программы и предназначена для выполнения всех заложенных в программу действий. 
 +</WRAP> 
 +Пройдёмся по выражениям по порядку.\\ 
 +Первое выражение — это вызов встроенной функции digitalWrite().\\ Она предназначена для подачи на заданный пин логической единицы (HIGH, 5 вольт) или логического нуля (LOW, 0 вольт). В функцию digitalWrite() передаётся 2 аргументаномер пина и логическое значение.\\ В итоге, первым делом мы зажигаем светодиод на 2-ом пине, подавая на него 5 вольт.\\ 
 +Второе выражение вызов функции delay().\\ Функция delay() — это, встроенная функция, которая заставляет процессор уснуть на определённое время. Она принимает всего один аргумент: время в миллисекундах, которое следует спать.\\ В нашем случае это 1000 мс.\\ 
 +Как только 1000 мс истекают, процессор просыпается и переходит к следующему выражению. В нашем примере это снова вызов знакомой нам встроенной функции digitalWrite(). Правда на этот раз вторым аргументом мы передаём значение `LOW`. То есть устанавливаем на 2-ом пине логический ноль, подаётся 0 вольт и светодиод гаснет.\\ 
 +Четвертое выражение снова вызов функции delay() c аргументом 1000 мс.\\ 
 +По истечении установленного времени выполнение снова передаётся к первому выражению функции loop().\\ 
 +Если коротко описать работу программы, то получится следующий алгоритм:\\ 
 +1. Поджигаем светодиод\\ 
 +2. Спим 1000 миллисекунд\\ 
 +3. Гасим светодиод\\ 
 +4. Спим 1000 миллисекунд\\ 
 +5. Переходим к пункту 1\\ 
 +Таким образом мы получили проект с маячком, мигающим каждые 1000 мс + 1000 мс = 2000 мс = 2 сек.
  
 ==== Дополнительное задание ==== ==== Дополнительное задание ====