-
        
+ Antworten
Seite 1 von 4 123 ... LetzteLetzte
Ergebnis 1 bis 10 von 31

Thema: "Lichtsucher" mit Servo und LDR

  1. #1
    Gast

    "Lichtsucher" mit Servo und LDR

    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
    Code:
     '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
    Ich hab spät, aber doch, aus meinem privaten Depot zwei Code-Tags spendiert mfg PicNick

  2. #2
    Gast
    Oh, ich war nicht eingeloggt!
    Der Beitrag ist von Netbird!

  3. #3
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    02.07.2004
    Beiträge
    138
    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.

  4. #4
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    29.10.2004
    Ort
    GRAZ
    Alter
    50
    Beiträge
    576
    Hallo Netbird

    Für was braucht man den sowas ? (Lichtsucher)

  5. #5
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    02.07.2004
    Beiträge
    138
    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 ...

  6. #6
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    09.06.2004
    Ort
    Aachen
    Beiträge
    2.674
    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

  7. #7
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    02.07.2004
    Beiträge
    138
    Hallo Moritz,

    danke für den Tipp fürs Posten. Ich probiere es das nächste Mal aus.

    Harald

  8. #8
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    29.10.2004
    Ort
    GRAZ
    Alter
    50
    Beiträge
    576
    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

  9. #9
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.835
    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.

  10. #10
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    29.10.2004
    Ort
    GRAZ
    Alter
    50
    Beiträge
    576
    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.

+ Antworten
Seite 1 von 4 123 ... LetzteLetzte

Benutzer, die dieses Thema gelesen haben: 0

Derzeit gibt es keine Benutzer zum Anzeigen.

Berechtigungen

  • Neue Themen erstellen: Ja
  • Themen beantworten: Ja
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •