Witajcie,
Chciałbym skonsultować z wami swój projekt układu i programu mającego na celu sterowanie prędkością silnika elektrycznego w zależności od prędkości ciągnika rolniczego.
Sygnał prędkości pojazdu podawany jest na złącze ISOBUS i ma następującą charakterystykę:
Stan wysoki powyżej 6,3 V
Stan niski poniżej 1,3 V
Wypełnienie stanem wysokim 20%
Wypełnienie stanem niskim 80%
Charakterystyka sygnału = 130 Hz/m/s
Sterowanie ma odbywać się w następujący sposób:
Dla prędkości 15 km/h (4,16 m/s * 130 impulsów=541,6 Hz) silnik z przekładnią ślimakową ma pracować z pełną prędkością PWM = 100 %.
Prędkość obrotowa silnika ma być proporcjonalna do prędkości ciągnika rolniczego (Wartość PWM maleje liniowo do 0 dla prędkości 0 km/h).
Parametry silnika:
Silnik 12 V DC o mocy 220 W i maksymalnej prędkości obrotowej 3000 obr/min (Przekładnia ślimakowa i=60, Moment na wyjściu 20 Nm)
Schemat układu:
Przedstawiony poniżej kod w celu wizualizacji wyników wyświetla wartość prędkości obrotowej i częstotliwość sygnału na porcie szeregowym.
W komentarzu przedstawiłem funkcję, która ma na PIN5 ustawić odpowiednią wartość PWM.
Problemy i pytania dot. UKŁADU:
Czy zastosowanie transoptora jest dobrym rozwiązaniem, do przekształcenia napięcia sygnału prędkości ?
Czy sygnał prędkości powinien być podpięty do transoptora przez rezystor ??
Czy sterowanie silnikiem DC może być realizowane za pomocą MOSFET Buzz11 ?
Czy bramka MOSFET powinna być podciągnięta rezystorem do GND ?
Czy zastosowanie tranzystora BC332 jest konieczne do sterowania MOSFETEM ?
Problemy i pytania dot. KODU:
Do testowania programu wykorzystuję wentylator PC i jego wyjście sygnałowe.
Program wyświetla ciągle wartość zmiennej pwm=0 niezależnie od prędkości obrotowej (warunek pętli większe od 25,5 i mniejsze 256 spełniony). Jaka może być tego przyczyna ?
Dokładność pomiaru jest dosyć słaba. Pomimo tego, że wentylator zasilany jest zewnętrznego źródła (brak sterowania) odczyt prędkości ma spory rozrzut. Jak można zwiększyć dokładność ?
Z góry dziękuję za pomoc.
Chciałbym skonsultować z wami swój projekt układu i programu mającego na celu sterowanie prędkością silnika elektrycznego w zależności od prędkości ciągnika rolniczego.
Sygnał prędkości pojazdu podawany jest na złącze ISOBUS i ma następującą charakterystykę:
Stan wysoki powyżej 6,3 V
Stan niski poniżej 1,3 V
Wypełnienie stanem wysokim 20%
Wypełnienie stanem niskim 80%
Charakterystyka sygnału = 130 Hz/m/s
Sterowanie ma odbywać się w następujący sposób:
Dla prędkości 15 km/h (4,16 m/s * 130 impulsów=541,6 Hz) silnik z przekładnią ślimakową ma pracować z pełną prędkością PWM = 100 %.
Prędkość obrotowa silnika ma być proporcjonalna do prędkości ciągnika rolniczego (Wartość PWM maleje liniowo do 0 dla prędkości 0 km/h).
Parametry silnika:
Silnik 12 V DC o mocy 220 W i maksymalnej prędkości obrotowej 3000 obr/min (Przekładnia ślimakowa i=60, Moment na wyjściu 20 Nm)
Schemat układu:
Przedstawiony poniżej kod w celu wizualizacji wyników wyświetla wartość prędkości obrotowej i częstotliwość sygnału na porcie szeregowym.
W komentarzu przedstawiłem funkcję, która ma na PIN5 ustawić odpowiednią wartość PWM.
Kod: C / C++
Problemy i pytania dot. UKŁADU:
Czy zastosowanie transoptora jest dobrym rozwiązaniem, do przekształcenia napięcia sygnału prędkości ?
Czy sygnał prędkości powinien być podpięty do transoptora przez rezystor ??
Czy sterowanie silnikiem DC może być realizowane za pomocą MOSFET Buzz11 ?
Czy bramka MOSFET powinna być podciągnięta rezystorem do GND ?
Czy zastosowanie tranzystora BC332 jest konieczne do sterowania MOSFETEM ?
Problemy i pytania dot. KODU:
Do testowania programu wykorzystuję wentylator PC i jego wyjście sygnałowe.
Program wyświetla ciągle wartość zmiennej pwm=0 niezależnie od prędkości obrotowej (warunek pętli większe od 25,5 i mniejsze 256 spełniony). Jaka może być tego przyczyna ?
Dokładność pomiaru jest dosyć słaba. Pomimo tego, że wentylator zasilany jest zewnętrznego źródła (brak sterowania) odczyt prędkości ma spory rozrzut. Jak można zwiększyć dokładność ?
Z góry dziękuję za pomoc.