PDA

Просмотр полной версии : Резистивные кнопки под андроид


Страницы : 1 [2] 3 4

Artemka181
16.06.2014, 07:38
Делаю так как написано, все проходит но как USB hid не определяется. В андройде не работает тоже.

Chubaka885
09.08.2014, 20:08
Помню где то на форуме было решение одновременной работы андройд клавиатуры при подключенной внешней. Кто нибудь даст ссылку?
Поиском найти не могу.

з.ы решение не установкой APK а изменением кода в прошивке.

SpawnUA
11.08.2014, 14:08
Одновременное использование экранной и внешней клавы возможно, если поставить Smart Keyboard - там можно настроить чтобы показывалась и экранная клава.

Chubaka885
02.09.2014, 21:57
Одновременное использование экранной и внешней клавы возможно, если поставить Smart Keyboard - там можно настроить чтобы показывалась и экранная клава.
Спасибо!, но я хотел без установки APK. Видел что можно где что то прописать, а гле видел не помню.

Artemka181
05.09.2014, 21:05
Приветствую. Приобрел ардуино леонардо. Заливаю скетч кнопки работают. Коды кнопокподобрал. Но вот данный скетч не работает.Планшет на него не реагирует хотя как устройство ввода определил. Что могу делать не так ?
Набор резестивных кнопок подключен к А0
// Для рулевых кнопок
uint8_t buf[8] = {
0 };

// реле питания звуковой карты
#define relePin4 11

// Задержки между нажатиями конкретных кнопок, миллисекунды
#define KEY_CH_VOL_MINUS_DELAY (200)
#define KEY_CH_VOL_PLUS_DELAY (200)
#define KEY_CH_PAUSE_DELAY (200)
#define KEY_CH_PREV_TRACK_DELAY (400)
#define KEY_CH_FORW_TRACK_DELAY (400)
#define KEY_CH_TAB_DELAY (200)
#define KEY_CH_ESC_DELAY (200)
#define KEY_CH_AUDIO_OFF_DELAY (400)
#define KEY_CH_PLUS_DELAY (200)
#define KEY_MODE_DELAY (200)
#define KEY_MODE_DELAY (200)
#define KEY_MODE_DELAY (200)
#define KEY_MODE_DELAY (200)

// Значения кнопок значение "1500" свободные кнопки, если у вас больше 6 кнопок, можете использовать прописав свои значения
#define KEY_CH_VOL_MINUS (540)
#define KEY_CH_VOL_PLUS (337)
#define KEY_CH_PAUSE (1500)
#define KEY_CH_PREV_TRACK (500)
#define KEY_CH_FORW_TRACK (251)
#define KEY_CH_TAB (484)
#define KEY_CH_ESC (217)
#define KEY_CH_AUDIO_OFF (1500)
#define KEY_CH_PLUS (1500)
#define KEY_CH_MINUS (1500)


// Погрешность при чтении кнопок
#define KEY_DELTA (10)

// Коды кнопок, что отсылаем в порт внешней проге, 0 пустое значение при добавлении кнопок больше 6-ти, пропишите коды желаемых кнопок
#define CH_VOL_MINUS (81)
#define CH_VOL_PLUS (82)
#define CH_PAUSE (0)
#define CH_PREV_TRACK (80)
#define CH_FORW_TRACK (79)
#define CH_TAB (72)
#define CH_ESC (74)
#define CH_AUDIO_OFF (0)
#define CH_PLUS (0)
#define CH_MINUS (0)
#define NONE (0)

// Кнопки
#define ACCPin 2 // через делитель к ACC // в моем случае к питанию uno 5в
#define ControlPin A1 // через делитель к +12В // в моем случае к питанию uno 5в
#define relePin1 8 // реле разрыва OTG 5 контакт
#define relePin2 9 // реле датчика хола
#define relePin3 10 // реле активации усилителей
#define ONHUB 1000 // время включения реле HUB
#define ONTablet 4000 // время включения планшета
#define ONAudio 9000 // время включения аудио
#define OFFHUB 8000 // время выключения реле HUB---//моем случае не используется, контролируется реле задержкой К0
#define OFFTablet 3000 // время выключения планшета //в моем случае не используется, контролируется реле задержкой К0
#define OFFAudio 10 // время выключения аудио // в моем случае не используется, контролируется реле задержкой К0

unsigned long LastTimeKeyPressed = millis();
unsigned long duration, millisold, off = 0;
boolean stateACC, relestate1, relestate2,relestate3,relestate4 = 0;
int LastKeyPressed = NONE;
int flag = 1;
int flag2 = 0;
void setup()
{
Serial.begin(9600);
pinMode(relePin1, OUTPUT);
pinMode(relePin2, OUTPUT);
pinMode(relePin3, OUTPUT);
pinMode(relePin4, OUTPUT);
}
void loop()
{
ReadSteering();
Knopki();
delay(10);
}
// Читает рулевые кнопки и пишет в порт код нажатой кнопки
void ReadSteering()
{
pinMode(relePin4, OUTPUT);
digitalWrite(relePin4,flag );
unsigned long TimeKeyPressed;
int KeyPressed = NONE;
int dt1 = analogRead(A0);
delay(10);
Serial.println(dt1); // Раскомментировать для вывода и обозначения значения кнопок в монитор
int dt2 = analogRead(A0);
//Serial.println(dt2);
if (abs(dt1-dt2)<=490 and dt1<1024 ) //если нет дребезга и что-то есть
{
// Регистрируем время нажатия кнопки
TimeKeyPressed = millis(); //получить реальное время

//CH_VOL_MINUS
if ( (dt1-KEY_DELTA <= KEY_CH_VOL_MINUS) and (dt1+KEY_DELTA >= KEY_CH_VOL_MINUS) )
{
if ( (LastKeyPressed != CH_VOL_MINUS) or (abs(TimeKeyPressed-LastTimeKeyPressed) >= KEY_CH_VOL_MINUS_DELAY))
{
LastKeyPressed = CH_VOL_MINUS;
buf[2] = CH_VOL_MINUS;
LastTimeKeyPressed = TimeKeyPressed;
Serial.write(buf, 8);
releaseKey();
}
}
//CH_VOL_PLUS
else if ( (dt1-KEY_DELTA <= KEY_CH_VOL_PLUS) and (dt1+KEY_DELTA >=KEY_CH_VOL_PLUS) )
{
if ( (LastKeyPressed != CH_VOL_PLUS) or (abs(TimeKeyPressed-LastTimeKeyPressed) >= KEY_CH_VOL_PLUS_DELAY) )
{
LastKeyPressed = CH_VOL_PLUS;
buf[2]=CH_VOL_PLUS;
LastTimeKeyPressed = TimeKeyPressed;
Serial.write(buf, 8);
releaseKey();
}
}
//CH_PAUSE
else if ( (dt1-KEY_DELTA <= KEY_CH_PAUSE) and (dt1+KEY_DELTA >=KEY_CH_PAUSE) )
{
if ( (LastKeyPressed != CH_PAUSE) or (abs(TimeKeyPressed-LastTimeKeyPressed) >= KEY_CH_PAUSE_DELAY) )
{
LastKeyPressed = CH_PAUSE;
buf[2]=CH_PAUSE;
LastTimeKeyPressed = TimeKeyPressed;
Serial.write(buf, 8);
releaseKey();
}
}
//CH_PREV_TRACK
else if ( (dt1-KEY_DELTA <= KEY_CH_PREV_TRACK) and (dt1+KEY_DELTA >=KEY_CH_PREV_TRACK) )
{
if ( (LastKeyPressed != CH_PREV_TRACK) or (abs(TimeKeyPressed-LastTimeKeyPressed) >= KEY_CH_PREV_TRACK_DELAY) )
{
LastKeyPressed = CH_PREV_TRACK;
buf[2]=CH_PREV_TRACK;
LastTimeKeyPressed = TimeKeyPressed;
Serial.write(buf, 8);
releaseKey();
}
}
//CH_FORW_TRACK
else if ( (dt1-KEY_DELTA <= KEY_CH_FORW_TRACK) and (dt1+KEY_DELTA >=KEY_CH_FORW_TRACK) )
{
if ( (LastKeyPressed != CH_FORW_TRACK) or (abs(TimeKeyPressed-LastTimeKeyPressed) >= KEY_CH_FORW_TRACK_DELAY) )
{
LastKeyPressed = CH_FORW_TRACK;
buf[2]=CH_FORW_TRACK;
LastTimeKeyPressed = TimeKeyPressed;
Serial.write(buf, 8);
releaseKey();
}
}
//CH_TAB
else if ( (dt1-KEY_DELTA <= KEY_CH_TAB) and (dt1+KEY_DELTA >=KEY_CH_TAB) )
{
if ( (LastKeyPressed != CH_TAB) or (abs(TimeKeyPressed-LastTimeKeyPressed) >= KEY_CH_TAB_DELAY) )
{
LastKeyPressed = CH_TAB;
buf[2]=CH_TAB;
LastTimeKeyPressed = TimeKeyPressed;
Serial.write(buf, 8);
releaseKey();
}
}
//CH_ESC
else if ( (dt1-KEY_DELTA <= KEY_CH_ESC) and (dt1+KEY_DELTA >=KEY_CH_ESC) )
{
if ( (LastKeyPressed != CH_ESC) or (abs(TimeKeyPressed-LastTimeKeyPressed) >= KEY_CH_ESC_DELAY) )
{
LastKeyPressed = CH_ESC;
buf[2]=CH_ESC;
LastTimeKeyPressed = TimeKeyPressed;
Serial.write(buf, 8);
releaseKey();
}
}
//CH_AUDIO_OFF
else if ( (dt1-KEY_DELTA <= KEY_CH_AUDIO_OFF) and (dt1+KEY_DELTA >=KEY_CH_AUDIO_OFF) )
{
if ( (LastKeyPressed != CH_AUDIO_OFF) or (abs(TimeKeyPressed-LastTimeKeyPressed) >= KEY_CH_AUDIO_OFF_DELAY)&& flag==1)
{
digitalWrite(relePin4, flag2);
flag = 0;
flag2 = 1;
}
else if ( (LastKeyPressed != CH_AUDIO_OFF) or (abs(TimeKeyPressed-LastTimeKeyPressed) >= KEY_CH_AUDIO_OFF_DELAY)&& flag==0)
{
digitalWrite(relePin4, flag2);
flag = 1;
flag2 = 0;
}
LastKeyPressed = CH_AUDIO_OFF;
LastTimeKeyPressed = TimeKeyPressed;
releaseKey();
}

//CH_PLUS
else if ( (dt1-KEY_DELTA <= KEY_CH_PLUS) and (dt1+KEY_DELTA >=KEY_CH_PLUS) )
{
if ( (LastKeyPressed != CH_PLUS) or (abs(TimeKeyPressed-LastTimeKeyPressed) >= KEY_CH_PLUS_DELAY) )
{
LastKeyPressed = CH_PLUS;
buf[2]=CH_MINUS;
LastTimeKeyPressed = TimeKeyPressed;
Serial.write(buf, 8);
releaseKey();
}
}
//CH_PLUS
else if ( (dt1-KEY_DELTA <= KEY_CH_PLUS) and (dt1+KEY_DELTA >=KEY_CH_PLUS) )
{
if ( (LastKeyPressed != CH_PLUS) or (abs(TimeKeyPressed-LastTimeKeyPressed) >= KEY_CH_PLUS_DELAY) )
{
LastKeyPressed = CH_PLUS;
buf[2]=CH_MINUS;
LastTimeKeyPressed = TimeKeyPressed;
Serial.write(buf, 8);
releaseKey();
}
}
//CH_PLUS
else if ( (dt1-KEY_DELTA <= KEY_CH_PLUS) and (dt1+KEY_DELTA >=KEY_CH_PLUS) )
{
if ( (LastKeyPressed != CH_PLUS) or (abs(TimeKeyPressed-LastTimeKeyPressed) >= KEY_CH_PLUS_DELAY) )
{
LastKeyPressed = CH_PLUS;
buf[2]=CH_MINUS;
LastTimeKeyPressed = TimeKeyPressed;
Serial.write(buf, 8);
releaseKey();
}
}
//CH_PLUS
else if ( (dt1-KEY_DELTA <= KEY_CH_PLUS) and (dt1+KEY_DELTA >=KEY_CH_PLUS) )
{
if ( (LastKeyPressed != CH_PLUS) or (abs(TimeKeyPressed-LastTimeKeyPressed) >= KEY_CH_PLUS_DELAY) )
{
LastKeyPressed = CH_PLUS;
buf[2]=CH_MINUS;
LastTimeKeyPressed = TimeKeyPressed;
Serial.write(buf, 8);
releaseKey();
}
}
//CH_PLUS
else if ( (dt1-KEY_DELTA <= KEY_CH_PLUS) and (dt1+KEY_DELTA >=KEY_CH_PLUS) )
{
if ( (LastKeyPressed != CH_PLUS) or (abs(TimeKeyPressed-LastTimeKeyPressed) >= KEY_CH_PLUS_DELAY) )
{
LastKeyPressed = CH_PLUS;
buf[2]=CH_MINUS;
LastTimeKeyPressed = TimeKeyPressed;
Serial.write(buf, 8);
releaseKey();
}
}
}
}

void releaseKey()
{
buf[0] = 0;
buf[2] = 0;
Serial.write(buf, 8); // Release key
}

void Knopki()
{
if (digitalRead(ACCPin)&&!stateACC) {
stateACC=1;
duration = millis();
}
if (!digitalRead(ACCPin)&&stateACC) {
stateACC=0;
off = millis();
}
if(digitalRead(ACCPin) && stateACC && millis ()-duration > ONHUB){
digitalWrite(relePin1, HIGH);
relestate1 = 1;
millisold = millis();
}
if(digitalRead(ACCPin) && stateACC && millis ()-duration > ONTablet){
digitalWrite(relePin2, HIGH);
relestate2 = 1;
millisold = millis();
}
if(digitalRead(ACCPin) && stateACC && millis ()-duration > ONAudio){
digitalWrite(relePin3, HIGH);
relestate3 = 1;
millisold = millis();
}
if(!digitalRead(ACCPin) && !stateACC && millis () -off> OFFHUB){
digitalWrite(relePin1, LOW);
relestate1 = 0;
millisold = millis();
}
if(!digitalRead(ACCPin) && !stateACC && millis () -off > OFFTablet){
digitalWrite(relePin2, LOW);
relestate2 = 0;
millisold = millis();
}
if(!digitalRead(ACCPin) && !stateACC && millis () -off > OFFAudio){
digitalWrite(relePin3, LOW);
relestate3 = 0;
millisold = millis();
}
}

