- 
 1. Data: 2017-07-07 12:01:01
 Temat: Arduino - zliczanie impulsów
 Od: "Michal M. Lechanski" <m...@d...eu>
 Ja po prośbie do doświadczonych bardziej niż ja... 
 
 Otóż próbuję zliczać obroty koła.
 
 Pomiar 1 (jeden impuls/1 obrót koła):
 Czujnik IR TCRT5000 osłonięty po bokach, w odległości ok 10-15mm od
 odbijającej powierzchni koła, na której przylepiona jest czarna taśma o
 długości ok 10cm. Pomiar na analogowym pinie pokazuje ok 400 gdy przed
 czujnikiem jest powierzchnia odbijająca i ok 27 gdy przed czujnikiem
 jest taśma.
 
 Pomiar 2 (10 impulsów na 1 obrót koła):
 na kole umocowanych jest 10 silnych magnesów (10mm średnica, 5mm
 wysokość, materiał N52) odległość miedzy magnesami ok 10cm. CZujnik -
 miniaturowy kontaktron. Odległość od magnesu do kontaktronu 3-4mm
 (sprawdzone - kontaktron zwiera się już przy odległości ok 15mm od magnesu).
 
 Pomiar 3:
 jak pomiar 2 ale zamiast kontaktronu jest czujnik Halla - odległość od
 magnesu ok 4-5mm.
 
 pomiar 4 i 5 tak jak 2 i 3, ale ilość magnesów zredukowana do 5
 
 Płytka Arduino UNO R3 ATmega328P (CH340T), nieoryginalne, skrypty bądź z
 podręcznika Arduino bądź z instrukcji do czujnika Halla.
 
 Spostrzeżenie - przy wolnych obrotach wszystko działa jak powinno i
 impulsy zliczane są poprawnie. Jednak przy nieco większej szybkości w
 każdej z powyższych konfiguracji "gubione" są impulsy, czyli zliczonych
 jest mniej niż powinno być.
 Prędkość przy której impulsy zaczynają być gubione szacuję na 15-20km/h.
 
 Gdyby impulsów zliczane było więcej niż powinno, to w przypadku
 kontaktronu zwaliłbym to na wibrację styków... ale tu nie ma znaczenia
 jaki czujnik jest zastosowany.
 Ja tego nie rozumiem - przecież częstotliwość pracy Arduino jest o wiele
 wyższa niż częstotliwość zliczanych impulsów. Czy możliwe jest że płytka
 Arduino nie działa poprawnie? A jeśli to nie to, to w czym jest problem?
 
 Z góry dziękuję za jakiekolwiek sugestie.
 
 --
 Michał
 
- 
 2. Data: 2017-07-07 12:05:35
 Temat: Arduino - zliczanie impulsów
 Od: Zenek Kapelinder <4...@g...com>
 Kup za 20 zlotych licznik do roweru. Bedzie dzialal i jeszcze bedzie mial bezcenna 
 czesc. Bedzie mial ladna obudowe.
 
- 
 3. Data: 2017-07-07 12:06:20
 Temat: Re: Arduino - zliczanie impulsów
 Od: Cezar <c...@B...pl.invalid>
 On 07/07/2017 11:01, Michal M. Lechanski wrote: 
 >
 > Z góry dziękuję za jakiekolwiek sugestie.
 >
 
 Pokaż kod. Uzywasz przerwań?
 
 c.
 
 
 
 
- 
 4. Data: 2017-07-07 12:09:30
 Temat: Re: Arduino - zliczanie impulsów
 Od: "Michal M. Lechanski" <m...@d...eu>
 W dniu 07/07/2017 o 11:05, Zenek Kapelinder pisze: 
 > Kup za 20 zlotych licznik do roweru. Bedzie dzialal i jeszcze bedzie mial bezcenna
 czesc. Bedzie mial ladna obudowe.
 >
 Już kupiłem.
 Nadal jednak próbuję to zrozumieć.
 
 --
 Michał
 
