барограф: экран MT-12864J и датчик LPS331AP по I2C не работают вместе???

Тема в разделе "Arduino & Shields", создана пользователем МЯВ, 5 янв 2017.

  1. МЯВ

    МЯВ Нуб

    Помогите разобраться: почему экран не работает с I2C? только стоит вызвать функцию begin(), как у экрана "сносит крышу"... проверил совместную работу с другим I2C датчиком - тот же результат.. пока ничего не понимаю. как I2C влияет на экран?? у них же разные пины.
     
  2. vvr

    vvr Инженерище

    код покажите
     
  3. МЯВ

    МЯВ Нуб

    библиотека openGLCD + troykaIMU. взял два примера и объединил.. по отдельности работают - значит провода правильно соединил. а стоит вместе соединить - как экран умирает.
     
  4. МЯВ

    МЯВ Нуб

    #include <openGLCD.h>
    // библиотека для работы с датчиком DHT11
    #include <TroykaDHT11.h>
    // создаём объект класса DHT11 и передаём номер пина к которому подключён датчик
    DHT11 dht(13);

    void setup() {
    GLCD.Init(); // initialise the library, non inverted writes pixels onto a clear screen
    GLCD.ClearScreen();

    //Добавляем линию
    GLCD.DrawLine(0, 0, 127, 63);
    GLCD.DrawLine(0, 63, 127, 0);

    dht.begin();
    //Добавляем окружность
    GLCD.DrawCircle(63, 32, 30);

    delay(1000);
    GLCD.ClearScreen();
    }
     
    Последнее редактирование: 5 янв 2017
  5. МЯВ

    МЯВ Нуб

    тут датчик - часы рельного времени - но эфект тот же что и с датчиком давления.
     
  6. МЯВ

    МЯВ Нуб

    после dht.begin(); экран показывает хаотичный набор пикселей.
     
  7. vvr

    vvr Инженерище

    дело конечно личное и вам решать...
    вероятность получения совета при выкладывании отформатированного кода значительно вырастет
    удачи
     
    9xA59kK нравится это.
  8. МЯВ

    МЯВ Нуб

    дело не в коде. видимо какой-то конфликт библиотек друг с другом. но я не понимаю какой и как его исправить.
     
    Последнее редактирование: 5 янв 2017
  9. Tim308

    Tim308 Нерд

    @МЯВ Имелось ввиду, что когда код копируете на форум, его нужно оформлять вот так:
    Код (C++):
    #include <openGLCD.h>
    // библиотека для работы с датчиком DHT11
    #include <TroykaDHT11.h>
    // создаём объект класса DHT11 и передаём номер пина к которому подключён датчик
    DHT11 dht(13);

    void setup() {
    GLCD.Init(); // initialise the library, non inverted writes pixels onto a clear screen
    GLCD.ClearScreen();

    //Добавляем линию
    GLCD.DrawLine(0, 0, 127, 63);
    GLCD.DrawLine(0, 63, 127, 0);

    dht.begin();
    //Добавляем окружность
    GLCD.DrawCircle(63, 32, 30);

    delay(1000);
    GLCD.ClearScreen();
    }
     
  10. МЯВ

    МЯВ Нуб

    оформление - это прекрасно, а по сути проблемы есть мысли?
     
  11. МЯВ

    МЯВ Нуб

    дисплей MT-12864J 128х64 на базе KS0108. распиновка по умолчанию из библиотеки openGLCD:
    Код (C++):
    /* Data pin definitions
    */

    #define glcdPinData0        8
    #define glcdPinData1        9
    #define glcdPinData2        10
    #define glcdPinData3        11
    #define glcdPinData4        4
    #define glcdPinData5        5
    #define glcdPinData6        6
    #define glcdPinData7        7

    /* Arduino pins used for Control
    * default assignment uses the first five analog pins
    */


    #define glcdPinCSEL1        A0
    #define glcdPinCSEL2        A1

    #if NBR_CHIP_SELECT_PINS > 2
    #define glcdPinCSEL3         3   // third chip select if needed
    #endif

    #if NBR_CHIP_SELECT_PINS > 3
    #define glcdPinCSEL4         2   // fourth chip select if needed
    #endif

    #define glcdPinRW           A2
    #define glcdPinDI           A3
    #define glcdPinEN           A4 // (A4 is also I2C SDA)
     
     
  12. МЯВ

    МЯВ Нуб

    Как эти пины могут влиять на I2C? или наоборот I2C на эти пины?
     
  13. vvr

    vvr Инженерище

    А4 у вас общий пин
    Дисплей с А4 уберите
     
  14. МЯВ

    МЯВ Нуб

    А4 и А5 запараллелены с SCL и SDA? О!!! не ожидал такой подставы. спасибо за помощь! на схеме на которую смотрел этого не было указано.
     
  15. Unixon

    Unixon Оракул Модератор

    На Uno это одни и те же ноги МК ATmega328P, на Leonardo (ATmega32U4) вместо A4 и A5 общие с I2C пины 2 и 3. Тут ничего не поделать, таково распределение периферии внутри МК.
     
  16. МЯВ

    МЯВ Нуб

    Да, всем спасибо. заработало!!!!!!:)