Elektroda.pl
Elektroda.pl
X

Search our partners

Find the latest content on electronic components. Datasheets.com
Elektroda.pl
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

Wskaźnik poziomu i termometr na AVR

Michacz123 23 Mar 2020 16:43 459 20
Optex
  • #1
    Michacz123
    Level 5  
    Witam.

    Pomoże ktoś w wykonaniu układu na mikrokontrolerze AVR i wyświetlaczu 2x16 układu termometru oraz pomiaru poziomu płynu w litrach?
    Ma ktoś jakieś pomysły?

    Pozdrawiam Michał
    [28-30.06.2022, targi] PowerUP EXPO 2022 - zasilanie w elektronice. Zarejestruj się za darmo
  • Optex
  • #2
    warlocki
    Level 15  
    Zależy jaki zakres temp. - jakiś Dallas albo Pt100, ADC; do pomiaru poziomu czujnik ultradźwiękowy odległości.
  • #3
    Michacz123
    Level 5  
    Zakres temperatury tak od - 15 do max 60 stopni.
    Miałem jeszcze pomysł na sonde hydrostatyczną i wtedy obydwa sygnały przekształcić na napięcia. Tylko mam problem z kodem bo nie umiem jeszcze pisać.
    Umiał byś mi napisać kod do tego?
    Bo ze zrobieniem układu to nie problem tylko gorzej z kodem.

    Z góry dziękuję
  • Optex
  • #4
    _jta_
    Electronics specialist
    Pt100 niespecjalnie - bez sporego prądu staje się zbyt wrażliwy na niedokładność pomiaru napięcia, zawsze jest wrażliwy na opór przewodów. Natomiast w poradnikach do Arduino jest pod dostatkiem opisów, jak mierzyć temperaturę używając np. DS18B20.

    Przeliczenie poziomu na litry zawsze zależy od kształtu naczynia, trzeba to jakoś wpisać do programu. A do pomiaru poziomu cieczy może samochodowy czujnik poziomu paliwa? Była też przedstawiona na forum koncepcja wykorzystania pomiaru pojemności (elektrycznej) między izolowanym przewodem, a cieczą, poprzez zbudowanie generatora (może relaksacyjnego) i pomiar okresu generowanych drgań.
  • #5
    Michacz123
    Level 5  
    No tu właśnie chodzi o zbiorniki 3000L i wysokość około 2.5 metra takze nie wchodzi w grę żaden pływakowy.
    Ok to z pomiarem temperatury problem by był rozwiązany tylko właśnie ta pojemność.Dlatego myślałem o tej sondzie hydrostatycznej wydaje mi się to najbardziej udane. Tylko moje ograniczenie to pisanie kodu. Tego jeszcze nie ogarniam.
  • #7
    Michacz123
    Level 5  
    Np. przetwornik ciśnienia do pomiaru poziomu LS-10.
    Prądowy.
  • Helpful post
    #8
    _jta_
    Electronics specialist
    Można, jakkolwiek Arduino ma przetwornik tylko 10-bitowy (a jakieś ATtiny nawet tylko 8-bitowy), więc dokładność pomiaru będzie taka sobie (trzeba jeszcze zamienić prąd na napięcie). Są czujniki ciśnienia podłączane przez I2C (BMP280, BMP180, mają dużo lepszą rozdzielczość i przy okazji mierzą temperaturę), ale ich zakres to 300-1100 kPa (0,3-1,1 atm), więc trzeba by jakoś przetwarzać poziom cieczy na podciśnienie; poza tym potrzebna jest raczej różnica ciśnień (można użyć dwóch czujników).
  • Helpful post
    #9
    warlocki
    Level 15  
    https://botland.com.pl/pl/ultradzwiekowe-czuj...odleglosci-hc-sr04-2-200cm-5903351241366.html
    Czujnik ultradźwiękowy działający w zakresie od 2 cm do 200 cm. Zasilany napięciem 5 V. Wyjściem jest sygnał, którego czas trwania jest proporcjonalny do mierzonej odległości.

    Tani, prosty, nie musisz pchać się w drogie uC z 14 bitowymi ADC no i program prosty do tego jak drut.
  • Helpful post
    #10
    _jta_
    Electronics specialist
    Hm... Arduino+DS18B20 około 20 zł, sonda LS-10 ponad 2000 zł. 16-bitowy ADC do Arduino - od około 16zł.

    A może PiMoroni VL53L1X time-of-flight - czujnik odległości I2C - zasięg do 4m, błąd do 2cm, można podpiąć do Arduino.
  • #11
    Michacz123
    Level 5  
    Hmmm bardzo dziękuję za dotychczasowe odpowiedzi. :)
    Ale ponawiam pytanie czy ktoś byłby wstanie napisać kod do tego np. dla czujnika DS12B20, czujki ultradźwiękowej dla wyświetlacza 2x16?
    W sensie, że górna linijka to by była temperatura a dolna pojemności w litrach.
  • Helpful post
    #12
    _jta_
    Electronics specialist
    Dla czujników I2C, czy 1-Wire (DS18B20) bez problemu znajdziesz kod w sieci. A ta czujka ultradźwiękowa chyba ma za mały zasięg, więc nie warto nawet szukać - wskazałem coś lepszego (ale Botland daje namiary na program do Arduino, ma też Ultradźwiękowy czujnik odległości URM37 v4 5-500cm z korekcją temperaturową, też z opisem i programami do Arduino).

    Do testów działania czujników i tworzenia programu dobrze jest użyć Raspberry Pi (pożądana jest wersja, która będzie miała połączenie z siecią, i albo pozwoli podłączyć monitor, klawiaturę i mysz, albo połączysz się z nią z jakiegoś Linux-a przez SSH) - ma interfejsy 1-Wire, I2C i wiele innych. Do wyświetlacza są przykładowe programy na Arduino - nie próbowałem podłączania wyświetlacza do "malinki", tylko od razu do Arduino.
  • #13
    warlocki
    Level 15  
    Sorry - dla mnie to przerost formy nad treścią - płytka, Atmega, DS, czujnik za parę zł, LCD, parę linijek kodu i śmiga; koszt jakieś 20-30 zł.
  • #16
    _jta_
    Electronics specialist
    W Botlandzie go (chwilowo) nie mają, za to w ABC-RC.PL jest taniej (i mają 4 sztuki, a oprócz tego jakieś inne, tańsze). Ponoć ma zakres do 6m:
    ABC-RC.PL: US-015 wrote:
    Sam czujnik obsługuje zakres do 400-600, jednak jest ograniczony standardową biblioteką (NewPing) do 400cm.

    Prędkość dźwięku zależy od temperatury i wilgotności powietrza (dla suchego jest proporcjonalna do pierwiastka z temperatury, podczas dużego upału w wilgotnym może być do 1% większa, niż w suchym, z powodu mniejszej masy cząsteczkowej pary wodnej). Nie zależy natomiast od ciśnienia.
  • #17
    Michacz123
    Level 5  
    No o idealny pomiar mi nie chodzi i ta czujka ultradźwiękowa to faktycznie najlepszy pomysł.
    Tylko powiedzcie czy taki układ dam radę zrobić na Atmega8 w sensie czujnik DS18B20 lub termistor, czujka ultradźwiękowa no i wyświetlacz 2X16?
  • Helpful post
    #19
    warlocki
    Level 15  
    Da się na Mega 8 bez problemu. Jak jeszcze nie programowałeś, to poszukaj kursu Bascom z EdW - prościej się nie da - obsługa LCD w Bascomie jest banalnie prosta, DS również. O ile nie masz aspiracji zostać zawodowym programistą, to w Bascom zrobisz wszystko, a nauka zajmie mniej czasu niż C.
  • #20
    _jta_
    Electronics specialist
    Oj, to chyba nie jest dobry pomysł: do tego sprzętu (czujnika odległości) są gotowe przykłady w C na Arduino, a w Bascom-ie nie. Do tego Bascom ma swoje dziwactwa.

    Nie trzeba poznawać całego C (bo to jest rzeczywiście dużo) - tylko na tyle, żeby zrozumieć przykładowe programy, i połapać się, jak je pociąć i posklejać, żeby działało.

    http://akademia.nettigo.pl/ds18b20/ - tu jest opis, jak odczytywać DS18B20.

    https://www.arduino.cc/en/Tutorial/HelloWorld - tu przykład użycia LCD.
    https://www.arduino.cc/en/Reference/LiquidCrystal - więcej przykładów.
    http://akademia.nettigo.pl/lcd_znakowy/ - a tu dużo prostszy opis.

    http://www.arduino.com.pl/projekty/ultradzwiekowy-czujnik-odleglosci-i-arduino/
    - a tu masz (prościutki) przykład pomiaru odległości z wyświetlaniem na LCD, przy użyciu HC-SR04 i wyświetlacza 2x16.
  • #21
    Michacz123
    Level 5  
    Ok. Przestudiuje wszystkie wskazówki. Dziękuję za zainteresowanie i sensowne odpowiedzi.

    Pozdrawiam Michał