PCCar.ru - Ваш автомобильный компьютер

Вернуться   PCCar.ru - Ваш автомобильный компьютер > MP3Car ТехИнфа > AndroidCar > Дополнительные устройства

Ответ
 
Опции темы Поиск в этой теме
Старый 30.06.2015, 22:54   #491
Chubaka885
Старший Пользователь
 
Регистрация: 08.10.2013
Возраст: 41
Регион: 56
Машина: Toyota Corolla e150
Сообщений: 325
Chubaka885 is a jewel in the roughChubaka885 is a jewel in the roughChubaka885 is a jewel in the roughChubaka885 is a jewel in the rough
По умолчанию

Цитата:
Сообщение от nikopol70 Посмотреть сообщение
Ну конечно отключается, через 10 сек после пропадания асс, схема то Ваша и скетч за основу тоже Ваш взял, только кнопки на руле сделаны с утилитой стрит контроль.
Может потому и не виден эффект от паузы...
Скетч бы посмотреть. Он у тебя залился без проблем. Библиотеки USBAPI.h, HID.cpp менял?

Цитата:
Сообщение от Ajlewka Посмотреть сообщение
Блин, мужики, не понимаю. Все меня эти сраные скачки номиналов достали. Уже и отдельным блоком заппитал, и леонардо настроил. Перед блоком питания кондер стоит. Может стоит для сглаживания кондер и на выходе блока питания поставить? Поможет от Разброса номиналов резистивных? Хочу сказать что мерил тестером и напряжение стабильно держится ни десятой не просаживается
Питание ардуино сделали к выводу "5В", как показывали вам раннее?
__________________
Nexus 7 2012 (grouper), Cyanogenmod 11 - M10
фото установки Nexus 7 2012 & Toyota Corolla
Chubaka885 вне форума   Ответить с цитированием
Старый 30.06.2015, 23:06   #492
nikopol70
Старший Пользователь
 
Регистрация: 01.08.2014
Возраст: 46
Регион: Украина
Сообщений: 274
nikopol70 is on a distinguished road
По умолчанию

Цитата:
Сообщение от Chubaka885 Посмотреть сообщение
Скетч бы посмотреть. Он у тебя залился без проблем. Библиотеки USBAPI.h, HID.cpp менял?
бибилотеки менял, залилось без проблем, прежде чем заливать изучил и отштудировал тему

скетч вот
PHP код:
#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 durationmillisoldoff 0;
boolean stateACCrelestate1relestate2relestate3 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(ACCPinINPUT);
  
attachInterrupt(1wakeUpNowFALLING);    // Используем прерывание 1 (pin 2) для выполнения функции wakeUpNow
  
pinMode(pinKIS1OUTPUT); 
  
pinMode(pinIsoAmpOUTPUT); 
  
pinMode(relePinTabletOUTPUT);
  
pinMode(relePinAmpOUTPUT);
  
pinMode(pinRearCamOUTPUT);
  
Serial.begin(9600);  
}

void sleepNow()                          // Функция увода ардуины в спячку.
{
  
set_sleep_mode(SLEEP_MODE_PWR_DOWN);   // Здесь устанавливается режим сна
  
sleep_enable();                        // Включаем sleep-бит в регистре mcucr. Теперь возможен слип 
      
  
attachInterrupt(1wakeUpNowFALLING);   // Используем прерывание 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(pinKIS1HIGH);
    
digitalWrite(pinIsoAmpHIGH);
    
relestate1 1;
    
millisold millis();
    }
  if(!
digitalRead(ACCPin) && !stateACC &&  millis ()-duration ONTablet)
    {
    
digitalWrite(relePinTabletHIGH);
    
relestate2 1;
    
millisold millis();
    }
  if(!
digitalRead(ACCPin) && !stateACC &&  millis ()-duration ONAmp)
    {
    
digitalWrite(relePinAmpHIGH);
    
relestate3 1;
    
millisold millis();
    }
  if(
digitalRead(ACCPin) && stateACC && millis () -offOFFKIS)
    {
    
Remote.pause();// нажимаем пузу!
    
Remote.clear(); 
    
digitalWrite(pinKIS1LOW);
    
digitalWrite(pinIsoAmpLOW);
    
digitalWrite(pinRearCamLOW);
    
relestate1 0;
    
millisold millis();
    
Serial.end();
    
delay(100);
    
sleepNow(); 
    } 
  if(
digitalRead(ACCPin) && stateACC &&  millis ()-off OFFTablet)
    {
    
digitalWrite(relePinTabletLOW);
    
relestate2 0;
    
millisold millis();     
    }
  if(
digitalRead(ACCPin) && stateACC &&  millis ()-off OFFAmp)
    {
    
digitalWrite(relePinAmpLOW);
    
relestate3 0;
    
millisold millis();     
    }  
}

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

