Hello everyone,
I am doing something with servo motors and I need yall help with it. I’m trying to make 5 servo motors to do a thing then a button is pressed, but servo motors should turn off after 30s or more, basically I’m trying to do is off timer. In code you can see I was trying to make variable (ServoFlag) and with that variable control servo motor off time, but it didn’t work as planed. How can I make it work? Thank you for answers in advanced.
P.S.
Bear in mind that I’m new to programming and if you could answer the question, like you trying to explain it for dumb person (me) and try to ignore the comments and other random sh*t.
#include <Servo.h> //
#include <Stepper.h> // Pasirenkamos bibliotekos pritaikytos naudojamams įrenginiams
#include <SerialMP3Player.h> //
int servopina = 3; //
Servo Servo1; // Sukuriami servo variklių kintamieji.
int servopinb = 10; // Taip pat virtualūs kintamieji, valdantys
Servo Servo2; // servopin* =n.
int servopinc = 9; //
Servo Servo3; //
int servopind = 5; //
Servo Servo4; //
int servopine = 6; //
Servo Servo5; //
int buttonpin = 11; // Mygtukui priskiriamas kintamasis
int buttonstate = 0; // in virtualus kintamasis skaitantis mygtuko reikšmę
long randomNumber; // Ilgasis skaičius nenuspėjamai keičiantis servo variklių reikšmes.
int ServoFlag = 0; //
int Servomotor = 0; // Kintamasis naudojamas *switch* funkcijoje.
int TX = 7; // Nustatomi kintamieji MP3 grotuvo
int RX = 0; //
SerialMPPlayer mp3 (RX, TX);
void setup() {
Serial.begin (9600);
mp3.begin (9600);
delay(500);
randomSeed(analogRead (A0)); // Nustatomas kontaktas iš kurio skaitoma *random* reikšmė.
Servo1.attach (servopina); //
Servo2.attach (servopinb); //Priskiriami kintamieji.
Servo3.attach (servopinc); //
Servo4.attach (servopind); //
Servo5.attach (servopine); //
pinMode (buttonpin, INPUT); // Mygtukas nusakomas kaip įėjimas.
Servo1.write(100); // Veiksmas vyksta tik vieną kartą
delay(500); // įsitikinti, kad servo varikliai vis dar veikia
Servo2.write(90); // ir sugražinti jų reikšmes į pradinę padėtį.
delay(500);
Servo3.write(15);
delay(500);
Servo4.write(40);
delay(500);
Servo5.write(30);
delay(1000);
Servo1.write(20);
delay(500);
Servo2.write(10);
delay(500);
Servo3.write(100);
delay(500);
Servo4.write(130);
delay(500);
Servo5.write(115);
delay(500);
mp3.sendCommand (CMD_SEL_DEV, 0, 2); // Pasirenkama MicroSD kortelė
delay(500);
}
void loop() {
buttonstate = digitalRead (buttonpin);
if (buttonstate == HIGH){
mp3.play();
delay(3000);
digitalWrite(ServoFlag, HIGH);
delay(30000);
digitalWrite(ServoFlag, LOW);
}
if (ServoFlag == HIGH){
Servomotor = random (1, 6); // Veiksmas išrenka atsitiktinai *Switch* funkcijos skaičių
}
if (ServoFlag == LOW){
Servomotor = 0;
}
switch (Servomotor){ // *Switch* funkcija naudojama servo
case 1: // variklio nustatymui pagal random funkcija.
Servo1.write (100); // servo variklių skaičiai eina nuo 1 iki 5
delay (1000);
Servo1.write (20);
delay(1000);
break;
case 2:
Servo2.write (90);
delay(1000);
Servo2.write (10);
delay (1000);
break;
case 3:
Servo3.write (15);
delay (1000);
Servo3.write (100);
delay (1000);
break;
case 4:
Servo4.write (40);
delay (1000);
Servo4.write (130);
delay (1000);
break;
case 5:
Servo5.write (30);
delay (1000);
Servo5.write (115);
delay (1000);
break;
}
}
ServoRandom.ino (3.12 KB)