Serial.print – с помощью этой команды мы можем выводить сообщения или какие-либо значения в Serial monitor. Еще есть ко- манда Serial.println. Она так же выводит сообщение, но с новой строки.
Сообщение должно выводиться в виде: Serial.println(“Текст сообщения”);
Serial.available() > 0. В этом куске кода мы проверяем, есть ли какие-то команды, а если есть, приступаем к определению, что за команда пришла и выполняем эту команду.
Переменная типа char может хранить один алфавитно- цифровой символ (литеру). При объявление литеры используются одиночные кавычки: 'O'
Serial.read – команда считывает команды, вводимые в Serial monitor.
Потенциометр и Serial monitor
Потенциометр или переменный резистор – это делитель из двух резисторов в одном корпусе. Сопротивление меняется пово- ротом ручки.
Мы соберем схему, которая будет в зависимости от поворота потенциометра отправлять в Serial monitor тестовые сообщения. Можно на основе скетча, вместо тестовых сообщений, выполнять нужные нам действия.
Рис. 3.6 Внешний вид подключения потенциометра к плате Arduino
Пример программного кода 3.5:
#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 (значение, из- Меньш, изБольш, вМеньш, вБольш), где Значение – это значение, которое мы переносим, изМеньш ,изБольш – это крайние значения текущего диапазона значений, вМеньш, вБольш – это крайние зна- чения нового диапазона значений.
Считываем последовательную строку ввода из последова- тельного монитора порта, ищем три разделенных запятыми целые числа с новой строкой в конце. Значения должны быть между 0 и
255. Программа использует эти значения для установки цвета све- тодиода RGB, прикрепленного к контактам 9-11.
Пример программного кода 3.6:
String inString = ""; // переменная для ввода потока данных int currentColor = 0;
int red, green, blue = 0;
Достарыңызбен бөлісу: |