Arduino 10: MIERZYMY NAPIĘCIA

แชร์
ฝัง
  • เผยแพร่เมื่อ 18 ก.ย. 2024
  • O mierzeniu napięć przez Arduino. Przetworniki analogowo-cyfrowe wykorzystywane przez potencjometry - intuicyjne i wygodne elementy sterujące, jak również określające położenie części ruchomych.
    Kod, na którym bazuje odcinek można pobrać stąd:
    adamsmialek.co...
    Zapraszam do wsparcia mojego kanału:
    patronite.pl/s...
    PayPal.Me/smialekadam
    oraz do subskrybowania:
    www.youtube.co...
    #Arduino #potencjometry #analogowocyfrowy

ความคิดเห็น • 84

  • @Informatykwakcji
    @Informatykwakcji 2 ปีที่แล้ว +10

    😎👍🖐 Podziwiam, że pomimo długiego weekendu, pojawia się kolejny odcinek! Trzymam kciuki, by oglądających było równie wielu, a nawet więcej niż zazwyczaj! Ale coś mi nos mówi, że dziś będzie niestety skromniej... U siebie też widzę dużo mniejszy ruch...

  • @uzyszkodnikaplikacji5757
    @uzyszkodnikaplikacji5757 2 ปีที่แล้ว +4

    Łapka w górę w ciemno bez oglądania!

  • @rekawek6
    @rekawek6 2 ปีที่แล้ว +3

    Tak po cichu liczyłem, na to jak zastosować napięcie odniesienia. Ale po deklaracji, że w następnym odcinku będzie o zastosowaniu praktycznym już nie mogę się doczekać.

  • @piomio8583
    @piomio8583 2 ปีที่แล้ว +5

    ciekawy materiał

  • @MotocykleSerwisRybnik
    @MotocykleSerwisRybnik 2 ปีที่แล้ว +2

    Dziękuję za kolejny wspaniały materiał,wszystkiego dobrego.

  • @bene8114
    @bene8114 2 ปีที่แล้ว +1

    Panie! Toż to siok, jak przyjemnie i rzeczowo przekazane. Więcej proszę :)

  • @namesurename-fotografiaana3168
    @namesurename-fotografiaana3168 2 ปีที่แล้ว +3

    Istnieje wiele wspaniałych kursów Arduino. Poza tym polecam książki Pana Piotra Góreckiego traktujące o mikrokontrolerach (i nie tylko) . Warto je poznać nieco bardziej od środka.

  • @JerrySmithKociak
    @JerrySmithKociak 2 ปีที่แล้ว +4

    Warte uwagi jest to że otwarcie terminala z poziomu IDE restartuje Arduino, sam się nieraz na tym naciąłem :) Więc wbijmy sobie do główek - otwarcie terminala resetuje Arduino.

  • @FoHsi
    @FoHsi 2 ปีที่แล้ว +1

    Szanuję, za dzielenie przez 1024, a nie jak często się widuje, 1023 😉. W ogóle szanuję Pana pracę. Ostatnio zmieniono standard nadawania TV i przez kilka dni jedyne co mogłem odebrać, to programy TVP, a tam tylko odmóżdżające, tureckie seriale. Programów popularno-naukowych praktycznie brak. To właśnie ta misja telewizji publicznej.

  • @adamcichowicz1474
    @adamcichowicz1474 2 ปีที่แล้ว +1

    Świetny materiał edukacyjny!

  • @adamt1201
    @adamt1201 ปีที่แล้ว +2

    dziękuje - pomocne!!!

  • @wojciechlenardt9870
    @wojciechlenardt9870 2 ปีที่แล้ว +1

    Prawie jak u Adama Słodowego. Czy są transile na 5v ?? Chyba są szybsze ??

  • @piotrodzysk4444
    @piotrodzysk4444 2 ปีที่แล้ว +1

    Pozdrawiam.#

  • @1DEADBEEF1
    @1DEADBEEF1 2 ปีที่แล้ว +1

    Jakbym uczyl elektroniki czy elektrotechniki to filmiki pana Adama byly by jako codzienna praca domowa. Informacje edukacyjne na najwyzszym poziomie do tego dobra elokwencja i umiejetnosc przekazywania informacji w przejrzysty sposob

  • @bartoszcelmer
    @bartoszcelmer 2 ปีที่แล้ว +1

    Panie Adamie lubię tworzone przez Pana materiały, ale port != wyprowadzenie

    •  2 ปีที่แล้ว +1

      W tym przypadku wychodzi na to samo i tak się mówi potocznie.

    • @bartoszcelmer
      @bartoszcelmer 2 ปีที่แล้ว

      @ Panie Adamie, owszem wychodzi na to samo, bo słowo jest używane w sposób powtarzalny(równie dobrze sprawdziło by się np. styk), ale takiego argumentu bym się nie spodziewał :) . W potocznym użyciu, w podobnej roli kojarzę "pin", za którego nieużywanie dziękuję. ATMega na, której bazuje Nano używa portów B, C, D, które są czymś innym. Określanie wyprowadzeń w ten sposób może zainteresowanych widzów wprowadzić w błąd przy samodzielnych poszukiwaniach. Naprawdę doceniam treści tworzone przez Pana i dlatego pozwalam sobie na tę uwagę.

    •  2 ปีที่แล้ว

      Ale w świecie Arduino nie używamy natywnych portów ATMega, tylko po prostu portów 0-13 i A0-A7, jak to też mówią "wyprowadzeń". W zasadzie bez portu 0 i 1. Pin przyjął się bardziej, ale ma dobre, polskie określenie.

  • @arkadiusz1932
    @arkadiusz1932 2 ปีที่แล้ว +1

    Czy jest możliwość takim potencjometrem. Wysterować czułość (próg zadziałania) MPU6050? MPU ma działać jako czujnik wstrząsu. Nie znalazłem nigdzie takiego rozwiązania.

    •  2 ปีที่แล้ว +2

      Dane z potencjometru mają dziesięciobitową rozdzielczość (w praktyce ośmio-dziewięcio, po eliminacji stanów niestabilnych). Mamy zatem taką zmienną, której możemy już użyć do dowolnych celów, jakie sobie wymyśli twórca urządzenia. Zawsze też można tę daną rozciągnąć na niewielki przedział np. przy regulacjach progu zadziałania, a użycie dwóch potencjometrów może zrealizować prosty zespół "zgrubnie/dokładnie".

  • @kotedet6542
    @kotedet6542 2 ปีที่แล้ว +4

    Nie 5 mikro woltów a miliwoltow czyli tysięcznych części wolta

    •  2 ปีที่แล้ว +1

      Zgadza się, przejęzyczenie (ale w napisach już jest dobrze).

  • @michal199011
    @michal199011 2 ปีที่แล้ว +1

    Jak zmierzyć napięcie za pomocą wejścia Analog jeżeli mierzone napięcie jest jednocześnie źródłem zasilania płytki? Przedstawiona metoda zawsze da pomiar 1023 (docelowo mój projekt ma być na samej atmedze nie arduino).

    • @poldoford
      @poldoford 2 ปีที่แล้ว +1

      Potrzebujesz mierzyć napięcie odniesienia. Np źródełko na 1,25V. Bo rozumiem, że dla przetwornika odniesieniem jest napięcie zasilania. Przy 5V przetwornik mierzący te 1,25 da Ci odczyt 1023/4. Zatem wynik pomiaru musisz przeliczyć. Uzas/Uref=1023/wynik pomiaru

    •  2 ปีที่แล้ว +1

      Zawsze będzie wynik maksymalny równy 1023, tylko przeliczać będzie się w zależności od napięcia odniesienia. Można korzystać z wewnętrznego 1,1 V albo dołączonego do AREF (ale nie większego niż 5 woltów). Bez deklaracji źródła jest nim napięcie zasilające, co daje wyniki najmniej dokładne.

  • @KH-lg3xc
    @KH-lg3xc 2 ปีที่แล้ว +1

    Czasami podłącza się do wejść przetworników A/C przyciski (przez rezystory dzielące napięcie).

    •  2 ปีที่แล้ว

      To popularny sposób na podłączenie kilku przycisków jednym przewodem (plus masa) bez angażowania elektroniki czynnej. Uprawiany często w pilotach przewodowych na kablu słuchawkowym.

  • @arivaldarivald3212
    @arivaldarivald3212 2 ปีที่แล้ว

    Skoro już mamy porządny miernik, to można było programowo skalibrować zbudowany na Arduino miernik. Sprawdzić ile analogRead() pokaże dla 0V i tyle zawsze odjąć, sprawdzić ile analogRead() pokaże dla 5V I odpowiednio dostosować mnożnik (5/1204). O ile oczywiście zależy nam na pomiarze voltów, a nie pozycji potencjometru.

    •  2 ปีที่แล้ว

      Nie tędy droga, najpierw należałoby podłączyć referencyjne źródło napięcia, ponieważ domyślny sposób jest niestabilny. Ale o tym za jakiś czas.

  • @MsToshinori
    @MsToshinori 2 ปีที่แล้ว +1

    Chciałem podłączyć do PCF8574 wiele diod świecących Ale okazuje się że natężenie podawane na pinach to mniej niż 20mA. Czy można jakoś podnieść ampery? Żeby podłączyć więcej niż jedną diodę np 4. Za pomocą diod czy tylko pozostaje przekaźniki podłączyć? Z innej beczki , za pomocą diód można do jednego gpio analogowego podłączyć więcej urządzeń. Trzeba tylko po kolei włączać napięcie urządzeniom. Bardzo dziękuję.

    •  2 ปีที่แล้ว +1

      O podłączaniu dużych obciążeń będzie niebawem.

    • @MsToshinori
      @MsToshinori 2 ปีที่แล้ว +1

      @ Bardzo dziękuję za materiały i będę czekać.

    • @polskizwiazeknaczelnychhej1100
      @polskizwiazeknaczelnychhej1100 2 ปีที่แล้ว +1

      Po prostu podłączyć odwrotnie. Pcf ma prąd wsteczny rzędu 60mA. A tak to chyba 40uA. Można też zastosować mosfet na wyjściu.

    • @MsToshinori
      @MsToshinori 2 ปีที่แล้ว +1

      ​@@polskizwiazeknaczelnychhej1100 Działa doskonale :) No ale i tak muszę ogarnąć rozdzielenie zasilania nodeMCU plus ledy na 5V i silników L239D na 9V z pakietu 18650x4 połączonych szeregowo. Jeszcze pasuje mi podłączyć do tego ładowanie. Kłaniają się podstawy elektroniki. Ale rozgryzanie tego jest fascynujące. Dziękuję.

  • @eRBartek
    @eRBartek 2 ปีที่แล้ว

    Kolejny super poradnik!
    Pytanie: jak zmierzyć napięcie przemienne? Da się?

    •  2 ปีที่แล้ว +2

      Każdy współczesny multimetr mierzy wszystko, sprowadzając wartości do napięć stałych, więc da się na pewno :)

    • @eRBartek
      @eRBartek 2 ปีที่แล้ว

      @ to, to oczywiście wiem wiem ;) ale jak ma się sprawa z Arduino?

    •  2 ปีที่แล้ว +1

      Można jak w starych multimetrach: prostownikiem, można też ograniczyć zakres do 5 woltów i przesunąć oś symetrii na poziom 2,5 wolta (dzielnikami z rezystorów), o ile zasilanie Arduino nie ma nic wspólnego z napięciem mierzonym - tak będzie bardziej liniowo. I pewnie jeszcze na kilka sposobów.

    • @bartoszcelmer
      @bartoszcelmer 2 ปีที่แล้ว

      @@eRBartek Zależy od częstotliwości. Dla 50Hz będzie OK, ale przy dużej częstotliwości okaże się, że wejścia analogowe są za wolne. Dodatkowo wspomniana rozdzielczość 10bit może być czasem nieco mała. Nie wszystko stracone ponieważ istnieją układy ADC komunikujące się po np. i2c które do Arduino można w miarę prosto podłączyć.

    • @eRBartek
      @eRBartek 2 ปีที่แล้ว

      @@bartoszcelmer właśnie chodzi mi o pomiar napięcia z przekładnika prądowego przez który bedzie zasilane z sieci urządzenie. Nie musi to być pomiar dokładny co powtarzalny.

  • @daro0352
    @daro0352 2 ปีที่แล้ว +2

    Jedne źródła podają żeby napięcie mierzone liczyć tak:
    V=N*Vref/1023
    Inne znowu tak:
    V=N*Vref/1024
    Jeszcze inne tak:
    V=(N+0.5)*Vref/1024
    I jak tu nie zgłupieć z tym wszystkim?

    •  2 ปีที่แล้ว

      Generalna zasada uniwersalna brzmi: odczytany ułamek z całości razy napięcie odniesienia. Jeśli odczytujemy 319, a całość obejmuje 1024 przedziały, to 319/1024 razy 5 woltów (w programie jest ten wzór przekształcony).
      Trzeba jeszcze pamiętać, że stosujemy tutaj uproszczenia, zaokrąglając całość w dół (wynik może osiągnąć 0V, ale nigdy nie osiągnie 5V), więc teoretycznie należałoby dodać do wyniku połowę działki, czyli tutaj 5V/2048, ale biorąc pod uwagę marną dokładność pracy bez napięcia referencyjnego, to nie ma sensu. Zresztą i z referencyjnym dokładność całkowite jest chyba niższa niż dziesięć bitów i w przypadku jego doboru (wewnętrzne to też nie dokładnie 1,1V, gdyż zakładana jest pewna tolerancja) należy po prostu do wzoru przeliczającego dopisać dodatkowe współczynniki po zmierzeniu rzeczywistych wartości dobrej klasy miernikiem.

    • @daro0352
      @daro0352 2 ปีที่แล้ว

      @ Z tego co czytałem to +/- 2 LSB. Używam dwóch mierników, DT-830B oraz analogowego YX-360TR i nie wiem czy jest jakikolwiek sens cokolwiek porównywać przy ich użyciu. W każdym razie dokładnych mierników bym na Arduino nie budował, choć ciekawą rzeczą jest możliwość oversamplingu w celu zwiększenia rozdzielczości aż do 16 bitów kosztem 4096 pomiarów z sygnałem randomizującym, dzięki czemu udało mi się nawet odczytać sygnał z termopary typu K.

    •  2 ปีที่แล้ว

      A poza przypadków robienia multimetru o wysokiej dokładności z Arduino w praktyce znajdziemy niewiele. Nawet gdy trzeba liczyć minimalnie zmieniające się wartości, wystarczy narzucić offset i rozciągnąć skalę powiedzmy ośmiobitową na zakres przewidywanych zmian. W każdym razie do wszelkich potencjometrów nawet proste pomiary jak w filmie wystarczają aż za dość.

    • @gordongecko9405
      @gordongecko9405 2 ปีที่แล้ว

      @@daro0352 Nawet wynik 8 bitowy (po odrzuceniu 2 LSB) i rezygnacji z oversamplingu to dokładność 0.5% - wystarczająco dużo do większości amatorskich i połprofesjonalnych zastosowań. A rakiet kosmicznych nikt na tym i tak nie buduje. Adam dobrze temat opisuje.
      A jak ktoś chce na popularnym i tanim 10-bitowym ADC budować dokładny miernik ...to sam sobie wystawia świadectwo.

    • @gordongecko9405
      @gordongecko9405 2 ปีที่แล้ว

      Wzór zależy od pojętności majstra. Jak ktoś nie myśli to kopiuje bezmyślnie co znajdzie w necie 🤪

  • @tielusik
    @tielusik 2 ปีที่แล้ว

    Witam.
    Jak zwykle materiał świetny i wspaniale zaprezentowany. Chcę więcej!
    ALE
    Wgrałem program z udostępnionego źródła do mojego A. UNO, i nie kompiluje się.
    Dopiero po przełączeniu w ustawieniach edytora na NANO kompiluje się, no ale oczywiście nie mogę go wgrać do UNO.
    Oniemiałem.
    Pozdrwiam

    • @tielusik
      @tielusik 2 ปีที่แล้ว

      Źle napisałem. Nie wgrałem do UNO, bo się nie da. Wgrałem do edytora ustawionego na UNO, i wtedy się nie kompiluje.
      Po przestawieniu na NANO , kompiluje się.

    •  2 ปีที่แล้ว

      Uno nie akceptuje A6 i A7 z tego co pamiętam, ale tu takich nie ma. Poza tym różnic brak (pojawią się przy wgrywaniu dopiero). Szczerze powiedziawszy, to nigdy UNO nie miałem, od razu te małe, Mega i na nie Atmelach.

    • @tielusik
      @tielusik 2 ปีที่แล้ว

      @ Będę drążyć temat. Tego nie można tak zostawić. Dam znać o wynikach dochodzenia. Pozdrawiam.

    • @tielusik
      @tielusik 2 ปีที่แล้ว

      Mam to !
      Otóż działając rutynowo, kliknąłem w pobrany plik "arduino_mierzy_napiecia.ino", a ten uruchomił edytor, i tam się otworzył. Przed kompilacją edytor zapisuje plik, ale ponieważ ja po instalowaniu na nowo WIN10, jeszcze nie założyłem katalogu dla plików Arduino, ten plik zapisał się gdzieś w temp-ach. W efekcie edytor nie umiał go odnaleźć i skompilować.
      Warto przed rozpoczęciem pracy założyć na dysku katalog dla plików Arduino, i wskazać go w preferencjach
      Plik/preferencje/ustawienia/lokalizacja szkicownika.
      Tak mi to wygląda na chwilę obecną.
      Pozdrawiam

  • @kubaamazon65
    @kubaamazon65 2 ปีที่แล้ว

    Mylisz posty rownoległe z szeregowymi. USB jest szeregowe, a w 5:06 pokazaleś porty równoległe.

    •  2 ปีที่แล้ว

      Zdjęcie z 5.06 pokazuje przede wszystkim RS232, zwane tutaj COM-em i ilustruje zdanie "dziś komputera z takimi portami już właściwie nie znajdziemy" :) USB jest szeregowe, ale ciężko go traktować w ten sposób wprost.

  • @dejaeprouve
    @dejaeprouve 2 ปีที่แล้ว +1

    Ciekawe ale 9:00 małe bubu, czy aby na pewno +10V można podłączyć do GND ? :)

    • @MultiKomentator
      @MultiKomentator 2 ปีที่แล้ว +1

      Ale to inne +10V przez separację galwaniczną :)

    •  2 ปีที่แล้ว +3

      No właśnie po to jest zabezpieczająca dioda Zenera, która w tą stronę pracuje jako zwykła dioda. Ściślej - troszkę wyższe napięcie się na niej odkłada (zwykle 0,8V) wobec deklarowanej maksymalnej (0,5V), ale raczej układ to przeżyje. Oczywiście ujemnego napięcia nie zmierzymy, to jest sytuacja awaryjna, gdy ktoś pomyli bieguny.

    • @bene8114
      @bene8114 2 ปีที่แล้ว +3

      Raz można nawet i bez diody. To jak z patrzeniem w laser, można dwa razy. Raz jednym raz drugim okiem.

    • @MultiKomentator
      @MultiKomentator 2 ปีที่แล้ว

      @ o coś innego chodziło koledze. Na płytce jest GND i bezpośrednio +10 zresztą -10V też by było źle. U góry powinna być cały czas masa a na dole +/-10V

    •  2 ปีที่แล้ว

      A to zasilanie układu to inna inszość. Odwrócenie polaryzacji wyśle go do aniołków. Generalnie to ja bardzo nie polecam zasilania układu z wyższego napięcia niż 7-8 woltów (oczywiście mowa o wejściu VIN), bo na tych chińskich wersjach nano stabilizatory te łatwo padają.

  • @extremejacek
    @extremejacek 2 ปีที่แล้ว

    Zaczynam dopiero swoją przygodę z Arduino stąd moje może banalne ptanie. Jak zaokraglic wartość napięcia do jednego miejsca po przecinku?

    • @extremejacek
      @extremejacek 2 ปีที่แล้ว

      @@potupecznikmrukowski3772 Dzięki, będę próbował.

    • @extremejacek
      @extremejacek 2 ปีที่แล้ว

      @@potupecznikmrukowski3772 Wszystko działa ale mam kolejny problem. Załóżmy że chcę wyświetlić napięcieV z jednym miejscem po przecinku co jest w miarę proste. Ale... potrzebuję wartości tego napięcia do dalszych obliczeń i to właśnie z dokładnością jednego miejsca po przecinku. Jak sprawić żeby "napięcieV" było faktycznie wartością z jednym miejscem po przecinku a nie tylko taka wartośc była wyświetlana?

  • @marcinrojek8995
    @marcinrojek8995 2 ปีที่แล้ว

    No dobra, ale jak zmierzyć napięcie wyższe np. 48V? Pozdro.

    • @polskizwiazeknaczelnychhej1100
      @polskizwiazeknaczelnychhej1100 2 ปีที่แล้ว +3

      Za pomocą dzielnika napięcia i napięcia odniesienia.

    • @bartoszcelmer
      @bartoszcelmer 2 ปีที่แล้ว

      @@polskizwiazeknaczelnychhej1100 Ewentualnie transformatora dla AC

  • @Inktvis_777
    @Inktvis_777 2 ปีที่แล้ว +2

    Popsułem komuś zabawę?

  • @szulat
    @szulat 2 ปีที่แล้ว +1

    zupełnie nie rozumiem skąd ten ekstrawagancki pomysł robienia filmów o rzeczach, których nie było w PRLu! 😅

    •  2 ปีที่แล้ว +2

      Bo to praktyczne, a nie modne :)

    • @KH-lg3xc
      @KH-lg3xc 2 ปีที่แล้ว

      Łatwiej robić film o rzeczach, których nie było w PRL, niż film o rzeczach, które były w PRL, a już ich nie ma (n.p. prawdziwa szynka).

  • @Jedendwa0
    @Jedendwa0 2 ปีที่แล้ว +2

    Opowiem Wam kawał o napięciu...
    Na pięciu napadło dziesięciu.

  • @moreo3505
    @moreo3505 ปีที่แล้ว +1

  • @TomekNagisa
    @TomekNagisa 2 ปีที่แล้ว +3

    Ciekawostka, zapis "5.0" oznacza double a nie float. Na 8bit AVR to i tak nie znaczenia, bo tam nie ma double (bo to tak na prawdę float), ale tam gdzie double jest, cała operacja będzie wykonana jako operacja na double (aka "dodanie zbędnego kodu obsługi operacji na double") a potem skonwertowana do float. Float to formalnie "5.0f". ;)

    •  2 ปีที่แล้ว +1

      Oczywiście, tylko w Arduino jest uproszczone (acz nie do końca, bo niektóre klony mają podwójną dokładność). Z tego powodu nie zrobi się sensownego kalkulatora na Arduino.