Aansturen Analoge in-uitgangen

Hallo allemaal,

Onlangs ben ik begonnen met het maken van printplaatjes en het programmeren daarvan met PIC Basic.

Nu wil ik een proportioneel luchtventiel (0-10V) aansturen met een PIC.

Deze druk wil ik weer controleren met een externe luchtdrukopnemer, ook 0-10V. Ik wil dat mijn drukopnemer de ingestelde waarde gaat corrigeren als er een verschil ontstaat door bijv. verlies in het systeem. Zodat de druk op het einde van het systeem altijd correct is.

Nu ben ik al een tijdje bezig om hier de beste oplossing voor te vinden.
Ik heb al informatie ingewonnen over o.a. de PWM, operationele versterker enzovoort.

Omdat ik tot nu toe alleen nog maar met digitale waarde's heb gewerkt weet ik dus niet zeker of ik de juiste keuzes maak.

Ik heb dus een analoge Ingang 0-10V (drukopnemer) en een analoge Uitgang nodig 0-10V (proportioneel ventiel).

Hoe kan ik deze schakeling het beste gaan realiseren? En welke componenten zijn daar het meest geschikt voor?

Bedankt!

Kunt toch gewoon met 2 weerstanden de 0..10 delen in 0..5 voor de pic

En aan de uitgang met een fet+10v voeding ofzo een 0..10v signaal pwmen

Of moet het geheel nog aan speciale hufterproof eisen (optisch geisoleerd, lange draadlengte met storing etc) voldoen?

Bedankt DK!

Inderdaad, de Ingang zou ik met een weerstand kunnen converteren naar 0-5 V.

Met het gebruik van een FET ben ik echter onbekend.
De kabellengte zal nooit langer zijn dan 5 meter. Of krijg je daar al ruis van ?

Dat hangt van de storingen in de omgeving af. In een industrieele omgeving heb je uiteraard eerder last als in een boerenschuur...
Ook hangt het van de gebruikte kabel af. Afscherming/twisten kan daarbij helpen.

Arco - "Simplicity is a prerequisite for reliability" - www.arcovox.com

Inderdaad een industriële omgeving.
Maar ik wil de schakeling toch eerst uitproberen op mijn breadboard.

Zou iemand mij nog op weg kunnen helpen met hoe ik mijn analoge ingangswaarde kan verwerken in mijn programma?

En het uitgangssignaal te regelen van 0-10V?

Allen Bedankt!

Lambiek

Special Member

Hier heb je een schema om van een 5VDC PWM signaal een 0 tot 10VDC analoog signaal te maken.

https://www.uploadarchief.net:443/files/download/resized/pwm%20naar%20analoog%2010vdc.jpg

Van 0 tot 10VDC analoog naar 0 tot 5VDC doe ik zelf ook altijd via een opamp, daar heb ik alleen zo snel geen schema van.

Als je haar maar goed zit, GROETEN LAMBIEK.

Waarom zou je die deling met een opamp doen? Een spanningsdeler met een klein condensatortje lijkt me toch genoeg, eventueel nog met een zenerdiode of een paar clamping diodes erbij.

Een manager is iemand die denkt dat negen vrouwen in één maand een kind kunnen maken
Lambiek

Special Member

Als je het via een opamp doet heb je gelijk een buffer, sommige apparaten die 0 tot 10V nodig hebben vragen wat meer stroom. En met alleen een spanningsdeler kan je spanning wat inzakken als de stroom iets hoger is. Dus vandaar dat ik liever een opamp gebruik.

Of doel je op het ingangs gedeelte?

Als je haar maar goed zit, GROETEN LAMBIEK.

Het programma in je PIC is een verhaal apart. Gebruikelijk wordt er voor dat soort regelingen een zogenaamde PID controller gebruikt.
P, I en D staan voor resp Proportioneel, Integraal en Differentiaal.
Zo'n regelaar is heel goed in de sogftware te realiseren.
Verder heb je nog op een ingang een potmeter nodig om de gewenste waarde in te stellen.
De software vergelijkt de spanning van de potmeter (0-5 volt) met de actuele gemeten waarde (ook een 0-5 volt signaal).
Het verschil daartussen wordt dan na enige verwerking gebruikt om het ventiel aan te sturen via een analoge uitgang.
Die verwerking gebuert met dat PID algoritme waarbij de D waarde vaak 0 is zodat we het alleen over een PI regelaar hebben.
Zoek met google maar eens op 'pid regelaar werking'. Dan krijg je een idee wat er ongeveer bij komt kijken.

Ik denk dat het ingewikkelder is dan de TS voorstelt.

