H-Brug met IR2148

Lambiek

Special Member

Op 22 augustus 2021 10:50:32 schreef MGP:
Aan de foto te zien van uw opstelling is dat prikbordje volgens mij de grootste bottleneck,......

Op de foto is het een redelijke chaos ja.

Dit kan waarschijnlijk met één IC met wat randcomponenten en twee relais. :)

Als je haar maar goed zit, GROETEN LAMBIEK.

Op 22 augustus 2021 11:05:25 schreef Lambiek:
[...]
Dit kan waarschijnlijk met één IC met wat randcomponenten en twee relais. :)

Na deze opmerking wordt ik toch nieuwsgierig hoe dat gaat lukken.

Op 22 augustus 2021 10:50:32 schreef MGP:
[...]
Heb je een schema met een totaaloverzicht van uw schakeling? en kun je dat eens posten?

Mijn oplossing ziet er zo uit:

Dat is dus alleen het stuurcircuit. Bij de letters A t/m V zitten LED’s om te volgen wat er gebeurd.
Voor de randcomponenten en relais heb ik het volgende schema:

Voor U1 kunnen ook de twee transistoren toegepast worden.
Op J1 zijn voor de spindel pen 1 t/m 7; de motor en de eindschakelaars die naar 5 VDC schakelen. 8 t/m 12 is de bediening; de drukknop schakelt naar Gnd en daar zit ook de “omkeer zoemer” en een lampje in de drukknop.
U4 en U5 zijn bedoeld als indicatie voor een te hoge motorstroom, dan gaan de zoemer en het lampje knipperen.

Hopelijk is dit voldoende als totaaloverzicht.

Een probleem is er om opgelost te worden. Lukt dat niet dan heb je een feit.
Lambiek

Special Member

Op 22 augustus 2021 13:41:07 schreef Toon60:
Na deze opmerking wordt ik toch nieuwsgierig hoe dat gaat lukken.

En dat is dan een microcontroller. :)

Mijn oplossing ziet er zo uit:

Ik zie bij niet één IC een ontstoorcondensator staan in je schema, bij ieder IC hoort er over de voeding 100nF te staan zo dicht mogelijk bij het IC.

Ook bij je spanningsregelaars mis ik een paar condensatoren.

Als je haar maar goed zit, GROETEN LAMBIEK.

Op 22 augustus 2021 13:49:41 schreef Lambiek:
En dat is dan een microcontroller. :)

Ja, de microcontroller, maar die hadden we in deze opzet toch afgeserveerd, want te gecompliceerd?

Ik zie bij niet één IC een ontstoorcondensator staan in je schema, bij ieder IC hoort er over de voeding 100nF te staan zo dicht mogelijk bij het IC.

Klopt, die zijn bij het overnemen van het schema in KiCad niet meegenomen, maar die zitten er uiteraard wel.

Ook bij je spanningsregelaars mis ik een paar condensatoren.

Waar dan? Er zit er één vóór en één ná de regelaar. Wat nog meer?

Een probleem is er om opgelost te worden. Lukt dat niet dan heb je een feit.
Lambiek

Special Member

Op 22 augustus 2021 14:19:39 schreef Toon60:
Ja, de microcontroller, maar die hadden we in deze opzet toch afgeserveerd, want te gecompliceerd?

Toen had ik je schema nog niet gezien, zijn wel erg veel IC's.
Het zal wel een leer moment worden als je nog nooit iets met een controller gedaan hebt.

Waar dan? Er zit er één vóór en één ná de regelaar. Wat nog meer?

Ik zet altijd een elco aan de in en uitgang van de regelaar en een 100nF ervoor en erna.

EDIT:

En vaak zet ik er ook nog een paar diode's bij.

Als je haar maar goed zit, GROETEN LAMBIEK.

Op 22 augustus 2021 13:49:41 schreef Lambiek:
[...]
En dat is dan een microcontroller. :).

Das toch een makkie voor u :) :)

Op 22 augustus 2021 13:41:07 schreef Toon60:
Mijn oplossing ziet er zo uit:

Wauw... veel teveel kans op fouten.
Hoe zit de schakeling van de motor in elkaar en waar zitten de eindschakelaars?
Hoe zit de bediening in elkaar?

Toegegeven..ik ben op dat gebied traag van begrip, eenmaal ik alles doorheb is een programma schrijven zoals dit maar een 1/2 uurtje werk.
Mijn motto is altijd, een controller doet alles wat je hem opdraagt en dat is zelden wat je bedoelt ;)

e: misschien kan ik wat schrijven?

LDmicro user.
Lambiek

Special Member

Op 22 augustus 2021 14:31:37 schreef MGP:
Das toch een makkie voor u :) :)

Waarschijnlijk wel. :)

e: misschien kan ik wat schrijven?

Maar ja, jij was me voor. :)

Als je haar maar goed zit, GROETEN LAMBIEK.

