Skocz do zawartości

Problem z programem do rębaka


Piotrix198

Pomocna odpowiedź

cześć,

potrzebuje pomocy z programem do sterowania rębaka no stress. Większość kodu zrobiłem lecz coś nie działa program i nie mam pomysłu co jest nie tak.
program ten ma za zadanie po wykryciu 3000 obrotów RPM włączyć przekaźnik sterowania silnikiem do przodu, lecz gdy obroty spadną do 1000 ma on włączyć na 0,5s przekaźnik silnika do tyłu i go zatrzymać. Po osiągnięciu obrotów 3000 ma on od nowa uruchomić silnik do przodu.

pin awaria - wyłącznik bezpieczeństwa(wyłącza oba silniki)

zmienna walek - włączanie wyłączanie silnika do przodu

prowizorycznie RPM zmieniam wartością zmiennej

 


//#define czujnik 2 // - w projekcie obrotomierz jest jako RPM
//#define walek 6 //(OPCJONALNIE) czy jest wlaczony walek
#define awaria 5 // wyłącza posów 
#define cewkaPrzod 3 // przekaznik wlaczajacy posow w przod
#define cewkaTyl 4 // przekaznik wlaczajacy posow w tyl

int RPM = 3001;
int a = 0;
bool walek;

void setup(){  
 //pinMode(czujnik, INPUT_PULLUP);
 //pinMode(walek, INPUT_PULLUP); // wlaczyc jesli jest czujnik wałka
  pinMode(awaria, INPUT_PULLUP);  
  pinMode(cewkaPrzod, OUTPUT);
  pinMode(cewkaTyl, OUTPUT); 
 
}
  void loop(){
walek = false;
    
if(walek == true){
  digitalWrite(cewkaPrzod, HIGH);
}
if(walek == false){
  digitalWrite(cewkaPrzod, LOW);
}
  walek = false;
digitalWrite(cewkaTyl, LOW);
//digitalWrite(cewkaPrzod, LOW);


while(digitalRead(awaria) == HIGH){       
  if(a == 0 && RPM < 1000) {
    walek = false;
  
    digitalWrite(cewkaTyl, HIGH);
    delay(500);
    digitalWrite(cewkaTyl, LOW);
    a = a + 1;
  }
   
  if(RPM > 3000){
    walek = true;
    a = 0;
  
  }  
 } 
}

 

Edytowano przez Piotrix198
Link do komentarza
Share on other sites

@Treker jeśli nadałem zmiennej wartość RPM = 3001,  zgodnie z 

if(RPM > 3000){
    walek = true;
    a = 0;

na pinie nie było sygnału dodatniego.

Na tą chwile troche zmienilem kod lecz nie wiem jak sprawdzic czy on działa tzn. jeśli zmieniam zmienną " b " w void setup to ta nie zmienia się.
Oto zmieniony kod
 

//#define czujnik 2 // - w projekcie obrotomierz jest jako RPM
//#define walek 6 //(OPCJONALNIE) czy jest wlaczony walek
 // wyłącza posów 
#define cewkaPrzod 3 // przekaznik wlaczajacy posow w przod
#define cewkaTyl 4 // przekaznik wlaczajacy posow w tyl
#define awaria 5
//#define przycisk 7

int RPM = 2000;
int a = 0;
int b = 2; // sprawdza czy obroty(np. 2000) są podczas spadku z 3000 czy po wzroście od 1000


void setup(){  
 //pinMode(czujnik, INPUT_PULLUP);
 //pinMode(walek, INPUT_PULLUP); // wlaczyc jesli jest czujnik wałka
  pinMode(awaria, INPUT_PULLUP);  
  pinMode(cewkaPrzod, OUTPUT);
  pinMode(cewkaTyl, OUTPUT); 
  pinMode(przycisk, INPUT_PULLUP);
  
  
}
 void loop(){
 
  

  
  
  digitalWrite(cewkaPrzod, LOW);
  digitalWrite(cewkaTyl, LOW);

  while(HIGH) {
    
    if(RPM > 999){
      if(RPM < 3001){
        if(b == 2){
        digitalWrite(cewkaPrzod, HIGH);
        digitalWrite(cewkaTyl, LOW);
        a = 0;
      } else if(b == 1){
        digitalWrite(cewkaPrzod, LOW);
        digitalWrite(cewkaTyl, LOW);
        a = 0;
      }
      else if(RPM > 3000);
      digitalWrite(cewkaPrzod, HIGH);
      digitalWrite(cewkaTyl, LOW);
      b = 2;      
    }
    else if(a == 0){
      if(RPM < 1000){
      digitalWrite(cewkaPrzod, LOW);
      digitalWrite(cewkaTyl, HIGH);
      delay(500);
      digitalWrite(cewkaTyl, LOW);
      a = a + 1;
      b = 1;
      
    }
  }  
 }
}
}

 

Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.