• Witaj na Forum Arduino Polska! Zapraszamy do rejestracji!
  • Znajdziesz tutaj wiele informacji na temat hardware / software.
Witaj! Logowanie Rejestracja


Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
Problem z wyświetlaczem SPI ST7567A
#1
Witam,
Stawiam pierwsze kroki w programowaniu z arduino i mam problem z odpaleniem prostego programu na ekranie chińskiego, świeżo zakupionego ekranu. 
Płytka, z której korzystam to ESP32 DevKit ESP-WROOM-32, a ekran SPI ST7567A. Podpięłam je tak:
- GND - GND
- VCC - 3v3
- SCL - IO22
- SDA - IO21
- DC - IO15
- RST - RST
- CS - CMD

Trzy ostatnie piny - BL, CS-F i OUT zostawiłam wolne.
Próbuje uruchomić na płytce program (próbowałam z każdym z zakomentowanych konstruktorów):
Kod:
#include "U8g2lib.h"

//U8G2_ST7567_JLX12864_F_4W_SW_SPI u8g2(U8G2_R0, /* clock=*/ 13, /* data=*/ 11, /* cs=*/ 7, /* dc=*/ 9, /* reset=*/ 8); 
//U8G2_ST7567_JLX12864_F_4W_HW_SPI u8g2(U8G2_R0, /* cs=*/ 7, /* dc=*/ 9, /* reset=*/ 8); 

//U8G2_ST7567_OS12864_F_4W_SW_SPI u8g2(U8G2_R0, /* clock=*/ 13, /* data=*/ 11, /* cs=*/ 7, /* dc=*/ 9, /* reset=*/ 8); 
//U8G2_ST7567_OS12864_F_4W_HW_SPI u8g2(U8G2_R0, /* cs=*/ 7, /* dc=*/ 9, /* reset=*/ 8); 
//U8G2_ST7567_ENH_DG128064_F_4W_SW_SPI u8g2(U8G2_R0, /* clock=*/ 13, /* data=*/ 11, /* cs=*/ 10, /* dc=*/ 9, /* reset=*/ 8);
//U8G2_ST7567_ENH_DG128064_F_4W_HW_SPI u8g2(U8G2_R0, /* cs=*/ 10, /* dc=*/ 9, /* reset=*/ 8);
//U8G2_ST7567_ENH_DG128064I_F_4W_SW_SPI u8g2(U8G2_R0, /* clock=*/ 13, /* data=*/ 11, /* cs=*/ 10, /* dc=*/ 9, /* reset=*/ 8);
U8G2_ST7567_ENH_DG128064I_F_4W_HW_SPI u8g2(U8G2_R0, /* cs=*/ 10, /* dc=*/ 9, /* reset=*/ 8);


void setup(void) {
  u8g2.begin();
}

void loop(void) {
  u8g2.clearBuffer();                    // clear the internal memory
  u8g2.setFont(u8g2_font_ncenB08_tr);    // choose a suitable font
  u8g2.drawStr(0,10,"Hello World!");    // write something to the internal memory
  u8g2.sendBuffer();                    // transfer internal memory to the display
  delay(1000); 
}

ale ekran nic nie wyświetla. Testowałam konfiguracje samej płytki esp32 prostym programem z mruganiem diodą i działał ok. Próbowałam odpalać również inny kod (https://github.com/olikraus/u8g2/blob/ma...oWorld.ino) z konstruktorem: "U8X8_ST7567_ENH_DG128064I_4W_HW_SPI u8x8(/* cs=*/ 10, /* dc=*/ 9, /* reset=*/ 8);" i tutaj również nic nie zadziałało. Zastanawiam się co robię źle. Czy te 3 ostatnie piny są niezbędne do działania ekranu? Czy może ekran w ogóle jest źle podpięty?
   
 
Odpowiedź
#2
Nie używałem tego ekranu, ani ESP32 z ekranem w ogóle, ale nie wiem czemu podpinasz pod piny I2C (SCL SDA) skoro napisałeś, że jest to ekran SPI (MOSI MISO SCK CS).
Miło być decenianym https://buycoffee.to/kaczakat
 
Odpowiedź
#3
Mimo wszystko

- SCL - IO22
- SDA - IO21
- DC - IO15
- RST - RST
- CS - CMD

vs
U8G2_ST7567_ENH_DG128064I_F_4W_HW_SPI u8g2(U8G2_R0, /* cs=*/ 10, /* dc=*/ 9, /* reset=*/ 8);

Powinno być

- SCL - IO18
- SDA - IO19
- DC - IO9
- RST - IO8
- CS - IO10

Nie sprawdzałem ale raczej GPIO 9/8/10 nie ma wyjścia przy płytkach ESP32 DevKit ESP-WROOM-32 trzeba inne wykorzystać wolne i zmienić w programie
Arduino zostało wymyślone po to, by robić dobrze jedną prostą rzecz – migać diodą. 
 
Odpowiedź
#4
(04-06-2023, 11:59)Jarewa0606 napisał(a): Mimo wszystko

- SCL - IO22
- SDA - IO21
- DC - IO15
- RST - RST
- CS - CMD

vs
U8G2_ST7567_ENH_DG128064I_F_4W_HW_SPI u8g2(U8G2_R0, /* cs=*/ 10, /* dc=*/ 9, /* reset=*/ 8);

Powinno być

- SCL - IO18
- SDA - IO19
- DC - IO9
- RST - IO8
- CS - IO10

Nie sprawdzałem ale raczej GPIO 9/8/10 nie ma wyjścia przy płytkach ESP32 DevKit ESP-WROOM-32 trzeba inne wykorzystać wolne i zmienić w programie

Podpieram pod wolne piny IO i zmieniłam wartości konstruktora pod te piny iii zadziałało ^^ dzięki za pomoc

   
 
Odpowiedź
  


Skocz do:


Przeglądający: 1 gości