Судя по схеме данные инвертируются
Судя по схеме данные инвертируются
Chip, а можно как-нибудь переделать адаптер (чтобы правильные данные передавал) или будет работать только с TH3122? Что ещё странно, данные полученные efimomax'ом и мной отличаются кардинально, пришлось снифить команды от кнопок руля заново... Видимо дело не только в инвертировании данных.
efimomax использовал адаптер на транзисторах и для его целей было не важно что приходит главное стабильно и это он не однократно писал в своих сообщениях. здесь ситуация другая. Вы бы хоть один ткнули бы пальчиком или выложили прошивку через которую пытаетесь получить данные. Ребят так не возможно помочь.
И еще один момент, я уверен что все слушают приходящие данные с Arduino с помощью IBUSAnaluser при этом никто не говорит какие настройки по скорости передачи данных выставляют в прошивке.
хороший модем должен качать пиво!
Мой проект
XsanderS, я собственно хотел использовать твою прошивку для Nano, по этому у тебя про адапрер и спросил, т.к. в прогу Chip'а никакие данные не приходят. Ещё нля тестов пробовал код из первого поста, вот он данные читает, но не те.
И ещё вопросик. Подскажи, пожалуйста, что делает этот кусок кода?
В прошивке для Меги там понятно, а тут вроде после условия нет никакого действия, или я чего не правильно понял?
PHP код:
{
if( IBUSbyte[3] == 0x32 && IBUSbyte[4] == 0x11 ); // Нажал +
else if( IBUSbyte[3] == 0x32 && IBUSbyte[4] == 0x10 ) ; // Нажал -
else if( IBUSbyte[3] == 0x3B && ( IBUSbyte[4] == 0x01 || IBUSbyte[4] == 0x11 ) ) ; // Нажата next
else if( IBUSbyte[3] == 0x3B && IBUSbyte[4] == 0x21 ) ; // Отпустил next
else if( IBUSbyte[3] == 0x3B && ( IBUSbyte[4] == 0x08 || IBUSbyte[4] == 0x18 ) ) ; // Нажата previous
else if( IBUSbyte[3] == 0x3B && IBUSbyte[4] == 0x28 ) ; // Отпустил previous
else if( IBUSbyte[3] == 0x3B && ( IBUSbyte[4] == 0x80 || IBUSbyte[4] == 0x90 ) ) ; // Нажата dial
else if( IBUSbyte[3] == 0x3B && IBUSbyte[4] == 0xA0 ) ; // Отпустил dial
else if( IBUSbyte[2] == 0xC8 && IBUSbyte[3] == 0x01 ) ; // Нажата R/T
}
Ты наверно имел ввиду этот кусок
1. Если тебе не надо по нажатию кнопок дергать пинами Arduino то этот кусок тебе не нужен. ниже кода для Мега описано как он работает и специально написал что код довольно специфичен, под пой проект заточенный. Так как мало кто использует версию Мега я упростил и подправил код для более компактных моделей Carduino, например Nano, Demilanova, Dcimila. этот упрощенный код ничего не делает кроме как выхватывает нажатия кнопок с шины и шлет эти данные в комп. Этот код в таком виде как он есть подойдет только для того чтобы подключить кнопки руля к компу, так как кроме информации о нажатии кнопок в комп ничего не просочиться.PHP код:
{
if( IBUSbyte[3] == 0x32 && IBUSbyte[4] == 0x11 ) digitalWrite(8, HIGH); // Нажал +
else if( IBUSbyte[3] == 0x32 && IBUSbyte[4] == 0x10 ) digitalWrite(9, HIGH); // Нажал -
else if( IBUSbyte[3] == 0x3B && ( IBUSbyte[4] == 0x01 || IBUSbyte[4] == 0x11 ) ) digitalWrite(10, HIGH); // Нажата next
else if( IBUSbyte[3] == 0x3B && IBUSbyte[4] == 0x21 ) digitalWrite(10, LOW); // Отпустил next
else if( IBUSbyte[3] == 0x3B && ( IBUSbyte[4] == 0x08 || IBUSbyte[4] == 0x18 ) ) digitalWrite(11, HIGH); // Нажата previous
else if( IBUSbyte[3] == 0x3B && IBUSbyte[4] == 0x28 ) digitalWrite(11, LOW); // Отпустил previous
else if( IBUSbyte[3] == 0x3B && ( IBUSbyte[4] == 0x80 || IBUSbyte[4] == 0x90 ) ) digitalWrite(12, HIGH); // Нажата dial
else if( IBUSbyte[3] == 0x3B && IBUSbyte[4] == 0xA0 ) digitalWrite(12, LOW); // Отпустил dial
}
Настройка порта IBUS 9600Подскажите, пожалуйста, как из ардуино в вашу программу можно передать массив byte data[6] = {0x50, 0x04, 0x68, 0x32, 0x11, 0x1F} чтобы ваша программа восприняла его как команду "50046832111F" и выдала соответствующее сочетание клавиш, или так сделать невозможно в принципе?
Настройка скорости передачи в комп 115200
программа назначит на эти команда свой код.
запускаешь программу, разворачиваешь ее, нажимаешь кнопку/шлеш в ком порт 50046832111F программа показывает код нажатия хххххххххх, затем этот код вписываешь в таком формате <хххххххххх>Key1=49 /> в файл config. Только в ручную, утилита для назначения комбинаций кнопок видит только первые 4 байта и на все пакеты в которых до 4го байта ничего не не меняется будет назначать один код нажатия.
Напиши все функции которые выполняет Carduino в твоем проекте. если в истории с IBUS Carduino служит только для передачи данных с шины в комп то зачем лишние нагрузки на Carduino лучшеЯ сейчас использую один байт для передачи в комп, всю обработку делаю на ардуино. Но неплохо бы разгрузить его маленько и передавать в комп всю команду, а там уже разбираться что с ней делать.
настроить отдельно связь с шиной.
ЗЫ: Пишите что именно хотите реализовать (полностью) У меня сейчас проблемки, надо навести порядок в делах. Не могу сосредоточеться на форуме, но до конца этого месяца думаю разобраться и тогда помогу и если надо будет у себя протестирую.
Последний раз редактировалось XsanderS; 20.01.2010 в 17:11.
хороший модем должен качать пиво!
Мой проект
Такой же результат на оптопаре + max232 - 1-й байт норм. а остальные каша....
Попробовал через 1К резистор подключиться к чипу мелексис(TH3122) в адаптере ibus Рольфа реслера-получил точь в точь данные которые были и через оптопару + МАХ232...не знаю, что делать дальше![]()
Скорость не может быть отличной от 9600 т.к. шина работает именно с этой скоростью.
хороший модем должен качать пиво!
Мой проект
К сожалению у меня нет автомобиля БМВ и проверить нет возможности
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)