Zaliczenie Kacper Braczyk PSS
Program silnika krokowegounknown
c_cpp
a year ago
3.5 kB
9
Indexable
int kroki; //int kroki_zadane=7; int odebrane_kroki; long int opoznienie =50; #define IN1 23 #define IN2 22 #define IN3 18 #define IN4 5 bool prawo =false; bool lewo =false; void setup() { pinMode(33, INPUT_PULLUP); pinMode(32, INPUT_PULLUP); pinMode(23, OUTPUT); pinMode(22, OUTPUT); pinMode(18, OUTPUT); pinMode(5, OUTPUT); pinMode(LED_BUILTIN, OUTPUT); Serial.begin(9600); } void loop() { //prawo= digitalRead(33); Dla zadawania kierunku z przycisku //lewo= digitalRead(32); Serial.println(" Poda liczbe krokow (dodatnie w prawo, ujemne w lewo): "); odebrane_kroki= Serial.parseInt(); if(odebrane_kroki > 0){ prawo=true; lewo=false; } if(odebrane_kroki < 0){ prawo=false; lewo=true; } else{ Serial.println(" Nie podawaj zera "); } odebrane_kroki=abs(odebrane_kroki); if(prawo == true && lewo == false){ kroki=1; digitalWrite(LED_BUILTIN, HIGH); do{ for (int licznik=1; licznik <=4; licznik++){ switch (licznik) { case 1: digitalWrite(IN1, HIGH); digitalWrite(IN3, LOW); digitalWrite(IN2, LOW); digitalWrite(IN4, LOW); delayMicroseconds(opoznienie); Serial.println("poszedł case 1"); break; case 2: digitalWrite(IN1, LOW); digitalWrite(IN3, HIGH); digitalWrite(IN2, LOW); digitalWrite(IN4, LOW); Serial.println("poszedł case 2"); delay(opoznienie); break; case 3: digitalWrite(IN1, LOW); digitalWrite(IN3, LOW); digitalWrite(IN2, HIGH); digitalWrite(IN4, LOW); Serial.println("poszedł case 3"); delay(opoznienie); break; case 4: digitalWrite(IN1, LOW); digitalWrite(IN3, LOW); digitalWrite(IN2, LOW); digitalWrite(IN4, HIGH); Serial.println("poszedł case 4"); delay(opoznienie); break; }} kroki++; Serial.println(kroki); } while(kroki<=odebrane_kroki); } if(prawo == false && lewo == true){ kroki=1; digitalWrite(LED_BUILTIN, HIGH); do{ for (int licznik=1; licznik <=4; licznik++){ switch (licznik) { case 1: digitalWrite(IN1, LOW); digitalWrite(IN3, LOW); digitalWrite(IN2, LOW); digitalWrite(IN4, HIGH); delayMicroseconds(opoznienie); Serial.println("poszedł case 1"); break; case 2: digitalWrite(IN1, LOW); digitalWrite(IN3, LOW); digitalWrite(IN2, HIGH); digitalWrite(IN4, LOW); Serial.println("poszedł case 2"); delay(opoznienie); break; case 3: digitalWrite(IN1, LOW); digitalWrite(IN3, HIGH); digitalWrite(IN2, LOW); digitalWrite(IN4, LOW); Serial.println("poszedł case 3"); delay(opoznienie); break; case 4: digitalWrite(IN1, HIGH); digitalWrite(IN3, LOW); digitalWrite(IN2, LOW); digitalWrite(IN4, LOW); Serial.println("poszedł case 4"); delay(opoznienie); break; }} kroki++; Serial.println(kroki); } while(kroki<=odebrane_kroki); } else{ digitalWrite(LED_BUILTIN, LOW); } prawo=false; lewo=false; }
Editor is loading...
Leave a Comment