- 
 5. Data: 2017-07-07 12:24:17
 Temat: Re: Arduino - zliczanie impulsów
 Od: "Michal M. Lechanski" <m...@d...eu>
 W dniu 07/07/2017 o 11:06, Cezar pisze: 
 > On 07/07/2017 11:01, Michal M. Lechanski wrote:
 >>
 >> Z góry dziękuję za jakiekolwiek sugestie.
 >>
 >
 > Pokaż kod. Uzywasz przerwań?
 
 Żadnych przerwań. "Kod" dla czujnika IR jak poniżej. Dla innych
 czujników poziom "skomplikowania" taki sam.
 
 #include <LiquidCrystal.h>
 
 LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
 
 int val0;
 int irPin0 = 1;
 int licznik;
 
 void setup()
 {
 lcd.begin(16, 2);
 licznik=0;
 val0=0;
 lcd.clear();
 lcd.setCursor(0, 0);
 lcd.print("val0 = ");
 lcd.setCursor(0, 1);
 lcd.print("licznik = ");
 }
 
 void loop()
 {
 val0 = analogRead(irPin0);
 if (val0 > 100)
 {
 licznik++;
 }
 lcd.setCursor(8, 0);
 lcd.print(val0);
 lcd.setCursor(10, 1);
 lcd.print(licznik);
 }
 
 P.S. Przepraszam - w pierwszym poście powinno być:
 "Pomiar na analogowym pinie pokazuje ok 27 gdy przed
 czujnikiem jest powierzchnia odbijająca i ok 400 gdy przed czujnikiem
 jest taśma."
 
 --
 Michał
 
- 
 6. Data: 2017-07-07 12:40:30
 Temat: Re: Arduino - zliczanie impulsów
 Od: Nifhelm <pytaj@grupie>
 W dniu 07.07.2017 o 12:24, Michal M. Lechanski pisze: 
 > W dniu 07/07/2017 o 11:06, Cezar pisze:
 >> On 07/07/2017 11:01, Michal M. Lechanski wrote:
 >>>
 >>> Z góry dziękuję za jakiekolwiek sugestie.
 >>>
 >>
 >> Pokaż kod. Uzywasz przerwań?
 >
 > Żadnych przerwań. "Kod" dla czujnika IR jak poniżej. Dla innych
 > czujników poziom "skomplikowania" taki sam.
 >
 > #include <LiquidCrystal.h>
 >
 > LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
 >
 > int val0;
 > int irPin0 = 1;
 > int licznik;
 >
 > void setup()
 > {
 > lcd.begin(16, 2);
 > licznik=0;
 > val0=0;
 > lcd.clear();
 > lcd.setCursor(0, 0);
 > lcd.print("val0 = ");
 > lcd.setCursor(0, 1);
 > lcd.print("licznik = ");
 > }
 >
 > void loop()
 > {
 > val0 = analogRead(irPin0);
 > if (val0 > 100)
 > {
 > licznik++;
 > }
 > lcd.setCursor(8, 0);
 > lcd.print(val0);
 > lcd.setCursor(10, 1);
 > lcd.print(licznik);
 > }
 >
 > P.S. Przepraszam - w pierwszym poście powinno być:
 > "Pomiar na analogowym pinie pokazuje ok 27 gdy przed
 > czujnikiem jest powierzchnia odbijająca i ok 400 gdy przed czujnikiem
 > jest taśma."
 >
 Witam.
 Czas konwersji wartości analogowej na cyfrową w Atmedze 328 może sięgać
 260us Do tego dochodzi komunikacja z wyświetlaczem. Może po prostu
 pomiar trafia przed i za czarną taśmą i stąd gubienie impulsów. Swoją
 drogą dziwię się, że przy wolnych obrotach nie zlicza po dwa, trzy i
 więcej impulsów na obrót.
 
 Pozdrawiam.
 