Op 22 augustus 2021 14:44:34 schreef Lambiek:

Maar ja, jij was me voor. :)

Noppe jij was te traag :) :)

Een goede beschrijving in steno-formaat zou de zaak wat overzichtelijker maken, voor mij althans ;)

LDmicro user.
Lambiek

Special Member

Op 22 augustus 2021 14:51:51 schreef MGP:
Noppe jij was te traag :) :)

Ja, we worden ouder hé. :)

@ TS,

Ik zie ook geen vrijloop diodes bij de relais staan, "over de motor dus" ook niet over de relaisspoelen. En dat is zeker wel nodig als je met CMOS of TTL aan de gang gaat. Geld trouwens ook voor een controller, ontstoren die handel. Anders krijg je problemen.

En nog een dingetje, je voed het 24VDC gedeelte uit 18VAC. Gelijkgericht en afgevlakt is dat +/-25V aan de ingaande kant van je 24VDC regelaar, is dat niet een beetje aan de krappe kant?

En waarom meet je de stroom in het circuit? Is dat als beveiliging of heeft het een ander doel?

En ik hoop niet dat je het als kritiek ziet, want zo is het zeker niet bedoeld. We proberen je alleen maar op weg te helpen. :)

Als je haar maar goed zit, GROETEN LAMBIEK.
Lambiek

Special Member

Op 22 augustus 2021 14:31:37 schreef MGP:
Toegegeven..ik ben op dat gebied traag van begrip, eenmaal ik alles doorheb is een programma schrijven zoals dit maar een 1/2 uurtje werk.

e: misschien kan ik wat schrijven?

Als je iets gaat schrijven, vergeet dan het hele schema. De TS wil één drukknop. Eenmaal drukken is luik open, "luik loopt naar eindschakelaar open" nog eenmaal drukken is luik dicht "luik loopt naar eindschakelaar dicht"

Meer is het niet volgens mij, maar kan het mis hebben hoor.

Als je haar maar goed zit, GROETEN LAMBIEK.

Dat zijn 4 3 lijntjes in LDmicro.. 10min werk..

Maar hoe stopt dat luik? blijft het relais in als dat luik open of toe staat en zitten de eindschakelaars in de motorkring of worden de eindschakelaars ingelezen?

LDmicro user.

Is onderstaand schema voldoende?

LDmicro user.
Lambiek

Special Member

Op 22 augustus 2021 16:30:36 schreef MGP:
Is onderstaand schema voldoende?

Maar dan wel met eindschakelaars natuurlijk. En hij meet de stroom, maar waarvoor weet ik niet.

We horen niets meer van de TS.

Als je haar maar goed zit, GROETEN LAMBIEK.

We zullen wel zien, de rest zal voor morgen zijn als de TS weer van zich laat horen, straks moet ik weg.

LDmicro user.
Lambiek

Special Member

Het kan heel simpel.

Even een klein testje gedaan, dit werkt al goed.

Kunnen nog wat startvoorwaarden ingebouwd worden en een stroommeting als het moet. Voor de test kijk ik nu even of de eindschakelaars er zijn om te stoppen, "NO contact" maar dat kan ook een verbreker zijn "NC contact" Die laatste is natuurlijk het veiligste, dan kun je gelijk eventuele draadbreuk detecteren.

pic basic code:


Device 16F887                               ; Processor type

Xtal 10                                     ; Cristal 10Mhz

Asm                                         ; Config settings
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                            ; Alle poorten digitaal

;Declare Adin_Res = 8                        ; resolutie 8 bits
;Declare Adin_Tad = frc                      ; set RC osc
;Declare Adin_Stime = 50                     ; sample tijd 5

;Declare LCD_RSPin PORTD.2                   ; Reset display poort D.2
;Declare LCD_ENPin PORTD.3                   ; Enable display poort D.3
;Declare LCD_DTPin PORTD.4                   ; Data display poort D.4 t/m D.7
;Declare LCD_Lines 2                         ; Twee lijns display

;Declare Rsin_Pin  PORTB.0                   ; Data in
;Declare Rsout_Pin PORTB.1                   ; Data uit
;Declare Serial_Baud 2400                    ; Baudrate 2400
;Declare Serial_Data 8                       ; Acht bit data
;Declare Rsin_Timeout 20
;Declare Rsout_Pace 5

;Declare Hserial_Baud 9600                   ; Set baudrate op 9600
;Declare Hserial_RCSTA %10010000             ; Register instelling
;Declare Hserial_TXSTA %10100110             ; Register instelling 
;Declare Hserial_Clear = On                  ; Reset buffer bij een overflow 

;Declare CCP1_Pin PORTC.2                    ; HPWM 1 op poort C.2
;Declare CCP2_Pin PORTC.1                    ; HPWM 2 op poort C.1

Symbol S1 = PORTA.0

