Kann mir hier vielleicht jemand helfen...Ich verstehe es einfach nicht mehr.
Ich versuche einen "suntracker" zu basteln. Die servos scheinen zu funktionieren,
die Widerstände scheinen zu funktionieren nur zusammen macht der servo irgendwas und zuckelt bzw steht still
#include <Arduino.h>
#include <Servo.h>
const int ldrLO = D1;
const int ldrRO = D2;
const int ldrLU = D3;
const int ldrRU = D4;
const int adcPin = A0; // Analoger Pin, um LDR-Werte zu lesen
const int servoPinLR = D6;
const int servoPinOU = D7;
int ldrvLO = 0;
int ldrvRO = 0;
int ldrvLU = 0;
int ldrvRU = 0;
const int first=50;
const int sec=50;
int LiRe = 20;
int ObUn = 20;
Servo servoOU,servoLR;
void setup() {
pinMode(ldrLO, OUTPUT);
pinMode(ldrRO, OUTPUT);
pinMode(ldrvLU, OUTPUT);
pinMode(ldrvRU, OUTPUT);
servoOU.attach(servoPinOU);
servoLR.attach(servoPinLR);
digitalWrite(ldrLO, LOW);
digitalWrite(ldrRO, LOW);
digitalWrite(ldrvLU, LOW);
digitalWrite(ldrvRU, LOW);
Serial.print(ObUn); Serial.println(LiRe);
servoOU . write(ObUn);
servoLR . write(LiRe);
delay(2000);
Serial.begin(9600); // Für Debugging-Zwecke
Serial.println("Meine Pos: ");
Serial.print(servoOU . read());
Serial.print(servoLR . read());
}
void loop() {
digitalWrite(ldrLO, HIGH);
delay(first); // Zeit zum Stabilisieren des Signals
ldrvLO = analogRead(adcPin);
digitalWrite(ldrLO, LOW);
delay(500);
digitalWrite(ldrRO, HIGH);
delay(first); // Zeit zum Stabilisieren des Signals
ldrvRO = analogRead(adcPin);
digitalWrite(ldrRO, LOW);
delay(sec);
digitalWrite(ldrvLU, HIGH);
delay(first); // Zeit zum Stabilisieren des Signals
ldrvLU = analogRead(adcPin);
digitalWrite(ldrvLU, LOW);
delay(sec);
digitalWrite(ldrvRU, HIGH);
delay(first); // Zeit zum Stabilisieren des Signals
ldrvRU = analogRead(adcPin);
digitalWrite(ldrvRU, LOW);
delay(sec);
int ldrsumLR = (ldrvLO+ldrvLU) - (ldrvRO+ldrvRU);
int ldrsumOU = (ldrvLO+ldrvRO) - (ldrvLU+ldrvRU);
/* Serial.print("ldr1val: "); Serial.print(ldrvLO); // Debugging
Serial.print(" ldr2val: "); Serial.print(ldrvRO); // Debugging
Serial.print(" ldr3val: "); Serial.print(ldrvLU); // Debugging
Serial.print(" ldr4val: "); Serial.print(ldrvRU); // Debugging
Serial.println("");
Serial.print(" ldrsum: "); Serial.print(ldrsumLR); // Debugging
Serial.print(" ldrsum: "); Serial.println(ldrsumOU);*/
if (ldrsumLR >= 100)
{
LiRe += 3;
Serial.print(" LR+"); // Debugging
} else if (ldrsumLR <= -100)
{
LiRe -= 3;
Serial.print(" LR-"); // Debugging
}
if (ldrsumOU >= 100)
{
Serial.print(" OU+"); // Debugging
ObUn +=3;
} else if (ldrsumOU <= -100)
{
Serial.print(" OU-"); // Debugging
ObUn -= 3;
}
if (LiRe < 10)
{
LiRe = 10;
} else if (LiRe > 180) {
LiRe = 180;
}
if (ObUn <10)
{
ObUn = 10;
} else if (ObUn > 180) {
ObUn = 180;
}
// servoOU . write(ObUn);
delay(300);
Serial.print(ObUn); Serial.print(" ");Serial.println(LiRe);
//servoLR . write(LiRe);
delay(300);
for (int i=0;i<180;i++)
{
servoOU . write(i);
servoLR . write(i);
}
for (int i=180;i>0;i--)
{
servoOU . write(i);
servoLR . write(i);
}
}
wenn ich nur die for schleife laufen lasse, läuft alles wie erwartet wenn ich die als Kommentar setze und die Zeilen
servoOU . write(ObUn);
delay(300);
servoLR . write(LiRe);
delay(300);
wieder aktiv setze machen die Servos irgendwas. Die Werte die ich bekomme sind aber ok. Diese Werte sehe ich auf dem seriell Monitor, Nur fährt er die nicht an
OU+26 20
OU+29 20
OU+32 20
OU+35 20
OU+74 17
OU+77 17
OU+80 17
OU+83 17
OU+86 17
OU+89 17
OU+92 17
OU+95 17
OU+98 17
OU+101 17
OU+104 17
LR+ OU+107 20
LR+ OU+110 23
LR+ OU+113 26
LR+ OU+116 29
LR+ OU+119 32
LR+ OU+122 35
LR+ OU+125 38
LR+ OU+128 41
LR+ OU+131 44
LR+ OU+134 47
LR+ OU+137 50
LR+ OU+140 53
LR+ OU+143 56
LR+ OU+146 59
LR+ OU+149 62
LR+ OU+152 65
LR+ OU+155 68
LR+ OU+158 71
LR+ OU+161 74
LR+ OU+164 77
LR+ OU+167 80
LR+ OU+170 83
LR+ OU+173 86
LR+ OU+176 89
LR+ OU+179 92
LR+ OU+180 95
LR+ OU+180 98
LR+ OU+180 101
LR+ OU+180 104
LR+ OU+180 107
LR+ OU+180 110
LR+ OU+180 137
LR+ OU+180 140
LR+ OU+180 143
LR+ OU+180 146
LR+ OU+180 149
LR+ OU+180 152
LR+ OU+180 155
LR+ OU+180 158
LR+ OU+180 161
LR+ OU+180 164
LR+ OU+180 167
LR+ OU+180 170
LR+ OU+180 173
Meine Pos:
2020 LR+ OU-17 23
LR+ OU+20 26
LR+ OU+23 29
LR+ OU+26 32
LR+ OU+29 35
LR+ OU+32 38
LR+ OU+35 41
Meine Pos:
2020 LR+20 23
LR+ OU+23 26
LR+ OU+26 29
LR+ OU+29 32
LR+ OU+32 35
LR+ OU+35 38
LR+ OU+38 41
LR+ OU+41 44
LR+ OU+44 47
LR+ OU+47 50
OU+50 50
LR+ OU+53 53
LR+ OU+56 56
ich verwende ein Nodemcu Lua Lolin V3 ESP8266-Entwicklungsboard
Auch ein Serotauch brachte nichts.
Kann mir jemand helfen?



