Hallo,
ich möchte gerne am Arduino LEDs blinken lasseb und aber gleichzeitig
will ich die von der Fotodiode aufgenommenen Werte auslesen:
1
intledROT=3;
2
intledIR=4;
3
intanalogPin=A3;
4
intval=0;
5
voidsetup(){
6
// put your setup code here, to run once:
7
8
pinMode(ledROT,OUTPUT);
9
pinMode(ledIR,OUTPUT);
10
Serial.begin(9600);
11
Serial.println();
12
}
13
14
voidloop(){
15
// put your main code here, to run repeatedly:
16
intpinRead0=analogRead(analogPin);
17
floatpVolt0=pinRead0/1024.0*5.0;
18
Serial.print(pVolt0);
19
Serial.println();
20
delay(100);
21
22
/*digitalWrite(ledROT, HIGH);
23
delayMicroseconds(25);
24
digitalWrite(ledROT, LOW);
25
delayMicroseconds(25);
26
*/
27
28
29
}
Hab hier gerade so ein Code geschrieben, die Fotodiode bekommt Werte, da
ist kein Problem...
Aber ich weiß nicht wie ich den Teil mit der LED implementieren soll,
sodass beides sogut wie gleichzeitig abläuft :/
Ich hoffe ihr könnt mir da helfen :)
Die blinken schon, das ist garkein Problem.
Das Problem ist, dass die Fotodiode während dem Blinken die Werte
aufnehmen soll. Bzw. wenn die LED auf HIGH ist...
Na dann frag den analogen Pin in der Zeit ab, während die LED an ist.
Mit dem oben gezeigten Code blinkt aber nichts.
Warum wird der IR-Pin als AUSGANG definiert?
Hasiman schrieb:> Das Problem ist, dass die Fotodiode während dem Blinken die Werte> aufnehmen soll. Bzw. wenn die LED auf HIGH ist...
Verplempere die Zeit Zeit nicht nur mit delay(), sondern messe die
Helligkeit zwischendurch. Wenn du unabhängig von der Rechenzeit werden
willst, benutze die Systemuhr des Arduino und frage sie mit millis() ab.
https://www.arduino.cc/en/Tutorial/BlinkWithoutDelay
So hab des jetzt mal so gemacht und es klappt x'D ich versteh nicht
wieso ich nicht von selbst draufgekommen bin.
Ich muss halt jetzt noch eine IR-LED implementieren ... hmm
Ahja, wie kann ich die ausgegebenen Werte (leider sehr sehr sehr viele
Werte) in eine Tabelle (Excel) speichern, damit ich dann einen Graphen
plotten kann. Oder kann man das in C irgendwie direkt machen?
Martin K. schrieb:> Du misst aber jetzt, wenn die LED aus ist.> (Oder wie hast du die LED angeschlossen? Kurzes Bein am Arduino?)
So misst er irgendwie richtig, wenn ich HIGH und LOW vertausche kommen
komische Werte raus, die nicht nachvollziehbar sind... @.@
Hasiman schrieb:> (leider sehr sehr sehr viele> Werte)
Du würdest alle 50 MIKROsekunden einen Wert bekommen, wenn die serielle
Schnittstelle so schnell wäre.....
Hasiman schrieb:> So misst er irgendwie richtig, wenn ich HIGH und LOW vertausche kommen> komische Werte raus, die nicht nachvollziehbar sind... @.@
Frage nicht beantwortet....
Martin K. schrieb:> Hasiman schrieb:>> So misst er irgendwie richtig, wenn ich HIGH und LOW vertausche kommen>> komische Werte raus, die nicht nachvollziehbar sind... @.@>> Frage nicht beantwortet....
Die Schaltung der LEDs
Ich schalte gerade nur die Rote...und beachte die Werte der Widerstände
etc. nicht..Basiswiderstand beispielsweise ist bei mir gerade ne
andere...
mir geht es gerade nur rein um die Programmierung
Hasiman schrieb:> Die Schaltung der LEDs
Die Schaltung ist sehr gefährlich. Wenn du aus Versehen das Poti auf 0
drehst, hast du einen Kurzschluss. Schalte besser (zusätzlich) einen
Festwiderstand in Serie.
Das Poti kannst du dir in seiner Wirkung auch ganz sparen, wenn du nur
den Festwiderstand verwendest und das Verhältnis von den beiden
Verzögerungszeiten veränderst.
Eine eigene Frage?
Dieser Thread ist über 9 Jahre alt.
Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.