Symbol EINDSCHAK_OPEN  = PORTE.0
Symbol EINDSCHAK_DICHT = PORTE.2

Symbol UIT_1 = PORTC.0
Symbol UIT_2 = PORTC.2

Dim TELLER As Byte
Dim TEL_BIT As Bit 

;Cls                                         ; Wis display

DelayMS 1000                                ; Pauze 1 sec 

Clear                                       ; Wis geheugen

         ;543210                            ; Hulpregel poort A
PORTA  = %000000                            ; Maak poort A laag
TRISA  = %111111                            ; Poort_A I/O

         ;543210                            ; Hulpregel poort B
PORTB  = %000000                            ; Maak poort B laag
TRISB  = %111111                            ; Poort_B I/O

         ;76543210                          ; Hulpregel poort C
PORTC  = %00000000                          ; Maak poort C laag
TRISC  = %00000000                          ; Poort_C I/O

         ;76543210                          ; Hulpregel poort D
PORTD  = %00000000                          ; Maak poort D laag
TRISD  = %00000000                          ; Poort_D I/O

         ;210                               ; Hulpregel poort E 
PORTE  = %000                               ; Maak poort E laag
TRISE  = %111                               ; Poort_E I/O

         ;76543210                          ; Hulpregel analoog
;ADCON0 = %00000001                          ; ADCON0 register analoog 8 bit

         ;76543210                          ; Hupregel analoog
;ADCON1 = %10000000                          ; ADCON1 register analoog 10 bit

         ;76543210                          ; Hulpregel analoog poort_B
;ANSELH = %00000000                          ; ANSEL register analoog poort_B

;----------------------------
; TEST LUIK OPEN LUIK DICHT.
;----------------------------

TELLER = 0
UIT_1 = 0
UIT_2 = 0

RUN:
    

    If S1 = 1 Then
       TEL_BIT = 1
       GoTo TEL_OP
    EndIf
     
GoTo RUN

TEL_OP:


    If TEL_BIT = 1 Then
       TELLER = TELLER + 1
    EndIf
    
    TEL_BIT = 0
    
    If TELLER = 1 Then
       If S1 = 0 Then
          GoTo LUIK_OPEN
       EndIf
    EndIf
    
    If TELLER = 2 Then
       If S1 = 0 Then
          GoTo LUIK_DICHT
       EndIf
    EndIf
    
GoTo TEL_OP

LUIK_OPEN:


    UIT_1 = 1
    
    If EINDSCHAK_OPEN = 1 Then
       UIT_1 = 0
       GoTo RUN
    EndIf
     
GoTo LUIK_OPEN

LUIK_DICHT:


    UIT_2 = 1
    
    If EINDSCHAK_DICHT = 1 Then
       UIT_2 = 0
       TELLER = 0
       GoTo RUN
    EndIf
    
GoTo LUIK_DICHT

End

Als je haar maar goed zit, GROETEN LAMBIEK.

Op 22 augustus 2021 14:31:37 schreef MGP:
Hoe zit de schakeling van de motor in elkaar en waar zitten de eindschakelaars?
Hoe zit de bediening in elkaar?

Op de J1 connector van de Relais Motor schakeling zijn de spindel en de bediening aangesloten.
Dat ziet er als volgt uit:

e: misschien kan ik wat schrijven?

Mogelijk, als ik dat traject ga wil ik het zeker onder deskundige supervisie doen.

Op 22 augustus 2021 15:00:05 schreef Lambiek:
Ik zie ook geen vrijloop diodes bij de relais staan, "over de motor dus" ook niet over de relaisspoelen. En dat is zeker wel nodig als je met CMOS of TTL aan de gang gaat. Geld trouwens ook voor een controller, ontstoren die handel. Anders krijg je problemen.

De beveiligingsdiodes zitten er allemaal in, maar het schema heb ik snel even opgetekend om een indruk te geven.

En nog een dingetje, je voed het 24VDC gedeelte uit 18VAC. Gelijkgericht en afgevlakt is dat +/-25V aan de ingaande kant van je 24VDC regelaar, is dat niet een beetje aan de krappe kant?

Klopt, dat zou iets hoger moeten worden, maar vooralsnog wordt die 24 VDC uit m’n labvoeding gehaald. Voor de definitieve uitvoering wil ik een 2x 36 VAC ringkern trafo gebruiken. Daar zitten geen andere windingen op, maar het plan is daar zelf een winding bij te leggen voor die 24 VDC en ook voor de 5 VDC.

En waarom meet je de stroom in het circuit? Is dat als beveiliging of heeft het een ander doel?

Dat deel heb ik nog niet goed uitgeprobeerd. Mocht het luik vastzitten of ergens tegenaan lopen dan wil ik de oplopende motorstroom detecteren en een signaal geven met de zoemer en de LED in de drukknop.

