• Witaj na Forum Arduino Polska! Zapraszamy do rejestracji!
  • Znajdziesz tutaj wiele informacji na temat hardware / software.
Witaj! Logowanie Rejestracja


Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
Warunek - wyhamowanie przed osiągnęciem zadanej pozycji
#4
A sory nie doczytałem... Skoro znasz pozycje wystarczy przerzut ADC do PWM tylko musisz określić punkt początkowy i punkt końcowy hamowania...

ADC= readanalog(pin); // odczyt pozycji
if(ostatni_ADC - ADC >0 ){ // pozycja UP
poprzedni_ADC= ADC; // przypisz teraźniejszą wartość ADC
ADC=constrain(ADC, punkt początkowyUP, punkt koncowyUP); // ograniczaj odczyt do zadanych
pwm = map(ADC, punkt_początkowyUP, punkt_koncowyUP, 255,0);
analogWrite(cewka,pwm);
}else{
if(ostatni_ADC -ADC <0 ){ // pozycj DOWN
poprzedni_ADC= ADC; // przypisz teraźniejszą wartość ADC
ADC=constrain(ADC, punkt początkowyDOWN, punkt koncowyDOWN); // ograniczaj odczyt do zadanych
pwm = map(ADC, punkt_początkowyDOWN, punkt_koncowyDOWN, 255,0);
analogWrite(cewka,pwm);
}else{
poprzedni_ADC= ADC; // przypisz teraźniejszą wartość ADC
// tu można wyłączyć zawór bo siłownik stoi w miejscu......
}
}
Arduino zostało wymyślone po to, by robić dobrze jedną prostą rzecz – migać diodą. 
 
Odpowiedź
  


Wiadomości w tym wątku
RE: Warunek - wyhamowanie przed osiągnęciem zadanej pozycji - przez Jarewa0606 - 19-02-2021, 23:05

Skocz do:


Przeglądający: 1 gości