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

Za niskie napięcie impulsu - modyfikacja programu.

14 Mar 2019 19:32 177 8
  • Poziom 5  
    Witam. Program co do zasady ma być mnożnikiem impulsów. Nie jest mojego autorstwa, niestety nie umiem programować. Ma działać na zasadzie mierzenia czasu między pierwszym impulsem a następnym impulsem na wejściu, a na wyjściu podawać 3x szybciej impulsy 5V. Niestety Impulsy podawane z czujnika prędkości VSS mają napięcie 2V a Arduino nie wykrywa ich jako stan wysoki. Podpowiedziano mi że rozwiązaniem będzie zaimplementowanie do programu wewnętrznego komparatora. Niestety sam sobie z tym nie poradzę, czy mógłbym prosić o waszą pomoc. Uprzejmie z góry dziękuję.

    Kod: c
    Zaloguj się, aby zobaczyć kod


    Moderowany przez Marek_Skalski:

    Proszę używać znaczników syntax, zamiast code. Składnia jest wtedy kolorowana, kod jest bardziej czytelny, a posty krótsze.

  • Poziom 5  
    kaczakat napisał:
    A próbowałeś zwykły tranzystor, sygnał podpinasz pod bramę, pozostałe piny do 5V i pinu procesora?



    Tak próbowałem. Przy małych prędkościach samochodu (bo o to się tu rozchodzi) działało dobrze, ale przy większych już działało źle. dioda nawet na ok. 10ms w ogóle gasła. Dodatkowo problem polega na tym że kiedy sygnał podpięty pod baze zostaje zmasowany i nie działa mi prędkościomierz ;(
  • Specjalista - ESP32, ESP8266
    pajakxq napisał:
    Podpowiedziano mi że rozwiązaniem będzie zaimplementowanie do programu wewnętrznego komparatora.


    Zamiast digitalRead() użyj analogRead() i sprawdzaj, czy została przekroczona określona wartość napięcia. Oczywiście pin musi być też analogowy (A0..A3).

    Dodano po 1 [minuty]:

    Dobrze jest zweryfikował, jakie napięcie występuję przy małych, a jakie przy dużych prędkościach.
  • Poziom 1  
  • Poziom 5  
    Marek_Skalski napisał:
    Pokaż schemat. Coś musi być źle.


    To nie ma znaczenia bo tranzystor przy wyższej częstotliwości nie dawał rady
  • Poziom 31  
    pajakxq napisał:
    Marek_Skalski napisał:
    Pokaż schemat. Coś musi być źle.


    To nie ma znaczenia bo tranzystor przy wyższej częstotliwości nie dawał rady

    Popularne tranzystory działają do 200..500MHz a nawet więcej więc problem jest w konstrukcji.
  • Poziom 37  
    W sumie autor powinien za pomocą oscyloskopu obejrzeć ten sygnał - czy są tam impulsy, czy może jest to po prostu napięcie zależne od prędkości.
    Jeżeli są to impulsy, które są poza zakresem logiki arduino to można użyć wewnętrznego komparatora, o czym już wspominałem
    https://www.elektroda.pl/rtvforum/viewtopic.php?p=17840452#17840452