Skocz do zawartości

ESP32 (DEVKIT V1) podłączenie enkodera oraz LCD 16x2 I2C (które piny)?


Pomocna odpowiedź

9 minut temu, LeciZNamiPilot napisał:

SDA i SCL, to odpowiada pinom 21 i 22 na ESP32.

Niekoniecznie, możesz sobie w programie ustawić inne.

10 minut temu, LeciZNamiPilot napisał:

Enkoder ma ochotę na te same piny, między innymi też na 21 i 22 na ESP32. Czy można by go wrzucić pod inne piny? Które konkretnie?

Np.  19 i 18.

Tutaj masz ładna rozpiskę: https://randomnerdtutorials.com/esp32-pinout-reference-gpios/

 

  • Lubię! 2

Trochę nie rozumiem w czym problem...wyświetlacz jest i2c więc musisz go podpiąć pod i2c, ale enkoder nie działa na i2c więc podpinasz pod dowolne piny które mogą działać jako wejścia, jakąś bibliotekę też napewno znajdziesz która będzie się opierać o przerwania

1 godzinę temu, LeciZNamiPilot napisał:

wyświetlacz wymaga SDA i SCL (a tylko jedna jest taka para)

Są dwie, ale to akurat najmniej ważne. Ważne jest to, że możesz przypisać prawie dowolną parę pinów do SDA/SCL. Tutaj masz to wyjaśnione: https://randomnerdtutorials.com/esp32-i2c-communication-arduino-ide/#3

Dla przykładu: Lolin32 Lite w ogóle nie ma pinu 21.

1 godzinę temu, LeciZNamiPilot napisał:

Rozumiem, że enkoder może korzystać z niemal dowolnych pinów?

Tak

  • Lubię! 1
(edytowany)

Jeśłi chodzi o enkoder to mój gubi sporo kroków, pojedynczych impulsów... Jak sobie z tym radzicie?

Znalazłem ostrzeżenie:

If you use a raw rotary encoder, not a breakout module, you must add pull-up resistors to the 3 logic pins. This is because these resistors must distinguish between the different logic levels as with the standard push-button circuit.

ze strony:

https://www.upesy.com/blogs/tutorials/rotary-encoder-esp32-with-arduino-code#

 

Jak to rozumiecie?

 

Edytowano przez LeciZNamiPilot
33 minuty temu, farmaceuta napisał:

tam napewno jest to zrobione i o nic więcej nie będziesz się musiał martwić...

Dokładnie, tylko trzeba przeczytać dokumentację, bo defaultowo jest o ile pamiętam pulldown.

Fragment kodu mojej metrówki:

ESP32Encoder encoder;

#define PIN_ENCA 18
#define PIN_ENCB 5

void setup()
{
    ESP32Encoder::useInternalWeakPullResistors=UP;
    encoder.attachFullQuad(PIN_ENCA, PIN_ENCB);
    encoder.clearCount();
}

Enkoder podłączony do pinów 18 i 5 (bo tak było wygodnie).

  • Lubię! 1
(edytowany)
Dnia 29.04.2023 o 22:04, ethanak napisał:
#define PIN_ENCA 18
#define PIN_ENCB 5

Za co one odpowiadają? Które to CLK, które DT?

edit:

OK:

encoder.attachHalfQuad(DT, CLK);

ENCA to DT, a ENCB to CLK.

 

Edytowano przez LeciZNamiPilot
  • 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...