En ik hoop niet dat je het als kritiek ziet, want zo is het zeker niet bedoeld. We proberen je alleen maar op weg te helpen. :)

Het is af en toe wel even slikken, maar ik ervaar het zeker niet als negatieve kritiek.

Op 22 augustus 2021 15:42:57 schreef Lambiek:
[...]
Als je iets gaat schrijven, vergeet dan het hele schema. De TS wil één drukknop. Eenmaal drukken is luik open, "luik loopt naar eindschakelaar open" nog eenmaal drukken is luik dicht "luik loopt naar eindschakelaar dicht"

Meer is het niet volgens mij, maar kan het mis hebben hoor.

Één drukknop klopt, maar die moet wel iets meer in z’n mars hebben. Als je in het stroomdiagram kijkt zie je dat er, terwijl het luik open of dicht gaat, gestopt kan worden. Vanuit die gestopte positie kan bepaald worden of het luik in dezelfde richting verder gaat of in de andere richting.

Op 22 augustus 2021 15:59:04 schreef MGP:
Maar hoe stopt dat luik? blijft het relais in als dat luik open of toe staat en zitten de eindschakelaars in de motorkring of worden de eindschakelaars ingelezen?

Op de spindel zitten twee eindschakelaars die ik kan positioneren. Daarmee bepaal ik de begin en eindpositie van het luik.

Op 22 augustus 2021 16:47:02 schreef Lambiek:
We horen niets meer van de TS.

Jullie zijn zo lekker bezig en willen tegelijk ook veel weten. Dat probeer ik bij te houden en jullie goed te informeren.
Zo, nu kan dan toch aan de aardappelen.

Een probleem is er om opgelost te worden. Lukt dat niet dan heb je een feit.

Op 22 augustus 2021 17:25:50 schreef Toon60:
[...]
Mogelijk, als ik dat traject ga wil ik het zeker onder deskundige supervisie doen.

Ik was van plan om tegen de kosten (5€) u een geprogrammeerde 12F675 incl. de transistoren op te sturen, daarvoor moet je geen programmer enzo kopen...als je akkoord bent natuurlijk.

ow ik zie een zoemer enzo, dan zal het een grotere pic moeten zijn..

LDmicro user.

Op 22 augustus 2021 17:25:50 schreef Toon60:

Één drukknop klopt, maar die moet wel iets meer in z’n mars hebben. Als je in het stroomdiagram kijkt zie je dat er, terwijl het luik open of dicht gaat, gestopt kan worden. Vanuit die gestopte positie kan bepaald worden of het luik in dezelfde richting verder gaat of in de andere richting.

Hier zijn we terug en met vragen ;)
Dat stroomdiagram is voor mij moeilijk te volgens, drukknop in en dan drukknop uit werkt zo niet, drukknop is bij mij een start-stop cyclus

Wat hierboven staat kan geen enkele schakeling, de schakeling kan niet weten wat je in gedachten hebt nadat de motor gestopt werd.
Als de motor bv. gestopt werd tijdens het sluiten kun je met 1 drukknop niet meer kiezen wat je dan wilt doen.
Met 1 drukknop moet je een vaste schakelvolgorde respecteren.

Wanneer gaat de zoemer en hoelang?

Wat moet er gebeuren bij het overstroomsignaal?
Let wel..dat signaal zul je ook krijgen als je de eindcontacten afregelt op maximale druk op dat luik!

Wanneer werkt de led?

In de praktijk worden die eindcontacten meestal in de motorkring gezet om de motor te beschermen tegen falen van de relais en schakelfouten.
De eindcontacten op de foto hebben het na een tijdje ook moeilijk om signalen te schakelen waar bijna geen stroom mee gemoeid is zoals digitale signalen.

Het ziet ernaar uit dat het voor mij, die geen overzicht heeft over de plaatselijke situatie, het heel moeilijk zal zijn om een readymade programma te schrijven.
Vooral de tijden worden een probleem en die kun jij achteraf niet veranderen als ze niet juist staan.
Ik had een rolluikbediening voor ogen, op en neer met 1 knop en binnen een bepaalde tijdspanne met eindcontacten in de motorkring.

Er zal dus nog een en ander opgehelderd moeten worden.

LDmicro user.

Op 22 augustus 2021 17:24:04 schreef Lambiek:
Het kan heel simpel.
Even een klein testje gedaan, dit werkt al goed.

Dat ziet er al indrukwekkend uit, maar ik mis een deel van de gewenste functies. Als ik het goed begrijp is het alleen: Drukknop > luik open > drukknop > luik dicht. Dat is buitenste loop uit het stroomdiagram. Dus ik mis nog dat het luik gestopt kan worden enz. Dat kan ongetwijfeld nog ingebouwd worden in de delen LUIK_OPEN: en LUIK_DICHT: met wat extra code.

