0,96" OLED využití DI místo AI?

Uživatelský avatar
gilhad
Příspěvky: 778
Registrován: 07 bře 2018, 11:22
Reputation: 0

Re: 0,96" OLED využití DI místo AI?

Příspěvek od gilhad » 28 pro 2018, 00:43

Elementarni vysvetleni - podivej se do te knihovny Adafruit_SSD1306 - pouziva wire->write pro vystup, zatimco ta knihovna SoftI2CMaster pro podobnou operaci pouziva i2c_write , takze Adafruit ti vesele jeda na originalnim HW (analogovem) Wire, zatimco novy softI2C proste lezi ladem a nic ho nepouziva.

Slozite reseni - bud prepis knihovnu Adafruit na pouzivani SoftI2C, nebo se podivej co dela (pripadne konzultuj datasheet SSD1306) a napis si vlastni knihovnu na praci s timto chipem (vyhoda - pochopis, co se ti tam vlastne deje a proc, nevyhoda - da to praci a budes se muset ledacos naucit)

Alternativni reseni - zkus googlit ruzne kombinace SSD1306 SoftI2C bit banging I2C a doufej, ze nekde narazis na knihovnu, ktera ti bude vyhovovat. (vyhoda - nemusis nic umet, nevyhoda - musis doufat, ze to uz nekdo napsal, ty na to narazis a pouzijes to nahodou zpusobem, ktery bude fungovat)


(Osobne bych pouzi SoftI2C, z Adafruit a datasheetu vytahnul zakladni prikazy a napsal si knihovnu svoji. S prislusnym HW (pro testovani) a trochou stesti bych to treba tak za tyden mel pouzitelne pro vlastni ucely. Varovani - mam tendenci na Arduino hledet spis jako na Atmega328P s nejakyma neprilis povedenyma knihovnama v zakladu pro prvni rozjezd, nez se to clovek nauci skutecne pouzivat)

Batata
Příspěvky: 38
Registrován: 05 kvě 2020, 08:14
Reputation: 0
Kontaktovat uživatele:

Re: 0,96" OLED využití DI místo AI?

Příspěvek od Batata » 20 pro 2021, 11:41

Myslím si, že knihovna Adafruit_SSD1306 umožňuje do konstruktoru zadat ukazatel na objekt TwoWire, tedy například ukazatel na objekt SoftWire. Kód by vypadal asi takto:

Kód: Vybrat vše

#include <SoftWire.h>
#include <Adafruit_SSD1306.h>
SoftWire softwire(2,3);
Adafruit_SSD1306 display(128,64,&softwire);
void setup() {
  display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
  display.clearDisplay();
  display.print("Ahoj svete");
  display.display();

}

void loop() {

}

Odpovědět

Kdo je online

Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 12 hostů