Habe 2 sketch kombiniert A2 ist ein servomotor angeschlossen es soll sich drehen solange ir low ist , bei high stoppen diese teil klappt einzeln.
Habe noch ein vibrationsmotor es soll sich einmal drehen kurz zb 1sec wenn ir low ist dann stoppen , vibrationsmotor soll sich wieder erst drehen wenn von high auf low.
wenn es möglichst wäre soll sich der vibrationsmotor nur dann einmal drehen wenn der ir erst dreimal von high auf wechselt .
Hier mein zusammen gebasteltes code
so dreht sich kurz servo Motordanach nur noch der vibrationsmotor ohne stop
würde mich freuen für eure Hilfen
const byte servomotor=A2; // Pin
const byte ir = A1; // Pin IR-Sensor
const bool BELEGT = HIGH;
#define VibrationTime 1000 // Timer für Vibrationsmodule, hier 1000 = 1 Sekunden
#define VibrationPin 11 // Geht nur, wenn kein Start-Servo verwendet wird! (Hier war vorher PIN10!!!!!)
#define VibSpeed 180 // Vibrationsgeschwindigkeit
uint8_t ErrorCounter = 0;
// int VibrationRunsSince = 0; >> Original, geänderte Zeile mit "long"
long VibrationRunsSince = 0;
// Änderung Ende
void setup() {
pinMode(ir,INPUT);
pinMode(servomotor,OUTPUT);
pinMode(VibrationPin,OUTPUT);
}
void loop() {
static unsigned long aktivZeit;
if (digitalRead(ir) != BELEGT) {
aktivZeit = millis();
digitalWrite(servomotor, LOW);
} else {
// BELEGT
if (millis() - aktivZeit > 3000) {
// hier ist die Verzögerungszeit abgelaufen
digitalWrite(led, HIGH);
}
}
if (VibrationRunsSince == 0)
{
VibrationRunsSince = millis();
digitalWrite(VibrationPin, HIGH);
// analogWrite(VibrationPin, VibSpeed); //Test mit reduzierter Geschwindigkeit des Vib Motors
}
}
void VibrationTimeCheck()
{
if (millis() > VibrationRunsSince+VibrationTime)
{
digitalWrite(VibrationPin, LOW);
VibrationRunsSince = 0;
}
}
Dies ist eure dritte von drei Anfragen zum Kombinieren von Sketchen. Ihr solltet den Vorgang inzwischen verstehen. Habt ihr es schon versucht? Je mehr ihr über Programmieren oder das Kombinieren von Programmen lernt, desto unabhängiger werdet ihr und desto weniger müsst ihr warten, bis jemand anderes eure Arbeit erledigt.
„Dreimal von hoch auf hoch wechseln“ Wie ist das möglich?