Помогите разобраться: почему экран не работает с I2C? только стоит вызвать функцию begin(), как у экрана "сносит крышу"... проверил совместную работу с другим I2C датчиком - тот же результат.. пока ничего не понимаю. как I2C влияет на экран?? у них же разные пины.
библиотека openGLCD + troykaIMU. взял два примера и объединил.. по отдельности работают - значит провода правильно соединил. а стоит вместе соединить - как экран умирает.
#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(); }
дело конечно личное и вам решать... вероятность получения совета при выкладывании отформатированного кода значительно вырастет удачи
дело не в коде. видимо какой-то конфликт библиотек друг с другом. но я не понимаю какой и как его исправить.
@МЯВ Имелось ввиду, что когда код копируете на форум, его нужно оформлять вот так: Код (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(); }
дисплей 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)
А4 и А5 запараллелены с SCL и SDA? О!!! не ожидал такой подставы. спасибо за помощь! на схеме на которую смотрел этого не было указано.
На Uno это одни и те же ноги МК ATmega328P, на Leonardo (ATmega32U4) вместо A4 и A5 общие с I2C пины 2 и 3. Тут ничего не поделать, таково распределение периферии внутри МК.