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

3-funkcyjny wyświetlacz do motocykla na Arduino

jaclew 06 Cze 2015 23:48 14475 36
  • Początkiem projektu była potrzeba posiadania w moim leciwym motocyklu... czasomierza.
    Podczas jazdy bowiem nie orientowałem się o czasie, a jego odczytanie z zegarka czy telefonu dla kierującego bywa kłopotliwe.
    Z czasem gdy już miałem pomysł jak to wykonać, powstała myśl aby do zegarka dodać inne funkcjonalności. I tak chciałbym tu przedstawić mój gotowy i działający projekt 3-funkcyjnego urządzenia, które może być przydatne nie tylko w motocyklu.
    Mamy więc:
    - zegarek, który pokazuje datę i bieżący czas z sekundami. Data jest zmieniana automatycznie z uwzględnieniem liczby dni miesiąca oraz lat przestępnych. Czas można zmieniać przyciskami. Wyłączenie zasilania nie zeruje zegara, dane są pamiętane (podtrzymanie bateryjne na około 6 lat)

    - termometr, który pokazuje temperaturę oleju silnikowego, bo tak skonstruowałem czujnik. Mierzy w zakresie 0 ... 100 stopni C. Przekroczenie progu 100 C powoduje, że na wyświetlaczu pojawia się komunikat "GORACY OLEJ" a podświetlenie LCD cyklicznie zmienia jasność (efekt migotania) przez co informacja jest łatwiej zauważalna

    - woltomierz, wyświetla napięcie w instalacji motocyklowej. Mierzy w zakresie 7...20 V. Obniżenie napięcia poniżej ustawionego progu powoduje, iż na wyświetlaczu na 2 sekundy pojawia się komunikat "SPRAWDZ BATERIE", a po nim wartość napięcia na czas 1 sekundy. W tym czasie podświetlenie LCD cyklicznie zmienia jasność (efekt migotania) przez co informacja jest łatwiej zauważalna (analogicznie jak w alarmie termometru). Próg alarmu napięcia można ustawić przyciskami od 10 V do 12 V
    Ważne! w czasie wyświetlania tego alarmu także istnieje możliwość zmiany jego progu. Ustawiona wartość progu jest zachowywana w pamięci urządzenia.

    Przy pomiarach napięcia i temperatury obok wartości cyfrowej pokazywany jest tzw. bar-graf czyli graficzny pasek, który obrazuje przybliżoną wartość mierzoną w formie analogowej (odpowiednik wskazówki). Ułatwia to szybszą orientację w pomiarze oraz o tendencji jego zmian. Bar-graf ma rozdzielczość 1/40 skali.

    Podświetlenie LCD jest automatyczne, tj. dostosowuje się do jasności otoczenia. Dzięki czemu kierowca nie musi skupiać uwagi na czytelności komunikatów w zmieniających się warunkach dnia. Są cztery zakresy czułości, przy których wyświetlacz jest podświetlany inaczej (określenia warunków otoczenia są umowne):
    - pełne słońce: podświetlenie wyłączone
    - dzień bez słońca: podświetlenie 30%
    - zmierzch: podświetlenie 100%
    - noc: podświetlenie 50% (zredukowana wartość ponieważ zbyt jasny wyświetlacz drażni wzrok)

    Na panelu czołowym obok wyświetlacza LCD znajduje się czujnik światła oraz przycisk do zmiany wyświetlanych danych w sekwencji pętli: zegar -> woltomierz -> termometr -> zegar -> ...

    Od spodu znajdują się trzy przyciski służące do zmian nastaw: czasu oraz progu alarmu niskiego napięcia. Przyciski działają kontekstowo, tzn. wejście do ustawień realizowane jednym z przycisków umożliwia zmianę tych danych, przy których przycisk został naciśnięty. Pozostałe dwa przyciski służą odpowiednio do zmiany godzin/minut oraz zmiany w górę/w dół progu niskiego napięcia z krokiem 0,1 V


    Czujnik temperatury jest cyfrowy więc nie ma potrzeby kalibracji. Jest to trzy-końcówkowy układ DS18B20. Umieściłem go w nawierconym kanale w śrubie spustowej oleju. A ponieważ śruba ta ma kontakt elektryczny z masą motocykla, tak zaprojektowałem i wykonałem połączenia czujnika aby dwie jego końcówki miały styk ze śrubą. Wówczas trzecia końcówka będzie jedyną, która łączy go z urządzeniem (wystarczy wtedy do połączenia tylko jeden przewód)
    Znakomicie ułatwia to ułożenie w instalacji motocykla i upraszcza montaż i pracę.
    Taki sposób zasilania czujnika DS18B20 z linii danych nosi nazwę "zasilania pasożytniczego" , a jedyną wadą jest ograniczenie pomiaru do 100 stopni C.


    Bazą projektu jest moduł Arduino Pro-Mini, prezentacja danych na wyświetlaczu LCD 8x2, a wszystko zmontowane na tzw. kanapkę aby zminimalizować powierzchnię zabudowy.
    Druk jednostronny.
    Wymiary płytki 70x30 mm

    Schemat:

    3-funkcyjny wyświetlacz do motocykla na Arduino

    Kilka zdjęć montażowych:

    3-funkcyjny wyświetlacz do motocykla na Arduino 3-funkcyjny wyświetlacz do motocykla na Arduino 3-funkcyjny wyświetlacz do motocykla na Arduino 3-funkcyjny wyświetlacz do motocykla na Arduino 3-funkcyjny wyświetlacz do motocykla na Arduino

    3-funkcyjny wyświetlacz do motocykla na Arduino 3-funkcyjny wyświetlacz do motocykla na Arduino 3-funkcyjny wyświetlacz do motocykla na Arduino 3-funkcyjny wyświetlacz do motocykla na Arduino 3-funkcyjny wyświetlacz do motocykla na Arduino

    Filmik z działania na razie na biurku:


    Link

    Fajne! Ranking DIY
    Potrafisz napisać podobny artykuł? Wyślij do mnie a otrzymasz kartę SD 64GB.
    O autorze
    jaclew
    Poziom 17  
    Offline 
    jaclew napisał 184 postów o ocenie 195, pomógł 23 razy. Mieszka w mieście Rzeszów. Jest z nami od 2011 roku.
  • PCBway
  • #2
    razorxx100
    Poziom 11  
    Calkiem fajny projekt.
    Warto pomyslec o dodaniu;
    -dioda ktora miga kiedy telefon dzwoni,
    -Przypominanie o wlaczeniu swiatel.
  • #3
    kundzios
    Poziom 19  
    Projekt ma dobrą ideę, ale dla mnie sporo za duże.
    W celu ograniczenia wielkości możesz usunąć moduł Arduino i wstawić procesor bezpośrednio, całość będzie sporo niższa. Przewody zasilania możesz przylutować bezpośrednio bez złącz śrubowych, a złącza zamontować na końcu przewodów (ale już nie śrubowe). Według mnie bateria także jest zbędna, w samochodach stosuje się dwa przewody zasilające jeden bezpośrednio z akumulatora tylko do podtrzymania RTC, a drugi po kluczyku do reszty. Akumulatora nie odłącza się tak często aby stanowiło to problem.
    Oczywiście można iść dalej i zastosować dużo cieńszy wyświetlacz (ten jest stosunkowo gruby).
    Zakres pomiarowy temperatury do XT600 jest odpowiedni ale do motocykli z chłodzeniem powietrzem lub olejem już nie, w nich zakres typowej pracy jest powyżej 100*C.
    Zastosowałeś obudowę wodoszczelną dobre rozwiązanie na motocykl, ale ten przycisk nie jest wodoodporny, może przez niego przeciekać.
    Jako dodatkową funkcję możesz dodać wyświetlanie samej godziny na postoju (bez podświetlenia wyświetlacz ten pobiera znacznie mniejszy prąd), ale musisz postarać się, aby całość pobierała max kilkanaście mA na "postoju".
    Troszkę popracujesz nad projektem i będzie sporo lepiej :) .

    Pomysł razorxx100 o kontrolce dzwoniącego telefonu jest dobry, sam o takim czymś myślę, bo często nie słychać/nie czuć wibracji podczas jazdy :) .
  • PCBway
  • #4
    andrzej55
    Poziom 35  
    Kolego jaclew co to za model obudowy i gdzie ją nabyłeś?
    Przycisk nie wygląda na wodoszczelny może podczas eksploatacji być źródłem podtopień. Może lepszym pomysłem byłoby przeniesienie go na kierownice blisko manetek. Czujnik oleju w postaci DS18B20 to zły pomysł i lepiej zastosuj go jako pomiar temp. otoczenia. Tutaj lepiej sprawdzi się termopara K lub platynowy Pt-100,Pt-1000. Olej może nagrzać się nawet do 160'C.
    Jak widzę Arduino podłączyłeś przez podstawkę -przy takich wibracjach lepiej przylutować na stałe.
    Wyświetlacz trochę niewiele informacji wyświetla na raz -nie myślałeś o jakimś graficznym OLED? Napisz jak ten sprawdza się w realnych warunkach.
    Będę niedługo coś takiego składał, ale dołożę pomiar prędkości i obrotów silnika na niebieskim 0,96' OLED, wskazanie nr. biegu na osobnym dużym wyświetlaczu siedmio-segmentowym.
  • #5
    LA72
    Poziom 40  
    Warto zmienić zakres wyświetlania bargrafu na 10-15 V. Będziesz miał wtedy wartość prawidłową prawie na środku.
  • #6
    dondu
    Moderator Mikrokontrolery Projektowanie
    Uwaga dot. wibracji vs złącze niekoniecznie musi być aż tak istotna, bo funkcjonalność układu nie jest funkcjonalnością krytyczną. Jednak lutowanie na pewno byłoby wskazane w szczególności w wersji finalnej.
  • #8
    jaclew
    Poziom 17  
    razorxx100 napisał:
    Warto pomyslec o dodaniu;
    -dioda ktora miga kiedy telefon dzwoni,
    -Przypominanie o wlaczeniu swiatel.

    Fakt, przydatne funkcje, pomyślę nad ich wprowadzeniem.

    kundzios napisał:
    ale ten przycisk nie jest wodoodporny, może przez niego przeciekać.
    Jako dodatkową funkcję możesz dodać wyświetlanie samej godziny na postoju (bez podświetlenia wyświetlacz ten pobiera znacznie mniejszy prąd), ale musisz postarać się, aby całość pobierała max kilkanaście mA na "postoju".

    nie znalazłem odpowiedniego rozmiarem przycisku wodoszczelnego. Ten, który jest
    będzie miał założoną silikonową (cienka i elastyczną) nakładkę, która zapewni optymalną bryzgoszczelność.
    Co do wyświetlania samej godziny na postoju bez podświetlania - nie widzę sensu. Przecież gdy jest jasno to podświetlanie jest nieaktywne, a gdy jest już ciemniej to i tak nie widać byłoby danych na LCD więc podświetlenie wskazane. Układ pobiera bez podświetlenia około 15 mA, a z max podświetleniem 25 mA. Zasilanie jest "po stacyjce"

    LA72 napisał:
    Warto zmienić zakres wyświetlania bargrafu na 10-15 V.

    tak zrobię. Dzięki za sugestię :)

    andrzej55 napisał:
    Jak widzę Arduino podłączyłeś przez podstawkę -przy takich wibracjach lepiej przylutować na stałe.
    Wyświetlacz trochę niewiele informacji wyświetla na raz -nie myślałeś o jakimś graficznym OLED?

    Projekt ten to wersja "beta" taka bardziej edukacyjna stąd modułowy sposób montażu, łatwy do wielokrotnego składania i dobrej diagnostyki. Poza tym są to złącza precyzyjne goldpin i nie wydaje się, że łatwo poddadzą się wibracjom.
    Założeniem było zmieszczenie tego w takiej a nie innej obudowie, krytyczne były wymiary powierzchni, mniej wysokości. Nad OLED myślę w kolejnej wersji wskaźnika, która zastąpi prędkościomierz, obrotomierz i drogomierz.

    andrzej55 napisał:
    Olej może nagrzać się nawet do 160'C.

    wybrałem układ czujnika DS18B20 aby nie trzeba było go kalibrować. Przekonam się dzięki temu jaka jest realna temperatura oleju opływającego śrubę spustową. Być może zakres 100 C wystarczy do monitorowania tendencji nagrzewania się silnika. Gdy będzie za mały, zmienię koncepcję czujnika na np. PT100. Na razie do celów testowych jest to DS18B20...

    Seba_smd napisał:
    Co to za model obudowy i gdzie ją nabyłeś?
    andrzej55 napisał:
    co to za model obudowy i gdzie ją nabyłeś?

    www.elmag.net.pl
    obudowa GAINTA - G 200CMF
  • #9
    dondu
    Moderator Mikrokontrolery Projektowanie
    jaclew napisał:
    Nad OLED myślę w kolejnej wersji wskaźnika, która zastąpi prędkościomierz, obrotomierz i drogomierz.

    Tylko nie przesadź, byś w trakcie jazdy nie zagapił się na swoje dzieło. Generalnie wraz ze wzrostem szybkości na wyświetlaczu powinny pojawiać się tylko duże znaki całkowicie niezbędnych informacji.
  • #10
    DEDMAN
    Poziom 14  
    www.elmag.net.pl popraw linka bo brakło "L"
    Temp oleju to za nisko normalna to 90-100 w zależności od moto do 120 powinno być
    110 przy ciśnięciu to normalka a sytuacja upał plus korek co jest teraz normalne
    a powietrze .....
    Jeśli można opcja do wyswietlacza ustawienie 2 parametrów jednocześcnie
    np temp i czas itp
    przycisk to może być wandaloodporny z domofonu IP66 jak znajdę model to podrzucę
  • #11
    jaclew
    Poziom 17  
    dondu napisał:
    wraz ze wzrostem szybkości na wyświetlaczu powinny pojawiać się tylko duże znaki całkowicie niezbędnych informacji.


    Pełna zgoda... Dlatego też wodotryski mnie nie interesują, wskaźnik ma mieć niezbędne informacje, których mi brakuje, a mogą prognozować stan maszyny, gdy np. napięcie baterii często słabnie. No i w moim moto nie ma łatwej kontroli poziomu oleju, myślę że monitorowanie jego temperatury chociaż w jakimś stopniu pomoże ustrzec się sytuacji krytycznej.
    Testy realne lada dzień...

    DEDMAN napisał:
    wandaloodporny z domofonu IP66 jak znajdę model to podrzucę


    poproszę w takim razie o typ tego przycisku.
  • #12
    chaka
    VIP Zasłużony dla elektroda
    Heh, właśnie opracowywałem identyczny projekt, jednak zamiast LCD wybrałem OLED bo jest bardziej czytelny i mniejszy od LCD. Prace na razie stanęły bo zmieniłem motocykl na taki który ma zegarek, nie ma problemu z akumulatorem a jedyne co by się przydało to termometr.
  • #13
    Trabi
    Poziom 36  
    razorxx100 napisał:
    -dioda ktora miga kiedy telefon dzwoni,

    Bez sensu. Mam takie fabryczne badziewie u siebie i świeci jak mu się chce. Czasami świeci jak gość obok w aucie rozmawia :D . A jadąc w mieście, świeci prawie cały czas.

    A projekt fajny i pewnie będzie użyteczny. Zwłaszcza temp. oleju.
  • #14
    kreth
    Poziom 11  
    Popieram przedmówców, wyświetlacz graficzny OLED jest czytelniejszy (i szybszy). Tutaj prosty przykład (prototyp stołowego zegarka :P) - ekran 1.3" z Chin:

    3-funkcyjny wyświetlacz do motocykla na Arduino

    Jedynym problemem mogłaby być jasność (te wyświetlacze nie mają regulacji), ewentualnie zaprojektować "ażurową" czcionkę :P ale to już więcej roboty.

    Arduino bym w wersji finalnej wpakował w procesor i wlutował, najlepiej od razu SMD, całość byłaby płaska jak zeszyt.

    Nie myślałeś nad wycięciem obudowy z aluminium?
  • #15
    kundzios
    Poziom 19  
    Według mnie najlepsze wyświetlacze, które są czytelne w słońcu, to monochromatyczne. Kolor w tym zastosowaniu jest niepotrzebny. Czemu wyświetlacze w licznikach motocykli nie są kolorowe? Bo w takich nic nie widać jak świeci słońce. Ja bym proponował wyświetlacz z Nokii 3310, chociaż z nimi już może być problem, kiedyś bawiłem się takim i prąd podczas pracy jest na prawdę znikomy, a czytelność duża (jak zastosujemy odpowiednią czcionkę).
  • #16
    jaclew
    Poziom 17  
    Trabi napisał:
    Mam takie fabryczne badziewie u siebie i świeci jak mu się chce. Czasami świeci jak gość obok w aucie rozmawia


    może to sprawa czułości i selektywności. Gdyby wykonać antenki kierunowe w stronę kierującego moto to mogłoby to pomóc. Domyślam się, że w tym fabrycznym "badziewiu" antenki są w formie albo zwykłego drutu albo na PCB.

    kreth napisał:
    wyświetlacz graficzny OLED jest czytelniejszy (i szybszy)
    kreth napisał:
    Nie myślałeś nad wycięciem obudowy z aluminium?


    OLED ma dobry kontrast to fakt, nie wiem jak natomiast z jego jaskrawością czy w nocy może "razić" kierowcę (nie ma jak piszesz, regulacji świecenia)
    Nad aluminium nie myślałem, miałem już bowiem hermetyczną obudowę i pod nią chiałem zmieścić układ.
    Poza tym to dodatkowe koszty. Podsumowując wszystko - wydałem około 70 zł.

    kreth napisał:
    Arduino bym w wersji finalnej wpakował w procesor i wlutował, najlepiej od razu SMD, całość byłaby płaska jak zeszyt.

    OK, tylko po co skoro obudowa była już pewna o takich a nie innych rozmiarach. Gotowe Arduino ma tylko tą wadę, że jest wysokie, powierzchni zajmie podobnie jak gdyby zrobić na osobnej Atmedze z elementami wokół.

    kundzios napisał:
    Ja bym proponował wyświetlacz z Nokii 3310

    to jest temat do rozważenia, widzę na YT filmiki z LCD od Nokii i wygląda to całkiem fajnie.
    Problem do rozwiązania przy tym to zasilanie - potrzeba będzie dostosować do 3,3V...
  • #17
    karolek0155
    Poziom 6  
    Mam pytanie. Jak oprogramowales ten bargraf? To jest zwykły wyświetlacz alfanumeryczny? Pisałeś w c czy może ArduinoIDE?
  • #18
    jaclew
    Poziom 17  
    karolek0155 napisał:
    Mam pytanie. Jak oprogramowales ten bargraf? To jest zwykły wyświetlacz alfanumeryczny? Pisałeś w c czy może ArduinoIDE?


    LCD jest alfanumeryczny za 15 zł. Program pisałem w Arduino IDE.
    Bargraf to zdefiniowane 6 znaków - od pustego do całkowice zapełnionego (bo szerokość znaku to 5 pixeli) Zapełniane znaków będzie polegało na tworzeniu coraz grubszej pionowej kreski od początkowego piksela do ostatniego.
    Reszta to już działanie warunków if i pętli for.
  • #19
    v-cu
    Poziom 11  
    Też sobie jakiś czas temu zrobiłem taki projekcjik do mojego motoroweru. Programowałem także w arduino.
    Mam już to około 2msc czasu i mogę powiedzieć to i owo.
    Mój jest na wyświetlaczu 16x2 (kiedyś właśnie na OLED 0.96" ale to nie wypaliło- napiszę niżej dlaczego)
    Wygląda to tak:
    3-funkcyjny wyświetlacz do motocykla na Arduino
    3-funkcyjny wyświetlacz do motocykla na Arduino 3-funkcyjny wyświetlacz do motocykla na Arduino
    No i jak narazie co mogę powiedzieć:
    -DS1307 nie nadaję się niestety, po 2tygodniach śpieszy się już o 15min! Zaprojektowałem już płytkę pod DS3231 tylko czekam aż mi przyjdzie z ebaya i będę testował.
    -widoczność na tym wyświetlaczu LCD jest naprawdę dobra
    - przydaję się niesamowicie :)
    Jeszcze przed wyświetlaczem LCD 16x2 robiłem na malutkim wyświetlaczu OLED.
    3-funkcyjny wyświetlacz do motocykla na Arduino
    Ale niestety ten wyświetlacz się nie nadaje:
    - jak przyświeci słońce kompletnie na nim nic nie widać!
    - trzeba się było przybliżać żeby w ogóle coś na nim zobaczyć
    - i najgorsze to to że wyświetlacz sam od siebie padał- po 2 tygodniach po prostu przestawał działać. Wymieniałem 2 razy, ale w końcu stwierdziłem że to się nie opłaca.

    Według mnie, przycisk to chyba kiepski pomysł. Bo jak pojedziesz szybko to nie będziesz co chwile klikał żeby zobaczyć napięcie czy godzinę.. lepiej mieć wszystko na jednym wyświetlaczu.

    Pozdrawiam!
  • #20
    jaclew
    Poziom 17  
    v-cu napisał:
    -DS1307 nie nadaję się niestety, po 2tygodniach śpieszy się już o 15min!


    mój tez sie nieco spieszy - jakąś minutę na dwa dni. Kombinowałem z kwarcem bo było dużo gorzej. Może też wypróbuj kilka kwarców aż trafisz na odpowiedni. Ten element się starzeje i nawet lepszy DS3231 może nie rozwiązać problemu. Ale ciekawy jestem efektów jego zastosowania w Twoim projekcie...

    Korekcję czasu zrobiłeś tylko przez program? To trochę uciążliwe chociaż oszczędza miejsca.

    OLED ten 0.96" miałem kilka dni temu w ręku no i wrażenie słabe. Bardzo mały jednak.
    Niby kontrast dobry a w słońcu jakoś nieczytelny, no może dlatego że to maleństwo.
    Gdyby tak dorwać większy powiedzmy 2" byłoby lepiej. To z kolei zwiększy koszt.
    Raczej skupię uwagę na LCD Nokii 1,5" (np. z 5110). Sprawdzony w setkach projektów no i tani.

    v-cu napisał:
    Według mnie, przycisk to chyba kiepski pomysł.

    nie zgodzę się z tym. Przycisk ten nie jest po to aby nim się "bawić" w czasie jazdy, ale po to aby od czasu do czasu z ciekawości przekonac się jakie są mierzone parametry. Po co "co chwile" klikać jak piszesz? To zbędne, przecież gdy wartość osiągnie próg alarmowy ta automatycznie ostrzeżenie samo pojawi się na LCD. Nie ma mowy o przegapieniu tego alarmu więc klikanie "co chwilę" nie ma sensu.

    Mała rada: pomiar napięcia i temperatury z dokładnością 1/100 jest na wyrost.
    Do napięcia wystarczy 1/10, a temperaturę do jednostek ogranicz.

    LCD 16x2 robi dość duży gabarytowo projekt. Zmieściłeś wszystkie dane na jednym ekranie dzięki temu to fakt. Ale czy podczas jazdy naprawdę koniecznie potrzebujesz obserwować napięcie baterii czy temperaturę?

    Jak wygląda obudowa? Jest szczelna?
    I zapodaj schemat urządzenia.
  • #21
    v-cu
    Poziom 11  
    DS3231 nie potrzebuje kwarcu i podobno się śpieszy tylko 1 minutę na rok.

    Tak korekcja tylko przez program, chciałem dać przyciski ale już nie ma miejsca a chciałem żeby wszystko schowało się pod wyświetlaczem.

    No tak- motorower 2suw więc temperatura potrzebna. Godzina to wiadomo, a napięcie czasami się przyda bo jak wejdę w wysokie obroty to wiem ile mam volt. A czasami jest 16V.

    Obudowy jak narazie nie mam. Szukam czegoś odpowiedniego ale ciężko..

    Mógłbyś dodać tą linijkę kodu jak odczytujesz napięcie i temperature? Bo chciałem właśnie zrobić tak jak mówisz, ale niestety mi nie wychodzi.

    Schemat: (już na DS3231, z DS1307 już niestety nie mam)
    3-funkcyjny wyświetlacz do motocykla na Arduino
  • #22
    jaclew
    Poziom 17  
    v-cu napisał:
    DS3231 nie potrzebuje kwarcu i podobno się śpieszy tylko 1 minutę na rok

    Brzmi nieźle. Zainteresuję się tym układem na pewno.

    v-cu napisał:
    więc temperatura potrzebna.

    a w jaki sposób masz zamiar umieścić DS18B20 aby "czuł" temperaturę silnika?

    v-cu napisał:
    Obudowy jak narazie nie mam. Szukam czegoś odpowiedniego ale ciężko..

    no właśnie - projekt fajny elektronicznie, a wychodzi kiszka gdy trzeba upchać go w jakąś obudowę. Ja nauczyłem się już, że najpierw kombinuję opakowanie, a potem tak dopasowuję elektronikę aby całość współgrała. Dzięki temu projekty w 99% są kompletne. Inaczej często lądowały na półce...
    v-cu napisał:

    Mógłbyś dodać tą linijkę kodu jak odczytujesz napięcie i temperature?

    Zapewne chodzi Tobie o metodę wyświetlania dokładności dla zmiennej typu float.
    Zrób tak:
    lcd.print(temperatura, 0); // wyświetla temperaturę bez tego co po przecinku
    i
    lcd.print(napiecie, 1); // wyświetla napięcie z jednym miejscem po przecinku


    Pewno nie masz w kodzie u siebie tych parametrów, stąd wyniki pokazywane są z maksymalną dokładnością.
  • #23
    v-cu
    Poziom 11  
    jaclew napisał:
    a w jaki sposób masz zamiar umieścić DS18B20 aby "czuł" temperaturę silnika?

    3-funkcyjny wyświetlacz do motocykla na Arduino
    Mam cylinder chłodzony cieczą, i od góry się wkręca termostat który powyżej 100stopni się załącza i zapala kontrolkę w liczniku. Wywaliłem środek z termostatu i dałem tam ds18b20 na sondzie.

    Wow, nie wiedziałem że wystarczy dać tylko po przecinku 0 albo 1. Super dzięki wielkie.
    W pewnym sensie pytałem też jak odczytujesz napięcie. Bo ja nie wiem czy mam poprawnie i skaka te napięcie sobie co chwilkę. Dzielnik mam jak na schemacie 15K i 47K.
    A odczytuje tak:
    Kod: c
    Zaloguj się, aby zobaczyć kod


    A i myślę jeszcze co dać zamiast daty, bo zdaję mi się że ona nie jest potrzebna w ogóle..
  • #24
    jaclew
    Poziom 17  
    v-cu napisał:
    Mam cylinder chłodzony cieczą

    czyli mierzysz temperaturę cieczy chłodzącej. U mnie to niemożliwe bo silnik wiatrem jest chłodzony. Nie myślałeś nad trybem pasożytniczym DS18B20?

    v-cu napisał:
    skaka te napięcie sobie co chwilkę.

    daj kondensator (u mnie jest to 1u) pomiędzy pin analogowy a masę. Możesz też programowo próbować uśrednić pomiar. Na przykład tak:
    Kod: c
    Zaloguj się, aby zobaczyć kod


    Zamiast daty wstaw drugą temperaturę - otoczenia :idea:
  • #25
    v-cu
    Poziom 11  
    Mam czujnik ds18b20 na sondzie:
    3-funkcyjny wyświetlacz do motocykla na Arduino
    Więc nie opłaca się.

    Temperatura otoczenia dobry pomysł.

    Kod: c
    Zaloguj się, aby zobaczyć kod


    Niestety ta funkcja nic nie daje. Napięcie dalej skaka, np. co sekundę się zmienia 13.6V - 13.7V
    Z kondensatorem spróbuję jak przyjdzie DS3231 i zrobię płtykę.
  • #26
    gh00st
    Poziom 13  
    Mała uwaga co do dzielnika do pomiaru napięcia. Warto dać tam potencjometr w środek, dzięki czemu będzie można skalibrować pomiar (zmieniać nieco wartość podziału).
    Wtedy podając napięcie referencyjne możemy sobie ustawić potencjometrem prawidłową wartość mierzoną przez procek.
    Oczywiście potencjometr malutki na płytce. Warto także kropelką farbki czy czymś podobnym go zakleić po ustawieniu wartości, żeby się nie przekręcił przez przypadek.
  • #27
    jaclew
    Poziom 17  
    v-cu napisał:
    Niestety ta funkcja nic nie daje. Napięcie dalej skaka


    a jaki masz czas odświeżania pomiaru napięcia?

    ile ma wysokości zmontowana całość? U mnie wyszło 27 mm: od przycisków na spodzie PCB do frontu LCD.


    gh00st napisał:
    Warto dać tam potencjometr w środek,


    Nie warto. Współczynnik dzielnika i jego korekcję można wprowadzić programowo:
    Kod: c
    Zaloguj się, aby zobaczyć kod


    Odpada stojenie potencjometrem, nie trzeba przejmować się jego przypadkowym przestawieniem no i oszczędzamy miejsce o co wiekszości z nas tutaj chodzi.
  • #28
    gh00st
    Poziom 13  
    Dla mnie potencjometr wygodniejszy ;)
    Stroić programowo można, ale wymaga to wielu prób i kilku - kilkunastu może nawet kilkudziesięciu programowań (zależy od dokładności pomiaru). Potencjometrem ustawiasz szybko i bez programowania.
    Potencjometr można potem podkleić (tak jak się robi w fabrykach), wtedy mamy pewność, ze od drgań się nie przestawi. Poza tym montując kilka sztuk można szybko i wygodnie korygować nastawy bez ślęczenia nad kodem.
    Pamiętaj o tolerancji rezystorów, która spowoduje rozrzut parametrów i dla każdego dzielnika na nowo będziesz musiał poprawiać kod. Miejsce na płytce na mały montażowy potencjometr się zawsze znajdzie, tym bardziej jak stosujemy montaż SMD. Wtedy taki potek przewlekany nie koliduje z użyciem w jego miejscu innych elementów SMD z drugiej strony ;)

    No chyba że umożliwisz edycje dzielnika przy pomocy programu (tak jak nastawy czasu), ale to też dodatkowe klepanie kodu, żeby obsłużyć taką możliwość oraz komplikacja obsługi urządzenia. Przeciętny zjadacz chleba nie będzie wiedział po co jest ta kalibracja.
  • #29
    jaclew
    Poziom 17  
    gh00st napisał:
    Stroić programowo można, ale wymaga to wielu prób i kilku - kilkunastu może nawet kilkudziesięciu programowań


    czemu aż tyle??? robisz to metodą prób i błędów? Jest sposób jednorazowy, prosty i matematyczny, a więc DOBRY:
    1. w kodzie wstawiasz DOWOLNY współczynnik podziału Kt (t -od "teoretyczny")
    2. ustaw wyświetlanie na LCD zmiennej napięcia z dokładnością 1/100
    3. podajesz na kontroler dokładne i znane napięcie odniesienia Uref
    4. odczytaj z LCD zmierzone napięcie referencyjne - będzie ono inne: Ut
    5. oblicz realną wartość współczynnika podziału (z prostej zależności proporcji):

    Kr = Kt * (Uref / Ut)

    6. wstaw wyliczone Kr do kodu zamiast poprzedniego Kt

    Powodzenia!!!

    p.s.
    a potencjometr kosztuje niestety, no może i gorsze, ale przy produkcji setek/tysięcy sztuk
    urządzenia robi już znaczącą sumkę,,, Kod jest darmowy ;)
  • #30
    expercik
    Poziom 9  
    jak to darmowy ?
    mógłbyś pokazać skąd go masz ?