Arduino Code ich check es nt?
Also folgender Code soll ausgeführt werden Sinn dahinter ist das bei einer Spannung von 3,6V - 3,8V eine LED leuchtet (Pin 13), diese leuchtet aber dauerhaft auch bei 1V was hab ich da falsch gemacht...
int readPin = A5;
int readVal;
float V2 = 0.00;
int delayTime = 500;
int A13 = 13;
int A20 = 12;
int A32 = 8;
int A64 = 7;
void setup() {
pinMode(readPin, INPUT);
Serial.begin(9600);
}
void loop() {
readVal = analogRead(readPin);
V2 = (5. / 1023.) * readVal;
Serial.println(V2);
delay(delayTime);
do {
digitalWrite(A13, HIGH);
readVal = analogRead(readPin);
V2 = (5. / 1023.) * readVal;
Serial.println(V2);
delay(delayTime);
}
while ((V2 <= 3.8) && (V2 >= 3.6));
}
Oke habe eine lösung gefunden:
int readPin = A5;
int readVal;
float V2 = 0.00;
int delayTime = 500;
int A13=13;
int A20=12;
int A32=8;
int A64=7;
void setup() {
pinMode(readPin, INPUT);
Serial.begin(9600);
}
void loop() {
readVal = analogRead(readPin);
V2 = (5. / 1023.) * readVal;
Serial.println(V2);
delay(delayTime);
if ((V2 >= 3.6) && (V2 <= 3.8))
digitalWrite(A13, HIGH);
else {
digitalWrite(A13, LOW);
}
if ((V2 >= 3.) && (V2 <= 3.2))
digitalWrite(A20, HIGH);
else {
digitalWrite(A20, LOW);
}
if ((V2 >= 1.8) && (V2 <= 2.))
digitalWrite(A32, HIGH);
else {
digitalWrite(A32, LOW);
}
if ((V2 >= 1.) && (V2 <= 1.2))
digitalWrite(A64, HIGH);
else {
digitalWrite(A64, LOW);
}
}
2 Antworten
Erst einmal bin ich mit Schleifen nicht so firm, aber du hast zum einen den Output-Pin nicht als Output zugewiesen und du schreibst, wann Du den Ausgang auf HIGH setzen willst, aber nicht, wann du ihn auf LOW setzt. Würde 'If' 'else' nehmen.. If Bedingung erfüllt HIGH else LOW...
Ich bin jetzt nich so fit in Arduino programmieren aber ich glaube du musst den noch Output in setup() setzen.
versuch mal:
PinMode(A13, OUTPUT).