Moin..
Alles klar, funktioniert.
Grad hatte ich noch das Problem dass der Motor zwar mit nem Testprogramm sauber gelaufen ist, aber mit den Lichtschranken nur noch sehr langsam.
Hatte den Verdacht dass das UNO nicht mit Lichtschranken überwachen und Motor regeln hinterher kommt.
Zuerst wollte ich die Lichtschranken nicht bei jedem Durchlauf abfragen, hab aber keine Ahnung ob und wie das geht..
Also hab ich den letzten Teil jetzt zehnmal drin, und erst dann werden die Lichtschranken wieder abgefragt. Klappt wunderbar.
Liegt also anscheinend am UNO bzw. dessen fehlender Geschwindigkeit.
Hier nochmal der Code, vielleicht hilfts jemandem. Nicht schön, aber funktioniert.
Danke für die Hilfe.
PHP-Code:
#include <Bounce2.h>
int buttonPin = 13;
int sensorPin1 = A2;
int sensorPin2 = A3;
int sensorValue1 = 0;
int sensorValue2 = 0;
int PinCLK = 9;
int PinCW = 8;
int ledPin1 = 2;
int ledPin2 = 4;
int ledPin3 = 7;
int motorSpeed = 0;
int buttonState = 0;
int merker = 0;
void setup() {
pinMode(PinCLK, OUTPUT);
pinMode(PinCW, OUTPUT);
digitalWrite(PinCLK, LOW);
digitalWrite(PinCW, LOW);
pinMode(buttonPin, INPUT);
pinMode(ledPin1, OUTPUT);
pinMode(ledPin2, OUTPUT);
pinMode(ledPin3, OUTPUT);
Serial.begin(9600);
}
void loop(){
buttonState = digitalRead(buttonPin);
sensorValue1 = analogRead(sensorPin1);
sensorValue2 = analogRead(sensorPin2);
Serial.println(buttonState);
if (buttonState != 1)
{
merker = 1;
}
if (sensorValue1 > 512 && sensorValue2 < 512 && merker == 1)
{
motorSpeed = 420;
digitalWrite (ledPin1, HIGH);
digitalWrite (ledPin2, LOW);
digitalWrite (ledPin3, LOW);
counterclockwise();
}
if (sensorValue1 < 512 && sensorValue2 < 512 && merker == 1)
{
motorSpeed = 12000;
digitalWrite (ledPin1, HIGH);
digitalWrite (ledPin2, HIGH);
digitalWrite (ledPin3, LOW);
counterclockwise();
}
if (sensorValue1 < 512 && sensorValue2 > 512)
{
motorSpeed = 0;
digitalWrite (ledPin1, HIGH);
digitalWrite (ledPin2, HIGH);
digitalWrite (ledPin3, HIGH);
merker = 0;
}
}
void counterclockwise (){
digitalWrite(PinCLK, HIGH);
delayMicroseconds(motorSpeed);
digitalWrite(PinCLK, LOW);
delayMicroseconds(motorSpeed);
digitalWrite(PinCLK, HIGH);
delayMicroseconds(motorSpeed);
digitalWrite(PinCLK, LOW);
delayMicroseconds(motorSpeed);
digitalWrite(PinCLK, HIGH);
delayMicroseconds(motorSpeed);
digitalWrite(PinCLK, LOW);
delayMicroseconds(motorSpeed);
digitalWrite(PinCLK, HIGH);
delayMicroseconds(motorSpeed);
digitalWrite(PinCLK, LOW);
delayMicroseconds(motorSpeed);
digitalWrite(PinCLK, HIGH);
delayMicroseconds(motorSpeed);
digitalWrite(PinCLK, LOW);
delayMicroseconds(motorSpeed);
digitalWrite(PinCLK, HIGH);
delayMicroseconds(motorSpeed);
digitalWrite(PinCLK, LOW);
delayMicroseconds(motorSpeed);
digitalWrite(PinCLK, HIGH);
delayMicroseconds(motorSpeed);
digitalWrite(PinCLK, LOW);
delayMicroseconds(motorSpeed);
digitalWrite(PinCLK, HIGH);
delayMicroseconds(motorSpeed);
digitalWrite(PinCLK, LOW);
delayMicroseconds(motorSpeed);
digitalWrite(PinCLK, HIGH);
delayMicroseconds(motorSpeed);
digitalWrite(PinCLK, LOW);
delayMicroseconds(motorSpeed);
digitalWrite(PinCLK, HIGH);
delayMicroseconds(motorSpeed);
digitalWrite(PinCLK, LOW);
delayMicroseconds(motorSpeed);
}
Gruß
Andy
Lesezeichen