Зацепил вчера к arduino залил скетч отсюда http://compcar.ru/forum/showthread.p...ll=1#post40465 читает уверенно осталось найти сниффер и написать скетч с последним у меня туговато.
Зацепил вчера к arduino залил скетч отсюда http://compcar.ru/forum/showthread.p...ll=1#post40465 читает уверенно осталось найти сниффер и написать скетч с последним у меня туговато.
Alex753
Ищите различия в данных которые приходят на разных режимах, на основании этих данных я и писал скетч. Могу сбросить для образца.
lti1 проблема в том что данные с шины смотрю программой которая выложена в том же посте что и скетч который написал Chip, а в программе вижу только текущие данные одной строкой, при переключении вижу что инфа меняется, но быстро замещается информацией которая висит на шине без нажатия кнопок(а эта инфа одинакова во всех режимах) надо ждать Эдуарда и просить чтоб сделал ведение лога для своей программы. В мониторе порта arduino не читаемые символы(наверное потому что "Данные читаются в массив MyBuff[i], в цикле читается 8 байт, а потом передаться компьютеру Serial.write(MyBuff, 8)")
Alex753
Здесь я подсказать не в силах, с SPI мало имел дело.
Вот скетч который у меня работает, задержка на отключения, после выхода из режима AV 3 секунды, может пригодится.
Код:#include <Wire.h> #define ADDR 72 //адрес устройства int AV = 13; // управляющий пин unsigned long AVtime=0; int AVflag=false; void setup() { Wire.begin(ADDR); //определим как ведомый с указанным адресом Wire.onReceive(receive_handler); //ждем данных от мастера, функция возвращает int число байт данных pinMode(AV, OUTPUT); // назначаем пины как выходы } void loop() { } void receive_handler(int numbytes) { for (int i=0;i<numbytes;i++) //читаем весь пакет { int a = Wire.read(); // присваиваем переменной значение a if (a == 194 || a == 210) // если код 0194192247208 или 0210208247208 включить пин 13 { digitalWrite(AV, HIGH); AVflag == true; } else if (a == 80 || a == 88 || a == 64 || a == 67 || a == 91) // если код 080192247208 или 088192247208 или 064192247208 или 067192247208 или 091216247208 включить пин 13 AVflag == false,AVtime=millis(); if(millis()-AVtime>3000 && AVflag == false) digitalWrite(AV, LOW); } }
Подпаялся к другой микросхеме PM9009A (Electronic volume/source selector) и тут нашел нужную инфу.
При переключении входов
00 14 13 20 00 30 00 40 7C 81 ED 91 EA A1 F0 B1 EF C1 E9 D1 Tuner
00 12 02 20 00 30 00 40 7C 81 ED 91 EA A1 F0 B1 EF C1 E9 D1 AUX(для этого режима сделать выход)
00 11 02 20 00 30 00 40 7C 81 ED 91 EA A1 F0 B1 EF C1 E9 D1 AUX2
00 13 xx 20 00 30 00 40 7C 81 ED 91 EA A1 F0 B1 EF C1 E9 D1 (я думаю что то аналогичное будет для cd не вижу т.к. привод отключен)
Это выдает программа Эдуарда.
Помогите со скетчем кто нибудь.
Последний раз редактировалось Alex753; 11.07.2014 в 00:19.
Alex753
По какому протоколу подключились к PM9009A?
так же по spi
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)