Страница 14 из 20 ПерваяПервая ... 4891011121314151617181920 ПоследняяПоследняя
Показано с 131 по 140 из 200

Тема: BMW I-Bus K-Bus

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1
    Пользователь
    Регистрация
    25.10.2010
    Сообщений
    33
    Вес репутации
    188

    По умолчанию Re: BMW I-Bus K-Bus

    Цитата Сообщение от Chip Посмотреть сообщение
    А ты уверен что в пакете есть значение 0xF0 ?
    Еще здесь обсуждали вопрос с инверсией.
    Попробуй перед сравнением проинвертировать
    Да 100% тут к гадалке не ходи. F0 - это бортовой монитор.
    Т.е. проблемма может быть в endian?

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

    По умолчанию Re: BMW I-Bus K-Bus

    Ты бы всю функцию принимающую данные выложил я на ошибки проверю

  3. #3
    Пользователь
    Регистрация
    25.10.2010
    Сообщений
    33
    Вес репутации
    188

    По умолчанию Re: BMW I-Bus K-Bus

    Цитата Сообщение от Chip Посмотреть сообщение
    Ты бы всю функцию принимающую данные выложил я на ошибки проверю
    Оки, до дома доберусь - выложу, хотя ошибки врядли в коде т.к. запись в ЮСБ этих пакетов парсится на ура. Боюсь все таки в адаптере где то облажался

  4. #4
    Пользователь
    Регистрация
    25.10.2010
    Сообщений
    33
    Вес репутации
    188

    По умолчанию Re: BMW I-Bus K-Bus

    Цитата Сообщение от darkduke Посмотреть сообщение
    Оки, до дома доберусь - выложу, хотя ошибки врядли в коде т.к. запись в ЮСБ этих пакетов парсится на ура. Боюсь все таки в адаптере где то облажался
    Забавно, но проблема разрешилась и действительно софтверно. Я попробовал способ не через TX RX пины, а через цифровые с SoftwareSerial, в конструкторе включил инверсию логики. И в правду все заработало... Вот тока теперь печатку нужно перепаивать((( Но это малое горе, по сравнению с таким счастьем)))
    Последний раз редактировалось darkduke; 16.03.2012 в 12:34.

  5. #5
    Пользователь
    Регистрация
    21.10.2009
    Возраст
    39
    Сообщений
    44
    Вес репутации
    203

    По умолчанию Re: BMW I-Bus K-Bus

    Цитата Сообщение от darkduke Посмотреть сообщение
    ...в конструкторе включил инверсию логики. И в правду все заработало...
    Можешь код выложить?

  6. #6
    Пользователь
    Регистрация
    25.10.2010
    Сообщений
    33
    Вес репутации
    188

    По умолчанию Re: BMW I-Bus K-Bus

    Цитата Сообщение от delach Посмотреть сообщение
    Можешь код выложить?
    Код:
    #include <SoftwareSerial.h>
    //#include <NewSoftSerial.h>
    #include <MsTimer2.h>
    
    
    #define DELAY_ON 1000 //delay before switch-on event
    #define DELAY_OFF 10000 //delay before switch-off event
    #define DELAY_SWITCH 0 //delay before switch event
    #define RELAY_PORT 9
    #define POWER_5V_PIN 5
    #define IGN_LED 13
    
    #define RX_PIN 4
    #define TX_PIN 3
    //NewSoftSerial IBUS(RX_PIN, TX_PIN);
    SoftwareSerial IBUS(RX_PIN, TX_PIN, true);
    
    struct pktTemplate {
      unsigned char src;
      unsigned char dst;
      unsigned char msglen;
      unsigned char msg[256];
    };
    
    #define RAD 	0x68 	//Radio
    #define IKE 	0x80 	//Instrument cluster electronics
    #define GLO 	0xBF 	//Global, broadcast address
    #define BMBT 	0xF0 	//On-board monitor operating part
    
    
    static struct pktTemplate buttonMODETempl = {BMBT, RAD, 2, {0x48, 0x23}}; // BUTTON_MODE_PRESS
    
    int recvPacket(unsigned char *msg, int size) 
    {
      static unsigned char buf[256];
      static int cnt = 0;
      int avail = 0;
      while ((avail = IBUS.available()) > 0) {
      // get the new byte: 
        buf[cnt++] = (unsigned char)IBUS.read();
        Serial.println(buf[cnt-1],HEX); 
    
        // parsing code here
        // return cnt;
          if (cnt > 256) { // VERY BIG PACKAGE. NEED ERASE DATA.
            memmove((void*)&buf[0], (void*)&buf[127], 128);
            cnt = 128;
          }
      }
      
      return 0;
    }
    
    void setup() {
      pinMode(POWER_5V_PIN, OUTPUT); // initialize +5V power pin for adapter
      pinMode(RELAY_PORT, OUTPUT); // initialize +5V power pin for relay
      digitalWrite(POWER_5V_PIN, HIGH); // Enable +5V power for adapter
      
      Serial.begin(9600);
      IBUS.begin(9600);
    }
    
    void loop() {
    
      unsigned char msg[256];
      int read;
      if ((read = recvPacket(msg, 256)) > 0) {
    //......  some code
      }  
    }

    Я заметил только во время сборки монитора что некоторые пакеты читаются неправильно. Незнаю как бороться с этим вот вывод от MID
    C0 0D 0E BC E0 42
    C0 0D 8E BE E0 0F
    C0 0D 8E BB E0 FF
    C0 0D 0E BC E0 42
    C0 0D 8E BE E0 0F
    C0 0D 8E BB E0 FF

    Это конечно же полная лажа, должны быть приблизительно такие пакеты:
    C0 03 68 01 AA
    C0 03 80 01 42
    C0 03 C8 01 0A

    Можно конечно парсить заведомо неправильную интерпритацию пакетов, но хотелось бы иначе. Если честно, я даже не знаю что делать с этим. Интересно то, что до этого я тестировал с монитором и его пакеты почти все читаются правильно, а вот любой другой девайс - такая вот шняга.
    Последний раз редактировалось darkduke; 03.04.2012 в 13:30.

  7. #7
    Пользователь
    Регистрация
    25.10.2010
    Сообщений
    33
    Вес репутации
    188

    По умолчанию Re: BMW I-Bus K-Bus

    У меня возник еще один, вопрос, управление реле при помощи ардуино, когда приходит IBUS команда задней передачи. У меня есть слаботочное реле Takamisawa RY12W-K, которое вроде как для камеры хватает (1А держит), хочу подключить по такой схеме:

    Если я подключу +12 к реле напрямую от аккумулятора это не грозит мне сгоревшим реле? Проверил на амперметре: потребляет 12МА

    Так же интересно, можно ли его использовать для питпния монитора? Моник по амперметру потребляет 0.27А
    Последний раз редактировалось darkduke; 19.03.2012 в 02:29.

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

    По умолчанию Re: BMW I-Bus K-Bus

    Посмотри на самом реле его параметры должны быть описаны

  9. #9
    Пользователь
    Регистрация
    25.10.2010
    Сообщений
    33
    Вес репутации
    188

    По умолчанию Re: BMW I-Bus K-Bus

    Цитата Сообщение от Chip Посмотреть сообщение
    Посмотри на самом реле его параметры должны быть описаны
    Вот что написано:


    Вот вопрос, если напрямую питать его от аккумулятора оно выдержит или большая сила тока его грохнет? На сколько мне известно сопротивление катушки 940 Ом. Она не перегреется?

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

    По умолчанию Re: BMW I-Bus K-Bus

    Реле работает от 12в, так что ничего с ним не случится

Страница 14 из 20 ПерваяПервая ... 4891011121314151617181920 ПоследняяПоследняя

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

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

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

Ваши права

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