21-06-2018, 22:56
(Ten post był ostatnio modyfikowany: 21-06-2018, 23:06 przez rafisoltys.)
Witajcie,
W związku z tym, że mój brat prowadzi gospodarstwo rolne, a moja dusza inżyniera sprawia, że staram się "ulepszać dobre" zrodziła się koncepcja na elektryczne sterowanie wydajnością siewnika.
Jako, że z wykształcenia jestem mechanikiem, nie elektronikiem pewne kwestie spędzają mi sen z powiek. Schemat mojego projektu wygląda następująco:
Stabilizator U2 zastosowano w celu dostosowania napięcia zasilania dla mikrokontrolera.
Stabilizator U3 zastosowano w celu dopasowania sygnału wejściowego do logiki mikrokontrolera (Sygnał wejściowy: Stan wysoki powyżej 6,3 V, Sygnał niski poniżej 1,3 V. Częstotliwość max: 1 kHz, sygnał "prostokątny")
Silnik elektryczny M1 12V DC 3000 obr/min o mocy maksymalnej 220W z przekładnią ślimakową i=60.
MOSFET - BUZ11
Masa wspólna.
Druga część to program:
Sygnał wejściowy określa prędkość pojazdu (130 Hz/m/s). Chciałbym, aby dla wartości około 4 m/s (520 Hz) PWM dla silnika był 100%, natomiast dla 0,5 m/s (ok 65Hz) 10%.
Chcę, aby odczyt i zmiana PWM realizowana był najlepiej co 13 Hz. Wiem, że program tej części jeszcze nie uwzględnia. Pokonało mnie samo wyświetlanie wartości prędkości na porcie szeregowym
Komunikacja z Serial jest. Wyświetla mi nawet wartość zmiennej rpm.
Problem jest tylko taki, że wartość ta jest w granicach 560-580 bez podłączenia czujnika (w wersji testowej chciałbym symulować czujnik przyciskiem).
Czy zwykły filtr RC powinien to wytłumić ?
W związku z tym, że mój brat prowadzi gospodarstwo rolne, a moja dusza inżyniera sprawia, że staram się "ulepszać dobre" zrodziła się koncepcja na elektryczne sterowanie wydajnością siewnika.
Jako, że z wykształcenia jestem mechanikiem, nie elektronikiem pewne kwestie spędzają mi sen z powiek. Schemat mojego projektu wygląda następująco:
Stabilizator U2 zastosowano w celu dostosowania napięcia zasilania dla mikrokontrolera.
Stabilizator U3 zastosowano w celu dopasowania sygnału wejściowego do logiki mikrokontrolera (Sygnał wejściowy: Stan wysoki powyżej 6,3 V, Sygnał niski poniżej 1,3 V. Częstotliwość max: 1 kHz, sygnał "prostokątny")
Silnik elektryczny M1 12V DC 3000 obr/min o mocy maksymalnej 220W z przekładnią ślimakową i=60.
MOSFET - BUZ11
Masa wspólna.
Druga część to program:
Kod:
float rev = 0;
int rpm;
int oldtime = 0;
int time;
void isr() //interrupt service routine
{
rev++;
}
void setup()
{
Serial.begin(9600);
attachInterrupt(0, isr, RISING);
}
void loop()
{
delay(500);
detachInterrupt(0);
time = millis()-oldtime;
rpm = (rev / time) * 6000;
oldtime = millis();
rev = 0;
Serial.print("Witaj");
Serial.print("Prędkość obrotowa to:");
Serial.print(rpm);
attachInterrupt(0, isr, RISING);
}
Sygnał wejściowy określa prędkość pojazdu (130 Hz/m/s). Chciałbym, aby dla wartości około 4 m/s (520 Hz) PWM dla silnika był 100%, natomiast dla 0,5 m/s (ok 65Hz) 10%.
Chcę, aby odczyt i zmiana PWM realizowana był najlepiej co 13 Hz. Wiem, że program tej części jeszcze nie uwzględnia. Pokonało mnie samo wyświetlanie wartości prędkości na porcie szeregowym
Komunikacja z Serial jest. Wyświetla mi nawet wartość zmiennej rpm.
Problem jest tylko taki, że wartość ta jest w granicach 560-580 bez podłączenia czujnika (w wersji testowej chciałbym symulować czujnik przyciskiem).
Czy zwykły filtr RC powinien to wytłumić ?