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







Zitieren

Lesezeichen