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

Woltomierz Attiny85 + ina219 +ssd1306

23 Maj 2020 17:15 201 7
  • Poziom 12  
    Witam.
    Nie jestem pewien czy dobry dział forum ale do "programowania" urzyem arduino IDE.
    Zracji tego że w ostatnich kilku tygodniach miałem wiecej wolnego czsu i mnustwo gratów w szufladzie postanowiłem zrobić woltomierz oparty o.

    V1.
    attiny85
    ssd1306
    dzielniki napiecia ADC
    //pcb zamówione nigdy nie zmontowany

    Woltomierz Attiny85 + ina219 +ssd1306

    V2.
    attiny85
    ssd1306
    ina219
    dzielniki napiecia ADC
    //zmontowany dziala.. nie na 100%

    Woltomierz Attiny85 + ina219 +ssd1306 Woltomierz Attiny85 + ina219 +ssd1306 Woltomierz Attiny85 + ina219 +ssd1306

    V3
    attiny85
    ssd1306
    ina219
    dzielniki napiecia ADC
    D18B20
    //pcb gotowe do zamowienia

    Woltomierz Attiny85 + ina219 +ssd1306

    schemat.. V3


    Woltomierz Attiny85 + ina219 +ssd1306













    Kod. Brak D18B20

    Kod: c
    Zaloguj się, aby zobaczyć kod


    A więc tak.

    Na pinie PB5
    wszystko działa OK ( R5 1M) (R6 opcja)

    Na pinie PB3

    Wszystko dziala OK (R4 220K R3 220K) na schemacie sa inne

    Na pinie PB4 ( R1 1M R2 200K) na schemacie sa inne

    i tu jest problem na tym pinie napiecie max to 30 V
    jednak nie ważne co zrobie z kodem wskazania sa nie własiciwe +- 1V

    Dlatego dodałem kondensatory C1 C2 C3 jednak to nic nie dało.

    Pytanie 1 czy te kondensatory maja jakis sęs w tym miejscu ???
    Pytanie 2 czy zmaina rezystorów R1 i R2 na miejsze z zachowaniem srosunku 1 do 5 może poprawić dokladnośc wskazań.

    Dzieki za pomoc.
    Darmowe szkolenie: Ethernet w przemyśle dziś i jutro. Zarejestruj się za darmo.
  • Banner Multimetr Fluke 87VBanner Multimetr Fluke 87V
  • Pomocny post
    Poziom 31  
    Przetestuj C1 C2 C3 - 100pf do 100nF albo nawet do testu 1uF

    Ad.1 czasem mają

    Ad.2 Ogólnie tak (200kom to całkiem sporo), ale w tym przypadku (jeśli dasz kondensatory o większej pojemności) nie koniecznie, sprawdź sam.

    A sprawdzałeś kod tylko z pomiarem na PB4? I przy zerze też masz błąd +-1V ?
    .
  • Banner Multimetr Fluke 87VBanner Multimetr Fluke 87V
  • Poziom 38  
    jox1 napisał:
    Pytanie 1 czy te kondensatory maja jakis sęs w tym miejscu ???

    Mają sens, żeby nie robić tutaj wykładów z przetwarzania A/D, poczytaj może coś na temat zjawiska "aliasingu" przy przetwarzaniu A->D.
    jox1 napisał:
    Pytanie 2 czy zmaina rezystorów R1 i R2 na miejsze z zachowaniem srosunku 1 do 5 może poprawić dokladnośc wskazań.

    Z dokumentacji AtTiny wynika, że dla przetwornika ADC maksymalna impedancja źródła to 10 kΩ, u Ciebie jest jednak "trochę" więcej,
    trol.six napisał:
    ale w tym przypadku (jeśli dasz kondensatory o większej pojemności) nie koniecznie, sprawdź sam.

    chyba że faktycznie użyjesz kondensatorów o dużej pojemności.
    Nawisem mówiąc, przy stosunku 1 do 5 masz dzielnik 1/6, dla 30 V będzie 5 V, trochę "na granicy" zakresu przetwornika.
  • Poziom 31  
    krzysiek_krm napisał:
    Z dokumentacji AtTiny wynika, że dla przetwornika ADC maksymalna impedancja źródła to 10 kΩ,

    A to zależy od założeń ;) Jednak problemy przy stosowaniu większych rezystancji to m.in. prądy upływu, które nie wiadomo dokładnie ile wynoszą, chyba że uznać, że parametr rezystancji wejściowej 100Mom za wystarczający.
  • Poziom 12  
    Witam Panowie
    Bardzo dziękuje za wasze podpowiedzi.

    //A sprawdzałeś kod tylko z pomiarem na PB4? I przy zerze też masz błąd +-1V ? //

    Tak sprawdziłem
    na zdjęciach widać ten błąd

    Ina219, PB4 i PB3 są podłączone do tego samego źródła zasilania 5.03V
    i błąd na PB4 wynosi 0.3V
    Lecz przy pomiarze np. 12V to już 0.7V

    Napięcie max mierzone na PB4 ma być w założeniu 20V dlatego dzielnik jest do 30V
    Ustawie dzielnik na max 24V i zmienię wartości rezystorów na mniejsze.

    Zobaczę jakie efekty da podmianka kondensatorów.

    Jeżeli ktoś by potrzebował bibliotek z tego projektu.

    TinyOzoled
    https://github.com/SensorsIot/TinyOzOled

    tinyWireM
    https://github.com/adafruit/TinyWireM

    ina219 oraz (Sdd1306 nie użyte w tym projekcie)
    https://github.com/moononournation/ATtinyPowerMeter
  • Poziom 38  
    trol.six napisał:
    Jednak problemy przy stosowaniu większych rezystancji to m.in. prądy upływu, które nie wiadomo dokładnie ile wynoszą, chyba że uznać, że parametr rezystancji wejściowej 100Mom za wystarczający.

    Nie chodzi o prądy upływu ale o czas ładowania kondensatora pamiętającego w przetworniku podczas fazy próbkowania.
  • Poziom 31  
    krzysiek_krm napisał:
    trol.six napisał:
    Jednak problemy przy stosowaniu większych rezystancji to m.in. prądy upływu, które nie wiadomo dokładnie ile wynoszą, chyba że uznać, że parametr rezystancji wejściowej 100Mom za wystarczający.

    Nie chodzi o prądy upływu ale o czas ładowania kondensatora pamiętającego w przetworniku podczas fazy próbkowania.

    No tak, jak w przysłowiu: "idzie mi o to, o co mi chodzi" :)

    Przecież nawet w nocie jest napisane że można wydłużyć ten czas. Chociaż niestety to chyba w stylu "nie arduino". Nie wiem co oferuje biblioteka w tym zakresie, jak czytam to raczej nic nadzwyczajnego. Więc albo własny kod, albo minimalizacja rezystancji. W pewnym stopniu można zaradzić temu poprzez pojemności, czego może nie dać się zrobić z prądami upływu.
    .
  • Poziom 12  
    Ok . Udało mi się rozwiązać problem błędnych wskazani (odczytów).
    Teraz dokładność wynosi ≈ 0,05V
    Kod: c
    Zaloguj się, aby zobaczyć kod


    vin * 0.004912 * 5.66;

    To info wziąłem z mkAVRCalkulator

    Vout=ADC*(vRef/1024)*K

    Jak rozumiem

    ADC-- odczyt z pinu X

    vRef-- napięcie odniesienia w moim przypadku napięcie zasilania

    1024-- 10bit przetwornik

    K -- wynik równania (R1 + R2) / R2 = K


    Woltomierz Attiny85 + ina219 +ssd1306


    Teraz pozostało dobrać rezystory tak aby napięcie nie przekraczało 5V na pinach ADC


    Woltomierz Attiny85 + ina219 +ssd1306 Woltomierz Attiny85 + ina219 +ssd1306 Woltomierz Attiny85 + ina219 +ssd1306