Op 2 september 2020 07:42:51 schreef BartL:
Dat is goed om te weten, mochten de fototransistors die ik besteld heb om eoa reden niet werken kan ik altijd overstappen naar de CNY70.
Je zal hoe dan ook het signaal moeten versterken, welke foto transistor je ook gaat gebruiken.
Hier heb je een paar voorbeelden.
En het beste is om de versterking direct bij de foto transistoren te zetten, als het even kan in de behuizing bij de foto transistoren. Dat wordt nog even een dingetje denk.
De versterking met de opamp is het grootste in dit geval, is +/- 100 X. Maar dat neemt wel de meeste ruimte in beslag, je moet dit vijf maal maken.
EDIT:
Hier heb je een stukje voorbeeld programma, het is wel in basic maar dat moet je maar even omzetten.
Heb het hier getest en het werkt naar behoren. Ik heb verschillende knipper frequenties geprobeerd, van 1Hz tot 10Hz. Ik heb wel de schakeling met de opamp gebruikt voor de grootste versterking van de foto transistor.
Als NIVEAU_NUL knippert gebeurt er niets, als dan bijv. NIVEAU_BOVEN_1 gaat knipperen wordt UIT_1 hoog en blíjft net zo lang hoog totdat NIVEAU_NUL weer gaat knipperen. Dit geld voor alle niveaus.
Je zal toch ook iets met de hydrauliek moeten doen, je zal iets van een drossel moeten plaatsen of misschien een proportioneel ventiel, zodat je de snelheid kunt regelen van je cilinders. Maar dat zal je al wel weten denk.
pic basic code:
Device 16F887
Xtal 10
Asm v.h.
CONFIG_REQ
__CONFIG _CONFIG1, HS_OSC & WDT_OFF & DEBUG_OFF & FCMEN_OFF & LVP_OFF & IESO_OFF & BOR_OFF & CPD_OFF & CP_OFF & MCLRE_OFF & PWRTE_ON
__CONFIG _CONFIG2, WRT_OFF & BOR40V
EndAsm
All_Digital true
Symbol NIVEAU_BOVEN_2 = PORTA.0
Symbol NIVEAU_BOVEN_1 = PORTA.1
Symbol NIVEAU_NUL = PORTA.2
Symbol NIVEAU_ONDER_1 = PORTA.3
Symbol NIVEAU_ONDER_2 = PORTA.4
Symbol UIT_1 = PORTC.0
Symbol UIT_2 = PORTC.1
DelayMS 500
Clear
PORTA = %000000
TRISA = %111111
PORTB = %000000
TRISB = %000000
PORTC = %00000000
TRISC = %00000000
PORTD = %00000000
TRISD = %00000000
PORTE = %000
TRISE = %000
ADCON0 = %00000001
UIT_1 = 0
UIT_2 = 0
RUN:
UIT_1 = 0
UIT_2 = 0
If NIVEAU_NUL = 1 Then
GoTo RUN
EndIf
If NIVEAU_BOVEN_1 = 1 Then
GoSub SCHUIF_OMHOOG
EndIf
If NIVEAU_BOVEN_2 = 1 Then
GoSub SCHUIF_OMHOOG
EndIf
If NIVEAU_ONDER_1 = 1 Then
GoSub SCHUIF_OMLAAG
EndIf
If NIVEAU_ONDER_2 = 1 Then
GoSub SCHUIF_OMLAAG
EndIf
If NIVEAU_BOVEN_2 = 1 And NIVEAU_ONDER_2 = 1 Then
GoTo GEEN_DETECTIE
EndIf
GoTo RUN
SCHUIF_OMHOOG:
UIT_1 = 1
UIT_2 = 0
If NIVEAU_NUL = 1 Then
UIT_1 = 0
DelayMS 100
Return
EndIf
GoTo SCHUIF_OMHOOG
SCHUIF_OMLAAG:
UIT_1 = 0
UIT_2 = 1
If NIVEAU_NUL = 1 Then
UIT_2 = 0
DelayMS 100
Return
EndIf
GoTo SCHUIF_OMLAAG
GEEN_DETECTIE:
UIT_1 = 0
UIT_2 = 0
If NIVEAU_NUL = 1 Then
GoTo RUN
EndIf
If NIVEAU_BOVEN_1 = 1 Then
GoTo RUN
EndIf
If NIVEAU_BOVEN_2 = 1 Then
GoTo RUN
EndIf
If NIVEAU_ONDER_1 = 1 Then
GoTo RUN
EndIf
If NIVEAU_ONDER_2 = 1 Then
GoTo RUN
EndIf
GoTo GEEN_DETECTIE
End
EDIT:
Heb dit even aangepast.
pic basic code:
If NIVEAU_BOVEN_2 = 1 Then
If NIVEAU_ONDER_2 = 1 Then
GoTo GEEN_DETECTIE
EndIf
EndIf
Naar dit.
pic basic code:
If NIVEAU_BOVEN_2 = 1 And NIVEAU_ONDER_2 = 1 Then
GoTo GEEN_DETECTIE
EndIf