Obrotomierz na atmedze i problem :)
-
Autor tematu - Lider FORUM (min. 2000)
- Posty w temacie: 23
- Posty: 6105
- Rejestracja: 29 kwie 2009, 10:11
- Lokalizacja: Kraków / Jaworzno / Kopanka
Obrotomierz na atmedze i problem :)
Hej
Dłubię sobie obrotomierz do skuterka
Zbudowany jest tak, że NE555 łapie sygnał radiowy z kabla WN od świecy
i wyzwala w tym samym momencie migniecie LEDem. Napięcie zasilające LED
podałem na wejście procesora i odczytuje je w przerwaniu inkrementując
licznik mignięć. Co jakiś czas obliczam RPM, wysyłam wynik BT, resetuje licznik.
Przerwanie reaguje na rosnące zbocze sygnału na pinie Atmegi.
Mam jeden problem - prawdopodobnie sygnał z NE555 jest zaszumiony
i procesor traktuje pojedyncze mignięcie LEDa jako kilka (dokładnie 3-4)
narastające sygnały i zlicza tyle razy za dużo impulsów.
Próbowałem wyzwalać timer zboczem opadającym, zmianą stanu etc -
zawsze jest za dużo zliczeń.
Pytanie - czy da się coś ustawić w procesorze, żeby zmienić czułość
reakcji przerwania na zmianę stanu wejścia? Czyli odfiltrować sprzętowo
wejście...
Z góry dzięki
q
Dłubię sobie obrotomierz do skuterka
Zbudowany jest tak, że NE555 łapie sygnał radiowy z kabla WN od świecy
i wyzwala w tym samym momencie migniecie LEDem. Napięcie zasilające LED
podałem na wejście procesora i odczytuje je w przerwaniu inkrementując
licznik mignięć. Co jakiś czas obliczam RPM, wysyłam wynik BT, resetuje licznik.
Przerwanie reaguje na rosnące zbocze sygnału na pinie Atmegi.
Mam jeden problem - prawdopodobnie sygnał z NE555 jest zaszumiony
i procesor traktuje pojedyncze mignięcie LEDa jako kilka (dokładnie 3-4)
narastające sygnały i zlicza tyle razy za dużo impulsów.
Próbowałem wyzwalać timer zboczem opadającym, zmianą stanu etc -
zawsze jest za dużo zliczeń.
Pytanie - czy da się coś ustawić w procesorze, żeby zmienić czułość
reakcji przerwania na zmianę stanu wejścia? Czyli odfiltrować sprzętowo
wejście...
Z góry dzięki
q
„Największym wrogiem wolności jest najedzony niewolnik.”
-
- Lider FORUM (min. 2000)
- Posty w temacie: 4
- Posty: 2224
- Rejestracja: 17 wrz 2018, 10:47
- Lokalizacja: Wrocław
- Kontakt:
Re: Obrotomierz na atmedze i problem :)
Możesz podejrzeć na oscyloskopie, co indukuje się w antenie i na wyjściu NE555?
Możesz ustawić dłuższy czas impulsu z NE555, ale taki, żeby przy najwyższych obrotach dalej to był impuls.
Może jakiś mały kondensatorek na tej antenie?
Odfiltrować też możesz programowo, ignorując zbyt szybkie zmiany. Nie wiem jakie obroty mają skutery, ale 6000 rpm to ledwo 100 Hz
Możesz ustawić dłuższy czas impulsu z NE555, ale taki, żeby przy najwyższych obrotach dalej to był impuls.
Może jakiś mały kondensatorek na tej antenie?
Odfiltrować też możesz programowo, ignorując zbyt szybkie zmiany. Nie wiem jakie obroty mają skutery, ale 6000 rpm to ledwo 100 Hz
-
- Specjalista poziom 1 (min. 100)
- Posty w temacie: 1
- Posty: 246
- Rejestracja: 26 wrz 2016, 14:10
- Lokalizacja: Bielsko-Biała
Re: Obrotomierz na atmedze i problem :)
Kiedyś robiłem mały sterownik na AT8951 i jak się okazało użycie w pobliżu zapalniczki piezoelektrycznej powodowało nieprawidłowe działanie programu. Pomogło dołożenie transila na wejściu.
Można by też spróbować dać przed wejściem filtr dolnoprzepustowy RC.
Można by też spróbować dać przed wejściem filtr dolnoprzepustowy RC.
-
- Lider FORUM (min. 2000)
- Posty w temacie: 2
- Posty: 4419
- Rejestracja: 31 mar 2017, 19:47
- Lokalizacja: Warszawa
Re: Obrotomierz na atmedze i problem :)
To mogą być zakłócenia od świecy. Prawidłowo elektronika powinna być zaekranowana w stalowej obudowie podłączonej do masy (tylko metalowa obudowa powinna być też odizolowana w plastikowej obudowie może gruba farba?).
No ale przyczyna może też być w konstrukcji.
Pojawia się iskra która generuje dużo przeróżnych impulsów. A więc po wykryciu, powinien się pojawić sygnał na tyle długi aby wszystkie te impulsy przykryć. Nie wiem ile masz maksymalnych obrotów ? 1000? to 1/2000s można dać.
Teraz ten sygnał wędruje do mikrokontrolera i powinno być dobrze. Ale jak łapie zakłócenia to wtedy trzeba dać podciągnięcie pod masę na tyle małym rezystorem żeby śladowe prądy ucinał. Zakładając że wejście mikrokontrolera ma dużą rezystancję. Można też dać kondensator co opóźni narastanie napięcia na wejściu mikrokontrolera (nie pamiętam od jakiego napięcia jest stan wysoki).
No ale przyczyna może też być w konstrukcji.
Pojawia się iskra która generuje dużo przeróżnych impulsów. A więc po wykryciu, powinien się pojawić sygnał na tyle długi aby wszystkie te impulsy przykryć. Nie wiem ile masz maksymalnych obrotów ? 1000? to 1/2000s można dać.
Teraz ten sygnał wędruje do mikrokontrolera i powinno być dobrze. Ale jak łapie zakłócenia to wtedy trzeba dać podciągnięcie pod masę na tyle małym rezystorem żeby śladowe prądy ucinał. Zakładając że wejście mikrokontrolera ma dużą rezystancję. Można też dać kondensator co opóźni narastanie napięcia na wejściu mikrokontrolera (nie pamiętam od jakiego napięcia jest stan wysoki).
-
- ELITA FORUM (min. 1000)
- Posty w temacie: 1
- Posty: 1670
- Rejestracja: 03 sty 2007, 14:27
- Lokalizacja: Wiedeń
Re: Obrotomierz na atmedze i problem :)
Jako pierwsze - na wejsciu "anteny" dałbym diody ograniczające (jedną do masy drugą do zasilania, ustawione tak żeby normalnie nie przewodziły ale zwierały napięcia wyższe od zasilania i niższe od masy).
Ostatnio zmieniony 03 lis 2020, 15:21 przez grg12, łącznie zmieniany 1 raz.
-
- Lider FORUM (min. 2000)
- Posty w temacie: 2
- Posty: 4419
- Rejestracja: 31 mar 2017, 19:47
- Lokalizacja: Warszawa
Re: Obrotomierz na atmedze i problem :)
Nie przypominam sobie czegoś takiego w ATmega. Ale poczytaj o dzielniku napięcia. Choć to też nie jest to czego szukasz. Układ RC spowalnia narastanie napięcia i rozładowuje powstałe przepięcia.oprawcafotografii pisze: ↑03 lis 2020, 14:58Pytanie - czy da się coś ustawić w procesorze, żeby zmienić czułość
reakcji przerwania na zmianę stanu wejścia? Czyli odfiltrować sprzętowo
wejście...
Nie wiem po co ATmega skoro na chińskim Arduino za 15 zł się robi znacznie szybciej
-
Autor tematu - Lider FORUM (min. 2000)
- Posty w temacie: 23
- Posty: 6105
- Rejestracja: 29 kwie 2009, 10:11
- Lokalizacja: Kraków / Jaworzno / Kopanka
Re: Obrotomierz na atmedze i problem :)
Hmm Jak teraz przeliczałem to chyba mam za krótki impuls na wyjściu NE555
- w tej chwili około 0,0005s czyli do około 2000Hz, czyli do 120000RPM
Zmienię to 10x i zobaczę...
A tak wogóle to bazuję na układzie AVT2041:
https://www.dropbox.com/s/huv2zg8gzdlnn ... 1.pdf?dl=0
q
Dodane 39 minuty 38 sekundy:
Zmieniłem R3 na 50kOhm, powinno wystarczyć.
Chyba wiem co jest źródłem wyższych niż się spodziewam pomiarów - to, że iskier jest więcej
Jako źródła testowych wyładowań użyłem kuchenki gazowej i okazuje się, że domyślna iskra
długości <> 5mm odczytywana jest jako kilka wyładowań. Gdy zmieniłem położenie palnika
tak, żeby iskra miała ułamek mm to wynik zbliżył się do oczekiwanego - był może 10% wyższy.
Przypuszczam, że takie wyładowanie nie jest tak naprawdę pojedynczą iskrą...
W silniku raczej nie powinno być takich problemów. Zainstaluję jutro (jak nie będzie lało)
układ w skuterze i sprawdzę...
q
- w tej chwili około 0,0005s czyli do około 2000Hz, czyli do 120000RPM
Zmienię to 10x i zobaczę...
A tak wogóle to bazuję na układzie AVT2041:
https://www.dropbox.com/s/huv2zg8gzdlnn ... 1.pdf?dl=0
q
Dodane 39 minuty 38 sekundy:
Zmieniłem R3 na 50kOhm, powinno wystarczyć.
Chyba wiem co jest źródłem wyższych niż się spodziewam pomiarów - to, że iskier jest więcej
Jako źródła testowych wyładowań użyłem kuchenki gazowej i okazuje się, że domyślna iskra
długości <> 5mm odczytywana jest jako kilka wyładowań. Gdy zmieniłem położenie palnika
tak, żeby iskra miała ułamek mm to wynik zbliżył się do oczekiwanego - był może 10% wyższy.
Przypuszczam, że takie wyładowanie nie jest tak naprawdę pojedynczą iskrą...
W silniku raczej nie powinno być takich problemów. Zainstaluję jutro (jak nie będzie lało)
układ w skuterze i sprawdzę...
q
„Największym wrogiem wolności jest najedzony niewolnik.”
-
- Lider FORUM (min. 2000)
- Posty w temacie: 7
- Posty: 7859
- Rejestracja: 26 lut 2011, 23:24
- Lokalizacja: mazowieckie
Re: Obrotomierz na atmedze i problem :)
Da się, tylko mi się nie chce kombinować.
Najprościej liczyć timerem czas od poprzedniego przerwania i jeśli wiadomo że silnik nie zdążył zrobić obrotu, to przerwanie olać.
Oczywiście to przy założeniu, że umiesz programować, a nie męczyć się w Bascomie.
Co do samej iskry, to przy iskrownikach elektronicznych możesz mieć kilka iskier zamiast jednej, ale też możesz mieć drugą iskrę na wydechu, albo w innym położeniu korbowodu. Taka nadmiarowa iskra i tak niczego nie zapali, więc jej usuwanie nie ma sensu.
-
Autor tematu - Lider FORUM (min. 2000)
- Posty w temacie: 23
- Posty: 6105
- Rejestracja: 29 kwie 2009, 10:11
- Lokalizacja: Kraków / Jaworzno / Kopanka
Re: Obrotomierz na atmedze i problem :)
Słusznie, nie wiem dlaczego na to nie wpadłem
Wystarczy olać wywołania częstsze niż powiedzmy 10.000RPM
Zdam raport czy trzeba było...
q
Dodane 32 minuty 11 sekundy:
No i chyba temat z bani Dodałem warunek - sprawdzam, czy od poprzedniej iskry
minęło 0.005s, jeśli nie to olewam. Działa idealnie Zmierzyłem, że zapalarka
w kuchence błyska z częstotliwością 2.59Hz
Ciąg dalszy nastąpi
q
„Największym wrogiem wolności jest najedzony niewolnik.”