- 
 7. Data: 2017-07-07 12:44:11
 Temat: Re: Arduino - zliczanie impulsów
 Od: Cezar <c...@B...pl.invalid>
 On 07/07/2017 11:24, Michal M. Lechanski wrote: 
 > W dniu 07/07/2017 o 11:06, Cezar pisze:
 >> On 07/07/2017 11:01, Michal M. Lechanski wrote:
 >>>
 >>> Z góry dziękuję za jakiekolwiek sugestie.
 >>>
 >>
 >> Pokaż kod. Uzywasz przerwań?
 >
 > Żadnych przerwań. "Kod" dla czujnika IR jak poniżej. Dla innych
 > czujników poziom "skomplikowania" taki sam.
 >
 > #include <LiquidCrystal.h>
 >
 > LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
 >
 > int val0;
 > int irPin0 = 1;
 > int licznik;
 >
 > void setup()
 > {
 > lcd.begin(16, 2);
 > licznik=0;
 > val0=0;
 > lcd.clear();
 > lcd.setCursor(0, 0);
 > lcd.print("val0 = ");
 > lcd.setCursor(0, 1);
 > lcd.print("licznik = ");
 > }
 >
 > void loop()
 > {
 > val0 = analogRead(irPin0);
 > if (val0 > 100)
 > {
 > licznik++;
 > }
 > lcd.setCursor(8, 0);
 > lcd.print(val0);
 > lcd.setCursor(10, 1);
 > lcd.print(licznik);
 > }
 >
 > P.S. Przepraszam - w pierwszym poście powinno być:
 > "Pomiar na analogowym pinie pokazuje ok 27 gdy przed
 > czujnikiem jest powierzchnia odbijająca i ok 400 gdy przed czujnikiem
 > jest taśma."
 >
 
 
 W powyzszym kodzie jesli impuls przyjdzie podczas gdy piszesz do LCD,
 konsoli lub CPU wykonuje cokolwiek innego to zostanie pominięty.
 
 
 c.
 
 
- 
 8. Data: 2017-07-07 12:45:25
 Temat: Re: Arduino - zliczanie impulsów
 Od: Piotr Gałka <p...@c...pl>
 W dniu 2017-07-07 o 12:24, Michal M. Lechanski pisze: 
 > void loop()
 > {
 > val0 = analogRead(irPin0);
 > if (val0 > 100)
 > {
 > licznik++;
 > }
 > lcd.setCursor(8, 0);
 > lcd.print(val0);
 > lcd.setCursor(10, 1);
 > lcd.print(licznik);
 > }
 >
 
 Nigdy nic nie pisałem na mikrokontroler.
 Nie rozumiem tego programu.
 Jeśli to loop() jest jakoś wołane w pętli to przy zatrzymanym kole w
 pozycji gdy odczyt analogowy daje >100 licznik będzie ciągle wzrastał.
 
 A zakładając, że to jednak jakoś działa to przypuszczam, że obsługa lcd
 zabiera dużo czasu.
 
 Spróbuj wypisywać co 10-ty wynik i zobacz czy prędkość graniczna nie
 wzrośnie 10 razy.
 P.G.
 
- 
 9. Data: 2017-07-07 12:53:41
 Temat: Re: Arduino - zliczanie impulsów
 Od: "Michal M. Lechanski" <m...@d...eu>
 W dniu 07/07/2017 o 11:40, Nifhelm pisze: 
 
 > Swoją
 > drogą dziwię się, że przy wolnych obrotach nie zlicza po dwa, trzy i
 > więcej impulsów na obrót.
 
 Taki efekt zaobserwowałem z magnesami i kontaktronem - zliczane były
 impulsy gdy kontaktron "najeżdzał" nad magnes i gdy się od magnesu
 oddalał. Czyli licznik zliczał dwa razy więcej impulsów niż było
 magnesów. Zmniejszenie odległości kontaktronu od magnesu usunęło ten efekt.
 
 --
 Michał
 