lti1
05.09.2014, 22:23
Приветствую. Приобрел ардуино леонардо. Заливаю скетч кнопки работают. Коды кнопокподобрал. Но вот данный скетч не работает.Планшет на него не реагирует хотя как устройство ввода определил. Что могу делать не так ?
Набор резестивных кнопок подключен к А0
А чем этот (http://pccar.ru/showpost.php?p=288838&postcount=214) скетч не понравился?

Artemka181
06.09.2014, 19:04
А чем этот (http://pccar.ru/showpost.php?p=288838&postcount=214) скетч не понравился?
Хотелось питанием планшета поуправлять

Daniel
07.09.2014, 02:18
Хотелось питанием планшета поуправлять

Питание питанием, управляй на здоровье, но чтобы планшет принимал нажатия кнопок, как клавиатурные, нужно их посылать не в serial, а как в скетче выше, через remote или Keyboard. Это же леонардо, все уже реализовано.

Artemka181
07.09.2014, 17:42
Питание питанием, управляй на здоровье, но чтобы планшет принимал нажатия кнопок, как клавиатурные, нужно их посылать не в serial, а как в скетче выше, через remote или Keyboard. Это же леонардо, все уже реализовано.

Понял. Спасибо

ВладимирC
18.10.2014, 20:58
Готовый скетч для резестивных кнопок, любезно предоставленный lti1 за что ему огромное спасибо. Для работы требуются модифицированные USBAPI.h, HID.cpp. Скачать вложение с поста #182.
Скетч работает на arduino pro micro, arduino leonardo.

Алгоритм:
Кнопки громкости.
Одиночное нажатие - прибавление/убавление на одну единицу.
Удержание - прибавление/убавление до отпускания.

Кнопки следующий/предидущий трек
Одно нажатие - следующий/предидущий трек
Удержание - перемотка

Кнопка mode
первое нажатие - отсылается нажатие ALT и два раза TAB. Каждое следующее нажатие, если не истекло 800 мили сек. отсылает один раз TAB, ALT остаётся нажатым.
Удержание - плей/пауза.

int analogPin=6; //пин для подключения кнопок
int data;
unsigned long flag = 0;
unsigned long eventTime = 0;
unsigned long pauseMillis = 0;

void setup()
{
Keyboard.begin();
}

void loop()
{
data=analogRead(analogPin); //читаем значение нажатой кнопки

//********************** Громкость ************************************

if(data>=950 && flag == 0) // все кнопки отпущены
{
eventTime=millis();
}

if(millis()-eventTime>10 && millis()-eventTime<499 && data>=210 && data<=230 && flag == 0) // короткое нажатие кнопки от 10 до 499 миллисекунд (изменяется здесь millis()-eventTime>10 && millis()-eventTime<499)
{
Remote.increase();
flag = 5;
delay(10);
Remote.clear();
}

if(millis()-eventTime>500 && data>=210 && data<=230 && flag == 5 || data>=210 && data<=230 && flag == 3) // удержание кнопки от 500 до ? миллисекунд (изменяется здесь millis()-eventTime>500)
{
Remote.increase(); // действие после удержание кнопки, Увеличить громкость каждые 0,1 секунды
flag = 3;
Remote.clear();
delay(100);
}

if(millis()-eventTime>10 && millis()-eventTime<499 && data>=457 && data<=477 && flag == 0) // короткое нажатие кнопки от 10 до 499 миллисекунд (изменяется здесь millis()-eventTime>10 && millis()-eventTime<499)
{
Remote.decrease();
flag = 6;
delay(10);
Remote.clear();
}

if(millis()-eventTime>500 && data>=457 && data<=477 && flag == 6 || data>=457 && data<=477 && flag == 3) // удержание кнопки от 500 до ? миллисекунд (изменяется здесь millis()-eventTime>500)
{
Remote.decrease(); // действие после удержание кнопки, Уменьшить громкость каждые 0,1 секунды
flag = 3;
Remote.clear();
delay(100);
}

//********************** AltTab + Play/pause ************************************

if(millis()-eventTime>10 && millis()-eventTime<499 && data>=567 && data<=587) // короткое нажатие кнопки от 10 до 499 миллисекунд (изменяется здесь millis()-eventTime>10 && millis()-eventTime<499)
{
flag = 1;
}

if(data>=950 && flag == 1 && pauseMillis == 0) // действие после короткого нажатия кнопки, Alt+Tab
{
Keyboard.press(KEY_LEFT_ALT);
Keyboard.press(KEY_TAB);
Keyboard.release(KEY_TAB);
Keyboard.press(KEY_TAB);
Keyboard.release(KEY_TAB);
flag = 0;
pauseMillis = millis();
}

if(data>=950 && flag == 1 && pauseMillis != 0) // действие после короткого повторного нажатия кнопки, Alt+Tab
{
Keyboard.press(KEY_TAB);
Keyboard.release(KEY_TAB);
flag = 0;
pauseMillis = millis();
}

if(pauseMillis && millis()-pauseMillis >= 800 && data>=950) // && flag == 7 && data>=950)
{
flag = 0;
pauseMillis = 0;
Keyboard.releaseAll();
}

if(millis()-eventTime>500 && data>=567 && data<=587 && flag == 1) // удержание кнопки от 500 до ? миллисекунд (изменяется здесь millis()-eventTime>500)
{
Remote.play_pause(); // действие после удержание кнопки, воспроизведение / пауза
flag = 0;
delay(10);
Remote.clear();
}
//********************** Next и Fast Forward ************************************

if(millis()-eventTime>10 && millis()-eventTime<499 && data>=0 && data<=10) // короткое нажатие кнопки от 10 до 499 миллисекунд (изменяется здесь millis()-eventTime>10 && millis()-eventTime<499)
{
flag = 2;
}

if(data>=950 && flag == 2) // действие после короткого нажатия кнопки, Next
{
Remote.next();
flag = 0;
delay(10);
Remote.clear();
}

if(millis()-eventTime>500 && data>=0 && data<=10 && flag == 2 || data>=0 && data<=10 && flag == 3) // удержание кнопки от 500 до ? миллисекунд (изменяется здесь millis()-eventTime>500)
{
Remote.forward(); // действие после удержание кнопки, Fast Forward
flag = 3;
Remote.clear();
delay(100);
}
//********************** Previous и Rewind ************************************

if(millis()-eventTime>10 && millis()-eventTime<499 && data>=74 && data<=94) // короткое нажатие кнопки от 10 до 499 миллисекунд (изменяется здесь millis()-eventTime>10 && millis()-eventTime<499)
{
flag = 4;
}

if(data>=950 && flag == 4) // действие после короткого нажатия кнопки, Previous
{
Remote.previous();
flag = 0;
delay(10);
Remote.clear();
}

if(millis()-eventTime>500 && data>=74 && data<=94 && flag == 4 || data>=74 && data<=94 && flag == 3) // удержание кнопки от 500 до ? миллисекунд (изменяется здесь millis()-eventTime>500)
{
Remote.rewind(); // действие после удержание кнопки, Rewind
flag = 3;
Remote.clear();
delay(100);
}

if(data>=950 && flag == 3 || data>=950 && flag == 5 || data>=950 && flag == 6) // действие после отпускания кнопки
{
flag = 0;
}
}

Подскажи, плиз, это готовый скетч, т.е. я заливаю, компилирую и все должно работать? Я пытаюсь, но мне кучу ошибок выдает, файлы менял.

Chubaka885
18.10.2014, 21:40
ВладимирC Версия программы Arduino какая?

Найдите в сети Arduino 1.0.4 и попробуйте ей.

Скетч готовый, Вам понадобится только подставить свои значения кнопок.

ВладимирC
18.10.2014, 21:45
ВладимирC Версия программы Arduino какая?

Найдите в сети Arduino 1.0.4 и попробуйте ей.

Скетч готовый, Вам понадобится только подставить свои значения кнопок.

Версия 1,06, ща попробую.

lti1
18.10.2014, 22:07
Подскажи, плиз, это готовый скетч, т.е. я заливаю, компилирую и все должно работать? Я пытаюсь, но мне кучу ошибок выдает, файлы менял.
Какие ошибки выдает? Какую плату используете?

ВладимирC
18.10.2014, 22:32
Какие ошибки выдает? Какую плату используете?
Плата про микро. Поменял версию проги с 1.06 на 1.04, теперь проверка проходит, но происходит такая фигня:
Плата устанавливается, появляется в компортах, определяется как леонардо, порт 16. При заливке скетча вдруг находится снова, уже на следующем порту, загрузка останавливается, но не выходит из нее.

ВладимирC
18.10.2014, 22:42
Вот что пишет после компиляции








E:\Ардуино\arduino-1.0.4\hardware\tools\avr\bin\avr-g++ -c -g -Os -Wall -fno-exceptions -ffunction-sections -fdata-sections -mmcu=atmega32u4 -DF_CPU=16000000L -MMD -DUSB_VID=0x2341 -DUSB_PID=0x8036 -DARDUINO=104 -IE:\Ардуино\arduino-1.0.4\hardware\arduino\cores\arduino -IE:\Ардуино\arduino-1.0.4\hardware\arduino\variants\leonardo X:\TEMP\build1403068033382097150.tmp\sketch_oct18a .cpp -o X:\TEMP\build1403068033382097150.tmp\sketch_oct18a .cpp.o
sketch_oct18a.ino: In function 'void loop()':
sketch_oct18a.ino:31: warning: suggest parentheses around && within ||
sketch_oct18a.ino:47: warning: suggest parentheses around && within ||
sketch_oct18a.ino:110: warning: suggest parentheses around && within ||
sketch_oct18a.ino:132: warning: suggest parentheses around && within ||
sketch_oct18a.ino:140: warning: suggest parentheses around && within ||
sketch_oct18a.ino:140: warning: suggest parentheses around && within ||
E:\Ардуино\arduino-1.0.4\hardware\tools\avr\bin\avr-gcc -c -g -Os -Wall -ffunction-sections -fdata-sections -mmcu=atmega32u4 -DF_CPU=16000000L -MMD -DUSB_VID=0x2341 -DUSB_PID=0x8036 -DARDUINO=104 -IE:\Ардуино\arduino-1.0.4\hardware\arduino\cores\arduino -IE:\Ардуино\arduino-1.0.4\hardware\arduino\variants\leonardo E:\Ардуино\arduino-1.0.4\hardware\arduino\cores\arduino\malloc.c -o X:\TEMP\build1403068033382097150.tmp\malloc.c.o
E:\Ардуино\arduino-1.0.4\hardware\arduino\cores\arduino\malloc.c:67: warning: initialization makes pointer from integer without a cast
E:\Ардуино\arduino-1.0.4\hardware\tools\avr\bin\avr-gcc -c -g -Os -Wall -ffunction-sections -fdata-sections -mmcu=atmega32u4 -DF_CPU=16000000L -MMD -DUSB_VID=0x2341 -DUSB_PID=0x8036 -DARDUINO=104 -IE:\Ардуино\arduino-1.0.4\hardware\arduino\cores\arduino -IE:\Ардуино\arduino-1.0.4\hardware\arduino\variants\leonardo E:\Ардуино\arduino-1.0.4\hardware\arduino\cores\arduino\WInterrupts.c -o X:\TEMP\build1403068033382097150.tmp\WInterrupts.c .o
E:\Ардуино\arduino-1.0.4\hardware\tools\avr\bin\avr-gcc -c -g -Os -Wall -ffunction-sections -fdata-sections -mmcu=atmega32u4 -DF_CPU=16000000L -MMD -DUSB_VID=0x2341 -DUSB_PID=0x8036 -DARDUINO=104 -IE:\Ардуино\arduino-1.0.4\hardware\arduino\cores\arduino -IE:\Ардуино\arduino-1.0.4\hardware\arduino\variants\leonardo E:\Ардуино\arduino-1.0.4\hardware\arduino\cores\arduino\wiring.c -o X:\TEMP\build1403068033382097150.tmp\wiring.c.o
E:\Ардуино\arduino-1.0.4\hardware\arduino\cores\arduino\wiring.c:264: 3: warning: #warning Timer 2 not finished (may not be present on this CPU)
E:\Ардуино\arduino-1.0.4\hardware\arduino\cores\arduino\wiring.c:273: 3: warning: #warning Timer 2 not finished (may not be present on this CPU)
E:\Ардуино\arduino-1.0.4\hardware\tools\avr\bin\avr-gcc -c -g -Os -Wall -ffunction-sections -fdata-sections -mmcu=atmega32u4 -DF_CPU=16000000L -MMD -DUSB_VID=0x2341 -DUSB_PID=0x8036 -DARDUINO=104 -IE:\Ардуино\arduino-1.0.4\hardware\arduino\cores\arduino -IE:\Ардуино\arduino-1.0.4\hardware\arduino\variants\leonardo E:\Ардуино\arduino-1.0.4\hardware\arduino\cores\arduino\wiring_analog .c -o X:\TEMP\build1403068033382097150.tmp\wiring_analog .c.o
E:\Ардуино\arduino-1.0.4\hardware\tools\avr\bin\avr-gcc -c -g -Os -Wall -ffunction-sections -fdata-sections -mmcu=atmega32u4 -DF_CPU=16000000L -MMD -DUSB_VID=0x2341 -DUSB_PID=0x8036 -DARDUINO=104 -IE:\Ардуино\arduino-1.0.4\hardware\arduino\cores\arduino -IE:\Ардуино\arduino-1.0.4\hardware\arduino\variants\leonardo E:\Ардуино\arduino-1.0.4\hardware\arduino\cores\arduino\wiring_digita l.c -o X:\TEMP\build1403068033382097150.tmp\wiring_digita l.c.o
E:\Ардуино\arduino-1.0.4\hardware\tools\avr\bin\avr-gcc -c -g -Os -Wall -ffunction-sections -fdata-sections -mmcu=atmega32u4 -DF_CPU=16000000L -MMD -DUSB_VID=0x2341 -DUSB_PID=0x8036 -DARDUINO=104 -IE:\Ардуино\arduino-1.0.4\hardware\arduino\cores\arduino -IE:\Ардуино\arduino-1.0.4\hardware\arduino\variants\leonardo E:\Ардуино\arduino-1.0.4\hardware\arduino\cores\arduino\wiring_pulse. c -o X:\TEMP\build1403068033382097150.tmp\wiring_pulse. c.o
E:\Ардуино\arduino-1.0.4\hardware\tools\avr\bin\avr-gcc -c -g -Os -Wall -ffunction-sections -fdata-sections -mmcu=atmega32u4 -DF_CPU=16000000L -MMD -DUSB_VID=0x2341 -DUSB_PID=0x8036 -DARDUINO=104 -IE:\Ардуино\arduino-1.0.4\hardware\arduino\cores\arduino -IE:\Ардуино\arduino-1.0.4\hardware\arduino\variants\leonardo E:\Ардуино\arduino-1.0.4\hardware\arduino\cores\arduino\wiring_shift. c -o X:\TEMP\build1403068033382097150.tmp\wiring_shift. c.o
E:\Ардуино\arduino-1.0.4\hardware\tools\avr\bin\avr-g++ -c -g -Os -Wall -fno-exceptions -ffunction-sections -fdata-sections -mmcu=atmega32u4 -DF_CPU=16000000L -MMD -DUSB_VID=0x2341 -DUSB_PID=0x8036 -DARDUINO=104 -IE:\Ардуино\arduino-1.0.4\hardware\arduino\cores\arduino -IE:\Ардуино\arduino-1.0.4\hardware\arduino\variants\leonardo E:\Ардуино\arduino-1.0.4\hardware\arduino\cores\arduino\CDC.cpp -o X:\TEMP\build1403068033382097150.tmp\CDC.cpp.o
E:\Ардуино\arduino-1.0.4\hardware\tools\avr\bin\avr-g++ -c -g -Os -Wall -fno-exceptions -ffunction-sections -fdata-sections -mmcu=atmega32u4 -DF_CPU=16000000L -MMD -DUSB_VID=0x2341 -DUSB_PID=0x8036 -DARDUINO=104 -IE:\Ардуино\arduino-1.0.4\hardware\arduino\cores\arduino -IE:\Ардуино\arduino-1.0.4\hardware\arduino\variants\leonardo E:\Ардуино\arduino-1.0.4\hardware\arduino\cores\arduino\HardwareSeria l.cpp -o X:\TEMP\build1403068033382097150.tmp\HardwareSeria l.cpp.o
E:\Ардуино\arduino-1.0.4\hardware\arduino\cores\arduino\HardwareSeria l.cpp: In function 'void store_char(unsigned char, ring_buffer*)':
E:\Ардуино\arduino-1.0.4\hardware\arduino\cores\arduino\HardwareSeria l.cpp:98: warning: comparison between signed and unsigned integer expressions
E:\Ардуино\arduino-1.0.4\hardware\arduino\cores\arduino\HardwareSeria l.cpp: In function 'void __vector_25()':
E:\Ардуино\arduino-1.0.4\hardware\arduino\cores\arduino\HardwareSeria l.cpp:158: warning: unused variable 'c'
E:\Ардуино\arduino-1.0.4\hardware\arduino\cores\arduino\HardwareSeria l.cpp: In member function 'void HardwareSerial::begin(long unsigned int, byte)':
E:\Ардуино\arduino-1.0.4\hardware\arduino\cores\arduino\HardwareSeria l.cpp:379: warning: unused variable 'current_config'
E:\Ардуино\arduino-1.0.4\hardware\arduino\cores\arduino\HardwareSeria l.cpp: In member function 'virtual size_t HardwareSerial::write(uint8_t)':
E:\Ардуино\arduino-1.0.4\hardware\arduino\cores\arduino\HardwareSeria l.cpp:478: warning: comparison between signed and unsigned integer expressions
E:\Ардуино\arduino-1.0.4\hardware\tools\avr\bin\avr-g++ -c -g -Os -Wall -fno-exceptions -ffunction-sections -fdata-sections -mmcu=atmega32u4 -DF_CPU=16000000L -MMD -DUSB_VID=0x2341 -DUSB_PID=0x8036 -DARDUINO=104 -IE:\Ардуино\arduino-1.0.4\hardware\arduino\cores\arduino -IE:\Ардуино\arduino-1.0.4\hardware\arduino\variants\leonardo E:\Ардуино\arduino-1.0.4\hardware\arduino\cores\arduino\HID.cpp -o X:\TEMP\build1403068033382097150.tmp\HID.cpp.o
E:\Ардуино\arduino-1.0.4\hardware\arduino\cores\arduino\HID.cpp: In member function 'virtual size_t Keyboard_::write(uint8_t)':
E:\Ардуино\arduino-1.0.4\hardware\arduino\cores\arduino\HID.cpp:568: warning: unused variable 'r'
E:\Ардуино\arduino-1.0.4\hardware\tools\avr\bin\avr-g++ -c -g -Os -Wall -fno-exceptions -ffunction-sections -fdata-sections -mmcu=atmega32u4 -DF_CPU=16000000L -MMD -DUSB_VID=0x2341 -DUSB_PID=0x8036 -DARDUINO=104 -IE:\Ардуино\arduino-1.0.4\hardware\arduino\cores\arduino -IE:\Ардуино\arduino-1.0.4\hardware\arduino\variants\leonardo E:\Ардуино\arduino-1.0.4\hardware\arduino\cores\arduino\IPAddress.cpp -o X:\TEMP\build1403068033382097150.tmp\IPAddress.cpp .o
E:\Ардуино\arduino-1.0.4\hardware\tools\avr\bin\avr-g++ -c -g -Os -Wall -fno-exceptions -ffunction-sections -fdata-sections -mmcu=atmega32u4 -DF_CPU=16000000L -MMD -DUSB_VID=0x2341 -DUSB_PID=0x8036 -DARDUINO=104 -IE:\Ардуино\arduino-1.0.4\hardware\arduino\cores\arduino -IE:\Ардуино\arduino-1.0.4\hardware\arduino\variants\leonardo E:\Ардуино\arduino-1.0.4\hardware\arduino\cores\arduino\main.cpp -o X:\TEMP\build1403068033382097150.tmp\main.cpp.o
E:\Ардуино\arduino-1.0.4\hardware\tools\avr\bin\avr-g++ -c -g -Os -Wall -fno-exceptions -ffunction-sections -fdata-sections -mmcu=atmega32u4 -DF_CPU=16000000L -MMD -DUSB_VID=0x2341 -DUSB_PID=0x8036 -DARDUINO=104 -IE:\Ардуино\arduino-1.0.4\hardware\arduino\cores\arduino -IE:\Ардуино\arduino-1.0.4\hardware\arduino\variants\leonardo E:\Ардуино\arduino-1.0.4\hardware\arduino\cores\arduino\new.cpp -o X:\TEMP\build1403068033382097150.tmp\new.cpp.o
E:\Ардуино\arduino-1.0.4\hardware\tools\avr\bin\avr-g++ -c -g -Os -Wall -fno-exceptions -ffunction-sections -fdata-sections -mmcu=atmega32u4 -DF_CPU=16000000L -MMD -DUSB_VID=0x2341 -DUSB_PID=0x8036 -DARDUINO=104 -IE:\Ардуино\arduino-1.0.4\hardware\arduino\cores\arduino -IE:\Ардуино\arduino-1.0.4\hardware\arduino\variants\leonardo E:\Ардуино\arduino-1.0.4\hardware\arduino\cores\arduino\Print.cpp -o X:\TEMP\build1403068033382097150.tmp\Print.cpp.o
E:\Ардуино\arduino-1.0.4\hardware\arduino\cores\arduino\Print.cpp: In member function 'size_t Print::print(const __FlashStringHelper*)':
E:\Ардуино\arduino-1.0.4\hardware\arduino\cores\arduino\Print.cpp:44: warning: '__progmem__' attribute ignored
E:\Ардуино\arduino-1.0.4\hardware\tools\avr\bin\avr-g++ -c -g -Os -Wall -fno-exceptions -ffunction-sections -fdata-sections -mmcu=atmega32u4 -DF_CPU=16000000L -MMD -DUSB_VID=0x2341 -DUSB_PID=0x8036 -DARDUINO=104 -IE:\Ардуино\arduino-1.0.4\hardware\arduino\cores\arduino -IE:\Ардуино\arduino-1.0.4\hardware\arduino\variants\leonardo E:\Ардуино\arduino-1.0.4\hardware\arduino\cores\arduino\Stream.cpp -o X:\TEMP\build1403068033382097150.tmp\Stream.cpp.o
E:\Ардуино\arduino-1.0.4\hardware\tools\avr\bin\avr-g++ -c -g -Os -Wall -fno-exceptions -ffunction-sections -fdata-sections -mmcu=atmega32u4 -DF_CPU=16000000L -MMD -DUSB_VID=0x2341 -DUSB_PID=0x8036 -DARDUINO=104 -IE:\Ардуино\arduino-1.0.4\hardware\arduino\cores\arduino -IE:\Ардуино\arduino-1.0.4\hardware\arduino\variants\leonardo E:\Ардуино\arduino-1.0.4\hardware\arduino\cores\arduino\Tone.cpp -o X:\TEMP\build1403068033382097150.tmp\Tone.cpp.o
E:\Ардуино\arduino-1.0.4\hardware\arduino\cores\arduino\Tone.cpp:210: 12: warning: #warning this may not be correct
E:\Ардуино\arduino-1.0.4\hardware\arduino\cores\arduino\Tone.cpp:110: warning: only initialized variables can be placed into program memory area
E:\Ардуино\arduino-1.0.4\hardware\tools\avr\bin\avr-g++ -c -g -Os -Wall -fno-exceptions -ffunction-sections -fdata-sections -mmcu=atmega32u4 -DF_CPU=16000000L -MMD -DUSB_VID=0x2341 -DUSB_PID=0x8036 -DARDUINO=104 -IE:\Ардуино\arduino-1.0.4\hardware\arduino\cores\arduino -IE:\Ардуино\arduino-1.0.4\hardware\arduino\variants\leonardo E:\Ардуино\arduino-1.0.4\hardware\arduino\cores\arduino\USBCore.cpp -o X:\TEMP\build1403068033382097150.tmp\USBCore.cpp.o
E:\Ардуино\arduino-1.0.4\hardware\arduino\cores\arduino\USBCore.cpp: In function 'int USB_Send(u8, const void*, int)':
E:\Ардуино\arduino-1.0.4\hardware\arduino\cores\arduino\USBCore.cpp:2 78: warning: unused variable 'zero'
E:\Ардуино\arduino-1.0.4\hardware\tools\avr\bin\avr-g++ -c -g -Os -Wall -fno-exceptions -ffunction-sections -fdata-sections -mmcu=atmega32u4 -DF_CPU=16000000L -MMD -DUSB_VID=0x2341 -DUSB_PID=0x8036 -DARDUINO=104 -IE:\Ардуино\arduino-1.0.4\hardware\arduino\cores\arduino -IE:\Ардуино\arduino-1.0.4\hardware\arduino\variants\leonardo E:\Ардуино\arduino-1.0.4\hardware\arduino\cores\arduino\WMath.cpp -o X:\TEMP\build1403068033382097150.tmp\WMath.cpp.o
E:\Ардуино\arduino-1.0.4\hardware\tools\avr\bin\avr-g++ -c -g -Os -Wall -fno-exceptions -ffunction-sections -fdata-sections -mmcu=atmega32u4 -DF_CPU=16000000L -MMD -DUSB_VID=0x2341 -DUSB_PID=0x8036 -DARDUINO=104 -IE:\Ардуино\arduino-1.0.4\hardware\arduino\cores\arduino -IE:\Ардуино\arduino-1.0.4\hardware\arduino\variants\leonardo E:\Ардуино\arduino-1.0.4\hardware\arduino\cores\arduino\WString.cpp -o X:\TEMP\build1403068033382097150.tmp\WString.cpp.o
E:\Ардуино\arduino-1.0.4\hardware\tools\avr\bin\avr-ar rcs X:\TEMP\build1403068033382097150.tmp\core.a X:\TEMP\build1403068033382097150.tmp\malloc.c.o
E:\Ардуино\arduino-1.0.4\hardware\tools\avr\bin\avr-ar rcs X:\TEMP\build1403068033382097150.tmp\core.a X:\TEMP\build1403068033382097150.tmp\WInterrupts.c .o
E:\Ардуино\arduino-1.0.4\hardware\tools\avr\bin\avr-ar rcs X:\TEMP\build1403068033382097150.tmp\core.a X:\TEMP\build1403068033382097150.tmp\wiring.c.o
E:\Ардуино\arduino-1.0.4\hardware\tools\avr\bin\avr-ar rcs X:\TEMP\build1403068033382097150.tmp\core.a X:\TEMP\build1403068033382097150.tmp\wiring_analog .c.o
E:\Ардуино\arduino-1.0.4\hardware\tools\avr\bin\avr-ar rcs X:\TEMP\build1403068033382097150.tmp\core.a X:\TEMP\build1403068033382097150.tmp\wiring_digita l.c.o
E:\Ардуино\arduino-1.0.4\hardware\tools\avr\bin\avr-ar rcs X:\TEMP\build1403068033382097150.tmp\core.a X:\TEMP\build1403068033382097150.tmp\wiring_pulse. c.o
E:\Ардуино\arduino-1.0.4\hardware\tools\avr\bin\avr-ar rcs X:\TEMP\build1403068033382097150.tmp\core.a X:\TEMP\build1403068033382097150.tmp\wiring_shift. c.o
E:\Ардуино\arduino-1.0.4\hardware\tools\avr\bin\avr-ar rcs X:\TEMP\build1403068033382097150.tmp\core.a X:\TEMP\build1403068033382097150.tmp\CDC.cpp.o
E:\Ардуино\arduino-1.0.4\hardware\tools\avr\bin\avr-ar rcs X:\TEMP\build1403068033382097150.tmp\core.a X:\TEMP\build1403068033382097150.tmp\HardwareSeria l.cpp.o
E:\Ардуино\arduino-1.0.4\hardware\tools\avr\bin\avr-ar rcs X:\TEMP\build1403068033382097150.tmp\core.a X:\TEMP\build1403068033382097150.tmp\HID.cpp.o
E:\Ардуино\arduino-1.0.4\hardware\tools\avr\bin\avr-ar rcs X:\TEMP\build1403068033382097150.tmp\core.a X:\TEMP\build1403068033382097150.tmp\IPAddress.cpp .o
E:\Ардуино\arduino-1.0.4\hardware\tools\avr\bin\avr-ar rcs X:\TEMP\build1403068033382097150.tmp\core.a X:\TEMP\build1403068033382097150.tmp\main.cpp.o
E:\Ардуино\arduino-1.0.4\hardware\tools\avr\bin\avr-ar rcs X:\TEMP\build1403068033382097150.tmp\core.a X:\TEMP\build1403068033382097150.tmp\new.cpp.o
E:\Ардуино\arduino-1.0.4\hardware\tools\avr\bin\avr-ar rcs X:\TEMP\build1403068033382097150.tmp\core.a X:\TEMP\build1403068033382097150.tmp\Print.cpp.o
E:\Ардуино\arduino-1.0.4\hardware\tools\avr\bin\avr-ar rcs X:\TEMP\build1403068033382097150.tmp\core.a X:\TEMP\build1403068033382097150.tmp\Stream.cpp.o
E:\Ардуино\arduino-1.0.4\hardware\tools\avr\bin\avr-ar rcs X:\TEMP\build1403068033382097150.tmp\core.a X:\TEMP\build1403068033382097150.tmp\Tone.cpp.o
E:\Ардуино\arduino-1.0.4\hardware\tools\avr\bin\avr-ar rcs X:\TEMP\build1403068033382097150.tmp\core.a X:\TEMP\build1403068033382097150.tmp\USBCore.cpp.o
E:\Ардуино\arduino-1.0.4\hardware\tools\avr\bin\avr-ar rcs X:\TEMP\build1403068033382097150.tmp\core.a X:\TEMP\build1403068033382097150.tmp\WMath.cpp.o
E:\Ардуино\arduino-1.0.4\hardware\tools\avr\bin\avr-ar rcs X:\TEMP\build1403068033382097150.tmp\core.a X:\TEMP\build1403068033382097150.tmp\WString.cpp.o
E:\Ардуино\arduino-1.0.4\hardware\tools\avr\bin\avr-gcc -Os -Wl,--gc-sections -mmcu=atmega32u4 -o X:\TEMP\build1403068033382097150.tmp\sketch_oct18a .cpp.elf X:\TEMP\build1403068033382097150.tmp\sketch_oct18a .cpp.o X:\TEMP\build1403068033382097150.tmp\core.a -LX:\TEMP\build1403068033382097150.tmp -lm
E:\Ардуино\arduino-1.0.4\hardware\tools\avr\bin\avr-objcopy -O ihex -j .eeprom --set-section-flags=.eeprom=alloc,load --no-change-warnings --change-section-lma .eeprom=0 X:\TEMP\build1403068033382097150.tmp\sketch_oct18a .cpp.elf X:\TEMP\build1403068033382097150.tmp\sketch_oct18a .cpp.eep
E:\Ардуино\arduino-1.0.4\hardware\tools\avr\bin\avr-objcopy -O ihex -R .eeprom X:\TEMP\build1403068033382097150.tmp\sketch_oct18a .cpp.elf X:\TEMP\build1403068033382097150.tmp\sketch_oct18a .cpp.hex
Размер скетча в двоичном коде: 7*162 байт (из 28*672 байт максимум)

Насильно поменял сом порт на 3, перезагрузил, после этого загрузка прошла. Теперь светодиодик постоянно мигает. Правда я пока обвязку резисторами не делал.

Daniel
18.10.2014, 23:02
Все делаю на arduino 1.0.5 R2. С 1.0.6 действительно какая-то лажа, надо библиотеки переписывать. Из обвязки там всего один резистор, без нее у меня почему-то не пошло.

И ты убери русские имена папок, слышал, вроде, что она их не любит.

Chubaka885
18.10.2014, 23:02
Вот что пишет после компиляции
Насильно поменял сом порт на 3, перезагрузил, после этого загрузка прошла. Теперь светодиодик постоянно мигает. Правда я пока обвязку резисторами не делал.

В 1.0.6 есть какие-то проблемы с компилированием ProMicro. У меня было тоже самое.

Daniel
19.10.2014, 00:53
В 1.0.6 есть какие-то проблемы с компилированием ProMicro. У меня было тоже самое.

С Leonardo, если быть точным. ProMicro - это тоже Leonardo.

lti1
19.10.2014, 01:00
Теперь светодиодик постоянно мигает. Правда я пока обвязку резисторами не делал.Добавьте в void setup() digitalWrite(analogPin, HIGH);, при этом кнопки через сопротивление должны коммутироваться на массу.

ВладимирC
19.10.2014, 01:14
Добавьте в void setup() digitalWrite(analogPin, HIGH);, при этом кнопки через сопротивление должны коммутироваться на массу.
т.е. Вот так?
void setup()
{digitalWrite(analogPin, HIGH);
Keyboard.begin();}


Я первый день с ардуино, буду изучать конечно, но пока могу только готовые скетчи заливать)..... да и то как выянилось, без подсказок не обошлось))
ЗЫ Русские названия убрал.

ВладимирC
19.10.2014, 01:23
E:\Arduino\arduino-1.0.4\hardware\tools\avr\bin\avr-g++ -c -g -Os -Wall -fno-exceptions -ffunction-sections -fdata-sections -mmcu=atmega32u4 -DF_CPU=16000000L -MMD -DUSB_VID=0x2341 -DUSB_PID=0x8036 -DARDUINO=104 -IE:\Arduino\arduino-1.0.4\hardware\arduino\cores\arduino -IE:\Arduino\arduino-1.0.4\hardware\arduino\variants\leonardo X:\TEMP\build8376110162395595122.tmp\sketch_oct18a .cpp -o X:\TEMP\build8376110162395595122.tmp\sketch_oct18a .cpp.o
sketch_oct18a.ino: In function 'void loop()':
sketch_oct18a.ino:32: warning: suggest parentheses around && within ||
sketch_oct18a.ino:48: warning: suggest parentheses around && within ||
sketch_oct18a.ino:111: warning: suggest parentheses around && within ||
sketch_oct18a.ino:133: warning: suggest parentheses around && within ||
sketch_oct18a.ino:141: warning: suggest parentheses around && within ||
sketch_oct18a.ino:141: warning: suggest parentheses around && within ||
Using previously compiled: X:\TEMP\build8376110162395595122.tmp\malloc.c.o
Using previously compiled: X:\TEMP\build8376110162395595122.tmp\WInterrupts.c .o
Using previously compiled: X:\TEMP\build8376110162395595122.tmp\wiring.c.o
Using previously compiled: X:\TEMP\build8376110162395595122.tmp\wiring_analog .c.o
Using previously compiled: X:\TEMP\build8376110162395595122.tmp\wiring_digita l.c.o
Using previously compiled: X:\TEMP\build8376110162395595122.tmp\wiring_pulse. c.o
Using previously compiled: X:\TEMP\build8376110162395595122.tmp\wiring_shift. c.o
Using previously compiled: X:\TEMP\build8376110162395595122.tmp\CDC.cpp.o
Using previously compiled: X:\TEMP\build8376110162395595122.tmp\HardwareSeria l.cpp.o
Using previously compiled: X:\TEMP\build8376110162395595122.tmp\HID.cpp.o
Using previously compiled: X:\TEMP\build8376110162395595122.tmp\IPAddress.cpp .o
Using previously compiled: X:\TEMP\build8376110162395595122.tmp\main.cpp.o
Using previously compiled: X:\TEMP\build8376110162395595122.tmp\new.cpp.o
Using previously compiled: X:\TEMP\build8376110162395595122.tmp\Print.cpp.o
Using previously compiled: X:\TEMP\build8376110162395595122.tmp\Stream.cpp.o
Using previously compiled: X:\TEMP\build8376110162395595122.tmp\Tone.cpp.o
Using previously compiled: X:\TEMP\build8376110162395595122.tmp\USBCore.cpp.o
Using previously compiled: X:\TEMP\build8376110162395595122.tmp\WMath.cpp.o
Using previously compiled: X:\TEMP\build8376110162395595122.tmp\WString.cpp.o
E:\Arduino\arduino-1.0.4\hardware\tools\avr\bin\avr-ar rcs X:\TEMP\build8376110162395595122.tmp\core.a X:\TEMP\build8376110162395595122.tmp\malloc.c.o
E:\Arduino\arduino-1.0.4\hardware\tools\avr\bin\avr-ar rcs X:\TEMP\build8376110162395595122.tmp\core.a X:\TEMP\build8376110162395595122.tmp\WInterrupts.c .o
E:\Arduino\arduino-1.0.4\hardware\tools\avr\bin\avr-ar rcs X:\TEMP\build8376110162395595122.tmp\core.a X:\TEMP\build8376110162395595122.tmp\wiring.c.o
E:\Arduino\arduino-1.0.4\hardware\tools\avr\bin\avr-ar rcs X:\TEMP\build8376110162395595122.tmp\core.a X:\TEMP\build8376110162395595122.tmp\wiring_analog .c.o
E:\Arduino\arduino-1.0.4\hardware\tools\avr\bin\avr-ar rcs X:\TEMP\build8376110162395595122.tmp\core.a X:\TEMP\build8376110162395595122.tmp\wiring_digita l.c.o
E:\Arduino\arduino-1.0.4\hardware\tools\avr\bin\avr-ar rcs X:\TEMP\build8376110162395595122.tmp\core.a X:\TEMP\build8376110162395595122.tmp\wiring_pulse. c.o
E:\Arduino\arduino-1.0.4\hardware\tools\avr\bin\avr-ar rcs X:\TEMP\build8376110162395595122.tmp\core.a X:\TEMP\build8376110162395595122.tmp\wiring_shift. c.o
E:\Arduino\arduino-1.0.4\hardware\tools\avr\bin\avr-ar rcs X:\TEMP\build8376110162395595122.tmp\core.a X:\TEMP\build8376110162395595122.tmp\CDC.cpp.o
E:\Arduino\arduino-1.0.4\hardware\tools\avr\bin\avr-ar rcs X:\TEMP\build8376110162395595122.tmp\core.a X:\TEMP\build8376110162395595122.tmp\HardwareSeria l.cpp.o
E:\Arduino\arduino-1.0.4\hardware\tools\avr\bin\avr-ar rcs X:\TEMP\build8376110162395595122.tmp\core.a X:\TEMP\build8376110162395595122.tmp\HID.cpp.o
E:\Arduino\arduino-1.0.4\hardware\tools\avr\bin\avr-ar rcs X:\TEMP\build8376110162395595122.tmp\core.a X:\TEMP\build8376110162395595122.tmp\IPAddress.cpp .o
E:\Arduino\arduino-1.0.4\hardware\tools\avr\bin\avr-ar rcs X:\TEMP\build8376110162395595122.tmp\core.a X:\TEMP\build8376110162395595122.tmp\main.cpp.o
E:\Arduino\arduino-1.0.4\hardware\tools\avr\bin\avr-ar rcs X:\TEMP\build8376110162395595122.tmp\core.a X:\TEMP\build8376110162395595122.tmp\new.cpp.o
E:\Arduino\arduino-1.0.4\hardware\tools\avr\bin\avr-ar rcs X:\TEMP\build8376110162395595122.tmp\core.a X:\TEMP\build8376110162395595122.tmp\Print.cpp.o
E:\Arduino\arduino-1.0.4\hardware\tools\avr\bin\avr-ar rcs X:\TEMP\build8376110162395595122.tmp\core.a X:\TEMP\build8376110162395595122.tmp\Stream.cpp.o
E:\Arduino\arduino-1.0.4\hardware\tools\avr\bin\avr-ar rcs X:\TEMP\build8376110162395595122.tmp\core.a X:\TEMP\build8376110162395595122.tmp\Tone.cpp.o
E:\Arduino\arduino-1.0.4\hardware\tools\avr\bin\avr-ar rcs X:\TEMP\build8376110162395595122.tmp\core.a X:\TEMP\build8376110162395595122.tmp\USBCore.cpp.o
E:\Arduino\arduino-1.0.4\hardware\tools\avr\bin\avr-ar rcs X:\TEMP\build8376110162395595122.tmp\core.a X:\TEMP\build8376110162395595122.tmp\WMath.cpp.o
E:\Arduino\arduino-1.0.4\hardware\tools\avr\bin\avr-ar rcs X:\TEMP\build8376110162395595122.tmp\core.a X:\TEMP\build8376110162395595122.tmp\WString.cpp.o
E:\Arduino\arduino-1.0.4\hardware\tools\avr\bin\avr-gcc -Os -Wl,--gc-sections -mmcu=atmega32u4 -o X:\TEMP\build8376110162395595122.tmp\sketch_oct18a .cpp.elf X:\TEMP\build8376110162395595122.tmp\sketch_oct18a .cpp.o X:\TEMP\build8376110162395595122.tmp\core.a -LX:\TEMP\build8376110162395595122.tmp -lm
E:\Arduino\arduino-1.0.4\hardware\tools\avr\bin\avr-objcopy -O ihex -j .eeprom --set-section-flags=.eeprom=alloc,load --no-change-warnings --change-section-lma .eeprom=0 X:\TEMP\build8376110162395595122.tmp\sketch_oct18a .cpp.elf X:\TEMP\build8376110162395595122.tmp\sketch_oct18a .cpp.eep
E:\Arduino\arduino-1.0.4\hardware\tools\avr\bin\avr-objcopy -O ihex -R .eeprom X:\TEMP\build8376110162395595122.tmp\sketch_oct18a .cpp.elf X:\TEMP\build8376110162395595122.tmp\sketch_oct18a .cpp.hex
Размер скетча в двоичном коде: 7*430 байт (из 28*672 байт максимум)

lti1
19.10.2014, 03:47
т.е. Вот так?
void setup()
{
digitalWrite(analogPin, HIGH);
Keyboard.begin();
}
Да
Я первый день с ардуино, буду изучать конечно, но пока могу только готовые скетчи заливать)..... да и то как выянилось, без подсказок не обошлось))
Для получения значений Ваших кнопок используйте такой скетч:int analogPin=A0;
int data;

void setup()
{
Serial.begin(9600);
digitalWrite(analogPin, HIGH);
}

