Лабораторная работа №4 Управление трехцветным rgb-светодиодом по сигналу с компьютера



бет7/9
Дата07.02.2022
өлшемі447,76 Kb.
#82345
түріЛабораторная работа
1   2   3   4   5   6   7   8   9
Байланысты:
Лабораторная работа № 4–5

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;


Достарыңызбен бөлісу:
1   2   3   4   5   6   7   8   9




©engime.org 2024
әкімшілігінің қараңыз

    Басты бет