Forum: Mikrocontroller und Digitale Elektronik Was bedeutet die 1 beim Lichtsensor


von Max R. (Gast)


Lesenswert?

Hallo,

ich programmiere einen Lichtsensor eines Gefärts in c-control pro.

Leider weiß ich nicht, was die 1 in Zeile 3 bedeutet.



 if (LDR_RIGHT() > LDR_LEFT())                     1
         {
          if ((LDR_RIGHT() - LDR_LEFT()) >= 1)     3
            {
             GO_TURN(0,-35,180);                   5
             goto Start;
            }                                      7
          }




Ich denke, dass diese 1 für 1 Lux steht.

Jedoch bin ich mir nicht sicher.

Ich hoffe, dass ihr euch umso mehr sicher seit.

Mfg

Max

von Patrick (Gast)


Lesenswert?

Sorry, aber: Ist diese Frage ernst gemeint?

Für einen Trollversuch ist es eigentlich deutlich zu schlecht; also ist 
wohl tatsächlich zu befürchten, dass dies ernst gemeint ist...

Ausführliche Antwort: Woher sollen wir das wissen? DU bist der 
Einzige, der weiß (bzw. herausfinden kann), in welchem Zusammenhang 
die Rückgabewerte von LDR_RIGHT() und LDR_LEFT() mit der 
Beleuchtungsstärke stehen.

von Timmo H. (masterfx)


Lesenswert?

Aus der Doku:
1
LDR_LEFT() as word
2
Gibt den analogen Wert des linken Lichtsensors (LDR) wieder (0 bis 1023).
3
LDR_RIGHT() as word
4
Gibt den analogen Wert des rechten Lichtsensors (LDR) wieder (0 bis 1023).
Sprich wenn es Rechts (um "1" oder mehr) heller ist als Links, dann 
dreht er um 35° nach links mit einer Geschwindigkeit von 180

von Max R. (Gast)


Lesenswert?

Das Programm wurde schon geschrieben, und ich verstehe diese stelle 
nicht. Deswegen frage ich

von Max R. (Gast)


Lesenswert?

Und was ist diese 1?

von Christian H. (christian_h)


Lesenswert?

Die 1 ist eine Zahl, kommt direkt nach der 0 und vor der 2. Mathematisch 
gesehen ist die 1 den natürlichen Zahlen zuzuordnen.

Was die bei deinem Programm heißt, steht doch oben. Wenn der 
Rückgabewert von LDR_right() MINUS LDR_left() größer gleich 1 ist, wird 
das in dem if-Codeblock ausgeführt. Wo ist das Problem, die Zeichen die 
da verwendet werden sollte man sogar in der Grundschule gehabt haben.

Gruß,
Christian

von Max R. (Gast)


Lesenswert?

Christian H. schrieb: größer gleich 1 ist,

Aber was ist diese 1. 1Lux oder ...

Das die 1 eine natürliche Zahl ist ist mir klar, aber für was steht sie 
in meinem Programm?

von If (Gast)


Lesenswert?

LDR_RIGHT() und LDR_LEFT() liefern vermutlich das Messergebnis der 
Lichtsensoren.

Die eins bedeutet lediglich das der Block ausgeführt wird wenn der wert 
von
LDR_RIGHT() - LDR_LEFT() größer oder gleich eins ist.


http://openbook.galileocomputing.de/c_von_a_bis_z/008_c_kontrollstrukturen_001.htm#mj20a55f7018d30cb1eb49f4f02d86150b

von Max R. (Gast)


Lesenswert?

Das verstehe ich auch , aber diese 1 muss doch irgendeine Einheit. Ich 
denke dass die 1 für 1 Lux steht. Das ist aber nur meine Vermutung .

von Andreas B. (andreasb)


Lesenswert?

Max R. schrieb:
> Das verstehe ich auch , aber diese 1 muss doch irgendeine Einheit.
Nein.

Das ist eine Programmiersprache, keine Physikaufgabe oder ähnliches.

Hier hast du grundsätzlich mal keine Einheiten.

> Ich
> denke dass die 1 für 1 Lux steht.
Nein, ich denke nicht. Scheint ein normaler ADC (=> WIKI oder google...) 
zu sein.

Ich rate mal 0 = 0V, 1023 = Betriebsspannung (Annahme: 5V)

Somit würde ein Unterschid von "1" 0.048543689 V bedeuten. Was dies 
bezüglich Helligkeit bedeutet, musst du aber aus dem Datenblatt des 
Helligkeitssensors entnehmen.


> Das ist aber nur meine Vermutung .

ps. Grösstenteils nur Annahmen, sollten nur als Beispiel dienen...



mfg Andreas

von Sven (Gast)


Lesenswert?

Vielen dank Andreas

von Werner M. (Gast)


Lesenswert?

Max R. schrieb:
> if (LDR_RIGHT() > LDR_LEFT())                     1
>          {
>           if ((LDR_RIGHT() - LDR_LEFT()) >= 1)     3

Wieso fragst du eigentlich zwei mal direkt hintereinander deine Sensoren 
mit dem gleichen Entscheidungskriterium ab?

von Johannes M. (johannesm)


Lesenswert?

hui, lange kein "goto" mehr in in einem C Programm gesehen.

von PittyJ (Gast)


Lesenswert?

Habt Nachsicht: der Junge ist erst 13 und lernt gerade programmieren.
Das hat er jedensfalls letztens mal geschrieben.

von F. F. (foldi)


Lesenswert?

Um das noch mal einfach zu sagen: Sobald sich die kleinste Änderung 
zwischen den beiden Sensoren ergibt, dann soll der nachfolgende Code 
ausgeführt werden. Wobei der rechte Sensor quasi immer dein "Master" ist 
und der linke Sensor als "Slave" folgt.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.