Oh, ich war nicht eingeloggt!
Der Beitrag ist von Netbird!
Hallo,
weil Fragen zur Servosteuerung und Digitalisierung immer wieder vorkommen, könnte ich als kleine Anwendung einen "Lichtsucher" mit Servo und LDR anbieten:
Ein Servo dreht einen LDR im Winkelbereich 0..180Grad, digitalisiert den LDR-Widerstandswert und speichert die Postion des jeweils hellsten (=kleinsten) Werts. Danach steuert das Servo den LDR in die hellste gefundene Position.
Die Werte während des Durchlaufs und das hellste Ergebnis werden auf einem 16*2 LCD ausgegeben.
Benutzt wird ein Graupner-Servo, ein Standard-LDR und ein Kondensator mit 100nF.
Gruß, Harald
Ich hab spät, aber doch, aus meinem privaten Depot zwei Code-Tags spendiert mfg PicNickCode:'Lichtsucher mit Servosteuerung und LCD-Ausgabe '============================================== 'Servo: Steuerkabel an PD4 'LDR : Reihenschaltung LDR und C=100nF an PD6 und GND; ' 10K parallel zum LDR, da bei Dunkelheit LDR >10KOhm Config Servos = 1 , Servo1 = Portd.4 , Reload = 10 'Faktor für Imp.zeit Config Pind.4 = Output Config Lcdpin = Pin , Db4 = Portb.4 , Db5 = Portb.5 , Db6 = Portb.6 , Db7 = Portb.7 , E = Portb.2 , Rs = Portb.0 Config Lcd = 16 * 2 Enable Interrupts Dim Ldr As Word , Wert As Word Dim I As Byte , Pos As Byte , S As Byte Dim T1 As String * 12 , T2 As String * 12 Cls 'LCD löschen Do S = 0 : Pos = 0 : Wert = 400 Servo(1) = 30 : Waitms 100 : Cls For I = 30 To 110 Step 5 'Rechts drehen Servo(1) = I 'Pulszeit i*10us Waitms 100 Ldr = Getrc(pind , 6) 'Helligkeit lesen If Ldr < Wert Then 'Wert neu setzen, wenn heller Wert = Ldr : Pos = S 'als alter Wert End If Locate 1 , 1 : Lcd "Min " ; Wert ; " " Locate 1 , 10 : Lcd "Akt." ; Ldr ; " " Locate 2 , 1 : Lcd "Pos " ; Pos ; " " Locate 2 , 10 : Lcd " " ; S ; " " S = S + 1 'S= gedrehte Schritte Next 'Drehe auf gefundene hellste Position S = 5 * Pos : S = S + 30 'Eigentlich: S=30+5*pos Servo(1) = S Cls Locate 1 , 5 : Lcd "Min " ; Wert 'Ausgabe der gefundenen Werte Locate 2 , 5 : Lcd "Pos " ; Pos ; " " 'für Helligkeit und Position Wait 1 For I = 1 To 3 'Warteschleife vor neuem Durchlauf Lcd "*"; Wait 1 Next Loop End 'end program
Oh, ich war nicht eingeloggt!
Der Beitrag ist von Netbird!
Hallo, wenn mir jemand erklärt, wie ich den BASIC-Code anständig posten kann, tue ich das. So sieht es ja furchtbar aus, weil alle Formatierungen futsch sind.
Harald.
Hallo Netbird
Für was braucht man den sowas ? (Lichtsucher)
Hallo,
wenn man weiß, wo sich die hellste Stelle in einem Raum befindet, kann man dorthin z.B. ein Fotovoltaikelement drehen, einen Roboter dorthin fahren lassen (also z.B. den Ausgang finden) usw.
Man kann feststellen, wie die Helligkeitsverteilung in einem Raum im Laufe von Tagen ist, wenn man die Daten über längere Zeiträume loggt usw.
Wenn Du die Beiträge hier im Forum liest, kannst Du immer wieder feststellen, dass viele Anfänger Probleme haben, weil sie zu viel auf einmal wollen und dann Probleme bei der Elektronik, bei der Programmierung, beim Datentransfer PC- Mikrocontroller ... bekommen.
Ich habe deshalb für mich beim Einstieg in das "Mikrocontrollern" eine Reihe von kleinen Programmen geschrieben, um Vertrauen ´für größere Projekte zu sammeln. Dieses gehört dazu. Damals gab es hier eine Reihe von Fragen in diese Richtung.
Also, eine großartige Anwendung soll das nicht sein, ein Anfänger kann aber vielleicht die eine oder andere Anregung erhalten.
Gruß, Harald.
PS: Eben lese ich im Forum Sensoeren eine Frage von Mister X, der möchte genau diese hellste Stelle für seinen Roboter finden ...
Also wenn du asntändig Code posten willst, dann gehe links unten, unter dem eingabefeld auf "Antwort erstellen", und klickst du auf "Code", im, ich sag mal, 'Menu', es wird ein [ Code ] im Text (ohne Leerzeichen) eingefügt, du kopierst den Code rein und klickst wieder, jetzt im Menu "Code*", es erscheint [ /Code ] oder \ ? egal.
Ich finds gut, wenn du ein par lockere Progs reinstellst, es suchen tatsächlic viele Anfänger nach Beispielen, poste das doch mal in die Codeschnipsel-Ecke.
MFG Moritz
Hallo Moritz,
danke für den Tipp fürs Posten. Ich probiere es das nächste Mal aus.
Harald
Hallo
Ist zwar schon ein alter Thread, aber sonst finde ich auch nichts zu diesem Thema..
Darum schreibe ich gleich mal hier rein.
Zuerst hatte ich noch gefragt, für was man sowas verwenden kann und jetzt möchte ich mir auch schon so einen Lichtfinder bauen.
Habe dazu zwei Servos.
Eins zum drehen und eins für auf und ab (X/Y)
Jetzt frage ich mich, wie ordnet man am besten die Sensoren an und wie viel sollte man nehmen ?
Dachte da an 4 Phototransitoren für die Richtungen und vielleicht einer für die Generelle Raumhelligkeit.
Das Programm sollte dann nicht immer den ganzen Berreich skennen
(zu langsam) sondern dann geziehlt auf die Lichtquelle hinfahren.
Wenn alle 4 Sensoren dann das maximum haben, sollte es ausgerichtet sein...
Hat jemand noch damit Erfahrung oder Netbird inzwischen vielleicht mehr ?
l.G. Roberto
Ich arbeit' (leider auf kleiner Flamme) grad dzt. an so einem "Radar", allerdings mit dem GP2D12. Die Anforderung ist aber wohl ähnlich. Eins bin ich mir aber schon sicher: Wenn du X/Y bewegen kannst, brauchst du genau EINEN Sensor.
mfg robert
Wer glaubt zu wissen, muß wissen, er glaubt.
Hallo Robert
Einen Sensor ?
ich will aber nicht immer alles X/Y abscannen!
Ich dachte mir da:
Zwei für die X Achse und zwei für die Y Achse
Wenn z.B. bei der X Achse (Dreh-Achse) , der linke Sensor dunkler wird
und der rechte ist noch hell, dann dreht das Servo weiter nach rechts, bis wieder beide Sensoren Licht haben.
Im Prinzip eine Nachführung.
Derzeit probiere ich gerade mit einem Sensor und einer Achse und scanne dabei immer.
Also einmal scannen, dann auf Max. fahren und solange warten bis Lichtquelle dunkler wird. Dann nochmal scannen.. u.s.w.
Lesezeichen