if(
data>=950 && data1 != && 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 != && millis()-eventTime>=50 && millis()-eventTime<=800)  
 {  
  
flag 2;  
  if(
millis()-eventTime <= 60data1 data;  
 }  

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

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

nikopol70 вне форума   Ответить с цитированием
Старый 01.07.2015, 08:00   #493
Ajlewka
Пользователь
 
Регистрация: 09.12.2013
Возраст: 33
Регион: 25
Сообщений: 94
Ajlewka is on a distinguished road
По умолчанию

Цитата:
Сообщение от lti1 Посмотреть сообщение
Плюсовой провод в USB кабеле разорвали? Рулевые кнопки подключены только к ардуино или к примеру параллельно магнитоле?
Вот такая на данный момент схема.

Я так понимаю это действительно из за плохой фильтрации. Один вариант решения я знаю - больше разницу в номиналах резисторов на руле сделать. А вариант с кондером поможет или нет? Или может еще какие варианты есть
Миниатюры
Нажмите на изображение для увеличения
Название: 1.png
Просмотров: 688
Размер:	15.4 Кб
ID:	40312  
Ajlewka вне форума   Ответить с цитированием
Старый 01.07.2015, 11:11   #494
lti1
Старший Пользователь
 
Аватар для lti1
 
Регистрация: 17.01.2010
Возраст: 48
Город: Самара
Регион: 63, 163
Машина: Skoda Octavia A5 FL && Skoda Octavia Tour && ̶F̶F̶3̶
Сообщений: 457
lti1 has a reputation beyond reputelti1 has a reputation beyond reputelti1 has a reputation beyond reputelti1 has a reputation beyond reputelti1 has a reputation beyond reputelti1 has a reputation beyond reputelti1 has a reputation beyond reputelti1 has a reputation beyond reputelti1 has a reputation beyond repute
По умолчанию

Цитата:
Сообщение от Ajlewka Посмотреть сообщение
Вот такая на данный момент схема.

Я так понимаю это действительно из за плохой фильтрации. Один вариант решения я знаю - больше разницу в номиналах резисторов на руле сделать. А вариант с кондером поможет или нет? Или может еще какие варианты есть
Сопротивление от +5 к A0 забыли указать, или его нет?
lti1 вне форума   Ответить с цитированием
Старый 01.07.2015, 18:43   #495
Chubaka885
Старший Пользователь
 
Регистрация: 08.10.2013
Возраст: 41
Регион: 56
Машина: Toyota Corolla e150
Сообщений: 325
Chubaka885 is a jewel in the roughChubaka885 is a jewel in the roughChubaka885 is a jewel in the roughChubaka885 is a jewel in the rough
По умолчанию

Цитата:
Сообщение от nikopol70 Посмотреть сообщение
бибилотеки менял, залилось без проблем, прежде чем заливать изучил и отштудировал тему
Ступил я немного. Не успевает он наверное паузу принять. Вот так попробуй.
PHP код:
#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 durationmillisoldoff 0;
boolean stateACCrelestate1relestate2relestate3 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(ACCPinINPUT);
  
attachInterrupt(1wakeUpNowFALLING);    // Используем прерывание 1 (pin 2) для выполнения функции wakeUpNow
  
pinMode(pinKIS1OUTPUT); 
  
pinMode(pinIsoAmpOUTPUT); 
  
pinMode(relePinTabletOUTPUT);
  
pinMode(relePinAmpOUTPUT);
  
pinMode(pinRearCamOUTPUT);
  
Serial.begin(9600);  
}

void sleepNow()                          // Функция увода ардуины в спячку.
{
  
set_sleep_mode(SLEEP_MODE_PWR_DOWN);   // Здесь устанавливается режим сна
  
sleep_enable();                        // Включаем sleep-бит в регистре mcucr. Теперь возможен слип 
      
  
attachInterrupt(1wakeUpNowFALLING);   // Используем прерывание 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(pinKIS1HIGH);
    
digitalWrite(pinIsoAmpHIGH);
    
relestate1 1;
    
millisold millis();
    }
  if(!
digitalRead(ACCPin) && !stateACC &&  millis ()-duration ONTablet)
    {
    
digitalWrite(relePinTabletHIGH);
    
relestate2 1;
    
millisold millis();
    }
  if(!
digitalRead(ACCPin) && !stateACC &&  millis ()-duration ONAmp)
    {
    
digitalWrite(relePinAmpHIGH);
    
relestate3 1;
    
millisold millis();
    }
  if(
digitalRead(ACCPin) && stateACC && millis () -offOFFKIS)
    {
    
digitalWrite(pinKIS1LOW);
    
digitalWrite(pinIsoAmpLOW);
    
digitalWrite(pinRearCamLOW);
    
relestate1 0;
    
millisold millis();
    
Serial.end();
    
delay(100);
    
sleepNow(); 
    } 
  if(
digitalRead(ACCPin) && stateACC &&  millis ()-off OFFTablet)
    {
    
digitalWrite(relePinTabletLOW);
    
relestate2 0;
    
millisold millis();     
    }
  if(
digitalRead(ACCPin) && stateACC &&  millis ()-off OFFAmp)
    {
    
Remote.pause();// нажимаем пузу!
    
Remote.clear();
    
digitalWrite(relePinAmpLOW);
    
relestate3 0;
    
millisold millis();     
    }  
}

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

