Analoge aansturing fan.
11 berichten
• Pagina 1 van 2 • 1, 2
Analoge aansturing fan.
Hallo,
Ik zit even vast met het volgende:
Met een thermometer stuur ik een Fan aan. als de temperatuur lager is als mijn Setpoint dan gaat de Fan zorgen dat ik mijn temperatuur haal. Ik gebruik een pid Library hiervoor en dit gaat goed.
De fan is 12Voltdc en via een analoge uitgang en een Buzz11 regel ik de spanning naar mijn fan. De fan heeft een minimale spanning nodig om te starten en daar zit even mijn uitdaging.
Als de offset erg groot is dan gaat de fan naar 100% en draait goed, komt hij dichterbij het setpoint dan toert hij af tot 20% en gaat daarna uit. omdat hij dan dusdanig lage voeding heeft dat hij nauwelijks draait.
Van 100% naar 20% gaat erg goed maar zodra hij weer opstart vanaf 20% dan gaat hij niet gelijk draaien, dit kan wel duren tot de offset zo groot is dat hij 60% vraagt en dan gaat hij pas aan.
Nu wil ik dus gaan maken dat hij eventjes een schop onder zijn kont krijgt, bv 1 seconden 100% en dan terug naar de wens waarde (20%) maar hoe krijg ik dit voor elkaar?
Dit is een gedeelte van mijn code..
Ik zit even vast met het volgende:
Met een thermometer stuur ik een Fan aan. als de temperatuur lager is als mijn Setpoint dan gaat de Fan zorgen dat ik mijn temperatuur haal. Ik gebruik een pid Library hiervoor en dit gaat goed.
De fan is 12Voltdc en via een analoge uitgang en een Buzz11 regel ik de spanning naar mijn fan. De fan heeft een minimale spanning nodig om te starten en daar zit even mijn uitdaging.
Als de offset erg groot is dan gaat de fan naar 100% en draait goed, komt hij dichterbij het setpoint dan toert hij af tot 20% en gaat daarna uit. omdat hij dan dusdanig lage voeding heeft dat hij nauwelijks draait.
Van 100% naar 20% gaat erg goed maar zodra hij weer opstart vanaf 20% dan gaat hij niet gelijk draaien, dit kan wel duren tot de offset zo groot is dat hij 60% vraagt en dan gaat hij pas aan.
Nu wil ik dus gaan maken dat hij eventjes een schop onder zijn kont krijgt, bv 1 seconden 100% en dan terug naar de wens waarde (20%) maar hoe krijg ik dit voor elkaar?
Dit is een gedeelte van mijn code..
- Code: Alles selecteren
int val = Output; //fan
val = map (val, 0, 255, 0, 100);
float adcDome = getADC( probeDomePin); //thermometer
Input = SteinhartHart( rDome);
myPID.Compute();
if ( Output < 51)//Start at min. 25% Fan
Output = 0;
if ( adcDome < 2.0 || adcDome > 1021.0)
Output = 0;
analogWrite(bloweroutput, Output);
Advertisement
Re: Analoge aansturing fan.
Dan zul je eigenlijk twee dingen moeten leren:
1. Wat is de D in een PID. en ja dat zit in de library.
2. Je kunt ervoor zorgen dat als de fan onder de 20% komt dat dan de fan gewoon geen spanning meer krijgt.
en als het er weer boven komt dan gelijk op 20% beginnen.
Kijk maar eens hoe een toerenregling bijv voor de modelspoor kan werken.
De instellingen zijn voor elke fan anders , en zelfs de stand van de fan kan verschil maken.
Je kunt dat ondervangen door een toerenregeling op de fan te zetten met een terugkoppeling met een ldr bijv.
1. Wat is de D in een PID. en ja dat zit in de library.
2. Je kunt ervoor zorgen dat als de fan onder de 20% komt dat dan de fan gewoon geen spanning meer krijgt.
en als het er weer boven komt dan gelijk op 20% beginnen.
Kijk maar eens hoe een toerenregling bijv voor de modelspoor kan werken.
De instellingen zijn voor elke fan anders , en zelfs de stand van de fan kan verschil maken.
Je kunt dat ondervangen door een toerenregeling op de fan te zetten met een terugkoppeling met een ldr bijv.
paul deelen
shooter@home.nl
shooter@home.nl
Re: Analoge aansturing fan.
Wat een PID regeling doet is me duidelijk, daar heb ik ook genoeg ervaring mee alleen ik heb een probleem met de fan bij 20% aansturing, die moet echt even geholpen worden om te gaan draaien vandaar dat ik even 12Volt wil hebben busvoorbeeld alvorens hij gaat regelen volgens de PID regeling. Als hij van 100% terug geregeld wordt naar 20% dan draait hij mooi op 20% maar van 0 naar 20% moet hij even geholpen worden.
Onder de 20% krijgt de Fan geen spanning want de output is dan 0
Onder de 20% krijgt de Fan geen spanning want de output is dan 0
Re: Analoge aansturing fan.
als startfanvlag false EN de output weer boven 51 komt {zet je een vlaggetje aan ofwel startfanvlag=true , en je gooit de output even vol open voor 1 seconde). ( dan draait de fan) je moet dan wel opletten dat je PID niet te snel reageert want dan wordt het dus een aan/uit verhaal.
paul deelen
shooter@home.nl
shooter@home.nl
Re: Analoge aansturing fan.
Ok, zou je me een eind op weg willen helpen hoe ik dit vertaal in de code?
Re: Analoge aansturing fan.
- Code: Alles selecteren
if (!fandraait && (output>51 ))
{
fanstart=true;
uitgang =true;
delay (1000);
fanstart =false;
fandraait=true;
}
if (fanstart= true) {output =255}
paul deelen
shooter@home.nl
shooter@home.nl
Re: Analoge aansturing fan.
Ok, ik probeer hem even te volgen.
Nu maak ik gebruik van 2 const int's:
Maar ik zie dat jij er nu een aantal bij hebt gemaakt ( !fandraait, fanstart, uitgang), waar moet ik die gaan verklaren?
Nu maak ik gebruik van 2 const int's:
- Code: Alles selecteren
const int bloweroutput = 3;
const int probeDomePin = A1;
Maar ik zie dat jij er nu een aantal bij hebt gemaakt ( !fandraait, fanstart, uitgang), waar moet ik die gaan verklaren?
- Code: Alles selecteren
if (!fandraait && (output>51 ))
{
fanstart=true;
uitgang =true;
delay (1000);
fanstart =false;
fandraait=true;
}
if (fanstart= true) {output =255}
Re: Analoge aansturing fan.
ik geef voorzetjes, maar geen hele programmas eigenlijk.
die variabelen kun je voor de setup zetten dan gelden ze in je hele programma (ik weet dat het ook lokaal kan.
A1 is overigens geen integer maar je mag ook 15 gebruiken.
Geef maar eens je hele programma dan krijg je vanzelf commentaar.
die variabelen kun je voor de setup zetten dan gelden ze in je hele programma (ik weet dat het ook lokaal kan.
A1 is overigens geen integer maar je mag ook 15 gebruiken.
Geef maar eens je hele programma dan krijg je vanzelf commentaar.
paul deelen
shooter@home.nl
shooter@home.nl
- FonzieBonzo
- Berichten: 118
- Geregistreerd: 01 Okt 2015, 11:54
- Woonplaats: Castricum
Re: Analoge aansturing fan.
Ik zou met een global VorigeOutput werken :
cpp code
Gr,
Fonzie
cpp code
if (Output>20 & Output<51 & VorigeOutput<20)
{
// gas geven
analogWrite(bloweroutput, 100);
delay(100);
analogWrite(bloweroutput, Output);
}
VorigeOutput=Output;
Gr,
Fonzie
Re: Analoge aansturing fan.
ja dat gaat wel maar daar gaat je PID rare dingen doen, theorie is toch echt nodig.
paul deelen
shooter@home.nl
shooter@home.nl
11 berichten
• Pagina 1 van 2 • 1, 2
Wie is er online?
Gebruikers in dit forum: Geen geregistreerde gebruikers en 0 gasten