Проблема с ARDUINO
- Войдите на сайт для отправки комментариев
Сб, 31/10/2015 - 11:14
Всем привет!
Начал осваивать функции библиотеки RemoteXY,
после того как составил интерфейс, сделал код
/////////////////////////////////////////////
// RemoteXY include library //
// use ANDROID app version 3.2.1 or up //
/////////////////////////////////////////////
/* определение режима соединения и подключение библиотеки RemoteXY */
#define REMOTEXY_MODE__SOFTWARESERIAL
#include <SoftwareSerial.h>
#include <RemoteXY.h>
/* настройки соединения */
#define REMOTEXY_SERIAL_RX 2
#define REMOTEXY_SERIAL_TX 3
#define REMOTEXY_SERIAL_SPEED 9600
/* конфигурация интерфейса */
unsigned char RemoteXY_CONF[] =
{ 11,0,125,0,3,5,4,0,2,1
,6,58,1,4,0,12,1,6,58,6
,4,0,22,1,7,58,4,2,0,35
,3,16,6,2,79,78,0,79,70,70
,0,2,0,35,22,16,6,2,79,78
,0,79,70,70,0,2,0,35,32,16
,6,2,79,78,0,79,70,70,0,2
,0,35,41,16,6,2,79,78,0,79
,70,70,0,2,0,35,52,16,6,2
,79,78,0,79,70,70,0,2,0,35
,12,16,6,2,79,78,0,79,70,70
,0,1,0,82,40,12,12,2,88,0
,1,0,64,40,12,12,1,120,0 };
/* структура определяет все переменные вашего интерфейса управления */
struct {
/* input variable */
signed char slider_1; /* =0..100 положение слайдера */
signed char slider_2; /* =0..100 положение слайдера */
signed char slider_3; /* =0..100 положение слайдера */
unsigned char switch_1; /* =1 если переключатель включен и =0 если отключен */
unsigned char switch_2; /* =1 если переключатель включен и =0 если отключен */
unsigned char switch_3; /* =1 если переключатель включен и =0 если отключен */
unsigned char switch_4; /* =1 если переключатель включен и =0 если отключен */
unsigned char switch_5; /* =1 если переключатель включен и =0 если отключен */
; /* =1 если переключатель включен и =0 если отключен */
unsigned char button_1; /* =1 если кнопка нажата, иначе =0 */
unsigned char button_2; /* =1 если кнопка нажата, иначе =0 */
/* other variable */
unsigned char connect_flag; /* =1 if wire connected, else =0 */
} RemoteXY;
/////////////////////////////////////////////
// END RemoteXY include //
/////////////////////////////////////////////
#define PIN_SWITCH_1 4
#define PIN_SWITCH_2 7
#define PIN_SWITCH_3 8
#define PIN_SWITCH_4 10
#define PIN_SWITCH_5 11
#define PIN_BUTTON_1 13
#define PIN_BUTTON_2 12
#define led1 5
#define led2 6
#define led3 9
void setup()
{
RemoteXY_Init ();
pinMode (PIN_SWITCH_1, OUTPUT);
pinMode (PIN_SWITCH_2, OUTPUT);
pinMode (PIN_SWITCH_3, OUTPUT);
pinMode (PIN_SWITCH_4, OUTPUT);
pinMode (PIN_SWITCH_5, OUTPUT);
pinMode (PIN_BUTTON_1, OUTPUT);
pinMode (PIN_BUTTON_2, OUTPUT);
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
pinMode(led3, OUTPUT);
RemoteXY.slider_1 = 0;
RemoteXY.slider_2 = 0;
RemoteXY.slider_3 = 0;// TODO you setup code
}
void loop()
{
RemoteXY_Handler ();
digitalWrite(PIN_SWITCH_1, (RemoteXY.switch_1==0)?LOW:HIGH);
digitalWrite(PIN_SWITCH_2, (RemoteXY.switch_2==0)?LOW:HIGH);
digitalWrite(PIN_SWITCH_3, (RemoteXY.switch_3==0)?LOW:HIGH);
digitalWrite(PIN_SWITCH_4, (RemoteXY.switch_4==0)?LOW:HIGH);
digitalWrite(PIN_SWITCH_5, (RemoteXY.switch_5==0)?LOW:HIGH);
digitalWrite(PIN_BUTTON_1, (RemoteXY.button_1==0)?LOW:HIGH);
digitalWrite(PIN_BUTTON_2, (RemoteXY.button_2==0)?LOW:HIGH);
int r;
int g;
int b; // TODO you loop code
// используйте структуру RemoteXY для передачи данных
r= RemoteXY.slider_1*2.5;
g= RemoteXY.slider_2*2.5;
b= RemoteXY.slider_3*2.5;
analogWrite(led1,r);
analogWrite(led2,g);
analogWrite(led3,b);
}
загрузил в ARDUINO LEONARDO, после попытки перепраграмммировать, компьютер выдал: устройвство USB не опознано,
ЧТО делать?
Попробуйте зажать ресет и подключать с зажатым.
ЗЫ. Прямо эпидемия. Сам 2 дня долбусь, просто треш. Пару лет все работало, тот же аппаратный комплект с Наной, на ноут месяц не ставил вобще нового софта. В проекте (заливается многократно, стабильно) добавлен ИК приемник, ну полярность подключения перепутал, бес видать попутал (хелоуин же).
Тут начало цикла.
USB отключился по току. Проверяю USB - работает, флешку принимает. Подключаю ардуино - устройство не опознано PID_0000VID_0000. Переставляю драйвера из старых провереных, долбу всеми средствами, иногда опознает, но редко. После опознания перехожу на начало цикла :)))
После многих попыток надолбал такой путь. Если USB отрубался по току - переставить дрова. В остальных случаях подключать ардуинку при зажатом ресете. В половине случаев помогает. Не отключать без надобности!!! Вчера целый день стабильно шилась и обменивалась, вечером отключил, подключаю - не опознана, подключаю при зажатом ресете- ОК. Сегодня также. По току больше не перегружал.
Может производитель FTDI снова с пиратами бодается?!
Решил проблему так:
Взял самый маленький и простой скетч,
подключил ардуино к компьютеру и нажал загрузить,
в этот момент нажал резет
и... ура
загрузка выполнена успешно.