Skocz do zawartości

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


LeciZNamiPilot

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
Link do komentarza
Share on other sites

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

Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

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
Link do komentarza
Share on other sites

(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
Link do komentarza
Share on other sites

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
Link do komentarza
Share on other sites

(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
Link do komentarza
Share on other sites

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...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.