Temperatuur controle voor keukenapparatuur (4 / 5 stap)

Stap 4: De magie van Feedback


Met een SSR beheersing van de kachel van uw toestel, één besturingselement draad gaat naar de grond, en de andere met een digitale uitgang op de Arduino. Nu kunt de Arduino schakelen de kracht van de kachel. U aanroepen door over te schakelen van de kracht van de kachel volgens de input van de thermokoppel, de magie van feedback! Feedback is krachtig en kan mysterieuze, soms schijnbaar met een geest van haar eigen.

De bijgevoegde film leert u de feedback in actie. Kijk als het LED-lampje op de SSR knippert in- en uitschakelen. U kunt ook de snelheid van de ventilator reageren op de elektrische belasting volgens de kachel draait op verwarmen.

Met de AD-595, dit proces is gewoon een kwestie van doen wat wiskunde op een
analoge ingang
//
Met dank aan Karl Gruenewald voor de conversieformule
Alle code vrijgegeven onder
Creative Commons Attribution-Noncommercial-Share Alike 3.0

Deze huidige versie is gebaseerd op temperatuur met sensing
een AD595 en thermokoppel via een A/D-pin. Alle andere
sensor kan worden gebruikt door het vervangen van deze één functie.
voel je vrij om het gebruik van graden C ook, zal het Geef een ander
PID tuning dan die van F.
//

#define TEMP_SENSOR_PIN 0
#define SSD_PIN 2

Als je van de Arduino vRef voor de levering van 3.3 volt binden, wijzigt u dit aan 3.3
#define ANALOG_VOTLAGE_REFERENCE 5

float currentTemperature;
zweven highTargetTemperature = 100;
zweven lowTargetTemperature = 95;

VOID Setup {}
Serial.begin(115200);
pinMode (SSD_PIN, uitvoer);
}

void loop {}
afdrukken van de lopende temperatuur met 1 plaats achter de komma
currentTemperature = getTemperature();
printFloat (currentTemperature, 1);
afdrukken van een regelterugloop
Serial.println();

Als (currentTemperature < lowTargetTemperature) {}
digitalWrite (SSD_PIN, hoge);
}

Als (currentTemperature > highTargetTemperature) {}
digitalWrite (SSD_PIN, laag);
}

rest 100 milliseconden
delay(100);

}

float CtoF(float c) {}
optioneel converteren van Celsius naar Fahrenheit, bent u in dat sorta ding
c terugkeer * 9.0 / 5.0 + 32,0;
}

zweven analogInToDegreesC(int inputValue) {}
deling door 1023, de grootst mogelijke input waarde, die weegschaal van de input van 0 - 1
vervolgens vermenigvuldigen door de referentie spanning, schalen die 0-1 naar 0 - vREF (standaard is 5V)
tot slot, vermenigvuldigt met 100 aan schaal het aan 10s millivolts of graden
terug van inputValue / 1023.0 * ANALOG_VOTLAGE_REFERENCE * 100.0;
}
float getTemperature() {}
Lees de analoge ingang, converteren naar graden C en converteren naar F
Return CtoF(analogInToDegreesC(analogRead(TEMP_SENSOR_PIN)));
}

EINDE temperatuursensor

printFloat print de vlotter 'waarde' afgerond op 'plaatsen' plaatsen achter de komma
VOID printFloat (drijvende-kommawaarde, int plaatsen) {}
Dit wordt gebruikt om de stemmen van de cijfers
int cijfers;
zweven tientallen = 0,1;
int tenscount = 0;
int i;
zweven tempfloat = waarde;

Zorg ervoor dat ronden we goed. Dit pow van < math.h > konden gebruiken, maar lijkt niet waard de invoer
Als deze afronding stap niet hier, de waarde 54.321 wordt afgedrukt als 54.3209

afronding term d: 0.5/pow(10,places) berekenen
zweven d = 0,5;
Als (waarde < 0)
d * = -1,0;
verdelen door tien voor elke decimaal
voor (ik = 0; ik < plaatsen; i ++)
d / = 10,0;
deze kleine toevoeging, in combinatie met de PST-bestanden zullen correct onze waarden afrondt
tempfloat += d;

eerst krijgen waarde tientallen te zijn van de grote macht van tien min waarde
tenscount is niet nodig, maar het zou nuttig zijn als je wilde weten na dit hoe veel tekens het nummer vindt

Als (waarde < 0)
tempfloat * = -1,0;
terwijl ((tens * 10.0) < = tempfloat) {}
tientallen * = 10,0;
tenscount += 1;
}

de negatieve uitschrijven indien nodig
Als (waarde < 0)
Serial.Print('-');

Als (tenscount == 0)
Serial.Print (0, DEC);

voor (ik = 0; ik < tenscount; i ++) {}
cijfer = (int) (tempfloat / trans-Europese netwerken);
Serial.Print (cijfers, DEC);
tempfloat = tempfloat - ((float) cijfer * trans-Europese netwerken);
tientallen / = 10,0;
}

Als geen plaatsen achter komma, nu stoppen en terug te keren
Als (plaatsen < = 0)
terugkeer;

schrijven van het punt en voort
Serial.Print('.');

nu elke decimaal uitschrijven door een verschuiving van cijfers een voor een in de plaats en de afgekapte waarde schrijven
voor (ik = 0; ik < plaatsen; i ++) {}
tempfloat * = 10,0;
cijfer = tempfloat (int);
Serial.Print(Digit,DEC);
Zodra geschreven, uit dat cijfer aftrekken
tempfloat = tempfloat - (float) cijfers;
}
}

Gerelateerde Artikelen

