Страница 2 из 4 ПерваяПервая 1234 ПоследняяПоследняя
Показано с 11 по 20 из 37

Тема: I2C-Arduino

  1. #11
    Администратор Аватар для Chip
    Регистрация
    08.06.2007
    Возраст
    54
    Сообщений
    13,376
    Вес репутации
    10

    По умолчанию Re: I2C-Arduino

    А что это за данные 05BD8F7D0 ?

  2. #12
    Пользователь Аватар для lti1
    Регистрация
    15.10.2010
    Возраст
    48
    Сообщений
    78
    Вес репутации
    181

    По умолчанию Re: I2C-Arduino

    Цитата Сообщение от Chip Посмотреть сообщение
    А что это за данные 05BD8F7D0 ?
    Это данные идут по шине I2C при включенном режиме AUX на Pioneer AVH-P3100 в HEX, считанные при помощи скетча из этой темы и Carduino Nano.

  3. #13
    Пользователь Аватар для lti1
    Регистрация
    15.10.2010
    Возраст
    48
    Сообщений
    78
    Вес репутации
    181

    По умолчанию Re: I2C-Arduino

    В общем докладываю.
    Имеется 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(AUXOUTPUT); // назначаем пины как выходы


    void loop() {} 

    void receive_handler(int numbytes)  

     for (
    int i=0;i<numbytes;i++)  //читаем весь пакет  
      

        
    int a Wire.read();  // присваиваем переменной значение a
        
    if (== 67 || == 91// если код 067192247208 или 091216247208 включить пин 13
        
    {
        
    digitalWrite(AUXHIGH);
        }
        else if (
    == 88 || == 64// если код 088192247208 или 064192247208 выключить пин 13
        
    {
        
    digitalWrite(AUXLOW);
        }
      }

    Последний раз редактировалось lti1; 16.07.2013 в 23:09.

  4. #14
    Пользователь Аватар для lti1
    Регистрация
    15.10.2010
    Возраст
    48
    Сообщений
    78
    Вес репутации
    181

    По умолчанию Re: I2C-Arduino

    И еще небольшой вопрос. Для согласования уровней сигнала использовал вот такую схему, но у меня и на прямую без неё и подтягивающих резисторов работает, как думаете нужно транзисторы и резисторы оставить или все на прямую соединить?

  5. #15
    Новичок
    Регистрация
    09.04.2012
    Возраст
    47
    Сообщений
    4
    Вес репутации
    0

    По умолчанию Re: I2C-Arduino

    Добрый вечер.
    Такая задача, есть две ARDUINO соединенные по I2C, одна master вторая slave, master выполняет свои "возложенные задачи" и периодически опрашивает slave, на sleve запущены "свои задачи" и пять счётчиков!.. Подскажите, как написать скетч чтоб master понимал с какого счётчика получены значения.

  6. #16
    Модератор Аватар для XsanderS
    Регистрация
    05.05.2008
    Возраст
    41
    Сообщений
    829
    Вес репутации
    389

    По умолчанию Re: I2C-Arduino

    Помогите отискать адрес микрухи в datasheet
    Вложения Вложения
    хороший модем должен качать пиво!
    Мой проект

  7. #17
    Пользователь
    Регистрация
    17.12.2009
    Возраст
    46
    Сообщений
    34
    Вес репутации
    182

    По умолчанию Re: I2C-Arduino

    Там последовательный интерфейс! Типа SPI.

  8. #18
    Пользователь
    Регистрация
    13.06.2012
    Сообщений
    23
    Вес репутации
    150

    По умолчанию Re: I2C-Arduino

    Пытаюсь на 88 пионере сделать то же самое что lti1 т.е снять сигнал о включении аукс (так же по шине i2c), но не совсем получается
    Подпаялся к ic121(ak7732vt) к ногам 11,14 через преобразователь уровней на pca9306 т.к микросхема работает от 3в, скетч отсюда http://compcar.ru/forum/showthread.p...ll=1#post56169, проблема в том что шина сканируется около 1 сек и потом данные не идут пока не нажму ресет на ардуине потом опять 1 сек работает и снова данные перестают сканироваться. Пробовал подпаиваться к ic281(PM9009A) к ногам 43,44(5в уровни) тогда в мониторе порта ардуины вообще тишина.
    Преобразователь уровней пробовал и самодельный на 2-х танзисторах и на 4-х ничего не меняется. Подскажите в каком направлении копать схему магнитолы прилагаю.
    Вложения Вложения
    Последний раз редактировалось Alex753; 27.06.2014 в 00:29.

  9. #19
    Пользователь
    Регистрация
    13.06.2012
    Сообщений
    23
    Вес репутации
    150

    По умолчанию Re: I2C-Arduino

    Да еще когда ардуино перестает выдавать инфу с шины также перестает работать регулятор громкости на магнитоле (при повороте энкодера появляется текущий уровень громкости и не меняется, точнее изменяется но очень медленно если крутить около 10 сек может на 2единицы) если нажать сброс на ардуино то громкость опять какое то время регулируется норм. Частоту шины ардуино пробовал менять на 400кГц без изменений.

  10. #20
    Пользователь Аватар для lti1
    Регистрация
    15.10.2010
    Возраст
    48
    Сообщений
    78
    Вес репутации
    181

    По умолчанию Re: I2C-Arduino

    Alex753
    А в сопротивления от SDA и SCL к +3 вольт устанавливали? У меня в схеме магнитолы они уже были, я не ставил, только со стороны 5 вольт.

Страница 2 из 4 ПерваяПервая 1234 ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 2 (пользователей: 0 , гостей: 2)

Ваши права

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