Skocz do zawartości

Pomocna odpowiedź

Napisano (edytowany)

Witam. Na wstępie zaznaczę, że jestem praktycznie zielony w tym temacie. Zakupiłem dzisiaj ESP32 wraz z ekranem oled 1.3’ i breadboardem. ESP podłączyłem do komputera, programu Arduino IDE i wraz z AI chciałem potestować czy mogę coś wyświetlić na tym ekranie. Po na prawdę wielu nieudanych próbach postanowiłem tu przyjść. Podłączone wszystko miałem jak na zdjęciu. GND - GND, VCC - 3V3, SDA - D6, SCL - D7. Wykonywaliśmy różne testy. Na sprawność samego ESP i ekranu. Ekran nie daje jakichkolwiek oznak życia. Wszystkie kody się „udawały”. Nie wyskakiwały żadne błędy a mimo to ekran nic nie wyświetlał. Jako, że AI jest najzwyczajniej świecie głupie jeśli chodzi o weryfikację zdjęć to muszę się upewnić czy na pewno wszystko dobrze podłączyłem. Może sam ekran jest uszkodzony fabrycznie i muszę zamówić nowy? Nie wiem. Wrzucę przykładowy kod, który wpisywaliśmy. Wszystkie biblioteki, które miałem ściągnięte: Adafruit GFX, SSD1306, SH110X. No i dwie najważniejsze rzeczy to: OLED niebieski graficzny 1,3'' 128x64px I2C v2 i ESP32-S3.

#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SH110X.h>

Adafruit_SH1106G display = Adafruit_SH1106G(128, 64, &Wire, -1);

void setup() {

  Serial.begin(115200);

  Wire.begin(6, 7);

  delay(1000);

  Serial.println("START");

  if(!display.begin(0x3C, true)) {

    Serial.println("FAIL");

    while(true);
  }

  Serial.println("OK");

  display.clearDisplay();

  display.fillRect(0, 0, 128, 64, SH110X_WHITE);

  display.display();
}

void loop() {

}

Z góry dziękuję za odpowiedzi. Proszę zrozumieć też to, że dopiero próbuje się uczyć.

IMG_9479.png

Edytowano przez Owocek_Tobias

Cóż, patrząc na zdjęcie widzę nie przylutowane do płytki złącza goldpin (czyli to czym łączysz ESP do płytki stykowej). Te dwa paski złączy które dostałeś z ESP nie wystarczy tylko włożyć w płytkę i nałożyć na nie ESP, ale trzeba je do ESP przylutować. Przykładowo, masz tu inną płytkę, która jest sprzedawana z przylutowanymi złączami goldpin, zwróć uwagę jak to wygląda. Powinieneś albo przylutować sobie te złącza do swojego ESP, lub jeśli nie umiesz to kupić takie z fabrycznie przylutowanymi (w opisie produktu powinna być o tym informacja). Lub poproś kogoś kto umie lutować, jeśli znasz.

Oprócz tego, jeśli mogę sobie pozwolić na udzielenie rady, moim zdaniem lepiej uczyć się programowania bez AI. Jest to niewątpliwie ogromnie przydatne narzędzie z którego sam korzystam, jednak uczyłem się bez niego (bo go nie było). Teraz kiedy zdarza mi się uczyć innych programowania widzę że AI wyręcza ich w podstawowych rzeczach, które powinni umieć sami. Więc sądzę że lepiej podstawy ogarnąć samodzielnie, i potem się nim wspomagać przy pracy (nie przy nauce).

Uruchom i2cscanner tylko ustaw prawidłowe scl/sda - zobaczysz czy w ogóle widzi wyświetlacz czy coś nie tak z drutami

  • Lubię! 1

Ja wypróbowałbym też piny 4 i 5, bo to one są zaznaczone na pinoutach w internecie jako SCL i SDA. Tak jak wspomniał @ethanak użyj też np. takiego kodu:
 

#include <Wire.h>

void setup() {
  Wire.begin();
  Wire.begin(6, 7);
  Serial.begin(115200);
  while (!Serial); // Czeka na otwarcie monitora portu szeregowego
  Serial.println("\nI2C Scanner startuje...");
}

void loop() {
  byte error, address;
  int liczbaUrządzeń = 0;

  Serial.println("Skanuję...");

  for (address = 1; address < 127; address++) {
    Wire.beginTransmission(address);
    error = Wire.endTransmission();

    if (error == 0) {
      Serial.print("Znaleziono urządzenie I2C na adresie 0x");
      if (address < 16) Serial.print("0");
      Serial.print(address, HEX);
      Serial.println();
      liczbaUrządzeń++;
    }
  }

  if (liczbaUrządzeń == 0) {
    Serial.println("Nie znaleziono żadnych urządzeń I2C.");
  } else {
    Serial.println("Skanowanie zakończone.");
  }

  delay(5000); // Czekaj 5 sekund przed kolejnym skanowaniem
}

W ten sposób sprawdzisz czy płytka wykrywa wyświetlacz na magistrali I2c.

Dobra, zrobiłem lekką korektę w tym wszystkim z pomocą waszych porad i zadziałało. Po zuploadowaniu tego kodu ekran wyświetlił "HELLO" 😄
DZIĘKUJĘ Z CAŁEGO SERCA ZA POMOC ❤️

#include <Wire.h>
#include <U8g2lib.h>

U8G2_SH1106_128X64_NONAME_F_HW_I2C
u8g2(U8G2_R0, U8X8_PIN_NONE);

void setup() {

  Wire.begin(6, 7);

  u8g2.begin();

  u8g2.clearBuffer();

  u8g2.setFont(u8g2_font_ncenB08_tr);

  u8g2.drawStr(10, 30, "HELLO");

  u8g2.sendBuffer();
}

void loop() {

}

 

  • Lubię! 1

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...