28-11-2020, 17:01
Witam
Buduje podstawkę obrotowa i utknąłem na niby prostym elemencie. O tuż założenie jest takie. Silnik krokowy napędza talerz obrotowy, A na panelu sterującym mam 3 przyciski (w Lewo, STOP, w prawo) oczywiście odpowiadające pracy silnika. Przyciski typu "Tact Switch"
- przyciśniecie przycisku w lewo powoduje ciągłą prace silnika w lewo
- przyciśniecie przycisku w prawo powoduje ciągłą prace silnika w prawo
- przyciśniecie przycisku STOP powoduje zatrzymanie silnika.
poniżej same przyciski. aktualnie przycisk w prawo. Zmian stanu przycisku miała powodowac zmiane "kierunek" odpowiedzialna za prace silnika. ale działa tylko w momęcie trzymania cisnietego przycisku.
Co robie zle albo czy moj tok myslenia nie jest poprawny. Proszę o pomoc.
Buduje podstawkę obrotowa i utknąłem na niby prostym elemencie. O tuż założenie jest takie. Silnik krokowy napędza talerz obrotowy, A na panelu sterującym mam 3 przyciski (w Lewo, STOP, w prawo) oczywiście odpowiadające pracy silnika. Przyciski typu "Tact Switch"
- przyciśniecie przycisku w lewo powoduje ciągłą prace silnika w lewo
- przyciśniecie przycisku w prawo powoduje ciągłą prace silnika w prawo
- przyciśniecie przycisku STOP powoduje zatrzymanie silnika.
poniżej same przyciski. aktualnie przycisk w prawo. Zmian stanu przycisku miała powodowac zmiane "kierunek" odpowiedzialna za prace silnika. ale działa tylko w momęcie trzymania cisnietego przycisku.
Co robie zle albo czy moj tok myslenia nie jest poprawny. Proszę o pomoc.
Kod:
int buttonR=A2; //przycisk w prawo
int buttonL=A4; //przycisk w lewo
int buttonS=A3; //przycisk stop
int kierunek = 0;
void setup() {
Serial.begin(9600);
pinMode(buttonR,INPUT_PULLUP);
pinMode(buttonL,INPUT_PULLUP);
pinMode(buttonS,INPUT_PULLUP);
}
void loop() {
Serial.print("kierunek: ");
Serial.print(kierunek);
int buttonStateR = digitalRead(buttonR); // czyta stan
Serial.print(" Stan ");
Serial.println(buttonStateR);
if (buttonStateR == LOW ) { // włączone
digitalWrite(buttonR, HIGH);
kierunek = 1;
}
else
if (buttonStateR == HIGH) { // wyłączone
digitalWrite(buttonR, LOW);
kierunek = 3;
}
}