В общем докладываю.
Имеется Pioneer AVH-P3100DVD, хотел, что бы при переключении источника на AUX уходил сигнал на планшет и тот в свою очередь понимал, что нужно переключить вывод звука со встроенных динамиков на Pioneer. На Pioneer в свою очередь имеется шина I2C к которой и подключена Carduino Nano для отладки, в дальнейшем, в цели экономии будет стоять Pro Mini. При переключении на AUX по шине идет один раз код 067192247208, потом примерно каждые пять секунд 091216247208, при переключении в любой другой режим несколько раз 088192247208, потом так же примерно каждые пять секунд 064192247208, а при выключении магнитолы, несколько раз 088192247208 и несколько раз 064192247208.
Залил вот такой скетч, вроде бы работает как надо.
PHP код:#include <Wire.h>
#define ADDR 72 //адрес устройства
int AUX = 13; // управляющий пин
void setup()
{
Wire.begin(ADDR); //определим как ведомый с указанным адресом
Wire.onReceive(receive_handler); //ждем данных от мастера, функция возвращает int число байт данных
pinMode(AUX, OUTPUT); // назначаем пины как выходы
}
void loop() {}
void receive_handler(int numbytes)
{
for (int i=0;i<numbytes;i++) //читаем весь пакет
{
int a = Wire.read(); // присваиваем переменной значение a
if (a == 67 || a == 91) // если код 067192247208 или 091216247208 включить пин 13
{
digitalWrite(AUX, HIGH);
}
else if (a == 88 || a == 64) // если код 088192247208 или 064192247208 выключить пин 13
{
digitalWrite(AUX, LOW);
}
}
}




Ответить с цитированием