Код (Text): #include "Wire.h"; int IO_ADDR = 72; int led = 13; int i; void setup() { Serial.begin(9600); Wire.begin(); pinMode(led, OUTPUT); } void loop() { // put your main code here, to run repeatedly: Wire.beginTransmission(IO_ADDR); delay(500); Wire.write(0x78); Wire.write(0x00); Wire.write(0x31); Wire.write(0x14); Wire.write(0x06); Wire.write(0x30); Wire.write(0x11); Wire.write(0x05); Wire.write(0x31); Wire.write(0x9A); //контраст Wire.write(0x0C); Wire.write(0x30); Wire.write(0x0C); Wire.write(0x40); Wire.write(0x80); Wire.endTransmission(); Wire.beginTransmission(IO_ADDR); Wire.write(0x78); Wire.write(0x40); for(i = 0; i < 98; i++) { Wire.write(0x00); } Wire.endTransmission(); digitalWrite(led, HIGH); // turn the LED on (HIGH is the voltage level) delay(1000); // wait for a second digitalWrite(led, LOW); // turn the LED off by making the voltage LOW delay(1000); // wait for a second } дисплей молчит, лампочка моргает.
Перенес но ничего не изменилось, как узнать что дисплей про инициализирован? Он должен как то цветом поменяться?
для тех новичков, которые сюда забретут с гугля (типа меня), - работа над ошибками, не замеченными в предыдущих сообщениях 1. i2c адрес дисплея - 0x3c, и надо убрать байт 0x78 в начале каждого сеанса вывода - он лишний. 2. в стандартной библиотеке Wire размер буфера вывода (и ввода тоже) всего 32 байта - надо исправить на: в файле %Arduino%\libraries\Wire\Wire.h строка 28 #define BUFFER_LENGTH 128 в файле %Arduino%\libraries\Wire\utility\twi.h строка 32 #define TWI_BUFFER_LENGTH 128 3. добавить перед инициализацией (которая должна делаться в setup() ) процедуру сброса: pinMode(nRST, OUTPUT); digitalWrite(nRST,0); delay(5); digitalWrite(nRST,1); ну и в блоке переменных не забыть объявить, куда подключен reset дисплея (через резистор 3-5 кОм). например, у меня это пин D3: const int nRST = 3;