- 
 10. Data: 2017-07-07 12:54:39
 Temat: Re: Arduino - zliczanie impulsów
 Od: Cezar <c...@B...pl.invalid>
 
 wyguglaj "arduino analog comparator interrupt count pulses"
 Kilka pierwszych stron da Ci gotowce.
 
 c.
 
 


 do góry
 do góry![Ranking lokat i kont oszczędnościowych. Przegląd możliwości dostępnych w sierpniu 2025 [© Freepik] Ranking lokat i kont oszczędnościowych. Przegląd możliwości dostępnych w sierpniu 2025](https://s3.egospodarka.pl/grafika2/najlepsze-lokaty/Ranking-lokat-i-kont-oszczednosciowych-Przeglad-mozliwosci-dostepnych-w-sierpniu-2025-268073-150x100crop.jpg) 
![Content marketing - co to jest i od czego zacząć? [© patpitchaya - Fotolia.com] Content marketing - co to jest i od czego zacząć?](https://s3.egospodarka.pl/grafika2/content-marketing/Content-marketing-co-to-jest-i-od-czego-zaczac-215740-150x100crop.jpg) 
![Ranking lokat i kont oszczędnościowych. Przegląd możliwości dostępnych we wrześniu 2025 [© freepik] Ranking lokat i kont oszczędnościowych. Przegląd możliwości dostępnych we wrześniu 2025](https://s3.egospodarka.pl/grafika2/najlepsze-lokaty/Ranking-lokat-i-kont-oszczednosciowych-Przeglad-mozliwosci-dostepnych-we-wrzesniu-2025-268649-150x100crop.jpg) 
![Delegacje krajowe i zagraniczne: nowe stawki diety przy podróżach służbowych od 29.11.2022 i 01.01.2023 [© Nejron Photo - Fotolia.com] Delegacje krajowe i zagraniczne: nowe stawki diety przy podróżach służbowych od 29.11.2022 i 01.01.2023](https://s3.egospodarka.pl/grafika2/koszty-podatkowe/Delegacje-krajowe-i-zagraniczne-nowe-stawki-diety-przy-podrozach-sluzbowych-od-29-11-2022-i-01-01-2023-249192-150x100crop.jpg) 
 Elektromobilność dojrzewa. Auta elektryczne kupujemy z rozsądku, nie dla idei
Elektromobilność dojrzewa. Auta elektryczne kupujemy z rozsądku, nie dla idei 
 
 
 
![Milion na koncie? Wystarczyło inwestować po około 2 tysiące miesięcznie [© wygenerowane przez AI] Milion na koncie? Wystarczyło inwestować po około 2 tysiące miesięcznie](https://s3.egospodarka.pl/grafika2/oszczedzanie-pieniedzy/Milion-na-koncie-Wystarczylo-inwestowac-po-okolo-2-tysiace-miesiecznie-269397-150x100crop.jpg) 
![Wynajem mieszkania w Warszawie pochłania 44% pensji. Zobacz, jak wypadamy na tle Europy [© pixabay] Wynajem mieszkania w Warszawie pochłania 44% pensji. Zobacz, jak wypadamy na tle Europy](https://s3.egospodarka.pl/grafika2/rynek-najmu/Wynajem-mieszkania-w-Warszawie-pochlania-44-pensji-Zobacz-jak-wypadamy-na-tle-Europy-269391-150x100crop.jpg) 
![Lot z niespodzianką - jak overbooking zmienia podróż i jakie prawa mają pasażerowie? [© wygenerowane przez AI] Lot z niespodzianką - jak overbooking zmienia podróż i jakie prawa mają pasażerowie?](https://s3.egospodarka.pl/grafika2/prawa-pasazera/Lot-z-niespodzianka-jak-overbooking-zmienia-podroz-i-jakie-prawa-maja-pasazerowie-269384-150x100crop.jpg) 
![Lider z sercem: empatia i zaufanie jako klucz do sukcesu zespołu [© wygenerowane przez AI] Lider z sercem: empatia i zaufanie jako klucz do sukcesu zespołu](https://s3.egospodarka.pl/grafika2/lider/Lider-z-sercem-empatia-i-zaufanie-jako-klucz-do-sukcesu-zespolu-269133-150x100crop.png) 
![Bańka AI za 5 bilionów dolarów: Kiedy inwestorzy powiedzą: sprawdzam? [© wygenerowane przez AI] Bańka AI za 5 bilionów dolarów: Kiedy inwestorzy powiedzą: sprawdzam?](https://s3.egospodarka.pl/grafika2/AI/Banka-AI-za-5-bilionow-dolarow-Kiedy-inwestorzy-powiedza-sprawdzam-269382-150x100crop.png) 
 


