Remi
Midiologie.nl. Makers van LPTpushbutton. Als je echt van je hobby houd, laat dom commentaar van anderen je koud.
Beste mede forumers...
Hier onder is een schakeling waar ik mee bezig ben.
Met de relays stuur ik een ruitenwisser motor links om en rechts om.
wanneer er een opject tegen de schaklaar komt zal de motor stoppen en 1 minuut wachten en begint hij de andere kant op te draaien.
en het verhaal begint weer opnieuw.
de software in de pic werkt helemaal correct dat is 1 ding wat zeker is.
Het probleem wat ik hier ondervind is het volgende.
Wanneer ik de schakeling aktiveer is er geen Eurotje (centje) pijn.
Maar na een random tijd begint de schakeling raar te doen.
hij kan dan spontaan niet meer reageren op een van de schakelaars met alle gevolgen van dien.
of hij schakelt het relay om en weer terug om.
of hij schakelt de motor uit wacht schakelt om en direct weer uit.
Waar zou dit aan kunnen liggen?
Ik heb zelf al meerdere elco's geplaatst bij de motor.
de pic al in een metaal blikje gedaan.
Ik weet het niet meer.
Iemand nog enige suggesties?
Greets
Remi
Die blusdioden kunnen zo ook wel eens voor ellende zorgen. Verder zou het zomaar kunnen dat je door rommel op je voeding door die motor je pic-ding spontaan laat resetten zo nu en dan.
Remi
Midiologie.nl. Makers van LPTpushbutton. Als je echt van je hobby houd, laat dom commentaar van anderen je koud.
Je hebt een punt wat betreft de rommel op de voeding ... daarvoor heb ik al extra in de schakeling meerdere elco's en C'tje geplaatst.
de motor word door een aparte 12 volt voeding aangedreven en staat door de relay's volledig gescheiden van de schakeling.
nu is het wel zo dat wanneer de relay's omslaan er een behoorlijke vonk ontstaat in het relay (kan je mooi zien want deze is doorzichtig
).
Ik dacht eerst aan hf interferentie door deze vonken.
vandaar dat ik ook ee nblikje om de schakeling heen heb gemaakt. maar het gekke is hij blijft rare dingen doen.
soms gegint dit na 5 minuten en soms na een 1/2 uur.
Zou dit temaken kunnen hebben met contact dender van de schaklaars???? ik begin daar nu een beetje aan te denken.
Greets
Remi
lijkt dat niet op een probleem dat de stack vol loopt?
dus in je software te vaak gosub gebruikt zonder return ?
klein is fijn
Moderator
Op 14 december 2007 22:43:55 schreef shiptronic:
lijkt dat niet op een probleem dat de stack vol loopt?
Ik was aan het lezen en dacht hetzelfde. Ontplofde stack probleempje. free legde mij ook nog uit dat PIC's meestal maar een stack van een paar levels hebben, dus je kan het zelfs al om zeep krijgen door alleen te vaak goto achter elkaar te zetten.
goto was geen probleem , dat was direckte adresring en gebuikt geen stack.
porbleem onstaat als je van uit een sub via een goto weer in hoofd programma beland zonder return, stack word dan niet afgeteld en bij elke gosub komt er weer een bij.
tot dat die vol is = onploft.
je programma kan/gaat dan random code uitvoeren
Wat doet de schakeling wanneer de belasting (motor) niet is aangesloten??
Eenvoudig uitsluiten van mogelijke oorzaken??
MCLR een pull up ?
welke taal programeer je?
kun je de code posten of ergens neer zetten
[Bericht gewijzigd door Shiptronic op (62%)]
Wouter van Ooijen
Wouter van Ooijen: VOTI webwinkel, docent HvU (Technische Informatica); C++ on mictrocontrollers blog
Op 14 december 2007 22:56:46 schreef shiptronic:
porbleem onstaat als je van uit een sub via een goto weer in hoofd programma beland zonder return, stack word dan niet afgeteld en bij elke gosub komt er weer een bij.
tot dat die vol is = onploft.
je programma kan/gaat dan random code uitvoeren
Dit is wel de grootste waanzin die ik ooit gezien heb. Het is niet erg dat je niet weet waar je het over hebt, maar zeg het dan niet zo stellig alsof het de waarheid is!
Een 14-bit core PICs (oa alle 16F's) hebben een hardware 8-level stack. Als je een return adres erop 'pusht' (met een call of een interrupt) dan komt dat nieuwe adres bovenop en het onderste verdwijnt. Als je popt (return, retlw, retfie) dan pak je het bovenste adres, dat verdwijnt, en het onderste adres wordt gedupliceert. Overflow bestaat niet, underflow wel in de zin dat je dan niet het adres terugkrijgt dat je ooit gepush hebt, maar een copie van het adres dat je daarna gepusht hebt. Staat keurig beschreven in de datsheet.
Nu voor de OP: ik zou de relais kunnen vervangen door optocolouplers, liefst de schakelaars ook nog, en dan de PIV voeden uit een batterij (met 7805). Als het probleem dan verdwijnt dan is het dus electrisch. Als het niet verdwijnt dan is het je software.
De blusdiodes over de relaisspoelen zijn verkeerdom getekend. Maar in het echt zullen ze wel goed zitten, anders deden de relais niets en had je gekookte transistoren.
Maar je ziet wel vonken over de contacten. Is de belasting dus niet geblust? Je kunt dan beter ook blusdioden over de belasting aanbrengen, zodat de contacten niet zo vonken.
Als dioden niet mogelijk zijn (hangt van de schakeling af), kun je blussen met condensatoren over de contacten. Je moet dan wel weerstanden in serie met de condensatoren zetten, anders branden de contacten alsnog in bij het sluiten.
Voor de juiste waarden, even Googelen. Kijk desnoods ook hier in figuur 15.2 voor het idee.
6foot6
Uitspraken die hier onder mijn naam zijn gepubliseerd, hebben niet altijd mijn instemming
Het zal je probleem niet oplossen, maar haal je voeding voor relais en motor bij voorkeur NIET uit de dezelfde stab. als de digitale elektronica,
Gebruik de ongestab.spanning of gebruik een aparte stab.
iK weerstanden voor aansturing van de transistoren is onnodig klein 4K7 of 10K is voldoende
Als het werkelijk aan de stack ligt, dan treedt het altijd na dezelfde tijd op.
Als de "problemen van dien" fataal zijn, verdient het aanbeveling een hardware of nog beter mechanische "noodstop"is te bouwen
[Bericht gewijzigd door 6foot6 op (26%)]
Remi
Midiologie.nl. Makers van LPTpushbutton. Als je echt van je hobby houd, laat dom commentaar van anderen je koud.
Op 14 december 2007 23:30:58 schreef Frederick E. Terman:
De blusdiodes over de relaisspoelen zijn verkeerdom getekend. Maar in het echt zullen ze wel goed zitten, anders deden de relais niets en had je gekookte transistoren.
de diodes zitten in de schakeling iig wel goed om
dat foutje had ik nog niet eens gezien in me schema 
Maar je ziet wel vonken over de contacten. Is de belasting dus niet geblust? Je kunt dan beter ook blusdioden over de belasting aanbrengen, zodat de contacten niet zo vonken.
Als dioden niet mogelijk zijn (hangt van de schakeling af), kun je blussen met condensatoren over de contacten. Je moet dan wel weerstanden in serie met de condensatoren zetten, anders branden de contacten alsnog in bij het sluiten.
dit is idd nog een idee dat kan ik ook nog eens proberen.
Voor de juiste waarden, even Googelen. Kijk desnoods ook hier in figuur 15.2 voor het idee.
ik ga ff kijken.
@ chiptronic de MCLR pull up zit er wel in ik zie dat ik die ook ben vergeten te tekenen .... (ik ben weer lekker bezig).
Hier heb ik de gebruikte code.
X var byte
TRISB = %000000 ' Selecteer welke poorten in en uitgangen zijn
PORTB.0 = 1 ' Poort B0 staat standaard aan
PORTB.1 = 0 ' Poort B1 staat standaard uit
loop: ' Start Loop
if PORTA.0 = 1 Then
PORTA.0 = 1
PORTA.1 = 0
PORTB.1 = 0
For X = 0 to 1000
next X
PORTB.0 = 1
EndIf
If PORTA.1 = 1 Then
PORTA.1 = 0
PORTA.0 = 0
PORTB.0 = 0
For X = 0 to 1000
next X
PORTB.1 = 1
EndIf
goto loop:
Wanneer de motor is afgekoppelt en dus alleen de "software" draait dan komt dit probleem minder vaak voor dan met motor.
de voedingen zijn volkomen gescheiden. de voeding an de motor komt op dit moemnt zelf nog van een lood accu af. en de voeding voor de pic is een 9 volts 1 amp adaptor wissel
die door een diode brug en een 7805 word geleiggericht en naar 5 volt word gebracht.
ik heb al over elke diode een extra C'tje aangebracht en ook de 7805 aan de in en uitgang een elco van 1000 Uf en een 100 nF C'tje geplaatst. dit zou troep op de voeding moeten voorkomen.
Mischien word men hier iets wijzer van 
als het toch in de software zou zitten wat of hoe moet ik dit dan veranderen ?
Dit is voor mij de eerste keer dat ik een PIC programmeer.
deze code is geschreven in micro studio.
Als ik iets vergeten ben te beantwoorden komt dat omdat ik net wakker ben
:):)
Greets
Remi
Wouter van Ooijen
Wouter van Ooijen: VOTI webwinkel, docent HvU (Technische Informatica); C++ on mictrocontrollers blog
Op 15 december 2007 11:57:16 schreef Remi:
Wanneer de motor is afgekoppelt en dus alleen de "software" draait dan komt dit probleem minder vaak voor dan met motor.
Dat is een belangrijke waarneming. Als je de relais ook loskoppelt, komt het probleem dan nog voor? Dan lijkt het me echt een softwareprobleem, of the zit in de 'rest' van de hardware.
Maaaarre, hoe heb je het gestest zonder de motoren? Zoals ik je begrijp zijn die essentieel om de schakeling 'normaal' te laten functioneren.
- heb je de fuses ergens gezet
- ik zie dat je "PORTB.1 = 0" enzo gebruikt. beschermt die taal je tegen het read-modify-write probleem?
Remi
Midiologie.nl. Makers van LPTpushbutton. Als je echt van je hobby houd, laat dom commentaar van anderen je koud.
Henry S. had het tegen mij ook over fuses
ik ben er alleen nog niet de tijd voor gehad om uit te zoeken wat dit is of doet.
maar kun je eens uitleggen waarom de fuses belangrijk zijn ? en wat ze doen ?
het testen van de schakeling doe ik hier op mijn werkbank.
ik heb in het verleden nog wel eens een stoeltjes lift gebouwd voor in de tuin en die werkt als een trein... maar die stuur ik met een 4017 en een 4060. die geeft geen problemen 
ik wou het dit keer anders doen en een pic gebruiken omdat ik dan zo ook leer hoe met een pic om te gaan.
[edit]
Oke het lijkt er nu op dat de grootste problemen zijn opgelost.
Wat heb ik gedaan.
ik heb op advies van Frederick E. extra blus diodes over de 2 relais geplaatst.
de 7805 heb ik ook vervangen want die gaf geen 5 volt maar 4.5 volt. ( je weet het niet he)
een nieuwe C geplaatst over de voeding pinnen van de PIC
daar de oude sterk af week.
De problemen met de schakelaars lijken nu dus achter de rug.
de schakeling stopt nu elke keer als ik een van de schakelaars in druk.
(hier zit nog we leen probleem ...maar das software gerelateerd.. Want als ik de verkeerde schakelaar indruk dan zal er eerst een delay van 2 minuten optreden voor dat de andere schakelaar weer functioneert.)
er rest zo af en to nog 1 probleem en dat is wanneer de schakeling de motor zou moeten starten dat niet altijd gebeurt. gelukkig voor mij draait hij dan wel na 2 minuten de andere kant weer op dus het programma zit nog in de zelfde ritme.
Het lijkt erop alsof de software de drukknop zelf direct bedient 
dus we zijn al weer een stukje verder.
[/edit]
Greets
Remi
[Bericht gewijzigd door Remi op (15%)]
Remi
Midiologie.nl. Makers van LPTpushbutton. Als je echt van je hobby houd, laat dom commentaar van anderen je koud.
Laatste post voor dit topic...
Probleem is opgelost... Er bleek in mijn voeding een defecte diode te zitten. ik heb met de scoop eens gemeten wat er gebeurde en zo kwam ik erachter dat er wanneer ik ac ging meten er een zaagtand van TT 4 volt over de brug stond.
Voeding weg gegooid en een andere voeding gemaakt. nu heb ook heb ik wat extra elco'tjes en c'tjes er bij gezet en ik heb nu een goede stabiele hf arme voeding voor de pic 
later nog een extra if then regel toegevoegt zodat de schakelaars ook beter reageren. en viola hij werkt prima !!!!
Bedankt voor de hulp allemaal...
greets
Remi