Op 22 augustus 2021 17:34:02 schreef MGP:
Ik was van plan om tegen de kosten (5€) u een geprogrammeerde 12F675 incl. de transistoren op te sturen, daarvoor moet je geen programmer enzo kopen...als je akkoord bent natuurlijk.

ow ik zie een zoemer enzo, dan zal het een grotere pic moeten zijn..

Dat is zeker een mooi aanbod, dank daarvoor. Daarmee heb ik gelijk een goed resultaat, alleen is het bepaald geen uitdaging meer voor me. Afgezien natuurlijk van het afbouwen in de praktijk van het geheel.

Een probleem is er om opgelost te worden. Lukt dat niet dan heb je een feit.

Op 23 augustus 2021 09:31:47 schreef MGP:
[...]
Hier zijn we terug en met vragen ;)
Dat stroomdiagram is voor mij moeilijk te volgens, drukknop in en dan drukknop uit werkt zo niet, drukknop is bij mij een start-stop cyclus

De drukknop is een omschakelaar, dus eigenlijk een dubbele drukknop. In rust is NC=0 en NO=1 (via R2). Ingedrukt is NC=1 (via R1) en NO=0. Die moeten beide gedetecteerd worden.
In de stuurschakeling vormen U1a en b een anti dender circuit en op de meetpunten A en B staan de schone standen van de drukknop.

Wat hierboven staat kan geen enkele schakeling, de schakeling kan niet weten wat je in gedachten hebt nadat de motor gestopt werd.
Als de motor bv. gestopt werd tijdens het sluiten kun je met 1 drukknop niet meer kiezen wat je dan wilt doen.
Met 1 drukknop moet je een vaste schakelvolgorde respecteren.

Het zal toch niet zijn dat een µ-processor niet kan wat ik met mijn TTL circuit wel voor elkaar krijg? De schakeling die ik heb werkt gewoon hè, precies zoals ik bedoel.

Wanneer gaat de zoemer en hoelang?

De rol van de zoemer is als volgt: tijdens het lopen van de motor (open of dicht) kan de drukknop worden ingedrukt, waarmee de motor wordt gestopt. Daarna wordt de drukknop losgelaten wat geen effect heeft op de motor. Nu staat het luik half open of dicht en gebeurt er niets.
Wordt nu de drukknop weer wordt ingedrukt dan worden te twee timers van U7 actief. De eerste (U7b) loopt ±750 mSek. Wordt binnen die tijd de drukknop losgelaten, dan loopt de motor verder in dezelfde richting waarin er gestopt werd.
Blijft de drukknop ingedrukt tot de 750 mSek voorbij zijn, dan wordt de timer van U7a gestart en die activeert gedurende ±250 mSek de zoemer. Daarna moet de drukknop worden losgelaten en gaat de motor verder in de andere richting dan waarin gestopt werd.
Dit alles kan eventueel steeds weer herhaald worden. Dit is ook mooi te zien in het stroomdiagram.

Wat moet er gebeuren bij het overstroomsignaal?
Let wel..dat signaal zul je ook krijgen als je de eindcontacten afregelt op maximale druk op dat luik!

Wanneer werkt de led?

Met het overstroomsignaal doe ik niet veel bijzonders en dat heb ik ook nog niet goed getest. Het idee is dat bij een te hoge motorstroom de LED en de zoemer door de 555 (U5) gepulsd worden geschakeld als een waarschuwing. Normaal is de LED altijd aan als de verlichting van de drukknop.
Maar zoals gezegd daar hoeft voorlopig niets mee gedaan worden.

In de praktijk worden die eindcontacten meestal in de motorkring gezet om de motor te beschermen tegen falen van de relais en schakelfouten.
De eindcontacten op de foto hebben het na een tijdje ook moeilijk om signalen te schakelen waar bijna geen stroom mee gemoeid is zoals digitale signalen.

De eindcontacten zijn twee schakelaars die door een magneetje op de spindel worden aangestuurd.
Die contacten kan ik op elke plaats op de spindel vastzetten en daarmee het traject van het luik bepalen

Het ziet ernaar uit dat het voor mij, die geen overzicht heeft over de plaatselijke situatie, het heel moeilijk zal zijn om een readymade programma te schrijven.
Vooral de tijden worden een probleem en die kun jij achteraf niet veranderen als ze niet juist staan.
Ik had een rolluikbediening voor ogen, op en neer met 1 knop en binnen een bepaalde tijdspanne met eindcontacten in de motorkring.

Er zal dus nog een en ander opgehelderd moeten worden.

Dat begrijp ik, daarom heb ik ook nooit gesteld dat het eenvoudig te maken zou zijn.

