Hier der neue Code mit geänderten Variablen- und Portnamen.
Ich hoffe es ist jetzt verständlicher.
Code:
$regfile = "m8def.dat " ' specify the used micro
$crystal = 1000000
Config Portd.0 = Input ' ' Pin 2
Config Portd.1 = Input
Config Portb.0 = Output
Config Portd.7 = Output
Config Adc = Single , Prescaler = Auto , Reference = Avcc 'config ADC
Start Adc
Dim Zaehlvariable As Integer
Dim Helligkeit As Word
Dim Haelftehelligkeit As Integer
Dim Hilfsvariable As Integer
Dim Zaehlvariable2 As Integer
Dim Hilfsvariable2 As Integer
Taster1 Alias Portd.0 'Ausgangsposition
Taster2 Alias Portd.1
Helligkeit = 0
Zaehlvariable2 = 0
Taster1 = 1
Taster2 = 1
Motor1 Alias Portd.7
Motor2 Alias Portb.0
Do
Motor1 = 1
Motor2 = 1
Helligkeit = 0
Hilfsvariable = 0
Start1:
Motor1 = 1
Motor2 = 1
Wait 1
Motor1 = 0
Motor2 = 1
If Taster1 = 0 Then
For Zaehlvariable = 1 To 800 Step 1 'Halbkreisdrehung und Suche nach hellstem Ad-Wert
If Taster2 = 0 Then
Goto Start1
End If
If Getadc(0) > Helligkeit Then
Helligkeit = Getadc(0)
End If
Waitms 2
Next Zaehlvariable
Else
Motor1 = 1
Motor2 = 1
Waitms 50
While Taster1 = 1
Motor1 = 1
Motor2 = 0
Wend
Goto Start1
End If
Motor1 = 1
Motor2 = 1
Hilfsvariable = Helligkeit - 1
Wait 1
If Taster2 = 1 Then
While Getadc(0) < Hilfsvariable
Motor1 = 1
Motor2 = 0 'Wieder zurückfahren zum hellsten Punkt
If Taster1 = 0 Then
Goto Start1
End If
Waitms 2
Wend
Else
Goto Start1
End If
Motor1 = 1
Motor2 = 1
Haelftehelligkeit = Helligkeit / 2
Wait 1
While Zaehlvariable2 < 300
Zaehlvariable2 = Zaehlvariable2 + 1
Wait 1
If Getadc(0) < Hilfsvariable Then
Zaehlvariable2 = 301 'Falls es beim zweiten LDR heller istoder die Helligkeit beim ersten LDR unter der Hälfte liegt dann erneuter Suchlauf
End If
Hilfsvariable2 = Getadc(1) - 75
If Getadc(0) < Hilfsvariable2 Then
Zaehlvariable2 = 301
End If
Wend
Loop
Mfg
David
Lesezeichen