void loop()
{
data=analogRead(analogPin);
Serial.println(data);
delay(1000);
}В мониторе порта увидите значения.
Выход резистивных кнопок подключите к A0 pro micro.
Если в дальнейшем скетч pro micro не захочет заливаться попробуйте так (http://forumdvrobot.ru/forum/2-111-1).

ВладимирC
19.10.2014, 12:26
Спасибо огромное

ВладимирC
19.10.2014, 18:21
А возможно объединить это в один скетч, чтобы не перезаливать их туда сюда, а сразу вычислить кнопки и испытать, и перекинув проводов от кнопок? И если возможно, то как их состыковать?

Chubaka885
19.10.2014, 19:44
А возможно объединить это в один скетч, чтобы не перезаливать их туда сюда, а сразу вычислить кнопки и испытать, и перекинув проводов от кнопок? И если возможно, то как их состыковать?

Можно. Вот так.
int analogPin=A0; //пин для подключения кнопок
int data;
unsigned long flag = 0;
unsigned long eventTime = 0;
unsigned long pauseMillis = 0;

void setup()
{
Serial.begin(9600);
digitalWrite(analogPin, HIGH);
Keyboard.begin();
}

void loop()
{
data=analogRead(analogPin); //читаем значение нажатой кнопки
Serial.println(data);
delay(500);

//********************** Громкость ************************************

if(data>=950 && flag == 0) // все кнопки отпущены
{
eventTime=millis();
}

if(millis()-eventTime>10 && millis()-eventTime<499 && data>=210 && data<=230 && flag == 0) // короткое нажатие кнопки от 10 до 499 миллисекунд (изменяется здесь millis()-eventTime>10 && millis()-eventTime<499)
{
Remote.increase();
flag = 5;
delay(10);
Remote.clear();
}

if(millis()-eventTime>500 && data>=210 && data<=230 && flag == 5 || data>=210 && data<=230 && flag == 3) // удержание кнопки от 500 до ? миллисекунд (изменяется здесь millis()-eventTime>500)
{
Remote.increase(); // действие после удержание кнопки, Увеличить громкость каждые 0,1 секунды
flag = 3;
Remote.clear();
delay(100);
}

if(millis()-eventTime>10 && millis()-eventTime<499 && data>=457 && data<=477 && flag == 0) // короткое нажатие кнопки от 10 до 499 миллисекунд (изменяется здесь millis()-eventTime>10 && millis()-eventTime<499)
{
Remote.decrease();
flag = 6;
delay(10);
Remote.clear();
}

if(millis()-eventTime>500 && data>=457 && data<=477 && flag == 6 || data>=457 && data<=477 && flag == 3) // удержание кнопки от 500 до ? миллисекунд (изменяется здесь millis()-eventTime>500)
{
Remote.decrease(); // действие после удержание кнопки, Уменьшить громкость каждые 0,1 секунды
flag = 3;
Remote.clear();
delay(100);
}

//********************** AltTab + Play/pause ************************************

if(millis()-eventTime>10 && millis()-eventTime<499 && data>=567 && data<=587) // короткое нажатие кнопки от 10 до 499 миллисекунд (изменяется здесь millis()-eventTime>10 && millis()-eventTime<499)
{
flag = 1;
}

if(data>=950 && flag == 1 && pauseMillis == 0) // действие после короткого нажатия кнопки, Alt+Tab
{
Keyboard.press(KEY_LEFT_ALT);
Keyboard.press(KEY_TAB);
Keyboard.release(KEY_TAB);
Keyboard.press(KEY_TAB);
Keyboard.release(KEY_TAB);
flag = 0;
pauseMillis = millis();
}

if(data>=950 && flag == 1 && pauseMillis != 0) // действие после короткого повторного нажатия кнопки, Alt+Tab
{
Keyboard.press(KEY_TAB);
Keyboard.release(KEY_TAB);
flag = 0;
pauseMillis = millis();
}

if(pauseMillis && millis()-pauseMillis >= 800 && data>=950) // && flag == 7 && data>=950)
{
flag = 0;
pauseMillis = 0;
Keyboard.releaseAll();
}

if(millis()-eventTime>500 && data>=567 && data<=587 && flag == 1) // удержание кнопки от 500 до ? миллисекунд (изменяется здесь millis()-eventTime>500)
{
Remote.play_pause(); // действие после удержание кнопки, воспроизведение / пауза
flag = 0;
delay(10);
Remote.clear();
}
//********************** Next и Fast Forward ************************************

if(millis()-eventTime>10 && millis()-eventTime<499 && data>=0 && data<=10) // короткое нажатие кнопки от 10 до 499 миллисекунд (изменяется здесь millis()-eventTime>10 && millis()-eventTime<499)
{
flag = 2;
}

if(data>=950 && flag == 2) // действие после короткого нажатия кнопки, Next
{
Remote.next();
flag = 0;
delay(10);
Remote.clear();
}

if(millis()-eventTime>500 && data>=0 && data<=10 && flag == 2 || data>=0 && data<=10 && flag == 3) // удержание кнопки от 500 до ? миллисекунд (изменяется здесь millis()-eventTime>500)
{
Remote.forward(); // действие после удержание кнопки, Fast Forward
flag = 3;
Remote.clear();
delay(100);
}
//********************** Previous и Rewind ************************************

if(millis()-eventTime>10 && millis()-eventTime<499 && data>=74 && data<=94) // короткое нажатие кнопки от 10 до 499 миллисекунд (изменяется здесь millis()-eventTime>10 && millis()-eventTime<499)
{
flag = 4;
}

if(data>=950 && flag == 4) // действие после короткого нажатия кнопки, Previous
{
Remote.previous();
flag = 0;
delay(10);
Remote.clear();
}

if(millis()-eventTime>500 && data>=74 && data<=94 && flag == 4 || data>=74 && data<=94 && flag == 3) // удержание кнопки от 500 до ? миллисекунд (изменяется здесь millis()-eventTime>500)
{
Remote.rewind(); // действие после удержание кнопки, Rewind
flag = 3;
Remote.clear();
delay(100);
}

if(data>=950 && flag == 3 || data>=950 && flag == 5 || data>=950 && flag == 6) // действие после отпускания кнопки
{
flag = 0;
}
}

lti1
19.10.2014, 20:40
А возможно объединить это в один скетч, чтобы не перезаливать их туда сюда, а сразу вычислить кнопки и испытать, и перекинув проводов от кнопок? И если возможно, то как их состыковать?Зачем? Это два разных скетча, малым Вы вычисляете значения своих резистивных кнопок и подставляете эти значения в большой скетч, а уже потом его заливаете и тестируете. Например у вас значение для Play/Pause 455, в данном скетче это значение 577, значит Вам необходимо заменить data>=567 && data<=587 на data>=445 && data<=465. И еще если объединить, то в Serial будут литься данные, а об delay(500); будет спотыкаться, не давая нормально работать кнопкам.

ВладимирC
19.10.2014, 21:03
Зачем? Это два разных скетча, малым Вы вычисляете значения своих резистивных кнопок и подставляете эти значения в большой скетч, а уже потом его заливаете и тестируете. Например у вас значение для Play/Pause 455, в данном скетче это значение 577, значит Вам необходимо заменить data>=567 && data<=587 на data>=445 && data<=465. И еще если объединить, то в Serial будут литься данные, а об delay(500); будет спотыкаться, не давая нормально работать кнопкам.

Для чего второй скетч, я прекрасно понял. А спросил, потому, что хотел не отходя от кассы попробовать. Потом понял, что чтобы значения изменить, все равно перезаливать надо)).

ВладимирC
20.10.2014, 02:40
Еще вопрос, в основном скетче импользуется вход 6, в проверочном А0, почему? Если я ставлю резистор, не проще на одном порту и проверять и работать?
А, раз мы подтянули вход, то резистор не нужен, как я понимаю? Залил считывающий тест, пробовал резисторы разные подсовывать ( имитируя кнопки), вроде работает, на разные сопротивления, дает разные коды, без них шлет код 1022

