Beste Arduino gebruikers!!
Ik heb een probleem met de programmering van de loop.
Even alleen naar de totale programma van de servo1() ---->
Zoals er u staat zal wanneer W hoog word het programma van servo1 draaien.
Echter het probleem is dat na 1 maal W hoog het programma ook maar 1 keer zijn cyclus maakt!
We willen dat na 1 maal W hoog het programma servo1 telkens in zijn cylcus blijft tot dat kleine w hoog word --> Kleine w hoog reset de groote W
Ik hoop dat jullie me kunnen helpen!!!!
cpp code
#include <Servo.h>
#include <Adafruit_NeoPixel.h>
#define PIN 10
Servo servoMain;
int wheels1high = 4;
int wheels1 = 5;
int wheels2 = 6;
int wheels2high = 7;
int doserenhigh = 8;
int doseren = 9;
Adafruit_NeoPixel strip = Adafruit_NeoPixel(60, PIN, NEO_GRB + NEO_KHZ800);
char command;
void setup(){
Serial.begin(9600);
servoMain.attach(10);
strip.begin();
strip.show(); // Initialize all pixels to 'off'
pinMode (wheels1high, OUTPUT);
pinMode (wheels1, OUTPUT);
pinMode (wheels2, OUTPUT);
pinMode (wheels2high, OUTPUT);
pinMode (doserenhigh, OUTPUT);
pinMode (doseren, OUTPUT);
}
void loop(){
if (Serial.available() > 0){
command = Serial.read();
Serial.write(command);
switch(command){
case 'W':
servo1()
break;
}
}
}
void wielen1(){
digitalWrite (wheels1high,HIGH);
analogWrite (wheels1, 200);
digitalWrite (wheels2high,HIGH);
analogWrite (wheels2, 200);
delay (2000);
digitalWrite (wheels1high,HIGH);
analogWrite (wheels1, 100);
digitalWrite (wheels2high,HIGH);
analogWrite (wheels2, 200);
delay (2000);
}
void wielen2(){
digitalWrite (wheels1high,HIGH);
analogWrite (wheels1, 100);
digitalWrite (wheels2high,HIGH);
analogWrite (wheels2, 200);
delay (2000);
digitalWrite (wheels1high,HIGH);
analogWrite (wheels1, 150);
digitalWrite (wheels2high,HIGH);
analogWrite (wheels2, 100);
delay (2000);
}
void wielen3(){
digitalWrite (wheels1high,HIGH);
analogWrite (wheels1, 250);
digitalWrite (wheels2high,HIGH);
analogWrite (wheels2, 250);
delay (2000);
digitalWrite (wheels1high,HIGH);
analogWrite (wheels1, 100);
digitalWrite (wheels2high,HIGH);
analogWrite (wheels2, 250);
delay (2000);
}
void wielen4(){
digitalWrite (wheels1high,HIGH);
analogWrite (wheels1, 150);
digitalWrite (wheels2high,HIGH);
analogWrite (wheels2, 100);
delay (2000);
digitalWrite (wheels1high,HIGH);
analogWrite (wheels1, 200);
digitalWrite (wheels2high,HIGH);
analogWrite (wheels2, 250);
delay (2000);
}
void servo1(){
servoMain.write(45); // Turn Servo Left to 45 degrees
delay(500); // Wait 1 second
servoMain.write(60); // Turn Servo Left to 0 degrees
delay(500); // Wait 1 second
servoMain.write(90); // Turn Servo back to center position (90 degrees)
delay(500); // Wait 1 second
servoMain.write(115); // Turn Servo Right to 135 degrees
delay(500); // Wait 1 second
servoMain.write(135); // Turn Servo Right to 180 degrees
delay(500); // Wait 1 second
servoMain.write(90); // Turn Servo back to center position (90 degrees)
delay(500); // Wait 1 second
}
void servo2(){
servoMain.write(45); // Turn Servo Left to 45 degrees
delay(500); // Wait 1 second
servoMain.write(60); // Turn Servo Left to 0 degrees
delay(500); // Wait 1 second
servoMain.write(90); // Turn Servo back to center position (90 degrees)
delay(500); // Wait 1 second
servoMain.write(115); // Turn Servo Right to 135 degrees
delay(500); // Wait 1 second
servoMain.write(135); // Turn Servo Right to 180 degrees
delay(500); // Wait 1 second
servoMain.write(90); // Turn Servo back to center position (90 degrees)
delay(500); // Wait 1 second
}
void servo3(){
servoMain.write(45); // Turn Servo Left to 45 degrees
delay(500); // Wait 1 second
servoMain.write(60); // Turn Servo Left to 0 degrees
delay(500); // Wait 1 second
servoMain.write(90); // Turn Servo back to center position (90 degrees)
delay(500); // Wait 1 second
servoMain.write(115); // Turn Servo Right to 135 degrees
delay(500); // Wait 1 second
servoMain.write(135); // Turn Servo Right to 180 degrees
delay(500); // Wait 1 second
servoMain.write(90); // Turn Servo back to center position (90 degrees)
delay(500); // Wait 1 second
}
void servo4(){
servoMain.write(45); // Turn Servo Left to 45 degrees
delay(500); // Wait 1 second
servoMain.write(60); // Turn Servo Left to 0 degrees
delay(500); // Wait 1 second
servoMain.write(90); // Turn Servo back to center position (90 degrees)
delay(500); // Wait 1 second
servoMain.write(115); // Turn Servo Right to 135 degrees
delay(500); // Wait 1 second
servoMain.write(135); // Turn Servo Right to 180 degrees
delay(500); // Wait 1 second
servoMain.write(90); // Turn Servo back to center position (90 degrees)
delay(500); // Wait 1 second
}
void doseren1(){
digitalWrite (doserenhigh,HIGH);
analogWrite (doseren, 10);
delay (2000);
}
void doseren2(){
digitalWrite (doserenhigh,HIGH);
analogWrite (doseren, 10);
delay (2000);
}
void doseren3(){
digitalWrite (doserenhigh,HIGH);
analogWrite (doseren, 10);
delay (2000);
}
void doseren4(){
digitalWrite (doserenhigh,HIGH);
analogWrite (doseren, 10);
delay (2000);
}