openhw:arduino:έλεγχος_σερβοκινητήρα_με_απλό_διακόπτη
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| openhw:arduino:έλεγχος_σερβοκινητήρα_με_απλό_διακόπτη [2026/06/07 09:38] – ↷ Page name changed from openhw:arduino:οδηγοί to openhw:arduino:έλεγχος_σερβοκινητήρα_με_απλό_διακόπτη alexandrospr | openhw:arduino:έλεγχος_σερβοκινητήρα_με_απλό_διακόπτη [2026/06/07 13:26] (current) – removed alexandrospr | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| - | ====== Ελεγχος σερβοκινητήρα με απλό διακόπτη ====== | ||
| - | |||
| - | Ελεγχος ενός σερβοκινητήρα με εναν απλό διακόπτη. Οταν πατηθεί ο διακόπτης ενεργοποιείται ο σερβοκινητηρας και κανει περιστροφη 180. | ||
| - | |||
| - | < | ||
| - | #include < | ||
| - | |||
| - | Servo myServo; | ||
| - | |||
| - | |||
| - | int angle=0; | ||
| - | int switchState = 0; | ||
| - | int servostate = 0 ; // toggled by keypressed events | ||
| - | int getinput = 0 ; | ||
| - | int keyevent = 0 ; // this var toggles to 1 to signify that a low-high-low switch event occured | ||
| - | // in the microcontroller' | ||
| - | // (it's consumed) and thus returns to 0. | ||
| - | int lowhigh = 0 ; | ||
| - | int highlow = 0 ; | ||
| - | int i = 0 ; | ||
| - | int loopcycle=0; | ||
| - | |||
| - | void setup() { | ||
| - | |||
| - | pinMode(12, | ||
| - | myServo.attach(9); | ||
| - | Serial.begin(9600); | ||
| - | |||
| - | } | ||
| - | |||
| - | void loop() { | ||
| - | |||
| - | switchState = digitalRead(12); | ||
| - | Serial.print(", | ||
| - | Serial.println(loopcycle); | ||
| - | |||
| - | // Ο διακόπτης είναι παντά LOW . Θέλουμε να αλλάξουμε τη λειτουργία του προγραμματος | ||
| - | // όταν πατηθεί και γίνει το σήμα εισόδου HIGH. | ||
| - | // Η μεταβλητή getinput αλλάζει από 0 σε 1 όταν πατηθεί μια φορά το κουμπι. | ||
| - | // αρα πρεπει να αλλάξει όταν το σήμα 12 περάσει τη μετάβαση LOW-HIGH-LOW. | ||
| - | // Κάθε πάτημα αλλάζει την κατάσταση του σερβοκινητήρα από ενεργό σε ανενεργό ή ανάποδα. | ||
| - | |||
| - | while (keyevent == 0) { // loop until a keypress low-high-low is registered | ||
| - | if (switchState == HIGH ){ | ||
| - | lowhigh = 1 ; // tmp key state that signifies that we catched the low-high | ||
| - | } | ||
| - | switchState = digitalRead(12); | ||
| - | if ( switchState == LOW && lowhigh == 1 ){ | ||
| - | keyevent = 1 ; // we have a low-high-low thus a keyevent registered. | ||
| - | } | ||
| - | } | ||
| - | |||
| - | if (keyevent == 1 ) { | ||
| - | keyevent = 0 ; // we consume the keyevent to produce work. | ||
| - | lowhigh = 0; | ||
| - | |||
| - | for ( angle = 10 ; angle <= 180 ; angle=angle+10){ | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | } | ||
| - | } | ||
| - | loopcycle++ ; | ||
| - | } | ||
| - | </ | ||
openhw/arduino/έλεγχος_σερβοκινητήρα_με_απλό_διακόπτη.1780825081.txt.gz · Last modified: by alexandrospr