lti1
20.10.2014, 15:06
Еще вопрос, в основном скетче импользуется вход 6, в проверочном А0, почему? Если я ставлю резистор, не проще на одном порту и проверять и работать?Почему в основном скетче используется вход 6 не помню, возможно пожелание Chubaka885, вообще должен использоваться любой из аналоговых входов A0-A3 (Pro micro).А, раз мы подтянули вход, то резистор не нужен, как я понимаю?Резистор не нужен, я предоставлял Вам примерную схему подключения.Залил считывающий тест, пробовал резисторы разные подсовывать ( имитируя кнопки), вроде работает, на разные сопротивления, дает разные коды, без них шлет код 10220 вольт - 0, 5 вольт - 1023
Аналого-цифровой преобразователь (http://arduino.ru/Tutorial/AnalogInputPins)Микроконтроллеры Atmega, используемые в Arduino, содержат шестиканальный аналого-цифровой преобразователь (АЦП). Разрешение преобразователя составляет 10 бит, что позволяет на выходе получать значения от 0 до 1023. Основным применением аналоговых входов большинства платформ Arduino является чтение аналоговых датчиком, но в тоже время они имеют функциональность вводов/выводов широкого применения (GPIO) (то же, что и цифровые порты ввода/вывода 0 - 13).

Stray
23.10.2014, 23:45
Уважаемые!
А что нужно отправить из Leonardo используя HID Keyboard для имитации кнопки выключения (гашения экрана)?
Перелопатил кучу инфы, ответ так и не найден.

vlad22
18.11.2014, 11:51
Всем доброго времени.
Сразу прошу ногами не пинать
Вопрос -имею Controller Board VS-TY2662-V1 и хочу избавиться от панельки с кнопками для управления монитором. Дайте совет или подскажите где можно взять информацию.
Владимир

ВладимирC
03.12.2014, 13:40
Появилась уверенность, что в штатных кнопках у меня стоит конденсатор, для гашения дребезга контактов. Потому как чем короче нажатие (до какого то определенного времени), тем больший код выдают кнопки. Еще одно подтверждение: чем больше по номиналу ставлю резистор на подтяжку по высокому уровню, тем больше становится время для устаканивания кода.

Alex_St
04.12.2014, 17:39
Всем доброго времени.
Сразу прошу ногами не пинать
Вопрос -имею Controller Board VS-TY2662-V1 и хочу избавиться от панельки с кнопками для управления монитором. Дайте совет или подскажите где можно взять информацию.
Владимир

А что именно надо после избавления?

demtro
10.01.2015, 23:19
А можно ли собрать на этом модуле (http://ru.aliexpress.com/item/Free-Shipping-Mini-Leonardo-Pro-Micro-ATmega32U4-5V-16MHz-Module-For-Arduino-Best-Quality/32252583700.html?recommendVersion=2)? Если да, то помогите со схемой и кодом

lti1
11.01.2015, 01:01
А можно ли собрать на этом модуле (http://ru.aliexpress.com/item/Free-Shipping-Mini-Leonardo-Pro-Micro-ATmega32U4-5V-16MHz-Module-For-Arduino-Best-Quality/32252583700.html?recommendVersion=2)? Если да, то помогите со схемой и кодом
Это Arduino Pro Micro, аналог Arduino Leonardo только меньше габариты, про них в основном в этой ветке и говорят.
http://pccar.ru/showpost.php?p=277286&postcount=182
http://pccar.ru/showpost.php?p=288838&postcount=214

demtro
11.01.2015, 08:33
А по схеме? На его схеме я не нашёл 5v

murano
11.01.2015, 10:24
не нашёл 5v
Думаю что это Vcc.

lti1
11.01.2015, 12:30
А по схеме? На его схеме я не нашёл 5v
Для питания Arduino? Она питается по USB.

demtro
11.01.2015, 23:56
Схема:
http://s019.radikal.ru/i619/1302/59/aaf33a89c468.png (http://www.radikal.ru)

Вот тут подключается на GND и 5v, а на том который я указывал куда подключать?

murano
12.01.2015, 11:29
RAW — внешнее питание для платы. Когда плата запитана от порта USB, на данном выводе будет напряжение около 4,8В (5В на USB минус падение на диоде Шоттки). Внешний источник питания следует подключать через этот вывод, допустимое напряжение — до 12В
VCC — напряжение, подаваемое на микроконтроллер (выход после регулятора напряжения на плате). Если плата запитана от внешнего источника, этот вывод можно использовать для питания других устройств стабилизированным напряжением
RST — вывод сброса микроконтроллера, подтянут к +5В резистором на 10кОм. Для сброса микроконтроллера его следует соединить с GND
GND — общий.

Daniel
12.01.2015, 11:40
Подключать 5В нужно на VCC, предварительно J1 спаять между собой.

gooffich
16.01.2015, 12:18
Приобрёл новую плату Leonardo. измерил показание кнопок:

Громкость + 393

громкость - 296

трек + 121

трек - 166

плей.пауза 32

моде 86

помогите написать скетч. если есть такая возможность, чтоб работала экранная клавиатура.

Chubaka885
16.01.2015, 15:51
Приобрёл новую плату Leonardo. измерил показание кнопок:

Громкость + 393

громкость - 296

трек + 121

трек - 166

плей.пауза 32

моде 86

помогите написать скетч. если есть такая возможность, чтоб работала экранная клавиатура.
Эту тему пошерстить не судьба?
Ну всего же 30 страниц. Тридцаааать. Не триста же....

gooffich
16.01.2015, 16:00
Эту тему пошерстить не судьба?
Ну всего же 30 страниц. Тридцаааать. Не триста же....
пробовал. не получается.

Chubaka885
16.01.2015, 16:08
пробовал. не получается.

Не получается что?, прочитать тему и найти готовый скетч.
Что касается того что бы работала экранная клавиатура, то это не зависит от скетча. Читайте эту тему (http://pccar.ru/showthread.php?t=19028&page=10)

gooffich
16.01.2015, 16:41
Не получается что?, прочитать тему и найти готовый скетч.
Что касается того что бы работала экранная клавиатура, то это не зависит от скетча. Читайте эту тему (http://pccar.ru/showthread.php?t=19028&page=10)
Скетчи разные пробовал. у меня при подключении ардуино к пк или планшету начинаются переполох. либо звук вкл,выкл. какие приложения открыты воспр. остан. громкость бегает туда сюда и многое бругое.
Да, что выбирать перед заливкой скетча фаил-параметры-....?

Chubaka885
16.01.2015, 19:19
Скетчи разные пробовал. у меня при подключении ардуино к пк или планшету начинаются переполох. либо звук вкл,выкл. какие приложения открыты воспр. остан. громкость бегает туда сюда и многое бругое.
Да, что выбирать перед заливкой скетча фаил-параметры-....?

Попробуйте залить этот (http://pccar.ru/showpost.php?p=288838&postcount=214) скетч.
Перед заливкой поменяйте файлы как написано в том сообщении, поменяйте номер аналогового пина на свой, и подставьте свои значения кнопок.
В параметрах менять нечего не надо, главное чтобы в сервис -> плата - было выбранно Arduino Leonardo и в сервис -> последовательный порт -был выбран номер порта вашей леонардо.
Для заливки скетча используйте ПО Arduino 1.0.4-r2 или Arduino 1.0.5-r2 в более высоких версиях замена файлов невозможна, там необходимо вносить изменения в сам файл.

А "переполох" у вас скорей всего из за неправильного подключения резистивной кнопки!

gooffich
18.01.2015, 17:40
Попробуйте залить этот (http://pccar.ru/showpost.php?p=288838&postcount=214) скетч.
Перед заливкой поменяйте файлы как написано в том сообщении, поменяйте номер аналогового пина на свой, и подставьте свои значения кнопок.
В параметрах менять нечего не надо, главное чтобы в сервис -> плата - было выбранно Arduino Leonardo и в сервис -> последовательный порт -был выбран номер порта вашей леонардо.
Для заливки скетча используйте ПО Arduino 1.0.4-r2 или Arduino 1.0.5-r2 в более высоких версиях замена файлов невозможна, там необходимо вносить изменения в сам файл.

А "переполох" у вас скорей всего из за неправильного подключения резистивной кнопки!

Спасибо! Это скедч подкорректировал, почти подошёл. Единственный минус - как мне сделать чтоб пауза\плей была на другой кнопке а не на кнопке моде при удержании? скетч прилагаю

int analogPin=0; //пин для подключения кнопок
int data;
unsigned long flag = 0;
unsigned long eventTime = 0;
unsigned long pauseMillis = 0;

void setup()
{
Keyboard.begin();
}

void loop()
{
data=analogRead(analogPin); //читаем значение нажатой кнопки

//********************** Громкость ************************************

if(data>=1023 && flag == 0) // все кнопки отпущены
{
eventTime=millis();
}

if(millis()-eventTime>10 && millis()-eventTime<499 && data>=884 && data<=904 && flag == 0) // короткое нажатие кнопки от 10 до 499 миллисекунд (изменяется здесь millis()-eventTime>10 && millis()-eventTime<499)
{
Remote.increase();
flag = 5;
delay(10);
Remote.clear();
}

if(millis()-eventTime>500 && data>=884 && data<=904 && flag == 5 || data>=210 && data<=230 && flag == 3) // удержание кнопки от 500 до ? миллисекунд (изменяется здесь millis()-eventTime>500)
{
Remote.increase(); // действие после удержание кнопки, Увеличить громкость каждые 0,1 секунды
flag = 3;
Remote.clear();
delay(100);
}

if(millis()-eventTime>10 && millis()-eventTime<499 && data>=824 && data<=844 && flag == 0) // короткое нажатие кнопки от 10 до 499 миллисекунд (изменяется здесь millis()-eventTime>10 && millis()-eventTime<499)
{
Remote.decrease();
flag = 6;
delay(10);
Remote.clear();
}

if(millis()-eventTime>500 && data>=824 && data<=844 && flag == 6 || data>=457 && data<=477 && flag == 3) // удержание кнопки от 500 до ? миллисекунд (изменяется здесь millis()-eventTime>500)
{
Remote.decrease(); // действие после удержание кнопки, Уменьшить громкость каждые 0,1 секунды
flag = 3;
Remote.clear();
delay(100);
}

//********************** AltTab + Play/pause ************************************

if(millis()-eventTime>10 && millis()-eventTime<499 && data>=462 && data<=482) // короткое нажатие кнопки от 10 до 499 миллисекунд (изменяется здесь millis()-eventTime>10 && millis()-eventTime<499)
{
flag = 1;
}

if(data>=1023 && flag == 1 && pauseMillis == 0) // действие после короткого нажатия кнопки, Alt+Tab
{
Keyboard.press(KEY_LEFT_ALT);
Keyboard.press(KEY_TAB);
Keyboard.release(KEY_TAB);
Keyboard.press(KEY_TAB);
Keyboard.release(KEY_TAB);
flag = 0;
pauseMillis = millis();
}

if(data>=1023 && flag == 1 && pauseMillis != 0) // действие после короткого повторного нажатия кнопки, Alt+Tab
{
Keyboard.press(KEY_TAB);
Keyboard.release(KEY_TAB);
flag = 0;
pauseMillis = millis();
}

if(pauseMillis && millis()-pauseMillis >= 800 && data>=1023) // && flag == 7 && data>=950)
{
flag = 0;
pauseMillis = 0;
Keyboard.releaseAll();
}

if(millis()-eventTime>500 && data>=567 && data<=587 && flag == 1) // удержание кнопки от 500 до ? миллисекунд (изменяется здесь millis()-eventTime>500)
{
Remote.play_pause(); // действие после удержание кнопки, воспроизведение / пауза
flag = 0;
delay(10);
Remote.clear();
}
//********************** Next и Fast Forward ************************************

if(millis()-eventTime>10 && millis()-eventTime<499 && data>=572 && data<=582) // короткое нажатие кнопки от 10 до 499 миллисекунд (изменяется здесь millis()-eventTime>10 && millis()-eventTime<499)
{
flag = 2;
}

if(data>=1023 && flag == 2) // действие после короткого нажатия кнопки, Next
{
Remote.next();
flag = 0;
delay(10);
Remote.clear();
}

if(millis()-eventTime>500 && data>=572 && data<=582 && flag == 2 || data>=0 && data<=10 && flag == 3) // удержание кнопки от 500 до ? миллисекунд (изменяется здесь millis()-eventTime>500)
{
Remote.forward(); // действие после удержание кнопки, Fast Forward
flag = 3;
Remote.clear();
delay(100);
}
//********************** Previous и Rewind ************************************

if(millis()-eventTime>10 && millis()-eventTime<499 && data>=671 && data<=691) // короткое нажатие кнопки от 10 до 499 миллисекунд (изменяется здесь millis()-eventTime>10 && millis()-eventTime<499)
{
flag = 4;
}

if(data>=1023 && flag == 4) // действие после короткого нажатия кнопки, Previous
{
Remote.previous();
flag = 0;
delay(10);
Remote.clear();
}

if(millis()-eventTime>500 && data>=671 && data<=691 && flag == 4 || data>=74 && data<=94 && flag == 3) // удержание кнопки от 500 до ? миллисекунд (изменяется здесь millis()-eventTime>500)
{
Remote.rewind(); // действие после удержание кнопки, Rewind
flag = 3;
Remote.clear();
delay(100);
}

if(data>=1023 && flag == 3 || data>=950 && flag == 5 || data>=950 && flag == 6) // действие после отпускания кнопки
{
flag = 0;
}
}

lti1
18.01.2015, 23:49
Единственный минус - как мне сделать чтоб пауза\плей была на другой кнопке а не на кнопке моде при удержании?
То есть, что бы AltTab и Play/pause были на разных кнопках и действовали при коротком нажатии? Если да, то так:
int analogPin=0; //пин для подключения кнопок
int data;
unsigned long flag = 0;
unsigned long eventTime = 0;
unsigned long pauseMillis = 0;

void setup()
{
Keyboard.begin();
}

void loop()
{
data=analogRead(analogPin); //читаем значение нажатой кнопки

//********************** Громкость ************************************

if(data>=1023 && flag == 0) // все кнопки отпущены
{
eventTime=millis();
}

if(millis()-eventTime>10 && millis()-eventTime<499 && data>=884 && data<=904 && flag == 0) // короткое нажатие кнопки от 10 до 499 миллисекунд (изменяется здесь millis()-eventTime>10 && millis()-eventTime<499)
{
Remote.increase();
flag = 5;
delay(10);
Remote.clear();
}

if(millis()-eventTime>500 && data>=884 && data<=904 && flag == 5 || data>=210 && data<=230 && flag == 3) // удержание кнопки от 500 до ? миллисекунд (изменяется здесь millis()-eventTime>500)
{
Remote.increase(); // действие после удержание кнопки, Увеличить громкость каждые 0,1 секунды
flag = 3;
Remote.clear();
delay(100);
}

if(millis()-eventTime>10 && millis()-eventTime<499 && data>=824 && data<=844 && flag == 0) // короткое нажатие кнопки от 10 до 499 миллисекунд (изменяется здесь millis()-eventTime>10 && millis()-eventTime<499)
{
Remote.decrease();
flag = 6;
delay(10);
Remote.clear();
}

if(millis()-eventTime>500 && data>=824 && data<=844 && flag == 6 || data>=457 && data<=477 && flag == 3) // удержание кнопки от 500 до ? миллисекунд (изменяется здесь millis()-eventTime>500)
{
Remote.decrease(); // действие после удержание кнопки, Уменьшить громкость каждые 0,1 секунды
flag = 3;
Remote.clear();
delay(100);
}

//********************** AltTab + Ещё что то ************************************

if(millis()-eventTime>10 && millis()-eventTime<499 && data>=462 && data<=482) // короткое нажатие кнопки от 10 до 499 миллисекунд (изменяется здесь millis()-eventTime>10 && millis()-eventTime<499)
{
flag = 1;
}

if(data>=1023 && flag == 1 && pauseMillis == 0) // действие после короткого нажатия кнопки, Alt+Tab
{
Keyboard.press(KEY_LEFT_ALT);
Keyboard.press(KEY_TAB);
Keyboard.release(KEY_TAB);
Keyboard.press(KEY_TAB);
Keyboard.release(KEY_TAB);
flag = 0;
pauseMillis = millis();
}

if(data>=1023 && flag == 1 && pauseMillis != 0) // действие после короткого повторного нажатия кнопки, Alt+Tab
{
Keyboard.press(KEY_TAB);
Keyboard.release(KEY_TAB);
flag = 0;
pauseMillis = millis();
}

if(pauseMillis && millis()-pauseMillis >= 800 && data>=1023) // && flag == 7 && data>=950)
{
flag = 0;
pauseMillis = 0;
Keyboard.releaseAll();
}

if(millis()-eventTime>500 && data>=567 && data<=587 && flag == 1) // удержание кнопки от 500 до ? миллисекунд (изменяется здесь millis()-eventTime>500)
{
//Remote.play_pause(); // действие после удержание кнопки, Ещё что то
flag = 0;
//delay(10);
//Remote.clear();
}
//********************** Next и Fast Forward ************************************

if(millis()-eventTime>10 && millis()-eventTime<499 && data>=572 && data<=582) // короткое нажатие кнопки от 10 до 499 миллисекунд (изменяется здесь millis()-eventTime>10 && millis()-eventTime<499)
{
flag = 2;
}

if(data>=1023 && flag == 2) // действие после короткого нажатия кнопки, Next
{
Remote.next();
flag = 0;
delay(10);
Remote.clear();
}

if(millis()-eventTime>500 && data>=572 && data<=582 && flag == 2 || data>=0 && data<=10 && flag == 3) // удержание кнопки от 500 до ? миллисекунд (изменяется здесь millis()-eventTime>500)
{
Remote.forward(); // действие после удержание кнопки, Fast Forward
flag = 3;
Remote.clear();
delay(100);
}
//********************** Previous и Rewind ************************************

if(millis()-eventTime>10 && millis()-eventTime<499 && data>=671 && data<=691) // короткое нажатие кнопки от 10 до 499 миллисекунд (изменяется здесь millis()-eventTime>10 && millis()-eventTime<499)
{
flag = 4;
}

if(data>=1023 && flag == 4) // действие после короткого нажатия кнопки, Previous
{
Remote.previous();
flag = 0;
delay(10);
Remote.clear();
}

if(millis()-eventTime>500 && data>=671 && data<=691 && flag == 4 || data>=74 && data<=94 && flag == 3) // удержание кнопки от 500 до ? миллисекунд (изменяется здесь millis()-eventTime>500)
{
Remote.rewind(); // действие после удержание кнопки, Rewind
flag = 3;
Remote.clear();
delay(100);
}

//********************** Play/pause + Ещё что то ************************************

if(millis()-eventTime>10 && millis()-eventTime<499 && data>=111 && data<=111) // короткое нажатие кнопки от 10 до 499 миллисекунд (изменяется здесь millis()-eventTime>10 && millis()-eventTime<499)
{
flag = 7;
}

if(data>=1023 && flag == 7) // действие после короткого нажатия кнопки, воспроизведение / пауза
{
Remote.play_pause();
flag = 0;
delay(10);
Remote.clear();
}

if(millis()-eventTime>500 && data>=111 && data<=111 && flag == 7) // удержание кнопки от 500 до ? миллисекунд (изменяется здесь millis()-eventTime>500)
{
//Remote.play_pause(); // действие после удержание кнопки, Ещё что то
flag = 0;
//delay(10);
//Remote.clear();
}

if(data>=1023 && flag == 3 || data>=1023 && flag == 5 || data>=1023 && flag == 6) // действие после отпускания кнопки
{
flag = 0;
}
}
Измените data<=111 на Ваши значения.

gooffich
19.01.2015, 12:23
Спасибо огромное!Теперь как часики.

demtro
29.01.2015, 19:00
Ребят проблемка есть, заливаю вот этот скетч:
int analogPin=0; //пин для подключения кнопок
int data;
unsigned long flag = 0;
unsigned long eventTime = 0;
unsigned long pauseMillis = 0;

void setup()
{
Keyboard.begin();
}

void loop()
{
data=analogRead(analogPin); //читаем значение нажатой кнопки

//********************** Громкость ************************************

if(data>=1023 && flag == 0) // все кнопки отпущены
{
eventTime=millis();
}

if(millis()-eventTime>10 && millis()-eventTime<499 && data>=884 && data<=904 && flag == 0) // короткое нажатие кнопки от 10 до 499 миллисекунд (изменяется здесь millis()-eventTime>10 && millis()-eventTime<499)
{
Remote.increase();
flag = 5;
delay(10);
Remote.clear();
}

if(millis()-eventTime>500 && data>=884 && data<=904 && flag == 5 || data>=210 && data<=230 && flag == 3) // удержание кнопки от 500 до ? миллисекунд (изменяется здесь millis()-eventTime>500)
{
Remote.increase(); // действие после удержание кнопки, Увеличить громкость каждые 0,1 секунды
flag = 3;
Remote.clear();
delay(100);
}

if(millis()-eventTime>10 && millis()-eventTime<499 && data>=824 && data<=844 && flag == 0) // короткое нажатие кнопки от 10 до 499 миллисекунд (изменяется здесь millis()-eventTime>10 && millis()-eventTime<499)
{
Remote.decrease();
flag = 6;
delay(10);
Remote.clear();
}

if(millis()-eventTime>500 && data>=824 && data<=844 && flag == 6 || data>=457 && data<=477 && flag == 3) // удержание кнопки от 500 до ? миллисекунд (изменяется здесь millis()-eventTime>500)
{
Remote.decrease(); // действие после удержание кнопки, Уменьшить громкость каждые 0,1 секунды
flag = 3;
Remote.clear();
delay(100);
}

//********************** AltTab + Ещё что то ************************************

if(millis()-eventTime>10 && millis()-eventTime<499 && data>=462 && data<=482) // короткое нажатие кнопки от 10 до 499 миллисекунд (изменяется здесь millis()-eventTime>10 && millis()-eventTime<499)
{
flag = 1;
}

if(data>=1023 && flag == 1 && pauseMillis == 0) // действие после короткого нажатия кнопки, Alt+Tab
{
Keyboard.press(KEY_LEFT_ALT);
Keyboard.press(KEY_TAB);
Keyboard.release(KEY_TAB);
Keyboard.press(KEY_TAB);
Keyboard.release(KEY_TAB);
flag = 0;
pauseMillis = millis();
}

if(data>=1023 && flag == 1 && pauseMillis != 0) // действие после короткого повторного нажатия кнопки, Alt+Tab
{
Keyboard.press(KEY_TAB);
Keyboard.release(KEY_TAB);
flag = 0;
pauseMillis = millis();
}

if(pauseMillis && millis()-pauseMillis >= 800 && data>=1023) // && flag == 7 && data>=950)
{
flag = 0;
pauseMillis = 0;
Keyboard.releaseAll();
}

if(millis()-eventTime>500 && data>=567 && data<=587 && flag == 1) // удержание кнопки от 500 до ? миллисекунд (изменяется здесь millis()-eventTime>500)
{
//Remote.play_pause(); // действие после удержание кнопки, Ещё что то
flag = 0;
//delay(10);
//Remote.clear();
}
//********************** Next и Fast Forward ************************************

if(millis()-eventTime>10 && millis()-eventTime<499 && data>=572 && data<=582) // короткое нажатие кнопки от 10 до 499 миллисекунд (изменяется здесь millis()-eventTime>10 && millis()-eventTime<499)
{
flag = 2;
}

if(data>=1023 && flag == 2) // действие после короткого нажатия кнопки, Next
{
Remote.next();
flag = 0;
delay(10);
Remote.clear();
}

if(millis()-eventTime>500 && data>=572 && data<=582 && flag == 2 || data>=0 && data<=10 && flag == 3) // удержание кнопки от 500 до ? миллисекунд (изменяется здесь millis()-eventTime>500)
{
Remote.forward(); // действие после удержание кнопки, Fast Forward
flag = 3;
Remote.clear();
delay(100);
}
//********************** Previous и Rewind ************************************

if(millis()-eventTime>10 && millis()-eventTime<499 && data>=671 && data<=691) // короткое нажатие кнопки от 10 до 499 миллисекунд (изменяется здесь millis()-eventTime>10 && millis()-eventTime<499)
{
flag = 4;
}

if(data>=1023 && flag == 4) // действие после короткого нажатия кнопки, Previous
{
Remote.previous();
flag = 0;
delay(10);
Remote.clear();
}

if(millis()-eventTime>500 && data>=671 && data<=691 && flag == 4 || data>=74 && data<=94 && flag == 3) // удержание кнопки от 500 до ? миллисекунд (изменяется здесь millis()-eventTime>500)
{
Remote.rewind(); // действие после удержание кнопки, Rewind
flag = 3;
Remote.clear();
delay(100);
}

//********************** Play/pause + Ещё что то ************************************

if(millis()-eventTime>10 && millis()-eventTime<499 && data>=165 && data<=185) // короткое нажатие кнопки от 10 до 499 миллисекунд (изменяется здесь millis()-eventTime>10 && millis()-eventTime<499)
{
flag = 7;
}

if(data>=1023 && flag == 7) // действие после короткого нажатия кнопки, воспроизведение / пауза
{
Remote.play_pause();
flag = 0;
delay(10);
Remote.clear();
}

if(millis()-eventTime>500 && data>=165 && data<=185 && flag == 7) // удержание кнопки от 500 до ? миллисекунд (изменяется здесь millis()-eventTime>500)
{
//Remote.play_pause(); // действие после удержание кнопки, Ещё что то
flag = 0;
//delay(10);
//Remote.clear();
}

if(data>=1023 && flag == 3 || data>=1023 && flag == 5 || data>=1023 && flag == 6) // действие после отпускания кнопки
{
flag = 0;
}
}


кнопки громкости при удержании увеличивают/уменьшают на 1 деление и останавливаюся, next вообще не реагирует, замерил кнопки руля, получил очень странные числа: mute 680 Ом, next 4.4 kOm, prev 6.5 kOM, громкость "+" 22.6 кОм, громкость "-" 14,5 кОм, Mode (ALT+TAB....TAB....TAB) 2.8 кОм.
Какая-то очень странная разница между mute и всем остальным.
Скетч брал в Драйва у другого салановода (по идее кнопки должны быть одинаковыми)

lti1
29.01.2015, 19:28
Ребят проблемка есть, заливаю вот этот скетч:
кнопки громкости при удержании увеличивают/уменьшают на 1 деление и останавливаюся, next вообще не реагирует, замерил кнопки руля, получил очень странные числа: mute 680 Ом, next 4.4 kOm, prev 4.4 kOM, громкость "+" 22.6 кОм, громкость "-" 14,5 кОм, Mode (ALT+TAB....TAB....TAB) 2.8 кОм.
Какая-то очень странная разница между mute и всем остальным.
Скетч брал в Драйва у другого салановода (по идее кнопки должны быть одинаковыми)
Залейте сначала этот скетч и считайте коды своих кнопок через "монитор порта" Arduino Software (IDE), потом подставьте эти значения в скетч.
int analogPin=0; //пин для подключения кнопок
int data;

void setup()
{
Serial.begin(9600);
}

void loop()
{
data=analogRead(analogPin); //читаем значение нажатой кнопки
Serial.println(data);
delay(1000);
}

demtro
29.01.2015, 19:33
а можно ли это сделать через планшет? просто кнопки закреплены в руле и с ноутом не хочется туда идти

lti1
29.01.2015, 19:44
а можно ли это сделать через планшет? просто кнопки закреплены в руле и с ноутом не хочется туда идти
Нужен какой нибудь софт, который сможет читать данные с порта. С ноутом не придется бежать домой, что бы залить залить новый скетч, можно будет все сразу сделать в машине и проверить.

demtro
29.01.2015, 19:55
я правильно понимаю что значение кнопки это вот это - "data>=165 && data<=185" и для него задается интервал?

lti1
29.01.2015, 20:04
я правильно понимаю что значение кнопки это вот это - "data>=165 && data<=185" и для него задается интервал?
Да. Личку проверьте.

lti1
07.02.2015, 22:47
Соберу всю информацию по одному из решений в одном месте, у кого есть возможность закрепите ссылку в первом сообщении.
Работает только с Arduino Pro Micro (https://duino.ru/arduino-pro-micro.html) и Arduino Leonardo (https://duino.ru/arduino-micro-arduino-leonardo.html) на чипе ATmega32u4.
Для начала меняем в папке \arduino-1.0.5\hardware\arduino\cores\arduino для IDE 1.0.5 или \arduino-1.6.5-r5\hardware\arduino\avr\cores\arduino для IDE 1.6.5 меняете два файла USBAPI.h, HID.cpp на те, что во вложении этого сообщения (http://pccar.ru/showpost.php?p=277286&postcount=182), при этом версия ПО Arduino Software IDE должна быть 1.0.5, скачать setup exe (http://arduino.googlecode.com/files/arduino-1.0.5-r2-windows.exe), скачать zip (https://arduino.googlecode.com/files/arduino-1.0.5-windows.zip) ИЛИ 1.6.5, на других не проверял.
После заливаете этот скетч и считайте коды всех кнопок через "монитор порта" Arduino Software (IDE).

int analogPin=0; //пин для подключения кнопок
int data;

void setup()
{
analogReference(DEFAULT); // подключение внутреннего напряжение AVCC к выводу AREF (опорное напряжение)
Serial.begin(9600);
}

void loop()
{
data=analogRead(analogPin); //читаем значение нажатой кнопки
Serial.println(data);
delay(1000);
}

(Подробная инструкция, как считать коды кнопок находится в архиве 52732)

Подключаете кнопки к Arduino по следующим схемам, с подтяжкой к - или к +. Номинал сопротивления ~20 кОм.
38555
Потом заливаете этот скетч, только в начале скетча указываете свои значения, то есть вместо 111, 222, 333, 444, 555, 777 указываете значения своих кнопок, а также значение при отпущенных кнопках, в зависимости от схемы подключения будут либо ближе 0 либо ближе к 1023:
//****************** Здесь необходимо указать свои значения ***************

int analogPin=0; // пин для подключения кнопок, по умолчанию A0

int release_button = 1023; // значение при отпущенных кнопках
int button_release_range = 50; // диапазон значения + - при отпущенных кнопках
int button_range = 5; // диапазон значения нажатых кнопок + -
int time_holding = 500; // время для удержания кнопок в миллисекундах
int time_tinkling = 30; // время исключающее дребезг контактов в миллисекундах
int vol_up = 111; // значение кнопки увеличить громкость
int vol_down = 222; // значение кнопки уменьшить громкость
int alt_tab = 333; // значение кнопки которая будет работать как Alt + Tab
int next = 444; // значение кнопки которая будет работать как Next при коротком нажатии и Fast Forward при удержании
int previous = 555; // значение кнопки которая будет работать как Previous при коротком нажатии и Rewind при удержании
int play_pause = 777; // значение кнопки которая будет работать как Play/Pause при коротком нажатии и Mute при удержании

//************************************************** ************************

int data;
unsigned long flag = 0;
unsigned long eventTime = 0;
unsigned long pauseMillis = 0;

void setup()
{
analogReference(DEFAULT); // подключение внутреннего напряжение AVCC к выводу AREF (опорное напряжение)
Keyboard.begin();
}

void loop()
{
data=analogRead(analogPin);
if(data>=release_button - button_release_range && data<=release_button + button_release_range && flag == 0)
{
eventTime=millis();
}

//********************** Громкость ************************************

if(millis()-eventTime<time_tinkling && millis()-eventTime<time_holding-1 && data >= vol_up - button_range && data <= vol_up + button_range && flag == 0)
{
Remote.increase();
flag = 5;
delay(10);
Remote.clear();
}

if(millis()-eventTime>time_holding && data >= vol_up - button_range && data <= vol_up + button_range && flag == 5 || data >= vol_up - button_range && data <= vol_up + button_range && flag && flag == 3)
{
Remote.increase();
flag = 3;
Remote.clear();
delay(100);
}

if(millis()-eventTime<time_tinkling && millis()-eventTime<time_holding-1 && data >= vol_down - button_range && data <= vol_down + button_range && flag == 0)
{
Remote.decrease();
flag = 6;
delay(10);
Remote.clear();
}

if(millis()-eventTime>time_holding && data >= vol_down - button_range && data <= vol_down + button_range && flag == 6 || data >= vol_down - button_range && data <= vol_down + button_range && flag == 3)
{
Remote.decrease();
flag = 3;
Remote.clear();
delay(100);
}

//********************** AltTab + Ещё что то ************************************

if(millis()-eventTime<time_tinkling && millis()-eventTime<time_holding-1 && data >= alt_tab - button_range && data <= alt_tab + button_range)
{
flag = 1;
}

if(data>=release_button - button_release_range && data<=release_button + button_release_range && flag == 1 && pauseMillis == 0)
{
Keyboard.press(KEY_LEFT_ALT);
Keyboard.press(KEY_TAB);
Keyboard.release(KEY_TAB);
Keyboard.press(KEY_TAB);
Keyboard.release(KEY_TAB);
flag = 0;
pauseMillis = millis();
}

if(data>=release_button - button_release_range && data<=release_button + button_release_range && flag == 1 && pauseMillis != 0)
{
Keyboard.press(KEY_TAB);
Keyboard.release(KEY_TAB);
flag = 0;
pauseMillis = millis();
}

if(pauseMillis && millis()-pauseMillis >= 800 && data>=release_button - button_release_range && data<=release_button + button_release_range)
{
flag = 0;
pauseMillis = 0;
Keyboard.releaseAll();
}

if(millis()-eventTime>time_holding && data >= alt_tab - button_range && data <= alt_tab + button_range && flag == 1)
{
flag = 0;
}
//********************** Next и Fast Forward ************************************

if(millis()-eventTime<time_tinkling && millis()-eventTime<time_holding-1 && data >= next - button_range && data <= next + button_range)
{
flag = 2;
}

if(data>=release_button - button_release_range && data<=release_button + button_release_range && flag == 2)
{
Remote.next();
flag = 0;
delay(10);
Remote.clear();
}

if(millis()-eventTime>time_holding && data >= next - button_range && data <= next + button_range && flag == 2 || data >= next - button_range && data <= next + button_range && flag == 3)
{
Remote.forward();
flag = 3;
Remote.clear();
delay(100);
}
//********************** Previous и Rewind ************************************

if(millis()-eventTime<time_tinkling && millis()-eventTime<time_holding-1 && data >= previous - button_range && data <= previous + button_range)
{
flag = 4;
}

if(data>=release_button - button_release_range && data<=release_button + button_release_range && flag == 4)
{
Remote.previous();
flag = 0;
delay(10);
Remote.clear();
}

if(millis()-eventTime>time_holding && data >= previous - button_range && data <= previous + button_range && flag == 4 || data >= previous - button_range && data <= previous + button_range && flag == 3)
{
Remote.rewind();
flag = 3;
Remote.clear();
delay(100);
}

//********************** Play/pause + Mute ************************************

if(millis()-eventTime<time_tinkling && millis()-eventTime<time_holding-1 && data >= play_pause - button_range && data <= play_pause + button_range)
{
flag = 7;
}

if(data>=release_button - button_release_range && data<=release_button + button_release_range && flag == 7)
{
Remote.play_pause();
flag = 0;
delay(10);
Remote.clear();
}

if(millis()-eventTime>time_holding && data >= play_pause - button_range && data <= play_pause + button_range && flag == 7)
{
Remote.mute();
flag = 0;
delay(10);
Remote.clear();
}

if(data>=release_button - button_release_range && data<=release_button + button_release_range && flag == 3 || data>=release_button - button_release_range && data<=release_button + button_release_range && flag == 5 || data>=release_button - button_release_range && data<=release_button + button_release_range && flag == 6)
{
flag = 0;
}
}
Алгоритм работы такой: короткое нажатие, более 10 (int time_tinkling = 10; можно менять в скетче) и менее 500 миллисекунд (int time_holding = 500; можно менять в скетче) - Play/pause; длинное, более 500 миллисекунд (int time_holding = 500; можно менять в скетче) - Mute.
Тоже самое с Next и Fast Forward, Previous и Rewind. При удержании увеличения и уменьшения громкости, увеличивает или уменьшает громкость на 10 делений в секунду, а при коротком нажатии, менее 500 миллисекунд - увеличивает или уменьшает громкость на 1 деление.
Alt + Tab, при первом нажатии эмулирует Alt и два раза Tab, то есть переходит предыдущему открытому приложении и в течении 0,8 секунды удерживает Alt, а повторные нажатия на кнопку в течении этого времени эмулируют только Tab. На удержание ни чего не назначен, можно добавить при необходимости.

Chubaka885
07.02.2015, 23:15
lti1 Отлично :good2:
Только добавь, что заливать скетч нужно с релизом ПО Arduino не выше 1.0.5. А лучше просто указать 1.0.5 и всё. Часто качают 1.0.6 с забугорного обменника и замена библиотек не проходит. Мне уже не раз задавали этот вопрос.

murano
07.02.2015, 23:19
Previous и Rewind я так понимаю ускоряют и замедляют воспроизведение трека. А еcть команды которые листают папки (альбомы)?

Chubaka885
07.02.2015, 23:28
Previous и Rewind я так понимаю ускоряют и замедляют воспроизведение трека. А еcть команды которые листают папки (альбомы)?
Нету. poweramp умеет переключать папки двойным нажатием переключения треков. Немного не удобно, но работает.

lti1
07.02.2015, 23:32
lti1 Отлично :good2:
Только добавь, что заливать скетч нужно с релизом ПО Arduino не выше 1.0.5. А лучше просто указать 1.0.5 и всё. Часто качают 1.0.6 с забугорного обменника и замена библиотек не проходит. Мне уже не раз задавали этот вопрос.
Добавил.
Previous и Rewind я так понимаю ускоряют и замедляют воспроизведение трека. А еcть команды которые листают папки (альбомы)?
Ни одно HID устройство такое делать не умеет в Андройде. Или как предложил Chubaka885:
Нету. poweramp умеет переключать папки двойным нажатием переключения треков. Немного не удобно, но работает. или с помощью Remote steering wheel control (http://forum.xda-developers.com/showthread.php?t=2635159) + Tasker (https://play.google.com/store/apps/details?id=net.dinglisch.android.taskerm&hl=ru) + Action Box - Tasker Plug-in (https://play.google.com/store/apps/details?id=pe.lastingchild.actionbox&hl=ru) и работает только в PowerAMP.

slon25
18.02.2015, 15:10
Может подскажите можно ли использвать такие устройства: джойстик, клава .., кнопки , вместо штатных кнопок, так как у меня их нет. Вот, например джойстик к автомагнитолам SONY RM-X2S
https://www.drive2.ru/l/288230376152759568/ --------------------------------------------------------------------------------

lti1
18.02.2015, 16:25
slon25, ссылка не работает.

slon25
18.02.2015, 16:50
slon25, ссылка не работает.
подправил

lti1
18.02.2015, 17:32
Может подскажите можно ли использвать такие устройства: джойстик, клава .., кнопки , вместо штатных кнопок, так как у меня их нет. Вот, например джойстик к автомагнитолам SONY RM-X2S
https://www.drive2.ru/l/288230376152759568/ --------------------------------------------------------------------------------
А почему нет, это резистивный пульт. Пообщайтесь Sergey595 (http://pccar.ru/member.php?u=25288), он как раз такой пульт сейчас настраивает на основе этого поста (http://pccar.ru/showpost.php?p=319975&postcount=307).

murano
18.02.2015, 17:51
Для первоначальных тестов использовал именно такой. Все работает.

slon25
18.02.2015, 18:47
Для первоначальных тестов использовал именно такой. Все работает.
Спасибо. Еще вопрос!! У меня стоит сейчас магнитола сони. Ее я собираюсь оставлять в проете. Она будет работать как: усилитель , радио, громкая связь в ней есть. Посмотрел описание, в ней есть вход к этому пульту. Есть ли возможность использовать данный проводной пульт на два устройтва попеременно: магнитолу и нексус?? Переключение запрограмировать на одну из кнопок??

anton2204
18.02.2015, 22:24
Есть ли возможность использовать данный проводной пульт на два устройтва попеременно: магнитолу и нексус?? Переключение запрограмировать на одну из кнопок??
Здесь (http://pccar.ru/showthread.php?t=20460) почитай/поспрашивай!

Berkut_IV
24.02.2015, 00:47
Доброго времени всем. Подскажите С помощью какого адаптера можно соединить родные кнопки на руле(управление магнитолой) с планшетом регулировать звук переключать треки и все такое. Автомобиль BMW E39 2001 г. в. Планшет ZTE V9 Android 2.2.

wave_is
03.03.2015, 01:26
А как в эту схему добавить управление релюшкой?
Хотелось бы чтобы данное устройство могло замыкать реле по команде с андроида.
Какие есть варианты подобной реализации?

slon25
13.03.2015, 12:42
Можно ли истользовать джойстик ардуино для управления планшетом: звук, переключение треков, сон

Daniel
13.03.2015, 16:57
Можно ли истользовать джойстик ардуино для управления планшетом: звук, переключение треков, сон

Можно.

gramatey
14.03.2015, 09:39
Всем привет! В планах реализовать проект управления Android планшетом кнопками на руле с помощью ArduinoLeonardo, скетч за основу с поста #307 (спс за детальное описание) за исключением функции alt + tab, в ней нет необходимости. Помогите мне в некоторых неясностях, если я переключаю с AUX на основное ГУ ( к примеру радио) сохранятся ли функции управления кнопками? Arduino подключать просто к бортовой сети можно, или нужен какой DC/DC преобразователь для стабилизации тока?

lti1
14.03.2015, 12:24
за исключением функции alt + tab, в ней нет необходимости.Если не нужен ALT+TAB тогда строку int alt_tab = 333; замените на int alt_tab;, что бы случайно не сработало.
Помогите мне в некоторых неясностях, если я переключаю с AUX на основное ГУ ( к примеру радио) сохранятся ли функции управления кнопками?Вы хотите подключить параллельно головному устройству? В таком случае ардуино и магнитола будут обрабатывать нажатия всегда, независимо от режима головного устройства и соответственно будет всегда на них реагировать, потому как ардуино не будет знать какой режим у Вас на данный момент включен. Конечно можно научить ардуино различать режимы, но это совсем другая история. И при таком подключении подтягивающий резистор нужно исключить из схемы.
Arduino подключать просто к бортовой сети можно, или нужен какой DC/DC преобразователь для стабилизации тока?ArduinoLeonardo подключается по USB и от него же питается.

mikhail.rusakov
18.03.2015, 12:17
Если не нужен ALT+TAB тогда строку int alt_tab = 333; замените на int alt_tab;, что бы случайно не сработало.
Вы хотите подключить параллельно головному устройству? В таком случае ардуино и магнитола будут обрабатывать нажатия всегда, независимо от режима головного устройства и соответственно будет всегда на них реагировать, потому как ардуино не будет знать какой режим у Вас на данный момент включен. Конечно можно научить ардуино различать режимы, но это совсем другая история. И при таком подключении подтягивающий резистор нужно исключить из схемы.
ArduinoLeonardo подключается по USB и от него же питается.

Добрый день. Только готовлюсь заморочится на подключение кнопок - читаю и пытаюсь понять, что реально, а что нет.
lti1 - вы написали, что можно научить Aurdino различать режимы. Если я правильно понимаю это то, что мне нужно. Ткните где почитать про разные режимы на одной arduino. Зачем? Магнитола выступает в роли усилителя и радиоприемника + usb mp3. Я бы хотел с кнопок на руле управлять и магнитолой и Android. Вот сценарий: Мафон играет радио. На руле 6 кнопок +1 (громкость +/- ;треки (станции) +/- ; mute и mode + power). Я переключаю кнопками станции регулирую громкость, делаю mute. В этом режиме Arduino читает кнопки, а на выходе дает ик сигнал моей магнитолы. Я нажимаю кнопку mode, arduino шлет нужную ик команду, магнитола переключается на USB - если в магнитолу вставлена usb флэшка с mp3, то она заиграла и я опять управляю магнитолой через ик. Если же флэшки нет или я нажимаю mode еще раз, мафон переключается на Bluetooth audio, а это уже мой Android. И вот тут хотелось бы чтоб arduino перешел в режим HID. Казалось бы можно продолжать жамкать на кнопки и магнитола будет передавать команды через Bluetooth AVRCP. Но, во-первых, магнитола по bluetooth передает только команды мультимедиа (как гарнитура). А, во-вторых, в android нужно еще запускать и переключать приложения. Я хочу для переключения режимов arduino использовать кнопку power - я ее вообще никогда не использую. Нажал power - arduino как HID, нажал еще - как ИК адаптер. Если это сложно реализовать, то например пусть arduino будет как кнопки-HID адаптер, но при нажатии power, просто тупо переводит сигнал с кнопок на один из выходов (ничего с ним не делая), а туда уже повешу отдельный адаптер кнопки-ИК.
Реально?
Заранее спасибо

lti1
18.03.2015, 18:08
lti1 - вы написали, что можно научить Aurdino различать режимы. Если я правильно понимаю это то, что мне нужно. Ткните где почитать про разные режимы на одной arduino. Зачем?Я имел ввиду, что можно научить ардуино различать режимы работы головного устройства. Для этого нужно подключать ардуино к головному устройству, например по шине I2C и по командам в ней определять режим работы (у меня так реализовано на Pioneer AVH-P3100DVD). Но это, как я уже писал, совсем другая история и к данной теме не имеет отношения.На руле 6 кнопок +1 (громкость +/- ;треки (станции) +/- ; mute и mode + power). Я переключаю кнопками станции регулирую громкость, делаю mute. В этом режиме Arduino читает кнопки, а на выходе дает ик сигнал моей магнитолы.Почему именно ИК?

Обратите внимание на готовое устройство, возможно в Вашем случае и дорабатывать ни чего не понадобится Простой USB HID контроллер под Windows или Android 4-й версии (http://pccar.ru/showthread.php?t=20460).

mikhail.rusakov
19.03.2015, 15:38
Я имел ввиду, что можно научить ардуино различать режимы работы головного устройства........
Почему именно ИК?....
Обратите внимание на готовое устройство, возможно в Вашем случае и дорабатывать ни чего не понадобится....

по различным режимам понял.

а второй предложенный мной вариант - когда при нажатии одной из кнопок arduino просто передает сигнал со входа на выход - реально?

Ик - потому что моя магнитола может управляться только пультом :)

про готовый вариант в курсе - общался с автором. девайс классный. и денег своих стоит. мне такой функционал не нужен, по крайне мере сейчас, да и просто тупо хочется что-то попробовать сделать самому, изучить arduino и т.п. разумеется если не потяну, то уже буду искать готовые решения.

lti1
19.03.2015, 23:32
а второй предложенный мной вариант - когда при нажатии одной из кнопок arduino просто передает сигнал со входа на выход - реально?Что Вы имеете ввиду, что бы ардуино отправляла команду по ИК при нажатии резистивной кнопки? Если да, то можно ссылка (http://www.righto.com/2009/08/multi-protocol-infrared-remote-library.html) и еще одна (http://wheelremote.ru/useful.shtml?ir_nec).

mikhail.rusakov
20.03.2015, 18:06
Что Вы имеете ввиду, что бы ардуино отправляла команду по ИК при нажатии резистивной кнопки? Если да, то можно ссылка (http://www.righto.com/2009/08/multi-protocol-infrared-remote-library.html) и еще одна (http://wheelremote.ru/useful.shtml?ir_nec).
Нет. наверное не совсем ясно сформулировал.
Про то, что arduino может при нажатии резистивной кнопки отправлять ик команду я знаю. Так же знаю что может прикидываться usb-hid. Но мне нужно что бы в одной arduino можно было одним скетчем реализовать и ИК и HID -Нажал кнопку power на руле - HID нажал еще раз - ИК. Я думал, когда вы говорили про разные режимы вы тоже имели это ввиду. Из вашего ответа понял, что нет. Как я понял это нереально.
Поэтому как выход предложил сам себе вариант - сделать из arduino адаптер типа "кнопки на руле -hid", а роль адаптера "кнопки на руле - ик" будет выполнять отдельное устройство. НО сигнальный провод от кнопок всего один. Т.е. его нужно "переключать" с первого адаптера на второй. Так вот вопрос - может ли arduino будучи в роли адаптера "кнопки на руле - HID" по сигналу кнопки power выполнять функцию коммутирующего реле и перекидывать сигнал, идущий к ней от рулевых кнопок, на один из своих аналоговых выходов (ничего с ним не делая)? А к этому выходу уже подключен вход второго адаптера. Таким образов второе устройство "кнопки-ик" получает сигнал от кнопок и и шлет сигналы ИК, а arduino работает как реле. Еще раз нажали power - Arduino снова "в бою"
Объяснил как смог :rolleyes2:
Правда это опять смахивает на 2 режима в одной arduino...:wacko2: :big:

Chubaka885
20.03.2015, 22:03
Нет. наверное не совсем ясно сформулировал.
Про то, что arduino может при нажатии резистивной кнопки отправлять ик команду я знаю. Так же знаю что может прикидываться usb-hid. Но мне нужно что бы в одной arduino можно было одним скетчем реализовать и ИК и HID -Нажал кнопку power на руле - HID нажал еще раз - ИК. Я думал, когда вы говорили про разные режимы вы тоже имели это ввиду. Из вашего ответа понял, что нет. Как я понял это нереально.
:
Реально. Просто lti1 Вас не правильно понял.

lti1
20.03.2015, 22:41
Да, действительно, не правильно понял. mikhail.rusakov, для Вашей задачи одной Arduino Pro Micro более чем достаточно.

mikhail.rusakov
23.03.2015, 14:18
Ок понял. Раз все реально - буду пробовать :) Заказал Carduino - я так понял она для кнопок "подготовлена".
Если будет непонятно - буду спрашивать.
Всем спасибо.

lti1
23.03.2015, 15:20
mikhail.rusakov, какую Carduino? Nano Duo (https://duino.ru/arduino-nano-v7--carduino-nano-duo-.html) не пойдет, она не умеет "прикидываться" HID, Вам нужно Arduino Pro Micro (https://duino.ru/arduino-pro-micro.html) или Arduino Micro (Leonardo) (https://duino.ru/arduino-micro-arduino-leonardo.html) или Arduino Leonardo (https://duino.ru/Arduino-Leonardo.html).
Что означает?она для кнопок "подготовлена"

mikhail.rusakov
23.03.2015, 17:56
Добрый день
Да, именно Nano Duo как по ссылке заказал. Понял - спасибо что предупредили. Как я говорил, я только начинаю вникать.
"подготовлена" - я имел ввиду фразу из описания на сайте
"-Теперь для превращения ардуино в адаптер рулевых кнопок, не нужно ничего паять кроме двух проводов"

nube
25.03.2015, 17:50
Всем привет
случайно на авито наткнулся на джойстик Sony RM-4S
резистивный джойстик
подключил на столе по схеме из 307 поста
считал данные через ардуино, залил скетч

работает но глючит,
при регулировки громкости часто срабатывает альт таб, переключение треков одновременно регулирует громкость =)
поигрался с таймингами в скетче результата не дало
что можно попробывать?

slon25
25.03.2015, 18:19
А я прикупил у YAM1966 "Простой USB HID контроллер под Windows или Android 4-й версии" и с джойстиком Sony RM-4S проблем нет , работает как часы. Плюс с его помощью реализовали управлении по переключению двумя устройствами: планшетои и автомагнитолой. Запрограмировали переключение на длинное нажатие кнопки сорс.
Могу управлять и плашнетом и магнитолой. Плюс на кнопку можно повесить приложение в андроиде. Плюс подключил ик приемник и настроил пульт от старой магнитолы теперь планшетом можно управлять джойстиком и пультом. Плюс с питанием парится не нужно - это все уже реализовано в контроллере, управлениие по асс, потом контроллер берет запитку на себя и нет бросков напряжения при заводе двигателя. Отключение тоже самое, ключ высунул , а планшет еще питается некоторое время, которое можно регулировать. Плюс можно контролером управляит датчиком хола. Плюс можно управлять релле, но и .... Описал, что сам использую на данный момент. К ТОМУ ЖЕ ТЕХ ПОДДЕРЖКА На ОЧЧЧЧЕНЬ высоком уровне. Да он стоит денег, но честно говоря не жалко. Лучшего решения я не нашел, особено для людей далеких от электроники как Я. ЭТО НЕ РЕКЛАМА. ЭТО МОЙ ЛИЧНЫЙ ОПЫТ.

lti1
25.03.2015, 18:48
nube, значения своих кнопок сообщите.

nube
25.03.2015, 19:01
nube, значения своих кнопок сообщите.

не нажатая кнопка - 0
Vol+ -- 465
Vol- -- 551
Track+ -- 63
Track- -- 705
Alt-Tab -- 378

эти данные выдает монитор порта

lti1
25.03.2015, 21:11
не нажатая кнопка - 0
Vol+ -- 465
Vol- -- 551
Track+ -- 63
Track- -- 705
Alt-Tab -- 378

эти данные выдает монитор порта
А значения стабильно держатся, если несколько раз понажимать или пошевелить кнопку?
Дело в том, что такие пульты давно не производят, а кнопки устроены так же как в ИК пультах и со временем могут не давать стабильный контакт.
http://llg.cubic.org/tools/sonyrm/rm-x2s-circuit.jpg

_boo
29.03.2015, 18:46
Здрасте. имееться nexus 7 LTE 2013 + joycon
есть проблема c имплементацией переключения между запущеными приложениями, хотелось бы при нажатии (1 клик, не долгое нажание) переключаться между запущеными предложениями по кругу.

попробовал связать нажатие с alt+tab то одно нажатие только выводит запущение приложения и не успевает переключить,
при связи на длинное нажатие оно бегает так быстро что не возможно остановиться на каком то приложении и при отпускании кнопки открывается рандомально то на котором остановилось в момент отжатия.

есть решение?

спасибо!

Maxim Droy
02.04.2015, 19:16
Решил не как обычно через замену бутлоадера с Uno сделать, а уже с Pro Micro.
Поменял библиотеки, которые позволяют делать Remote.increase(), .decrease(). На компе все прекрасно работает, подключаю к планшету - срабатывает через раз, на 4 - N раз. В чем прикол? Правда и прошивку на планшете поменял - поставил сток 4.4.4, но вряд ли в этом причина. Библиотеки кто-нибудь копал?

Chubaka885
03.04.2015, 13:55
Решил не как обычно через замену бутлоадера с Uno сделать, а уже с Pro Micro.
Поменял библиотеки, которые позволяют делать Remote.increase(), .decrease(). На компе все прекрасно работает, подключаю к планшету - срабатывает через раз, на 4 - N раз. В чем прикол? Правда и прошивку на планшете поменял - поставил сток 4.4.4, но вряд ли в этом причина. Библиотеки кто-нибудь копал?
Библиотеки с поста #182 (http://pccar.ru/showpost.php?p=277286&postcount=182) брал? Они рабочие, проверенно.

Maxim Droy
03.04.2015, 15:53
Библиотеки с поста #182 (http://pccar.ru/showpost.php?p=277286&postcount=182) брал? Они рабочие, проверенно.

Да, их и брал. На компе все ок, на планшете раз через раз =/



int lastValue = 0;
int sensorValue = 0;

void setup() {
Keyboard.begin();
Serial.begin(9600);
}

void loop() {
lastValue = sensorValue;
sensorValue = analogRead(A3);

if(sensorValue > 180 && sensorValue < 185 && lastValue < 20) // volume up
{
Remote.increase();
Remote.clear();
}

if(sensorValue > 128 && sensorValue < 134 && lastValue < 20) // volume down
{
Remote.decrease();
Remote.clear();
}

if(sensorValue > 390 && sensorValue < 394 && lastValue < 20) // track next
{
Remote.previous();
Remote.clear();
}

if(sensorValue > 265 && sensorValue < 269 && lastValue < 20) // track prev
{
Remote.next();
Remote.clear();
}

if(sensorValue > 642 && sensorValue < 646 && lastValue < 20) // mode
{
Remote.mute();
Remote.clear();
}

delay(50);
}

lti1
03.04.2015, 16:51
Да, их и брал. На компе все ок, на планшете раз через раз =/Попробуйте скетч из 307 (http://pccar.ru/showthread.php?p=319975#post319975) поста.

lti1
04.04.2015, 12:40
Случайно наткнулся на Ali на такое устройство (http://ru.aliexpress.com/item/FREE-SHIPPING-1PCS-ATMega-32U4-pro-micro-leonardo-For-Arduino-Compatible-pro-mini-usb-control-board/32276461676.html), по сути это та же Pro Micro на ATMega 32U4, только более компактных размеров (20.3 x 30.5 мм) и с USB-A разъемом.

Disgraced
05.04.2015, 11:41
Добрый день. Подскажите, ардуина про микро с Али - это самый дешовый способ подключения резистивных кнопок к нексусу (250р)? Или есть варианты ещё дешевле? Китайская ардуина чем то отличается от тех, что продают на сайте кардуино?
Как я понял, значения кнопок лучше считать самой ардуиной, чем лазить с мультиметром. ардуина в момент считывания должна быть подключена в ноутбук и в неё подключены выходы с кнопок - так?
И последний, немного вопрос немного оффтоп: а можно ли ардуиной считать сигнал идущий по паре проводов can шины - т.е. одно устройство в авто опрашивает борт компьютер - нужно перехватить данный опрос-ответ. А потом заставить ардуину воспроизводить перехваченное. Этот возможно? Если да, то ткните, что читать на эту тему.
Заранее спасибо.

lti1
05.04.2015, 11:58
Добрый день. Подскажите, ардуина про микро с Али - это самый дешовый способ подключения резистивных кнопок к нексусу (250р)? Или есть варианты ещё дешевле?А что 250-350 рублей это большие деньги, за такой функционал? Можно еще использовать Arduino Nano + Remote steering wheel control (http://forum.xda-developers.com/showthread.php?t=2635159).Китайская ардуина чем то отличается от тех, что продают на сайте дуино?Если речь идет о Pro Micro, то абсолютно такие же как на али.Как я понял, значения кнопок лучше считать самой ардуиной, чем лазить с мультиметром. ардуина в момент считывания должна быть подключена в ноутбук и в неё подключены выходы с кнопок - так?Да, именно так.И последний, немного вопрос немного оффтоп: а можно ли ардуиной считать сигнал идущий по паре проводов can шины - т.е. одно устройство в авто опрашивает борт компьютер - нужно перехватить данный опрос-ответ. А потом заставить ардуину воспроизводить перехваченное. Этот возможно? Если да, то ткните, что читать на эту тему.Skoda Superb 2012 + Nexus 7 2012 = 4024! (http://pccar.ru/showthread.php?t=20274)
Виджет для Remote steering wheel control (http://pccar.ru/showthread.php?t=21272)

ferganec1
18.04.2015, 10:13
Добрый день. Подскажите пожалуйста начинающему.... Есть Arduino Pro Micro и резистивные рулевые кнопки управления магнитолой (громкость, переключение треков) и также на руле имеются кнопки управления громкой связи на магнитоле. Как сделать так что бы мультимедийные кнопки управляли нексусом а кнопки громкой связи магнитолой.Спасибо.

Kapito
19.04.2015, 16:21
Тут уже было в начале темы про joycon, а потом все как-то перешли на ардуино.

Подскажите вот этот девайс: http://www.ebay.com/itm/CarPC-JoyCon-Exr-Steering-wheel-controls-USB-interface-/321635437661?pt=LH_DefaultDomain_0&hash=item4ae2f74c5d

подойдет для подключения резистивных кнопок? Получается в свободный разъем вставляю кнопки, зачем через комп настраивают HID-клавиши, а затем к планшету как HID-девайс и дело сделано?

WillForce
20.04.2015, 10:07
Тут уже было в начале темы про joycon, а потом все как-то перешли на ардуино.

Подскажите вот этот девайс: http://www.ebay.com/itm/CarPC-JoyCon-Exr-Steering-wheel-controls-USB-interface-/321635437661?pt=LH_DefaultDomain_0&hash=item4ae2f74c5d

подойдет для подключения резистивных кнопок? Получается в свободный разъем вставляю кнопки, зачем через комп настраивают HID-клавиши, а затем к планшету как HID-девайс и дело сделано?

Да, на компе настроили, какая кнопка за что отвечает на планшете. Подключили в планшету и должно все работать.

P.S. На андроиде нельзя настроить MUTE?

WillForce
25.04.2015, 12:45
Может кто знает, как с помощью JoyCon можно было выбирать, чем управлять с кнопок, планшетом или встроенной аудиосистемой?

gramatey
09.05.2015, 08:49
Приветствую! Как написал уважаемый Chubaka885 в посте #310, "poweramp умеет переключать папки двойным нажатием переключения треков. Немного не удобно, но работает." КАК это реализовать ?

Chubaka885
09.05.2015, 13:15
Приветствую! Как написал уважаемый Chubaka885 в посте #310, "poweramp умеет переключать папки двойным нажатием переключения треков. Немного не удобно, но работает." КАК это реализовать ?

Настройки Poweramp -> Гарнитура/Bluetooth -> переключение двойное или одинарное нажатие
Как то так. Точно не помню, машина не под рукой)))

Disgraced
09.05.2015, 14:15
Делал всё по инструкции от lti1
5V брал с контакта VCC на ардуине, подтяжку делал к "-" двумя последовательно соединенными 10кОм резисторами.
Столкнулся с проблемкой - значения кнопок Громкость + и - у меня очень близкие (1018 и 1008 - значения для разброса нажатий установил на 3 единицы) соответственно, поэтому при уменьшении громкости происходит как бы параллельное нажатие громкости +. При этом увеличение громкости побеждает :big:
Попробовал оставить один резистор на 10кОм - разброс значений между кнопками громкости не особо изменился и проблема осталась.

Подскажите, в каком направлении двигаться.
И второй вопрос - можно ли отправить планшет в дипслип с клавиатуры? На кнопку слип домашней клавиатуры планшет просто гасит экран, как от короткого нажатия на вкл/выкл.

lti1
09.05.2015, 16:26
Делал всё по инструкции от lti1
5V брал с контакта VCC на ардуине, подтяжку делал к "-" двумя последовательно соединенными 10кОм резисторами.
Столкнулся с проблемкой - значения кнопок Громкость + и - у меня очень близкие (1018 и 1008 - значения для разброса нажатий установил на 3 единицы) соответственно, поэтому при уменьшении громкости происходит как бы параллельное нажатие громкости +. При этом увеличение громкости побеждает :big:
Попробовал оставить один резистор на 10кОм - разброс значений между кнопками громкости не особо изменился и проблема осталась.

Подскажите, в каком направлении двигаться.
И второй вопрос - можно ли отправить планшет в дипслип с клавиатуры? На кнопку слип домашней клавиатуры планшет просто гасит экран, как от короткого нажатия на вкл/выкл.
Какие у Вас минимальные и максимальные значения сопротивлений на кнопках?

gramatey
09.05.2015, 23:07
Настройки Poweramp -> Гарнитура/Bluetooth -> переключение двойное или одинарное нажатие
Как то так. Точно не помню, машина не под рукой)))

При чем здесь блютус? Т.е. перелистывание папок через настройки блютус что ли?

Chubaka885
09.05.2015, 23:26
При чем здесь блютус? Т.е. перелистывание папок через настройки блютус что ли?
Видимо это трудности перевода или просто косяк пунктов меню:big:
В общем делайте как я говорю и будет вам счастье.

Disgraced
10.05.2015, 00:23
Какие у Вас минимальные и максимальные значения сопротивлений на кнопках?

данные из последнего скетча - не помню 20 или 10 кОм
кнопки не нажаты - 814
минимальная кнопка 927
максимальная 1021

Chubaka885
10.05.2015, 00:36
данные из последнего скетча - не помню 20 или 10 кОм
кнопки не нажаты - 814
минимальная кнопка 927
максимальная 1021
Резистор ставьте меньше. Попробуйте 3,6кОм

Kapito
10.05.2015, 03:39
При чем здесь блютус? Т.е. перелистывание папок через настройки блютус что ли?

а вы там хотите увидеть "Настройки кнопок на руле"? На многих гарнитурах идут кнопки перелистывания треков вперед/назад - с помощью них подразумевается перемещение по папкам, отсюда и настройка в соответствующей категории.

klimsky
10.05.2015, 10:55
камрады, подскажите какое значение резистора подобрать, если значения сопротивлений кнопок руля Ford Mondeo следующие:
Без нажатия 5.1 кОм
Влево 570 Ом
Вправо 316 Ом
Вверх 155 Ом
Вниз 63 Ом
Меню 1050 Ом
схему для проверки значений кнопок брал здесь Remote steering wheel control (http://forum.xda-developers.com/showthread.php?t=2635159), резистор на 47кОм. скетч для проверки значений с это же страницы показывает что кнопка нажимается, но не отжимается.

lti1
10.05.2015, 12:03
данные из последнего скетча - не помню 20 или 10 кОм
кнопки не нажаты - 814
минимальная кнопка 927
максимальная 1021
Не правильно выразился. Какие у Вас номиналы сопротивлений, а не значения которые получаете при нажатии кнопок. Chubaka885 прав, нужно уменьшать номинал подтягивающего резистора.
камрады, подскажите какое значение резистора подобрать, если значения сопротивлений кнопок руля Ford Mondeo следующие:
Без нажатия 5.1 кОм
Влево 570 Ом
Вправо 316 Ом
Вверх 155 Ом
Вниз 63 Ом
Меню 1050 Ом
схему для проверки значений кнопок брал здесь Remote steering wheel control (http://forum.xda-developers.com/showthread.php?t=2635159), резистор на 47кОм. скетч для проверки значений с это же страницы показывает что кнопка нажимается, но не отжимается.Вам то же необходимо уменьшить номинал подтягивающего резистора до 2-3 кОм.

Anzic
10.05.2015, 22:42
Подскажите пожалуйста, где найти провода управления кнопок на руле для Nissan qashqai 2014? В сети попытался найти, но видимо запрос не правильно составляю, либо не там ищу. Может кто подскажет?

Kapito
11.05.2015, 00:07
Подскажите пожалуйста, где найти провода управления кнопок на руле для Nissan qashqai 2014? В сети попытался найти, но видимо запрос не правильно составляю, либо не там ищу. Может кто подскажет?

какие провода? Кнопки на руле подключаются короткими проводами к контактному кольцу. Провода, насколько я это себе представляю, должны идти и продаваться вместе с кнопками в сборе, а вот на контактом кольце может не быть дорожек для установки дополнительных проводов, если штатно кнопок не было. Тогда придется покупать и менять контактное кольцо. Уже от кольца провода идут к магнитоле/планшету - если штатно их не было, то только самому тянуть.

Anzic
11.05.2015, 01:40
какие провода? Кнопки на руле подключаются короткими проводами к контактному кольцу. Провода, насколько я это себе представляю, должны идти и продаваться вместе с кнопками в сборе, а вот на контактом кольце может не быть дорожек для установки дополнительных проводов, если штатно кнопок не было. Тогда придется покупать и менять контактное кольцо. Уже от кольца провода идут к магнитоле/планшету - если штатно их не было, то только самому тянуть.

Штатно у меня они идут, но там столько разъемов :be: вот и спрашиваю, где можно найти распиновку этих разъемов?
Вроде нашел. Судя по этим картинкам. Теперь нужно будет проверить. Как там вы говорили лучше это делать? Мультиметром? Или сразу через arduino uno leonardo?

klimsky
11.05.2015, 09:54
есть два варианта реализации arduino + кнопки. 1) делаем из arduino usb-hud клавиатуру, нажимаем мультимедиа кнопки при нажатии кнопок руля. 2) передаем данные с ардуино через serial(), обрабатываем через tasker.
вариант с usb-hud клавиатурой с точки зрения времени реакции системы предпочтительнее, т.к. tasker может тупить и реагировать с существенными задержками?

Disgraced
12.05.2015, 23:21
Резистор ставьте меньше. Попробуйте 3,6кОм

Спасибо, помогло!

Chubaka885
13.05.2015, 21:29
есть два варианта реализации arduino + кнопки. 1) делаем из arduino usb-hud клавиатуру, нажимаем мультимедиа кнопки при нажатии кнопок руля. 2) передаем данные с ардуино через serial(), обрабатываем через tasker.
вариант с usb-hud клавиатурой с точки зрения времени реакции системы предпочтительнее, т.к. tasker может тупить и реагировать с существенными задержками?
Верно.

Рафаэль
13.05.2015, 23:39
Ребят, никак не получается понять эту тему. Может есть кто в моем городе или в соседнем кто мог бы помочь???

Disgraced
15.05.2015, 16:25
Никто не находил в продаже вот такие панельки с кнопками? Желательно резистивными. Думаю было бы удобно повесить на такую боковую панельку открытие навигации/радио/видео/музыки как на штатных головах идёт.
http://cs616323.vk.me/v616323837/3b2/pQUL_wLn_VY.jpg

Chubaka885
15.05.2015, 17:10
Disgraced У китайцев пошарьте, возможно там с корпусом что то и найдёте. А вот это ещё удобнее.:smile2:http://static.baza.farpost.ru/v/1422600842612_bulletin

timtman
18.05.2015, 10:48
хочу iDrive где дают за недорого ?

Генератор
18.05.2015, 18:33
хочу iDrive где дают за недорого ?

не думаю что его будет так просто подключить, он общается с BMW по кан шине через спец. преобразователь.
На выходе у него 4 контакта питание и сигнал.
По сути что бы завести на него кнопки нужно переделывать его подностью под резистив - либо что то мудрить и думать.

sloppyBAIT
18.05.2015, 19:45
!!! Приветствую всех !!! :derisive:
Из-за нехватки знаний обращаюсь к Вам за помощью.
Вкратце опишу .
В автомобиле(Mazda RX-8) на руле установлены резистивные кнопки.
Шесть (6) кнопок (Vol+, Vol-, Ch+, Ch-, Mode, Mute). , DOWN и UP это для понижения и повышения передач их в расчет не берем.
Как мне их запрограммить под Nexus 7 2012 года ? Я так понимаю есть два проверенных способа это Ардуин и Джойкон.
Что же лучше использовать Ардуин или Джойкон?
Как потом на практике это всё подключить к рулю и к Nexus'y ? Что да как паять , может кто схему накидать ? :blush:
PS: фотографии кнопок нашел
http://s7.hostingkartinok.com/uploads/thumbs/2015/05/aa10578fe792d61ebfc3d51374124e06.png (http://hostingkartinok.com/show-image.php?id=aa10578fe792d61ebfc3d51374124e06)http ://s7.hostingkartinok.com/uploads/thumbs/2015/05/69ecade4ee8eb0c0cfb87a3178f70335.png (http://hostingkartinok.com/show-image.php?id=69ecade4ee8eb0c0cfb87a3178f70335)http ://s7.hostingkartinok.com/uploads/thumbs/2015/05/da4595228b0d034ddbd302bf4aaa9f55.png (http://hostingkartinok.com/show-image.php?id=da4595228b0d034ddbd302bf4aaa9f55)

Chubaka885
18.05.2015, 20:18
хочу iDrive где дают за недорого ?
Я с Литвы взял. Полазил на ебей нашёл продавана который торгует этими джойстиками. Списался с ним. Спросил может есть у него джойстик не рабочий. Он ответил что есть рабочий но со сломанными креплениями)). В общем договорились и вышел он мне с доставкой за 1200р с копейками до повышения долара:yes4:

не думаю что его будет так просто подключить, он общается с BMW по кан шине через спец. преобразователь.
На выходе у него 4 контакта питание и сигнал.
По сути что бы завести на него кнопки нужно переделывать его подностью под резистив - либо что то мудрить и думать.
С начало хотел по can шине сделать, но надо было заказывать доп платку вроде как. Дальше разбираться не стал и всунул туда ардуино про мини:smile2:
Ну и вот результат в тойоте. Удобно, красиво и функционально.:smile2:

Chubaka885
18.05.2015, 20:25
!!! Приветствую всех !!! :derisive:
Что же лучше использовать Ардуин или Джойкон?
Как потом на практике это всё подключить к рулю и к Nexus'y ? Что да как паять , может кто схему накидать ? :blush:

Ардуино - дёшево, надо приложить руку. (пайка, загрузка скетча)
Джойкон - дороже, но проще. Надо только подключить кнопки и настроить из под винды кнопки. В нем вроде как кроме резистивных кнопок, ещё какие-то фишки есть.

По схеме, нужно знать схему кнопок что бы что то говорить. Схему кнопок можно поискать в мануалах (ремонтных) по машине.

sloppyBAIT
18.05.2015, 20:43
Ардуино - дёшево, надо приложить руку. (пайка, загрузка скетча)
Джойкон - дороже, но проще. Надо только подключить кнопки и настроить из под винды кнопки. В нем вроде как кроме резистивных кнопок, ещё какие-то фишки есть.

По поводу других фишек. Нашел еще одно применение - это подключение USB камеры, дальше интернет глух.

Вот схема аудиосистемы !!!
http://s7.hostingkartinok.com/uploads/thumbs/2015/05/322c29c35adc717d58d16cf363244e23.png (http://hostingkartinok.com/show-image.php?id=322c29c35adc717d58d16cf363244e23)

Chubaka885
18.05.2015, 21:17
По поводу других фишек. Нашел еще одно применение - это подключение USB камеры, дальше интернет глух.

Вот схема аудиосистемы !!!
http://s7.hostingkartinok.com/uploads/thumbs/2015/05/322c29c35adc717d58d16cf363244e23.png (http://hostingkartinok.com/show-image.php?id=322c29c35adc717d58d16cf363244e23)
Эм.. оказалось всё проще. Приобретаете arduino pro micro. Берёте зелёный и красный провод выходящий с кнопок (с учётом того что схема соответствует вашим кнопкам), подключает к ардуино по схеме из поста (http://pccar.ru/showpost.php?p=319975&postcount=307) lti1. Заливаете скетч с того же поста по правилам как там описано. Пользуетесь.
Это что касается Ардуино.
По Джойкону сказать нечего не могу, сам юзаю ардуинку.
Вот (http://pccar.ru/showthread.php?t=19658) тема по джойкону.
Вот (http://pccar.ru/showthread.php?t=20460) ещё один вариант от YAM1966

Rage2
18.05.2015, 21:25
Chubaka885, смотрица ахренительно)

sloppyBAIT
19.05.2015, 07:27
Эм.. оказалось всё проще. Приобретаете arduino pro micro. Берёте зелёный и красный провод выходящий с кнопок (с учётом того что схема соответствует вашим кнопкам), подключает к ардуино по схеме из поста (http://pccar.ru/showpost.php?p=319975&postcount=307) lti1. Заливаете скетч с того же поста по правилам как там описано. Пользуетесь.
Это что касается Ардуино.
По Джойкону сказать нечего не могу, сам юзаю ардуинку.
Вот (http://pccar.ru/showthread.php?t=19658) тема по джойкону.
Вот (http://pccar.ru/showthread.php?t=20460) ещё один вариант от YAM1966

Свой руль крутить не хочу, хочу взять просто кнопки для опыта и потом к nexus'у Возможно ли такое ? А то боюсь на паять что нибудь не так или все по месту придется делать ?

klimsky
19.05.2015, 15:15
Свой руль крутить не хочу, хочу взять просто кнопки для опыта и потом к nexus'у Возможно ли такое ? А то боюсь на паять что нибудь не так или все по месту придется делать ?
руль крутить скорее всего не нужно. в магнитолу приходит разъем с проводами красный-черный и зеленый-белый. вытащить его из магнитолы, купить подходящий разъем, аналогичный тому что в магнитоле и подключить с его помощью провода к ардуино. нарушать целостность проводки не обязательно

Yuricat
19.05.2015, 15:47
Может кому-нибудь доводилось сталкиваться с таким чудом корейской мысли? Называют его HK Drive (http://doctc.com/shop/goods/goods_view.php?goodsno=97817&category=001002006). Не понятно как эта штука взаимодействует с головным устройством и универсальна она или заточена только ГУ для Hyundai/KIA.

Chubaka885
19.05.2015, 19:13
Свой руль крутить не хочу, хочу взять просто кнопки для опыта и потом к nexus'у Возможно ли такое ? А то боюсь на паять что нибудь не так или все по месту придется делать ?
Не понятно что вы хотите.
В результате вы хотите подключить кнопки руля?
Зачем тогда собирать схему из покупных кнопок. А для этого вам понадобятся ещё резисторы таких номиналов как у кнопок на руле.
Не проще снять на время тестов кнопки с руля и подключить их к ардуино. Тем более что разбирать и что то паять в кнопках руля вам не надо.

Yuricat Он работает как ик-пульт. Настраивается с помощью стокового ик-пульта магнитоллы.
UNIVERSAL REMOTE CONTROL

H/K remote control model is factory preset for most popular navigation systems sold in the market


How it works:


Pull out the big round know upward to take the knob out from remote control body
Then you can see 2 LEDs on PCB top of PCB board, left one is indicator LED (Signal Indicator LED) and the right one is IR Sensor


Connection:


2 black wires = GND
Red wire = +12V ACC
Blue wire = +12V illumination



How to set buttons:

As all major brand products are factory preset for the most usual use, so no need to adjust all buttons, but at the same time, all buttons can be set by user to his preferred functions as follows


Remove the big round knob by pulling up.
Press Menu and ESC button for 5 seconds, together.
Then Red signal LED on right side will flicker (turn on and off) slowly
Press the button you want to adjust the function (for example, if you want the Menu button for some other function of change the fixed function )
Then the Red signal LED will be turn-off
Then press the function button on original remote control, orienting the original remote control unit to the input sensor of remote-control H/K
Once the process is done, the Red signal LED will flicker slowly again.
Caution: If the adjusting process is incomplete, then the Red Signal LED will flicker fast, then go to process 4, and check the Red signal LED turn off, and restart to adjust from process 4
Repeat process 4 to 7 to set all buttons
Once all buttoned are adjusted, leave the unit until the Red Signal LED turns-off.

_boo
19.05.2015, 19:28
Chubaka885


Я с Литвы взял. Полазил на ебей нашёл продавана который торгует этими джойстиками. Списался с ним. Спросил может есть у него джойстик не рабочий. Он ответил что есть рабочий но со сломанными креплениями)). В общем договорились и вышел он мне с доставкой за 1200р с копейками до повышения долара

С начало хотел по can шине сделать, но надо было заказывать доп платку вроде как. Дальше разбираться не стал и всунул туда ардуино про мини
Ну и вот результат в тойоте. Удобно, красиво и функционально.
http://pccar.ru/attachment.php?attachmentid=39967&stc=1&thumb=1&d=1431965834


dariss77 Вот этот продаван?

с joy con данный idrive связать можно как то?

Chubaka885
19.05.2015, 19:41
Chubaka885

dariss77 Вот этот продаван?

с joy con данный idrive связать можно как то?

Возможно и он. Точно сказать не могу, было это год назад если не больше и переписка с ним не осталась так как почту я регулярно подчищаю.
По поводу джойкона не подскажу.

p/s поднял данные с палки. вот получатель: Mantas Kazlauskas saitanas333@gmail [точка] com

Disgraced
19.05.2015, 20:30
Кто может подправить выложенный ранее "эталонный" скетч? Нужно кнопкой моде не страницы листать, а нажимать кнопку питания нексуса (физическую).
Т.е. не придётся выводить кнопку питания в бардачёк, плюс можно гасить экран - чтобы в вечернее время не отвлекал.

sloppyBAIT
19.05.2015, 22:13
Не понятно что вы хотите.
В результате вы хотите подключить кнопки руля?
Зачем тогда собирать схему из покупных кнопок. А для этого вам понадобятся ещё резисторы таких номиналов как у кнопок на руле.
Не проще снять на время тестов кнопки с руля и подключить их к ардуино. Тем более что разбирать и что то паять в кнопках руля вам не надо.


Ладно вы не поняли. Проехали тот момент с кнопками. Возьмем штатный руль. В принципе я понял как запрограммить ардруино , но мне не понятно как это будет сидеть всё в машине. Вот картинка. Все правильно понимаю ? После программирования кнопок . будет работать и Nexus 7 и Штатная магнитола ? Так ?
http://s7.hostingkartinok.com/uploads/thumbs/2015/05/89ed9595a497f5cbe67ae90d9f3fddae.png (http://hostingkartinok.com/show-image.php?id=89ed9595a497f5cbe67ae90d9f3fddae)

Disgraced
19.05.2015, 22:23
А зачем после ардуины на штатную голову сигнал с кнопок пускать? Если надо на голову сигнал - то его в обход ардуины. Но тогда на нажатие кнопок руля планшет и голова будут реагировать одновременно - т.е. громкость будет и там и там меняться.
Всё зависит от того, как штатная голова и нексус между собой связаны в процессе использования.

sloppyBAIT
19.05.2015, 22:31
А зачем после ардуины на штатную голову сигнал с кнопок пускать? Если надо на голову сигнал - то его в обход ардуины. Но тогда на нажатие кнопок руля планшет и голова будут реагировать одновременно - т.е. громкость будет и там и там меняться.
Всё зависит от того, как штатная голова и нексус между собой связаны в процессе использования.

Я планирую оставить FM радио от штатки и кнопки мне там тоже нужны =) ну как-то так. Ваши советы. Как лучше сделать ? или от штатки тогда полностью отказаться ?
Просто решение FM радио на Nexus'е очень дорогое удовольствие. Я как понял.

Chubaka885
20.05.2015, 21:23
Я планирую оставить FM радио от штатки и кнопки мне там тоже нужны =) ну как-то так. Ваши советы. Как лучше сделать ? или от штатки тогда полностью отказаться ?
Просто решение FM радио на Nexus'е очень дорогое удовольствие. Я как понял.

1. Кнопки руля в ардуино. Ардуино по USB к планшету, по i2c к магнитолле. Одна кнопка на руле для переключения режимов. Вариант не простой, так как надо будет узнать/считать команды управления по шине i2c в магнитоле и посылать их с ардуино.

2. Кнопки руля через реле к ардуино и к магнитоле. Ардуино по USB к планшету. Одна кнопка на руле для переключения режимов. В даном случае управление реле, которое тупо будет переключать кнопки то на ардуино, то на магнитолу). Вариант простой, но "колхозный".

sloppyBAIT
21.05.2015, 13:19
1. Кнопки руля в ардуино. Ардуино по USB к планшету, по i2c к магнитолле. Одна кнопка на руле для переключения режимов. Вариант не простой, так как надо будет узнать/считать команды управления по шине i2c в магнитоле и посылать их с ардуино.

2. Кнопки руля через реле к ардуино и к магнитоле. Ардуино по USB к планшету. Одна кнопка на руле для переключения режимов. В даном случае управление реле, которое тупо будет переключать кнопки то на ардуино, то на магнитолу). Вариант простой, но "колхозный".

ААААААААА, вот оно как... Слушай,а это просто гениально... =) , я даже о mode не подумал как переключатель между устройствами. Теперь осталось дождаться arduino pro micro... и начну дальше вопросами грузить . Надеюсь не против :big:

nikopol70
21.05.2015, 13:57
Попробуйте залить этот (http://pccar.ru/showpost.php?p=288838&postcount=214) скетч.


нужно добавить 2 дополнительные кнопки в данный скетч, у меня леонардо
в написании пока дуб :be: осваиваю

с кодом подмогнете?
хочу добавить например стрелки вверх вниз, потом на них подвесить через ремоте стрит виджет переключение папок на поверампе

остально все работает как часики, в смысле скет

lti1
21.05.2015, 14:10
нужно добавить 2 дополнительные кнопки в данный скетч, у меня леонардо
в написании пока дуб :be: осваиваю

с кодом подмогнете?
хочу добавить например стрелки вверх вниз, потом на них подвесить через ремоте стрит виджет переключение папок на поверампе

остально все работает как часики, в смысле скетВы это (http://pccar.ru/showpost.php?p=309621&postcount=27) имели ввиду?

nikopol70
21.05.2015, 16:14
Вы это (http://pccar.ru/showpost.php?p=309621&postcount=27) имели ввиду?

так точно, но только то бы не потерять возможности вашего скетча (там где работает альт таб, прокрутка песни и т.д.) :pleasantry:

как совместить то и другое?

lti1
21.05.2015, 16:24
так точно, но только то бы не потерять возможности вашего скетча (там где работает альт таб, прокрутка песни и т.д.) :pleasantry:

как совместить то и другое?Вот альтернатива Alt+Tab. (http://pccar.ru/showthread.php?p=309650#post309650) ИМХО для авто даже удобнее, потому как переключает только между теми приложениями, который Вам необходимы, а не межу всеми запущенными.

nikopol70
21.05.2015, 17:34
Вот альтернатива Alt+Tab. (http://pccar.ru/showthread.php?p=309650#post309650) ИМХО для авто даже удобнее, потому как переключает только между теми приложениями, который Вам необходимы, а не межу всеми запущенными.

т.е. я правильно понимаю - заливаю только этот скетч http://pccar.ru/showpost.php?p=309621&postcount=27
и с помощью Remote street control и этого http://pccar.ru/showthread.php?p=309650#post309650 програмирую то то мне надо?

или нужно в леонардо еще что то?

lti1
21.05.2015, 18:25
т.е. я правильно понимаю - заливаю только этот скетч http://pccar.ru/showpost.php?p=309621&postcount=27
и с помощью Remote street control и этого http://pccar.ru/showthread.php?p=309650#post309650 програмирую то то мне надо?

или нужно в леонардо еще что то?Всё верно, настройки производятся в Remote steering wheel control (http://forum.xda-developers.com/showthread.php?t=2635159) и в Tasker (http://pccar.ru/showthread.php?t=18712).

nikopol70
21.05.2015, 18:30
Всё верно, настройки производятся в Remote steering wheel control (http://forum.xda-developers.com/showthread.php?t=2635159) и в Tasker (http://pccar.ru/showthread.php?t=18712).

Вообще отлично.
А можно в личку пару вопросов по скетчу ?

lti1
21.05.2015, 18:31
Вообще отлично.
А можно в личку пару вопросов по скетчу ?
:yes4:

nikopol70
22.05.2015, 15:28
:yes4:

все собрал все работает - одно но - как избавится от так называемого дребезга кнопок - при нажатии на кнопку значения могут выскачит с разбегом в 100-200 единиц....:tease:

кнопки подключил к пину А0 и GND - без подтяжки резистором - может в этом проблема?
в оригинальной теме на xda хитрая схема подключения кнопок но там друга ардуина.

Chubaka885
22.05.2015, 16:46
все собрал все работает - одно но - как избавится от так называемого дребезга кнопок - при нажатии на кнопку значения могут выскачит с разбегом в 100-200 единиц....:tease:

кнопки подключил к пину А0 и GND - без подтяжки резистором - может в этом проблема?
в оригинальной теме на xda хитрая схема подключения кнопок но там друга ардуина.
Подтяжку ставь.

wave_is
22.05.2015, 18:11
Может кому-нибудь доводилось сталкиваться с таким чудом корейской мысли? Называют его HK Drive (http://doctc.com/shop/goods/goods_view.php?goodsno=97817&category=001002006). Не понятно как эта штука взаимодействует с головным устройством и универсальна она или заточена только ГУ для Hyundai/KIA.

зверь шикарный
http://www.ebay.com/itm/UNIVERSAL-H-K-DRIVE-REMOTE-CONTROL-RADIO-NAVIGATION-/251520191237?pt=LH_DefaultDomain_0&hash=item3a8fc58b05

но за такие деньги жаба давит сильно ;(

lti1
22.05.2015, 18:42
все собрал все работает - одно но - как избавится от так называемого дребезга кнопок - при нажатии на кнопку значения могут выскачит с разбегом в 100-200 единиц....:tease:

кнопки подключил к пину А0 и GND - без подтяжки резистором - может в этом проблема?
в оригинальной теме на xda хитрая схема подключения кнопок но там друга ардуина.Да, попробуйте подтяжку поставить к +5, но не исключен и дребезг. Если не поможет, подправлю скетч.

nikopol70
23.05.2015, 10:19
Да, попробуйте подтяжку поставить к +5, но не исключен и дребезг. Если не поможет, подправлю скетч.

промучался пол ночи, перепробовал разные варианты подтяжки - с разными номиналами резисторов и резисторы в кнопках менял... :tease:
но что есть то есть

если есть возможность подправить скетч - буду признателен

нашел на одном ресурсе описание как от этго избавится, но там теория и описание библиотеки (Bounce ) но использоать пока не умею

awtoap
23.05.2015, 12:24
антидребезг делается элементарно...опрашиваете линию и запоминаете значение...задержка 10-20мс и снова опрашиваете линию...затем сравниваете старое и новое значение...если значение отличается скажем на 8 едениц как в меньшую так и большую сторону то делаем обработку иначе снова на опрос.

Генератор
23.05.2015, 12:33
вот не понимаю только одного, откуда дребезг кнопок.
кнопки то какие? резистивные ?
если резистивные там же просто стоит тупой резюк. ну какой там дребезг

awtoap
23.05.2015, 12:42
А если подумать? Резисторы чем замыкаете?

nikopol70
23.05.2015, 13:48
антидребезг делается элементарно...опрашиваете линию и запоминаете значение...задержка 10-20мс и снова опрашиваете линию...затем сравниваете старое и новое значение...если значение отличается скажем на 8 едениц как в меньшую так и большую сторону то делаем обработку иначе снова на опрос.

Втеории понятно, а вот на практике пока увы, ардуину только начал осваивать

Ajlewka
24.05.2015, 13:36
Всем привет. Дуину такого типа (http://uk.shopotam.ru/catalog/Business_Office_And_Industrial/Electrical_And_Test_Equipment/Components_And_Supplies/Other_Components_And_Supplies/arduino/171382597214-item.html) (не оригинал) как хид устройство возможно задействовать? Попытка перепрошить бутлоадер у меня не увенчалась успехом, как я понял отстутствует ATMEGA 16U2.
Вот еще образец (http://vladivostok.farpost.ru/arduino-uno-r3-novaja-versija-dalkon-32573336.html) моей дуинки.

Или нужно было такую (http://vladivostok.farpost.ru/arduino-uno-r3-dalkon-33126215.html) брать?

Chubaka885
24.05.2015, 13:59
Всем привет. Дуину такого типа (http://uk.shopotam.ru/catalog/Business_Office_And_Industrial/Electrical_And_Test_Equipment/Components_And_Supplies/Other_Components_And_Supplies/arduino/171382597214-item.html) (не оригинал) как хид устройство возможно задействовать? Попытка перепрошить бутлоадер у меня не увенчалась успехом, как я понял отстутствует ATMEGA 16U2.
Вот еще образец (http://vladivostok.farpost.ru/arduino-uno-r3-novaja-versija-dalkon-32573336.html) моей дуинки.

Или нужно было такую (http://vladivostok.farpost.ru/arduino-uno-r3-dalkon-33126215.html) брать?
Если вы хотите без танцев с бубном то брать надо или pro micro или leonardo на Atmege 32U4

nikopol70
24.05.2015, 18:22
вот не понимаю только одного, откуда дребезг кнопок.
кнопки то какие? резистивные ?
если резистивные там же просто стоит тупой резюк. ну какой там дребезг

Ребята, есть кто может скетч подставить от дребезга?
Второй день осваивают ардуину программирование, все что смог это избавится от дребезга на 3 из 7 кнопок.

anru
27.05.2015, 11:29
Добрый день всем хотелось бы направить вопрос к гуру этого форума.
У меня застопорилось подключение кнопок на руле по причине что нет больше контактов на шлейфе который идет для сигнала и подушки. Думал там как и для мультируля есть запас проводов но нет. Машина тойота пикник. Есть конечно вариант попробовать поискать шлейф с машине где есть мультируль. Но может попробовать по другому . В голове собрались варианты может подскажите мне правильное решение буду благодарен.

1 вариант. Ардуино возле кнопок под подушкой. Проблемма передачи сигнала. Если можно по блютузу передать то как это реализовать и энерго потребление какое , подключение как будет происходить. Еше вопрос по подсветке кнопок там пять вольт хватит пробовал яркости хватает только опять по потреблению вопрос. Если все это питать от аков каких нибуть на сколько хватать будет? или же сразу ставить зарядку для аков и вывести штекер под рулем.

2 вариант.У меня есть пульт блютуз работает от батарейки таблетки хватает на месяц подключается всегда автоматом. Взять эго разобрать подключится на прямую к кнопкам без резисторов. Поставить акки вместо таблетки хватать будет на фиг знает сколько если подключить подсветку кнопок к ним то надо как то автоматизировать включение подсветки.И опять вывести штекер зарядки для акков. Но надо разбирать кнопки и подпаиваться к каждому контакту.

3 вариант без разбора кнопок подключить ардуинку или просто микроконтроллер пусть обрабатывает кнопки но посылает команды на замыкание кнопок пульта блютуз и обрабатывает автоматизацию подсветки кнопок вопрос какое энергопотребление у этого всего будет штекер для заряда я так понимаю нужен во всех вариантах.
Спасибо жду вашего взгляда на это все.
пульт вот такой http://pccar.ru/showthread.php?t=22878

lti1
27.05.2015, 12:29
Добрый день всем хотелось бы направить вопрос к гуру этого форума.
У меня застопорилось подключение кнопок на руле по причине что нет больше контактов на шлейфе который идет для сигнала и подушки. Думал там как и для мультируля есть запас проводов но нет. Машина тойота пикник. Есть конечно вариант попробовать поискать шлейф с машине где есть мультируль. Но может попробовать по другому . В голове собрались варианты может подскажите мне правильное решение буду благодарен.

1 вариант. Ардуино возле кнопок под подушкой. Проблемма передачи сигнала. Если можно по блютузу передать то как это реализовать и энерго потребление какое , подключение как будет происходить. Еше вопрос по подсветке кнопок там пять вольт хватит пробовал яркости хватает только опять по потреблению вопрос. Если все это питать от аков каких нибуть на сколько хватать будет? или же сразу ставить зарядку для аков и вывести штекер под рулем.

2 вариант.У меня есть пульт блютуз работает от батарейки таблетки хватает на месяц подключается всегда автоматом. Взять эго разобрать подключится на прямую к кнопкам без резисторов. Поставить акки вместо таблетки хватать будет на фиг знает сколько если подключить подсветку кнопок к ним то надо как то автоматизировать включение подсветки.И опять вывести штекер зарядки для акков. Но надо разбирать кнопки и подпаиваться к каждому контакту.

3 вариант без разбора кнопок подключить ардуинку или просто микроконтроллер пусть обрабатывает кнопки но посылает команды на замыкание кнопок пульта блютуз и обрабатывает автоматизацию подсветки кнопок вопрос какое энергопотребление у этого всего будет штекер для заряда я так понимаю нужен во всех вариантах.
Спасибо жду вашего взгляда на это все.
пульт вот такой http://pccar.ru/showthread.php?t=22878Вариант 1 (http://pccar.ru/showthread.php?t=19559)
Вариант 2 (http://forum.xda-developers.com/showthread.php?t=2635159)
Ардуино и BT модуль потребляют вместе не более 50-70 мА.
Питание можно взять со звукового сигнала, поставив по питанию буферный конденсатор, что бы питание не пропадало при коротковременном гудке.

Niferman
27.05.2015, 23:20
Iti1
Вопросик можно? Вот в этом посту (http://pccar.ru/showpost.php?p=277286&postcount=182) вы писали что для подключения кнопок через ардуино, должна быть Arduino Leonardo или Arduino Pro Micro.
У меня есть такая Pro Mini AVR ATmega328P 5V16M (http://ru.aliexpress.com/item/Pro-Mini-Gold-Plated-Core-Board-AVR-ATmega328P-5V16M-For-Arduino-Micro-Controller-Circuit-Board/2040528284.html)
Собственно вопрос, она подойдет или нужна именно такая Pro Micro arduino ATmega32U4 5 В / 16 мГц (http://ru.aliexpress.com/item/Free-Shipping-New-Pro-Micro-for-arduino-ATmega32U4-5V-16MHz-Module-with-2-row-pin-header/32331050314.html)
Спасибо.

lti1
28.05.2015, 00:30
Iti1
Вопросик можно? Вот в этом посту (http://pccar.ru/showpost.php?p=277286&postcount=182) вы писали что для подключения кнопок через ардуино, должна быть Arduino Leonardo или Arduino Pro Micro.
У меня есть такая Pro Mini AVR ATmega328P 5V16M (http://ru.aliexpress.com/item/Pro-Mini-Gold-Plated-Core-Board-AVR-ATmega328P-5V16M-For-Arduino-Micro-Controller-Circuit-Board/2040528284.html)
Собственно вопрос, она подойдет или нужна именно такая Pro Micro arduino ATmega32U4 5 В / 16 мГц (http://ru.aliexpress.com/item/Free-Shipping-New-Pro-Micro-for-arduino-ATmega32U4-5V-16MHz-Module-with-2-row-pin-header/32331050314.html)
Спасибо.Нужно именно Arduino Leonardo или Arduino Pro Micro. Pro Mini не подойдет.

Niferman
28.05.2015, 00:37
Нужно именно Arduino Leonardo или Arduino Pro Micro. Pro Mini не подойдет.
А тут вот выбор между 2-мя вариантами у меня встал, не подскажите какую лучше?
Вариант 1 (http://ru.aliexpress.com/item/FREE-SHIPPING-1PCS-ATMega-32U4-pro-micro-leonardo-For-Arduino-Compatible-pro-mini-usb-control-board/32276461676.html)
Вариант 2 (http://ru.aliexpress.com/item/New-Pro-Micro-5V-16MHz-ATMega-32U4-Module-with-2-row-pin-header-For-Leonardo/1887120339.html)
И еще вопрос, я правильно понимаю что ардуина и андроид соединяются через USB шнурок?
Премного благодарен.

lti1
28.05.2015, 00:40
А тут вот выбор между 2-мя вариантами у меня встал, не подскажите какую лучше?
Вариант 1 (http://ru.aliexpress.com/item/FREE-SHIPPING-1PCS-ATMega-32U4-pro-micro-leonardo-For-Arduino-Compatible-pro-mini-usb-control-board/32276461676.html)
Вариант 2 (http://ru.aliexpress.com/item/New-Pro-Micro-5V-16MHz-ATMega-32U4-Module-with-2-row-pin-header-For-Leonardo/1887120339.html)
И еще вопрос, я правильно понимаю что ардуина и андроид соединяются через USB шнурок?
Премного благодарен.Без разницы, они оба собраны на базе микроконтроллера ATMega 32U4.

Рафаэль
31.05.2015, 14:08
Добрый день!
Уважаемые, подскажите пожалуйста: нашел в интернете вот такой адаптер - http://**************/product/**********-joycoder/ , продавец говорит, что данное устройство работает только с win 8, под андроид нет ПО, возникает следующий вопрос - возможно кто нибудь уже смотрел на данной устройство, возможно ли написать по для него?

Chubaka885
31.05.2015, 14:17
Добрый день!
Уважаемые, подскажите пожалуйста: нашел в интернете вот такой адаптер - http://**************/product/**********-joycoder/ , продавец говорит, что данное устройство работает только с win 8, под андроид нет ПО, возникает следующий вопрос - возможно кто нибудь уже смотрел на данной устройство, возможно ли написать по для него?

ПО нужно только для настройки. Настроить вы можете и с винды а использовать на андройде.
ПО под андройд можно и написать, но я сомневаюсь что этим кто то будет сдесь заниматься.

Рафаэль
31.05.2015, 14:27
ПО нужно только для настройки. Настроить вы можете и с винды а использовать на андройде.
ПО под андройд можно и написать, но я сомневаюсь что этим кто то будет сдесь заниматься.

Просто согласно описанию интересная штука, в моем случае энкодер можно вынести рядом с планшетом для регулировки громкости помимо руля, оч. эстетично будет выглядеть. А то, что будет работать под андроидом после настройки под виндоус какие гарантии?))

Chubaka885
31.05.2015, 14:34
Просто согласно описанию интересная штука, в моем случае энкодер можно вынести рядом с планшетом для регулировки громкости помимо руля, оч. эстетично будет выглядеть. А то, что будет работать под андроидом после настройки под виндоус какие гарантии?))
Ничего интересного я там не вижу. Судя по описанию обычный эмулятор HID клавиатуры. Работать на андройде будет, за гарантиями к магазину.
Всё это можно сделать самому на ардуино и энкодер и крутилка на него за меньшие деньги.

Рафаэль
31.05.2015, 14:39
Спасибо за развернутый ответ, я просто искал готовое решение, т.к. В моем городе мне никто ничем помочь не может. Хочется спросить, может есть кто то в ближайших городах кто может мне помочь?...

Daniel
01.06.2015, 02:20
Забудьте про это устройство - оно только для windows. Мы год пытались написать софт для него под андроид, но ничего путного не вышло - функционал получался сильно ограничен. Не выходит в андроиде сделать полноценную виртуальную клавиатуру.
Под windows работает только со своей программой.

Делайте на ардуино - в интернете полно информации, как сделать необходимый функционал.

tto4ka
01.06.2015, 17:48
Может кому интересно будет, наткнулся сегодня на небольшой пультик под андроид...
http://www.satechi.net/index.php/smartphones-and-tablets/accessories/remotes/satechi-bluetooth-button-series-media-button

Din0
01.06.2015, 18:06
Может кому интересно будет, наткнулся сегодня на небольшой пультик под андроид...
http://www.satechi.net/index.php/smartphones-and-tablets/accessories/remotes/satechi-bluetooth-button-series-media-button

Чем оно лучше, к примеру, вот (http://ru.aliexpress.com/store/product/2-in-1-Universal-Remote-Control-for-Camera-Remote-Shutter-and-Music-Player-Shutter-Support-Taking/1056012_32306369892.html) такого пульта?

tto4ka
01.06.2015, 18:23
Да да я накосячил :)))) ничем не лучше, тоже вот у китайцев сейчас мотрю что есть Ищу просто сбе пульт какой то вменяемый, хочется с функцией Jog но блин это похоже не реально.... со всех сторон какие то засады
Вот например поинтереснее вариация
http://ru.aliexpress.com/item/Bluetooth-V3-0-Wireless-Selfie-Camera-Shutter-Gamepad-Remote-Game-Console-Controller-for-Android-IOS-PC/32320504883.html

tto4ka
01.06.2015, 18:39
На самом деле вариант с iDrive самый интересный только где iDrive найти по разумной цене, ну или другого интересного донора

Rage2
01.06.2015, 18:59
Вот например поинтереснее вариация
http://ru.aliexpress.com/item/Bluetooth-V3-0-Wireless-Selfie-Camera-Shutter-Gamepad-Remote-Game-Console-Controller-for-Android-IOS-PC/32320504883.html
У меня есть такой...спрашивай что интересно.

tto4ka
01.06.2015, 19:05
У меня есть такой...спрашивай что интересно.
Джойстик на 4 направления? По усб он только заряжается? или по усб он и как хид видится?

Rage2
02.06.2015, 01:37
Джойстик на 4 направления? По усб он только заряжается? или по усб он и как хид видится?

По юсб никак не видится, только зарядка.
По BT видится как клавиатура, профиль HID

Еще нем есть переключатель сбоку...режим Game\Key

Относительно горизонтальной ориентации брелка.
режим Game
Стик (4-е направления)
ВВЕРХ KEYCODE_DPAD_UP
ВНИЗ KEYCODE_DPAD_DOWN
ЛЕВО KEYCODE_DPAD_LEFT
ПРАВО KEYCODE_DPAD_RIGHT

Кнопки
X- KEYCODE_BUTTON_A
A- KEYCODE_BUTTON_B
iOS- KEYCODE_BUTTON_X
треугольник - KEYCODE_BUTTON_Y
start -KEYCODE_BUTTON_START

режим Key
Стик (4-е направления)
ВВЕРХ KEYCODE_MEDIA_NEXT
ВНИЗ KEYCODE_MEDIA_PREVIOS
ЛЕВО KEYCODE_MEDIA_FAST_FORWARD
ПРАВО KEYCODE_MEDIA_REWIND

Кнопки
X- KEYCODE_VOLUME_DOWN
A- KEYCODE_ENTER
iOS- KEYCODE_VOLUME_UP
треугольник - KEYCODE_BACK
start -KEYCODE_MEDIA_PLAY_PAUSE

tto4ka
02.06.2015, 03:59
По юсб никак не видится, только зарядка.
По BT видится как колавиатура, профиль HID

Еще нем есть переключатель сбоку...режим Game\Key

Относительно горизонтальной ориентации брелка.
режим Game
Стик (4-е направления)
ВВЕРХ KEYCODE_DPAD_UP
ВНИЗ KEYCODE_DPAD_DOWN
ЛЕВО KEYCODE_DPAD_LEFT
ПРАВО KEYCODE_DPAD_RIGHT

Кнопки
X- KEYCODE_BUTTON_A
A- KEYCODE_BUTTON_B
iOS- KEYCODE_BUTTON_X
треугольник - KEYCODE_BUTTON_Y
start -KEYCODE_BUTTON_START

режим Key
Стик (4-е направления)
ВВЕРХ KEYCODE_MEDIA_NEXT
ВНИЗ KEYCODE_MEDIA_PREVIOS
ЛЕВО KEYCODE_MEDIA_FAST_FORWARD
ПРАВО KEYCODE_MEDIA_REWIND

Кнопки
X- KEYCODE_VOLUME_DOWN
A- KEYCODE_ENTER
iOS- KEYCODE_VOLUME_UP
треугольник - KEYCODE_BACK
start -KEYCODE_MEDIA_PLAY_PAUSE

Самый главный вопрос забыл спросить, в машине вообще юзабельно? Удобно в смысле? :)

Rage2
02.06.2015, 10:53
Самый главный вопрос забыл спросить, в машине вообще юзабельно? Удобно в смысле? :)
В том виде какой он есть, я думаю что не особо.

tto4ka
02.06.2015, 15:23
Все вопрос решен :) Напшел iDrive :))))
Небольшое зондирование почвы на тему iDrive принесло следующие результаты, есть 2 пути:
1. Вскрыть джойстик и припаять Arduino к узлам джойстика (метод Chubaka885)
2. Джойстик работает по CAN поэтому можно сделать обвязку на двух микросхемах MCP2515 и TJA1055 причем обе микросхемы не дорогие порядка 50-100р за штуку и дальше уже в Arduino Micro, есть даже схема шилда, причем через CAN в принципе наверно правильнее так как сразу весь функционал и подсветка :), только вот производственных мощностей нету чтобы плату вытравить....

Bormental
07.06.2015, 17:07
Всем добра. Подскажите в скетче Iti выдает ошибку
Remote.increase(); - желтым выделяет и пишет
remote as not declared in this scope
чего делать??

Chubaka885
07.06.2015, 19:10
Всем добра. Подскажите в скетче Iti выдает ошибку
Remote.increase(); - желтым выделяет и пишет
remote as not declared in this scope
чего делать??
Библиотеку надо заменить. Всё же написано (http://pccar.ru/showpost.php?p=319975&postcount=307).

Для начала меняем в папке \arduino-1.0.5\hardware\arduino\cores\arduino два файла USBAPI.h, HID.cpp на те, что во вложении этого сообщения, при этом версия ПО Arduino Software IDE должна быть 1.0.5, скачать setup exe, скачать zip.

Bormental
07.06.2015, 21:42
Я конечно же поменял все библиотеки, поэтому и написал сюда, что выскакивает такая строка

Chubaka885
08.06.2015, 07:11
Я конечно же поменял все библиотеки, поэтому и написал сюда, что выскакивает такая строка
Версия ПО?

komers
13.06.2015, 01:49
Все вопрос решен :) Напшел iDrive :))))

Если не секрет, за сколько вы его приобрели?

Ajlewka
13.06.2015, 16:52
Вопрос по теме - на столе все работает, только переношу в машину, начинается очень большой разброс по значениям. Если на столе 1-3, то в машине доходит до 80-100. Питается от НСД. я так понял это в ней дело. Вообще, есть разница в подтяжке? у меня сейчас сделано в состоянии покоя подтяжка на 5в. Что изменится если переделать на землю?

armlive
13.06.2015, 19:51
Может кому пригодится, кашкаводам точно!
Бывает такое, что кнопки сидят не в одной группе, а в несколько. Вот и на кашкае шесть кнопок, но две группы и естественно два провода, да ещё и сопротивления одинаковые. Раньше соединял их резистором и сводил в один.... работает. Но все же дребезг, разница в значениях иногда приводила к непредсказуемым действиям.
И вот моя наконец дошло))):pleasantry:
Надеюсь многим поможет, работает теперь просто идеально работает.
Немного переделанный код с поста lti1 (http://www.pccar.ru/showpost.php?p=319975&postcount=307)

Для двух проводных кнопок!


//****************** Здесь необходимо указать свои значения ***************

int analogPin=0; // пин для подключения кнопок A0
int analogPin1=1; // пин для подключения кнопок A1

int release_button = 1023; // значение при отпущенных кнопках
int button_release_range = 20; // диапазон значения + - при отпущенных кнопках
int button_range = 10; // диапазон значения нажатых кнопок + -
int time_holding = 500; // время для удержания кнопок в миллисекундах
int time_tinkling = 10; // время исключающее дребезг контактов в миллисекундах
int vol_up = 345; // значение кнопки увеличить громкость
int vol_down = 165; // значение кнопки уменьшить громкость data1
int alt_tab = 0; // значение кнопки которая будет работать как Alt + Tab
int next = 100; // значение кнопки которая будет работать как Next при коротком нажатии и Fast Forward при удержании
int previous = 30; // значение кнопки которая будет работать как Previous при коротком нажатии и Rewind при удержании data1
int play_pause = 0; // значение кнопки которая будет работать как Play/Pause при коротком нажатии и Mute при удержании data1

//************************************************** ************************

int data;
int data1;
unsigned long flag = 0;
unsigned long eventTime = 0;
unsigned long pauseMillis = 0;

void setup()
{
Keyboard.begin();
}

void loop()
{
data=analogRead(analogPin);
data1=analogRead(analogPin1);
if(data>=release_button - button_release_range && data<=release_button + button_release_range && flag == 0)
{
eventTime=millis();
}

if(data1>=release_button - button_release_range && data1<=release_button + button_release_range && flag == 0)
{
eventTime=millis();
}

//********************** Громкость ************************************

if(millis()-time_tinkling && millis()-eventTime<time_holding-1 && data >= vol_up - button_range && data <= vol_up + button_range && flag == 0)
{
Remote.increase();
flag = 5;
delay(10);
Remote.clear();
}

if(millis()-eventTime>time_holding && data >= vol_up - button_range && data <= vol_up + button_range && flag == 5 || data >= vol_up - button_range && data <= vol_up + button_range && flag && flag == 3)
{
Remote.increase();
flag = 3;
Remote.clear();
delay(100);
}

if(millis()-time_tinkling && millis()-eventTime<time_holding-1 && data1 >= vol_down - button_range && data1 <= vol_down + button_range && flag == 0)
{
Remote.decrease();
flag = 6;
delay(10);
Remote.clear();
}

if(millis()-eventTime>time_holding && data1 >= vol_down - button_range && data1 <= vol_down + button_range && flag == 6 || data1 >= vol_down - button_range && data1 <= vol_down + button_range && flag == 3)
{
Remote.decrease();
flag = 3;
Remote.clear();
delay(100);
}

//********************** AltTab + Ещё что то ************************************

if(millis()-time_tinkling && millis()-eventTime<time_holding-1 && data >= alt_tab - button_range && data <= alt_tab + button_range)
{
flag = 1;
}

if(data>=release_button - button_release_range && data<=release_button + button_release_range && flag == 1 && pauseMillis == 0)
{
Keyboard.press(KEY_LEFT_ALT);
Keyboard.press(KEY_TAB);
Keyboard.release(KEY_TAB);
Keyboard.press(KEY_TAB);
Keyboard.release(KEY_TAB);
flag = 0;
pauseMillis = millis();
}

if(data>=release_button - button_release_range && data<=release_button + button_release_range && flag == 1 && pauseMillis != 0)
{
Keyboard.press(KEY_TAB);
Keyboard.release(KEY_TAB);
flag = 0;
pauseMillis = millis();
}

if(pauseMillis && millis()-pauseMillis >= 1500 && data>=release_button - button_release_range && data<=release_button + button_release_range)
{
flag = 0;
pauseMillis = 0;
Keyboard.releaseAll();
}

if(millis()-eventTime>time_holding && data >= alt_tab - button_range && data <= alt_tab + button_range && flag == 1)
{
flag = 0;
}
//********************** Next и Fast Forward ************************************

if(millis()-time_tinkling && millis()-eventTime<time_holding-1 && data >= next - button_range && data <= next + button_range)
{
flag = 2;
}

if(data>=release_button - button_release_range && data<=release_button + button_release_range && flag == 2)
{
Remote.next();
flag = 0;
delay(10);
Remote.clear();
}

if(millis()-eventTime>time_holding && data >= next - button_range && data <= next + button_range && flag == 2 || data >= next - button_range && data <= next + button_range && flag == 3)
{
Remote.forward();
flag = 3;
Remote.clear();
delay(100);
}
//********************** Previous и Rewind ************************************

if(millis()-time_tinkling && millis()-eventTime<time_holding-1 && data1 >= previous - button_range && data1 <= previous + button_range)
{
flag = 4;
}

if(data1>=release_button - button_release_range && data1<=release_button + button_release_range && flag == 4)
{
Remote.previous();
flag = 0;
delay(10);
Remote.clear();
}

if(millis()-eventTime>time_holding && data1 >= previous - button_range && data1 <= previous + button_range && flag == 4 || data1 >= previous - button_range && data1 <= previous + button_range && flag == 3)
{
Remote.rewind();
flag = 3;
Remote.clear();
delay(100);
}

//********************** Play/pause + Mute ************************************

if(millis()-time_tinkling && millis()-eventTime<time_holding-1 && data1 >= play_pause - button_range && data1 <= play_pause + button_range)
{
flag = 7;
}

if(data1>=release_button - button_release_range && data1<=release_button + button_release_range && flag == 7)
{
Remote.play_pause();
flag = 0;
delay(10);
Remote.clear();
}

if(millis()-eventTime>time_holding && data1 >= play_pause - button_range && data1 <= play_pause + button_range && flag == 7)
{
Remote.mute();
flag = 0;
delay(10);
Remote.clear();
}
if(data>=release_button - button_release_range && data<=release_button + button_release_range && flag == 3 || data>=release_button - button_release_range && data<=release_button + button_release_range && flag == 5 || data>=release_button - button_release_range && data<=release_button + button_release_range && flag == 6)

if(data1>=release_button - button_release_range && data1<=release_button + button_release_range && flag == 3 || data1>=release_button - button_release_range && data1<=release_button + button_release_range && flag == 5 || data1>=release_button - button_release_range && data1<=release_button + button_release_range && flag == 6)
{
flag = 0;
}
}


Да и пора бы уже шапку для темы сделать

tto4ka
13.06.2015, 20:50
Если не секрет, за сколько вы его приобрели?
Ну по моему цена была приемлемой :) 3к :) если в пересчете на баксы то 60 получилось :) почти что тоже самое что и у Chubaka885 вышло :) он за 40 взял
На данном этапе жду микросхемы, нарисовано уже два шилда, в основну взят шилд австрийца, он его предоставил бесплатно, микросхемы приедут, сведу все на макете, а потом отдам в производство, но будут излишки так что скорее всего выложу на продажу по себестоимости, но один фиг дорого будет порядка 1000 за шилд примерно

Ajlewka
14.06.2015, 07:37
Соберу всю информацию по одному из решений в одном месте, у кого есть возможность закрепите ссылку в первом сообщении.
Работает только с Arduino Pro Micro (http://ru.aliexpress.com/premium/Arduino-Pro-Micro.html?ltype=wholesale&SearchText=Arduino+Pro+Micro&d=y&origin=y&initiative_id=SB_20150207123000&isViewCP=y&catId=0&LocalSearchText=Arduino+Pro+Micro&enSearchText=Arduino+Pro+Micro) и Arduino Leonardo (http://arduino.ru/Hardware/ArduinoBoardLeonardo) на чипе ATmega32u4.
Для начала меняем в папке \arduino-1.0.5\hardware\arduino\cores\arduino два файла USBAPI.h, HID.cpp на те, что во вложении этого сообщения (http://pccar.ru/showpost.php?p=277286&postcount=182), при этом версия ПО Arduino Software IDE должна быть 1.0.5, скачать setup exe (http://arduino.googlecode.com/files/arduino-1.0.5-r2-windows.exe), скачать zip (https://arduino.googlecode.com/files/arduino-1.0.5-windows.zip).
После заливаете этот скетч и считайте коды всех кнопок через "монитор порта" Arduino Software (IDE).
int analogPin=0; //пин для подключения кнопок
int data;

void setup()
{
Serial.begin(9600);
}

void loop()
{
data=analogRead(analogPin); //читаем значение нажатой кнопки
Serial.println(data);
delay(1000);
}
Подключаете кнопки к Arduino по следующим схемам, с подтяжкой к - или к +. Номинал сопротивления ~20 кОм.
38555
Потом заливаете этот скетч, только в начале скетча указываете свои значения, то есть вместо 111, 222, 333, 444, 555, 777 указываете значения своих кнопок, а также значение при отпущенных кнопках, в зависимости от схемы подключения будут либо ближе 0 либо ближе к 1023:
//****************** Здесь необходимо указать свои значения ***************

int analogPin=0; // пин для подключения кнопок, по умолчанию A0

int release_button = 1023; // значение при отпущенных кнопках
int button_release_range = 50; // диапазон значения + - при отпущенных кнопках
int button_range = 10; // диапазон значения нажатых кнопок + -
int time_holding = 500; // время для удержания кнопок в миллисекундах
int time_tinkling = 10; // время исключающее дребезг контактов в миллисекундах
int vol_up = 111; // значение кнопки увеличить громкость
int vol_down = 222; // значение кнопки уменьшить громкость
int alt_tab = 333; // значение кнопки которая будет работать как Alt + Tab
int next = 444; // значение кнопки которая будет работать как Next при коротком нажатии и Fast Forward при удержании
int previous = 555; // значение кнопки которая будет работать как Previous при коротком нажатии и Rewind при удержании
int play_pause = 777; // значение кнопки которая будет работать как Play/Pause при коротком нажатии и Mute при удержании

//************************************************** ************************

int data;
unsigned long flag = 0;
unsigned long eventTime = 0;
unsigned long pauseMillis = 0;

void setup()
{
Keyboard.begin();
}

void loop()
{
data=analogRead(analogPin);
if(data>=release_button - button_release_range && data<=release_button + button_release_range && flag == 0)
{
eventTime=millis();
}

//********************** Громкость ************************************

if(millis()-time_tinkling && millis()-eventTime<time_holding-1 && data >= vol_up - button_range && data <= vol_up + button_range && flag == 0)
{
Remote.increase();
flag = 5;
delay(10);
Remote.clear();
}

if(millis()-eventTime>time_holding && data >= vol_up - button_range && data <= vol_up + button_range && flag == 5 || data >= vol_up - button_range && data <= vol_up + button_range && flag && flag == 3)
{
Remote.increase();
flag = 3;
Remote.clear();
delay(100);
}

if(millis()-time_tinkling && millis()-eventTime<time_holding-1 && data >= vol_down - button_range && data <= vol_down + button_range && flag == 0)
{
Remote.decrease();
flag = 6;
delay(10);
Remote.clear();
}

if(millis()-eventTime>time_holding && data >= vol_down - button_range && data <= vol_down + button_range && flag == 6 || data >= vol_down - button_range && data <= vol_down + button_range && flag == 3)
{
Remote.decrease();
flag = 3;
Remote.clear();
delay(100);
}

//********************** AltTab + Ещё что то ************************************

if(millis()-time_tinkling && millis()-eventTime<time_holding-1 && data >= alt_tab - button_range && data <= alt_tab + button_range)
{
flag = 1;
}

if(data>=release_button - button_release_range && data<=release_button + button_release_range && flag == 1 && pauseMillis == 0)
{
Keyboard.press(KEY_LEFT_ALT);
Keyboard.press(KEY_TAB);
Keyboard.release(KEY_TAB);
Keyboard.press(KEY_TAB);
Keyboard.release(KEY_TAB);
flag = 0;
pauseMillis = millis();
}

if(data>=release_button - button_release_range && data<=release_button + button_release_range && flag == 1 && pauseMillis != 0)
{
Keyboard.press(KEY_TAB);
Keyboard.release(KEY_TAB);
flag = 0;
pauseMillis = millis();
}

if(pauseMillis && millis()-pauseMillis >= 800 && data>=release_button - button_release_range && data<=release_button + button_release_range)
{
flag = 0;
pauseMillis = 0;
Keyboard.releaseAll();
}

if(millis()-eventTime>time_holding && data >= alt_tab - button_range && data <= alt_tab + button_range && flag == 1)
{
flag = 0;
}
//********************** Next и Fast Forward ************************************

if(millis()-time_tinkling && millis()-eventTime<time_holding-1 && data >= next - button_range && data <= next + button_range)
{
flag = 2;
}

if(data>=release_button - button_release_range && data<=release_button + button_release_range && flag == 2)
{
Remote.next();
flag = 0;
delay(10);
Remote.clear();
}

if(millis()-eventTime>time_holding && data >= next - button_range && data <= next + button_range && flag == 2 || data >= next - button_range && data <= next + button_range && flag == 3)
{
Remote.forward();
flag = 3;
Remote.clear();
delay(100);
}
//********************** Previous и Rewind ************************************

if(millis()-time_tinkling && millis()-eventTime<time_holding-1 && data >= previous - button_range && data <= previous + button_range)
{
flag = 4;
}

if(data>=release_button - button_release_range && data<=release_button + button_release_range && flag == 4)
{
Remote.previous();
flag = 0;
delay(10);
Remote.clear();
}

if(millis()-eventTime>time_holding && data >= previous - button_range && data <= previous + button_range && flag == 4 || data >= previous - button_range && data <= previous + button_range && flag == 3)
{
Remote.rewind();
flag = 3;
Remote.clear();
delay(100);
}

//********************** Play/pause + Mute ************************************

if(millis()-time_tinkling && millis()-eventTime<time_holding-1 && data >= play_pause - button_range && data <= play_pause + button_range)
{
flag = 7;
}

if(data>=release_button - button_release_range && data<=release_button + button_release_range && flag == 7)
{
Remote.play_pause();
flag = 0;
delay(10);
Remote.clear();
}

if(millis()-eventTime>time_holding && data >= play_pause - button_range && data <= play_pause + button_range && flag == 7)
{
Remote.mute();
flag = 0;
delay(10);
Remote.clear();
}

if(data>=release_button - button_release_range && data<=release_button + button_release_range && flag == 3 || data>=release_button - button_release_range && data<=release_button + button_release_range && flag == 5 || data>=release_button - button_release_range && data<=release_button + button_release_range && flag == 6)
{
flag = 0;
}
}
Алгоритм работы такой: короткое нажатие, более 10 (int time_tinkling = 10; можно менять в скетче) и менее 500 миллисекунд (int time_holding = 500; можно менять в скетче) - Play/pause; длинное, более 500 миллисекунд (int time_holding = 500; можно менять в скетче) - Mute.
Тоже самое с Next и Fast Forward, Previous и Rewind. При удержании увеличения и уменьшения громкости, увеличивает или уменьшает громкость на 10 делений в секунду, а при коротком нажатии, менее 500 миллисекунд - увеличивает или уменьшает громкость на 1 деление.
Alt + Tab, при первом нажатии эмулирует Alt и два раза Tab, то есть переходит предыдущему открытому приложении и в течении 0,8 секунды удерживает Alt, а повторные нажатия на кнопку в течении этого времени эмулируют только Tab. На удержание ни чего не назначен, можно добавить при необходимости.

а возможно то же самое только через bluetooth hc-05 сделать на ардуино леонардо? Не получается у меня почему то

Ajlewka
14.06.2015, 08:26
Добрый день всем хотелось бы направить вопрос к гуру этого форума.
У меня застопорилось подключение кнопок на руле по причине что нет больше контактов на шлейфе который идет для сигнала и подушки. Думал там как и для мультируля есть запас проводов но нет. Машина тойота пикник. Есть конечно вариант попробовать поискать шлейф с машине где есть мультируль. Но может попробовать по другому . В голове собрались варианты может подскажите мне правильное решение буду благодарен.

1 вариант. Ардуино возле кнопок под подушкой. Проблемма передачи сигнала. Если можно по блютузу передать то как это реализовать и энерго потребление какое , подключение как будет происходить. Еше вопрос по подсветке кнопок там пять вольт хватит пробовал яркости хватает только опять по потреблению вопрос. Если все это питать от аков каких нибуть на сколько хватать будет? или же сразу ставить зарядку для аков и вывести штекер под рулем.

2 вариант.У меня есть пульт блютуз работает от батарейки таблетки хватает на месяц подключается всегда автоматом. Взять эго разобрать подключится на прямую к кнопкам без резисторов. Поставить акки вместо таблетки хватать будет на фиг знает сколько если подключить подсветку кнопок к ним то надо как то автоматизировать включение подсветки.И опять вывести штекер зарядки для акков. Но надо разбирать кнопки и подпаиваться к каждому контакту.

3 вариант без разбора кнопок подключить ардуинку или просто микроконтроллер пусть обрабатывает кнопки но посылает команды на замыкание кнопок пульта блютуз и обрабатывает автоматизацию подсветки кнопок вопрос какое энергопотребление у этого всего будет штекер для заряда я так понимаю нужен во всех вариантах.
Спасибо жду вашего взгляда на это все.
пульт вот такой http://pccar.ru/showthread.php?t=22878

у меня ипсум 10 кузова. в принципе то же что и пикник. Руль у меня с крауна 180, улитку родную оставил, просто добавил в фишки родные еще 2 контакта на кнопки с одной и с другой стороны, да и все.

lti1
14.06.2015, 10:20
а возможно то же самое только через bluetooth hc-05 сделать на ардуино леонардо? Не получается у меня почему то1 вариант:
Remote steering wheel control (http://forum.xda-developers.com/showthread.php?t=2635159) при этом, если добавите Tasker (https://play.google.com/store/apps/details?id=net.dinglisch.android.taskerm&hl=ru) + Action Box - Tasker Plug-in (https://play.google.com/store/apps/details?id=pe.lastingchild.actionbox&hl=ru), то получите листание папок или альбомов в PowerAMP.
2 вариант:
ИК управление Android по Bluetooth ("http://pccar.ru/showthread.php?t=19559), потребуется доработка скетча.

Ajlewka
14.06.2015, 11:42
1 вариант:
Remote steering wheel control (http://forum.xda-developers.com/showthread.php?t=2635159) при этом, если добавите Tasker (https://play.google.com/store/apps/details?id=net.dinglisch.android.taskerm&hl=ru) + Action Box - Tasker Plug-in (https://play.google.com/store/apps/details?id=pe.lastingchild.actionbox&hl=ru), то получите листание папок или альбомов в PowerAMP.
2 вариант:
ИК управление Android по Bluetooth ("http://pccar.ru/showthread.php?t=19559), потребуется доработка скетча.

Тогда не обязательно и Леонардо иметь... Получается

komers
14.06.2015, 13:27
Ну по моему цена была приемлемой :) 3к :) если в пересчете на баксы то 60 получилось :) почти что тоже самое что и у Chubaka885 вышло :) он за 40 взял

Мне предложили, этот контроллер, за 2500 руб. Интересно было узнать, про среднюю стоимость на рынке)

lti1
14.06.2015, 15:55
Тогда не обязательно и Леонардо иметь... ПолучаетсяСовершенно верно. Леонардо нужно что бы прикидываться HID по USB.

Ajlewka
14.06.2015, 16:45
Совершенно верно. Леонардо нужно что бы прикидываться HID по USB.

еще тогда вопрос - ардуино выбирает напряжение автоматически от большего к меньшему. если порвать +5в от усб на леонардо и подавать 12 от авто, она как хид устройство будет определяться и работать?

lti1
14.06.2015, 16:57
еще тогда вопрос - ардуино выбирает напряжение автоматически от большего к меньшему. если порвать +5в от усб на леонардо и подавать 12 от авто, она как хид устройство будет определяться и работать?Напряжение ни каким образом не влияет режим работы Arduino, данный параметр устанавливается в скетче.
К чему вообще этот вопрос?

Ajlewka
15.06.2015, 01:27
Напряжение ни каким образом не влияет режим работы Arduino, данный параметр устанавливается в скетче.
К чему вообще этот вопрос?
К тому, что если я питаю от nsd, значения начинают плясать с разбросом в 100-120, из-за этого на одну кнопку то громкость, то трэк щелкается, то альттаб срабатывает. А если просто от телефона в машине, или ноута, то все нормально. Непонятки. Дополнительно и землю мощнее делал, и пытался завести на корпус авто, не помогает

anru
15.06.2015, 08:48
у меня ипсум 10 кузова. в принципе то же что и пикник. Руль у меня с крауна 180, улитку родную оставил, просто добавил в фишки родные еще 2 контакта на кнопки с одной и с другой стороны, да и все.

Я тоже хотел добавить фишки и все, но на деле разобрал улитку а там лента без дополнительных контактов только аирбэг и сигнал. Сейчас пока жду блок блютуза к ардуине и параллельно буду искать улитку от мульти руля. Еще надо попробовать пустить по жиле на сигнал +5в а когда будет нажиматься сигнал будет масса.

lti1
15.06.2015, 11:13
К тому, что если я питаю от nsd, значения начинают плясать с разбросом в 100-120, из-за этого на одну кнопку то громкость, то трэк щелкается, то альттаб срабатывает. А если просто от телефона в машине, или ноута, то все нормально. Непонятки. Дополнительно и землю мощнее делал, и пытался завести на корпус авто, не помогаетКогда питаете от nsb питание по USB разрываете? Вначале необходимо собрать полностью схему, как у Вас буден реализовано в автомобиле, то есть подключить хаб, блок питания от которого будет питаться хаб, а уже после этого считывать значения кнопок.

lti1
15.06.2015, 11:18
Еще надо попробовать пустить по жиле на сигнал +5в а когда будет нажиматься сигнал будет масса.Если сигнал подключен через реле, тогда и так между массой и контактом сигнала будет ~12 вольт.

Ajlewka
15.06.2015, 12:16
Когда питаете от nsb питание по USB разрываете? Вначале необходимо собрать полностью схему, как у Вас буден реализовано в автомобиле, то есть подключить хаб, блок питания от которого будет питаться хаб, а уже после этого считывать значения кнопок.

Да уже вычисленно все - эти скачки из за NSD. Запитываешь хаб с компьютера вместе с ардуиной, все нормально, только на доп питание хаба подсоединяешь НСД, появляется такой разброс. Хотя напряжение стабильное - 4.9 вольт. Склоняюсь к варианту ком порта, питании ардуино от 12в и передаче данных по блютуз, хотя и не хочется

armlive
15.06.2015, 14:42
Да уже вычисленно все - эти скачки из за NSD. Запитываешь хаб с компьютера вместе с ардуиной, все нормально, только на доп питание хаба подсоединяешь НСД, появляется такой разброс. Хотя напряжение стабильное - 4.9 вольт. Склоняюсь к варианту ком порта, питании ардуино от 12в и передаче данных по блютуз, хотя и не хочется
Эти скачки от помех NSD, значит плохо фильтровал. Питай от 12в или делай им питание отдельно, как я.

Ajlewka
15.06.2015, 17:51
Эти скачки от помех NSD, значит плохо фильтровал. Питай от 12в или делай им питание отдельно, как я.

Спасибо armlive, iti1.:derisive: Леонардо так и не заработала должным образом, сделал через arduino nano + Remote steering wheel control + Bluetooth + отдельное питание (завтра попробую запитать через хаб и посмотреть что получится). Еще раз спасибо за советы)

Такую (https://play.google.com/store/apps/details?id=com.matteobrusa.switchback&hl=ru) штуку пробовали? как работает?

Ajlewka
19.06.2015, 11:59
Оказалось не все так гладко. Даже через ремоут стииринг номиналы изменяются, но как то странно. Вот я завёл машину, значение допустим 550 и скачет +-4, в принципе норм. Минут через 20 оно уже становится не 550 а 510 например, и так же +-4, т.е. от 508 до 512 прыгает. Кто может подсказать почему такой скачок происходит? Питаю отдельно от планшета китайским преобразователем с 12В на 5В

armlive
19.06.2015, 12:36
Оказалось не все так гладко. Даже через ремоут стииринг номиналы изменяются, но как то странно. Вот я завёл машину, значение допустим 550 и скачет +-4, в принципе норм. Минут через 20 оно уже становится не 550 а 510 например, и так же +-4, т.е. от 508 до 512 прыгает. Кто может подсказать почему такой скачок происходит? Питаю отдельно от планшета китайским преобразователем с 12В на 5ВНарисуй к уда питание подашь на ардуино

Ajlewka
19.06.2015, 13:48
Нарисуй к уда питание подашь на ардуино

http://pccar.ru/attachment.php?attachmentid=40234&stc=1&d=1434707262

Рисовать нечего...

armlive
19.06.2015, 15:59
А подтяжку через плюс не делал и преобразователь какой ? Я бы минус на руль постоянный кинул иначе потенциал появляется. Качество твоего преобразователя, можно проверить заменив его на батарею и посмотреть разницу.

Chubaka885
19.06.2015, 17:17
:mellow2:

Ajlewka
19.06.2015, 17:41
А1 и так на земле, через резистор. Все подтяжки есть, которые могут быть.

Чубака, как можно на выход 5V подавать входное напряжение? А без D13 почему-то не заработало. Не показывало ничего. ооооочень интересно почему, т.к. D13 только на светодиод заделан.

Chubaka885
19.06.2015, 17:50
А1 и так на земле, через резистор. Все подтяжки есть, которые могут быть.

Чубака, как можно на выход 5V подавать входное напряжение? А без D13 почему-то не заработало. Не показывало ничего. ооооочень интересно почему, т.к. D13 только на светодиод заделан.
Не можно, а нужно. Иначе не хватит питания микрухи. Делайте как нарисовал, без D13. А потом разберёмся с D13. Выложьте скетч.

Ajlewka
19.06.2015, 18:07
Не можно, а нужно. Иначе не хватит питания микрухи. Делайте как нарисовал, без D13. А потом разберёмся с D13. Выложьте скетч.

Завтра тогда попробую, о результатах доложу. Скетч из xda. Не менял.

lti1
19.06.2015, 19:41
Ajlewka, Вас понесло не в ту степь. Не важно будете Вы подключать по USB или по BT, основной вопрос у с питанием ардуины, оно должно быть стабильным без сильных разбросов, именно от этого зависит показания при нажатии кнопок, потому как это по сути резистивный делитель напряжения (https://ru.wikipedia.org/wiki/%D0%94%D0%B5%D0%BB%D0%B8%D1%82%D0%B5%D0%BB%D1%8C_% D0%BD%D0%B0%D0%BF%D1%80%D1%8F%D0%B6%D0%B5%D0%BD%D0 %B8%D1%8F) и на пине A1 ардуино оно измеряется. Если поменялось входное напряжение, тогда поменяется и напряжение на A1, а соответственно и значение кнопки. Подключайте стабилизированный источник питания как предлагает Chubaka885 (http://pccar.ru/member.php?u=23419) к пину 5V, а еще правильнее как я уже писал, стабилизированный источник питания к хабу (наверняка он у Вас все равно будет), а ардуино уже в хаб и питание будет идти по USB, только не забудьте разорвать плюс в проводе от хаба к планшету. Не нужно Вам BT, от него только дополнительные сложности получите, типа автоподключения при запуске.
P.S.
Если используете родной скетч Remote steering wheel control (http://forum.xda-developers.com/showthread.php?t=2635159) тогда к пину D13 подключатся нужно обязательно, если использовать мой скетч (http://pccar.ru/showthread.php?p=309621#post309621), тогда подключатся не нужно.

armlive
19.06.2015, 21:03
Делай так:

lti1
19.06.2015, 21:36
Делай так:
Ещё раз, на VIN питание не нужно подавать. Лучше использовать нормальный внешний стабилизатор напряжения.

armlive
19.06.2015, 22:12
Ещё раз, на VIN питание не нужно подавать. Лучше использовать нормальный внешний стабилизатор напряжения.
Почему еще раз, я что то пропустил, чем плох L7805???

lti1
20.06.2015, 00:45
Почему еще разПотому, что Chubaka885 выше уже привел схему подключения.
чем плох L7805?Тем, что в китайских клонах, что только не ставят. Мне попадалась мини которая вспыхнула, когда я её подключил бортовой сети автомобиля.

armlive
20.06.2015, 00:52
Потому, что Chubaka885 выше уже привел схему подключения.
Эта схема для для разницы потенциометра, не самая лучшая. Тут со мной те кто понимает, что такое индукция и электрическое поле, спорить не будут, да и не нужно.... Скетч поправить не проблема

Тем, что в китайских клонах, что только не ставят. Мне попадалась мини которая вспыхнула, когда я её подключил бортовой сети автомобиля.
Вот это другой вопрос, тут я согласен, я сам не зря питаю их отдельно.

lti1
20.06.2015, 01:33
Эта схема для для разницы потенциометра, не самая лучшая. Тут со мной те кто понимает, что такое индукция и электрическое поле, спорить не будут, да и не нужно.... Скетч поправить не проблемаЯ вообще то про питание писал, а Вы о чем?:whistle:

Ajlewka
20.06.2015, 15:31
А как вручную просчитать значение, которое будет выдавать кнопка? Есть же такая формула

nikopol70
22.06.2015, 19:04
возможно ли в скетче добавить програмное нажатие кнопки плей-пауза? по событию
взял за основу скетч для кнопок http://pccar.ru/showpost.php?p=309621&postcount=27

и так же на ардуине сделано управление питанием планшета от ув Chubaka885 из поста http://pccar.ru/showpost.php?p=315581&postcount=577

получается что ардуина просыпаетс и засыпает в зависимости от наличия АСС

Так вот - можно ли в скетч добавить нажатие пауза при пропадении АСС более чем на 5 сек? :blush:

Chubaka885
22.06.2015, 21:34
возможно ли в скетче добавить програмное нажатие кнопки плей-пауза? по событию
взял за основу скетч для кнопок http://pccar.ru/showpost.php?p=309621&postcount=27
:
Почему кнопки с RemoteInputsMgr, чем этот (http://pccar.ru/showpost.php?p=319975&postcount=307) от lti1 не устраивает?


Добавить не проблема. Добавлять надо не в скетч с кнопок а в часть управления питанием. В последней версии у себя как раз это и сделал.

nikopol70
22.06.2015, 22:39
Почему кнопки с RemoteInputsMgr, чем этот (http://pccar.ru/showpost.php?p=319975&postcount=307) от lti1 не устраивает?


Добавить не проблема. Добавлять надо не в скетч с кнопок а в часть управления питанием. В последней версии у себя как раз это и сделал.

не устраивает тем что нет возможности переключения папок - а очень хочеться переключать папки, альбомы

перечитал последний скетч твоей версии - но видимо пока мало понимаю в програмировании ардуино - не нашел функции которая меня интересует - нажатие паузы при пропадании асс.

схему собирал по твоей вариации из поста что приводил выше - только реле твердотельные заменил на транзисторные ключи

пока все это не вставлено в машину а на столе - если не сложно прошу помощи - как в реализации схемы контроля питания и кнопок, так и в скетче дл ардуино.:be::be::be:

armlive
22.06.2015, 22:44
не устраивает тем что нет возможности переключения папок - а очень хочеться переключать папки, альбомы

перечитал последний скетч твоей версии - но видимо пока мало понимаю в програмировании ардуино - не нашел функции которая меня интересует - нажатие паузы при пропадании асс.

схему собирал по твоей вариации из поста что приводил выше - только реле твердотельные заменил на транзисторные ключи

пока все это не вставлено в машину а на столе - если не сложно прошу помощи - как в реализации схемы контроля питания и кнопок, так и в скетче дл ардуино.:be::be::be:
Используй Poweramp и будет возможность переключать папки
Было:
if(digitalRead(ACCPin) && stateACC && millis () -off> OFFKIS)
{
digitalWrite(pinKIS1, LOW);
digitalWrite(pinIsoAmp, LOW);
digitalWrite(pinRearCam, LOW);
relestate1 = 0;
millisold = millis();
Serial.end();
Serial1.end();
delay(100);
sleepNow();
}

Стало:

if(digitalRead(ACCPin) && stateACC && millis () -off> OFFKIS)
{
Remote.pause();// нажимаем пузу!
Remote.clear();
digitalWrite(pinKIS1, LOW);
digitalWrite(pinIsoAmp, LOW);
digitalWrite(pinRearCam, LOW);
relestate1 = 0;
millisold = millis();
Serial.end();
Serial1.end();
delay(100);
sleepNow();
}


Почему кнопки с RemoteInputsMgr, чем этот (http://pccar.ru/showpost.php?p=319975&postcount=307) от lti1 не устраивает?


Добавить не проблема. Добавлять надо не в скетч с кнопок а в часть управления питанием. В последней версии у себя как раз это и сделал.
А после пробуждения почему плей не добавили?
Я спрашиваю не потому что как это сделать, а просто интересно, ведь наверно делали но не стали использовать?

Chubaka885
23.06.2015, 09:03
пока все это не вставлено в машину а на столе - если не сложно прошу помощи - как в реализации схемы контроля питания и кнопок, так и в скетче дл ардуино.:be::be::be:
Определись со скетчем кнопок.


А после пробуждения почему плей не добавили?
Я спрашиваю не потому что как это сделать, а просто интересно, ведь наверно делали но не стали использовать?
Делал, но только с помощью таскера. Сейчас отключил т.к. при включении запускается радио а не плеер. И планшет полностью выключается через час после отключения АСС, по этому в основном при включении АСС планшет включается не из сна а полностью. Рассчитать примерное время каогда полностью запустится планшет и отсылать нажатия play конечно можно, но проще это сделать таскером. Так как в последующем время запуска может и поменяться.
А вот паузу при выключении как раз лучше делать командой с ардуино, таскер с этим не справлялся. (не успевал)

nikopol70
23.06.2015, 13:27
Используй Poweramp и будет возможность переключать папки

так его и пользую - но не работает ни двойное ни тройное нажатие.....:tease:

Определись со скетчем кнопок.
Делал, но только с помощью таскера. Сейчас отключил т.к. при включении запускается радио а не плеер. И планшет полностью выключается через час после отключения АСС, по этому в основном при включении АСС планшет включается не из сна а полностью. Рассчитать примерное время каогда полностью запустится планшет и отсылать нажатия play конечно можно, но проще это сделать таскером. Так как в последующем время запуска может и поменяться.
А вот паузу при выключении как раз лучше делать командой с ардуино, таскер с этим не справлялся. (не успевал)

а что определятся то - вот что хочется
1. програмировать кнопки на руле - но тут больше хочется выполнять переключение папок в поверампе - по другому я не нашел как реализовать - двойное тройное нажатие в настройках пробовал но не срабатывает - может подробно кто расскажет - тогда можно использовать без стриит контрол утилиты.
2. управление питанием, холом, передергивание ОТГ, нажимать паузу при входе в сон

вот в принципе и все

схема взята у вас же ув. Chubaka885, уж очень понравилась, только с некоторыми изменениями деталей, твердотельные реле на транзисторные ключи, выкинул джойстик, принудительное включение кмамеры, и USBisoAmp. Arduino Leonardo у меня.

lti1
23.06.2015, 14:01
так его и пользую - но не работает ни двойное ни тройное нажатие.....:tease:Для работы функции в настройках Poweramp необходимо включить двойное и тройное нажатие.

http://pccar.ru/attachment.php?attachmentid=32459&thumb=1&d=1404290832 (http://pccar.ru/attachment.php?attachmentid=32459&d=1377384242)

nikopol70
23.06.2015, 16:44
Для работы функции в настройках Poweramp необходимо включить двойное и тройное нажатие.

http://pccar.ru/attachment.php?attachmentid=32459&thumb=1&d=1404290832 (http://pccar.ru/attachment.php?attachmentid=32459&d=1377384242)

ну так и стоит у меня, треки переключает, а вот папки не хотит......

ну а с остальным буду пробовать :tease:
к выходным думаю уже опробовать

takosan
25.06.2015, 16:01
Всем привет! Народ ткните носом пожалуйста, где подробно описано как сделать управление музыкой на Nexus 7 2013 с рулевых кнопок. Просто начитался уже кучу вариантов, что голова кругом. Интересует простой и недорогой способ реализации.

lti1
25.06.2015, 17:18
Всем привет! Народ ткните носом пожалуйста, где подробно описано как сделать управление музыкой на Nexus 7 2013 с рулевых кнопок. Просто начитался уже кучу вариантов, что голова кругом. Интересует простой и недорогой способ реализации.
Вот пара вариантов:
http://pccar.ru/showthread.php?p=319975#post319975
http://pccar.ru/showthread.php?t=20460

takosan
25.06.2015, 20:40
Вот пара вариантов:
http://pccar.ru/showthread.php?p=319975#post319975
http://pccar.ru/showthread.php?t=20460

второй вариант Мне подходит, но как говорит сам продавец, это пушка по воробьям)))

Забыл сказать, что штатную магнитолу я хочу оставить и мне необходимо будет реализовать переключение управления С планшета на на штатное ГУ. Может есть еще варианты на Вашей памяти?

slon25
26.06.2015, 10:57
второй вариант Мне подходит, но как говорит сам продавец, это пушка по воробьям)))

Забыл сказать, что штатную магнитолу я хочу оставить и мне необходимо будет реализовать переключение управления С планшета на на штатное ГУ. Может есть еще варианты на Вашей памяти?

http://pccar.ru/showthread.php?t=20460

takosan
26.06.2015, 11:53
http://pccar.ru/showthread.php?t=20460

Спасибо, но это как раз и есть второй вариант, который предложили мне выше

nikopol70
27.06.2015, 23:28
Используй Poweramp и будет возможность переключать папки
Было:
if(digitalRead(ACCPin) && stateACC && millis () -off> OFFKIS)
{
digitalWrite(pinKIS1, LOW);
digitalWrite(pinIsoAmp, LOW);
digitalWrite(pinRearCam, LOW);
relestate1 = 0;
millisold = millis();
Serial.end();
Serial1.end();
delay(100);
sleepNow();
}

Стало:

if(digitalRead(ACCPin) && stateACC && millis () -off> OFFKIS)
{
Remote.pause();// нажимаем пузу!
Remote.clear();
digitalWrite(pinKIS1, LOW);
digitalWrite(pinIsoAmp, LOW);
digitalWrite(pinRearCam, LOW);
relestate1 = 0;
millisold = millis();
Serial.end();
Serial1.end();
delay(100);
sleepNow();
}



А после пробуждения почему плей не добавили?
Я спрашиваю не потому что как это сделать, а просто интересно, ведь наверно делали но не стали использовать?

Попробовал, не отрабатывает паузу....

И еще момент, после сна планшет играет не с места паузы, а с начала трека. Есть способ сделать так что бы играл с места на котором уснул?

Chubaka885
29.06.2015, 21:50
Попробовал, не отрабатывает паузу....
И еще момент, после сна планшет играет не с места паузы, а с начала трека. Есть способ сделать так что бы играл с места на котором уснул?
Странно, должен отрабатывать.
Питание хаба отключается. Если да, то скорее всего не получится что бы играл с места на котором уснул.

nikopol70
29.06.2015, 23:25
Странно, должен отрабатывать.
Питание хаба отключается. Если да, то скорее всего не получится что бы играл с места на котором уснул.

Ну конечно отключается, через 10 сек после пропадания асс, схема то Ваша и скетч за основу тоже Ваш взял, только кнопки на руле сделаны с утилитой стрит контроль.
Может потому и не виден эффект от паузы...
Хотя логику такую пользую уже почти год, последовательность ухода в сон и выхода, и помнится мне был период когда после сна начинало играть с места где нажата пауза.
Но помнится мне что тогда был сток 4.4.4, стик моунт про. А щас автодроид

Ajlewka
30.06.2015, 16:37
Блин, мужики, не понимаю. Все меня эти сраные скачки номиналов достали. Уже и отдельным блоком заппитал, и леонардо настроил. Перед блоком питания кондер стоит. Может стоит для сглаживания кондер и на выходе блока питания поставить? Поможет от Разброса номиналов резистивных? Хочу сказать что мерил тестером и напряжение стабильно держится ни десятой не просаживается

lti1
30.06.2015, 19:59
Блин, мужики, не понимаю. Все меня эти сраные скачки номиналов достали. Уже и отдельным блоком заппитал, и леонардо настроил. Перед блоком питания кондер стоит. Может стоит для сглаживания кондер и на выходе блока питания поставить? Поможет от Разброса номиналов резистивных? Хочу сказать что мерил тестером и напряжение стабильно держится ни десятой не просаживаетсяПлюсовой провод в USB кабеле разорвали? Рулевые кнопки подключены только к ардуино или к примеру параллельно магнитоле?

Chubaka885
30.06.2015, 22:54
Ну конечно отключается, через 10 сек после пропадания асс, схема то Ваша и скетч за основу тоже Ваш взял, только кнопки на руле сделаны с утилитой стрит контроль.
Может потому и не виден эффект от паузы...

Скетч бы посмотреть. Он у тебя залился без проблем. Библиотеки USBAPI.h, HID.cpp менял?

Блин, мужики, не понимаю. Все меня эти сраные скачки номиналов достали. Уже и отдельным блоком заппитал, и леонардо настроил. Перед блоком питания кондер стоит. Может стоит для сглаживания кондер и на выходе блока питания поставить? Поможет от Разброса номиналов резистивных? Хочу сказать что мерил тестером и напряжение стабильно держится ни десятой не просаживается
Питание ардуино сделали к выводу "5В", как показывали вам раннее?

nikopol70
30.06.2015, 23:06
Скетч бы посмотреть. Он у тебя залился без проблем. Библиотеки USBAPI.h, HID.cpp менял?


бибилотеки менял, залилось без проблем, прежде чем заливать изучил и отштудировал тему :tease:

скетч вот
#include <avr/sleep.h>
#include <avr/power.h>

int ACCPin = 2; // Пин АСС
int sleepStatus = 0; // Переменная для хранения статуса (спим, проснулись) - не используется в коде

#define pinKIS1 7 // питание HUB KIS
#define pinIsoAmp 6 // питание ISOAmp
#define relePinTablet 10 // OTG + датчик холла
#define relePinAmp 9 // remote Усилителя, Антены
#define pinRearCam 5 // питание камеры заднего хода
#define ONKIS 100 // время включения KIS, isoAmp
#define ONTablet 2000 // время включения планшета
#define ONAmp 4000 // время включения Усилителя, Антены RemoteAmp
#define OFFKIS 10000 // время выключения KIS
#define OFFTablet 5000 // время выключения планшета
#define OFFAmp 4000 // время выключения Усилителя, Антены

unsigned long duration, millisold, off = 0;
boolean stateACC, relestate1, relestate2, relestate3 = 0;

int analogPin=A0; //пин для резистивных кнопок
int data;
int data1 = 0;
int flag = 0;
unsigned long eventTime = 0;


void wakeUpNow() // Прерывание сработает после пробуждения
{
if (sleepStatus) // Если мы спали,
{
sleep_disable(); // то первое, что нужно сделать после просыпания - выключить спящий режим
sleepStatus = 0; // В переменную заносим статус бодрствования
detachInterrupt(1); // Выключаем прерывание - при нормальном режиме wakeUpNow() не будет вызываться
}
}


void setup()
{
pinMode(ACCPin, INPUT);
attachInterrupt(1, wakeUpNow, FALLING); // Используем прерывание 1 (pin 2) для выполнения функции wakeUpNow
pinMode(pinKIS1, OUTPUT);
pinMode(pinIsoAmp, OUTPUT);
pinMode(relePinTablet, OUTPUT);
pinMode(relePinAmp, OUTPUT);
pinMode(pinRearCam, OUTPUT);
Serial.begin(9600);
}

void sleepNow() // Функция увода ардуины в спячку.
{
set_sleep_mode(SLEEP_MODE_PWR_DOWN); // Здесь устанавливается режим сна
sleep_enable(); // Включаем sleep-бит в регистре mcucr. Теперь возможен слип

attachInterrupt(1, wakeUpNow, FALLING); // Используем прерывание 1 (pin 2) для выполнения функции wakeUpNow при появлении низкого уровня на пине 2

sleepStatus = 1; // В переменную заносим статус сна
sleep_mode(); // Здесь устройство перейдет в режим сна!!!
//-------------------------ПОСЛЕ ПРОСЫПАНИЯ ВЫПОЛНЕНИЕ КОДА ПРОДОЛЖИТСЯ ОТСЮДА!!!--------------------------//
}


void loop()
{
Power();
Knopki();
delay(5);
}

void Power()
{
if (!digitalRead(ACCPin)&&stateACC)
{
stateACC=0;
duration = millis();
}
if (digitalRead(ACCPin)&&!stateACC)
{
stateACC=1;
off = millis();
}
if(!digitalRead(ACCPin) && !stateACC && millis ()-duration > ONKIS)
{
digitalWrite(pinKIS1, HIGH);
digitalWrite(pinIsoAmp, HIGH);
relestate1 = 1;
millisold = millis();
}
if(!digitalRead(ACCPin) && !stateACC && millis ()-duration > ONTablet)
{
digitalWrite(relePinTablet, HIGH);
relestate2 = 1;
millisold = millis();
}
if(!digitalRead(ACCPin) && !stateACC && millis ()-duration > ONAmp)
{
digitalWrite(relePinAmp, HIGH);
relestate3 = 1;
millisold = millis();
}
if(digitalRead(ACCPin) && stateACC && millis () -off> OFFKIS)
{
Remote.pause();// нажимаем пузу!
Remote.clear();
digitalWrite(pinKIS1, LOW);
digitalWrite(pinIsoAmp, LOW);
digitalWrite(pinRearCam, LOW);
relestate1 = 0;
millisold = millis();
Serial.end();
delay(100);
sleepNow();
}
if(digitalRead(ACCPin) && stateACC && millis ()-off > OFFTablet)
{
digitalWrite(relePinTablet, LOW);
relestate2 = 0;
millisold = millis();
}
if(digitalRead(ACCPin) && stateACC && millis ()-off > OFFAmp)
{
digitalWrite(relePinAmp, LOW);
relestate3 = 0;
millisold = millis();
}
}

void Knopki()
{
data=analogRead(analogPin);

if(data>=950 && data1 != 0 && flag <= 1)
{
Serial.print("<release:");
Serial.print(data1);
Serial.print(">");
data1 = 0;
flag = 0;
delay(10);
}

if(data>=950)
{
eventTime = millis();
}

if(data<=949 && flag != 1 && millis()-eventTime>=50 && millis()-eventTime<=800)
{
flag = 2;
if(millis()-eventTime <= 60) data1 = data;
}

if(data>=950 && flag == 2)
{
Serial.print("<click:");
Serial.print(data1);
Serial.print(">");
flag = 0;
delay(10);
}

if(data<=949 && flag == 2 && millis()-eventTime>800)
{
Serial.print("<hold:");
Serial.print(data);
Serial.print(">");
data1 = data;
flag = 1;
delay(10);
}
}

Ajlewka
01.07.2015, 08:00
Плюсовой провод в USB кабеле разорвали? Рулевые кнопки подключены только к ардуино или к примеру параллельно магнитоле?

Вот такая на данный момент схема.

Я так понимаю это действительно из за плохой фильтрации. Один вариант решения я знаю - больше разницу в номиналах резисторов на руле сделать. А вариант с кондером поможет или нет? Или может еще какие варианты есть

lti1
01.07.2015, 11:11
Вот такая на данный момент схема.

Я так понимаю это действительно из за плохой фильтрации. Один вариант решения я знаю - больше разницу в номиналах резисторов на руле сделать. А вариант с кондером поможет или нет? Или может еще какие варианты естьСопротивление от +5 к A0 забыли указать, или его нет?

Chubaka885
01.07.2015, 18:43
бибилотеки менял, залилось без проблем, прежде чем заливать изучил и отштудировал тему :tease:

Ступил я немного. Не успевает он наверное паузу принять. Вот так попробуй.

#include <avr/sleep.h>
#include <avr/power.h>

int ACCPin = 2; // Пин АСС
int sleepStatus = 0; // Переменная для хранения статуса (спим, проснулись) - не используется в коде

#define pinKIS1 7 // питание HUB KIS
#define pinIsoAmp 6 // питание ISOAmp
#define relePinTablet 10 // OTG + датчик холла
#define relePinAmp 9 // remote Усилителя, Антены
#define pinRearCam 5 // питание камеры заднего хода
#define ONKIS 100 // время включения KIS, isoAmp
#define ONTablet 2000 // время включения планшета
#define ONAmp 4000 // время включения Усилителя, Антены RemoteAmp
#define OFFKIS 10000 // время выключения KIS
#define OFFTablet 5000 // время выключения планшета
#define OFFAmp 4000 // время выключения Усилителя, Антены

unsigned long duration, millisold, off = 0;
boolean stateACC, relestate1, relestate2, relestate3 = 0;

int analogPin=A0; //пин для резистивных кнопок
int data;
int data1 = 0;
int flag = 0;
unsigned long eventTime = 0;


void wakeUpNow() // Прерывание сработает после пробуждения
{
if (sleepStatus) // Если мы спали,
{
sleep_disable(); // то первое, что нужно сделать после просыпания - выключить спящий режим
sleepStatus = 0; // В переменную заносим статус бодрствования
detachInterrupt(1); // Выключаем прерывание - при нормальном режиме wakeUpNow() не будет вызываться
}
}


void setup()
{
pinMode(ACCPin, INPUT);
attachInterrupt(1, wakeUpNow, FALLING); // Используем прерывание 1 (pin 2) для выполнения функции wakeUpNow
pinMode(pinKIS1, OUTPUT);
pinMode(pinIsoAmp, OUTPUT);
pinMode(relePinTablet, OUTPUT);
pinMode(relePinAmp, OUTPUT);
pinMode(pinRearCam, OUTPUT);
Serial.begin(9600);
}

void sleepNow() // Функция увода ардуины в спячку.
{
set_sleep_mode(SLEEP_MODE_PWR_DOWN); // Здесь устанавливается режим сна
sleep_enable(); // Включаем sleep-бит в регистре mcucr. Теперь возможен слип

attachInterrupt(1, wakeUpNow, FALLING); // Используем прерывание 1 (pin 2) для выполнения функции wakeUpNow при появлении низкого уровня на пине 2

sleepStatus = 1; // В переменную заносим статус сна
sleep_mode(); // Здесь устройство перейдет в режим сна!!!
//-------------------------ПОСЛЕ ПРОСЫПАНИЯ ВЫПОЛНЕНИЕ КОДА ПРОДОЛЖИТСЯ ОТСЮДА!!!--------------------------//
}


void loop()
{
Power();
Knopki();
delay(5);
}

void Power()
{
if (!digitalRead(ACCPin)&&stateACC)
{
stateACC=0;
duration = millis();
}
if (digitalRead(ACCPin)&&!stateACC)
{
stateACC=1;
off = millis();
}
if(!digitalRead(ACCPin) && !stateACC && millis ()-duration > ONKIS)
{
digitalWrite(pinKIS1, HIGH);
digitalWrite(pinIsoAmp, HIGH);
relestate1 = 1;
millisold = millis();
}
if(!digitalRead(ACCPin) && !stateACC && millis ()-duration > ONTablet)
{
digitalWrite(relePinTablet, HIGH);
relestate2 = 1;
millisold = millis();
}
if(!digitalRead(ACCPin) && !stateACC && millis ()-duration > ONAmp)
{
digitalWrite(relePinAmp, HIGH);
relestate3 = 1;
millisold = millis();
}
if(digitalRead(ACCPin) && stateACC && millis () -off> OFFKIS)
{
digitalWrite(pinKIS1, LOW);
digitalWrite(pinIsoAmp, LOW);
digitalWrite(pinRearCam, LOW);
relestate1 = 0;
millisold = millis();
Serial.end();
delay(100);
sleepNow();
}
if(digitalRead(ACCPin) && stateACC && millis ()-off > OFFTablet)
{
digitalWrite(relePinTablet, LOW);
relestate2 = 0;
millisold = millis();
}
if(digitalRead(ACCPin) && stateACC && millis ()-off > OFFAmp)
{
Remote.pause();// нажимаем пузу!
Remote.clear();
digitalWrite(relePinAmp, LOW);
relestate3 = 0;
millisold = millis();
}
}

void Knopki()
{
data=analogRead(analogPin);

if(data>=950 && data1 != 0 && flag <= 1)
{
Serial.print("<release:");
Serial.print(data1);
Serial.print(">");
data1 = 0;
flag = 0;
delay(10);
}

if(data>=950)
{
eventTime = millis();
}

if(data<=949 && flag != 1 && millis()-eventTime>=50 && millis()-eventTime<=800)
{
flag = 2;
if(millis()-eventTime <= 60) data1 = data;
}

if(data>=950 && flag == 2)
{
Serial.print("<click:");
Serial.print(data1);
Serial.print(">");
flag = 0;
delay(10);
}

if(data<=949 && flag == 2 && millis()-eventTime>800)
{
Serial.print("<hold:");
Serial.print(data);
Serial.print(">");
data1 = data;
flag = 1;
delay(10);
}
}

Ajlewka
01.07.2015, 19:15
Сопротивление от +5 к A0 забыли указать, или его нет?

да есть оно конечно, больше чем сопротивление кнопок.

Ajlewka
02.07.2015, 16:36
Питание ардуино сделали к выводу "5В", как показывали вам раннее?

Делал. Не помогает

armlive
02.07.2015, 18:41
Блин, мужики, не понимаю. Все меня эти сраные скачки номиналов достали. Уже и отдельным блоком заппитал, и леонардо настроил. Перед блоком питания кондер стоит. Может стоит для сглаживания кондер и на выходе блока питания поставить? Поможет от Разброса номиналов резистивных? Хочу сказать что мерил тестером и напряжение стабильно держится ни десятой не просаживается
У меня такая же фигня, на выходе кондер обязателен. Особенно когда заведешь машину, разброс приличный. питается отдельно, но парадокс, если в хаб вставить еще оборудование, с приличным потреблением (к примеру SDR) то значения становятся другими. Спрашивается как???? Ведь хаб питается от одного преобразователя, а Леонардо от другого.

Ajlewka
03.07.2015, 16:24
У меня такая же фигня, на выходе кондер обязателен. Особенно когда заведешь машину, разброс приличный. питается отдельно, но парадокс, если в хаб вставить еще оборудование, с приличным потреблением (к примеру SDR) то значения становятся другими. Спрашивается как???? Ведь хаб питается от одного преобразователя, а Леонардо от другого.
А есть стабилизаторы же общие, которые прям к аккумулятору ставятся. Может такая штука поможет? Ну или номиналы в руле менять... Другого выхода не вижу

armlive
03.07.2015, 17:28
А есть стабилизаторы же общие, которые прям к аккумулятору ставятся. Может такая штука поможет? Ну или номиналы в руле менять... Другого выхода не вижу
А ты проведи чисто эксперимент, возьми леонардо, подключи к ноутбуку и пусть питается от усб. Отдельно возьми два провода с кнопок и протестируй.

Блин , был-бы осциллограф, легче бы было найти причину