Temperatuur controle voor vriezer of koelkast

Temperatuur controle voor vriezer of koelkast

dit instructable omvat de integratie van een temperatuurregeling van Johnson Controls in een verlengsnoer met schakelaar en stopcontact voor het beheersen van een vriezer. Voor het fermenteren van bier, een borstdiepvriezer is een fantastisch platfor
Temperatuur Indicator voor de kraan

Temperatuur Indicator voor de kraan

In sommige huizen misschien vindt u dat het neemt ages voor het warme water te bereiken van de kraan.Van mijn badkamer kraan is het ergste.Ik moet openen van de kraan bijna maximaal te schakelen het gas-boiler en vervolgens wachten voor te wijl voor
Arduino en LM35 Based temperatuur Monitor voor Beginners

Arduino en LM35 Based temperatuur Monitor voor Beginners

IntroductieMaak uw eigen temperatuur controle systeem met behulp van de Arduino en LM35 analoge temperatuursensor. Dit is een zeer eenvoudige DIY-project voor de Arduino beginners. Alle stappen en vereisten worden in detail hieronder genoemd.Opmerkin
Heatbed temperatuur controller voor RepRap met behulp van Gen6

Heatbed temperatuur controller voor RepRap met behulp van Gen6

Bedankt voor het controleren van deze kleine how-to van soorten uit! Ik wil gewoon om deze een paar dingen uit de weg te krijgen:-Eerst, dit is door geen manieren stopzetting van alle, worden alle! Ik heb niet alle foto's te nemen tijdens het maken v
Bedrading van een RANCO ETC-111000-000 temperatuur Controller voor uw Kegerator

Bedrading van een RANCO ETC-111000-000 temperatuur Controller voor uw Kegerator

een heleboel thuisbrouwers zet een borstdiepvriezer of koelkast in een kegerator en ze sluit aan de koelkast of diepvriezer op een externe controller voor het beheer van de temperatuur. En als u wilt gaan digitale er is niet een controller die beter
World Wide Web-Control voor onder $30.00

World Wide Web-Control voor onder $30.00

Toepassingen voor dit project zijn:Beheersing van items en het krijgen van informatie met behulp van elke browser op elk apparaat (tablet/PC/telefoon) en ook met behulp van energiebesparende stand terug om informatie te verzenden vanaf een externe lo
Instelbare temperatuur Controller voor verwarmingselementen

Instelbare temperatuur Controller voor verwarmingselementen

Er zijn een heleboel verschillende producten die gebruikmaken van de verwarmingselementen. Helaas, veel van hen zijn niet verstelbaar. Bijvoorbeeld, zijn de meeste soldering strijkijzers ofwel in- of uitschakelen. Het zou veel nuttiger zijn als u zou
IR-temperatuur Controller voor SMD koekepan Reflow

IR-temperatuur Controller voor SMD koekepan Reflow

dit instructable zal helpen als je probeert te krijgen in het maken van je eigen circuit boards met SMD (surface mount apparaat) flow opnieuw. Na hand solderen een stelletje planken werd ik echt geïnteresseerd mij.In dit instructable I 'm gonna prate
Aquarium digitale temperatuur controle

Aquarium digitale temperatuur controle

een meer nauwkeurige en veiliger manier om te controleren uw aquaria temperatuur. De meeste controllers op de markt zijn dure, onbetrouwbare, en kunnen alleen met het besturingselement of de kachel een koeler niet beide. Kun je dit voor zo weinig zoa
Gemakkelijk, omkeerbare Motor controle voor Arduino (of een Microcontroller)

Gemakkelijk, omkeerbare Motor controle voor Arduino (of een Microcontroller)

dit project maakt gebruik van slechts drie hoofdcomponenten voor voorwaartse en omgekeerde bepalen voor een interne motor.  U kunt het gemakkelijk interface naar een Arduino of elke andere microcontroller.Het is zo eenvoudig - u kunt het draad van "f
Hoe te snelle brand mod 360 controler voor 3 dollar

Hoe te snelle brand mod 360 controler voor 3 dollar

Oke, ik weet het is een grote pijn in de kont te moeten naar buiten en kopen sommige domme chip om snelle brand mod uw controler. het kost tijd om het schip en is duur en ingewikkeld, maar ik zal u tonen hoe te doen zonder de chip. Disclamer: Ik ben
Statistical Process Control voor weerstanden, deel 2

Statistical Process Control voor weerstanden, deel 2

Een tijdje terug schreef ik een instructable waar ik deed een onderzoek van de mogelijkheid om uit te vinden als mijn gouden band weerstanden echt hield +/-tolerantie van 5%.Hier gevestigd:In die studie was ik kijken naar 560 Ohm +/-5% weerstanden.De
Eenvoudige externe tempo controle voor Korg nano series - tap tempo, de maatsoort, enz

Eenvoudige externe tempo controle voor Korg nano series - tap tempo, de maatsoort, enz

In deze tutorial zal tonen ik u hoe u een tap tempo-besturingselement toevoegt aan uw Korg Volca-serie of Montribe analoge synth, met behulp van uw Android (of waarschijnlijk ook andere) smart phone (of computer). Het geheim ligt in Korg's "sync"
Eenvoudige 2-weg motorische controle voor de arduino

Eenvoudige 2-weg motorische controle voor de arduino

Waarschuwing: Dit is niet een veilige manier om het besturen van een motor. Elke I/O pin kan slechts behandelen 40 mA van stroom. Ik zou adviseren gebruikend een H-brug of iets over zulks strafregels.Als ik zeg eenvoudige, bedoel ik niet gebruik van