![]() |
|
Wyświetlacz OLED 128x32 i GY-521 MPU-6050 - Wersja do druku +- Arduino Polska Forum (https://forum.arduinopolska.pl) +-- Dział: Korzystanie z Arduino (https://forum.arduinopolska.pl/dzial-korzystanie-z-arduino) +--- Dział: Programowanie w Arduino (https://forum.arduinopolska.pl/dzial-programowanie-w-arduino) +--- Wątek: Wyświetlacz OLED 128x32 i GY-521 MPU-6050 (/watek-wy%C5%9Bwietlacz-oled-128x32-i-gy-521-mpu-6050) |
Wyświetlacz OLED 128x32 i GY-521 MPU-6050 - przeryba - 01-01-2025 Witam, Stawiam dopiero pierwsze kroki w Arduino i napotkałem na pewne problemy ze współpracą dwóch urządzeń po I2C. Podłączyłem po I2C wyświetlacz OLED 128x32 i żyroskop GY-521 MPU-6050. Każde z urządzeń osobno działa prawidłowo pod warunkiem, że są dwa niezależne programy, tzn.: 1) Z wykorzystaniem biblioteki Adafruit_SSD1306.h Próby wyświetlania tekstów na wyświetlaczu OLED są prawidłowe. 2) Kod p. Korneliusza Jarzębskiego - MPU6050_gyro_pitch_roll_yaw - żyroskop działa i wyświetla wyniki po COM. Próbowałem połączyć oba programy, aby wyniki z żyroskopu wyświetlały się na OLED, ale niestety nie działa, wyświetlacz jest ciemny i nic nie wyświetla. Przypuszczam, że problemem są adresy urządzeń. Ustaliłem, że OLED ma adres: 0x3C, a żyroskop 0x68. Niestety nie wiem, jak tą informację wykorzystać. Używam Arduino Nano. Poniżej kod, który testowałem. Byłbym wdzięczny za wskazówki jak zmodyfikować kod? Z góry dziękuję i pozdrawiam w Nowym Roku. Kod: #include <SPI.h>RE: Wyświetlacz OLED 128x32 i GY-521 MPU-6050 - kaczakat - 02-01-2025 Jak adresy są różne to problem jest gdzie indziej. Używasz millis by określić czas delay- majstersztyk. Najprościej to poszukać innej biblioteki, można też ustawić szybkość I2C na 100kHz, ekran wymaga dużej szybkości i pewnie Adafruit ustawia na 400, możesz też zamienić kolejność inicjacji tych bibliotek, jak urządzenie pracuje na 400 to i na 100 poleci, tylko wolniej, ale jak dla drugiego limit jest 100 to może być problem. Jak wyświetlasz dane na Oled to nic nie przeszkadza by dalej je wypluwać na UART, będziesz wiedział czy program stoi, czy tylko nie widzisz efektów jego działania na oled. Sprawdź też, czy jak masz podłączone wszystko to poszczególne programy działają, może podłączając dwa urządzenia już pojawia się problem. Magistrala I2C wymaga podciągnięcia rezystorami do Vcc, arduinowe maduły mają wbudowane rezysotory, jak będzie ich więcej włączonych równolegle to też w końcu będzie źle. |