Er moet een instelpotmeter komen om de druk in te stellen.
Er is een analoge feedback.
Dan moet je ook rekening houden met de inregelsnelheid zodat er volgens mij een PI regeling moet gemaakt worden, dus nog een potmeter.

Een µcontrollerwerkje, denk ik.

Leo was mij voor....

LDmicro user.

Bedankt!

Kan ik de PIC niet met de 2 analoge waarde's laten rekenen?
En dan bijvoorbeeld het rekenverschil optellen bij de PWM waarde?

Ik zie in uw ander topic dat je een 16F877a hebt.

5 jaar geleden heb ik mij daar eens in verdiept en een programma geschreven in LDmicro, maar nooit in de praktijk getoetst.
Aan het programma zelf zul je op zich niks hebben, wegens de programmeertaal, maar ik wil het wel eens voor u compileren, dan kun je eens experimenteren wat het zou moeten worden.

Alles wordt berekend in %, zowel pwm als instel- feedback potmeter.
De reactietijd is 10mS/percent, kan hoger/lager als je wilt experimenteren.

10mS/% wil zeggen dat het 1sec duurt van 0-100%, dat is snel en "gevaarlijk" voor overshoot, perslucht is veel trager, je zegt het maar.

Dan wil ik van u de kristalfrequentie weten van de controller.
Misschien ook de reactietijd meedelen als die 10mS te snel of te traag is.

Als dit is, wat je echt wilt, ben ik bereid van een extra potmeter in te programmeren zodat je zelf de ramp steilheid kunt instellen, maar daarvoor heb ik dan meer info van u nodig.

Ik zal u ook een eenvoudig schema teken en ik hoop maar dat je weet hoe je een pic moet aansluiten, ik ga enkel de ingangen/pwm uitgang tekenen.
Het is hier feest vanavond en hoop het nog vandaag te kunnen posten.

LDmicro user.

Bedankt voor alle moeite MGP!

Even voor de duidelijkheid, ergens heb ik gelezen dat je de analoge waarde's middels een ADC kunt converteren naar digitale waarde's.

Is het echt zo ingewikkeld om de waarde's van beide ventielen met elkaar te laten rekenen?

Ik snap ook nog niet zo goed waar de potmeter precies voor nodig is.

Een ADC is een functie die van een analoge waarde een digitale waarde maakt, zoek eens op het woord ADC ;)

Ik zeg potmeters, de ene is de instelling van de druk en met de andere kun je die analoge spanning van de drukopnemer simuleren op je breadboard.
In realiteit leg je daar de 0-10 aan van de drukopnemer.

LDmicro user.

Oke,

Maar de instelling van de druk zal uiteindelijk moeten gebeuren door middel van drukknoppen. Dus niet via een potmeter.

Het systeem zal moeten beginnen op 6,6 bar en bij iedere puls op de drukknop zal de druk af moeten nemen met 0,4 Bar.

Maar als ik mijn analoge waarde's d.m.v. een ADC zou converteren naar een digitale waarde, dan kan ik deze waarde's toch gebruiken in mijn programma? Waarna ik de uitgang weer aanstuur met de PWM?

Of zie ik dit nu helemaal verkeerd?

Neem mij niet kwalijk maar het is volgens mij veel te vroeg voor u om zo'n programma te maken.
Je stelt nog teveel vragen over hoe een µC en zijn IO functies werken, zeg maar... de basiskennis ontbreekt, laat staan van zo'n programma in elkaar te steken.

Het is geen verwijt maar ik zou nog wat oefenen met picbasic.nl, wij zijn allemaal aan dat niveau begonnen.

LDmicro user.

Een potmeter of twee drukknoppen (+ en -) maakt verder niets uit.
Je maakt daarmee de gewenste waarde van de druk die het programma gaat vergelijken (aftrekken) met de echte gemeten druk die je via een ADC in je programma inleest. Dat verschil wordt vermenigvuldigd met een constante (de P-waarde) en het verschil wordt met een tijdconstante geintegreerd (de I-waarde). Die twee resultaten worden bij elkaar opgeteld en die waarde wordt gebruikt om het ventiel mee aan te sturen. Dat is je regeling.
Om die soepel te laten lopen moet je zeker in het begin die P- en de I-constante in het programma kunnen veranderen. Dat kan bijv. met nog 2 potmeters. Lees vooral eerst een paar artikelen die over pI / pID regelaars gaan. Dan zal het allemaal wel wat duidelijker worden.

Bedankt LEO!

Het klopt dat ik nog nieuw ben met het verwerken van analoge signalen.
Vandaar dat ik misschien soms onnodige vragen stel.

Al doende leert men zullen we maar zeggen.

Is het mogelijk om een PI regeling te programmeren in PICBASIC?
zoja, heeft iemand hier misschien een voorbeeldje van om mij op weg te helpen.