Al met al merk ik dat het stuurcircuit wat ik lang geleden heb ontworpen zo gek nog niet is. En op dit moment werkt het beter dan afgelopen weken, waardoor het lijkt dat storingen voortkwamen uit de gebrekkige schakeling op het prikbordje.
Daarom denk ik dat ik toch met dat oorspronkelijke ontwerp een printje ga ontwerpen. Als dat goed gaat werken vind ik dat een mooi resultaat.
Let wel: ik waardeer jullie inzet voor de alternatieve oplossing enorm en hoop daar ooit nog eens iets mee te gaan doen. Maar voor dit moment wil ik de oorspronkelijke weg volgen. Dan ben ik ook benieuwd of de IR2184 en FET’s weer ingezet kunnen worden.

Een probleem is er om opgelost te worden. Lukt dat niet dan heb je een feit.

Op 23 augustus 2021 10:59:26 schreef Toon60:

Het zal toch niet zijn dat een µ-processor niet kan wat ik met mijn TTL circuit wel voor elkaar krijg? De schakeling die ik heb werkt gewoon hè, precies zoals ik bedoel.

Een µ-controller kan meer en veel makkelijker iets besturen dan TTL, ALS je maar weet hoe het moet werken en daar heb ik het nu moeilijk mee.

Dus je start de motor met de drukknop en halverwege stop je die met de drukknop en nu beweer je dat je met diezelfde drukknop kunt kiezen of het luik open of toe moet gaan, want dat staat in uw oorspronkelijke tekst.
Ik zou niet weten hoe je dat moet doen :?

edit: Oja, je werkt met tijd

Nu.. we volgen verder uw project en misschien zal ik het later wel snappen wat ik nu niet volledig zie ;)

edit: ik heb de indruk dat het iets is voor een persoon met een beperking en te bedienen met bv. een blaaspijp of zoiets.

LDmicro user.
Lambiek

Special Member

Op 23 augustus 2021 11:16:12 schreef MGP:
edit: Oja, je werkt met tijd waarom makkelijk maken (2knoppen) als moeilijk ook kan ;)

Ja precies, met twee knoppen kan het veel makkelijker. Bijv. met één knop door een menu scrollen en één knop om je gekozen actie te activeren. Zo kun je honderden acties doen met twee knoppen.

Ik heb ook al van alles geprobeerd, maar een controller werkt een loop af en dat werkt nu eenmaal anders dan een stuk of 15 losse IC's. :)

Ik snap ook niet waarom je halverwege zou willen stoppen en dan besluit om weer verder te gaan, iets met niet kunnen kiezen.

Halverwege stoppen en weer dicht sturen kan ik me nog iets bij voorstellen.

Als je haar maar goed zit, GROETEN LAMBIEK.

Op 23 augustus 2021 12:22:27 schreef Lambiek:
Ik heb ook al van alles geprobeerd, maar een controller werkt een loop af en dat werkt nu eenmaal anders dan een stuk of 15 losse IC's. :)

Met TTL kun je bijna niet anders dan zo te werken, met een controller heb je veel meer mogelijkheden bv. 1x drukken is stop, 2x omhoog en 3x omlaag ...binnen één of meerdere seconde(n).

Maar wat hij maakt met TTL is toch wel verbazend mooi gemaakt, zou ik weer veel moeite mee hebben _/-\o_

LDmicro user.
Lambiek

Special Member

Op 23 augustus 2021 10:55:57 schreef Toon60:
Dat ziet er al indrukwekkend uit, maar ik mis een deel van de gewenste functies. Als ik het goed begrijp is het alleen: Drukknop > luik open > drukknop > luik dicht. Dat is buitenste loop uit het stroomdiagram. Dus ik mis nog dat het luik gestopt kan worden enz. Dat kan ongetwijfeld nog ingebouwd worden in de delen LUIK_OPEN: en LUIK_DICHT: met wat extra code.

Dit werkt goed en doet wat jij wil, maar wel met twee drukknoppen.

Met de keuzeknop kun je door het menu scrollen "hier heb je maar twee keuzes open of dicht" en met de enterknop bevestig je open of dicht.

Met de zelfde keuze knop kun je het proces ook stoppen en weer een keuze maken of het luik verder open gaat of dat je het luik wil sluiten.

Op het display kun je zien wat er gebeurt, zo heb je ook geen ledjes meer nodig. Zoemer zit er ook niet bij, maar zou niet weten waarvoor dat nog moet met het display erbij. Maar kan altijd nog als nodig.

Daarmee heb ik gelijk een goed resultaat, alleen is het bepaald geen uitdaging meer voor me.

Je kunt altijd nog een Arduino kopen en het daarmee maken, dan is de uitdaging er weer wel. :)

pic basic code:


Device 16F887                               ; Processor type

Xtal 10                                     ; Cristal 10Mhz

Asm                                         ; Config settings
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                            ; Alle poorten digitaal

;Declare Adin_Res = 8                        ; resolutie 8 bits
;Declare Adin_Tad = frc                      ; set RC osc
;Declare Adin_Stime = 50                     ; sample tijd 5

