Официальный сайт компании Arduino по адресу arduino.cc
А для этого нужна инструкция в стиле "разрешенный коридор от и до. Дальше сам дурак"
Правда, ее все равно будут чить потом, когда ничего не работает. %)
Интерфейс библиотеки должен быть простой, понятный, и по возможности не допускающий неправильного использования.
В случае неправильного использования юзер должен получать несильный. но неприятный удар током :)
В последней версии (0.4) для изменения ориентации служат две функции:
О, есть 0.4, оказывается!? Спасибо!
Чтобы не спамить лишние темы, спрошу тут. :)
Как можно подключить, если можно, данный дисплей через другие пины, а не А4 и А5?
Аппаратный I2C только на пинах А4 и А5. Единственный выход - городить программный I2C на других пинах.
Понял, печально...
Увеличение шрифта до 32х32:
Добавить в OzOLED.h:
void printChar32(char c, byte X=255, byte Y=255); void printString32(const char *String, byte X, byte Y, byte numChar=255); void setCursorXY32(byte Column, byte Row); void sendChar(const char *String, byte X, byte Y);
Добавить в OzOLED.cpp:
void OzOLED::printChar32(char C, byte X, byte Y){ if(C < 32 || C > 127) C='*'; unsigned int m = 0; unsigned char row0[8]; unsigned char row1[8]; unsigned char row2[8]; unsigned char row3[8]; for ( byte i=0; i<8; i++) { m = EnlardeByte2Word(pgm_read_byte(&BasicFont[C-32][i])); unsigned int a = 0; unsigned int b = 0; a = EnlardeByte2Word(lowByte(m)); b = EnlardeByte2Word(highByte(m)); row0[i] = lowByte(a); row1[i] = highByte(a); row2[i] = lowByte(b); row3[i] = highByte(b); } sendChar(row0, X, Y); sendChar(row1, X, Y+1); sendChar(row2, X, Y+2); sendChar(row3, X, Y+3); } void OzOLED::sendChar(const char *String, byte X, byte Y) { setCursorXY32(X, Y); for(byte i=0; i<8; i++) { sendData(String[i]); sendData(String[i]); sendData(String[i]); sendData(String[i]); } } void OzOLED::printString32(const char *String, byte X, byte Y, byte numChar){ byte count=0; while(String[count] && count<numChar){ printChar32(String[count++], X, Y); X += 2; } } void OzOLED::setCursorXY32(byte X, byte Y){ sendCommand(0x00 + (8*X & 0x0F)); sendCommand(0x10 + ((16*X>>4)&0x0F)); sendCommand(0xB0 + Y); }
Использование:
OzOled.printString32("123",1,2);
А для этого нужна инструкция в стиле "разрешенный коридор от и до. Дальше сам дурак"
Правда, ее все равно будут чить потом, когда ничего не работает. %)
Интерфейс библиотеки должен быть простой, понятный, и по возможности не допускающий неправильного использования.
В случае неправильного использования юзер должен получать несильный. но неприятный удар током :)
В последней версии (0.4) для изменения ориентации служат две функции:
О, есть 0.4, оказывается!? Спасибо!
Чтобы не спамить лишние темы, спрошу тут. :)
Как можно подключить, если можно, данный дисплей через другие пины, а не А4 и А5?
Аппаратный I2C только на пинах А4 и А5. Единственный выход - городить программный I2C на других пинах.
Аппаратный I2C только на пинах А4 и А5. Единственный выход - городить программный I2C на других пинах.
Понял, печально...
Увеличение шрифта до 32х32:
Добавить в OzOLED.h:
Добавить в OzOLED.cpp:
Использование: