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
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.
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
Das Programm wurde schon geschrieben, und ich verstehe diese stelle nicht. Deswegen frage ich
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
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?
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
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 .
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
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?
Habt Nachsicht: der Junge ist erst 13 und lernt gerade programmieren. Das hat er jedensfalls letztens mal geschrieben.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.