Declare LCD_RSPin PORTD.2                   ; Reset display poort D.2
Declare LCD_ENPin PORTD.3                   ; Enable display poort D.3
Declare LCD_DTPin PORTD.4                   ; Data display poort D.4 t/m D.7
Declare LCD_Lines 2                         ; Twee lijns display

;Declare Rsin_Pin  PORTB.0                   ; Data in
;Declare Rsout_Pin PORTB.1                   ; Data uit
;Declare Serial_Baud 2400                    ; Baudrate 2400
;Declare Serial_Data 8                       ; Acht bit data
;Declare Rsin_Timeout 20
;Declare Rsout_Pace 5

;Declare Hserial_Baud 9600                   ; Set baudrate op 9600
;Declare Hserial_RCSTA %10010000             ; Register instelling
;Declare Hserial_TXSTA %10100110             ; Register instelling 
;Declare Hserial_Clear = On                  ; Reset buffer bij een overflow 

;Declare CCP1_Pin PORTC.2                    ; HPWM 1 op poort C.2
;Declare CCP2_Pin PORTC.1                    ; HPWM 2 op poort C.1

Symbol KEUZE = PORTA.0                      ; Ingang keuze drukknop
Symbol ENTER = PORTA.1                      ; Ingang enter drukknop

Symbol EINDSCHAK_OPEN  = PORTE.0            ; Ingang eindschak open
Symbol EINDSCHAK_DICHT = PORTE.2            ; Ingang eindschak dicht

Symbol UIT_1 = PORTC.0                      ; Uitgang relais open
Symbol UIT_2 = PORTC.2                      ; Uitgang relais dicht

Dim TELLER As Byte                          ; Variabele waarde teller
Dim TEL_BIT As Bit                          ; Variabele waarde telbit

Cls                                         ; Wis display

DelayMS 1000                                ; Pauze 1 sec 

Clear                                       ; Wis geheugen

         ;543210                            ; Hulpregel poort A
PORTA  = %000000                            ; Maak poort A laag
TRISA  = %111111                            ; Poort_A I/O

         ;543210                            ; Hulpregel poort B
PORTB  = %000000                            ; Maak poort B laag
TRISB  = %111111                            ; Poort_B I/O

         ;76543210                          ; Hulpregel poort C
PORTC  = %00000000                          ; Maak poort C laag
TRISC  = %00000000                          ; Poort_C I/O

         ;76543210                          ; Hulpregel poort D
PORTD  = %00000000                          ; Maak poort D laag
TRISD  = %00000000                          ; Poort_D I/O

         ;210                               ; Hulpregel poort E 
PORTE  = %000                               ; Maak poort E laag
TRISE  = %111                               ; Poort_E I/O

         ;76543210                          ; Hulpregel analoog
;ADCON0 = %00000001                          ; ADCON0 register analoog 8 bit

         ;76543210                          ; Hupregel analoog
;ADCON1 = %10000000                          ; ADCON1 register analoog 10 bit

         ;76543210                          ; Hulpregel analoog poort_B
;ANSELH = %00000000                          ; ANSEL register analoog poort_B

;----------------------------
; TEST LUIK OPEN LUIK DICHT.
;----------------------------

TELLER = 0
UIT_1 = 0
UIT_2 = 0

MENU:


    If KEUZE = 1 Then
       TEL_BIT = 1
    EndIf
     
    If TEL_BIT = 1 Then
       If KEUZE = 0 Then
          TELLER = TELLER + 1
          TEL_BIT = 0
       EndIf
    EndIf
    
    If TELLER = 1 Then
    
       Print At 1,1,"***LUIK__OPEN***"
       Print At 2,1,"**ENTER__KEUZE**"
       
       If ENTER = 1 Then 
          GoTo LUIK_OPEN
       EndIf
       
    EndIf
    
    If TELLER = 2 Then
    
       Print At 1,1,"***LUIK_DICHT***"
       Print At 2,1,"**ENTER__KEUZE**"
       
       If ENTER = 1 Then   
          GoTo LUIK_DICHT
       EndIf
       
    EndIf
    
    If TELLER > 2 Then
       TELLER = 0
    EndIf
    
    If TELLER = 0 Then
       Print At 1,1,"*MAAK_EEN_KEUZE*"
    EndIf
        
GoTo MENU

LUIK_OPEN:


    If ENTER = 0 Then
    
       Print At 1,1,"DRUK_OP_KEUZE_IS" 
       Print At 2,1,"******STOP******"
       
       UIT_1 = 1
    
       If EINDSCHAK_OPEN = 1 Then
          Print At 2,1,"***LUIK__OPEN***"
          UIT_1 = 0    
          TELLER = 0
          GoTo MENU
       EndIf
    
      If KEUZE = 1 Then
         Cls
         GoTo STOP_LUIK_OPEN
      EndIf 
    
    EndIf
            
