Урок № 1
Это продолжение цикла уроков про Ардуино для начинающих.
Предыдущие уроки можно посмотреть здесь.
Урок № 0 - "Введение в программирование Ардуино"
Урок № 0.5 - "Продолжение вводного урока."Первое подключение Ардуино к компьютеру."
В этом уроке, видео на который можно посмотреть на канале YOUTUBE
рассказано как подключить светодиод, рассчитать значение токоограничивающего резистора, про закон Ома, и многое другое.
Что такое функция void setup() и void loop(), вообщем посмотрите, не пожалеете.
Для этого урока, для основной его части потребуются.
Ардуино Нано v 3.0
Макетная плата (беспаечная) Breadboard
Провода 5 шт.
Резисторы 220 Ом 3 шт.
Светодиоды 3 шт.
Плату Ардуино и макетную плату вы покупаете всего 1 раз, а использовать будете на протяжении всех уроков.
Для дополнительного занятия потребуется ещё
Скетчи основной части урока.
Мигание 1 светодиодом. Скачать.
Мигание 3 светодиодами. Скачать.
Теперь, как и обещал некоторые интересности.
Вот наш код из первого скетча
#define LED 13
void setup() {
pinMode(LED, OUTPUT); // УСТАНАВЛИВАЕМ ЦИФРОВОЙ ПИН 13 НА ВЫХОД
}
void loop() {
digitalWrite(LED, HIGH); // ЗАЖИГАЕМ СВЕТОДИОД
delay(1000); // ЖДЁМ 1 СЕКУНДУ
digitalWrite(LED, LOW); // ГАСИМ СВЕТОДИОД
delay(1000); // ЖДЁМ 1 СЕКУНДУ
}
Теперь как и обещал сократим код в функции loop()
И вместо 4 строчек написать всего 2
void loop() {
digitalWrite(LED, !digitalRead(LED)); // если светодиод был выключен – включаем и наоборот
delay(1000); // ждем 1 секунду
}
Что делают эти строчки.
Мы получаем текущее значение светодиода digitalRead(LED) и !digitalRead(LED) переворачиваем его(инвертируем).
Если светодиод горел, то гасим его
Если светодиод не горел, то зажигаем его.
с Логическими операторами мы познакомимся в следующих уроках
&& (логическое И) Истина, если оба операнда истина.
|| (логическое ИЛИ) Истина, если хотя бы один операнд истина.
! (логическое отрицание) Истина, если операнд Ложь, и наоборот.
Замена delay()
Эта функция служит для остановки микроконтроллера.
Как я и говорил в видео, функцию delay() надо применять очень осторожно.
Означает остановить выполнение всех программ (ну почти всех) и ждать пока не пройдёт время, указанное в скобках. Оно указывается в миллисекундах (1000 миллисекунд = 1 секунде) и пока это время не закончится ARDUINO будет бездействовать.
Есть ещё прерывания, но это мы будем изучать в следующих уроках.
Правильнее будет использовать функцию millis();
Она возвращает количество миллисекунд с момента начала выполнения программы.
Количество миллисекунд в millis() ограничено 50 днями. При наступлении этого времени счётчик сбросится 0.
Вот что у нас теперь получилось
#define LED 13
#define STOP 1000 // 1000 миллисекунд - это 1 секунды
unsigned long prev_ms = 0; // здесь будет храниться время последнего изменения состояния светодиода
void setup() {
pinMode(LED, OUTPUT); // УСТАНАВЛИВАЕМ ЦИФРОВОЙ ПИН 13 НА ВЫХОД
}
void loop()
{
/*
проверяем – настало ли время изменить состояние светодиода
для этого считываем значение светодиода digitalRead(LED),
а затем сверяем полученный интервал с нужным интервалом
*/
if (millis() - prev_ms > STOP) {
// текущее время –(минус) время последнего изменения. Если он больше 1000(1 сек.) то условие верно
digitalWrite(LED, !digitalRead(LED)); // если светодиод был выключен – включаем и наоборот
prev_ms = millis();
}
/*
Здесь могут быть другие команды, которые нужно выполнить и неважно, что будет делать микроконтроллер в данное время,Если настало время STOP, он прервётся, выполнит задачу, и начнёт с того же места, где прервался.
*/
}
Теперь переходим к самому интересному.
Дополнительной части урока.
Напишу её сегодня-завтра. Хочу, чтобы на выходные вам было чем заняться.
Удачи вам в освоении этого непростого, но интересного дела.
Изучив эти уроки, вы освоите новую, интересную профессию – Программист. Освоив её, вы можете быть спокойны за свою будущее, ведь по статистике, программист самый востребованный и высокооплачиваемый специалист в наше время.
Смотрите новые уроки. Подписывайтесь на канал. И удачи.
Вместо Ардуино используется ESP Как управлять RGB светодиодом с телефона esp8266 подключение и управление светодиодом. Примеры esp8266 Примеры для скачивания и установки в Ардуино.