Урок 4 - Сигнал SOS с помощью светодиода и Arduino

.Урок 4 - Сигнал SOS с помощью светодиода и Arduino

SOS — радиосигнал о помощи, терпящих бедствие на море. Состоит из сочетания трех точек, трёх тире и ещё трех точек азбуки Морзе. Мнение, будто SOS — аббревиатура английского словосочетания «Save Our Souls» («Спасите наши души») или «Save Our Ship» («Спасите наш корабль») — красивая легенда. На самом деле расшифровки нет, просто соединение точек, тире, точек — наиболее простая и отчетливая комбинация.

Подать сигнал SOS можно с помощью Дыма, огня, отражения. В данном уроке мы научимся подавать сигнал бедствия с помощью светодиода и Arduino.

Для урока нам понадобиться:

Схема подключения такая же как и в уроке: Мигаем светодиодом на Arduino.


Сигнал SOS на Arduino

В скетче будут использоваться 3 цикла for в среде разработке Arduino IDE. (В Видео ролике немного наврал, циклы for мы еще не рассматривали.)

<code>int led_pin=3;          // пин подключения
void setup() {
pinMode(led_pin, OUTPUT); // Инициализируем цифровой вход/выход в режиме выхода.
}
void  loop()  { 
   for (int x=0; x<3; x++) {
    digitalWrite(led_pin, HIGH);// зажигаем светодиод
    delay(250);         // ждем 350 милисекунд
    digitalWrite(led_pin, LOW); // выключаем светодиод
    delay(100);         // ждем 300 милисекунд
   }
   delay(300);
   for (int x=0; x<3; x++) {
    digitalWrite(led_pin, HIGH);// зажигаем светодиод
    delay(500);         // ждем 700 милисекунд
    digitalWrite(led_pin, LOW); // выключаем светодиод
    delay(100);         // ждем 300 милисекунд
   }
   delay(300);
   for (int x=0; x<3; x++) {
    digitalWrite(led_pin, HIGH);// зажигаем светодиод
    delay(250);         // ждем 350 милисекунд
    digitalWrite(led_pin, LOW); // выключаем светодиод
    delay(100);         // ждем 300 милисекунд
   }
  delay(5000); // ждем 5 секунд
}

Конструкция for используется для повторения блока операторов, заключенных в фигурные скобки. Счетчик приращений обычно используется для приращения и завершения цикла. Оператор for подходит для любых повторяющихся действий и часто используется в сочетании с массивами коллекций данных/выводов.

Заголовок цикла for состоит из трех частей:

for (initialization; condition; increment) {операторы выполняющиеся в цикле}

Инициализация (Initialization) выполняется самой первой и один раз. Каждый раз в цикле проверяется условие (condition), если оно верно, выполняется блок операторов и приращение (increment), затем условие проверяется вновь. Когда логическое значение условия становится ложным, цикл завершается.

<code>for (int x=0; x<3; x++)

int x=0 — Присвоим переменной x значение равное 0.

x<3; - Если x Меньше чем 3 выполняем цикл.

x++ - При каждом выполнении цикла прибавляем к x единицу. По другому данную строку можно записать x=x+1.

Изначально Икс ( x) равен 0. Сравниваем 0<3, прибавляем к x единицу и выполняем действия в {}. После выполнения действия в скобках. Выполняем проверку x у нас сейчас равен 1. 1<3, прибавляем к x единицу и выполняем действия в {}. Аналогично пройдет третий проход по циклу. А при попытке выполнить цикл четвертый раз у нас получиться что 3=3. Условия цикла не выполняется. Выполнение цикла прекращаться.

Остальные циклы в скетче выполняются аналогично.

Следующий урок: Мигалка из 2 светодиодов на Arduino

Если у вас чего то нет для выполнения данного урока, Вы можете посмотреть в каталоге. Там собранные комплектующими от проверенных продавцов по самым низким ценам.


Понравилась статья? Поделитесь ею с друзьями:

Вернуться в раздел: Уроки Arduino: Светодиоды, Резисторы, Arduino Дата публикации 21 февраля , 2017

Комментарии

Ваше Имя*
Войдите или Зарегистрируйтесь И Вы сможете общаться на форуме и оставлять комментарии без капчи.

Евгений
#3 Евгений (29 марта, 2019 в 13:19)
Спасибо за уроки. Сыну очень нравиться выполнять их. Но боюсь что через пару недель уроки по ардуино закончатся. Когда будет продожения. 
Ахмед Ахмедов
#2 Гость: Ахмед Ахмедов (12 марта, 2019 в 19:38)

почему при "delay(250)" мы "ждем 350 милисекунд", если кол-во времени, которое мы ждём. Указывается в скобках (в миллисекундах)?

при "delay(250)" мы ждём 250 миллисекунд.

комментарии к строкам не верны.

Шадрин
#1 Гость: Шадрин (12 марта, 2019 в 19:38)
почему при "delay(250)" мы "ждем 350 милисекунд", если кол-во времени, которое мы ждём указывается в скобках (в миллисекундах)?
при "delay(250)" мы ждём 250 миллисекунд. комментарии к строкам не верны.
08 delay(250); // ждем 350 милисекунд 
09 digitalWrite(led_pin, LOW); // выключаем светодиод
10 delay(100); // ждем 300 милисекунд
и т.д.

Cлучайные товары

Посмотреть товар в Магазине »

Мы в соц сетях

Подпишись на канал Telegram

Portal-PK (Портал ПК) © 2015 - 2024
Разработка проектов
AT Block
DWIN Box