GoTo LUIK_OPEN

LUIK_DICHT:


    If ENTER = 0 Then
    
       Print At 1,1,"DRUK_OP_KEUZE_IS" 
       Print At 2,1,"******STOP******"
                    
       UIT_2 = 1
    
       If EINDSCHAK_DICHT = 1 Then
          Print At 2,1,"***LUIK_DICHT***"
          UIT_2 = 0    
          TELLER = 0
          GoTo MENU
       EndIf
    
        If KEUZE = 1 Then
           Cls
           GoTo STOP_LUIK_DICHT
        EndIf
    
    EndIf
    
GoTo LUIK_DICHT

STOP_LUIK_OPEN:


    Print At 1,1,"***STOP__OPEN***"

    If KEUZE = 0 Then
       UIT_1 = 0
       TELLER = 0
       DelayMS 3000
       Cls
       GoTo MENU
    EndIf
    
GoTo STOP_LUIK_OPEN

STOP_LUIK_DICHT:


    Print At 1,1,"STOP__LUIK_DICHT"

    If KEUZE = 0 Then
       UIT_2 = 0
       TELLER = 0
       DelayMS 3000
       Cls
       GoTo MENU
    EndIf
      
GoTo STOP_LUIK_DICHT
  
End
    

Alleen zit het stroom meet gebeuren hier nog niet in, dat is met een shunt eventueel te meten en terug te koppelen naar een analoge ingang.

Hier een voorbeeld:

Als je haar maar goed zit, GROETEN LAMBIEK.

Op 23 augustus 2021 11:16:12 schreef MGP:
[...]
Een µ-controller kan meer en veel makkelijker iets besturen dan TTL, ALS je maar weet hoe het moet werken en daar heb ik het nu moeilijk mee.

Sorry dat ik het u zo moeilijk heb gemaakt.

Nu.. we volgen verder uw project en misschien zal ik het later wel snappen wat ik nu niet volledig zie ;)
edit: ik heb de indruk dat het iets is voor een persoon met een beperking en te bedienen met bv. een blaaspijp of zoiets.

Dat klopt wel een beetje. Het luik is van de kelder in onze schuur, achter in de tuin. Vaak komen we uit huis met spullen in de hand/onder de armen die naar de kelder moeten. Handmatig het luik openen betekent dat eerst alles ergens moet worden neer gelegd/gezet en na openen weer bij elkaar gepakt. Een drukknop kan met de elleboog bediend worden. Met twee drukknoppen is bedienen met de elleboog al een beetje gokken.
Als hobby wijnmaker gok ik liever niet wanneer ik met een volle glazen fles van 15 liter loop die naar de kelder moet.

Op 23 augustus 2021 12:22:27 schreef Lambiek:
[...]
Ja precies, met twee knoppen kan het veel makkelijker. Bijv. met één knop door een menu scrollen en één knop om je gekozen actie te activeren. Zo kun je honderden acties doen met twee knoppen.

Dat begrijp ik, maar door een menu scrollen voor honderden acties is het laatste wat ik wil met die grote glazen fles sta en de kelder in wil. Één drukknop en ’n zoemer is dan overzichtelijker.

Ik heb ook al van alles geprobeerd, maar een controller werkt een loop af en dat werkt nu eenmaal anders dan een stuk of 15 losse IC's. :)

Dat begrijp ik dan weer niet. Wanneer ik naar het stroomdiagram kijk, zou ik volgens mij redelijk eenvoudig met Turbo Pascal een programma in elkaar zetten. Het is dat ik voor dit doel niet steeds een PC kan laten draaien.

Ik snap ook niet waarom je halverwege zou willen stoppen en dan besluit om weer verder te gaan, iets met niet kunnen kiezen.
Halverwege stoppen en weer dicht sturen kan ik me nog iets bij voorstellen.

Wanneer er iets onverwachts gebeurd, wil ik het luik kunnen stoppen. Afhankelijk van wat er aan de hand is, kan het luik verder of weer terug. En het kan, dus waarom niet?

Op 23 augustus 2021 13:37:21 schreef MGP:
Maar wat hij maakt met TTL is toch wel verbazend mooi gemaakt, zou ik weer veel moeite mee hebben _/-\o_

Dank je wel voor dit mooie compliment, eindelijk iemand die het ziet :)

Dank zij jullie commentaren en adviezen heb ik nu wel een plan hoe ik verder wil. Nu voel ik me verplicht eerst de oorspronkelijke opzet te volgen, wat ik niet erg vind. Met relais of zelfs met de FET’s als het kan.
Zodra er vooruitgang is meld ik me weer; eerst ga ik de print maken.
En mocht het tot een goed einde geraken, dan ben je van harte uitgenodigd het geautomatiseerde kelderluik in ogenschouw te komen nemen.

Een probleem is er om opgelost te worden. Lukt dat niet dan heb je een feit.