Zaliczenie Kacper Braczyk PSS
Program silnika krokowegounknown
c_cpp
2 years ago
3.5 kB
13
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