Elektroda.pl
Elektroda.pl
X
Elektroda.pl
Proszę, dodaj wyjątek dla www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Projekt kontrolera OLED - Problem z odczytami temperatury przez sterownik

chodzi 13 Gru 2016 15:43 2706 6
  • #1 13 Gru 2016 15:43
    chodzi
    Poziom 8  

    Witam!

    W pierwszej kolejności projekt i krótki opis:

    https://easyeda.com/grawires/OLED242_v3-c7a6b89b2a784ce0939c7d7c177b2efd

    Schemat i płytka wykonywany jak widać w EasyEDA. Jest to projekt kontrolera do drukarki 3D pod sterownikiem MKS_Gen1.4 (bazowany na ATmega2560: http://reprap.org/mediawiki/images/0/0d/MKS_GEN-PIN.PNG ) który dodatkowo ma mieć możliwość podłączenia wyświetlacza OLED takiego oto:

    http://www.ebay.pl/itm/2-42-12864-OLED-Displa...al-FOR-Arduino-UNO-R3-51-WHITE-/181943860531?

    Teraz w czym problem i w jakiej kwestii oczekiwałbym jakiś porad.
    Sterownik wraz z kontrolerem podłączony do 12V oraz poprzez USB daje dość akuratne wskazania temperatury z termistora (jakiś chiński NTC 100k). Brak gwałtownych wahań. Natomiast po podłączeniu wyświetlacza OLED zaczynają się problemy w postaci dużych wahań temperatury. Właściwie to wahań odczytu temperatury bo sama temperatura przez to pływa ale na pewno w mniejszym stopniu. Odczyty potrafią zmieniać się w ciągu sekundy o 10-12 st C, co bez wyświetlacza nie ma miejsca.

    Zaobserwowałem również, że sygnały SDA i SCL (i2c), również mają duże wahania (ok. 0.5V, regularne). Nie wiem czy jest to skorelowane i czy nie jest to po prostu normalne. Na próbę też zamiast na 3V, podłączyłem wyświetlacz na 5V bez stabilizatora i działo się zupełnie to samo.

    Duża poprawa nastąpiła w momencie gdy podłączyłem całość zamiast z kontrolera to poprzez taki wynalazek:
    https://botland.com.pl/7988-large_default/kon...ych-dwukierunkowy-czterokanalowy-sparkfun.jpg

    Wahania są dużo mniejsze góra 1-2st. C ale wciąż są w porównaniu do odczytów bez wyświetlacza.

    Pojawia się moje pytanie, dlaczego tak się dzieję i jak wyeliminować problem. Dobrze by było bez użycia takiego konwertera poziomów bo całość chciałem mocno uprościć aby produkcja płytek PCB nie była bardzo kosztowna, miała niewiele małych elementów i do tego dało się ją polutować bez większych problemów zwykłą stacją lutowniczą.

    Jeśli będę musiał użyć takiego konwertera poziomów logicznych to dlaczego układ PCA9306 nie spełnia takiej samej funkcji? Przecież zdaje się być prawie tym samym?

    Za wszelkie wskazówki odnośnie problemu będę wdzięczny. Dodatkowo krytyka samego schematu i płytki PCB również wskazana bowiem jest to pierwszy taki mój projekt i podejrzewam, że jest tam sporo "baboli".

    Pozdrawiam!

    0 6
  • #2 13 Gru 2016 16:05
    tikka.masala
    Poziom 20  

    Zobacz oscyloskopem co się dzieje na wejściu analogowym z podłączonym ekranem i bez. Albo dodaj jakiś kondensator do masy.

    0
  • #3 13 Gru 2016 16:16
    chodzi
    Poziom 8  

    Niestety na chwilę obecną nie posiadam w swoim warsztacie oscyloskopu, postaram się jutro jakiś kupić, sprawdzę i dam znać. Nurtuje mnie jednak to, że całość podłączona poprzez konwerter poziomów napięć z jednym tylko kondensatorem 3V->gnd - 100nf mimo wszystko działa całkiem w porządku. Dodawałem również raz 2 elektrolity 100uF na lini 3V-gnd i niestety nie było żadnej różnicy. Chyba że coś innego masz na myśli?

    Pozdrawiam!

    0
  • Pomocny post
    #4 13 Gru 2016 16:21
    tikka.masala
    Poziom 20  

    Jak mierzona jest temperatura? Chodzi o wejście ADC.

    0
  • #5 13 Gru 2016 16:35
    chodzi
    Poziom 8  

    tikka.masala napisał:
    Jak mierzona jest temperatura? Chodzi o wejście ADC.


    Temperaturę mierzy termistor szklany NTC 100k. Z tego co się orientuję to na niego podawane jest napięcie 5V i sterownik najpewniej mierzy opór, a potem według tabeli ustala wartość. Przy złączu termistora w sterowniku jest również elektrolit (chyba 10uF) i rezystor pullup 4,7k.
    Nie wiem czy wyczerpałem odpowiedź ;)

    Pozdrawiam!

    0
  • #6 15 Gru 2016 17:42
    chodzi
    Poziom 8  

    Problem naprawiony.
    Jak pisałem wcześniej podpinałem kondensatory 100uF na lini 3V. Wystarczyło zrobić to przed stabilizatorem na 5V i problem znikł.
    Dziękuję za naprowadzenie na rozwiązanie.

    Pozdrawiam!

    0
  • #7 27 Kwi 2017 12:00
    chodzi
    Poziom 8  

    Witam!

    Problemu ciąg dalszy.. Poprzednie rozwiązanie poprawiło sytuację i wahania temperatur nie są już tak wysokie (10-15 st C) ale wciąż są na poziomie 2-3 stopni C.
    Zasada ta sama, przy wyłączonym wyświetlaczu temperatura jest odczytywana płynnie z wahaniami na poziomie 0.5 st C. Po włączeniu wyświetlacza zaczynają się skoki.
    Zdaje się, że przetworniczka step up na wyświetlaczu (3V->13-14V) sieje jakieś zakłócenia w całej elektronice na lini 5V.
    Co więcej linia 5V sterownika również jest wyprowadzona z przetwornicy 12V->5V. Może w tym problem? Zasłyszałem, że jeśli już muszą 2 przetwornice pracować w jednym układzie to lepiej aby robiły to synchronicznie.
    Niestety w temacie jestem laikiem i niezbyt wiem jak można by "zsynchronizować" ich pracę, lub jak odfiltrować zakłócenia.
    W załącznikach zdjęcia, samego wyświetlacza, oraz zrzut z oscyloskopu z lini 5V bez włączonego oraz z włączonym wyświetlaczem.
    Projekt kontrolera OLED - Problem z odczytami temperatury przez sterownik Projekt kontrolera OLED - Problem z odczytami temperatury przez sterownik Projekt kontrolera OLED - Problem z odczytami temperatury przez sterownik
    Ktoś coś?
    Pozdrawiam!

    EDIT:
    Jeszcze jeden zrzut lini 5V z wyświetlaczem i bez. Za nic nie jestem w stanie zlokalizować źródła zakłóceń :(
    Projekt kontrolera OLED - Problem z odczytami temperatury przez sterownik Projekt kontrolera OLED - Problem z odczytami temperatury przez sterownik

    0