if(
data>=950 && data1 != && 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 != && millis()-eventTime>=50 && millis()-eventTime<=800)  
 {  
  
flag 2;  
  if(
millis()-eventTime <= 60data1 data;  
 }  

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

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

__________________
Nexus 7 2012 (grouper), Cyanogenmod 11 - M10
фото установки Nexus 7 2012 & Toyota Corolla
Chubaka885 вне форума   Ответить с цитированием
Старый 01.07.2015, 19:15   #496
Ajlewka
Пользователь
 
Регистрация: 09.12.2013
Возраст: 33
Регион: 25
Сообщений: 94
Ajlewka is on a distinguished road
По умолчанию

Цитата:
Сообщение от lti1 Посмотреть сообщение
Сопротивление от +5 к A0 забыли указать, или его нет?
да есть оно конечно, больше чем сопротивление кнопок.
Ajlewka вне форума   Ответить с цитированием
Старый 02.07.2015, 16:36   #497
Ajlewka
Пользователь
 
Регистрация: 09.12.2013
Возраст: 33
Регион: 25
Сообщений: 94
Ajlewka is on a distinguished road
По умолчанию

Цитата:
Сообщение от Chubaka885 Посмотреть сообщение
Питание ардуино сделали к выводу "5В", как показывали вам раннее?
Делал. Не помогает
Ajlewka вне форума   Ответить с цитированием
Старый 02.07.2015, 18:41   #498
armlive
Старший Пользователь
 
Регистрация: 12.12.2013
Возраст: 43
Город: Армавир
Регион: 23, 93
Машина: Nissan Qashqai
Сообщений: 510
armlive is a glorious beacon of lightarmlive is a glorious beacon of lightarmlive is a glorious beacon of lightarmlive is a glorious beacon of lightarmlive is a glorious beacon of light
По умолчанию

Цитата:
Сообщение от Ajlewka Посмотреть сообщение
Блин, мужики, не понимаю. Все меня эти сраные скачки номиналов достали. Уже и отдельным блоком заппитал, и леонардо настроил. Перед блоком питания кондер стоит. Может стоит для сглаживания кондер и на выходе блока питания поставить? Поможет от Разброса номиналов резистивных? Хочу сказать что мерил тестером и напряжение стабильно держится ни десятой не просаживается
У меня такая же фигня, на выходе кондер обязателен. Особенно когда заведешь машину, разброс приличный. питается отдельно, но парадокс, если в хаб вставить еще оборудование, с приличным потреблением (к примеру SDR) то значения становятся другими. Спрашивается как???? Ведь хаб питается от одного преобразователя, а Леонардо от другого.
__________________
Nexus 7 (2013) Nissan Qashqai
armlive вне форума   Ответить с цитированием
Старый 03.07.2015, 16:24   #499
Ajlewka
Пользователь
 
Регистрация: 09.12.2013
Возраст: 33
Регион: 25
Сообщений: 94
Ajlewka is on a distinguished road
По умолчанию

Цитата:
Сообщение от armlive Посмотреть сообщение
У меня такая же фигня, на выходе кондер обязателен. Особенно когда заведешь машину, разброс приличный. питается отдельно, но парадокс, если в хаб вставить еще оборудование, с приличным потреблением (к примеру SDR) то значения становятся другими. Спрашивается как???? Ведь хаб питается от одного преобразователя, а Леонардо от другого.
А есть стабилизаторы же общие, которые прям к аккумулятору ставятся. Может такая штука поможет? Ну или номиналы в руле менять... Другого выхода не вижу
Ajlewka вне форума   Ответить с цитированием
Старый 03.07.2015, 17:28   #500
armlive
Старший Пользователь
 
Регистрация: 12.12.2013
Возраст: 43
Город: Армавир
Регион: 23, 93
Машина: Nissan Qashqai
Сообщений: 510
armlive is a glorious beacon of lightarmlive is a glorious beacon of lightarmlive is a glorious beacon of lightarmlive is a glorious beacon of lightarmlive is a glorious beacon of light
По умолчанию

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

Блин , был-бы осциллограф, легче бы было найти причину
__________________
Nexus 7 (2013) Nissan Qashqai
armlive вне форума   Ответить с цитированием
Ответ


Здесь присутствуют: 12 (пользователей: 0 , гостей: 12)
 

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

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



Часовой пояс GMT +4, время: 14:40.


Работает на vBulletin® версия 3.8.4.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot