Analoge aansturing fan.

Software die niet past in bovenstaande onderwerpen
Berichten: 247
Geregistreerd: 03 Okt 2015, 13:39

Analoge aansturing fan.

Berichtdoor DeDraak » 11 Mei 2019, 10:09

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..

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

Berichten: 4064
Geregistreerd: 16 Okt 2013, 14:31
Woonplaats: s hertogenbosch

Re: Analoge aansturing fan.

Berichtdoor shooter » 11 Mei 2019, 11:27

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.
paul deelen
shooter@home.nl

Berichten: 247
Geregistreerd: 03 Okt 2015, 13:39

Re: Analoge aansturing fan.

Berichtdoor DeDraak » 11 Mei 2019, 14:09

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

Berichten: 4064
Geregistreerd: 16 Okt 2013, 14:31
Woonplaats: s hertogenbosch

Re: Analoge aansturing fan.

Berichtdoor shooter » 11 Mei 2019, 20:46

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

Berichten: 247
Geregistreerd: 03 Okt 2015, 13:39

Re: Analoge aansturing fan.

Berichtdoor DeDraak » 11 Mei 2019, 20:59

Ok, zou je me een eind op weg willen helpen hoe ik dit vertaal in de code?

Berichten: 4064
Geregistreerd: 16 Okt 2013, 14:31
Woonplaats: s hertogenbosch

Re: Analoge aansturing fan.

Berichtdoor shooter » 13 Mei 2019, 13:15

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

Berichten: 247
Geregistreerd: 03 Okt 2015, 13:39

Re: Analoge aansturing fan.

Berichtdoor DeDraak » 13 Mei 2019, 14:36

Ok, ik probeer hem even te volgen.

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}

Berichten: 4064
Geregistreerd: 16 Okt 2013, 14:31
Woonplaats: s hertogenbosch

Re: Analoge aansturing fan.

Berichtdoor shooter » 13 Mei 2019, 19:33

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.
paul deelen
shooter@home.nl

Gebruikers-avatar
Berichten: 118
Geregistreerd: 01 Okt 2015, 11:54
Woonplaats: Castricum

Re: Analoge aansturing fan.

Berichtdoor FonzieBonzo » 14 Mei 2019, 12:36

Ik zou met een global VorigeOutput werken :


cpp code
if (Output>20 & Output<51 & VorigeOutput<20)
{
// gas geven
analogWrite(bloweroutput, 100);
delay(100);
analogWrite(bloweroutput, Output);
}
VorigeOutput=Output;


Gr,
Fonzie

Berichten: 4064
Geregistreerd: 16 Okt 2013, 14:31
Woonplaats: s hertogenbosch

Re: Analoge aansturing fan.

Berichtdoor shooter » 14 Mei 2019, 21:20

ja dat gaat wel maar daar gaat je PID rare dingen doen, theorie is toch echt nodig.
paul deelen
shooter@home.nl

Volgende

Terug naar Overige Software

Wie is er online?

Gebruikers in dit forum: Geen geregistreerde gebruikers en 8 gasten