Реклама ⓘ
Главная » Arduino
Призовой фонд
на апрель 2024 г.
1. 100 руб.
От пользователей

Похожие статьи:


Реклама ⓘ

Курс Arduino - Serial Monitor

Как управлять устройством?

В этом уроке мы научимся давать указания нашим устройствам. Сразу к делу.

Что нам нужно

  • Светодиод
  • Резистор 220 Ом
  • Потенциометр
  • Соединительные провода «Папа – Папа»

Serial monitor

Для начала попробуем управлять режимами работы светодиода с помощью Serial monitor.

Соберем простенькую схему:

 

Код к схеме

#define LED 13

void setup() {
  Serial.begin(9600); //Установим соединение с компьютером.
  
  //Выведем в Serial два сообщения
  //Кстати, на русском сообщение будет отображаться некорректно.
  Serial.println("Write: on - for turn led on, off - for turn led off, blink - for blink");
  Serial.println("Wait for commands");
  pinMode(LED, OUTPUT);
}

void loop() {
  
  if(Serial.available() > 0) //Проверяем, пришла ли команда.
  {
   char cmd = Serial.read(); //Объявим переменную, в которую будем запоминать команду.

   //Команду можно ввести и капсом.
   //Для этого опишем возможные варианты пришедших команд.
   
   if (cmd == 'o' || cmd == 'O')      //Если пришла команда ON
    {
    digitalWrite(LED, HIGH);          //Включаем светодиод
    }
    if (cmd == 'f' || cmd == 'F')     //Если пришла команда OFF
    {
    digitalWrite(LED, LOW);           //Выключаем светодиод
    }
    if( cmd == 'b' || cmd == 'B')     //Если пришла команда Blink
    {  
      for( int i = 0; i < 10; i++)    //Мигаем светодиодом
      {
      digitalWrite(LED, HIGH);
      delay(600);
      digitalWrite(LED, LOW); 
      delay(600);
      }
    }  
  }
}

Пояснения

Serial.print С помощью этой команды мы можем выводить сообщения или какие-либо значения в Serial monitor.Еще есть команда Serial.println. Она так же выводит сообщение, но с новой строки.

Сообщение должно выводиться в виде: Serial.println(“Текст сообщения”);

На русском так просто текст не вывести. Если написать текст на русском, в Serial monitor вы увидите странные символы. Как это исправить сегодня мы рассматривать не будем.

Serial.available() > 0 В этом куске кода мы проверяем, есть ли какие-то команды, а если есть, приступаем к определению, что за команда пришла и выполняем эту команду.

Char  Переменная типа char  может хранить один алфавитно-цифровой символ (литеру). При объявление литеры используются одиночные кавычки: 'O' 

Serial.read  Эта команда считывает команды, вводимые в Serial monitor.

Потенциометр и Serial monitor

Потенциометр или переменный резистор – это делитель из двух резисторов в одном корпусе. Сопротивление меняется поворотом ручки.

Мы соберем схему, которая будет в зависимости от поворота потенциометра отправлять в Serial monitor тестовые сообщения. Можно на основе скетча, вместо тестовых сообщений, выполнять нужные нам действия.

Код

#define POT A0

void setup() 
{
  pinMode(POT, INPUT);
  Serial.begin(9600);                  //Установим связь с компьютером.
  Serial.println("Enter command V.");  //Это сообщение просит ввести команду.
  
}

void loop()
{
  int pot = analogRead(POT);
  int val = analogRead(POT);
  val = map(val, 0, 1023, 0, 3); 
// 250 градусов возможного поворота потенциометра разобьем на 4 части.
  
                
// По запросу, будем выводить на экран значение, считываемое с  потенциометра.
 if(Serial.available() > 0) 
  {
   char cmd = Serial.read(); 
   if( cmd == 'v' || cmd == 'V')
   {
   Serial.println(" Potentiometr's value: ");
   Serial.println(pot);
   delay(1000);
   }

              //Здесь, вместо выведения сообщений в сериал может быть любой код.
             //Получается, что поворачивая потенциометр мы меняем исполняемую в данный  
            //момент команду.
   if(val == 0)
   {
    Serial.println("Command 0");
   }
   else if(val == 1)
   {
    Serial.println("Command 1");
   }
   else if(val == 2)
   {
    Serial.println("Command 2");
   }
    else if(val == 3)
   {
    Serial.println("Command 3");
   }
  }
}

Пояснения

Map - пропорционально переносит значение из текущего диапазона значений в новый диапазон, заданный параметрами.

В общем виде map можно записать так : map(значение, изМеньш, изБольш, вМеньш, вБольш);

Значение - это значение, которое мы переносим.

изМеньш ,изБольш – это крайние значения текущего диапазона значений

вМеньш, вБольш – это крайние значения нового диапазона значений.

Вывод

На этом наш урок заканчивается. Можно переходить к следующему. Теперь ты можешь давать указания своему устройству через Serial monitor и потенциометр. Опираясь на знания, полученные в этом уроке можно придумать и другие способы отправки команд на контроллер. Чем мы и займемся, но  немного позже.

Список радиоэлементов

Обозначение Тип Номинал Количество ПримечаниеМагазинМой блокнот
Плата Arduino
Arduino Uno
1 Поиск в магазине ОтронВ блокнот
Светодиод
АЛ102Б
1 Поиск в магазине ОтронВ блокнот
Резистор
220 Ом
1 Поиск в магазине ОтронВ блокнот
Переменный резистор10 кОм1 Поиск в магазине ОтронВ блокнот
Соединительные провода"Папа-Папа"1 Поиск в магазине ОтронВ блокнот
Макетная платаBreadboard-half1 Поиск в магазине ОтронВ блокнот
Добавить все

Скачать список элементов (PDF)

Прикрепленные файлы:

Теги:

Опубликована: 0 0
Я собрал 0 0
x

Оценить статью

  • Техническая грамотность
  • Актуальность материала
  • Изложение материала
  • Полезность устройства
  • Повторяемость устройства
  • Орфография
0

Средний балл статьи: 0 Проголосовало: 0 чел.

Комментарии (1) | Я собрал (0) | Подписаться

0
dziersinsky #
Кстати, вместо стандартного монитора, можно использовать альтернативные софтины для отображения данных. Например https://www.eltima.com/arduino-serial-monitor-alternative/
Ответить
Добавить комментарий
Имя:
E-mail:
не публикуется
Текст:
Защита от спама:
В чем измеряется электрическая мощность?
Файлы:
 
Для выбора нескольких файлов использйте CTRL

Arduino UNO
Arduino UNO
FM-модуль RDA5807M Квадрокоптер Syma X11
вверх