Для чего нужен ОрбиКрафт
Подсистемы конструктора
Инструкции по работе с ОрбиКрафт
Уроки
Лабораторная оснастка
Знакомство с Arduino
Полезная нагрузка на базе Arduino
Обратная связь
Новости
Для чего нужен ОрбиКрафт
Подсистемы конструктора
Инструкции по работе с ОрбиКрафт
Уроки
Лабораторная оснастка
Знакомство с Arduino
Полезная нагрузка на базе Arduino
Обратная связь
Новости
Не всю информацию можно отобразить с помощью светодиодов, иногда нужно выводить какой-то текст или, наоборот, считывать текстовые команды. Т.е. взаимодействовать с программой во время ее выполнения. И в этом нам поможет монитор последовательного интерфейса или как его еще называют монитор порта. Это специальная область, с помощью которой можно взаимодействовать с программой: выводить туда какую-либо информацию(состояние кнопки, показания датчиков, текст) или считывать с нее введенные команды. Последовательное соединение на английском будет Serial.
Поэтому все функции, связанные с монитором последовательного интерфейса, начинаются словом Serial.
Serial.begin(9600) - команда для начала работы с монитором последовательного интерфейса. 9600 - скорость передачи данных в монитор последовательного интерфейса. Эта команда пишется в процедуре void setup().
Serial.println() - вывод данных с переносом строки. Как будто после вывода данных нажимается клавиша Enter.
Serial.available() - проверка введены ли команды в окно ввода команд в мониторе последовательного интерфейса.
Serial.read() - считывает введенные в монитор последовательного интерфейса команды.
Для отображения монитора последовательного интерфейса нажмите на соответствующую кнопку в правом нижнем углу, и он откроется.
Выводим в монитор последовательного интерфейса данные о состоянии кнопки. Кнопка соединена по схеме PULL DOWN. Будет выведено 1 - если кнопка нажата, и 0 - если отпущена.
//создаем переменную для кнопки #define button 7 void setup(){ //настраиваем пин, к которому подключена кнопка, как вход pinMode(button, INPUT); //настраиваем работу с монитором порта Serial.begin(9600); } void loop(){ Serial.println(digitalRead(button)); //выводим в монитор порта состояние кнопки delay(500); //ждем полсекунды }
//создаем переменную для кнопки #define button 7 void setup(){ //настраиваем пин, к которому подключена кнопка, как вход pinMode(button, INPUT); //настраиваем работу с монитором порта Serial.begin(9600); } void loop(){ Serial.print("Button state: "); //выводим в монитор порта фразу "Button state: " Serial.println(digitalRead(button)); //выводим состояние кнопки delay(500); //ждем полсекунды }
Считываем данные с монитора порта. Для их сохранения используем переменную data символьного типа char. Так как введенные команды не сохраняются автоматически в мониторе порта, будем их выводить самостоятельно, использую команду Serial.print().
int led = 5; //создаем переменную для светодиода char data = 0; //создаем переменную для хранения введенных в монитор последовательного интерфейса команд void setup(){ Serial.begin(9600); //настраиваем работу с монитором порта pinMode(led, OUTPUT); //настраиваем пин со светодиодом как выход } void loop(){ if (Serial.available() > 0){ //проверяем поступили ли команды в монитор порта data = Serial.read(); //считываем полученные команды Serial.print(data); //выводим в монитор порта полученную команду if (data == 'R'){ //если переменная data == 'R' - включаем светодиод, digitalWrite(led, HIGH); } else if (data == 'r'){ //а если 'r' - выключаем светодиод digitalWrite(led, LOW); } } }
Подробнее о Serial.begin() можно прочитать здесь http://arduino.ru/Serial/Begin
Подробнее о Serial.print() можно прочитать здесь http://arduino.ru/Reference/Serial/Print
Подробнее о Serial.read() можно прочитать здесь http://arduino.ru/Reference/Serial/Read
1. Соберите схему с Arduino и двумя кнопками, подключенными к пинам 5 и 6 с помощью резисторов номиналом 10 кОм. Запрограммируйте Arduino чтобы при нажатии первой кнопки в монитор порта выводилась фраза «Button 1», а при нажатии второй кнопки «Button 2».
2. Соберите схему с Arduino и двумя светодиодами, подключенными к пинам 8 и 12 с помощью резисторов 390 Ом. Запрограммируйте Arduino чтобы при считывании из монитора порта значения «1» включался первый светодиод, а при считывании значения «2» он выключался. И, аналогично, при считывании из порта значения «3» должен включаться второй светодиод, а при считывании значения «4» он должен выключаться.