Форум обсуждения систем  

Вернуться   Форум обсуждения систем "Умный дом", проектов Ардуино, OpenWRT и других DIY устройств > Форум умного дома > Сделай сам > OpenWRT/LEDE

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
Старый 02.08.2014, 18:04   #1
Admin
Administrator
 
Аватар для Admin
 
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,618
Вес репутации: 9824
Admin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant future
По умолчанию Re: Arduino Mega 2560 + TP-LINK MR3020 + C#/C++

При правильных настройках stty можно обойтись без конденсатора
Admin вне форума   Ответить с цитированием
Старый 02.08.2014, 18:52   #2
NeaWeaR
Senior Member
 
Регистрация: 24.04.2014
Сообщений: 120
Вес репутации: 0
NeaWeaR is an unknown quantity at this point
По умолчанию Re: Arduino Mega 2560 + TP-LINK MR3020 + C#/C++

Цитата:
Сообщение от Admin Посмотреть сообщение
При правильных настройках stty можно обойтись без конденсатора
да? классно)

только у меня все равно не работает((
через раз почему-то((

иногда ввожу в терминале на роутере 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); //Пишем данные которые приняли в порт
  }             
}
NeaWeaR вне форума   Ответить с цитированием
Ответ


Здесь присутствуют: 11 (пользователей: 0 , гостей: 11)
 
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра
Комбинированный вид Комбинированный вид

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Текущее время: 16:55. Часовой пояс GMT +3.


Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd. Перевод: zCarot
Яндекс.Метрика