logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Obrotomierz Arduino z czujnikiem Halla A3144 i komparatorem LM393 - błędne zliczanie

LUKAS616 17 Sty 2025 17:01 285 7
REKLAMA
  • #1 21397366
    LUKAS616
    Poziom 11  
    Posty: 99
    Ocena: 30
    Witam. Chcę zrobić obrotomierz do Arduino. Napisałem program, wszystko podpięte i pojawia się problem. Przy przesuwaniu magnesem czujnik zlicza raz pojedynczo, a raz podwójnie, a raz wcale nie zlicza. Przy większej liczbie zliczeń błąd jest znaczący. Używam czujnika Halla A3144 na płytce komparatora LM393. Jak naprawić ten błąd? W kodzie używam funkcji przerywania.
  • REKLAMA
  • #2 21397967
    emarcus
    Poziom 21  
    Posty: 368
    Pomógł: 42
    Ocena: 72
    LUKAS616 napisał:
    Witam. Chcę zrobić obrotomierz do Arduino. Napisałem program, wszystko podpięte i pojawia się problem. Przy przesuwaniu magnesem czujnik zlicza raz pojedynczo, a raz podwójnie, a raz wcale nie zlicza. Przy większej liczbie zliczeń błąd jest znaczący. Używam czujnika Halla A3144 na płytce komparatora LM393. Jak naprawić ten błąd? W kodzie używam funkcji przerywania.


    W odpowiedzi zadam kilka pytań z nadzieją że to naprowadzi cię na poprawny ‘trop’.
    1. czy zapoznałeś się dokładnie z ‘datasheet’ ( specyfikacją) tego sensora?
    2. Czy zauważyłeś że jest to typu „unipolar” czujnik; co znaczy że reaguje tylko na jeden biegun magnetyczny (zazwyczaj ‘S’).
    3. Czy doczytałeś że wyjście jest tranzystorowe typu OC (open Collector)?

    4. Po co ci potrzebny komparator w układzie zliczania impulsów?
    Ten sensor ma wbudowany ‘schmitt trigger circuit’ dający na wyjściu czysty, pojedynczy/(’zdecydowany’) poziom logiczny.
    Wystarczy to wyjście podciągnąć (przez rezystor) do VCC i z niego czerpać sygnał do licznika impulsów.

    Zauważ że wyjście możesz obciążyć do 25 mA, to dla testów możesz podłączyć do jego wyjścia zwykłą kolorową, sygnalizacyjną diodę przez rezystor 250 do 500 ohmów do „+” zasilania i testować reakcję na biegunowość posiadanego magnesu; wszak te nie mają oznakowania biegunowości N/S.

    e marcus
  • REKLAMA
  • #3 21398067
    LUKAS616
    Poziom 11  
    Posty: 99
    Ocena: 30
    emarcus napisał:
    LUKAS616 napisał:
    Witam. Chcę zrobić obrotomierz do Arduino. Napisałem program, wszystko podpięte i pojawia się problem. Przy przesuwaniu magnesem czujnik zlicza raz pojedynczo, a raz podwójnie, a raz wcale nie zlicza. Przy większej liczbie zliczeń błąd jest znaczący. Używam czujnika Halla A3144 na płytce komparatora LM393. Jak naprawić ten błąd? W kodzie używam funkcji przerywania.


    W odpowiedzi zadam kilka pytań z nadzieją że to naprowadzi cię na poprawny ‘trop’.
    1. czy zapoznałeś się dokładnie z ‘datasheet’ ( specyfikacją) tego sensora?
    2. Czy zauważyłeś że jest to typu „unipolar” czujnik; co znaczy że reaguje tylko na jeden biegun magnetyczny (zazwyczaj ‘S’).
    3. Czy doczytałeś że wyjście jest tranzystorowe typu OC (open Collector)?

    4. Po co ci potrzebny komparator w układzie zliczania impulsów?
    Ten sensor ma wbudowany ‘schmitt trigger circuit’ dający na wyjściu czysty, pojedynczy/(’zdecydowany’) poziom logiczny.
    Wystarczy to wyjście podciągnąć (przez rezystor) do VCC i z niego czerpać sygnał do licznika impulsów.

    Zauważ że wyjście możesz obciążyć do 25 mA, to dla testów możesz podłączyć do jego wyjścia zwykłą kolorową, sygnalizacyjną diodę przez rezystor 250 do 500 ohmów do „+” zasilania i testować reakcję na biegunowość posiadanego magnesu; wszak te nie mają oznakowania biegunowości N/S.

    e marcus


    Ad1 nie jestem elektronikiem więc datasheet mi nic nie powie.
    Ad2 wiem o tym
    Ad3 nie wiem co to jest więc nic mi to nie mówi
    Ad4 podpiąłem rezystor i to nic nie dało. Dalej jest to samo.
  • #4 21398466
    emarcus
    Poziom 21  
    Posty: 368
    Pomógł: 42
    Ocena: 72
    LUKAS616 napisał:

    Ad1 nie jestem elektronikiem więc datasheet mi nic nie powie.

    Nie musisz być elektronikiem aby przeczytać I zrozumieć pierwszą stronę datasheet, która mówi że urządzenie to zostało wycofane i nie powinno być stosowane w nowych projektach!!!
    Zwróć uwagę na datę zmiany tego statusu: - dwadzieścia lat temu
    Podano również czym je podmienić!

    Pierwsza strona datasheetu dla A3141, A3142, A3143 i A3144 informująca o wycofaniu produktów.

    Cytat:

    Ad3 nie wiem co to jest więc nic mi to nie mówi

    Więc potrzebujesz dowiedzieć się, bo bez tego nie ruszysz dalej !!!

    Cytat:

    Ad4 podpiąłem rezystor i to nic nie dało. Dalej jest to samo.


    Nie może być "to samo"...
    Aby prowadzić dalszą dyskusje w tym kierunku,to należałoby pokazać na jakimś schemacie/szkicu twojego układu, lub foto jak ty to podpiąłeś…..
    Nie jest żadnym moim interesem aby 'mącić ci w głowie'.

    Popróbuje znaleźć ci w internecie jakieś przykładowe video z testami z tym urządzeniem.

    Tymczasem odszukaj co to jest OC (open collector) układu tranzystorowego i zastosuj poprawnie.

    Na tym etapie nawet nie wiem jaki masz testowy diagram, który nie może być skomplikowany
    Czy robiłeś test z diodą tak jak sugerowałem poprzednio?
    To by wiele wyjaśniło...

    e marcus
  • #5 21398563
    LUKAS616
    Poziom 11  
    Posty: 99
    Ocena: 30
    emarcus napisał:
    LUKAS616 napisał:

    Ad1 nie jestem elektronikiem więc datasheet mi nic nie powie.

    Nie musisz być elektronikiem aby przeczytać I zrozumieć pierwszą stronę datasheet, która mówi że urządzenie to zostało wycofane i nie powinno być stosowane w nowych projektach!!!
    Zwróć uwagę na datę zmiany tego statusu: - dwadzieścia lat temu
    Podano również czym je podmienić!

    Pierwsza strona datasheetu dla A3141, A3142, A3143 i A3144 informująca o wycofaniu produktów.

    Cytat:

    Ad3 nie wiem co to jest więc nic mi to nie mówi

    Więc potrzebujesz dowiedzieć się, bo bez tego nie ruszysz dalej !!!

    Cytat:

    Ad4 podpiąłem rezystor i to nic nie dało. Dalej jest to samo.


    Nie może być "to samo"...
    Aby prowadzić dalszą dyskusje w tym kierunku,to należałoby pokazać na jakimś schemacie/szkicu twojego układu, lub foto jak ty to podpiąłeś…..
    Nie jest żadnym moim interesem aby 'mącić ci w głowie'.

    Popróbuje znaleźć ci w internecie jakieś przykładowe video z testami z tym urządzeniem.

    Tymczasem odszukaj co to jest OC (open collector) układu tranzystorowego i zastosuj poprawnie.

    Na tym etapie nawet nie wiem jaki masz testowy diagram, który nie może być skomplikowany
    Czy robiłeś test z diodą tak jak sugerowałem poprzednio?
    To by wiele wyjaśniło...

    e marcus


    Oto moj kod

    #include <OneWire.h>
    #include <Wire.h>

    #include <LiquidCrystal_I2C.h>

    LiquidCrystal_I2C lcd(0x27,20,4);
    int predkoscpin = 18;
    volatile int impulsydystansu = 0;
    float Dystans = 0;

    void getFlow3 ()
    { impulsydystansu++;

    }

    void setup()
    {
    lcd.init();
    lcd.backlight();
    pinMode(predkoscpin, INPUT);
    attachInterrupt(digitalPinToInterrupt(18), getFlow3, FALLING);

    void loop () {
    Dystans = (impulsydystansu);
    lcd.setCursor(0,2);
    lcd.print("Dystans");
    lcd.setCursor(12,2);
    lcd.print(Dystans,1);
    lcd.setCursor(16,2);
    lcd.print("km");}

    Schemat podlaczenia jest prosty. Vcc z czujnika halla podpinam do plytki stykowej z vcc z arduino, gnd do gnd plytki stykowej do ktorej podlaczony jest gnd arduino a D0 podpinam do pinu 18 arduino. Zalaczam tez jak wyglada ten czujnik halla.
    Załączniki:
    • Obrotomierz Arduino z czujnikiem Halla A3144 i komparatorem LM393 - błędne zliczanie Screenshot_2025-01-18-15-05-56-481_com.android.chrome.jpg (176.71 KB) Musisz być zalogowany, aby pobrać ten załącznik.
  • REKLAMA
  • #6 21398877
    emarcus
    Poziom 21  
    Posty: 368
    Pomógł: 42
    Ocena: 72
    LUKAS616 napisał:

    Oto moj kod
    .....................
    Schemat podlaczenia jest prosty. Vcc z czujnika halla podpinam do plytki stykowej z vcc z arduino, gnd do gnd plytki stykowej do ktorej podlaczony jest gnd arduino a D0 podpinam do pinu 18 arduino. Zalaczam tez jak wyglada ten czujnik halla.


    Na tym etapie kod programu nie ma znaczenia, do czasu wytestowania funkcjonalności samego czujnika/modułu.
    Twój pierwszy post referował do 'gołego' czujnika A3144, gdy tymczasem masz w projekcie moduł z tym sensorem o nieprecyzyjnej (bez sensownej) o nim informacji od dystrybutora:

    https://kamami.pl/en/hall-sensors/1184898-modul-z-czujnikiem-halla-a3244-i-komparatorem.html (z obrazka to twój moduł).

    Porównaj opis do tego modułu i alternatywnie oferowanego niżej na tej samej stronie.
    W dalszym ciągu nie jest znana i wyjaśniona potrzeba/funkcja komparatora do źródłowego czujnika z wyjściem cyfrowym (0 lub 1) ?

    Owszem, są w dystrybucji inne moduły z tym czujnikiem, bez komparatora; zawierające na płytce tylko rezystor podciągający i diodę sygnalizującą obecność zasilania. I taki moduł by ci wystarczył,.
    Patrz przykład:
    https://www.youtube.com/watch?v=iukwQ698vQQ
    W tym aspekcie czy to jest; 'PICO' czy twoje 'UNO' nie jest znaczące...

    e marcus
  • REKLAMA
  • #7 21399195
    LUKAS616
    Poziom 11  
    Posty: 99
    Ocena: 30
    emarcus napisał:
    LUKAS616 napisał:

    Oto moj kod
    .....................
    Schemat podlaczenia jest prosty. Vcc z czujnika halla podpinam do plytki stykowej z vcc z arduino, gnd do gnd plytki stykowej do ktorej podlaczony jest gnd arduino a D0 podpinam do pinu 18 arduino. Zalaczam tez jak wyglada ten czujnik halla.


    Na tym etapie kod programu nie ma znaczenia, do czasu wytestowania funkcjonalności samego czujnika/modułu.
    Twój pierwszy post referował do 'gołego' czujnika A3144, gdy tymczasem masz w projekcie moduł z tym sensorem o nieprecyzyjnej (bez sensownej) o nim informacji od dystrybutora:

    https://kamami.pl/en/hall-sensors/1184898-modul-z-czujnikiem-halla-a3244-i-komparatorem.html (z obrazka to twój moduł).

    Porównaj opis do tego modułu i alternatywnie oferowanego niżej na tej samej stronie.
    W dalszym ciągu nie jest znana i wyjaśniona potrzeba/funkcja komparatora do źródłowego czujnika z wyjściem cyfrowym (0 lub 1) ?

    Owszem, są w dystrybucji inne moduły z tym czujnikiem, bez komparatora; zawierające na płytce tylko rezystor podciągający i diodę sygnalizującą obecność zasilania. I taki moduł by ci wystarczył,.
    Patrz przykład:
    https://www.youtube.com/watch?v=iukwQ698vQQ
    W tym aspekcie czy to jest; 'PICO' czy twoje 'UNO' nie jest znaczące...

    e marcus

    Ta stronka ma jakis blad bo wyswietla sie ze nie istnieje. W pierwszym poscie pisalem ze to jest czujnik halla na plytce z komparatorem wiec nie wiem skad taki pomysl ze korzystam z ,, golego,, czujnika 🤷‍♂️ To ze czujnik ma komparator czy nie ma to mnie najmniej obchodzi. Chodzilo mi aby zczytywac liczbe obrotow kola za pomoca czujnika halla. Taki kupilem wiec postanowilem go wykorzystac.
  • #8 21399294
    emarcus
    Poziom 21  
    Posty: 368
    Pomógł: 42
    Ocena: 72
    LUKAS616 napisał:
    To ze czujnik ma komparator czy nie ma to mnie najmniej obchodzi.

    Dokładnie (!) , to właśnie co miałem na myśli..
    Może ktoś inny podejmie dalszą część tej dyskusji......

    e marcus

Podsumowanie tematu

✨ Użytkownik stara się zbudować obrotomierz na bazie Arduino, wykorzystując czujnik Halla A3144 oraz komparator LM393. Napotkał problem z błędnym zliczaniem impulsów, gdzie czujnik czasami zlicza pojedynczo, a czasami podwójnie lub wcale. Odpowiedzi sugerują, aby użytkownik zapoznał się z dokumentacją techniczną czujnika, zwracając uwagę na jego charakterystykę jako czujnika unipolarnego oraz na to, że jego wyjście jest typu open collector. Zwrócono również uwagę na niepotrzebność komparatora w układzie, ponieważ czujnik ma wbudowany obwód Schmitta, który zapewnia czysty sygnał. Użytkownik podzielił się kodem oraz schematem połączeń, jednak podkreślono, że najpierw należy przetestować sam czujnik, zanim przejdzie się do analizy kodu.
Podsumowanie wygenerowane przez AI na podstawie treści dyskusji.
REKLAMA