![]() |
|
![]() |
#1 |
Administrator
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,618
Вес репутации: 9824 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]()
При правильных настройках stty можно обойтись без конденсатора
|
![]() |
![]() |
![]() |
#2 |
Senior Member
Регистрация: 24.04.2014
Сообщений: 120
Вес репутации: 0 ![]() |
![]()
да? классно)
только у меня все равно не работает(( через раз почему-то(( иногда ввожу в терминале на роутере cat /dev/ttyACM0 или cat /dev/ttyUSB0 (в терминале выводится tx-com=x) и прокатывает то, что мой 53 светодиод загорается при нажатии клавиш, т.е. Serial.available() срабатывает (но опять же повторюсь, не всегда((( ), вот скетч: Код:
#include <AFMotor.h> // Подключаем библиотеку для управления двигателями AF_DCMotor motor1(1); //создаем мотор №1 AF_DCMotor motor2(2); //создаем мотор №2 AF_DCMotor motor3(3); //создаем мотор №1 AF_DCMotor motor4(4); //создаем мотор №2 int led = 53; //встроенный светодиод (Будет мигать как только Ардуино получит данные с роутера) int incomingByte = 0; //в этой переменной храним поступившие данные void setup() { Serial.begin(9600); //включаем передачу данных на скорости 9600 бит/c pinMode(led, OUTPUT); //указываем выход на пин 53 (Светодиод, индикатор данных) motor1.setSpeed(255); //Скорость движка №1 motor2.setSpeed(255); //Скорость движка №2 motor3.setSpeed(255); //Скорость движка №1 motor4.setSpeed(255); //Скорость движка №2 } void loop() { incomingByte = 0; if(Serial.available() > 0) //Если есть доступные данные, то считываем их { incomingByte = Serial.read(); //Присваиваем переменной incomingByte наши считанные данные digitalWrite(led, HIGH); //Зажигаем встроенный светодиод, так как пошло считывание данных //--- Делаем соответствующее действие --- if(incomingByte == 119) //Нажали кнопку W { motor1.run(FORWARD); //движемся вперед motor2.run(FORWARD); //движемся вперед motor3.run(FORWARD); //движемся вперед motor4.run(FORWARD); //движемся вперед delay(250); //Включаем на 250 милисек Serial.println("Vpered"); //Печатает данные в порт } if(incomingByte == 115) //Нажали кнопку S { motor1.run(BACKWARD); //движемся назад motor2.run(BACKWARD); //движемся назад motor3.run(BACKWARD); //движемся назад motor4.run(BACKWARD); //движемся назад delay(250); //Включаем на 250 милисек Serial.println("Nazad"); //Печатает данные в порт } if(incomingByte == 97) //Нажали кнопку A { motor2.run(FORWARD); //Повернем влево motor3.run(FORWARD); //Повернем влево motor1.run(RELEASE); //Останавливаем колеса motor4.run(RELEASE); //Останавливаем колеса Serial.println("Vlevo"); //Печатает данные в порт } if(incomingByte == 100) //Нажали кнопку D { motor1.run(FORWARD); //Повернем вправо motor4.run(FORWARD); //Повернем вправо motor2.run(RELEASE); //Останавливаем колеса motor3.run(RELEASE); //Останавливаем колеса Serial.println("Vpravo"); //Печатает данные в порт } digitalWrite(led, LOW); //Тушим светодиод, так как чтение данных закончилось //--- Мониторим присланные данные --- Serial.print("Dannie: "); Serial.println(incomingByte, DEC); //Пишем данные которые приняли в порт } } |
![]() |
![]() |
![]() |
Здесь присутствуют: 11 (пользователей: 0 , гостей: 11) | |
Опции темы | Поиск в этой теме |
Опции просмотра | |
|
|