10. November 2010
DC Motor mit H Brücke [vs per Distanzsensor] Sourcecode:#define ENABLE 12 #define DIR1 11 #define DIR2 10 #define SENSOR 0 byte message = 0; int wert = 0; int daten[] = {0, 0, 0}; boolean activated = false; boolean adapt = true; void setup() { pinMode(ENABLE, OUTPUT); pinMode(DIR1, OUTPUT); pinMode(DIR2, OUTPUT); pinMode(SENSOR, INPUT); digitalWrite(ENABLE, HIGH); digitalWrite(DIR1, LOW); digitalWrite(DIR2, LOW); Serial.begin(9600); } void loop() { wert = analogRead(SENSOR); wert /= 3; // Serial.println(daten[0]); Serial.println(activated == true); if (Serial.available() > 0){ message = Serial.read(); } if(adapt == true){ daten[0] = daten[1]; daten[1] = daten[2]; daten[2] = wert; delay(500); if (message == '1'){ analogWrite(DIR1, wert); digitalWrite(DIR2, LOW); } else if(message == '2'){ digitalWrite(DIR1, LOW); analogWrite(DIR2, wert); } } if(message == '0'){ digitalWrite(DIR1, LOW); digitalWrite(DIR2, LOW); activated = false; adapt = true; } if (daten[2] > 60 && activated == false){ Serial.println("ACTIVATED!!!"); activated = true; } if (daten[2] <= 60 && activated == true && adapt == true){ Serial.println("STOP ADAPTION!!!"); analogWrite(DIR1, daten[0]); adapt = false; } }Geschwindigkeit des DC Motors wird mittels Distanzsensor geregelt. Die Geschwindigkeit des DC Motors wird mit einem Distanzsensor geregelt. Wird die Hand weggezogen, behält der Motor die Geschwindigkeit (Haltepunkt).