<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://www.mikrocontroller.net/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Frankman</id>
	<title>Mikrocontroller.net - Benutzerbeiträge [de]</title>
	<link rel="self" type="application/atom+xml" href="https://www.mikrocontroller.net/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Frankman"/>
	<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/articles/Spezial:Beitr%C3%A4ge/Frankman"/>
	<updated>2026-04-08T03:36:36Z</updated>
	<subtitle>Benutzerbeiträge</subtitle>
	<generator>MediaWiki 1.39.7</generator>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=Platinenhersteller&amp;diff=97711</id>
		<title>Platinenhersteller</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=Platinenhersteller&amp;diff=97711"/>
		<updated>2017-11-14T15:00:37Z</updated>

		<summary type="html">&lt;p&gt;Frankman: /* LEITON */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Einleitung ==&lt;br /&gt;
Die Vor- und Nachteile von Platinenherstellern/-lieferanten werden relativ häufig im [http://www.mikrocontroller.net/forum/platinen Forum] diskutiert (und führen ab und zu zu Flamewars ☺). Damit man schnell einen Überblick über die verschiedenen Möglichkeiten erhält, soll hier eine Liste zusammengetragen werden.&lt;br /&gt;
&lt;br /&gt;
Jeder kann/soll seinen Beitrag leisten, d.h. wenn man einen Platinenlieferanten kennt, der noch nicht erwähnt ist, einfach hinzufügen. Falls man den Hersteller nicht so gut kennt, einfach mal den Namen und die URL hinzufügen, es gibt sicherlich andere, die den Hersteller so gut kennen, dass sie sich zutrauen, ein Urteil über die Leistung zu fällen.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Eigentümer oder Mitarbeiter von Firmen dürfen diese gerne eintragen, falls sie in der Liste noch nicht vorhanden sind. Beim Eintrag oder Änderungen bitte in der Zusammenfassung unbedingt darauf hinweisen, dass Sie über Ihre eigene Firma schreiben.&#039;&#039;&#039; Und bitte der Versuchung widerstehen, die Einträge mit werbeähnlichen Texten oder Werbung zu ergänzen. Zufriedene Kunden mögen bitte darauf achten, ihre Zufriedenheit so zu formulieren, dass nicht der Eindruck entsteht, der Eintrag sei von einem Hersteller zur &amp;quot;Verschönerung&amp;quot; gemacht worden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Diese Seite kann nur von angemeldeten Benutzern bearbeitet werden!&#039;&#039;&#039; Bei neuen Einträgen bitte die Sortierung beachten.&lt;br /&gt;
&lt;br /&gt;
Einige Hinweise, Hilfestellungen zur Platinenfertigung und Auftragsvergabe gibt es auch in der [http://www.dse-faq.elektronik-kompendium.de/dse-faq.htm#F.6 de.sci.electronics-FAQ].&lt;br /&gt;
&lt;br /&gt;
Verschiedene Threads deuten an, dass &amp;quot;normaler&amp;quot; grüner Stopplack meistens die besseren Ergebnisse erzielt (http://www.mikrocontroller.net/topic/329356, http://www.mikrocontroller.net/topic/321295). Das kann je nach Hersteller schwanken. &lt;br /&gt;
&lt;br /&gt;
=== Preise ===&lt;br /&gt;
Zur besseren Vergleichbarkeit bei jedem Hersteller dazu schreiben, was &#039;&#039;&#039;eine doppelseitige durchkontaktierte Eurokarte (160mm x 100mm) mit deutscher MwSt.&#039;&#039;&#039; ohne Versand kostet.&lt;br /&gt;
Dazu noch die Lieferzeit und ob Lötstopplack und Bestückungsdruck dabei ist.&lt;br /&gt;
&#039;&#039;Zusätzlich&#039;&#039; kann man noch die Preise für andere Formate, Stückzahlen etc. dazu schreiben.&lt;br /&gt;
&lt;br /&gt;
Wichtiger Hinweis: Nicht überall ist der letzte Arbeitstag auch der Versandtag.&lt;br /&gt;
&lt;br /&gt;
Tip: Wer eine kleinere Platine fertigen lassen möchte und nur 3 Exemplare braucht sollte sich Aisler, Oshpark oder Ragworm anschauen.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;text-align:center&amp;quot;&lt;br /&gt;
|+ Schnellübersicht von Anbietern mit Online-Calculator (Lötstopplack, kein Bestückungsdruck, inkl. MwSt &amp;amp; Porto)&lt;br /&gt;
|-&lt;br /&gt;
! Anbieter !! Lagenanzahl !! Breite / mm !! Höhe / mm !! Dicke / mm !! Arbeitstage !! Preis / Euro !! ermittelt am&lt;br /&gt;
|-&lt;br /&gt;
| [[#AISLER|AISLER]]¹) || 1 || 160 || 100 || 1.6 || 7 || 25.60 || 2017-10-23&lt;br /&gt;
|- style=&amp;quot;background:#FFEBAD&amp;quot;&lt;br /&gt;
| [[#AISLER|AISLER]]¹) || 2 || 160 || 100 || 1.6 || 7 || 25.60 || 2017-10-23&lt;br /&gt;
|-&lt;br /&gt;
| [[#Ätzwerk_GmbH|Ätzwerk]] || 1 || 160 || 100 || 1.6 || 7 || 59.50 || 2016-07-05&lt;br /&gt;
|- style=&amp;quot;background:#FFEBAD&amp;quot;&lt;br /&gt;
| [[#Ätzwerk_GmbH|Ätzwerk]] || 2 || 160 || 100 || 1.6 || 7 || 59.50 || 2016-07-05&lt;br /&gt;
|-&lt;br /&gt;
| [[#Ätzwerk_GmbH|Ätzwerk]] || 2 || 160 || 100 || 1.6 || 6 || 84.49 || 2016-07-05&lt;br /&gt;
|-&lt;br /&gt;
| [[#Ätzwerk_GmbH|Ätzwerk]] || 2 || 160 || 100 || 1.6 || 5 || 95.20 || 2016-07-05&lt;br /&gt;
|-&lt;br /&gt;
| [[#Ätzwerk_GmbH|Ätzwerk]] || 2 || 160 || 100 || 1.6 || 4 || 113.05 || 2016-07-05&lt;br /&gt;
|-&lt;br /&gt;
| [[#Ätzwerk_GmbH|Ätzwerk]] || 2 || 160 || 100 || 1.6 || 3 || 133.88 || 2016-07-05&lt;br /&gt;
|-&lt;br /&gt;
| [[#Ätzwerk_GmbH|Ätzwerk]] || 2 || 160 || 100 || 1.6 || 2 || 148.75 || 2016-07-05&lt;br /&gt;
|-&lt;br /&gt;
| [[#Ätzwerk_GmbH|Ätzwerk]] || 4 || 160 || 100 || 1.6 || 7 || 116.79 || 2016-07-05&lt;br /&gt;
|-&lt;br /&gt;
| [[#Ätzwerk_GmbH|Ätzwerk]] || 4 || 160 || 100 || 1.6 || 6 || 163.51 || 2016-07-05&lt;br /&gt;
|-&lt;br /&gt;
| [[#Ätzwerk_GmbH|Ätzwerk]] || 4 || 160 || 100 || 1.6 || 5 || 186.85 || 2016-07-05&lt;br /&gt;
|-&lt;br /&gt;
| [[#Ätzwerk_GmbH|Ätzwerk]] || 4 || 160 || 100 || 1.6 || 4 || 221.90 || 2016-07-05&lt;br /&gt;
|-&lt;br /&gt;
| [[#Ätzwerk_GmbH|Ätzwerk]] || 4 || 160 || 100 || 1.6 || 3 || 262.78 || 2016-07-05&lt;br /&gt;
|-&lt;br /&gt;
| [[#Ätzwerk_GmbH|Ätzwerk]] || 6 || 160 || 100 || 1.6 || 10 || 175.74 || 2016-07-05&lt;br /&gt;
|- style=&amp;quot;background:#FFEBAD&amp;quot;&lt;br /&gt;
| [[#Basista_Leiterplatten|Basista]] || 2 || 160 || 100 || 1.6 || 12 || 56.93 || 2016-10-06&lt;br /&gt;
|-&lt;br /&gt;
| [[#Basista_Leiterplatten|Basista]] || 2 || 160 || 100 || 1.6 || 10 || 61.30 || 2016-10-06&lt;br /&gt;
|-&lt;br /&gt;
| [[#Basista_Leiterplatten|Basista]] || 2 || 160 || 100 || 1.6 || 8 || 65.65 || 2016-10-06&lt;br /&gt;
|-&lt;br /&gt;
| [[#Basista_Leiterplatten|Basista]] || 2 || 160 || 100 || 1.6 || 7 || 78.75 || 2016-10-06&lt;br /&gt;
|-&lt;br /&gt;
| [[#Basista_Leiterplatten|Basista]] || 2 || 160 || 100 || 1.6 || 5 || 96.20 || 2016-10-06&lt;br /&gt;
|-&lt;br /&gt;
| [[#Basista_Leiterplatten|Basista]] || 2 || 160 || 100 || 1.6 || 4 || 118.02 || 2016-10-06&lt;br /&gt;
|-&lt;br /&gt;
| [[#Basista_Leiterplatten|Basista]] || 2 || 160 || 100 || 1.6 || 3 || 193.54 || 2016-10-06&lt;br /&gt;
|-&lt;br /&gt;
| [[#Basista_Leiterplatten|Basista]] || 2 || 160 || 100 || 1.6 || 2 || 237.18 || 2016-10-06&lt;br /&gt;
|-&lt;br /&gt;
| [[#Basista_Leiterplatten|Basista]] || 2 || 160 || 100 || 1.6 || 1 || 280.82 || 2016-10-06&lt;br /&gt;
|- style=&amp;quot;background:#FFEBAD&amp;quot;&lt;br /&gt;
| [[#Becker_und_Müller|Becker und Müller]] || 2 || 160 || 100 || 1.6 || 12 || 101.79 || 2015-07-06&lt;br /&gt;
|-&lt;br /&gt;
| [[#Becker_und_Müller|Becker und Müller]] || 2 || 160 || 100 || 1.6 || 10 || 108.02 || 2015-07-06&lt;br /&gt;
|-&lt;br /&gt;
| [[#Becker_und_Müller|Becker und Müller]] || 2 || 160 || 100 || 1.6 || 7 || 120.49 || 2015-07-06&lt;br /&gt;
|-&lt;br /&gt;
| [[#Becker_und_Müller|Becker und Müller]] || 2 || 160 || 100 || 1.6 || 5 || 132.95 || 2015-07-06&lt;br /&gt;
|-&lt;br /&gt;
| [[#Becker_und_Müller|Becker und Müller]] || 2 || 160 || 100 || 1.6 || 4 || 195.26 || 2015-07-06&lt;br /&gt;
|-&lt;br /&gt;
| [[#Eurocircuits_GmbH|Eurocircuits]] || 1 || 160 || 100 || 1.6 || 7 || 56.85 || 2016-10-21&lt;br /&gt;
|- style=&amp;quot;background:#FFEBAD&amp;quot;&lt;br /&gt;
| [[#Eurocircuits_GmbH|Eurocircuits]] || 2 || 160 || 100 || 1.6 || 7 || 68.91 || 2016-10-21&lt;br /&gt;
|-&lt;br /&gt;
| [[#Eurocircuits_GmbH|Eurocircuits]] || 2 || 160 || 100 || 1.6 || 5 || 96.87 || 2016-10-21&lt;br /&gt;
|-&lt;br /&gt;
| [[#Eurocircuits_GmbH|Eurocircuits]] || 2 || 160 || 100 || 1.6 || 2 || 236.64 || 2016-10-21&lt;br /&gt;
|-&lt;br /&gt;
| [[#Eurocircuits_GmbH|Eurocircuits]] || 4 || 160 || 100 || 1.6 || 7 || 149.70 || 2016-10-21&lt;br /&gt;
|- style=&amp;quot;background:#FFEBAD&amp;quot;&lt;br /&gt;
| [[#LEITON|LeitOn]] || 2 || 160 || 100 || 1.6 || 12 || 48.99 || 2014-09-16&lt;br /&gt;
|-&lt;br /&gt;
| [[#LEITON|LeitOn]] || 2 || 160 || 100 || 1.6 || 8 || 61.24 || 2014-09-16&lt;br /&gt;
|-&lt;br /&gt;
| [[#LEITON|LeitOn]] || 2 || 160 || 100 || 1.6 || 5 || 91.86 || 2014-09-16&lt;br /&gt;
|-&lt;br /&gt;
| [[#LEITON|LeitOn]] || 2 || 160 || 100 || 1.6 || 3 || 192.93 || 2014-09-16&lt;br /&gt;
|-&lt;br /&gt;
| [[#Multi_Printed_Circuit_Boards_Ltd.|Multi-CB]] ||	1	|| 100 || 100 || 1.6 ||	5	||	47.24	|| 2017-03-09&lt;br /&gt;
|- style=&amp;quot;background:#FFEBAD&amp;quot;&lt;br /&gt;
| [[#Multi_Printed_Circuit_Boards_Ltd.|Multi-CB]]¹) ||	2	|| 160 || 100 || 1.6 ||	8	||	35.25	|| 2017-03-09&lt;br /&gt;
|-&lt;br /&gt;
| [[#Multi_Printed_Circuit_Boards_Ltd.|Multi-CB]] ||	2	|| 100 || 100 || 1.6 ||	8	||	42.60	|| 2017-03-09&lt;br /&gt;
|-&lt;br /&gt;
| [[#Multi_Printed_Circuit_Boards_Ltd.|Multi-CB]] ||	2	|| 100 || 100 || 1.6 ||	5	||	47.24	|| 2017-03-09&lt;br /&gt;
|-&lt;br /&gt;
| [[#Multi_Printed_Circuit_Boards_Ltd.|Multi-CB]] ||	2	|| 100 || 100 || 1.6 ||	2	||	141.73	|| 2017-03-09&lt;br /&gt;
|-&lt;br /&gt;
| [[#Multi_Printed_Circuit_Boards_Ltd.|Multi-CB]]¹) ||	4	|| 100 || 75 || 1.6 ||	9	||	38.81	|| 2017-03-09&lt;br /&gt;
|-&lt;br /&gt;
| [[#Multi_Printed_Circuit_Boards_Ltd.|Multi-CB]] ||	4	|| 100 || 75 || 1.6 ||	5	||	70.21	|| 2017-03-09&lt;br /&gt;
|-&lt;br /&gt;
| [[#Multi_Printed_Circuit_Boards_Ltd.|Multi-CB]] ||	4	|| 100 || 75 || 1.6 ||	2	||	210.63	|| 2017-03-09&lt;br /&gt;
|-&lt;br /&gt;
| [[#Multi_Printed_Circuit_Boards_Ltd.|Multi-CB]]¹) ||	6	|| 100 || 75 || 1.6 ||	6	||	71.10	|| 2017-03-09&lt;br /&gt;
|-&lt;br /&gt;
| [[#Multi_Printed_Circuit_Boards_Ltd.|Multi-CB]] ||	6	|| 100 || 75 || 1.6 ||	6	||	116.62	|| 2017-03-09&lt;br /&gt;
|-&lt;br /&gt;
| [[#Multi_Printed_Circuit_Boards_Ltd.|Multi-CB]] ||	6	|| 100 || 75 || 1.6 ||	2	||	221.58	|| 2017-03-09&lt;br /&gt;
|-&lt;br /&gt;
| [[#Multi_Printed_Circuit_Boards_Ltd.|Multi-CB]]¹) ||	8	|| 100 || 75 || 1.6 ||	6	||	103.14	|| 2017-03-09&lt;br /&gt;
|-&lt;br /&gt;
| [[#Multi_Printed_Circuit_Boards_Ltd.|Multi-CB]] ||	8	|| 100 || 75 || 1.6 ||	6	||	186.83	|| 2017-03-09&lt;br /&gt;
|-&lt;br /&gt;
| [[#Multi_Printed_Circuit_Boards_Ltd.|Multi-CB]] ||	8	|| 100 || 75 || 1.6 ||	2	||	354.98	|| 2017-03-09&lt;br /&gt;
|-&lt;br /&gt;
| [[#Multi_Printed_Circuit_Boards_Ltd.|Multi-CB]]¹) ||	10	|| 100 || 75 || 1.6 ||	7	||	209.20	|| 2017-03-09&lt;br /&gt;
|-&lt;br /&gt;
| [[#Multi_Printed_Circuit_Boards_Ltd.|Multi-CB]] ||	10	|| 100 || 75 || 1.6 ||	7	||	617.61	|| 2017-03-09&lt;br /&gt;
|- style=&amp;quot;background:#FFEBAD&amp;quot;&lt;br /&gt;
| [[#PCB Pool|PCB Pool]] || 2 || 160 || 100 || 1.6 || 8 || 114.37 || 2014-09-21&lt;br /&gt;
|-&lt;br /&gt;
| [[#PCB Pool|PCB Pool]] || 2 || 160 || 100 || 1.6 || 7 || 145.29 || 2014-09-21&lt;br /&gt;
|-&lt;br /&gt;
| [[#PCB Pool|PCB Pool]] || 2 || 160 || 100 || 1.6 || 5 || 165.90 || 2014-09-21&lt;br /&gt;
|-&lt;br /&gt;
| [[#PCB Pool|PCB Pool]] || 2 || 160 || 100 || 1.6 || 4 || 217.43 || 2014-09-21&lt;br /&gt;
|-&lt;br /&gt;
| [[#PCB Pool|PCB Pool]] || 2 || 160 || 100 || 1.6 || 3 || 243.19 || 2014-09-21&lt;br /&gt;
|-&lt;br /&gt;
| [[#PCB Pool|PCB Pool]] || 2 || 160 || 100 || 1.6 || 2 || 268.96 || 2014-09-21&lt;br /&gt;
|-&lt;br /&gt;
| [[#PCB Pool|PCB Pool]] || 2 || 160 || 100 || 1.6 || 1 || 320.48 || 2014-09-21&lt;br /&gt;
|- style=&amp;quot;background:#FFEBAD&amp;quot;&lt;br /&gt;
| [[#Onlineshop WEdirekt|WEdirekt]] || 2 || 160 || 100 || 1.6 || 8 || 89.19 || 2014-09-21&lt;br /&gt;
|-&lt;br /&gt;
| [[#Onlineshop WEdirekt|WEdirekt]] || 2 || 160 || 100 || 1.6 || 7 || 89.19 || 2014-09-21&lt;br /&gt;
|-&lt;br /&gt;
| [[#Onlineshop WEdirekt|WEdirekt]] || 2 || 160 || 100 || 1.6 || 6 || 120.87 || 2014-09-21&lt;br /&gt;
|-&lt;br /&gt;
| [[#Onlineshop WEdirekt|WEdirekt]] || 2 || 160 || 100 || 1.6 || 5 || 131.44 || 2014-09-21&lt;br /&gt;
|-&lt;br /&gt;
| [[#Onlineshop WEdirekt|WEdirekt]] || 2 || 160 || 100 || 1.6 || 4 || 178.25 || 2014-09-21&lt;br /&gt;
|-&lt;br /&gt;
| [[#Onlineshop WEdirekt|WEdirekt]] || 2 || 160 || 100 || 1.6 || 3 || 215.21 || 2014-09-21&lt;br /&gt;
|-&lt;br /&gt;
| [[#Onlineshop WEdirekt|WEdirekt]] || 2 || 160 || 100 || 1.6 || 2 || 270.67 || 2014-09-21&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
¹) Lieferung 3stückweise, man muss also drei Platinen zu diesem Preis kaufen&lt;br /&gt;
&lt;br /&gt;
== Liste der Hersteller ==&lt;br /&gt;
&lt;br /&gt;
=== Deutschland ===&lt;br /&gt;
==== Übersicht ====&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;text-align:center&amp;quot;&lt;br /&gt;
|+ Übersicht von Anbietern aus Deutschland&lt;br /&gt;
|-&lt;br /&gt;
! Anbieter !! PLZ !! Ort !! privat !! gewerblich !! Online-Calculator !! produziert in Deutschland !! ermittelt am&lt;br /&gt;
|-&lt;br /&gt;
| [[#Accent PCB GmbH|Accent PCB GmbH]] || 40212 || Düsseldorf || ? || ja || nein || [http://www.accentpcb.com/about-us.html teilweise] || 2014-09-21&lt;br /&gt;
|-&lt;br /&gt;
| [[#Ätzwerk GmbH|Ätzwerk GmbH]] || 85622 || Feldkirchen b. München || ja || ja || ja || ? || 2016-07-05&lt;br /&gt;
|-&lt;br /&gt;
| [[#am2s|am2s]] || 88376 || Königseggwald || ja || ja || nein || [http://www.am2s.de/pcb.html teilweise] || 2014-09-21&lt;br /&gt;
|-&lt;br /&gt;
| [[#andus electronic|Andus Electronic]] || 10997 || Berlin || ? || ja || nein || ja? || 2014-09-21&lt;br /&gt;
|-&lt;br /&gt;
| [[#ANTtronic|ANTtronic]] || 53844 || Troisdorf || ? || ja || nein || ? || 2014-09-21&lt;br /&gt;
|-&lt;br /&gt;
| [[#Basista Leiterplatten|Basista Leiterplatten]] || 46236 || Bottrop || ja || ja || ja || ja || 2016-10-06&lt;br /&gt;
|-&lt;br /&gt;
| [[#Bauer-Elektronik|Bauer-Elektronik]] || 66557 || Illingen || ja? || ja || nein || ja? || 2014-09-21&lt;br /&gt;
|-&lt;br /&gt;
| [[#Britze|Britze]] || 12099? || Berlin || ? || ja || ja || [http://www.britze.de/unternehmen-produktion.html ja] || 2014-09-21&lt;br /&gt;
|-&lt;br /&gt;
| [[#B&amp;amp;B Gruppe|B&amp;amp;B Gruppe]] || 09648 || Mittweida || ? || ja || nein || [http://www.bb-gruppe.de/handel/ teilweise] || 2014-09-21&lt;br /&gt;
|-&lt;br /&gt;
| [[#Becker und Müller|Becker und Müller]] || 77790 || Steinach i.K. || ja || ja || ja || ja || 2014-09-21&lt;br /&gt;
|-&lt;br /&gt;
| [[#Contag|Contag]] || 13581 || Berlin || ? || ja || nein || ja? || 2014-09-21&lt;br /&gt;
|-&lt;br /&gt;
| [[#Christian Enzmann Gmbh|Christian Enzmann Gmbh]] || 82538 || Geretsried || ? || ja || nein || teilweise || 2014-09-21&lt;br /&gt;
|-&lt;br /&gt;
| [[#Deutschlaender Electronic GmbH|Deutschlaender Electronic GmbH]] || 74924 || Neckarbischofsheim || ? || ja || ja || ja? || 2014-09-21&lt;br /&gt;
|-&lt;br /&gt;
| [[#Elischer Leiterplatten|Elischer Leiterplatten]] ||  72574 || Bad Urach || ? || ? || nein || ? || 2014-09-21&lt;br /&gt;
|-&lt;br /&gt;
| [[#Entwicklung &amp;amp; CNC|Entwicklung &amp;amp; CNC]] || 72805 || Lichtenstein || ? || ja || nein || ja || 2014-09-21&lt;br /&gt;
|-&lt;br /&gt;
| [[#EPN Electroprint GmbH|EPN Electroprint GmbH]] ||  07806 ||  Neustadt an der Orla || ja? || ja || ja || [http://www.epn.de/de/home/geschichte.html ja] || 2014-09-21&lt;br /&gt;
|-&lt;br /&gt;
| [[#Eurocircuits GmbH|Eurocircuits GmbH]] || 57612 || Kettenhausen || ? || ja || ja || teilweise || 2014-09-21&lt;br /&gt;
|-&lt;br /&gt;
| [[#Fischer Leiterplatten GmbH|Fischer Leiterplatten GmbH]] || 58454 || Witten || nein || ja || ja || [http://www.fischer-leiterplatten.de/ueber-uns.htm ja] || 2014-09-21&lt;br /&gt;
|-&lt;br /&gt;
| [[#GLS Leiterplatten-Service GmbH|GLS Leiterplatten-Service GmbH]] || 09221 || Neukirchen || ja? || ja || nein || ja || 2014-09-21&lt;br /&gt;
|-&lt;br /&gt;
| [[#HAKA Elektronik-Leiterplatten GmbH|HAKA Elektronik-Leiterplatten GmbH]] || 66583 || Spiesen-Elversberg || ja? || ja || ja || ja? || 2014-09-21&lt;br /&gt;
|-&lt;br /&gt;
| [[#IBR Leiterplatten GmbH &amp;amp; Co. KG|IBR Leiterplatten GmbH &amp;amp; Co. KG]] || 74906 || Bad Rappenau || nein || ja || ja || ja? || 2014-09-21&lt;br /&gt;
|-&lt;br /&gt;
| [[#ILFA Feinstleitertechnik GmbH|ILFA Feinstleitertechnik GmbH]] || 30559 || Hannover || ? || ja || nein || teilweise || 2014-09-21&lt;br /&gt;
|-&lt;br /&gt;
| [[#kessler systems GmbH|kessler systems GmbH]] || 88376 || Königseggwald || ? || ja || nein || teilweise || 2014-09-21&lt;br /&gt;
|-&lt;br /&gt;
| [[#LEITON|LEITON]] || 12099 || Berlin || ja || ja || ja || teilweise || 2014-09-21&lt;br /&gt;
|-&lt;br /&gt;
| [[#Leiterplatten-Express-Service GmbH|Leiterplatten-Express-Service GmbH]] || 63329 || Egelsbach || ? || ja || nein || ja || 2014-09-21&lt;br /&gt;
|-&lt;br /&gt;
| [[#Microcirtec|Microcirtec]] ||  47805 || Krefeld || nein || ja || ja || ja || 2014-09-21&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| [[#MITTELSTAEDT|MITTELSTAEDT Leiterplatten]] ||  121005 || Berlin || ja || ja || ja || ja || 2017-07-18&lt;br /&gt;
|-&lt;br /&gt;
| [[#MME-Leiterplatten|MME-Leiterplatten]] || 53604 || Bad Honnef || ? || ja || ja || ja? || 2014-09-21&lt;br /&gt;
|-&lt;br /&gt;
| [[#M &amp;amp; V Leiterplatten - Vertriebs GmbH|M &amp;amp; V Leiterplatten - Vertriebs GmbH]] || 56355 || Bettendorf || ? || ja || ja || ja || 2014-09-20&lt;br /&gt;
|-&lt;br /&gt;
| [[#Multi_Printed_Circuit_Boards_Ltd.|Multi-CB]] ||  85649 || Brunnthal || nein || ja || ja || ? || 2015-02-16&lt;br /&gt;
|-&lt;br /&gt;
| [[#Onlineshop WEdirekt|Onlineshop WEdirekt]] || 74585 || Rot am See || ja || ja || ja || [http://www.wedirekt.de/index.php/web/live/de/wedirekt/ueberuns/die_produktion/die_produktion_1.php ja] || 2014-09-20&lt;br /&gt;
|-&lt;br /&gt;
| [[#PCB Joker|PCB Joker GmbH]] || 12099 || Berlin || ? || ja || ja || ja || 2014-09-20&lt;br /&gt;
|-&lt;br /&gt;
| [[#PCB Pool|PCB Pool]] || 65326 || Aarbergen || ja || ja || ja || teilweise || 2014-09-20&lt;br /&gt;
|-&lt;br /&gt;
| [[#Precoplat|Precoplat]] || 47805 || Krefeld || ? || ja || ja || ja || 2014-09-20&lt;br /&gt;
|-&lt;br /&gt;
| [[#Q-print/Q-PCB|Q-print/Q-PCB]] || 68542 || Heddesheim || ? || ja || ja || nein? || 2014-09-20&lt;br /&gt;
|-&lt;br /&gt;
| [[#Richter Elektronik GmbH|Richter Elektronik GmbH]] || 57392 || Schmallenberg || ? || ja || nein || ja || 2017-05-10&lt;br /&gt;
|-&lt;br /&gt;
| [[#Rinde PCB GmbH|Rinde PCB GmbH]] || 42899 || Remscheid || ? || ja || ja || ja || 2015-01-23&lt;br /&gt;
|-&lt;br /&gt;
| [[#Ruwel|Ruwel]] || 47608 || Geldern || nein? || ja || nein || teilweise || 2014-09-20&lt;br /&gt;
|-&lt;br /&gt;
| [[#Steimer Leiterplatten GmbH|Steimer Leiterplatten GmbH]] || 42327 || Wuppertal || ja || ja || ja || ja || 2014-09-20&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== 2PrintBeta ====&lt;br /&gt;
Homepage: http://www.2printbeta.de/Dienstleistungen/PCB-Stencil-Service::337.html&lt;br /&gt;
* SMD-Schablonen aus Mylar gelasert, preiswert und schnell. Masken bis zu 0.5mm Pitch problemlos möglich. &lt;br /&gt;
* Super günstig, super flott!&lt;br /&gt;
* Keine Begrenzung der Padanzahl.&lt;br /&gt;
* Als Student erhalten Sie 25% Rabatt! (Nur gegen Nachweis des Studentenausweises!)&lt;br /&gt;
&lt;br /&gt;
==== Accent PCB GmbH ====&lt;br /&gt;
Homepage: http://www.accentpcb.com/duitsland-home.html&lt;br /&gt;
&lt;br /&gt;
Eigendarstellung (vgl. auch [http://www.mikrocontroller.net/topic/316646 Forenthread]):&lt;br /&gt;
* Leiterplatten &amp;quot;ab 75€ - €99€&amp;quot; &lt;br /&gt;
* erfahrene Techniker&lt;br /&gt;
* Beratung gratis&lt;br /&gt;
* Produktion in Asien und Europa&lt;br /&gt;
* auch flexible und &amp;quot;starr-flexible&amp;quot; Platinen&lt;br /&gt;
* Standort: Niederlande&lt;br /&gt;
&lt;br /&gt;
==== AISLER ====&lt;br /&gt;
Homepage: https://aisler.net&lt;br /&gt;
&lt;br /&gt;
Günstige Platinen made in Germany&amp;lt;br /&amp;gt;&lt;br /&gt;
Komplett-Dienstleister, Bauteile und Stencils können direkt mit bestellt werden.&lt;br /&gt;
&lt;br /&gt;
* Leiterplatten ohne Mindestgröße&lt;br /&gt;
* Keine Mindestbestellmenge, günstige Preise&lt;br /&gt;
* Produktion vollständig mit deutschem Fertiger in Industriequalität&lt;br /&gt;
* Standardmäßig ENIG-Finish, FR4 und TG150 Material&lt;br /&gt;
* Innenfräsungen bis 0,8mm möglich&lt;br /&gt;
* Langlöcher Durchkontaktiert und Nicht-Durchkontaktiert werden unterstützt&lt;br /&gt;
* 1- und 2-Layer Platinen (35µ Kupferstärke), 4-Layer auf Anfrage&lt;br /&gt;
* Platinen werden gefräst, nicht geritzt&lt;br /&gt;
* Weißer Bestückungsdruck Ober- und Unterseite inklusive&lt;br /&gt;
* Online Visualisierung aller Fertigungsdaten&lt;br /&gt;
* Anpassung der Fertigungsdaten ohne Lieferzeitverzögerung auch nach Bestellung noch möglich&lt;br /&gt;
* Abnahme immer in dreier-Stückzahl&lt;br /&gt;
* Einfache Bezahlung u.a. mit Paypal, Sofort Überweisung, Banktransfer, Kreditkarte, oder Bitcoin&lt;br /&gt;
* Versandkosten: unversichert inklusive,  ab 12 EUR via FedEx&lt;br /&gt;
* Elektropolierte Stencils ab 5 EUR&lt;br /&gt;
&lt;br /&gt;
==== Ätzwerk GmbH ====&lt;br /&gt;
Homepage: https://www.aetzwerk.de&lt;br /&gt;
&lt;br /&gt;
Eigendarstellung:&lt;br /&gt;
* Lötstopp doppelseitig, Bestückungsdruck einseitig, Stuktur&amp;gt;0,15mm, Bohrungen&amp;gt;0,3mm, E-Test, ab 7 AT Standard&lt;br /&gt;
** Prototypen 1 Lage oder 2 Lagen durchkontaktiert ab 39,05€ zzgl. MwSt // 46,47€ inkl. MwSt.&lt;br /&gt;
** Prototypen 4 Lagen ab 69,25€ zzgl. MwSt. // 85,41€ inkl. MwSt.&lt;br /&gt;
** Prototypen 6 Lagen ab 99,40€ zzgl. MwSt. // 118,29€ inkl. MwSt.&lt;br /&gt;
* Liefert auch an private Abnehmer&lt;br /&gt;
* SMD-Pastenschablonen ab 33,95€ zzgl. MwSt. // 40,40€ inkl. MwSt.&lt;br /&gt;
* Expressfertigung&lt;br /&gt;
* Abholung möglich&lt;br /&gt;
* Versandtag ist letzter AT&lt;br /&gt;
&lt;br /&gt;
Erfahrungen:&lt;br /&gt;
* verschicken unaufgeforderte Newsletter&lt;br /&gt;
* [https://www.mikrocontroller.net/topic/246385 Diskussionsfaden &amp;quot;Ätzwerk GmbH&amp;quot;]&lt;br /&gt;
&lt;br /&gt;
==== am2s ====&lt;br /&gt;
Homepage: http://www.am2s.de&lt;br /&gt;
* Leiterplatten (Prototypen und Kleinserien, bis hin zur Großserie)&lt;br /&gt;
* Eildienst möglich&lt;br /&gt;
* Ein- und doppelseitige Leiterplatten, Multilayer. &lt;br /&gt;
* Layoutservice&lt;br /&gt;
* günstige Preise&lt;br /&gt;
* sehr gute Qualität&lt;br /&gt;
* Lieferzeit ab 3 AT&lt;br /&gt;
&lt;br /&gt;
==== andus electronic ====&lt;br /&gt;
Homepage: http://www.andus.de&lt;br /&gt;
* Prototypen Fertigung&lt;br /&gt;
* Top Qualität&lt;br /&gt;
* Top Service&lt;br /&gt;
* Vergleichsweise Teuer&lt;br /&gt;
&lt;br /&gt;
==== ANTtronic ====&lt;br /&gt;
Homepage: http://www.anttronic.de/pcb/ früher: http://www.gsel.de&lt;br /&gt;
* gute Preise, aber Lieferzeit beachten!&lt;br /&gt;
* 1 Europlatine einseitig kein Lötstoplack 17€ inkl. MwSt +7€ Versand&lt;br /&gt;
* 1 Europlatine doppelseitig &#039;&#039;nicht durchkontaktiert&#039;&#039; kein Lötstoplack 23€ inkl. MwSt +7€ Versand; 2Stück 37€&lt;br /&gt;
&lt;br /&gt;
==== Basista Leiterplatten GmbH ====&lt;br /&gt;
Homepage: http://www.basista.de&lt;br /&gt;
&lt;br /&gt;
Eigendarstellung:&lt;br /&gt;
* Aktuelles Angebot: Eine Lp 100x100mm, doppelseitig, grün, RoHS-konform, mit E-Test, 10AT &#039;&#039;&#039;29,75€&#039;&#039;&#039; inkl. MwSt. ohne Versand &lt;br /&gt;
* Eurokarte doppelseitig ab 56.93€ inkl. MwSt und Versand /  + Best.Druck Top 73.59€ inkl. MwSt. und Versand&lt;br /&gt;
* Onlinekalkulator für 1-6 Lagen Prototypen, Serien bis 8 Lagen&lt;br /&gt;
* Fertigung ab 1 Stück (min. 1dm²)&lt;br /&gt;
* Prototypen in den Farben grün, weiß, schwarz, rot, blau, grau, ohne Lack&lt;br /&gt;
* Eilservice ab 8 Std., 1-6 Lagen&lt;br /&gt;
* Letzter Arbeitstag = Versandtag &lt;br /&gt;
* Prototypen standardmäßig chemisch zinnbehandelt, weitere Oberflächen auf Anfrage&lt;br /&gt;
* Verkauf auch an privat&lt;br /&gt;
* Prototypen FR4 35µm Cu mit Materialdicke 0.35mm-2mm, weitere Stärken, Kupferdicken und Sondermaterialien auf Anfrage&lt;br /&gt;
* Eventuelle Überproduktion wird kostenfrei mitgeliefert &lt;br /&gt;
&lt;br /&gt;
Erfahrungen:&lt;br /&gt;
* Preise OK&lt;br /&gt;
* Früher geliefert ohne Aufpreis (7 statt 10 AT)&lt;br /&gt;
* Qualität OK&lt;br /&gt;
* Onlinekalkulator&lt;br /&gt;
* 100x160mm, zweiseitig, durchkontaktiert, mit Lötstop, 8AT, 82€&lt;br /&gt;
&lt;br /&gt;
==== Bauer-Elektronik ====&lt;br /&gt;
Homepage: http://www.bauer-leiterplatten.de&lt;br /&gt;
* Eurokarte doppelseitig für 61€ inkl. MwSt 8AT Lieferzeit / Stopplack +10% / Best.Druck +10%&lt;br /&gt;
* Prototypen aktivzinnbehandelt, dieses lässt sich laut Firmenangaben noch nach Jahren löten&lt;br /&gt;
* Eildienst 2h: Versand am selben Tag bei Einsendung bis 13:00 400€ für 2dm²&lt;br /&gt;
&lt;br /&gt;
==== Britze ====&lt;br /&gt;
Homepage: http://www.britze.de&lt;br /&gt;
* Leiterplatten in kleinen und mittlere Serien&lt;br /&gt;
* Musterleiterplatten / Prototypen&lt;br /&gt;
* 1- und 2-lagige Leiterplatten&lt;br /&gt;
* Multilayer bis 10 Lagen&lt;br /&gt;
* Aluminiumträgerleiterplatten&lt;br /&gt;
* &#039;&#039;Online-Kalkulator&#039;&#039; für Multinutzen und Leiterplatten&lt;br /&gt;
* Beratung/Layout/Entflechtung von Leiterplatten&lt;br /&gt;
* 100x160mm, zweiseitig, durchkontaktiert, mit Lötstop, 10AT, 73€&lt;br /&gt;
* scheint auch an privat zu liefern&lt;br /&gt;
&amp;quot;Seit dem 17.9.2012 werden alle Leiterplatten von Britze durch die Firma LeitOn GmbH vertrieben, mit der schon eine langjährige Zusammenarbeit besteht.&amp;quot; Bestellungen direkt bei britze.de offenbar nur noch für Bestandskunden möglich.&lt;br /&gt;
&lt;br /&gt;
==== B&amp;amp;B Sachsenelektronik GmbH ====&lt;br /&gt;
Homepage: http://www.bb-gruppe.de&lt;br /&gt;
* Klein- und Musterserien, Spezialist Sondertechniken&lt;br /&gt;
* Zusätzliche Partner für Großserien in Asien mit eigenen Mitarbeitern&lt;br /&gt;
* Ein- und Doppelseitige Leiterplatten&lt;br /&gt;
* Multilayer&lt;br /&gt;
* Schleifringe&lt;br /&gt;
* Starrflex&lt;br /&gt;
* Hochstromleiterplatte&lt;br /&gt;
* Dickkupfer&lt;br /&gt;
* Flexlam&lt;br /&gt;
* Dünnstleiterplatte&lt;br /&gt;
* IMS&lt;br /&gt;
* HDI Leiterplatte&lt;br /&gt;
* E-Test inklusive&lt;br /&gt;
* Datenformate: Ger­ber, Eagle, Excel­lon, Sieb &amp;amp; Meier&lt;br /&gt;
* Eildienst möglich&lt;br /&gt;
* Abrufeinteilung und Konsignationslager möglich&lt;br /&gt;
* Standort: 09648 Mittweida/Sachsen&lt;br /&gt;
&lt;br /&gt;
==== Becker und Müller ====&lt;br /&gt;
Homepage: https://www.becker-mueller.de&lt;br /&gt;
* Online Kalkulator (2Lagen, 4 Lagen, 6 Lagen)&lt;br /&gt;
* Sonderbauformen (Alu, etc.) möglich&lt;br /&gt;
* Qualität gut&lt;br /&gt;
* Hochfrequenzschaltungen&lt;br /&gt;
* Eildienst möglich&lt;br /&gt;
* Schablonenpreis: 59 € (netto) plus 8 € Porto&lt;br /&gt;
&lt;br /&gt;
==== Contag====&lt;br /&gt;
Homepage: http://www.contag.de&lt;br /&gt;
* schnell, ab 4 Stunden&lt;br /&gt;
* aber auch sehr teuer&lt;br /&gt;
* Qualität sehr gut&lt;br /&gt;
* jede Kalkulation erst nach Kontoeinrichtung bzw. Anmeldung&lt;br /&gt;
&lt;br /&gt;
==== Christian Enzmann Gmbh ====&lt;br /&gt;
Hompage: http://www.enzmann.de&lt;br /&gt;
&lt;br /&gt;
Prototypen&lt;br /&gt;
* Schnelle Reaktion auf individuelle Kundenwünsche&lt;br /&gt;
* Liefertermine werden eingehalten&lt;br /&gt;
Serienfertigung&lt;br /&gt;
* gefertigten Prototypen sollen später in Produktion von Großserien gehen&lt;br /&gt;
* Kunden können mit großen Stückzahlen versorgt werden&lt;br /&gt;
&lt;br /&gt;
==== Deutschlaender Electronic GmbH ====&lt;br /&gt;
Homepage: http://www.deutschlaender.net&lt;br /&gt;
* Leiterbahnbreite und -abstand ab 100 µm&lt;br /&gt;
* Bohrdurchmesser (Endmaß) ab 0,2 mm&lt;br /&gt;
* Sacklöcher, Halblöcher, Tiefenfräsung&lt;br /&gt;
* Materialstärke ab 0,5 mm bis 2,4mm&lt;br /&gt;
* Kupferauflagen: 35 µm, 70 µm, 105 µm,145 µm und 235 µm&lt;br /&gt;
* Hoch-Tg oder Aluminiummaterial&lt;br /&gt;
* Fotosensitiver Lötstoplack (grün,schwarz,rot und weiß)&lt;br /&gt;
* Bestückungsdruck (weiß,gelb,schwarz und rot)&lt;br /&gt;
* Carbondruck (Kontaktflächen)&lt;br /&gt;
* Abziehlack&lt;br /&gt;
* Viadruck&lt;br /&gt;
* Konturfräsen&lt;br /&gt;
* Schlitze fräsen - auch durchkontaktiert&lt;br /&gt;
* Kerb Ritzen für Kontur, Sollbruchstellen, Sprungritzen&lt;br /&gt;
* Kontur anfasen, z.B. für Steckerkamm&lt;br /&gt;
* Oberflächenveredelung:&lt;br /&gt;
** HAL bleifrei / PbSn&lt;br /&gt;
** Chemisch Nickel/Gold(Ni/Au)&lt;br /&gt;
** Chemisch Zinn (Sn)&lt;br /&gt;
** Galvanisch Nickel/Gold (Ni/Au, Hartgold)&lt;br /&gt;
* Datenformate: Ger­ber, Eagle, Target, Autocad, Excel­lon, Sieb &amp;amp; Meier&lt;br /&gt;
* Eildienst möglich (3AT/5AT/7AT)&lt;br /&gt;
&lt;br /&gt;
==== EPN Electroprint GmbH ====&lt;br /&gt;
Homepage: http://www.epn.de&lt;br /&gt;
* 8 Tage Lieferzeit, Eilservice 24h auch möglich&lt;br /&gt;
* Single-Layer, Multi-Layer (bis 22 Lagen als Spezialanfertigung!), Dickkupfer&lt;br /&gt;
* Verzinnung: Hot-Air-Leveling oder chemisch Zinn&lt;br /&gt;
* Lötstopplack verschiedene Farben nach Absprache möglich&lt;br /&gt;
* Stencil-Fertigung kostet zusätzlich 41,65 € (netto)&lt;br /&gt;
* Thüringer Staatspreis für Qualität&lt;br /&gt;
* Standort: Neustadt an der Orla/Thüringen&lt;br /&gt;
&lt;br /&gt;
==== Elischer Leiterplatten ====&lt;br /&gt;
mailto:aurel-elischer@t-online.de&lt;br /&gt;
* Firmensitz / Post-Adresse: Dipl.-Ing. Aurel Elischer, Leiterplatten, Am Forst 7, 72574 Bad Urach, Tel. 07125/4498, Ust.Id.-Nr.: DE 223 09 4959&lt;br /&gt;
* Layoutentwurf, LP Entwicklung, herstellen, bestücken, löten, prüfen&lt;br /&gt;
* 3 KW Lieferzeit (nach Vereinbarung auch kürzer)&lt;br /&gt;
* sehr gute Preise, Qual.1A&lt;br /&gt;
* einen Preis zu nennen, wäre Unfair. Es ist abhängig davon ob:&lt;br /&gt;
** 1 oder 2-seitig&lt;br /&gt;
** Leiterbahnenabstand und Lötflächenanstände größer als 0,3 mm&lt;br /&gt;
** Cu 30, 70, 110 µm&lt;br /&gt;
** Stärke der LP 1,0; 1,6; 2,0; ... mm&lt;br /&gt;
** mit (1- oder 2-seitig, grün, blau, weiß, schwarz,...)oder ohne Beschriftung&lt;br /&gt;
** mit oder ohne Stoplack&lt;br /&gt;
** gefräst oder nur geritzt&lt;br /&gt;
** einzeln oder X-Fach-Montage&lt;br /&gt;
* unbedingt Gerber 274X und Exellon für die Anfrage (Angebot kostenlos) beifügen; keine Angst: Gerber 274X und Exellon kann man aus jedem Programm generieren&lt;br /&gt;
&lt;br /&gt;
==== Elk Tronic ====&lt;br /&gt;
Homepage http://www.elk-tronic.de&lt;br /&gt;
* Entwicklung und Fertigung von Kleingeräten und Kleinserien&lt;br /&gt;
* Verkauf von IC-Adaptern und Bauteilen&lt;br /&gt;
&lt;br /&gt;
==== Eurocircuits GmbH ====&lt;br /&gt;
Hompage: http://www.eurocircuits.de&lt;br /&gt;
* ideal für kleine Stückzahlen ab 1 Stück&lt;br /&gt;
* Lieferzeit ab 2 AT&lt;br /&gt;
* gute Preise bei Prototypen aber auch bei mittleren Stückzahlen&lt;br /&gt;
* Online Datenvisualisierung und DRC Check&lt;br /&gt;
* SMD - Schablonen&lt;br /&gt;
* Preisberechnung eindeutig ohne versteckte Kosten&lt;br /&gt;
* Online-Preisberechnung (PCB oder Schablone) erst nach Anmeldung (und ggf. zusätzlicher Kontoeinrichtung)&lt;br /&gt;
* Europakarte &amp;quot;naked proto&amp;quot;, 2-lagig, 40.38€ (2016-07-17)&lt;br /&gt;
* Europakarte mit Lack und Druck, 2-lagig, 70,07€ (2016-07-17)&lt;br /&gt;
&lt;br /&gt;
==== Entwicklung &amp;amp; CNC (gewerblich) ====&lt;br /&gt;
Hompage: http://www.entwicklung-cnc.de&amp;lt;br&amp;gt;&lt;br /&gt;
mailto:julian.huesing85@googlemail.com&lt;br /&gt;
* Europlatine 100x160 1 bis 2 Seitig ca. 20-40€ (Berechnung Maschinenzeit)&lt;br /&gt;
* Auch große Platinen möglich.&lt;br /&gt;
* Isolationsbreiten abhängig vom Stichel: minimale Isolationsbreite ca. 0,15 mm&lt;br /&gt;
* Bohr und Fräsarbeiten, auch aufwändige Konturen realisierbar&lt;br /&gt;
* Lieferzeit 8AT, ansonsten Aufpreis bei schnellerer Lieferung&lt;br /&gt;
* CNC Fräsarbeiten in PCB, Alu, Holz, Kunststoff, GFK, etc. max. Verfahrwege: 1150x720mm (Fräsmaschine: BZT PFE1000)&lt;br /&gt;
* Fertigung erfolgt auf Rechnung mit ausgewiesener Mehrwertsteuer&lt;br /&gt;
* USt-IdNr.: DE293952582&lt;br /&gt;
&lt;br /&gt;
==== Fischer Leiterplatten GmbH ====&lt;br /&gt;
Homepage: http://www.fischer-leiterplatten.de&lt;br /&gt;
* 1 Europlatine inkl. Lack, E-Test, ohne Bestückungsdruck für 46,41€ inkl. MwSt in 10 Tagen + Versand&lt;br /&gt;
* 1 Europlatine inkl. Lack, E-Test, Best.-Druck top oder bottom für 58,31€ inkl. MwSt in 10 Tagen + Versand&lt;br /&gt;
* 1 Europlatine inkl. Lack, E-Test, Best.-Druck doppelseitig für 117,81€ inkl. MwSt in 10 Tagen + Versand&lt;br /&gt;
* max. 4 lagig&lt;br /&gt;
* Bestückungsdruck doppelseitig&lt;br /&gt;
* Bohrungen no limit&lt;br /&gt;
* min Clearance 0,15mm (Standard)&lt;br /&gt;
* min Bohrdurchmesser 0,3mm (Standard)&lt;br /&gt;
* Gerber/Eagle/Protel/Target&lt;br /&gt;
* mehrere Leiterplatten können auf einer Europakarte, zum Preis einer Europakarte, zusammengefasst werden und werden automatisch vereinzelt.&lt;br /&gt;
* Überlieferung wird kostenlos beigelegt. (Sprich: in der Regel werden mehr Leiterplatten geliefert als bestellt.)&lt;br /&gt;
* Verkauf nur an Gewerbetreibende (aber es wird kein Gewerbenachweis verlangt ;) )&lt;br /&gt;
* Erfahrungen: [http://www.mikrocontroller.net/topic/209947#2078731]&lt;br /&gt;
&lt;br /&gt;
==== GLS Leiterplatten-Service GmbH ====&lt;br /&gt;
Homepage: &amp;lt;strike&amp;gt;http://www.leiterplattenprototypen.de&amp;lt;/strike&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
(URL defekt am 16.3.2015, Redirect zur DeNIC).&lt;br /&gt;
&lt;br /&gt;
* Top Qualität (mittleres Preisniveau)&lt;br /&gt;
* Top Service&lt;br /&gt;
* Prüfung der Layoutdaten in der CAM&lt;br /&gt;
* Standardlieferzeit: 10 Arbeitstage&lt;br /&gt;
* Eilservice bis 3 Arbeitstage (mit Aufpreis)&lt;br /&gt;
* Oberfläche Standard: HAL bleifrei; aber auch z.&amp;amp;nbsp;B. chem. Gold, chem. Zinn und HAL bleihaltig&lt;br /&gt;
* einseitige, nichtdurchkontaktierte Leiterplatten &lt;br /&gt;
* durchkontaktierte Leiterplatten&lt;br /&gt;
* Multilayer: bis 8-Lagen&lt;br /&gt;
* bietet zusätzlichen Service rund um die Leiterplatte: Erstellung von Leiterplattenlayouts und Digitalisierung/Scannen von alten Fertigungsfilmen, Papierausdrucken oder vorhandenen Musterleiterplatten&lt;br /&gt;
* SMD Schablonen&lt;br /&gt;
* Prototypenfertigung bei Chemnitz&lt;br /&gt;
&lt;br /&gt;
==== HAKA Elektronik-Leiterplatten GmbH ====&lt;br /&gt;
Homepage: http://www.haka-lp.de&lt;br /&gt;
* Zwillingsangebot: 2 identische Europakarten für 50€ (durchkontaktiert, Lötstop, kein Bestückungsdruck, nur Eagle- oder Target-Dateien), auch hierbei kostenlose Duplizierung kleinerer Layouts&lt;br /&gt;
* Zwillingsangebot: 2 identische Doppel-Eurokarten (200x160) für 90€, gleiche Bedingungen wie oben&lt;br /&gt;
* Prototypenangebot (min. Abstand 0,15 mm, min. Leiterbahnbreite 0,15 mm, kleinste Bohrung 0,3 mm, durchkontaktiert, Lötstop), 160x100mm in 2AT = 260EUR .. 8AT = 72 EUR .. 15AT = 63 EUR&lt;br /&gt;
* bei Platinen kleiner 1 qdm gibt es entsprechend mehr ohne Aufpreis&lt;br /&gt;
* Lieferzeit ab 3 Werktage; Achtung: Lieferzeit sind nur Circa-Werte und nicht verbindlich. Auch bei Aufpreis (AGB)!&lt;br /&gt;
* sehr gute Qualität&lt;br /&gt;
&lt;br /&gt;
==== LED-Hobby ====&lt;br /&gt;
Homepage: http://www.led-hobby.de (ebay-Shop)&lt;br /&gt;
* keine Platinen&lt;br /&gt;
* SMD Bestückung, Reflowlöten, Lohnbestückung&lt;br /&gt;
* Laserschne​iden in Plexiglas, Acryl, Sperrholz&lt;br /&gt;
&lt;br /&gt;
==== IBR Leiterplatten GmbH &amp;amp; Co. KG ====&lt;br /&gt;
Homepage: http://www.ringler.de&lt;br /&gt;
* sehr freundlicher und kompetenter Service&lt;br /&gt;
* reagiert sehr schnell&lt;br /&gt;
* Qualität TOP&lt;br /&gt;
* Preise TOP - günstige Einmalkosten/Setup&lt;br /&gt;
* kann auch Dinge wie Alu, Starrflex, fine pitch oder 0,1 er vias&lt;br /&gt;
* Lieferzeit ab 2 Tage&lt;br /&gt;
* 2 Lagen in 10 Tagen - 10 Lagen Multilayer ohne besondere Nachfrage binnen 18 Tagen geliefert&lt;br /&gt;
* liefert generell schneller als bestätigt / macht auch Rahmenaufträge&lt;br /&gt;
* Mehrmengen bei Prototypen werden kostenlos geliefert&lt;br /&gt;
* SMD-Schablonen&lt;br /&gt;
&lt;br /&gt;
==== ILFA Feinstleitertechnik GmbH ====&lt;br /&gt;
Homepage: http://www.ilfa.de&lt;br /&gt;
&lt;br /&gt;
==== kessler systems GmbH ====&lt;br /&gt;
Homepage: http://www.kesslersystems.de&lt;br /&gt;
* Leiterplatten und Bestückung (Prototypen und Kleinserien, bis hin zur Großserie)&lt;br /&gt;
* Sehr schnell&lt;br /&gt;
* Ein- und doppelseitige Leiterplatten, Multilayer. &lt;br /&gt;
* Layoutservice&lt;br /&gt;
* SMD- und THT Bestückung&lt;br /&gt;
* Gerätebau&lt;br /&gt;
* günstige Preise&lt;br /&gt;
* sehr gute Qualität&lt;br /&gt;
* Lieferzeit an 3 AT&lt;br /&gt;
* Bauelementebeschaffung auch schon bei 1 Stück (super funktioniert)&lt;br /&gt;
&lt;br /&gt;
==== LEITON ====&lt;br /&gt;
Homepage: http://www.leiton.de &amp;lt;br&amp;gt;&lt;br /&gt;
http://www.leiterplatten-online.de&lt;br /&gt;
* Flexible Leiterplatten online kalkulieren&lt;br /&gt;
* Alle Layouts werden in der CAM eingehend geprüft&lt;br /&gt;
* Schnellste Bearbeitung von Anfragen &lt;br /&gt;
* Diverse Spezialfertigungen (Aluminiumkern, HF, hoch-Tg etc.)&lt;br /&gt;
* Fließender Übergang vom Prototyp in die Serie möglich&lt;br /&gt;
* Niederlassungen in Hongkong &amp;amp; China für Großserien (LeitOn HK Ltd.)&lt;br /&gt;
* Relativ günstig&lt;br /&gt;
* bei mehreren kleinen Leiterplatten wird nach Gesamtfläche berechnet, nicht nach Mindestfläche x Mindestpreis x Stückzahl&lt;br /&gt;
* Es wird allerdings sehr gerne ohne Rücksprache in den CAM-Daten herumgepfuscht. Nicht immer mit Erfolg...&lt;br /&gt;
* Bis 8-lagig und ab 12 Std.&lt;br /&gt;
&lt;br /&gt;
==== Leiterplatten-Express-Service GmbH ====&lt;br /&gt;
Homepage: http://www.les-gmbh.com&lt;br /&gt;
&lt;br /&gt;
==== Microcirtec  ====&lt;br /&gt;
Homepage: http://www.microcirtec.de&lt;br /&gt;
* Direct - Online - Shop — zum Kalkulieren-Bestellen und Kaufen&lt;br /&gt;
* Mit Auftragsverfolgung per Online&lt;br /&gt;
* Vom Rapid Prototyping bis zur Rapid Mass-Production&lt;br /&gt;
* Qualität betrachten wir als selbstverständlich&lt;br /&gt;
* Allerdings ist die Anmelde-Prozedur ein Drama&lt;br /&gt;
* Preiswert&lt;br /&gt;
&lt;br /&gt;
==== MITTELSTAEDT Elektronik  ====&lt;br /&gt;
Homepage: http://www.me-berlin.de.de&lt;br /&gt;
* Ohne anzumelden Onlinekalkulieren, per eMail Bestellen und Kaufen&lt;br /&gt;
* Schnelle Lieferung in hoher Qualität&lt;br /&gt;
* Europakarte in 4 Tagen 44€&lt;br /&gt;
* SMD-Bestückung möglich&lt;br /&gt;
* Auch hohe Stückzahlen werden in Berlin gefertigt&lt;br /&gt;
&lt;br /&gt;
==== MME-Leiterplatten ====&lt;br /&gt;
Homepage: http://mme-pcb.de&lt;br /&gt;
* [http://www.mikrocontroller.net/topic/73790 Thread &#039;MME-PCB, Erfahrungen&#039;](bereits 4 Jahre alt)&lt;br /&gt;
* Verkauft über seine Homepage (Onlinekalkulator)&lt;br /&gt;
* Europakarte: ES: 20,60 EUR, DSDK: 41,50 EUR&lt;br /&gt;
* Durchkontaktierung bei zweiseitigen Leiterplatten ist im Preis inbegriffen&lt;br /&gt;
* Trennen und Bohren inklusive&lt;br /&gt;
* Stopplack inklusive&lt;br /&gt;
* Bestückungsdruck (16€) kosten extra&lt;br /&gt;
* min. Abstand 0,20 mm,  min. Leiterbahnbreite 0,20 mm, kleinste Bohrung 0,4 mm&lt;br /&gt;
* Lieferzeit 8-12 Arbeitstage (bei mir waren es nur 5 Werktage)&lt;br /&gt;
* Überlieferung kostet nichts (häufig wird eine Leiterplatte mehr geliefert, bei mir waren es bei vier bestellten Platinen zwei mehr)&lt;br /&gt;
* Mit einer bestellten einseitigen Platine (DIL Bauteile) bin ich sehr zufrieden&lt;br /&gt;
* Die auf der Seite beworbene Lierferzeit wird meist eingehalten.&lt;br /&gt;
* Bis zu zehn unterschiedliche Karten können in einem Auftrag gepoolt werden -&amp;gt; preiswerter weil dm² kosten über alle gerechnet werden.&lt;br /&gt;
* Antwortet bei mir nicht auf emails, telefonisch kaum zu erreichen.&lt;br /&gt;
*Kommunikation hat sich erheblich verbesssert.&lt;br /&gt;
* Kommunikation wieder schleppend ( stand: August 2013 )&lt;br /&gt;
&lt;br /&gt;
==== M &amp;amp; V Leiterplatten - Vertriebs GmbH ====&lt;br /&gt;
Homepage: http://pcb-center.de früher: http://www.mvpcb.de/&lt;br /&gt;
* Bin sehr zufrieden, gute Preise, 10 - 14 Tage&lt;br /&gt;
* Top Qualität, nichts auszusetzen&lt;br /&gt;
* Qualität sehr gut, hohe Auflösung, auch SMD fine pitch möglich&lt;br /&gt;
* Eurokarte doppelseitig 2xStopplack FR4 bleifrei konturgefräst  63€ inkl. MwSt zzgl. Versand&lt;br /&gt;
* Eurokarte einseitig    1xStopplack FR4 bleifrei konturgefräst  44€ inkl. MwSt zzgl. Versand&lt;br /&gt;
&lt;br /&gt;
* Freundlicher Kontakt, Leiterplatten sehen gut aus, lieferten 6 Tage zu frueh!&lt;br /&gt;
* Bis zu fünf unterschiedliche Karten können in einem Auftrag gepoolt werden -&amp;gt; preiswerter weil dm² kosten über alle gerechnet werden.&lt;br /&gt;
&lt;br /&gt;
==== Multi Printed Circuit Boards Ltd. ====&lt;br /&gt;
Homepage: http://www.multi-cb.de&lt;br /&gt;
&lt;br /&gt;
Eigendarstellung:&lt;br /&gt;
* Online Kalkulator&lt;br /&gt;
* nur für Gewerbetreibende&lt;br /&gt;
* 1-48 Lagen Leiterplatten und SMD-Schablonen ab 48h&lt;br /&gt;
* Standard 2L &amp;amp; 4L: 5AT Produktionszeit, 6L &amp;amp; 8L: 6AT Produktionszeit&lt;br /&gt;
* Standard: 125µm Leiter, 0.2mm Bohren&lt;br /&gt;
* Inklusive: Kompletter Design-Rule-Check, Tooling, Lötstopp 2x grün, Posidruck 1x weiß&lt;br /&gt;
* Möglich: 75µm Leiter, Blind- &amp;amp; Buried Vias, 0.1mm Bohren, Dickkupfer, ...&lt;br /&gt;
* Diverse Spezialfertigungen wie Flex, Starrflex, Metallkern, HF, Hoch-Tg, etc.&lt;br /&gt;
* Impedanzkontrolle inkl. Testcoupon&lt;br /&gt;
* UL-Zertifizierung&lt;br /&gt;
&lt;br /&gt;
==== PCB Joker ====&lt;br /&gt;
Homepage: http://www.pcb-joker.com&lt;br /&gt;
* Poolkonzept extrem! &lt;br /&gt;
* 1- bis 4 Lagen Multilayer&lt;br /&gt;
* Allgemein schnell und geringe Terminzuschläge&lt;br /&gt;
* Leiterplatten werden bei verschiedenen deutschen Herstellern platziert&lt;br /&gt;
* Sehr günstig , sehr übersichtliche Onlinekalkulation&lt;br /&gt;
* Bezahlung per PayPal oder Vorkasse&lt;br /&gt;
* Farbe, Dicke, Kupferauflage und Oberfläche können nicht festgelegt werden, sondern sind &amp;quot;Joker&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== PCB Pool ====&lt;br /&gt;
Homepage: http://www.pcb-pool.de&lt;br /&gt;
Alternativname: BETA Layout&lt;br /&gt;
* Standort: Im Aartal 14, 65326 Aarbergen, [http://www.openstreetmap.de/karte.html?zoom=17&amp;amp;lat=50.23705&amp;amp;lon=8.06361&amp;amp;layers=B000TT Link zur Openstreetmap Karte]&lt;br /&gt;
* ideal für einzelne Boards und Klein(st)serien&lt;br /&gt;
* Preise im üblichen Rahmen&lt;br /&gt;
* Günstigere Preise für 10er oder 20er Auflage&lt;br /&gt;
* sehr gute Qualität&lt;br /&gt;
* sehr kompetenter und freundlicher Service&lt;br /&gt;
* sehr gute Unterstützung bei Sonderwünschen&lt;br /&gt;
* Lieferzeit ab 2 AT&lt;br /&gt;
* SMD-Schablonen&lt;br /&gt;
* Aktzeptieren von den gängigsten Layoutprogrammen die Boarddaten direkt. AUCH von KiCAD. Siehe http://www.pcb-pool.com/ppde/info_dataformat.html&lt;br /&gt;
* Bietet als Service das (Platz optimierte) Zusammensetzen verschiedener Platinen/Projekte. (Stichwort: Ausnutzen von konkaven Polygonen oder Platinen mit &amp;quot;Loch&amp;quot; durch andere Kleinstplatinen). Es können auch Projektdateien verschiedener Programme kombiniert werden (Dafür unbedingt manuelles Angebot per Mail einholen und als Kommentar anmerken. ACHTUNG: Der Online-Kalkulator erstellt hier pro Upload einen Auftrag! Daher für eine solche Kombination NICHT verwenden)&lt;br /&gt;
&lt;br /&gt;
==== Precoplat ====&lt;br /&gt;
Homepage: http://www.precoplat.de&lt;br /&gt;
&lt;br /&gt;
* Standort: [http://www.openstreetmap.de/karte.html?zoom=17&amp;amp;lat=51.32818&amp;amp;lon=6.58062&amp;amp;layers=B000TT Oberdiessemer Str. 15, 47805 Krefeld]&lt;br /&gt;
* Prototypen, Großserien und alles dazwischen.&lt;br /&gt;
* Extrem flexibel im Angebot (Fläche/Lieferzeit, Blitz-Prototyping, Rapid-Mass-Produktion) &lt;br /&gt;
* Online Bestellung&lt;br /&gt;
* sehr gute Qualität&lt;br /&gt;
* bis 24 Lagen&lt;br /&gt;
* Mikro-Vias 100-200u&lt;br /&gt;
* Carbonlack&lt;br /&gt;
* Elektrischer Test (Flying probe + Nadelbett)&lt;br /&gt;
&lt;br /&gt;
==== Q-print/Q-PCB ====&lt;br /&gt;
Homepage: http://www.Q-PCB.de&lt;br /&gt;
* ideal für einzelne Boards und Klein(st)serien&lt;br /&gt;
* supergünstige Preise &lt;br /&gt;
* gute Qualität (u.U. Lötstop etwas unsauber)&lt;br /&gt;
* keine Zusatzpreise für 2x Lötstoplack o.ä.&lt;br /&gt;
* 150 µm kleinste Strukturbreite&lt;br /&gt;
* ohne Aufpreis bekommt man entweder HAL oder Ni/Au, gegen Aufpreis kann man aus einem von beiden wählen&lt;br /&gt;
* SMD-Schablonen&lt;br /&gt;
* Lieferzeit ab 4 AT&lt;br /&gt;
* Platine 50mm x 60mm, doppelseitig: ~45€ incl. Versand und ~5€ Nachnahme&lt;br /&gt;
* Platine 85mm x 58mm, doppelseitig: 33€ zzgl 6,80 Versand&lt;br /&gt;
* Platine 100mm x 160mm, doppelseitig: 49€ +7€ für Lötstopp +6,80€ Versand&lt;br /&gt;
&lt;br /&gt;
==== Richter Elektronik GmbH ====&lt;br /&gt;
Homepage: http://www.richter-leiterplatten.de&lt;br /&gt;
* Standort: Richter Elektronik GmbH, Hünegräben 6, D-57392 Schmallenberg&lt;br /&gt;
* Fertigungstechnologie: HAL, 70µ Endkupfer, chem. Oberflächen (z.B. chem Ni/Au +1AT), IMS-Leiterplatten&lt;br /&gt;
* Standard-Lieferzeit 1-6 Lagen: ab 6 AT&lt;br /&gt;
* Express-Lieferzeit 1-6 Lagen: ab 2 AT&lt;br /&gt;
&lt;br /&gt;
==== Rinde PCB GmbH ====&lt;br /&gt;
Homepage: http://www.rinde.de&lt;br /&gt;
* Mitglied der chinesischen Sunshine PCB Group&lt;br /&gt;
&lt;br /&gt;
==== Ruwel ====&lt;br /&gt;
Homepage: http://www.ruwel.com&lt;br /&gt;
* Standort: Am Holländer See 70, 47608 Geldern, [http://www.openstreetmap.de/karte.html?zoom=17&amp;amp;lat=51.50451&amp;amp;lon=6.32046&amp;amp;layers=B000TT Link zur Openstreetmap Karte]&lt;br /&gt;
* Werke in Deutschland und China&lt;br /&gt;
* Überwiegend Großserien.&lt;br /&gt;
* Hochtemperatur, Dickkupfer, Kupferinlays, Semiflex, Sacklochbohren.&lt;br /&gt;
&lt;br /&gt;
==== SMTstencil (Großbritannien) ====&lt;br /&gt;
Homepage: http://smtstencil.co.uk&lt;br /&gt;
* SMD-Schablonen aus Polyester gelasert&lt;br /&gt;
* preiswert&lt;br /&gt;
* kleinste Strukturen 0,25 x 0,25 mm²&lt;br /&gt;
* kleinster Abstand 0,3 mm&lt;br /&gt;
&lt;br /&gt;
==== Steimer Leiterplatten GmbH ====&lt;br /&gt;
Homepage: http://www.steimer.de&lt;br /&gt;
&lt;br /&gt;
==== The PCB-Shop / Europrint Deutschland GmbH ====&lt;br /&gt;
Homepage: http://www.thepcbshop.com&lt;br /&gt;
* Punktabzug, da der Preisrechner nur mit Internet Explorer funktioniert&lt;br /&gt;
* gute Qualität&lt;br /&gt;
* guter Preis (inkl. gratis Überlieferungen - 30 kleine Platinen bestellt, 35 bekommen)&lt;br /&gt;
* wenig Statusinformationen (Link zur Statusseite kommt per Mail, dort ändert sich der Status und der Empfänger eigentlich täglich - ist aber trotzdem fristgerecht angekommen)&lt;br /&gt;
&lt;br /&gt;
==== Würth Elektronik GmbH &amp;amp; Co. KG ====&lt;br /&gt;
Homepage: http://www.we-online.de&lt;br /&gt;
* gehört sicherlich nicht zu den preisgünstigsten&lt;br /&gt;
* kann Bauteile in der Leiterplatte fertigen (R, C, Potis u.a.)&lt;br /&gt;
* beherrscht Microvias in allen erdenklichen Varianten&lt;br /&gt;
* sehr kompetentes Ansprechpersonal&lt;br /&gt;
&lt;br /&gt;
==== Onlineshop WEdirekt ====&lt;br /&gt;
&amp;lt;!-- Benutzer:Bede hat diese Beitrag eingefügt und sonst nie etwas im Wiki geschrieben, daher höchstwahrscheinlich Spam. Daher positive Meinung entfernt --&amp;gt;&lt;br /&gt;
Homepage: http://www.wedirekt.de&lt;br /&gt;
* PCB&#039;s in Basistechnologie, 2-8 Lagen&lt;br /&gt;
* SMD Schablonen in allen Ausführungen&lt;br /&gt;
* Europlatine doppelseitig mit Lötstopplack 67€ inkl. MwSt&lt;br /&gt;
* Design- und Applikationsfachbücher rund um EMV&lt;br /&gt;
&amp;lt;!-- * online kalkulieren und bestellen&lt;br /&gt;
* günstig, super Qualität  --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Deutschland sehr günstige===&lt;br /&gt;
Diese Hersteller zeichnen sich durch einen sehr günstigen Preis von &#039;&#039;&#039;unter 30€ pro doppelseitiger Eurokarte&#039;&#039;&#039; aus und können (bis auf pcb-devboards) &#039;&#039;&#039;keine Durchkontaktierungen&#039;&#039;&#039; herstellen.&lt;br /&gt;
&lt;br /&gt;
==== EBC Utz Kohl ====&lt;br /&gt;
Homepage: [http://www.e-b-c-elektronik.de http://www.e-b-c-elektronik.de]&lt;br /&gt;
* recht einfach gehalten, daher wirklich günstig&lt;br /&gt;
* Ideal für den Bastler, denen es auf den Preis ankommt&lt;br /&gt;
* Geätzt einseitig 100 x 100mm 15,- EUR &lt;br /&gt;
* Geätzt einseitig Euroformat 160 x 100mm 24,- EUR &lt;br /&gt;
* Geätzt doppelseitig Euroformat 160 x 100mm 38,40 EUR&lt;br /&gt;
* Geometrie: Leiterbahnabstand/-breite &amp;gt;0.3/0.3mm; Bohrdurchmesser = 0.8mm; Bohrrestring &amp;gt;? = D-d; Leiterplattengröße &amp;lt;160x100mm?; ein- und doppelseitig&lt;br /&gt;
* doppelseitige Platinen sind nicht durchkontaktiert !&lt;br /&gt;
* eigentlich ein Ladengeschäft, versendet jedoch auch&lt;br /&gt;
&lt;br /&gt;
==== Platinenbelichter ====&lt;br /&gt;
Homepage: http://www.platinenbelichter.de&lt;br /&gt;
* eine doppelseitige Europlatine kostet 14,90 EUR Grundpreis + Bohrungen (Preis je Bohrung 0,026cent)&lt;br /&gt;
* Geometrie: Leiterbahnabstand/-breite &amp;gt;0.18/0.18mm; Bohrdurchmesser &amp;gt;0.4mm; Bohrrestring &amp;gt;0.25mm = D-d; Leiterplattengröße &amp;lt;300x200mm; ein- und doppelseitig&lt;br /&gt;
* Lötstopplack grün auf anfrage möglich&lt;br /&gt;
* Scannservice&lt;br /&gt;
* Layoutherstellung vom Schaltplan bis zur fertigen Platine&lt;br /&gt;
&lt;br /&gt;
==== Platinendesign ====&lt;br /&gt;
Homepage: http://www.platinendesign.de&lt;br /&gt;
* Geometrie: Leiterbahnabstand/-breite &amp;gt; 0.25/0.25mm; Bohrdurchmesser &amp;gt;?; Bohrrestring &amp;gt; 0.3mm = D-d; Leiterplattengröße &amp;lt; 300×200mm; ein- und doppelseitig&lt;br /&gt;
* eine doppelseitige Europlatine kostet 14 EUR Grundpreis + Bohrung 2cent + Optionen&lt;br /&gt;
* keine Durchkontaktierungen möglich&lt;br /&gt;
* Lötstopplack grün&lt;br /&gt;
* Lieferzeit von bis zu 8 Arbeitstagen nach Geldeingang&lt;br /&gt;
* Zeitweise geschlossen, Neueröffnung am 31.3.2013&lt;br /&gt;
&lt;br /&gt;
==== Ertürk Electronic ====&lt;br /&gt;
Website: http://www.erturk.de&lt;br /&gt;
&lt;br /&gt;
[mailto:info@erturk.de info@erturk.de]&lt;br /&gt;
* Wir rechnen nach dm², Platinenbestellung nur per E-Mail oder telefon möglich. E-Mails werden sehr schnell beantwortet!&lt;br /&gt;
* Platine 1seitig FR4, 10,00€/dm²&lt;br /&gt;
* Platine 2seitig FR4, 14,00€/dm²&lt;br /&gt;
* Kupfer-Endstärke 35µm oder 70µm oder 105µm&lt;br /&gt;
* Chemische Verzinnung optional erhältlich&lt;br /&gt;
* Geometrie: Leiterbahnabstand/-breite &amp;gt; 0,16/0,16mm; Bohrdurchmesser &amp;gt; 0,4mm; Bohrrestring &amp;gt;0,3mm, Leiterplattengröße &amp;lt; 220×330mm; ein- und doppelseitig &lt;br /&gt;
* Sehr hohe Qualität&lt;br /&gt;
* Bohrung möglich (ab 20 dm² CNC gesteuert), 0,03 Euro pro Bohrung&lt;br /&gt;
* Lieferzeit meistens nach Geldeingang oder bis 3 Arbeitstage&lt;br /&gt;
* Ab 15 Platinen sind Durchkontaktierungen, Lötstoplack, Bohrungen und Positionsdruck möglich (Lieferzeit bis zu 2 Wochen). Anfrage und Auftragsannahme nur mit Gerberdaten oder Eagle Daten möglich.&lt;br /&gt;
* Für ein Prototyp-Angebot reicht eine Eagle, Sprintlayout- Target3001 oder PDF-Datei schon aus. PDF muss im Maßstab 1:1 und schwarz/weiß sein&lt;br /&gt;
* Bestückung möglich (THT / SMD oder gemischt) SMD-Bestückung mit Reflow Verfahren!&lt;br /&gt;
* SMD Schablonenherstellung&lt;br /&gt;
* Verpackung und Versand von 0,00 bis 5,90 Euro innerhalb Deutschland egal wieviel Sie bestellen&lt;br /&gt;
* Mindestauftragsannahme ab 15,00 Euro Inklusiver Verpackung/Versand.&lt;br /&gt;
* Stand: Juli 2014&lt;br /&gt;
&lt;br /&gt;
==== Cadgrafik Bauriedl (nur Filme) ====&lt;br /&gt;
Homepage: [http://cadgrafik-bauriedl.de/leiterplattenfilme.htm]&lt;br /&gt;
* Überträgt Layouts auf hochwertige Folie/Film zum Selberätzen&lt;br /&gt;
* 24h Service &lt;br /&gt;
* 1,25 € / 100 cm² Film, 5,00 € Mindestbestellwert (Stand Mai 2016)&lt;br /&gt;
* 2 € Porto, Rollenversand teurer (Stand Mai 2016), Mindestsumme = 7€&lt;br /&gt;
&lt;br /&gt;
==== pcb-devboards.de ====&lt;br /&gt;
Leiterplatten-Service für immer eingestellt!!!&lt;br /&gt;
&lt;br /&gt;
Erfahrungsbericht von [http://www.mikrocontroller.net/articles/Spezial:Beitr%C3%A4ge/Voga2073 Voga2073]: sehr gute Qualität auch bei feinen Strukturen. Der Lötstoplack ist auflaminiert, aber sehr gut positioniert. Leider ist kein Bestückungsdruck möglich. Besonders hervorzuheben ist die Erstellungsdauer: montags bis 12 bestellt, am folgenden Samstag war der Brief in meinem Briefkasten (dies jetzt schon nach drei Bestellungen wiederholt so gelaufen). Preislich ist dieser Anbieter recht attraktiv, ich bin hierhin gewechselt, seit Jakob seine Preisstrategie verschlechtert hat und ich werde wohl bei diesem Anbieter bleiben. Noch positiv zu erwähnen ist das Shopsystem, für jeden wesentlichen Schritt im Herstellungsprozess wird man benachrichtigt. Alles in allem ein sehr guter Anbieter.&lt;br /&gt;
&lt;br /&gt;
=== EU ===&lt;br /&gt;
Einfacher, parametrisierbarer Preisvergleich für aktuell 21 weltweite Platinenhersteller (inkl. Abschätzung der Versandkosten): http://pcbshopper.com&lt;br /&gt;
&lt;br /&gt;
==== BILEX-LP (Bulgarien) ====&lt;br /&gt;
Homepage http://www.bilex-lp.com&lt;br /&gt;
* deutschsprechender Ansprechpartner&lt;br /&gt;
* liefern bleifreie Platinen(RoHs konform)&lt;br /&gt;
* 26€ für eine doppelseitige Eurokarte ohne Lack und Druck&lt;br /&gt;
* ca. 19 euro fuer eine 80x100mm 2-lagige Platine inkl. dukos &lt;br /&gt;
* Stencils ab &amp;lt;strike&amp;gt;15.00€&amp;lt;/strike&amp;gt; 41 € (netto), 25 € wenn mit Platine zusammen&lt;br /&gt;
* SMD- und THT Bestückung, Beschaffung der Bauteile&lt;br /&gt;
* Layoutservice &lt;br /&gt;
* Lieferzeit ab 3-4 AT &lt;br /&gt;
* insgesamt von 5 bis 7 AT Anlieferung bei Airmail (Porto ab 4,-Euro) &lt;br /&gt;
* FedEx wollte von Bulgarien aus ab 27,-Euro, 1-2AT), DHL ab 20,-Euro, besser DHL nehmen&lt;br /&gt;
* Löcher größer 6 mm wurden nicht gebohrt, sondern gefräst(gegen Anfrage)&lt;br /&gt;
* Berichtete Qualitätsmängel (in Einzelfällen): ausgefranste Platinenfräsung, Lötstoplack hebt ab(nur bei Sn-Pb beschichtung, nicht bei Ni-Au).&lt;br /&gt;
* Fräsungen müssen extra bestellt werden! Aber trotzdem günstig&lt;br /&gt;
&lt;br /&gt;
==== CUBE CZ s.r.o. (Tschechische Republik) ====&lt;br /&gt;
Homepage http://www.cube.cz&lt;br /&gt;
&lt;br /&gt;
* kein Termineinhaltung bei Eilservice - Lieferung hat sich durch wiederholte DRC Checks (dauern jeweils einen Tag) und Vorauskassa statt Zahlungsziel 20 Tage wie auf der Rechnung angegeben von 4AT auf 10AT verzögert&lt;br /&gt;
* Keine Design Rules auf der Homepage verfügbar&lt;br /&gt;
* UL Zertifikat aus 2001 für nur 6 Mil Traces&lt;br /&gt;
* für Deutsche Verhältnisse günstig&lt;br /&gt;
&lt;br /&gt;
==== LNAFIN (Finnland) ====&lt;br /&gt;
Homepage: http://electronics-pcb.com &amp;amp;nbsp;=&amp;gt;&amp;amp;nbsp; https://www.lnafin.com  &amp;lt;br&amp;gt; &lt;br /&gt;
Produkte: http://electronics-pcb.com/shop &amp;lt;br&amp;gt;&lt;br /&gt;
mailto:pcb@lnafin.com&lt;br /&gt;
* PCB Vertrieb mit Mikrowellenbereich und Multilagig HDI Kompetenz&lt;br /&gt;
* Leiterplatten fuer Industrie und auch als Kleinserien (kein MOQ)&lt;br /&gt;
* Elektronik und Layout Design Hilfe (bitte siehe Produkte)&lt;br /&gt;
* Auch ASIC design und PCBA (14 ASIC Erfahrung)&lt;br /&gt;
* Sicher Service auf Deutsch&lt;br /&gt;
&lt;br /&gt;
==== PIU-Printex (Österreich) ====&lt;br /&gt;
Homepage http://www.piu-printex.at&lt;br /&gt;
* Bei größeren Mengen (&amp;gt; 20 Stück, einseitig, viele Bohrungen) günstig&lt;br /&gt;
* Bearbeitung innerhalb 6 AT&lt;br /&gt;
* Telefonische Kontaktaufnahme bei Rückfragen&lt;br /&gt;
* Ich war sehr positiv überrascht.&lt;br /&gt;
&lt;br /&gt;
==== PRIONIK (Österreich) ====&lt;br /&gt;
Homepage: noch in Arbeit &amp;lt;br&amp;gt;&lt;br /&gt;
mailto:office@prionik.at&lt;br /&gt;
* Erstellung von hochwertigen Folien/Filmen zum selberätzen&lt;br /&gt;
* 1,25 € / 1dm² Film, 2,50 € Mindestbestellwert (Stand September 2013)&lt;br /&gt;
* 2 € Porto Österreich (Stand September 2013)&lt;br /&gt;
* 4 € Porto Deutschland (Stand September 2013) &lt;br /&gt;
* Leiterplattenfertigung auf Anfrage&lt;br /&gt;
&lt;br /&gt;
==== Ragworm (GB) ====&lt;br /&gt;
Homepage http://www.ragworm.eu&lt;br /&gt;
* &amp;quot;All-inclusive&amp;quot;-Angebot mit:&lt;br /&gt;
:*orangenem Lötstopplack&lt;br /&gt;
:*weißem Bestückungsdruck&lt;br /&gt;
:*(beides beidseitig)&lt;br /&gt;
:*2-lagig&lt;br /&gt;
:*internationalem Versand (bei mir 2 Tage, Luftpolsterumschlag)&lt;br /&gt;
:*Fräsen/Trennen&lt;br /&gt;
:*Check der Gerber-Daten (innerhalb von ein paar Stunden bei mir)&lt;br /&gt;
* 10 Stück 5x5: je Stück(!) 8,53 Pfund (~ 10,00€ 23.07.16)&lt;br /&gt;
* Kleine Platinen sehr günstig&lt;br /&gt;
* Bearbeitung innerhalb von 10 AT&lt;br /&gt;
* sehr schneller und netter Mail-Kontakt&lt;br /&gt;
* gratis Geschenk (bei mir eine 7*9cm große Experimentierplatine + 2 Sticker)&lt;br /&gt;
* es wird ein unauffälliger, kleiner, süßer Wurm (der Ragworm) auf den Lötstopp hinzugefügt&lt;br /&gt;
* Versandkosten (für Mini-Platine): GBP 3, werden jedoch anfangs nicht ausgewiesen, erst später bei Paypal nachgefordert&lt;br /&gt;
&lt;br /&gt;
==== The PCB Shop (Belgien) ====&lt;br /&gt;
Homepage http://www.thepcbshop.com&lt;br /&gt;
* Für einfache Sachen&lt;br /&gt;
* Preisrechner funktioniert nur mit IE&lt;br /&gt;
Sind weg, URL macht Redirect zu https://www.eurocircuits.com/&lt;br /&gt;
&lt;br /&gt;
==== Vi&amp;amp;Rus International (Bulgarien) ====&lt;br /&gt;
Homepage: http://www.vrint-pcb.com&lt;br /&gt;
* 160x100 für Euro 58,- incl. Express-Versand&lt;br /&gt;
* 3 (!) Arbeitstage&lt;br /&gt;
* RoHS, ENIG&lt;br /&gt;
* 2 Lagen, durchkontaktiert&lt;br /&gt;
* Lötstop beideitig&lt;br /&gt;
* Bestückungsdruck&lt;br /&gt;
* E-Test&lt;br /&gt;
* incl. Vereinzelungen (gefräst)&lt;br /&gt;
* incl. Versand (1 AT), also am 4. AT geliefert&lt;br /&gt;
* Erstklassige Qualität, auch bei Fine-Pitch; schneller, freundlicher Support.&lt;br /&gt;
&lt;br /&gt;
==== SET - Steiner Elektronik Technologie (Bulgarien) ====&lt;br /&gt;
Homepage: http://www.setpcb.bg und http://setgmbh.de&lt;br /&gt;
* Werk in Bulgarien&lt;br /&gt;
* Leiterplatten und Bestückung&lt;br /&gt;
* Standardlieferzeit: 8AT&lt;br /&gt;
* Gute Qualität, schneller unkomplizierter Support (deutsch und englisch)&lt;br /&gt;
&lt;br /&gt;
==== Multi Circuit Boards Ltd. (GB) ====&lt;br /&gt;
Homepage: http://www.multi-circuit-boards.eu&lt;br /&gt;
* Versand erfolgt aus Deutschland, Herstellung in GB&lt;br /&gt;
* nur für Gewerbetreibende&lt;br /&gt;
* Eurokarte doppelseitig mit Lötstopplack, Bestückungsdruck und E-Test in 6AT:  68,54€ inkl. MwSt&lt;br /&gt;
* Online Kalkulator&lt;br /&gt;
&amp;lt;!-- (wurde von &amp;quot;ordentlich&amp;quot; auf &amp;quot;hervorragend&amp;quot; vom einem sehr zufriedenen Kunden umgeändert oder vom Anbieter? Anbieter finden ihre Produkte hoffentlich alle hervorragend. &amp;quot;Sehr gute Qualität&amp;quot; nun ohnehin schon unten) * hervoragende Qualität bei gutem Preis  * interessant für Serien; neuer günstiger Service für Prototypen --&amp;gt;&lt;br /&gt;
* farbiger Lötstopplack und Bestückungsdruck möglich&lt;br /&gt;
* 48 Stunden Express&lt;br /&gt;
* Kompletter Design-Rule-Check der CAM-Daten&lt;br /&gt;
* Diverse Spezialfertigungen (Flex, Starrflex, Metallkern, HF, hoch-Tg, etc.)&lt;br /&gt;
* Sehr gute Qualität&lt;br /&gt;
* Liefertermine werden gerne etwas überschritten (auch bei Eilservice)&lt;br /&gt;
* Standard 125µm und 5 AT&lt;br /&gt;
&lt;br /&gt;
==== Euro PCB Ltd. (GB) - obsolet ====&lt;br /&gt;
Homepage http://www.europcb.com&lt;br /&gt;
* Günstige Leiterplatten&lt;br /&gt;
* Schnelle Lieferung&lt;br /&gt;
* Qualitativ OK&lt;br /&gt;
12.02.2012: Webseite ist leer;&lt;br /&gt;
2015: Webseite verweist auf http://www.multi-circuit-boards.eu&lt;br /&gt;
&lt;br /&gt;
==== Top-Tec-PCB (GB) - obsolet ====&lt;br /&gt;
&#039;&#039;&#039;Geschäftsbetrieb eingestellt&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Homepage http://www.top-tec-pcb.com&lt;br /&gt;
* Günstig für Klein- bis Großserien&lt;br /&gt;
* Discount bei Nachbestellung&lt;br /&gt;
* sehr gute Technik (z.&amp;amp;nbsp;B. 100µm Bohren oder 75µm Leiterbahn)&lt;br /&gt;
* deutschsprechender Ansprechpartner&lt;br /&gt;
* liefern bleifreie Platinen (HAL, chem. Gold, Silber u. Zinn)&lt;br /&gt;
* 48h Eildienst&lt;br /&gt;
&lt;br /&gt;
==== OLIMEX Ltd. (Bulgarien) - obsolet ====&lt;br /&gt;
&#039;&#039;&#039;Zur Zeit keine PCB-Fertigung (07.01.2015, 3.2015)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Homepage http://www.olimex.com&lt;br /&gt;
&lt;br /&gt;
Habe mehrere Jahre bei Olimex meine Prototypen herstellen lassen. Stets saubere Arbeit erhalten. Bis ich denen mal falsche Gerber-Dateien zusandte. Als ich einige Stunden spaeter den Fehler bemerkt hatte, bat ich um Stornierung und Neuzusendung. Gegen ein zusaetzliches Entgelt wurde dies akzeptiert.&lt;br /&gt;
Die angesagten Zusatzkosten wurden zwar von mir nicht abgebucht, aber ich erhielt  1 Woche spaeter die anfaenglich falsch zugesandten PCB&#039;s.&lt;br /&gt;
Die Zusammenfassung des darauffolgenden Email-Verkehrs: Ein Schulterzucken seitens Olimex und die Bitte, eine neue, kostenpflichte Bestellung zu taetigen.&lt;br /&gt;
&lt;br /&gt;
=== USA ===&lt;br /&gt;
&lt;br /&gt;
==== OSH Park ====&lt;br /&gt;
Homepage: http://oshpark.com (USA)&lt;br /&gt;
* Vermittler und keine eigene Herstellung (&amp;quot;PCB pooling service&amp;quot;). Die Fertigung erfolgt in den USA.&lt;br /&gt;
* Ansicht der Platine nach Senden der Produktionsdaten und vor Bestellung.&lt;br /&gt;
* Nachfolger von BatchPCB.&lt;br /&gt;
* $5.00 pro Quadratzoll für drei Platinen inkl. Versand nach Deutschland. (2 Lagen, doppelseitiger Bestückungsdruck, Lila)&lt;br /&gt;
* An den Platinen sind noch Stege von der Fertigung, die sich allerdings gut entfernen lassen.&lt;br /&gt;
* Herstellung dauert meist ca. 1 Woche. &lt;br /&gt;
* Versand in der kostengünstigen Version nochmals ca. 2 Wochen. Schneller geht es mit Aufpreis.&lt;br /&gt;
* Auch Fertigung von 4 Layer und Kleinserien möglich.&lt;br /&gt;
* 2 Layer: Min. 0.15mm (6mil), Bohrung 0.33mm (13mil)&lt;br /&gt;
* 4 Layer: Min. 0.127mm (5mil), Bohrung 0.25mm (10mil)&lt;br /&gt;
* KiCad Dateien können direkt genutzt werden&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Erfahrungsbericht 2015-12&#039;&#039;&#039;&lt;br /&gt;
Hatte IS51 Platine als Eagle BRD Datei in Auftrag gegeben (100x80 2-Layer). Es werden immer 3 Stk. gefertigt.&lt;br /&gt;
Kosten ca. 60€ (aufgrund des aktuell fast 1:1 Kurses). Das ganze Bestellsystem auf der Webseite hat mit sehr gut gefallen. Vor der Bestellung bekommt man Ansichten der Platine (Top/Bottom/etc.) was grobe Fehler vermeiden sollte. Auch danach bekommt man per Mail Statuswechsel seiner Bestellung (in Arbeit; gefertigt; Versandstatus+Trackingnummer). Macht Alles einen wohldurchdachten und professionellen Eindruck!&lt;br /&gt;
Platinen kamen insgesamt nach ca. 2,5 Wochen (davon ca. 1 Woche Transport von USA nach DE+Zoll).&lt;br /&gt;
Die Platinen sehen sehr gut aus. Violetter Lötstoplack und vergoldete Pads. Qualität ist auch sehr gut.&lt;br /&gt;
Die Platinen hatten allerdings ein vom Layout verursachtes Problem. Es wurden SMD Widerstände verwendet, die&lt;br /&gt;
eine Ausfräsung im Milling-Layer hatten. Analyse wurde nach Ticketaufgabe durch OSHPark durchgeführt.&lt;br /&gt;
Dabei sehr nett, zügige Antworten und professionell. Obwohl der Fehler im Layout lag und nicht beim Fertiger,&lt;br /&gt;
wurde trotzdem eine Nachfertigung ohne Kosten auf Kulanzbasis durchgeführt!&lt;br /&gt;
&lt;br /&gt;
Also alles TOP! Nur mit der englischen Sprache sollte man gut zurecht kommen.&lt;br /&gt;
&lt;br /&gt;
==== PAD2PAD ====&lt;br /&gt;
Homepage http://www.pad2pad.com (USA)&lt;br /&gt;
* Bestücken die Platinen auch mit Digikey-Bauteilen.&lt;br /&gt;
&lt;br /&gt;
==== PCBPro ====&lt;br /&gt;
Homepage http://www.pcbpro.com (USA)&lt;br /&gt;
* Bei größeren Mengen (z.&amp;amp;nbsp;B. 100 Stück) sehr niedrige Preise&lt;br /&gt;
&lt;br /&gt;
==== San Francisco Circuits ====&lt;br /&gt;
Homepage https://www.sfcircuits.com (USA)&lt;br /&gt;
* Leiterplatten und Bestückung (Prototypen und Kleinserien, bis hin zur Großserie)&lt;br /&gt;
* Ohne Mindestgröße&lt;br /&gt;
* Flexible und &amp;quot;starr-flexible&amp;quot; Platinen&lt;br /&gt;
* [https://www.sfcircuits.com/pcb-production-capabilities/pcb-assembly PCB Assembly]&lt;br /&gt;
&lt;br /&gt;
=== China ===&lt;br /&gt;
&lt;br /&gt;
==== Fartai ====&lt;br /&gt;
Homepage http://www.fartai.de&amp;lt;br /&amp;gt;&lt;br /&gt;
* 2-20 Layer, Min. 0.15mm (6mil), Bohrer 0.2mm (8mil)&lt;br /&gt;
* Service in Deutschland&lt;br /&gt;
&lt;br /&gt;
==== CY industrial ====&lt;br /&gt;
Homepage http://www.cyindustrial.com/&amp;lt;br /&amp;gt;&lt;br /&gt;
Design rules http://www.cyindustrial.com/-ezp-26.html&lt;br /&gt;
&lt;br /&gt;
* 5 Stk. 10x10 cm, 2 Lagen: $45.00&lt;br /&gt;
* 1-24 Layer, Min. 0.075mm (3mil), Bohrer 0.1mm (4mil)&lt;br /&gt;
&lt;br /&gt;
==== dfrobot ====&lt;br /&gt;
Homepage http://www.dfrobot.com (China)&amp;lt;br /&amp;gt;&lt;br /&gt;
Design rules http://www.dfrobot.com/forum/viewtopic.php?f=13&amp;amp;t=1215#p6461&lt;br /&gt;
&lt;br /&gt;
* Mindestens 10Stk&lt;br /&gt;
* Größe in 5cm Preisrasterung&lt;br /&gt;
* 10Stk 5x5 cm 9.9USD =&amp;gt; 1USD/Stk&lt;br /&gt;
* 200Stk 5x5 cm 69.5USD =&amp;gt; 0.35USD/Stk&lt;br /&gt;
* 4 Lagig 10Stk 5x5 cm 64.90USD =&amp;gt; 6.49USD/Stk&lt;br /&gt;
* 2-4 Layer, Min. 0.15mm (6mil), Bohrer 0.3mm (12mil)&lt;br /&gt;
&lt;br /&gt;
==== Dirtypcbs ====&lt;br /&gt;
Homepage http://dirtypcbs.com (China)&amp;lt;br /&amp;gt;&lt;br /&gt;
Design rules http://dirtypcbs.com/about.php&lt;br /&gt;
&lt;br /&gt;
* Mindestens 5Stk&lt;br /&gt;
* 2 Layer ca. 10Stk  5x5  cm $14&lt;br /&gt;
* 2 Layer ca. 10Stk 10x10 cm $25&lt;br /&gt;
* 4 Layer ca. 10Stk  5x5  cm $30 (nur grün)&lt;br /&gt;
* 4 Layer ca. 10Stk 10x10 cm $50 (nur grün)&lt;br /&gt;
* Versand: kostenlos 8 Wochen, DHL 30$ 9 Tage&lt;br /&gt;
* Thread: https://www.mikrocontroller.net/topic/362576#4071490&lt;br /&gt;
* 2-4 Layer, Min. 0.127mm (5mil), Bohrer 0.3mm (12mil)&lt;br /&gt;
&lt;br /&gt;
==== EasyEDA ====&lt;br /&gt;
Homepage https://easyeda.com/&lt;br /&gt;
* 1-6 Layer, Min. 0.15mm (6mil), Bohrer 0.3mm (12mil)&lt;br /&gt;
&lt;br /&gt;
==== Elecrow ====&lt;br /&gt;
Homepage http://www.elecrow.com/services-c-73.html (China)&lt;br /&gt;
&lt;br /&gt;
Design rules https://www.elecrow.com/News/How_to_export_gerber_file_for_PCB_fabrication_at_Elecrow/&lt;br /&gt;
&lt;br /&gt;
* Mindestens 5Stk&lt;br /&gt;
* Andere Farben ohne Aufpreis&lt;br /&gt;
* Größe in 5cm Preisrasterung&lt;br /&gt;
* 2 Layer 5Stk  5x5   cm $4.9&lt;br /&gt;
* 2 Layer 10Stk 10x10 cm $9.50&lt;br /&gt;
* Nutzen sind möglich: http://www.elecrow.com/blog/pcb-panelize/&lt;br /&gt;
* Thread mit Bildern: https://www.mikrocontroller.net/topic/319266&lt;br /&gt;
* 1-4 Layer, Min. 0.15mm (6mil), Bohrer 0.3mm (12mil)&lt;br /&gt;
&lt;br /&gt;
==== Gold Phoenix ====&lt;br /&gt;
Homepage http://www.goldphoenixpcb.biz (VR China)&lt;br /&gt;
* 2-4 Layer, Min. 0.127mm (5mil), Bohrer 0.2mm (8mil)&lt;br /&gt;
&lt;br /&gt;
==== ITead Studio PCB prototyping service ====&lt;br /&gt;
Homepage http://iteadstudio.com/store/index.php?main_page=index&amp;amp;cPath=19_20 (VR China)&lt;br /&gt;
* Sehr günstige Leiterplatten&lt;br /&gt;
* Relativ günstige Lieferung&lt;br /&gt;
* 10 Stück mit jeweils 5x5cm für 9,90€&lt;br /&gt;
* Qulität relativ gut&lt;br /&gt;
* 100% E-Test&lt;br /&gt;
* Teilweise Probleme mit Gerberdateien, die knapp am Limit (6 mil) sind&lt;br /&gt;
* Testvideo: [http://www.eevblog.com/2011/03/11/eevblog-155-itead-studio-pcb-prototype-goof/ EEVBlog #155]&lt;br /&gt;
* 1-2 Layer, Min. 0.15mm (6mil), Bohrer 0.3mm (12mil)&lt;br /&gt;
&lt;br /&gt;
==== MakePCB ====&lt;br /&gt;
Homepage http://www.makepcb.com (Shanghai, VR China)&lt;br /&gt;
* 1-10 Layer, Min 0.2mm (8mil), Bohrer 0.3mm (12mil)&lt;br /&gt;
* Ich habe bei MakePCB Platinen geordert und als Zahlungsart Paypal angegeben. Die automatische Bestaetigung kam, es stand nochmal explizit drin dass ich Paypal als Zahlungsart gewaehlt habe und die Bemerkung, dass bei Zahlungsart Paypal in 2 Tagen eine Mail an die gleiche Adresse kaeme mit den Daten für Paypal. Naja, nach 4 Tagen war immernoch nichts da, ich habe denen eine Mail geschrieben und nochmal nach den &amp;quot;versprochenen&amp;quot; Paypaldaten gefragt. Drei Tage spaeter war immernoch nichts da, also habe ich die Bestellung abgebrochen. Am 8. Tag kam die Zahlungsforderung über Paypal, kein Wort der Erklaerung. Am 10. Tag kamen zwei identische Mails, die sagten man haette die PayPal-Zahlungsaufforderung schon geschickt. Irgendwas laeuft in dem Laden also schief.&lt;br /&gt;
* Weiterer Erfahrungsbericht zu MakePCB: Nach einiger Überlegung habe ich mich entschieden, es zu wagen, bei MakePCB Platinen zu bestellen. Meine Platine hatte halbes Euro-Format, aus Kostengründen habe ich gleich 5 Stück bestellt. Der gesamte Preis betrug ca. 45 €, Zahlung per PayPal funktionierte ohne Probleme. Auf der Internetseite von MakePCB wurde für die Produktion 14 Tage, für Shipment 10-14 Tage veranschlagt. Nach der Bestellung konnte ich den Status der Bestellung online in einer Tabelle einsehen. Nach etwas mehr als den veranschlagten 4 Wochen kamen heute die Platinen am. Die Verpackung wirkte nicht sehr professionell (gepolsterter Umschlag, auf den mit Filzstift meine Anschrift geschrieben war), nach dem Aufreissen des Umschlags hielt ich ein mehrfach mit gepolsterter Folie und Klebeband umklebtes Päckchen in der Hand. Erst als ich die Folie entfernt hatte kam eine professionell mit Luftpolsterfolie verschweisste Packung zum Vorschein. Die Platinen sehen, so weit ich bisher beurteilen kann, gut aus, lediglich der Bestückungsdruck ist ein wenig versetzt. Ein kurzer exemplarischer Test mit dem Multimeter sah auch in Ordnung aus. Alles in allem macht das Angebot, insbesondere zu dem Preis, einen echt guten Eindruck. Ich kann es nur empfehlen.&lt;br /&gt;
&lt;br /&gt;
==== OurPCB ====&lt;br /&gt;
(Hinweis: Eintrag wurde durch einen Mitarbeiter der Firma angelegt.)&lt;br /&gt;
&lt;br /&gt;
Homepage [https://www.ourpcb.com/user/login https://www.ourpcb.com/]&lt;br /&gt;
* Für 1-4 Lagen PCB-Prototypen kann der Kunde nach Erhalt bezahlen.&lt;br /&gt;
* Lagen: 1-32&lt;br /&gt;
* Endkupferdicke: 0.5 … 5oz/ft² (17 … 175 µm)&lt;br /&gt;
* Min. Leiterbahnbreite: 3mil. / 150 µm&lt;br /&gt;
* Min. Leiterbahnabstand: 3mil. / 150 µm&lt;br /&gt;
* Platinenstärke (Endwert): 0.2 … 5.0mm&lt;br /&gt;
* Min. Enddurchmesser der durchkontaktierten Bohrung: 0,2 mm.&lt;br /&gt;
&lt;br /&gt;
==== PCBCart ====&lt;br /&gt;
Homepage http://www.pcbcart.com (China)&lt;br /&gt;
* auch kompliziertere Designs&lt;br /&gt;
* schnell und zuverlässig&lt;br /&gt;
* Eurokarte doppelseitig mit Lötstopp beidseitig und Bestückungsdruck kostet 60€ ohne MwSt +15€ Versand&lt;br /&gt;
* 2Stück 64€ ohne MwSt +15€ Versand&lt;br /&gt;
* 10Stück 90€ ohne MwSt +15€ Versand&lt;br /&gt;
* Eurokarte einseitig ohne Lötstopp und ohne Bestückungsdruck kosten 10Stück 71€ ohne MwSt +19€ Versand&lt;br /&gt;
* Preiskalkulation inzwischen auch ohne Anmeldung (18.12.2015)&lt;br /&gt;
* Update 30.5.2016:&lt;br /&gt;
** Minimum 5 Stück&lt;br /&gt;
** 5 Eurokarten doppelseitig mit Lötstopp beidseitig und Bestückungsdruck kosten $52.00 + Versand&lt;br /&gt;
** 10 Stück $76.00 + Versand&lt;br /&gt;
* 1-20 Layer, Min 0.06mm (2.36mil), Bohrer 0.2mm (8mil)&lt;br /&gt;
&lt;br /&gt;
==== PCBJoint ====&lt;br /&gt;
Homepage http://pcbjoint.com/&lt;br /&gt;
* 1-12 Layer, Min 0.075mm (3mil), Bohrer 0.1mm (4mil)&lt;br /&gt;
&lt;br /&gt;
==== PCBWay ====&lt;br /&gt;
Homepage [http://www.pcbway.com/setinvite.aspx?inviteid=4203 http://www.pcbway.com/]&lt;br /&gt;
* 1-10 Layer, Min. 0.1mm (4mil), Bohrer 0.2mm (8mil)&lt;br /&gt;
* 5 Stück Minimum&lt;br /&gt;
* 5 Eurokarten mit 2 Layern, Lötstopp usw., 6mil mit 0.3mm Löchern kosten 34 + 25 DHL = 59 us$&lt;br /&gt;
&lt;br /&gt;
==== Seeed ====&lt;br /&gt;
Homepage http://www.seeedstudio.com (China)&lt;br /&gt;
* Mindestens 10Stk&lt;br /&gt;
* Größe in 5cm Preisrasterung&lt;br /&gt;
* 10Stk 5x5 cm 9.9USD =&amp;gt; 1USD/Stk&lt;br /&gt;
* 4 Lagig  5Stk 5x5 cm 39.90USD =&amp;gt; 8USD/Stk&lt;br /&gt;
* 4 Lagig 10Stk 5x5 cm 49.90USD =&amp;gt; 5USD/Stk&lt;br /&gt;
* Blaue, weiße, rote, gelbe, schwarze platinen für 10USD Aufpreis&lt;br /&gt;
* Überproduktion wird mit geliefert, bei einer 2cmx1cm Platine wurden 24Stk anstatt 10Stk geliefert.&lt;br /&gt;
* Kostenloser Standardversand bei Bestellungen über 50USD&lt;br /&gt;
* 1-4 Layer, Min. 0.15mm (6mil), Bohrer 0.3mm (12mil)&lt;br /&gt;
&lt;br /&gt;
==== ShenZhen2u ====&lt;br /&gt;
Homepage http://www.shenzhen2u.com (China)&lt;br /&gt;
* Mindestens 10Stk&lt;br /&gt;
* Auch 6 lagige boards&lt;br /&gt;
* Größe in 5cm Preisrasterung&lt;br /&gt;
* Maximal 30x30cm&lt;br /&gt;
* 10Stk 5x5 cm 8.9 USD =&amp;gt; 0.9 USD/Stk&lt;br /&gt;
* 2 Lagig 500Stk 5x5 cm 139 USD =&amp;gt; 0.27 USD/Stk&lt;br /&gt;
* 4 Lagig 10Stk 5x5 cm 33 USD =&amp;gt; 3.3 USD/Stk&lt;br /&gt;
* 1-6 Layer, Min. 0.15mm (6mil), Bohrer 0.3mm (12mil)&lt;br /&gt;
* Dieser Eintrag wurde [http://www.mikrocontroller.net/articles/Spezial:Beitr%C3%A4ge/Shenzhen2u vom Hersteller] selbst erstellt.&lt;br /&gt;
&lt;br /&gt;
Anmerkung: sehr günstige Preise, dafür hohe Versandkosten (&amp;quot;Swiss Post&amp;quot; 27 USD, keine kostenlose Versandoption)&lt;br /&gt;
&lt;br /&gt;
==== Smart Prototyping ====&lt;br /&gt;
Homepage: http://smart-prototyping.com (China)&lt;br /&gt;
* Mindestens 10Stk&lt;br /&gt;
* Größe in 5cm Preisrasterung&lt;br /&gt;
* Auch 6 lagige boards&lt;br /&gt;
* Maximal 40x40cm&lt;br /&gt;
* 10Stk 5x5 cm 8.9USD =&amp;gt; 0.9USD/Stk&lt;br /&gt;
* 500Stk 5x5 cm 132.92USD =&amp;gt; 0.27USD/Stk&lt;br /&gt;
* 4 Lagig 10Stk 5x5 cm 39.9USD =&amp;gt; 4USD/Stk&lt;br /&gt;
* 6 Lagig 10Stk 5x5 cm 239.9USD =&amp;gt; 24USD/Stk&lt;br /&gt;
* Lieferzeit ca. 10 Tage (Standardversand mit der Deutschen Post nach DE)&lt;br /&gt;
* Schnellere Bearbeitung bei Aufpreis möglich&lt;br /&gt;
* Eagle *.brd Dateien werden akzeptiert&lt;br /&gt;
* Design Rules für Eagle von der Homepage ladbar&lt;br /&gt;
* Problemloser und schneller Kontakt per Mail (englisch)&lt;br /&gt;
* 1-6 Layer, Min. 0.15mm (6mil), Bohrer 0.3mm (12mil)&lt;br /&gt;
&lt;br /&gt;
==== WellPCB====&lt;br /&gt;
Homepage [https://www.wellpcb.com/user/login https://www.wellpcb.com/]&lt;br /&gt;
* 5 Stück Minimum&lt;br /&gt;
* Die Berechnung basiert auf folgendem Standard SPEC: Fertigungsstandard: IPC-Ⅱ, FR4-TG140,1-12 Schicht,Spurbreite / Raum: ≥4 / 4mils; Lochgröße ≥0,2mm, Plattendicke ≤1.6mm&lt;br /&gt;
&lt;br /&gt;
== Preisvergleichstabellen (Stand Februar 2010) ==&lt;br /&gt;
&lt;br /&gt;
Preise für 1, 2 Europlatinen (160x100), FR4 1.6mm, HAL bleifrei, 150µm Leiter, 0.3mm Bohren, doppelseitig, 8AT, kein Bestückungsdruck, inkl. MwSt, ohne Versand.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;5&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;text-align:center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;text-align:left&amp;quot; |Hersteller !!Preis (€) 1x !!Preis (€) 2x&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:left&amp;quot; colspan=&amp;quot;3&amp;quot; |&#039;&#039;ohne Lötstopp, ohne E-Test&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:left&amp;quot; |&#039;&#039;&#039;Basista Leiterplatten&#039;&#039;&#039;|| 43,66 || 81,61&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:left&amp;quot; |&#039;&#039;&#039;Fischer Leiterplatten GmbH&#039;&#039;&#039; (10AT, immer mit LS.+E-T.)|| 46,41 || 73,07&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:left&amp;quot; |&#039;&#039;&#039;HAKA Elektronik-Leiterplatten GmbH&#039;&#039;&#039;|| 64,54 || 106,13&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:left&amp;quot; |&#039;&#039;&#039;LEITON&#039;&#039;&#039;|| 54,98 || 104,51&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:left&amp;quot; |&#039;&#039;&#039;MME-Leiterplatten&#039;&#039;&#039; (200µm Leiter)|| 41,44 || ?&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:left&amp;quot; |&#039;&#039;&#039;PCB Pool&#039;&#039;&#039;|| 50,27 || 100,54&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:left&amp;quot; |&#039;&#039;&#039;Q-print/Q-PCB&#039;&#039;&#039;|| 55,62 || 95,89&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:left&amp;quot; colspan=&amp;quot;3&amp;quot; |&#039;&#039;mit Lötstopp, mit E-Test&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:left&amp;quot; |&#039;&#039;&#039;Basista Leiterplatten&#039;&#039;&#039;|| 77,66 || 115,61&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:left&amp;quot; |&#039;&#039;&#039;Fischer Leiterplatten GmbH&#039;&#039;&#039; (10AT)|| 46,41 || 73,07&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:left&amp;quot; |&#039;&#039;&#039;LEITON&#039;&#039;&#039;|| 88,79 || 147,39&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:left&amp;quot; |&#039;&#039;&#039;Multi PCB Ltd. Leiterplatten&#039;&#039;&#039; (6AT)|| 78,06 || 156,13&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:left&amp;quot; |&#039;&#039;&#039;M &amp;amp; V Leiterplatten - Vertriebs GmbH&#039;&#039;&#039;|| 62,83 || 125,66 &lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:left&amp;quot; |&#039;&#039;&#039;Onlineshop WEdirekt&#039;&#039;&#039;|| 128,75 || 172,38&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Preise für 1, 2, 10 Europlatinen (160x100), FR4 1.6mm, HAL bleifrei, 150µm Leiter, 0.3mm Bohren, doppelseitig, 8AT, 1x Bestückungsdruck, 2x Lötstopp, E-Test, inkl. MwSt, ohne Versand.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;5&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;text-align:center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Hersteller !! Preis (€) 1x !!Preis (€) 2x !!Preis (€) 10x !! Nachbest. (€) 10x&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:left&amp;quot; colspan=&amp;quot;5&amp;quot; |&#039;&#039;mit Lötstopp, mit Bestückungsdruck, mit E-Test&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:left&amp;quot; |&#039;&#039;&#039;Fischer Leiterplatten GmbH&#039;&#039;&#039; (10AT)|| 58,31 || 84,97 || 337,72 || 219,91 &lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:left&amp;quot; |&#039;&#039;&#039;HAKA Elektronik-Leiterplatten GmbH&#039;&#039;&#039;|| 82,54 || 124,13 || 302,08 || 284,08 &lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:left&amp;quot; |&#039;&#039;&#039;LEITON&#039;&#039;&#039;|| 124,37 || 187,15 || 389,84 || x &lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:left&amp;quot; |&#039;&#039;&#039;Multi PCB Ltd. Leiterplatten&#039;&#039;&#039;|| 78,06 || 156,13 || 272,27 || 180,64&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:left&amp;quot; |&#039;&#039;&#039;M &amp;amp; V Leiterplatten - Vertriebs GmbH&#039;&#039;&#039;|| 110,43 || 173,26 || ? || ? &lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:left&amp;quot; |&#039;&#039;&#039;PCB Pool&#039;&#039;&#039;|| 122,29 || 129,26 || 407,58 || x &lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:left&amp;quot; |&#039;&#039;&#039;Q-print/Q-PCB&#039;&#039;&#039;|| 96,80 || 166,90 || 834,48 || x &lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:left&amp;quot; |&#039;&#039;&#039;Onlineshop WEdirekt&#039;&#039;&#039;|| 145,18 || 190,64 || 379,49 || x&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Kleinmengen ==&lt;br /&gt;
&lt;br /&gt;
Sollen nur wenige und/oder sehr kleine Platinen gefertigt werden,&lt;br /&gt;
verschieben sich sehr oft die Relationen.  Viele Fertiger haben auch&lt;br /&gt;
beim Pooling eine Mindestgröße, unter der der Preis nicht weiter&lt;br /&gt;
sinkt.  Die preiswerten Anbieter aus China wiederum bieten ihren&lt;br /&gt;
Service (unter anderem) dadurch recht preiswert an, dass sie in&lt;br /&gt;
starren Größen oder Größenrastern (bspw. Vielfache von 5 cm) und&lt;br /&gt;
Stückzahlen (5- oder 10-Stück-weise) arbeiten, außerdem kommt ein&lt;br /&gt;
vergleichsweise langer Versandweg hinzu.&lt;br /&gt;
&lt;br /&gt;
Für sehr wenige oder sehr kleine Platinen sind besonders die folgenden&lt;br /&gt;
Fertiger gut geeignet:&lt;br /&gt;
&lt;br /&gt;
* [[Platinenhersteller#AISLER|Aisler]] (Niederlande, Fertigung in Deutschland)&lt;br /&gt;
* [[Platinenhersteller#OSH_Park|Osh Park]] (USA)&lt;br /&gt;
* [[Platinenhersteller#Ragworm_.28GB.29|Ragworm]] (GB)&lt;br /&gt;
&lt;br /&gt;
Aisler und Osh Park fertigen dabei in Vielfachen von drei Stück, bei&lt;br /&gt;
Ragworm kann man auch komplette Einzelstücke fertigen lassen.  Alle&lt;br /&gt;
drei Anbieter skalieren auch mit kleinen Platinengrößen nach unten.&lt;br /&gt;
&lt;br /&gt;
== Lohnbestücker - Kleinserien ==&lt;br /&gt;
&lt;br /&gt;
=== Schweiz ===&lt;br /&gt;
&lt;br /&gt;
==== BLS-Electronics ====&lt;br /&gt;
Homepage: https://blselectronics.ch&lt;br /&gt;
&lt;br /&gt;
Mail: mailto:info@blselectronics.ch&lt;br /&gt;
* Prototypen und Kleinserien, grössere Stückzahlen auf Anfrage möglich&lt;br /&gt;
* BGA, QFN, TQPF, Fine Pitch, SMD bis 0402, THT&lt;br /&gt;
* &#039;&#039;&#039;Unkompliziert und Preisgünstig&#039;&#039;&#039;&lt;br /&gt;
* 3-5 Tage nach Eingang aller Bauteile wird versendet. &lt;br /&gt;
* Ingenieurverein und Fertigung in einem Haus: bei technischen Rückfragen stehen auch Entwickler zur Verfügung&lt;br /&gt;
* Materialbeschaffung möglich.&lt;br /&gt;
* Bestückung ab 1 Stück. &lt;br /&gt;
* Standort: Schweiz, Zug&lt;br /&gt;
&lt;br /&gt;
=== Deutschland ===&lt;br /&gt;
&lt;br /&gt;
==== PCB Pool ====&lt;br /&gt;
Homepage: http://www.pcb-pool.com/ppde/info_pcb_assembling.html&lt;br /&gt;
* Prototyp &amp;amp; Kleinserien, Größere Stückzahlen auf Anfrage&lt;br /&gt;
* SMD bis 0402, THT&lt;br /&gt;
* 5 Tage ab Eingang aller Bauteile &lt;br /&gt;
* Produktionsstandort: ??&lt;br /&gt;
&lt;br /&gt;
==== D-E-K Dischereit GmbH &amp;amp; Co. KG ====&lt;br /&gt;
Homepage: http://www.dischereit.de&lt;br /&gt;
* Prototyp, Kleinserien, Serie&lt;br /&gt;
* SMD bis 0402, THT&lt;br /&gt;
* Bauteilbeschaffung&lt;br /&gt;
* Standort: Ascheberg, Coesfeld, Deutschland&lt;br /&gt;
&lt;br /&gt;
==== kessler systems GmbH ====&lt;br /&gt;
Homepage: http://www.kesslersystems.de&lt;br /&gt;
* SMD bis 0201, THT&lt;br /&gt;
* BGAs&lt;br /&gt;
* macht auch Großserien&lt;br /&gt;
* 5 Tage ab Eingang aller Bauteile, Express möglich&lt;br /&gt;
* Standort: Königseggwald nähe Ravensburg, Deutschland&lt;br /&gt;
&lt;br /&gt;
==== Kugel-Elektronik ====&lt;br /&gt;
Homepage: http://www.kugel-elektronik.de&lt;br /&gt;
* Prototyp, Kleinserien, Serie&lt;br /&gt;
* SMD bis 0402, THT&lt;br /&gt;
* Bauteilbeschaffung&lt;br /&gt;
* Standort: Wickede (Ruhr), Deutschland&lt;br /&gt;
&lt;br /&gt;
==== enktro GmbH &amp;amp; Co. KG (ehemals =&amp;gt; PBS-Electronic) ====&lt;br /&gt;
Homepage: http://enktro.de (ehemals pbs-electronic.de, nur Umfirmierung)&lt;br /&gt;
* Prototyp, Kleinserien, Serie&lt;br /&gt;
* BGA, QFN, TQPF, Fine Pitch, SMD bis 0402, THT&lt;br /&gt;
* Einzel IC Bestückung möglich&lt;br /&gt;
* Spezialist für LED Technik&lt;br /&gt;
* Standort: Arnsberg, Hochsauerland, Deutschland&lt;br /&gt;
&lt;br /&gt;
==== riese electronic GmbH ====&lt;br /&gt;
Homepage: http://www.riese-electronic.de&lt;br /&gt;
* SMD bis 0201, THT&lt;br /&gt;
* BGAs inkl Röntgen&lt;br /&gt;
* macht auch Großserien&lt;br /&gt;
* 5 Tage ab Eingang aller Bauteile, Express möglich&lt;br /&gt;
* Standort: Horb am Neckar, Deutschland&lt;br /&gt;
&lt;br /&gt;
==== Gardow Engineering ====&lt;br /&gt;
Homepage: http://www.gardow-engineering.de&lt;br /&gt;
* SMD ab 0201, THT, THR, Mischbestückung, BGA Bestückung &lt;br /&gt;
* ab 1 Stück bis zur Serie&lt;br /&gt;
* Frontplattenfertigung &lt;br /&gt;
* Materialbeschaffung, Lieferzeiten zwischen 1-6AT, niedrige Einmalkosten&lt;br /&gt;
* Onlinekalkulator zur schnellen Kostenermittlung &lt;br /&gt;
* http://www.gardow-engineering.de/leiterplattenbestückung/onlinekalkulation.html&lt;br /&gt;
* Standort: Nordheim bei Heilbronn, Deutschland&lt;br /&gt;
&lt;br /&gt;
==== M.Richter GmbH&amp;amp;Co.&amp;amp;KG ====&lt;br /&gt;
Homepage: http://www.richter-pforzheim.de&lt;br /&gt;
* SMD ab0201, THT, THR, Mischbestückung&lt;br /&gt;
* ab 1 Stück bis zur mittleren Serie&lt;br /&gt;
* Wickeln von Sonderspulen und Kabelkonfektion &lt;br /&gt;
* Materialbeschaffung, Schnelldienste möglich&lt;br /&gt;
* Standort: Pforzheim, Deutschland&lt;br /&gt;
&lt;br /&gt;
==== SYSTART GmbH ====&lt;br /&gt;
Homepage: http://www.systart.de&lt;br /&gt;
* Online-Kalkulator für Prototypen- und Kleinserienbestückung: http://www.systart.de/prototypen-kalkulator&lt;br /&gt;
* Größere Stückzahlen auf Anfrage&lt;br /&gt;
* 4 Tage ab Eingang aller Bauteile&lt;br /&gt;
* Günstige Einmalkosten&lt;br /&gt;
* SMD- und THT-Bestückung, beidseitig&lt;br /&gt;
* Gerätemontage&lt;br /&gt;
* Materialbeschaffung (falls gewünscht)&lt;br /&gt;
* Ingenieurbüro und Fertigung in einem Haus: bei technischen Rückfragen stehen auch Entwickler zur Verfügung&lt;br /&gt;
* Standort: Emmering bei München&lt;br /&gt;
&lt;br /&gt;
==== Traffitec ====&lt;br /&gt;
Homepage: http://www.traffitec.de&lt;br /&gt;
* Bestückt Prototypen, Kleinserien, Normalserien&lt;br /&gt;
* In THT, SMD und gemischt.&lt;br /&gt;
* und von allen Seiten&lt;br /&gt;
* Einpresstechnik&lt;br /&gt;
* Starrflex&lt;br /&gt;
* Komponentenbau&lt;br /&gt;
* Standort: [http://www.openstreetmap.de/karte.html?zoom=17&amp;amp;lat=51.6904&amp;amp;lon=6.14378&amp;amp;layers=B000TT Goch nähe Moers, Deutschland]&lt;br /&gt;
&lt;br /&gt;
==== VTS Elektronik GmbH ====&lt;br /&gt;
Homepage: http://www.vts-elektronik.de&lt;br /&gt;
* SMD bis 0402, BGA, THT auch gemischt und beidseitig&lt;br /&gt;
* Dampfphasenlöten&lt;br /&gt;
* Prototyp, Kleinserien, Serie&lt;br /&gt;
* Komplette Materialbeschaffung&lt;br /&gt;
* Schnell und flexibel&lt;br /&gt;
* Standort: Fürstenau nähe Osnarbrück, Deutschland&lt;br /&gt;
&lt;br /&gt;
==== JL-Elektronik ====&lt;br /&gt;
Homepage: http://www.jl-elektronik.de&amp;lt;br /&amp;gt;&lt;br /&gt;
mailto:info@jl-elektronik.de&lt;br /&gt;
* Prototyp, Kleinserien&lt;br /&gt;
* ab 1 Stück&lt;br /&gt;
* SMD bis 0402, THT, gemischt und beidseitig&lt;br /&gt;
* Keine Rüstkosten&lt;br /&gt;
* Express 24/48 Stunden möglich&lt;br /&gt;
* Baugruppen Rework&lt;br /&gt;
* Gerätemontage&lt;br /&gt;
* Standort: Rheinland Pfalz, Deutschland&lt;br /&gt;
&lt;br /&gt;
==== Nover Elektronik GmbH ====&lt;br /&gt;
Homepage: https://www.nover-elektronik.de&lt;br /&gt;
* Ab 1 Stück bis zur Serie&lt;br /&gt;
* SMD-Bestückung bis 0201, BGA, THT-Bestückung auch gemischt und beidseitig&lt;br /&gt;
* 5-10AT ab Eingang aller Bauteile, Express möglich&lt;br /&gt;
* Komplette Materialbeschaffung möglich&lt;br /&gt;
* Günstige Einmalkosten&lt;br /&gt;
* Standorte: Seligenstadt und Dreieich, in der nähe von Frankfurt am Main, Deutschland&lt;br /&gt;
&lt;br /&gt;
==== HELL ELECTRONIC e.K. ====&lt;br /&gt;
Homepage: http://www.hell-electronic.de&lt;br /&gt;
* Prototypen, Kleinserien&lt;br /&gt;
* SMD bis 0402, THT, auch gemischt und beidseitig&lt;br /&gt;
* Günstige Einmalkosten&lt;br /&gt;
* Schnell und Flexibel&lt;br /&gt;
* Kabelkonfektion&lt;br /&gt;
* Gerätemontagen&lt;br /&gt;
* Standort: Geretsried, Deutschland&lt;br /&gt;
&lt;br /&gt;
=== International ===&lt;br /&gt;
&lt;br /&gt;
==== Kaufmann Automotive GmbH ====&lt;br /&gt;
Homepage: http://www.kaufmann-automotive.ch&lt;br /&gt;
* SMD bis 0201, THT&lt;br /&gt;
* BGA, QFN, TQFP, Fine Pitch, SMD bis 0402&lt;br /&gt;
* Prototyp, Kleinserien, Serie&lt;br /&gt;
* Komplette Materialbeschaffung&lt;br /&gt;
* Standort: Eichberg nähe Bregenz, Schweiz&lt;br /&gt;
&lt;br /&gt;
==== Profiants ====&lt;br /&gt;
Homepage: http://www.ProfiAnts.com&lt;br /&gt;
* SMD bis 0201, THT&lt;br /&gt;
* ab 1 Stück&lt;br /&gt;
* macht auch Großserien&lt;br /&gt;
* Komplette Materialbeschaffung&lt;br /&gt;
* 5 Tage ab Eingang aller Bauteile&lt;br /&gt;
* Standort: Bulgarien&lt;br /&gt;
&lt;br /&gt;
==== REDER Domotic GmbH ====&lt;br /&gt;
Homepage: http://reder.eu&lt;br /&gt;
* Prototypen, Kleinserie, Serie&lt;br /&gt;
* THT, SMD ab 0201 Baugröße&lt;br /&gt;
* Komplette Materialbeschaffung&lt;br /&gt;
* Prototypen über Nacht möglich&lt;br /&gt;
* riesen Vorteil: der Mann an der Maschine ist selbst Entwickler&lt;br /&gt;
* Standort: Berndorf, Österreich&lt;br /&gt;
&lt;br /&gt;
== Siehe auch ==&lt;br /&gt;
* [http://www.cadsoft.de/services/board-houses/?language=de Übersicht von Cadsoft, sortiert nach PLZ]&lt;br /&gt;
* [http://www.mikrocontroller.net/topic/245590 Forum: Platinensammler - Leiterkarten für 30ct/cm²]&lt;br /&gt;
* [http://www.elektroniknet.de/anbieterkompass/produktuebersicht/?tx_wmvs_pi1%5Bid%5D=1130 Übersichtsseite von www.elektroniknet.de]&lt;br /&gt;
* [[Elektronikversender]]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Platinen]]&lt;br /&gt;
[[Kategorie:Lieferanten]]&lt;br /&gt;
[[Kategorie:Listen]]&lt;/div&gt;</summary>
		<author><name>Frankman</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=CNC&amp;diff=87440</id>
		<title>CNC</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=CNC&amp;diff=87440"/>
		<updated>2015-02-18T17:19:21Z</updated>

		<summary type="html">&lt;p&gt;Frankman: Eigenwerbung aus Artikel entfernt&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;&#039;&#039;Diese Seite befindet sich in der Aufbauphase! Vollständiger Inhalt und Struktur sind noch nicht festgelegt!&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Was ist CNC? ==&lt;br /&gt;
Mit CNC (Computerized Numerical Control; übersetzt „computerisierte numerische Steuerung“) ist die Steuerung von Herstellungsmaschinen durch Computer gemeint. Im allgemeinen steuern PCs mit entsprechender Software über eine Schnittstelle die produzierende Maschine.&lt;br /&gt;
&lt;br /&gt;
Dabei kann es sich um Fräs-, Dreh-, Schneid-, und ähnliche Maschinen handeln.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Hersteller von CNC-(Fräs-)Maschinen für Kleinteile ==&lt;br /&gt;
&lt;br /&gt;
*[https://www.stepcraft-systems.com/ Stepcraft Systems]&lt;br /&gt;
*[http://www.easgmbh.de/ EAS CNC Maschinen]&lt;br /&gt;
*[http://www.isel-germany.de/ isel Germany AG]&lt;br /&gt;
*[http://www.colinbus.com/ Colinbus] - &#039;&#039;bekannt als Hersteller des [http://www.elektor.de/projekte/frasmaschine-profiler.83264.lynkx Profiler&#039;s] von Elektor&#039;&#039;&lt;br /&gt;
*[http://www.bzt-cnc.de/ BZT CNC Fräsmaschinen und Graviermaschinen]&lt;br /&gt;
*[http://www.grummes.de/ Grummes Elektronik] - &#039;&#039;Angebot scheinbar nicht mehr verfügbar, die Seite enthält nur noch ein Imressum&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Lieferanten]]&lt;/div&gt;</summary>
		<author><name>Frankman</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=Reflow_Ofen_Steuerung&amp;diff=86107</id>
		<title>Reflow Ofen Steuerung</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=Reflow_Ofen_Steuerung&amp;diff=86107"/>
		<updated>2014-12-07T12:42:33Z</updated>

		<summary type="html">&lt;p&gt;Frankman: /* Verbesserungen Prototyp - Diese haben jedoch keinen Einfluss auf die Funktion der Leiterplatte */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Datei:Teilbest2.jpg|750px|teilbestückte Platine]]&lt;br /&gt;
[[Datei:RFB.jpg|thumb|right|200px|Altium 3D Ansicht]]&lt;br /&gt;
[[Datei:pcb.png|thumb|right|200px|Fertige Reflow-Ofen-Steuerung]]&lt;br /&gt;
[[Datei:reflow_controller_front.jpg|thumb|right|200px|Controller im RM2055M Gehäuse (front)]]&lt;br /&gt;
[[Datei:reflow_controller_back.jpg|thumb|right|200px|Controller im RM2055M Gehäuse (back)]]&lt;br /&gt;
[[Datei:Reflow_pid_test2.png|thumb|right|200px|Test des PID Reglers]]&lt;br /&gt;
== Einleitung ==&lt;br /&gt;
&lt;br /&gt;
Hier wird eine weitere Reflow-Ofen-Steuerung beschrieben.&lt;br /&gt;
=== Zum Nachbauen ===&lt;br /&gt;
* Spezifikation: [[Datei: Spec Reflow.pdf]]&lt;br /&gt;
* Schaltplan: &lt;br /&gt;
** Minimalversion [[Datei:Schematic Prints Minimal.pdf]]&lt;br /&gt;
** Standardversion [[Datei:Schematic Prints Standard.pdf]]&lt;br /&gt;
** Deluxeversion [[Datei:Schematic Prints Deluxe.pdf]]&lt;br /&gt;
** Debugversion [[Datei:Schematic Prints Debug.pdf]]&lt;br /&gt;
* Gerberdaten: [[Datei:Gerber Reflow.pdf]]&lt;br /&gt;
* Assemblydrawing: [[Datei:Assembly Reflow.pdf]] &lt;br /&gt;
* Altium-Files: [[Datei:Reflow.zip]]&lt;br /&gt;
* Stückliste als CSV: [[Datei:Reflow.csv]]&lt;br /&gt;
* Stückliste als Open Office: [[Datei:Reflow.ods]]&lt;br /&gt;
* PC Programm: TBD&lt;br /&gt;
* Sourcen PC-Programm: TBD&lt;br /&gt;
* PIC Programm (*.hex): [http://sourceforge.net/projects/reflowofensteue/ ]&lt;br /&gt;
* Sourcen Pic-Programm: [http://sourceforge.net/projects/reflowofensteue/ ]&lt;br /&gt;
* Step-File Steckdose:[[Datei:Steckdose.stp]]&lt;br /&gt;
&lt;br /&gt;
=== Motivation ===&lt;br /&gt;
Die Gründe, eine weitere Steuerung zu entwerfen, waren:&lt;br /&gt;
&lt;br /&gt;
* Die Möglichkeit, auch größere Öfen mit 2 Phasen betreiben zu können.&lt;br /&gt;
* Die Steuerung universell zu gestalten. Es sollte möglich sein, diese nicht nur zum Reflow löten zu verwenden....z.B:&lt;br /&gt;
** Temperatursteuerung für Klimakammer (Heizen, Kühlen)&lt;br /&gt;
** Dimmer mit USB&lt;br /&gt;
** Temperaturregler für ein Tisch-Fondue ( Temperatur halten)&lt;br /&gt;
** Drehzahlsteller mit USB&lt;br /&gt;
** Switchpack&lt;br /&gt;
* Die Schaltung sollte in Altium entwickelt werden. (Warum kein Eagle??? Altium User wissen es.... :-)&lt;br /&gt;
* Die Schaltung sollte mit USB ausgestattet sein.&lt;br /&gt;
&lt;br /&gt;
=== Eigenschaften &amp;amp; Spezifikationen ===&lt;br /&gt;
* Temperaturmessung: bis zu 2x &#039;&#039;&#039;Thermoelement&#039;&#039;&#039; (K-Typ) mit MAX6675 (abgekündigt) oder Nachfolger MAX31855 (pin- aber nicht softwarekompatibel)&lt;br /&gt;
* Leistungsstufen: &#039;&#039;&#039;3 voneinander unabhängige&#039;&#039;&#039; Triacs 800V 25A, limitiert auf &#039;&#039;&#039;10A @ 250VAC&#039;&#039;&#039; (z.B. Oberhitze, Unterhitze, Umluft)&lt;br /&gt;
* Nulldurchgangserkennung ermöglicht Wellenpaket-, und Phasenanschnittsteuerung * Galvanische Trennung der Leistungsendstufen&lt;br /&gt;
* 1x MOSFET-Ausgang PWM z.B. für 12V Lüfter, max. &#039;&#039;&#039;55V 3,5A&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;4 feste Programme&#039;&#039;&#039; im EEPROM über 2-Tasterbedienung und LEDs wähl- und ausführbar. &lt;br /&gt;
* &#039;&#039;&#039;PC-unabhängiger Betrieb&#039;&#039;&#039; möglich. &lt;br /&gt;
* Beliebig viele Programme möglich, bei Betrieb am Computer &lt;br /&gt;
* Mini-USB-Buchse zur Steuerung / Programmierung über GUI und zum Entwickeln. - Dafür ist &#039;&#039;&#039;keine Netzspannung&#039;&#039;&#039; erforderlich&lt;br /&gt;
* Günstiges passendes Gehäuse&lt;br /&gt;
* Alle LEDs und Taster auf &#039;&#039;&#039;Stiftleisten&#039;&#039;&#039; herausgeführt, für eigene Gestaltung der Frontblenden&lt;br /&gt;
* PID-Temperaturregler&lt;br /&gt;
* UART, SPI, I2C und 2x ADC auf Stiftleisten herausgeführt, für zukünftige &#039;&#039;&#039;Erweiterungen&#039;&#039;&#039;&lt;br /&gt;
* Versorgung über USB &amp;lt; 100mA, interne Versorgungsspannung 3,3V&lt;br /&gt;
* umfangreiche EMV-gerechte Entstörung für den Bedarfsfall&lt;br /&gt;
&lt;br /&gt;
=== Zusätzliches Benötigtes Material ===&lt;br /&gt;
* Leiterplatte (1 Stück)&lt;br /&gt;
* Gehäuse Hammond Teilenummer: RM2055L (1 Stück)&lt;br /&gt;
* Alternativ:Gehäuse Hammond Teilenummer: RM2055M (Wenn keine Steckdosen angebracht werden sollen)&lt;br /&gt;
* Alternative: Gehäuse Hammond (Hier muss man die Leiterplatte selber befestigen) Teilenummer: 1455T2201 (1 Stück)&lt;br /&gt;
* Einbausteckdosen Teilenummer: PEC 105 (2-3 Stück, je nach Ausbaustufe)&lt;br /&gt;
* PG-Verschraubung (2-3 Stück)&lt;br /&gt;
* Mutter für PG-Verschraubung (2 Stück)&lt;br /&gt;
* Litze blau, mindestens 1,5mm² (ca. 60cm)&lt;br /&gt;
* Litze braun, mindestens 1,5mm² (ca. 60cm) &lt;br /&gt;
* Litze gelb/grün, mindestens 1,5mm² (ca. 60cm)&lt;br /&gt;
* Aderendhülsen  mit Schutzkragen dazu ( 9 Stück für die Steckdosen)&lt;br /&gt;
* Schrauben, um die Leiterplatte zu befestigen (4 Stück)&lt;br /&gt;
* evtl. Abstandsbolzen dazu, falls das alternative Gehäuse verwendet wird (4 Stück)&lt;br /&gt;
* evtl. Muttern dazu, falls das alternative Gehäuse verwendet wird (4 Stück)&lt;br /&gt;
* Schrauben, Senkkopf DIN 7991 oder DIN 965 M4 X 10 um die Steckdosen zu befestigen (12 Stück)&lt;br /&gt;
* Muttern dazu M4 (12 Stück)&lt;br /&gt;
* Federschreiben  dazu DIN 127 M4 (12 Stück)&lt;br /&gt;
* Glimmerscheiben für Triac (2-3 Stück, je nach Ausbaustufe)&lt;br /&gt;
* Isoliernippel für Triacmontage (2-3 Stück, je nach Ausbaustufe)&lt;br /&gt;
* Zylinderkopfschraube M3 X 12 für Triacmontage (2-3 Stück, je nach Ausbaustufe)&lt;br /&gt;
* Mutter M3 für Triacmontage (2-3 Stück, je nach Ausbaustufe)&lt;br /&gt;
* Beilagscheibe M3 für Triacmontage (2-3 Stück, je nach Ausbaustufe)&lt;br /&gt;
* Isolierband für Triacmontage (ca. 300mm)&lt;br /&gt;
* Gummifüße für das Gehäuse (4 Stück)&lt;br /&gt;
&lt;br /&gt;
=== Kühlkörpermontage===&lt;br /&gt;
[[Datei:kuehlkoerper.jpg|thumb|right|200px|Montagedetail Kühlkörper]]&lt;br /&gt;
* Der Kühlköper sollte 38mm hoch sein, so passt er gut in die angegebenen Gehäuse&lt;br /&gt;
* Der Kühlkörper &amp;lt;span style=&amp;quot;color:red;&amp;quot;&amp;gt;MUSS isoliert montiert werden, also Glimmerscheibe und Isoliernippel einsetzen und NACHMESSEN, ob der Kühlkörper auch wirklich keinen Kontakt zum Triac hat!&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:red;&amp;quot;&amp;gt;Da die 230-V-Leiterbahnen nur durch den Stopplack vom Kühlkörper getrennt sind, sollte die Isolation mit zwei Lagen Gewebe- oder Isolierband verstärkt werden. Das Isolierband kann auf die Leiterplatte oder unter den Kühlkörper geklebt werden.&amp;lt;/span&amp;gt;&lt;br /&gt;
* Als Bohrungsmaß empfehle ich 20mm über der Leiterplatte.&lt;br /&gt;
* Entweder Bohrung 3,2mm für Durchgangsloch für den Triac.&lt;br /&gt;
* Oder Bohrung 2,5mm mit M3-Gewinde für den Triac schneiden.&lt;br /&gt;
* Die Kühlkörper selbst können mit Stiften erworben werden, die man in die Leiterplatte lötet. Oder Alternativ Bohrungen auf 2,7mm aufbohren und mit Zylinderkopfschraube M2,5 x 8 befestigen.&lt;br /&gt;
&lt;br /&gt;
== Schaltung==&lt;br /&gt;
=== PIC18LF2550 Grundbeschaltung ===&lt;br /&gt;
[[Datei:osc_vs_vcc.png|thumb|right|200px|Taktraten und Versorgungsspannung PIC18F2550 vs. PIC18LF2550, Datenblatt S. 370/438]]&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 3/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Hier kommt ein PIC18&#039;&#039;&#039;L&#039;&#039;&#039;F2550 zum Einsatz. Er verfügt über eine USB-Schnittstelle und ist für Betriebsspannungen von 2 ... 5,5V ausgelegt. Sein Verwandter PIC18F2550 (ohne L) ist nicht für Betriebsspannungen &amp;lt; 4,2V ausgelegt. Dies ist bei USB sowieso nicht immer erfüllt und die Thermoelement-ICs vertragen ohnehin keine 5V, daher wurde die Betriebsspannung auf 3,3V reduziert. Neben Standard-Decoupling (100nF Kerko pro Vcc-Vss-Pärchen) wurde das ICSP-Interface in alt bewährter Pinbelegung (PICKit1,2,3) angebracht. PGD und PGC sind nicht weiter beschaltet, MCRL wird , wie immer als Resetpin verwendet. Der Resetschalter findet sich auf dem Top-Sheet (Schaltplan S. 1/22). Die Taktversorgung erfolgt über einen 24 MHz Quarz (-&amp;gt; USB). Man beachte diesbezüglich rechts stehende Grafik zu Taktraten und Versorgungsspannungen (Vdd bzw. auch Vcc genannt). Auch zu finden im Datenblatt des PICs auf Seite 370.&lt;br /&gt;
&lt;br /&gt;
=== PIC18LF2550 USB Beschaltung ===&lt;br /&gt;
[[Datei:usb_part.png|thumb|right|200px|PIC18(L)F2550&lt;br /&gt;
 Standard &lt;br /&gt;
USB-Beschaltung am PIC]]&lt;br /&gt;
[[Datei:usb_protect.png|thumb|right|200px|USB-Schutzbeschaltung und Mini-USB-Buchse]]&lt;br /&gt;
&lt;br /&gt;
Die Beschaltung der USB-Schnittstelle am PIC ist 1:1 aus dem Datenblatt übernommen. Zum Einsatz kommt eine Mini-USB-Buchse (J1).&lt;br /&gt;
Der Gedanke war: Erstens ein sehr preiswertes, fertiges Netzteil verwenden zu können, (ca. 3,67 € bei druckerzubehoer.de) und zweitens, die Steuerung auch mit dem PC / Laptop versorgen zu können.&lt;br /&gt;
Somit kann die Schaltung OHNE 230V betrieben und debuggt werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 4/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
FER1,2 und C7 filtern den Schirm nach GND. Standardmäßig wird man hier wohl 0-Ohm-Widerstände einsetzen. Falls ein Besuch im EMV-Labor geplant ist, weicht man auf den Ferrit aus. C5 und C6 filtern das Signal zusammen mit der Common-Mode-DrosselL1. Die Drossel kann mit den 0-Ohm-Brücken R8 und R9 überbrückt (gespart) werden. IC2 ist als ESD-Schutz gedacht und kann ebenfalls bei ausgeprägten Kostenbewustsein gespart werden. Die Widerstände R6 und R7 dürfen NICHT bestückt werden. FER1,2, C5, IC2 müssen nicht zwingend bestückt werden. Die Bestückung wurde vorgehalten um im Problemfall einfache Abhilfe schaffen zu können.&lt;br /&gt;
&lt;br /&gt;
=== 3,3V Spannungsversorgung ===&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 2/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Die 3,3V Versorgungsspannung für die gesamte Platine wird aus V_USB mittels des LDO Spannungsreglers TOREX - XC6206P332MR abgeleitet. Günstig, SOT-23, klein, 2x 1µF Kondensatoren benötigt, 3,3V max. 250mA. Der hat auch einen sehr kleinen Ruhestrom.&lt;br /&gt;
&lt;br /&gt;
=== Taster ===&lt;br /&gt;
*Der Resettaster zieht den MCLR-Pin nach GND und löst damit den Reset aus. MCLR  ist mit einem 10k Pullup versehen.&lt;br /&gt;
*Die übrigen beiden Taster ziehen RA4 bzw. RB5 ebenfalls nach GND.&lt;br /&gt;
&lt;br /&gt;
=== LEDs + ULN2003L ===&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 11/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Um alle LEDs auf der Platine (3x Optotriac + 7x Status) ansteuern zu können wurde auf das 7fach Darlington-Array ULN2003L zurückgegriffen. Die PIC-Ausgänge könnten zwar die LEDs direkt steueren. Aber so werden alle Ausgänge einheitlich nach Masse geschaltet. Das verbessert die Testbarkeit der ganzen Platine. ( Mit einem kurzen Masse-Draht kann zur Not der entsprechende Ausgang gesetzt werden, ohne etwas zu zerstören.)&lt;br /&gt;
&lt;br /&gt;
=== MOSFET-Leistungsausgang ===&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 22/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Hier kommt der einfacher N-Kanal MOSFET (LogicLevel) PHT8N06LT zum Einsatz. Er wird über das ULN2003L Array getrieben und ermöglicht den Anschluss eines DC-Verbrauchers mit max. 55V bei 3,5A. Hier könnte beispielsweise ein PC-Lüfter zur Kühlung oder für Umluft angeschlossen und über PWM geregelt/gesteuert werden. Ein Gatewiderstand von 100 Ohm ist zum Schutz des Treibers vorgesehen. Eine 0-Ohm-Brücke ist stattdessen aber auch möglich, wenn man eine höhere Leistung schalten möchte.Die Leiterbahnen sollten die 3A schon hergeben. Der 100 Ohm Widerstand bildet eine Stromquelle. Sobald der Strom durch den MOSFET und den Widerstand 33mA erreicht, sinkt UGS gegen 0 V. Folge: Der Mosfet sperrt ( und bleibt ganz....)&lt;br /&gt;
Es kann hier prinzipiell auch ein anderer Mosfet im SOT223-Gehäuse zum Einsatz kommen. Achten sollte man darauf, das der MOSFET schon bei 3,3V Ugs gut leiten sollte.&lt;br /&gt;
&lt;br /&gt;
=== Nulldurchgangserkennung ===&lt;br /&gt;
[[Datei:zerocross.png|thumb|right|200px|Nulldurchgangserkennung]]&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 5/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Die Nulldurchgangserkennung erfolgt nach einer sehr bekannten - jedoch ausgeklügelten - Schaltung.  [http://www.dextrel.net/diyzerocrosser.htm siehe: Dextrel]&lt;br /&gt;
Während einer Halbwelle wird C14 über R33 und R35 bzw. D5 geladen. Währenddessen ist T1 gesperrt. Sobald die Wechselspannung (L1-N über Spannungsteiler (R33+R35) / R34) kleiner ist als die Spannung über C14, steuert T1 durch. Dann entlädt sich C14 über den LED-Vorwiderstand R32. Der durch-steuernde Optokoppler zieht die Sync-Leitung nach GND. (Pullup Sync-Leitung = R31). Dies löst beim PIC auf INT2 einen Interrupt aus. &lt;br /&gt;
Dieser Interrupt ermöglicht eine präzise Wellenpaket-, Phasenanschnittsteuerung je nach Bedarf. Das Schalten im Nulldurchgang bei der Wellenpaketsteuerung reduziert EMV-Störungen. Für Phasenanschnitt ist ohnehin eine Nulldurchgangserkennung notwendig. Außerdem liefert sie eine genaue Zeitbasis für alle Programmabläufe.&lt;br /&gt;
&lt;br /&gt;
=== Triac-Ausgänge + Snubber ===&lt;br /&gt;
[[Datei:triac.png|thumb|right|200px|Triac-Ausgangsbeschaltung]]&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 19,20,21/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Die Ansteuerung des eigentlichen Leistungstriacs BTA140-800 erfolgt über den Optotriac IS6005. Der Strom durch Letzteren wird durch R1x limitiert (Vorwiderstand). R2x und R5x limitieren wiederum den Strom durch den Optotriac. Wenn dieser zündet so folgt unmittelbar der &amp;quot;Leistungstriac&amp;quot; der dann die Last schaltet.&lt;br /&gt;
&lt;br /&gt;
S1x ist ein Sicherungshalter um die Lasten einzeln absichern zu können. Wert 10A Mittelträge.&lt;br /&gt;
&lt;br /&gt;
R3x, R4x, C3x bilden ein Snubber-Network, L1X verhindert eine zu schnelle Stromanstiegsgeschwindikeit damit der Triac nicht &amp;quot;von selbst&amp;quot; zündet. Weglassen äußert sich meist in einem fast nicht hörbaren Click. Damit zeigt einem dann der Triac, dass er ab jetzt für immer recht niederohmig geworden ist. Die Regelung der Temperatur braucht dann nicht mehr über den Prozessor erfolgen, sondern nur noch mit dem Ein-/Ausschalter..... :-)&lt;br /&gt;
&lt;br /&gt;
=== Thermoelemente (MAX6675/MAX31855)  ===&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 6,7/22&#039;&#039;&#039;&lt;br /&gt;
Der inzwischen abgekündigte MAX6675 bzw. sein ehrenwerter Nachfolger MAX31855 sind einfach zu handhabende Thermoelement-ICs mit Kaltstellenkompensation. Thermoelemente funktionieren durch das Verschweißen zweier verschiedener Legierungen (beim K-Typ Thermoelemnt Ni und CrNi). Durch den durch die Umgebungstemperatur bedingten Wärmefluss zwischen beiden entsteht ein elektrische Spannung. Diese wird von besagten ICs verstärkt und digitalisiert (ADC). Diese Spannung / Temperatur ist natürlich wieder relativ zur Umgebungstemperatur an der Kaltstelle (Kontaktierung der beiden Drähte mit dem Messinstrument). Daher messen diese ICs auch gleich die Umgebungstemperatur (Kaltstellenkompensation genannt) mit, verrechnen das und geben das Ergebnis auf der SPI-Schnittstelle aus. MAX6675 leistet 12bit also 0,25°C Auflösung (nicht Genauigkeit!) über einen Temperaturbereich von 0°C to +1024°C. Außerdem wird ein nicht/fehlerhaft angeschlossenes Thermoelement erkannt. Der Thermocouple-IC wird an die SPI-Schnittstelle des PICs angeschlossen (hier MSSP genannt). &lt;br /&gt;
&lt;br /&gt;
MAX6675 und MAX31855 scheinen entgegen der Adafruit-Information [http://www.adafruit.com/products/269] doch pinkompatibel zu sein - die Ansteuerung unterscheidet sich jedoch definitiv. (Zitat: &amp;quot;Now uses the MAX31855K instead of the MAX6675, so it can measure a wider temperature measurement range. Please note! the MAX31855 is not pin compatible or drop-in code compatible with the MAX6675. We do have an Arduino library for both chips but you&#039;ll need to adjust any existing MAX6675 designs for the mew MAX31855. The MAX6675 has been discontinued by Maxim.&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Es wurden 2 dieser ICs und damit 2 Temperaturmessstellen vorgesehen. Dies ermöglich die Messung für eine Regelung der Temperatur so wie eine zusätzliche Überwachung kritischer Bauteile (z.B. ICs oder LEDs). Die Minimalbestückung sieht einen MAX6675/MAX31855 vor. Die Auswahl in der Firmware erfolgt über einen der beiden GPIO-Pins RA5 oder RA0 via dem ChipSelect (CS) des MAX6675/MAX31855.&lt;br /&gt;
&lt;br /&gt;
Neben dem MAX6675/MAX31855 wurde ein Decoupling-Kondensator (C8x, Standard 100nF) so wie ein weiterer im Messpfad (C9x) zur Zwecken der Entstörung vorgeshen. C9x 100nF sollte nur bestückt werden wenn Probleme bei der Temperaturmessung entstehen (z.B. unrealstisch stark schwankende Werte).&lt;br /&gt;
&lt;br /&gt;
=== ADC, SPI, UART &amp;amp; I2C Stiftleiste ===&lt;br /&gt;
ADC, SPI, UART und I2C sind zu Zwecken der Kalibrierung / Erweiterung / Einstellung / Debugging auf Stiftleisten herausgeführt:&lt;br /&gt;
Ähnlichkeiten mit dem FTDI-USB-TTL-Kabel bzw. Arduino XXX Bla Bla Bla Schnittstellenkonverter sind natürlich rein zufällig.&lt;br /&gt;
&lt;br /&gt;
Die I2C-Schnittstelle wurde auf eine Stiftleiste geführt, um z.B. einem LM75 o.ä. anschließen zu können. Damit stehen zur Kalibrierung der Thermoelemente genaue Temperaturen zur Verfügung.&lt;br /&gt;
&lt;br /&gt;
Die Stiftleisten haben alle ein Raster von 2,54mm. So können Pin-Header, Wannenstecker oder ähnliches verwendet werden.&lt;br /&gt;
&lt;br /&gt;
Da ja viele Leute eigene Vorstellungen bezüglich der Frontplattengestaltung haben, wurden auch die Taster und LEDs auf Stiftleisten geführt.&lt;br /&gt;
&lt;br /&gt;
=== Kühlkörper ===&lt;br /&gt;
Da die Triacs der Steuerung für bis zu 10A pro Kanal ausgelegt sind, kann man auf die Kühlkörper nicht verzichten. Es fallen bei 10A bis zu 13 Watt Wärme pro Triac ab. Falls mann auf die Kühlkörper doch verzichten möchte, sollte man darauf achten, die Triacs mit dem Kopf nach unten einzubauen. Diese können sich dann bei Überlast ganz von selber auslöten.... :-)&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red;&amp;quot;&amp;gt; Die Triacs müssen mit Glimmerscheibe und Isoliernippel -ALSO ISOLIERT ZUM KÜHLKÖRPER- montiert werden.&lt;br /&gt;
Außerdem muss unter dem Kühlkörper ein Stück Isolierband oder FR4 oder Nylon-Scheiben beigelegt werden, um zu verhindern, dass der Stopplack der Leiterplatte beschädigt wird. In diesem Falle hätte man Potential auf dem Kühlkörper.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Gehäuse ===&lt;br /&gt;
Die Leiterplatte wurde für ein Gehäuse von Hammond entwickelt.&lt;br /&gt;
Das Gehäuse ist zwar keine Schönheit, aber doch recht preiswert.&lt;br /&gt;
Typenbezeichnung: RM2055M oder etwas größer RM2055L&lt;br /&gt;
&lt;br /&gt;
== Firmware PIC ==&lt;br /&gt;
* Die Entwicklung der Firmware für den PIC18LF2550  erfolgt mit MPLABX und dem C18 Compiler. &lt;br /&gt;
* MPLABX ist kostenlos, der C18 Compiler bis auf die stärkste Optimierungsstufe ebenfalls. &lt;br /&gt;
* Die Quellen für die Firmware sind offengelegt und können von Sourceforge bezogen werden, siehe Links, weiter unten.&lt;br /&gt;
&lt;br /&gt;
=== Zuordnung Outputs ===&lt;br /&gt;
&lt;br /&gt;
*In1 = RC2 = PIN13 = ULN5--&amp;gt;12 = OUT1 = PWM &lt;br /&gt;
*In2 = RB3 = PIN24 = ULN6--&amp;gt;11 = OUT2 = TRIAC_A (1) = K5&lt;br /&gt;
*In3 = RB4 = PIN25 = ULN7--&amp;gt;10 = OUT3 = TRIAC_B (2)= K2&lt;br /&gt;
*In4 = RA2 = PIN4  = ULN4--&amp;gt;13 = OUT4 = LED_PRG1 = OPTO D&lt;br /&gt;
*In5 = RC0 = PIN11 = ULN3--&amp;gt;14 = OUT6 = LED_PRG2 = OPTO F&lt;br /&gt;
*In6 = RC1 = PIN12 = ULN2--&amp;gt;15 = OUT7 = LED_PRG3 = OPTO G&lt;br /&gt;
*In7 = RA3 = PIN5  = ULN1--&amp;gt;16 = OUT5 = LED_PRG4 = OPT= E&lt;br /&gt;
&lt;br /&gt;
TRIAC1 ist nahe dem Zerocross&lt;br /&gt;
&lt;br /&gt;
== Ofen / Pizzaofen ==&lt;br /&gt;
=== Leistung und Volumen ===&lt;br /&gt;
* Alls Faustformel wird oft 100W pro Liter Volumen genannt.&lt;br /&gt;
* Ich habe einen sehr preiswerten Ofen gewählt und die &amp;quot;Oberhitze&amp;quot; zusätzlich mit zwei Halogen-Stäben a 300W &amp;quot;verstärkt. Das kostet nicht viel, die Fassung ist für ca. 3 Euro erhältlich, die Halogenstäbe gibt es in jedem Baumarkt. &lt;br /&gt;
* Bezugsquelle Fassung : siehe &amp;quot;Links&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Dämmung ===&lt;br /&gt;
=== Umluft ===&lt;br /&gt;
* Der verwendete Ofen sollte eine Umluftfunktion besitzen, damit sich die Wärme gleichmäßig im Ofen und auf der Leiterplatte verteilen kann.&lt;br /&gt;
&lt;br /&gt;
* Der Umluftbetrieb hat jedoch zur Folge, dass natürlich auch etwas Wärme wieder von der Leiterplatte weggepustet wird. Wenn man nur kleine Leiterplatten hat, kann es von Vorteil sein, diese ohne Umluft zu löten.&lt;br /&gt;
&lt;br /&gt;
== FAQ ==&lt;br /&gt;
&lt;br /&gt;
* Q1: Ich habe einen PT100/PT1000 und möchte den anschließen. Geht das?&lt;br /&gt;
** A1: Ja natürlich. Dazu ist aber etwas externe Elektronik notwendig. Sowohl 2 ADC-Pins (mit 3V3 Betriebsspannung als fixe Referenzspannung), als auch die UART und SPI/I2C-Schnittstelle stehen zur freien Verfügung. Für PT100/PT1000 wird für vernünftige Messungen ohnehin eine Verstärkung (meist mit OPV) von Nöten sein. Da der PIC-interne ADC &amp;quot;nur&amp;quot; 10bit Auflösung bietet sollte ein externer 16bit ADC in Betracht gezogen werden um das Potential der PT100/PT1000 auszunutzen.&lt;br /&gt;
*Q2: Ich habe von günstigen Temperaturmessungen mit Dioden gehört. Geht das auch hier?&lt;br /&gt;
**A2: Ja. Die Vorwärtsspannung einer Diode verhält sich linear zur Sperrschichttemperatur. Diese Spannung (bei 25°C einer Si-Diode die bekannten 0,7V) kann mittels OPV verstärkt werden und auf einen Spannungsbereich von 0 ... 3V3 aufgebläht werden. Eine billige Lösung, auf Kosten der Genauigkeit. Doch eine Diode ist laut Datenblatt nur bis 150°C geeignet. Es ist also beim Löten mehr oder weniger Pfusch. Wenn ich schon eine Reflow-Steuerung baue, sollte ich doch nicht an ein paar Euro für eine gescheite Temperaturmessung sparen. Einige Anregungen vom Messgerätehersteller Keithley bzgl. der Halbleiterphysik mit interessanten Formeln [http://www.keithley.de/support/data?asset=50486]. Oder natürlich der Klassiker von Thomas Pfeifer [http://thomaspfeifer.net/backofen_smd_reflow.htm]. Oder ein Beitrag mit LT-Spice Simulation zum Thema [http://www.mikrocontroller.net/topic/270627#2833883].&lt;br /&gt;
* Q3: God why ... ?&lt;br /&gt;
** A3: Because we can !&lt;br /&gt;
* Q4: Ich hab aber noch nie was mit 230V gemacht.&lt;br /&gt;
**A4: Dann würde ich an Deiner Stelle dieses Projekt NICHT nachbauen.&lt;br /&gt;
* Q5: Warum wurde Altium verwendet und nicht Eagle?&lt;br /&gt;
**A5: Weil es uns kostenlos zur Verfügung stand und wesentlich leistungsfähiger ist. Es ist aber möglich, die Altium-Daten in ein ASCII-Format zu wandeln, welches auch von Eagle geöffnet werden kann - Auf Anfrage...&lt;br /&gt;
&lt;br /&gt;
=Installation USB Treiber=&lt;br /&gt;
Hier mal eine Anleitung, wie der Windows Treiber (z. B. unter Win7) - &lt;br /&gt;
für den in der Firmware verwendeten M-Stack - installiert wird.&lt;br /&gt;
&lt;br /&gt;
1. Unter www.github.com/signal11/m-stack/blob/master/apps/cdc_acm/inf/ &lt;br /&gt;
die Dateie cdc-acm.inf runter laden.&lt;br /&gt;
&lt;br /&gt;
2. USB der Controller-Hardware am PC anstecken. Im Gerätemanager muss &lt;br /&gt;
jetzt unter &amp;quot;Andere Geräte&amp;quot; der Eintrag &amp;quot;USB CDC Test&amp;quot; angezeigt werden.&lt;br /&gt;
&lt;br /&gt;
3. Auf diesem Eintrag &amp;quot;USB CDC Test&amp;quot; im Gerätemanager mit der rechten &lt;br /&gt;
Maustaste klicken und &amp;quot;Treibersoftware aktualisieren&amp;quot; auswählen.&lt;br /&gt;
&lt;br /&gt;
4. Dann den zweiten Punkt (&amp;quot;Auf dem Computer nach Treibersoftware &lt;br /&gt;
suchen&amp;quot;) auswählen.&lt;br /&gt;
&lt;br /&gt;
5. &amp;quot;Durchsuchen&amp;quot; wählen und das Verzeichnis auswählen, in dem sich die &lt;br /&gt;
heruntergeladene Datei cdc-acm.inf befindet.&lt;br /&gt;
&lt;br /&gt;
6. Der Treiber wird nun installiert und danach sollte eine &lt;br /&gt;
Erfolgsmeldung kommen.&lt;br /&gt;
&lt;br /&gt;
7. Im Erfolgsfall wird im Gerätemanager unter &amp;quot;Anschlüsse (COM,...)...&amp;quot; &lt;br /&gt;
z. B.&amp;quot;M-Stack CDS Demo (COM5)&amp;quot; angezeigt.&lt;br /&gt;
&lt;br /&gt;
= Verbesserungen Prototyp - Diese haben jedoch keinen Einfluss auf die Funktion der Leiterplatte=&lt;br /&gt;
&#039;&#039;&#039;Wird in V1.1 gefixt&#039;&#039;&#039;&lt;br /&gt;
* Bauteile weiter weg von den Schraublöchern.--&amp;gt; gefixt&lt;br /&gt;
* Dazu Kreis rund um Bohrung auf Bestückdruck.--&amp;gt; gefixt&lt;br /&gt;
* Masseanbindung Quarz.--&amp;gt; gefixt&lt;br /&gt;
* Klemmen weiter weg vom Rand.--&amp;gt; gefixt&lt;br /&gt;
* Klemme und Sicherungshalter weiter auseinander.--&amp;gt; gefixt&lt;br /&gt;
* Bohrungen für Drossel 0,2mm größer machen.--&amp;gt; gefixt&lt;br /&gt;
* Teilenummer für Conrad-USB-Buchse in BOM übernehmen.&lt;br /&gt;
* Stiftleiste P1  weiter weg von P2 und P4.--&amp;gt; gefixt&lt;br /&gt;
* Varistoren näher an Klemmen platzieren.--&amp;gt; gefixt&lt;br /&gt;
* THT-Kondensatoren für Snubber.--&amp;gt; gefixt&lt;br /&gt;
* Ggf. Stiftleistenbelegung für externe Leds so ändern, das keine extra Vorwiderstände notwendig sind.--&amp;gt; gefixt&lt;br /&gt;
* Befestigungsbohrung für Drossel, um diese mit Kabelbinderung oder Schraube fixieren zu können.--&amp;gt; gefixt&lt;br /&gt;
* Pullup-Widerstand bei MCLR doppelt. --&amp;gt; gefixt&lt;br /&gt;
* Power-LED vorsehen.--&amp;gt; gefixt&lt;br /&gt;
* Leiterbahnen etwas weiter weg von den Kühlkörperanschlüssen--&amp;gt; gefixt&lt;br /&gt;
* Designatoren Texte etwas größer machen.&lt;br /&gt;
* Ein vernünftiger GND-Punkt für einen Tastkopf / Messungen / Aligator-Clips vorsehen.--&amp;gt; Ist schon da, an fast jeder Stiftleiste&lt;br /&gt;
* Spannungsversorgung doch Onboard? Oder beides?--&amp;gt; erstmal nicht&lt;br /&gt;
* Leds 90 Grad, Frontplattenmontage--&amp;gt; gefixt&lt;br /&gt;
* Taster 90 Grad Frontplattenmontage--&amp;gt; gefixt&lt;br /&gt;
* Termoelemente Frontplattenmontage??? Termoelementstecker?--&amp;gt; Wird nicht gemacht&lt;br /&gt;
* Schaltausgang 230 V kleiner, weniger Leistungsfähig.--&amp;gt; Wird nicht gemacht&lt;br /&gt;
&lt;br /&gt;
= Errata Projekt =&lt;br /&gt;
&#039;&#039;&#039;Wird in V1.1 gefixt&#039;&#039;&#039;&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:red;&amp;quot;&amp;gt; Triac Symbol in Library falsch, dadurch ist T2 mit T1 vertauscht. Abhilfe für Leiterplattenversion V1.0: T1 und T2 &amp;quot;twisten&amp;quot; und jeweils mit Schrumpfschlauch versehen.( Also Beinchen T1 über kreuz mit Beinchen T2 einlöten...)&amp;lt;/span&amp;gt;&lt;br /&gt;
* Beim MOSFET R39 ist die Masseanbindung falsch. Es bestehen drei Möglichkeiten:&lt;br /&gt;
** 1. 0-R-Brücke für R39 einbauen und auf Strombegrenzung verzichten.&lt;br /&gt;
** 2. Eine Polyfuse mit Bauform 1206 einbauen. &lt;br /&gt;
** 3. Das kleine Leiterbahnstückchen zwischen R38 und R39 unterbrechen und statt dessen die Leiterbahn zwischen R39 und der Klemme mit der Durchkontaktierung bei R38 verbinden.&lt;br /&gt;
* LED-Beschriftung passt nicht ganz (Schaltplan Netlabel OUT1,2,3,4 sind durcheinander gekommen) --&amp;gt; Ist im Prinzip ohne Belang, man muss das nur bei der Software berücksichtigen.&lt;br /&gt;
* Schaltplan UNL2003 fehlerhafte Zuordnung IN5,6,7 &amp;lt;&amp;gt; OUT7,6,5 --&amp;gt; Ist im Prinzip ohne Belang, man muss das nur bei der Software berücksichtigen.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* Diskussion: [http://www.mikrocontroller.net/topic/297217 Diskussion]&lt;br /&gt;
* Software: [http://sourceforge.net/projects/ratcos/ Bei Sourceforge]&lt;br /&gt;
* Dextrel Nulldurchgang: [http://www.dextrel.net/diyzerocrosser.htm Nulldurchgangschaltung]&lt;br /&gt;
* Gehäuse Zeichnung: [http://www.hammondmfg.com/pdf/RM2055L.pdf Großes Gehäuse für Steckdosenmontage]&lt;br /&gt;
* Gehäuse Zeichnung: [http://www.hammondmfg.com/pdf/RM2055M.pdf Kleines Gehäuse, keine Steckdosen]&lt;br /&gt;
* Bezugsquelle [http://www.soselectronic.com/?str=371&amp;amp;artnum=73596&amp;amp;name=hammond-ritec-rm2055l Großes Gehäuse Hammond]&lt;br /&gt;
* Bezugsquelle [http://www.soselectronic.com/?str=371&amp;amp;artnum=73595&amp;amp;name=hammond-ritec-rm2055m Kleines Gehäuse Hammond]&lt;br /&gt;
* Bezugsquelle [http://www.druckerzubehoer.de/shop/product/catid/H-UNIVERSALZUBEHOER_HZB/subcatid/UNIVERSALZUBEHOER_GROUP1_HZB/productid/1727063-390722LA/site/1/lng/de_DE Netzteil Mini USB ]&lt;br /&gt;
* Bezugsquelle [http://www.ebay.de/itm/151037292125?ssPageName=STRK:MEWNX:IT&amp;amp;_trksid=p3984.m1497.l2649 Termoelement Ebay (Typ K für ca. 2Euro)]&lt;br /&gt;
* Bezugsquelle [http://www.artcase-shop.de/index.php?page=search&amp;amp;page_action=query&amp;amp;desc=on&amp;amp;sdesc=on&amp;amp;keywords=pce+105&amp;amp;x=0&amp;amp;y=0 Steckdosen für Schalttafeleinbau:]&lt;br /&gt;
* Bezugsquelle [http://www.schaeffer-ag.de/ Frontplatten]&lt;br /&gt;
* Bezugsquelle [http://www.lichtlieferant.de/catalogsearch/result/?q=r7s+fassung+sockel Vossloh Fassung R7S für Halogenstäbe]&lt;br /&gt;
* Datenblatt Prozessor [http://ww1.microchip.com/downloads/en/DeviceDoc/39632e.pdf PIC18LF2550]&lt;br /&gt;
* Umfangreicher Thread u.A. Leistungsvermögen, Temperaturmessung und Dämmung [http://www.mikrocontroller.net/topic/270627]&lt;br /&gt;
[[Kategorie:PIC-Projekte]]&lt;/div&gt;</summary>
		<author><name>Frankman</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=Reflow_Ofen_Steuerung&amp;diff=86106</id>
		<title>Reflow Ofen Steuerung</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=Reflow_Ofen_Steuerung&amp;diff=86106"/>
		<updated>2014-12-07T12:09:06Z</updated>

		<summary type="html">&lt;p&gt;Frankman: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Datei:Teilbest2.jpg|750px|teilbestückte Platine]]&lt;br /&gt;
[[Datei:RFB.jpg|thumb|right|200px|Altium 3D Ansicht]]&lt;br /&gt;
[[Datei:pcb.png|thumb|right|200px|Fertige Reflow-Ofen-Steuerung]]&lt;br /&gt;
[[Datei:reflow_controller_front.jpg|thumb|right|200px|Controller im RM2055M Gehäuse (front)]]&lt;br /&gt;
[[Datei:reflow_controller_back.jpg|thumb|right|200px|Controller im RM2055M Gehäuse (back)]]&lt;br /&gt;
[[Datei:Reflow_pid_test2.png|thumb|right|200px|Test des PID Reglers]]&lt;br /&gt;
== Einleitung ==&lt;br /&gt;
&lt;br /&gt;
Hier wird eine weitere Reflow-Ofen-Steuerung beschrieben.&lt;br /&gt;
=== Zum Nachbauen ===&lt;br /&gt;
* Spezifikation: [[Datei: Spec Reflow.pdf]]&lt;br /&gt;
* Schaltplan: &lt;br /&gt;
** Minimalversion [[Datei:Schematic Prints Minimal.pdf]]&lt;br /&gt;
** Standardversion [[Datei:Schematic Prints Standard.pdf]]&lt;br /&gt;
** Deluxeversion [[Datei:Schematic Prints Deluxe.pdf]]&lt;br /&gt;
** Debugversion [[Datei:Schematic Prints Debug.pdf]]&lt;br /&gt;
* Gerberdaten: [[Datei:Gerber Reflow.pdf]]&lt;br /&gt;
* Assemblydrawing: [[Datei:Assembly Reflow.pdf]] &lt;br /&gt;
* Altium-Files: [[Datei:Reflow.zip]]&lt;br /&gt;
* Stückliste als CSV: [[Datei:Reflow.csv]]&lt;br /&gt;
* Stückliste als Open Office: [[Datei:Reflow.ods]]&lt;br /&gt;
* PC Programm: TBD&lt;br /&gt;
* Sourcen PC-Programm: TBD&lt;br /&gt;
* PIC Programm (*.hex): [http://sourceforge.net/projects/reflowofensteue/ ]&lt;br /&gt;
* Sourcen Pic-Programm: [http://sourceforge.net/projects/reflowofensteue/ ]&lt;br /&gt;
* Step-File Steckdose:[[Datei:Steckdose.stp]]&lt;br /&gt;
&lt;br /&gt;
=== Motivation ===&lt;br /&gt;
Die Gründe, eine weitere Steuerung zu entwerfen, waren:&lt;br /&gt;
&lt;br /&gt;
* Die Möglichkeit, auch größere Öfen mit 2 Phasen betreiben zu können.&lt;br /&gt;
* Die Steuerung universell zu gestalten. Es sollte möglich sein, diese nicht nur zum Reflow löten zu verwenden....z.B:&lt;br /&gt;
** Temperatursteuerung für Klimakammer (Heizen, Kühlen)&lt;br /&gt;
** Dimmer mit USB&lt;br /&gt;
** Temperaturregler für ein Tisch-Fondue ( Temperatur halten)&lt;br /&gt;
** Drehzahlsteller mit USB&lt;br /&gt;
** Switchpack&lt;br /&gt;
* Die Schaltung sollte in Altium entwickelt werden. (Warum kein Eagle??? Altium User wissen es.... :-)&lt;br /&gt;
* Die Schaltung sollte mit USB ausgestattet sein.&lt;br /&gt;
&lt;br /&gt;
=== Eigenschaften &amp;amp; Spezifikationen ===&lt;br /&gt;
* Temperaturmessung: bis zu 2x &#039;&#039;&#039;Thermoelement&#039;&#039;&#039; (K-Typ) mit MAX6675 (abgekündigt) oder Nachfolger MAX31855 (pin- aber nicht softwarekompatibel)&lt;br /&gt;
* Leistungsstufen: &#039;&#039;&#039;3 voneinander unabhängige&#039;&#039;&#039; Triacs 800V 25A, limitiert auf &#039;&#039;&#039;10A @ 250VAC&#039;&#039;&#039; (z.B. Oberhitze, Unterhitze, Umluft)&lt;br /&gt;
* Nulldurchgangserkennung ermöglicht Wellenpaket-, und Phasenanschnittsteuerung * Galvanische Trennung der Leistungsendstufen&lt;br /&gt;
* 1x MOSFET-Ausgang PWM z.B. für 12V Lüfter, max. &#039;&#039;&#039;55V 3,5A&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;4 feste Programme&#039;&#039;&#039; im EEPROM über 2-Tasterbedienung und LEDs wähl- und ausführbar. &lt;br /&gt;
* &#039;&#039;&#039;PC-unabhängiger Betrieb&#039;&#039;&#039; möglich. &lt;br /&gt;
* Beliebig viele Programme möglich, bei Betrieb am Computer &lt;br /&gt;
* Mini-USB-Buchse zur Steuerung / Programmierung über GUI und zum Entwickeln. - Dafür ist &#039;&#039;&#039;keine Netzspannung&#039;&#039;&#039; erforderlich&lt;br /&gt;
* Günstiges passendes Gehäuse&lt;br /&gt;
* Alle LEDs und Taster auf &#039;&#039;&#039;Stiftleisten&#039;&#039;&#039; herausgeführt, für eigene Gestaltung der Frontblenden&lt;br /&gt;
* PID-Temperaturregler&lt;br /&gt;
* UART, SPI, I2C und 2x ADC auf Stiftleisten herausgeführt, für zukünftige &#039;&#039;&#039;Erweiterungen&#039;&#039;&#039;&lt;br /&gt;
* Versorgung über USB &amp;lt; 100mA, interne Versorgungsspannung 3,3V&lt;br /&gt;
* umfangreiche EMV-gerechte Entstörung für den Bedarfsfall&lt;br /&gt;
&lt;br /&gt;
=== Zusätzliches Benötigtes Material ===&lt;br /&gt;
* Leiterplatte (1 Stück)&lt;br /&gt;
* Gehäuse Hammond Teilenummer: RM2055L (1 Stück)&lt;br /&gt;
* Alternativ:Gehäuse Hammond Teilenummer: RM2055M (Wenn keine Steckdosen angebracht werden sollen)&lt;br /&gt;
* Alternative: Gehäuse Hammond (Hier muss man die Leiterplatte selber befestigen) Teilenummer: 1455T2201 (1 Stück)&lt;br /&gt;
* Einbausteckdosen Teilenummer: PEC 105 (2-3 Stück, je nach Ausbaustufe)&lt;br /&gt;
* PG-Verschraubung (2-3 Stück)&lt;br /&gt;
* Mutter für PG-Verschraubung (2 Stück)&lt;br /&gt;
* Litze blau, mindestens 1,5mm² (ca. 60cm)&lt;br /&gt;
* Litze braun, mindestens 1,5mm² (ca. 60cm) &lt;br /&gt;
* Litze gelb/grün, mindestens 1,5mm² (ca. 60cm)&lt;br /&gt;
* Aderendhülsen  mit Schutzkragen dazu ( 9 Stück für die Steckdosen)&lt;br /&gt;
* Schrauben, um die Leiterplatte zu befestigen (4 Stück)&lt;br /&gt;
* evtl. Abstandsbolzen dazu, falls das alternative Gehäuse verwendet wird (4 Stück)&lt;br /&gt;
* evtl. Muttern dazu, falls das alternative Gehäuse verwendet wird (4 Stück)&lt;br /&gt;
* Schrauben, Senkkopf DIN 7991 oder DIN 965 M4 X 10 um die Steckdosen zu befestigen (12 Stück)&lt;br /&gt;
* Muttern dazu M4 (12 Stück)&lt;br /&gt;
* Federschreiben  dazu DIN 127 M4 (12 Stück)&lt;br /&gt;
* Glimmerscheiben für Triac (2-3 Stück, je nach Ausbaustufe)&lt;br /&gt;
* Isoliernippel für Triacmontage (2-3 Stück, je nach Ausbaustufe)&lt;br /&gt;
* Zylinderkopfschraube M3 X 12 für Triacmontage (2-3 Stück, je nach Ausbaustufe)&lt;br /&gt;
* Mutter M3 für Triacmontage (2-3 Stück, je nach Ausbaustufe)&lt;br /&gt;
* Beilagscheibe M3 für Triacmontage (2-3 Stück, je nach Ausbaustufe)&lt;br /&gt;
* Isolierband für Triacmontage (ca. 300mm)&lt;br /&gt;
* Gummifüße für das Gehäuse (4 Stück)&lt;br /&gt;
&lt;br /&gt;
=== Kühlkörpermontage===&lt;br /&gt;
[[Datei:kuehlkoerper.jpg|thumb|right|200px|Montagedetail Kühlkörper]]&lt;br /&gt;
* Der Kühlköper sollte 38mm hoch sein, so passt er gut in die angegebenen Gehäuse&lt;br /&gt;
* Der Kühlkörper &amp;lt;span style=&amp;quot;color:red;&amp;quot;&amp;gt;MUSS isoliert montiert werden, also Glimmerscheibe und Isoliernippel einsetzen und NACHMESSEN, ob der Kühlkörper auch wirklich keinen Kontakt zum Triac hat!&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:red;&amp;quot;&amp;gt;Da die 230-V-Leiterbahnen nur durch den Stopplack vom Kühlkörper getrennt sind, sollte die Isolation mit zwei Lagen Gewebe- oder Isolierband verstärkt werden. Das Isolierband kann auf die Leiterplatte oder unter den Kühlkörper geklebt werden.&amp;lt;/span&amp;gt;&lt;br /&gt;
* Als Bohrungsmaß empfehle ich 20mm über der Leiterplatte.&lt;br /&gt;
* Entweder Bohrung 3,2mm für Durchgangsloch für den Triac.&lt;br /&gt;
* Oder Bohrung 2,5mm mit M3-Gewinde für den Triac schneiden.&lt;br /&gt;
* Die Kühlkörper selbst können mit Stiften erworben werden, die man in die Leiterplatte lötet. Oder Alternativ Bohrungen auf 2,7mm aufbohren und mit Zylinderkopfschraube M2,5 x 8 befestigen.&lt;br /&gt;
&lt;br /&gt;
== Schaltung==&lt;br /&gt;
=== PIC18LF2550 Grundbeschaltung ===&lt;br /&gt;
[[Datei:osc_vs_vcc.png|thumb|right|200px|Taktraten und Versorgungsspannung PIC18F2550 vs. PIC18LF2550, Datenblatt S. 370/438]]&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 3/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Hier kommt ein PIC18&#039;&#039;&#039;L&#039;&#039;&#039;F2550 zum Einsatz. Er verfügt über eine USB-Schnittstelle und ist für Betriebsspannungen von 2 ... 5,5V ausgelegt. Sein Verwandter PIC18F2550 (ohne L) ist nicht für Betriebsspannungen &amp;lt; 4,2V ausgelegt. Dies ist bei USB sowieso nicht immer erfüllt und die Thermoelement-ICs vertragen ohnehin keine 5V, daher wurde die Betriebsspannung auf 3,3V reduziert. Neben Standard-Decoupling (100nF Kerko pro Vcc-Vss-Pärchen) wurde das ICSP-Interface in alt bewährter Pinbelegung (PICKit1,2,3) angebracht. PGD und PGC sind nicht weiter beschaltet, MCRL wird , wie immer als Resetpin verwendet. Der Resetschalter findet sich auf dem Top-Sheet (Schaltplan S. 1/22). Die Taktversorgung erfolgt über einen 24 MHz Quarz (-&amp;gt; USB). Man beachte diesbezüglich rechts stehende Grafik zu Taktraten und Versorgungsspannungen (Vdd bzw. auch Vcc genannt). Auch zu finden im Datenblatt des PICs auf Seite 370.&lt;br /&gt;
&lt;br /&gt;
=== PIC18LF2550 USB Beschaltung ===&lt;br /&gt;
[[Datei:usb_part.png|thumb|right|200px|PIC18(L)F2550&lt;br /&gt;
 Standard &lt;br /&gt;
USB-Beschaltung am PIC]]&lt;br /&gt;
[[Datei:usb_protect.png|thumb|right|200px|USB-Schutzbeschaltung und Mini-USB-Buchse]]&lt;br /&gt;
&lt;br /&gt;
Die Beschaltung der USB-Schnittstelle am PIC ist 1:1 aus dem Datenblatt übernommen. Zum Einsatz kommt eine Mini-USB-Buchse (J1).&lt;br /&gt;
Der Gedanke war: Erstens ein sehr preiswertes, fertiges Netzteil verwenden zu können, (ca. 3,67 € bei druckerzubehoer.de) und zweitens, die Steuerung auch mit dem PC / Laptop versorgen zu können.&lt;br /&gt;
Somit kann die Schaltung OHNE 230V betrieben und debuggt werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 4/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
FER1,2 und C7 filtern den Schirm nach GND. Standardmäßig wird man hier wohl 0-Ohm-Widerstände einsetzen. Falls ein Besuch im EMV-Labor geplant ist, weicht man auf den Ferrit aus. C5 und C6 filtern das Signal zusammen mit der Common-Mode-DrosselL1. Die Drossel kann mit den 0-Ohm-Brücken R8 und R9 überbrückt (gespart) werden. IC2 ist als ESD-Schutz gedacht und kann ebenfalls bei ausgeprägten Kostenbewustsein gespart werden. Die Widerstände R6 und R7 dürfen NICHT bestückt werden. FER1,2, C5, IC2 müssen nicht zwingend bestückt werden. Die Bestückung wurde vorgehalten um im Problemfall einfache Abhilfe schaffen zu können.&lt;br /&gt;
&lt;br /&gt;
=== 3,3V Spannungsversorgung ===&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 2/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Die 3,3V Versorgungsspannung für die gesamte Platine wird aus V_USB mittels des LDO Spannungsreglers TOREX - XC6206P332MR abgeleitet. Günstig, SOT-23, klein, 2x 1µF Kondensatoren benötigt, 3,3V max. 250mA. Der hat auch einen sehr kleinen Ruhestrom.&lt;br /&gt;
&lt;br /&gt;
=== Taster ===&lt;br /&gt;
*Der Resettaster zieht den MCLR-Pin nach GND und löst damit den Reset aus. MCLR  ist mit einem 10k Pullup versehen.&lt;br /&gt;
*Die übrigen beiden Taster ziehen RA4 bzw. RB5 ebenfalls nach GND.&lt;br /&gt;
&lt;br /&gt;
=== LEDs + ULN2003L ===&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 11/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Um alle LEDs auf der Platine (3x Optotriac + 7x Status) ansteuern zu können wurde auf das 7fach Darlington-Array ULN2003L zurückgegriffen. Die PIC-Ausgänge könnten zwar die LEDs direkt steueren. Aber so werden alle Ausgänge einheitlich nach Masse geschaltet. Das verbessert die Testbarkeit der ganzen Platine. ( Mit einem kurzen Masse-Draht kann zur Not der entsprechende Ausgang gesetzt werden, ohne etwas zu zerstören.)&lt;br /&gt;
&lt;br /&gt;
=== MOSFET-Leistungsausgang ===&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 22/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Hier kommt der einfacher N-Kanal MOSFET (LogicLevel) PHT8N06LT zum Einsatz. Er wird über das ULN2003L Array getrieben und ermöglicht den Anschluss eines DC-Verbrauchers mit max. 55V bei 3,5A. Hier könnte beispielsweise ein PC-Lüfter zur Kühlung oder für Umluft angeschlossen und über PWM geregelt/gesteuert werden. Ein Gatewiderstand von 100 Ohm ist zum Schutz des Treibers vorgesehen. Eine 0-Ohm-Brücke ist stattdessen aber auch möglich, wenn man eine höhere Leistung schalten möchte.Die Leiterbahnen sollten die 3A schon hergeben. Der 100 Ohm Widerstand bildet eine Stromquelle. Sobald der Strom durch den MOSFET und den Widerstand 33mA erreicht, sinkt UGS gegen 0 V. Folge: Der Mosfet sperrt ( und bleibt ganz....)&lt;br /&gt;
Es kann hier prinzipiell auch ein anderer Mosfet im SOT223-Gehäuse zum Einsatz kommen. Achten sollte man darauf, das der MOSFET schon bei 3,3V Ugs gut leiten sollte.&lt;br /&gt;
&lt;br /&gt;
=== Nulldurchgangserkennung ===&lt;br /&gt;
[[Datei:zerocross.png|thumb|right|200px|Nulldurchgangserkennung]]&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 5/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Die Nulldurchgangserkennung erfolgt nach einer sehr bekannten - jedoch ausgeklügelten - Schaltung.  [http://www.dextrel.net/diyzerocrosser.htm siehe: Dextrel]&lt;br /&gt;
Während einer Halbwelle wird C14 über R33 und R35 bzw. D5 geladen. Währenddessen ist T1 gesperrt. Sobald die Wechselspannung (L1-N über Spannungsteiler (R33+R35) / R34) kleiner ist als die Spannung über C14, steuert T1 durch. Dann entlädt sich C14 über den LED-Vorwiderstand R32. Der durch-steuernde Optokoppler zieht die Sync-Leitung nach GND. (Pullup Sync-Leitung = R31). Dies löst beim PIC auf INT2 einen Interrupt aus. &lt;br /&gt;
Dieser Interrupt ermöglicht eine präzise Wellenpaket-, Phasenanschnittsteuerung je nach Bedarf. Das Schalten im Nulldurchgang bei der Wellenpaketsteuerung reduziert EMV-Störungen. Für Phasenanschnitt ist ohnehin eine Nulldurchgangserkennung notwendig. Außerdem liefert sie eine genaue Zeitbasis für alle Programmabläufe.&lt;br /&gt;
&lt;br /&gt;
=== Triac-Ausgänge + Snubber ===&lt;br /&gt;
[[Datei:triac.png|thumb|right|200px|Triac-Ausgangsbeschaltung]]&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 19,20,21/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Die Ansteuerung des eigentlichen Leistungstriacs BTA140-800 erfolgt über den Optotriac IS6005. Der Strom durch Letzteren wird durch R1x limitiert (Vorwiderstand). R2x und R5x limitieren wiederum den Strom durch den Optotriac. Wenn dieser zündet so folgt unmittelbar der &amp;quot;Leistungstriac&amp;quot; der dann die Last schaltet.&lt;br /&gt;
&lt;br /&gt;
S1x ist ein Sicherungshalter um die Lasten einzeln absichern zu können. Wert 10A Mittelträge.&lt;br /&gt;
&lt;br /&gt;
R3x, R4x, C3x bilden ein Snubber-Network, L1X verhindert eine zu schnelle Stromanstiegsgeschwindikeit damit der Triac nicht &amp;quot;von selbst&amp;quot; zündet. Weglassen äußert sich meist in einem fast nicht hörbaren Click. Damit zeigt einem dann der Triac, dass er ab jetzt für immer recht niederohmig geworden ist. Die Regelung der Temperatur braucht dann nicht mehr über den Prozessor erfolgen, sondern nur noch mit dem Ein-/Ausschalter..... :-)&lt;br /&gt;
&lt;br /&gt;
=== Thermoelemente (MAX6675/MAX31855)  ===&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 6,7/22&#039;&#039;&#039;&lt;br /&gt;
Der inzwischen abgekündigte MAX6675 bzw. sein ehrenwerter Nachfolger MAX31855 sind einfach zu handhabende Thermoelement-ICs mit Kaltstellenkompensation. Thermoelemente funktionieren durch das Verschweißen zweier verschiedener Legierungen (beim K-Typ Thermoelemnt Ni und CrNi). Durch den durch die Umgebungstemperatur bedingten Wärmefluss zwischen beiden entsteht ein elektrische Spannung. Diese wird von besagten ICs verstärkt und digitalisiert (ADC). Diese Spannung / Temperatur ist natürlich wieder relativ zur Umgebungstemperatur an der Kaltstelle (Kontaktierung der beiden Drähte mit dem Messinstrument). Daher messen diese ICs auch gleich die Umgebungstemperatur (Kaltstellenkompensation genannt) mit, verrechnen das und geben das Ergebnis auf der SPI-Schnittstelle aus. MAX6675 leistet 12bit also 0,25°C Auflösung (nicht Genauigkeit!) über einen Temperaturbereich von 0°C to +1024°C. Außerdem wird ein nicht/fehlerhaft angeschlossenes Thermoelement erkannt. Der Thermocouple-IC wird an die SPI-Schnittstelle des PICs angeschlossen (hier MSSP genannt). &lt;br /&gt;
&lt;br /&gt;
MAX6675 und MAX31855 scheinen entgegen der Adafruit-Information [http://www.adafruit.com/products/269] doch pinkompatibel zu sein - die Ansteuerung unterscheidet sich jedoch definitiv. (Zitat: &amp;quot;Now uses the MAX31855K instead of the MAX6675, so it can measure a wider temperature measurement range. Please note! the MAX31855 is not pin compatible or drop-in code compatible with the MAX6675. We do have an Arduino library for both chips but you&#039;ll need to adjust any existing MAX6675 designs for the mew MAX31855. The MAX6675 has been discontinued by Maxim.&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Es wurden 2 dieser ICs und damit 2 Temperaturmessstellen vorgesehen. Dies ermöglich die Messung für eine Regelung der Temperatur so wie eine zusätzliche Überwachung kritischer Bauteile (z.B. ICs oder LEDs). Die Minimalbestückung sieht einen MAX6675/MAX31855 vor. Die Auswahl in der Firmware erfolgt über einen der beiden GPIO-Pins RA5 oder RA0 via dem ChipSelect (CS) des MAX6675/MAX31855.&lt;br /&gt;
&lt;br /&gt;
Neben dem MAX6675/MAX31855 wurde ein Decoupling-Kondensator (C8x, Standard 100nF) so wie ein weiterer im Messpfad (C9x) zur Zwecken der Entstörung vorgeshen. C9x 100nF sollte nur bestückt werden wenn Probleme bei der Temperaturmessung entstehen (z.B. unrealstisch stark schwankende Werte).&lt;br /&gt;
&lt;br /&gt;
=== ADC, SPI, UART &amp;amp; I2C Stiftleiste ===&lt;br /&gt;
ADC, SPI, UART und I2C sind zu Zwecken der Kalibrierung / Erweiterung / Einstellung / Debugging auf Stiftleisten herausgeführt:&lt;br /&gt;
Ähnlichkeiten mit dem FTDI-USB-TTL-Kabel bzw. Arduino XXX Bla Bla Bla Schnittstellenkonverter sind natürlich rein zufällig.&lt;br /&gt;
&lt;br /&gt;
Die I2C-Schnittstelle wurde auf eine Stiftleiste geführt, um z.B. einem LM75 o.ä. anschließen zu können. Damit stehen zur Kalibrierung der Thermoelemente genaue Temperaturen zur Verfügung.&lt;br /&gt;
&lt;br /&gt;
Die Stiftleisten haben alle ein Raster von 2,54mm. So können Pin-Header, Wannenstecker oder ähnliches verwendet werden.&lt;br /&gt;
&lt;br /&gt;
Da ja viele Leute eigene Vorstellungen bezüglich der Frontplattengestaltung haben, wurden auch die Taster und LEDs auf Stiftleisten geführt.&lt;br /&gt;
&lt;br /&gt;
=== Kühlkörper ===&lt;br /&gt;
Da die Triacs der Steuerung für bis zu 10A pro Kanal ausgelegt sind, kann man auf die Kühlkörper nicht verzichten. Es fallen bei 10A bis zu 13 Watt Wärme pro Triac ab. Falls mann auf die Kühlkörper doch verzichten möchte, sollte man darauf achten, die Triacs mit dem Kopf nach unten einzubauen. Diese können sich dann bei Überlast ganz von selber auslöten.... :-)&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red;&amp;quot;&amp;gt; Die Triacs müssen mit Glimmerscheibe und Isoliernippel -ALSO ISOLIERT ZUM KÜHLKÖRPER- montiert werden.&lt;br /&gt;
Außerdem muss unter dem Kühlkörper ein Stück Isolierband oder FR4 oder Nylon-Scheiben beigelegt werden, um zu verhindern, dass der Stopplack der Leiterplatte beschädigt wird. In diesem Falle hätte man Potential auf dem Kühlkörper.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Gehäuse ===&lt;br /&gt;
Die Leiterplatte wurde für ein Gehäuse von Hammond entwickelt.&lt;br /&gt;
Das Gehäuse ist zwar keine Schönheit, aber doch recht preiswert.&lt;br /&gt;
Typenbezeichnung: RM2055M oder etwas größer RM2055L&lt;br /&gt;
&lt;br /&gt;
== Firmware PIC ==&lt;br /&gt;
* Die Entwicklung der Firmware für den PIC18LF2550  erfolgt mit MPLABX und dem C18 Compiler. &lt;br /&gt;
* MPLABX ist kostenlos, der C18 Compiler bis auf die stärkste Optimierungsstufe ebenfalls. &lt;br /&gt;
* Die Quellen für die Firmware sind offengelegt und können von Sourceforge bezogen werden, siehe Links, weiter unten.&lt;br /&gt;
&lt;br /&gt;
=== Zuordnung Outputs ===&lt;br /&gt;
&lt;br /&gt;
*In1 = RC2 = PIN13 = ULN5--&amp;gt;12 = OUT1 = PWM &lt;br /&gt;
*In2 = RB3 = PIN24 = ULN6--&amp;gt;11 = OUT2 = TRIAC_A (1) = K5&lt;br /&gt;
*In3 = RB4 = PIN25 = ULN7--&amp;gt;10 = OUT3 = TRIAC_B (2)= K2&lt;br /&gt;
*In4 = RA2 = PIN4  = ULN4--&amp;gt;13 = OUT4 = LED_PRG1 = OPTO D&lt;br /&gt;
*In5 = RC0 = PIN11 = ULN3--&amp;gt;14 = OUT6 = LED_PRG2 = OPTO F&lt;br /&gt;
*In6 = RC1 = PIN12 = ULN2--&amp;gt;15 = OUT7 = LED_PRG3 = OPTO G&lt;br /&gt;
*In7 = RA3 = PIN5  = ULN1--&amp;gt;16 = OUT5 = LED_PRG4 = OPT= E&lt;br /&gt;
&lt;br /&gt;
TRIAC1 ist nahe dem Zerocross&lt;br /&gt;
&lt;br /&gt;
== Ofen / Pizzaofen ==&lt;br /&gt;
=== Leistung und Volumen ===&lt;br /&gt;
* Alls Faustformel wird oft 100W pro Liter Volumen genannt.&lt;br /&gt;
* Ich habe einen sehr preiswerten Ofen gewählt und die &amp;quot;Oberhitze&amp;quot; zusätzlich mit zwei Halogen-Stäben a 300W &amp;quot;verstärkt. Das kostet nicht viel, die Fassung ist für ca. 3 Euro erhältlich, die Halogenstäbe gibt es in jedem Baumarkt. &lt;br /&gt;
* Bezugsquelle Fassung : siehe &amp;quot;Links&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Dämmung ===&lt;br /&gt;
=== Umluft ===&lt;br /&gt;
* Der verwendete Ofen sollte eine Umluftfunktion besitzen, damit sich die Wärme gleichmäßig im Ofen und auf der Leiterplatte verteilen kann.&lt;br /&gt;
&lt;br /&gt;
* Der Umluftbetrieb hat jedoch zur Folge, dass natürlich auch etwas Wärme wieder von der Leiterplatte weggepustet wird. Wenn man nur kleine Leiterplatten hat, kann es von Vorteil sein, diese ohne Umluft zu löten.&lt;br /&gt;
&lt;br /&gt;
== FAQ ==&lt;br /&gt;
&lt;br /&gt;
* Q1: Ich habe einen PT100/PT1000 und möchte den anschließen. Geht das?&lt;br /&gt;
** A1: Ja natürlich. Dazu ist aber etwas externe Elektronik notwendig. Sowohl 2 ADC-Pins (mit 3V3 Betriebsspannung als fixe Referenzspannung), als auch die UART und SPI/I2C-Schnittstelle stehen zur freien Verfügung. Für PT100/PT1000 wird für vernünftige Messungen ohnehin eine Verstärkung (meist mit OPV) von Nöten sein. Da der PIC-interne ADC &amp;quot;nur&amp;quot; 10bit Auflösung bietet sollte ein externer 16bit ADC in Betracht gezogen werden um das Potential der PT100/PT1000 auszunutzen.&lt;br /&gt;
*Q2: Ich habe von günstigen Temperaturmessungen mit Dioden gehört. Geht das auch hier?&lt;br /&gt;
**A2: Ja. Die Vorwärtsspannung einer Diode verhält sich linear zur Sperrschichttemperatur. Diese Spannung (bei 25°C einer Si-Diode die bekannten 0,7V) kann mittels OPV verstärkt werden und auf einen Spannungsbereich von 0 ... 3V3 aufgebläht werden. Eine billige Lösung, auf Kosten der Genauigkeit. Doch eine Diode ist laut Datenblatt nur bis 150°C geeignet. Es ist also beim Löten mehr oder weniger Pfusch. Wenn ich schon eine Reflow-Steuerung baue, sollte ich doch nicht an ein paar Euro für eine gescheite Temperaturmessung sparen. Einige Anregungen vom Messgerätehersteller Keithley bzgl. der Halbleiterphysik mit interessanten Formeln [http://www.keithley.de/support/data?asset=50486]. Oder natürlich der Klassiker von Thomas Pfeifer [http://thomaspfeifer.net/backofen_smd_reflow.htm]. Oder ein Beitrag mit LT-Spice Simulation zum Thema [http://www.mikrocontroller.net/topic/270627#2833883].&lt;br /&gt;
* Q3: God why ... ?&lt;br /&gt;
** A3: Because we can !&lt;br /&gt;
* Q4: Ich hab aber noch nie was mit 230V gemacht.&lt;br /&gt;
**A4: Dann würde ich an Deiner Stelle dieses Projekt NICHT nachbauen.&lt;br /&gt;
* Q5: Warum wurde Altium verwendet und nicht Eagle?&lt;br /&gt;
**A5: Weil es uns kostenlos zur Verfügung stand und wesentlich leistungsfähiger ist. Es ist aber möglich, die Altium-Daten in ein ASCII-Format zu wandeln, welches auch von Eagle geöffnet werden kann - Auf Anfrage...&lt;br /&gt;
&lt;br /&gt;
=Installation USB Treiber=&lt;br /&gt;
Hier mal eine Anleitung, wie der Windows Treiber (z. B. unter Win7) - &lt;br /&gt;
für den in der Firmware verwendeten M-Stack - installiert wird.&lt;br /&gt;
&lt;br /&gt;
1. Unter www.github.com/signal11/m-stack/blob/master/apps/cdc_acm/inf/ &lt;br /&gt;
die Dateie cdc-acm.inf runter laden.&lt;br /&gt;
&lt;br /&gt;
2. USB der Controller-Hardware am PC anstecken. Im Gerätemanager muss &lt;br /&gt;
jetzt unter &amp;quot;Andere Geräte&amp;quot; der Eintrag &amp;quot;USB CDC Test&amp;quot; angezeigt werden.&lt;br /&gt;
&lt;br /&gt;
3. Auf diesem Eintrag &amp;quot;USB CDC Test&amp;quot; im Gerätemanager mit der rechten &lt;br /&gt;
Maustaste klicken und &amp;quot;Treibersoftware aktualisieren&amp;quot; auswählen.&lt;br /&gt;
&lt;br /&gt;
4. Dann den zweiten Punkt (&amp;quot;Auf dem Computer nach Treibersoftware &lt;br /&gt;
suchen&amp;quot;) auswählen.&lt;br /&gt;
&lt;br /&gt;
5. &amp;quot;Durchsuchen&amp;quot; wählen und das Verzeichnis auswählen, in dem sich die &lt;br /&gt;
heruntergeladene Datei cdc-acm.inf befindet.&lt;br /&gt;
&lt;br /&gt;
6. Der Treiber wird nun installiert und danach sollte eine &lt;br /&gt;
Erfolgsmeldung kommen.&lt;br /&gt;
&lt;br /&gt;
7. Im Erfolgsfall wird im Gerätemanager unter &amp;quot;Anschlüsse (COM,...)...&amp;quot; &lt;br /&gt;
z. B.&amp;quot;M-Stack CDS Demo (COM5)&amp;quot; angezeigt.&lt;br /&gt;
&lt;br /&gt;
= Verbesserungen Prototyp - Diese haben jedoch keinen Einfluss auf die Funktion der Leiterplatte=&lt;br /&gt;
&#039;&#039;&#039;Wird in V1.1 gefixt&#039;&#039;&#039;&lt;br /&gt;
* Bauteile weiter weg von den Schraublöchern.--&amp;gt; gefixt&lt;br /&gt;
* Dazu Kreis rund um Bohrung auf Bestückdruck.--&amp;gt; gefixt&lt;br /&gt;
* Masseanbindung Quarz.--&amp;gt; gefixt&lt;br /&gt;
* Klemmen weiter weg vom Rand.--&amp;gt; gefixt&lt;br /&gt;
* Klemme und Sicherungshalter weiter auseinander.--&amp;gt; gefixt&lt;br /&gt;
* Bohrungen für Drossel 0,2mm größer machen.&lt;br /&gt;
* Teilenummer für Conrad-USB-Buchse in BOM übernehmen.&lt;br /&gt;
* Stiftleiste P1  weiter weg von P2 und P4.--&amp;gt; gefixt&lt;br /&gt;
* Varistoren näher an Klemmen platzieren.--&amp;gt; gefixt&lt;br /&gt;
* THT-Kondensatoren für Snubber.--&amp;gt; gefixt&lt;br /&gt;
* Ggf. Stiftleistenbelegung für externe Leds so ändern, das keine extra Vorwiderstände notwendig sind.--&amp;gt; gefixt&lt;br /&gt;
* Befestigungsbohrung für Drossel, um diese mit Kabelbinderung oder Schraube fixieren zu können.--&amp;gt; gefixt&lt;br /&gt;
* Pullup-Widerstand bei MCLR doppelt. --&amp;gt; gefixt&lt;br /&gt;
* Power-LED vorsehen.--&amp;gt; gefixt&lt;br /&gt;
* Leiterbahnen etwas weiter weg von den Kühlkörperanschlüssen--&amp;gt; gefixt&lt;br /&gt;
* Designatoren Texte etwas größer machen.&lt;br /&gt;
* Ein vernünftiger GND-Punkt für einen Tastkopf / Messungen / Aligator-Clips vorsehen.&lt;br /&gt;
* Spannungsversorgung doch Onboard? Oder beides?&lt;br /&gt;
* Leds 90 Grad, Frontplattenmontage--&amp;gt; gefixt&lt;br /&gt;
* Taster 90 Grad Frontplattenmontage--&amp;gt; gefixt&lt;br /&gt;
* Termoelemente Frontplattenmontage??? Termoelementstecker?--&amp;gt; Wird nicht gemacht&lt;br /&gt;
* Schaltausgang 230 V kleiner, weniger Leistungsfähig.--&amp;gt; Wird nicht gemacht&lt;br /&gt;
&lt;br /&gt;
= Errata Projekt =&lt;br /&gt;
&#039;&#039;&#039;Wird in V1.1 gefixt&#039;&#039;&#039;&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:red;&amp;quot;&amp;gt; Triac Symbol in Library falsch, dadurch ist T2 mit T1 vertauscht. Abhilfe für Leiterplattenversion V1.0: T1 und T2 &amp;quot;twisten&amp;quot; und jeweils mit Schrumpfschlauch versehen.( Also Beinchen T1 über kreuz mit Beinchen T2 einlöten...)&amp;lt;/span&amp;gt;&lt;br /&gt;
* Beim MOSFET R39 ist die Masseanbindung falsch. Es bestehen drei Möglichkeiten:&lt;br /&gt;
** 1. 0-R-Brücke für R39 einbauen und auf Strombegrenzung verzichten.&lt;br /&gt;
** 2. Eine Polyfuse mit Bauform 1206 einbauen. &lt;br /&gt;
** 3. Das kleine Leiterbahnstückchen zwischen R38 und R39 unterbrechen und statt dessen die Leiterbahn zwischen R39 und der Klemme mit der Durchkontaktierung bei R38 verbinden.&lt;br /&gt;
* LED-Beschriftung passt nicht ganz (Schaltplan Netlabel OUT1,2,3,4 sind durcheinander gekommen) --&amp;gt; Ist im Prinzip ohne Belang, man muss das nur bei der Software berücksichtigen.&lt;br /&gt;
* Schaltplan UNL2003 fehlerhafte Zuordnung IN5,6,7 &amp;lt;&amp;gt; OUT7,6,5 --&amp;gt; Ist im Prinzip ohne Belang, man muss das nur bei der Software berücksichtigen.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* Diskussion: [http://www.mikrocontroller.net/topic/297217 Diskussion]&lt;br /&gt;
* Software: [http://sourceforge.net/projects/ratcos/ Bei Sourceforge]&lt;br /&gt;
* Dextrel Nulldurchgang: [http://www.dextrel.net/diyzerocrosser.htm Nulldurchgangschaltung]&lt;br /&gt;
* Gehäuse Zeichnung: [http://www.hammondmfg.com/pdf/RM2055L.pdf Großes Gehäuse für Steckdosenmontage]&lt;br /&gt;
* Gehäuse Zeichnung: [http://www.hammondmfg.com/pdf/RM2055M.pdf Kleines Gehäuse, keine Steckdosen]&lt;br /&gt;
* Bezugsquelle [http://www.soselectronic.com/?str=371&amp;amp;artnum=73596&amp;amp;name=hammond-ritec-rm2055l Großes Gehäuse Hammond]&lt;br /&gt;
* Bezugsquelle [http://www.soselectronic.com/?str=371&amp;amp;artnum=73595&amp;amp;name=hammond-ritec-rm2055m Kleines Gehäuse Hammond]&lt;br /&gt;
* Bezugsquelle [http://www.druckerzubehoer.de/shop/product/catid/H-UNIVERSALZUBEHOER_HZB/subcatid/UNIVERSALZUBEHOER_GROUP1_HZB/productid/1727063-390722LA/site/1/lng/de_DE Netzteil Mini USB ]&lt;br /&gt;
* Bezugsquelle [http://www.ebay.de/itm/151037292125?ssPageName=STRK:MEWNX:IT&amp;amp;_trksid=p3984.m1497.l2649 Termoelement Ebay (Typ K für ca. 2Euro)]&lt;br /&gt;
* Bezugsquelle [http://www.artcase-shop.de/index.php?page=search&amp;amp;page_action=query&amp;amp;desc=on&amp;amp;sdesc=on&amp;amp;keywords=pce+105&amp;amp;x=0&amp;amp;y=0 Steckdosen für Schalttafeleinbau:]&lt;br /&gt;
* Bezugsquelle [http://www.schaeffer-ag.de/ Frontplatten]&lt;br /&gt;
* Bezugsquelle [http://www.lichtlieferant.de/catalogsearch/result/?q=r7s+fassung+sockel Vossloh Fassung R7S für Halogenstäbe]&lt;br /&gt;
* Datenblatt Prozessor [http://ww1.microchip.com/downloads/en/DeviceDoc/39632e.pdf PIC18LF2550]&lt;br /&gt;
* Umfangreicher Thread u.A. Leistungsvermögen, Temperaturmessung und Dämmung [http://www.mikrocontroller.net/topic/270627]&lt;br /&gt;
[[Kategorie:PIC-Projekte]]&lt;/div&gt;</summary>
		<author><name>Frankman</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=Reflow_Ofen_Steuerung&amp;diff=86105</id>
		<title>Reflow Ofen Steuerung</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=Reflow_Ofen_Steuerung&amp;diff=86105"/>
		<updated>2014-12-07T12:08:40Z</updated>

		<summary type="html">&lt;p&gt;Frankman: Anleitung USB Treiber hinzu&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Datei:Teilbest2.jpg|750px|teilbestückte Platine]]&lt;br /&gt;
[[Datei:RFB.jpg|thumb|right|200px|Altium 3D Ansicht]]&lt;br /&gt;
[[Datei:pcb.png|thumb|right|200px|Fertige Reflow-Ofen-Steuerung]]&lt;br /&gt;
[[Datei:reflow_controller_front.jpg|thumb|right|200px|Controller im RM2055M Gehäuse (front)]]&lt;br /&gt;
[[Datei:reflow_controller_back.jpg|thumb|right|200px|Controller im RM2055M Gehäuse (back)]]&lt;br /&gt;
[[Datei:Reflow_pid_test2.png|thumb|right|200px|Test des PID Reglers]]&lt;br /&gt;
== Einleitung ==&lt;br /&gt;
&lt;br /&gt;
Hier wird eine weitere Reflow-Ofen-Steuerung beschrieben.&lt;br /&gt;
=== Zum Nachbauen ===&lt;br /&gt;
* Spezifikation: [[Datei: Spec Reflow.pdf]]&lt;br /&gt;
* Schaltplan: &lt;br /&gt;
** Minimalversion [[Datei:Schematic Prints Minimal.pdf]]&lt;br /&gt;
** Standardversion [[Datei:Schematic Prints Standard.pdf]]&lt;br /&gt;
** Deluxeversion [[Datei:Schematic Prints Deluxe.pdf]]&lt;br /&gt;
** Debugversion [[Datei:Schematic Prints Debug.pdf]]&lt;br /&gt;
* Gerberdaten: [[Datei:Gerber Reflow.pdf]]&lt;br /&gt;
* Assemblydrawing: [[Datei:Assembly Reflow.pdf]] &lt;br /&gt;
* Altium-Files: [[Datei:Reflow.zip]]&lt;br /&gt;
* Stückliste als CSV: [[Datei:Reflow.csv]]&lt;br /&gt;
* Stückliste als Open Office: [[Datei:Reflow.ods]]&lt;br /&gt;
* PC Programm: TBD&lt;br /&gt;
* Sourcen PC-Programm: TBD&lt;br /&gt;
* PIC Programm (*.hex): [http://sourceforge.net/projects/reflowofensteue/ ]&lt;br /&gt;
* Sourcen Pic-Programm: [http://sourceforge.net/projects/reflowofensteue/ ]&lt;br /&gt;
* Step-File Steckdose:[[Datei:Steckdose.stp]]&lt;br /&gt;
&lt;br /&gt;
=== Motivation ===&lt;br /&gt;
Die Gründe, eine weitere Steuerung zu entwerfen, waren:&lt;br /&gt;
&lt;br /&gt;
* Die Möglichkeit, auch größere Öfen mit 2 Phasen betreiben zu können.&lt;br /&gt;
* Die Steuerung universell zu gestalten. Es sollte möglich sein, diese nicht nur zum Reflow löten zu verwenden....z.B:&lt;br /&gt;
** Temperatursteuerung für Klimakammer (Heizen, Kühlen)&lt;br /&gt;
** Dimmer mit USB&lt;br /&gt;
** Temperaturregler für ein Tisch-Fondue ( Temperatur halten)&lt;br /&gt;
** Drehzahlsteller mit USB&lt;br /&gt;
** Switchpack&lt;br /&gt;
* Die Schaltung sollte in Altium entwickelt werden. (Warum kein Eagle??? Altium User wissen es.... :-)&lt;br /&gt;
* Die Schaltung sollte mit USB ausgestattet sein.&lt;br /&gt;
&lt;br /&gt;
=== Eigenschaften &amp;amp; Spezifikationen ===&lt;br /&gt;
* Temperaturmessung: bis zu 2x &#039;&#039;&#039;Thermoelement&#039;&#039;&#039; (K-Typ) mit MAX6675 (abgekündigt) oder Nachfolger MAX31855 (pin- aber nicht softwarekompatibel)&lt;br /&gt;
* Leistungsstufen: &#039;&#039;&#039;3 voneinander unabhängige&#039;&#039;&#039; Triacs 800V 25A, limitiert auf &#039;&#039;&#039;10A @ 250VAC&#039;&#039;&#039; (z.B. Oberhitze, Unterhitze, Umluft)&lt;br /&gt;
* Nulldurchgangserkennung ermöglicht Wellenpaket-, und Phasenanschnittsteuerung * Galvanische Trennung der Leistungsendstufen&lt;br /&gt;
* 1x MOSFET-Ausgang PWM z.B. für 12V Lüfter, max. &#039;&#039;&#039;55V 3,5A&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;4 feste Programme&#039;&#039;&#039; im EEPROM über 2-Tasterbedienung und LEDs wähl- und ausführbar. &lt;br /&gt;
* &#039;&#039;&#039;PC-unabhängiger Betrieb&#039;&#039;&#039; möglich. &lt;br /&gt;
* Beliebig viele Programme möglich, bei Betrieb am Computer &lt;br /&gt;
* Mini-USB-Buchse zur Steuerung / Programmierung über GUI und zum Entwickeln. - Dafür ist &#039;&#039;&#039;keine Netzspannung&#039;&#039;&#039; erforderlich&lt;br /&gt;
* Günstiges passendes Gehäuse&lt;br /&gt;
* Alle LEDs und Taster auf &#039;&#039;&#039;Stiftleisten&#039;&#039;&#039; herausgeführt, für eigene Gestaltung der Frontblenden&lt;br /&gt;
* PID-Temperaturregler&lt;br /&gt;
* UART, SPI, I2C und 2x ADC auf Stiftleisten herausgeführt, für zukünftige &#039;&#039;&#039;Erweiterungen&#039;&#039;&#039;&lt;br /&gt;
* Versorgung über USB &amp;lt; 100mA, interne Versorgungsspannung 3,3V&lt;br /&gt;
* umfangreiche EMV-gerechte Entstörung für den Bedarfsfall&lt;br /&gt;
&lt;br /&gt;
=== Zusätzliches Benötigtes Material ===&lt;br /&gt;
* Leiterplatte (1 Stück)&lt;br /&gt;
* Gehäuse Hammond Teilenummer: RM2055L (1 Stück)&lt;br /&gt;
* Alternativ:Gehäuse Hammond Teilenummer: RM2055M (Wenn keine Steckdosen angebracht werden sollen)&lt;br /&gt;
* Alternative: Gehäuse Hammond (Hier muss man die Leiterplatte selber befestigen) Teilenummer: 1455T2201 (1 Stück)&lt;br /&gt;
* Einbausteckdosen Teilenummer: PEC 105 (2-3 Stück, je nach Ausbaustufe)&lt;br /&gt;
* PG-Verschraubung (2-3 Stück)&lt;br /&gt;
* Mutter für PG-Verschraubung (2 Stück)&lt;br /&gt;
* Litze blau, mindestens 1,5mm² (ca. 60cm)&lt;br /&gt;
* Litze braun, mindestens 1,5mm² (ca. 60cm) &lt;br /&gt;
* Litze gelb/grün, mindestens 1,5mm² (ca. 60cm)&lt;br /&gt;
* Aderendhülsen  mit Schutzkragen dazu ( 9 Stück für die Steckdosen)&lt;br /&gt;
* Schrauben, um die Leiterplatte zu befestigen (4 Stück)&lt;br /&gt;
* evtl. Abstandsbolzen dazu, falls das alternative Gehäuse verwendet wird (4 Stück)&lt;br /&gt;
* evtl. Muttern dazu, falls das alternative Gehäuse verwendet wird (4 Stück)&lt;br /&gt;
* Schrauben, Senkkopf DIN 7991 oder DIN 965 M4 X 10 um die Steckdosen zu befestigen (12 Stück)&lt;br /&gt;
* Muttern dazu M4 (12 Stück)&lt;br /&gt;
* Federschreiben  dazu DIN 127 M4 (12 Stück)&lt;br /&gt;
* Glimmerscheiben für Triac (2-3 Stück, je nach Ausbaustufe)&lt;br /&gt;
* Isoliernippel für Triacmontage (2-3 Stück, je nach Ausbaustufe)&lt;br /&gt;
* Zylinderkopfschraube M3 X 12 für Triacmontage (2-3 Stück, je nach Ausbaustufe)&lt;br /&gt;
* Mutter M3 für Triacmontage (2-3 Stück, je nach Ausbaustufe)&lt;br /&gt;
* Beilagscheibe M3 für Triacmontage (2-3 Stück, je nach Ausbaustufe)&lt;br /&gt;
* Isolierband für Triacmontage (ca. 300mm)&lt;br /&gt;
* Gummifüße für das Gehäuse (4 Stück)&lt;br /&gt;
&lt;br /&gt;
=== Kühlkörpermontage===&lt;br /&gt;
[[Datei:kuehlkoerper.jpg|thumb|right|200px|Montagedetail Kühlkörper]]&lt;br /&gt;
* Der Kühlköper sollte 38mm hoch sein, so passt er gut in die angegebenen Gehäuse&lt;br /&gt;
* Der Kühlkörper &amp;lt;span style=&amp;quot;color:red;&amp;quot;&amp;gt;MUSS isoliert montiert werden, also Glimmerscheibe und Isoliernippel einsetzen und NACHMESSEN, ob der Kühlkörper auch wirklich keinen Kontakt zum Triac hat!&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:red;&amp;quot;&amp;gt;Da die 230-V-Leiterbahnen nur durch den Stopplack vom Kühlkörper getrennt sind, sollte die Isolation mit zwei Lagen Gewebe- oder Isolierband verstärkt werden. Das Isolierband kann auf die Leiterplatte oder unter den Kühlkörper geklebt werden.&amp;lt;/span&amp;gt;&lt;br /&gt;
* Als Bohrungsmaß empfehle ich 20mm über der Leiterplatte.&lt;br /&gt;
* Entweder Bohrung 3,2mm für Durchgangsloch für den Triac.&lt;br /&gt;
* Oder Bohrung 2,5mm mit M3-Gewinde für den Triac schneiden.&lt;br /&gt;
* Die Kühlkörper selbst können mit Stiften erworben werden, die man in die Leiterplatte lötet. Oder Alternativ Bohrungen auf 2,7mm aufbohren und mit Zylinderkopfschraube M2,5 x 8 befestigen.&lt;br /&gt;
&lt;br /&gt;
== Schaltung==&lt;br /&gt;
=== PIC18LF2550 Grundbeschaltung ===&lt;br /&gt;
[[Datei:osc_vs_vcc.png|thumb|right|200px|Taktraten und Versorgungsspannung PIC18F2550 vs. PIC18LF2550, Datenblatt S. 370/438]]&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 3/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Hier kommt ein PIC18&#039;&#039;&#039;L&#039;&#039;&#039;F2550 zum Einsatz. Er verfügt über eine USB-Schnittstelle und ist für Betriebsspannungen von 2 ... 5,5V ausgelegt. Sein Verwandter PIC18F2550 (ohne L) ist nicht für Betriebsspannungen &amp;lt; 4,2V ausgelegt. Dies ist bei USB sowieso nicht immer erfüllt und die Thermoelement-ICs vertragen ohnehin keine 5V, daher wurde die Betriebsspannung auf 3,3V reduziert. Neben Standard-Decoupling (100nF Kerko pro Vcc-Vss-Pärchen) wurde das ICSP-Interface in alt bewährter Pinbelegung (PICKit1,2,3) angebracht. PGD und PGC sind nicht weiter beschaltet, MCRL wird , wie immer als Resetpin verwendet. Der Resetschalter findet sich auf dem Top-Sheet (Schaltplan S. 1/22). Die Taktversorgung erfolgt über einen 24 MHz Quarz (-&amp;gt; USB). Man beachte diesbezüglich rechts stehende Grafik zu Taktraten und Versorgungsspannungen (Vdd bzw. auch Vcc genannt). Auch zu finden im Datenblatt des PICs auf Seite 370.&lt;br /&gt;
&lt;br /&gt;
=== PIC18LF2550 USB Beschaltung ===&lt;br /&gt;
[[Datei:usb_part.png|thumb|right|200px|PIC18(L)F2550&lt;br /&gt;
 Standard &lt;br /&gt;
USB-Beschaltung am PIC]]&lt;br /&gt;
[[Datei:usb_protect.png|thumb|right|200px|USB-Schutzbeschaltung und Mini-USB-Buchse]]&lt;br /&gt;
&lt;br /&gt;
Die Beschaltung der USB-Schnittstelle am PIC ist 1:1 aus dem Datenblatt übernommen. Zum Einsatz kommt eine Mini-USB-Buchse (J1).&lt;br /&gt;
Der Gedanke war: Erstens ein sehr preiswertes, fertiges Netzteil verwenden zu können, (ca. 3,67 € bei druckerzubehoer.de) und zweitens, die Steuerung auch mit dem PC / Laptop versorgen zu können.&lt;br /&gt;
Somit kann die Schaltung OHNE 230V betrieben und debuggt werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 4/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
FER1,2 und C7 filtern den Schirm nach GND. Standardmäßig wird man hier wohl 0-Ohm-Widerstände einsetzen. Falls ein Besuch im EMV-Labor geplant ist, weicht man auf den Ferrit aus. C5 und C6 filtern das Signal zusammen mit der Common-Mode-DrosselL1. Die Drossel kann mit den 0-Ohm-Brücken R8 und R9 überbrückt (gespart) werden. IC2 ist als ESD-Schutz gedacht und kann ebenfalls bei ausgeprägten Kostenbewustsein gespart werden. Die Widerstände R6 und R7 dürfen NICHT bestückt werden. FER1,2, C5, IC2 müssen nicht zwingend bestückt werden. Die Bestückung wurde vorgehalten um im Problemfall einfache Abhilfe schaffen zu können.&lt;br /&gt;
&lt;br /&gt;
=== 3,3V Spannungsversorgung ===&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 2/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Die 3,3V Versorgungsspannung für die gesamte Platine wird aus V_USB mittels des LDO Spannungsreglers TOREX - XC6206P332MR abgeleitet. Günstig, SOT-23, klein, 2x 1µF Kondensatoren benötigt, 3,3V max. 250mA. Der hat auch einen sehr kleinen Ruhestrom.&lt;br /&gt;
&lt;br /&gt;
=== Taster ===&lt;br /&gt;
*Der Resettaster zieht den MCLR-Pin nach GND und löst damit den Reset aus. MCLR  ist mit einem 10k Pullup versehen.&lt;br /&gt;
*Die übrigen beiden Taster ziehen RA4 bzw. RB5 ebenfalls nach GND.&lt;br /&gt;
&lt;br /&gt;
=== LEDs + ULN2003L ===&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 11/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Um alle LEDs auf der Platine (3x Optotriac + 7x Status) ansteuern zu können wurde auf das 7fach Darlington-Array ULN2003L zurückgegriffen. Die PIC-Ausgänge könnten zwar die LEDs direkt steueren. Aber so werden alle Ausgänge einheitlich nach Masse geschaltet. Das verbessert die Testbarkeit der ganzen Platine. ( Mit einem kurzen Masse-Draht kann zur Not der entsprechende Ausgang gesetzt werden, ohne etwas zu zerstören.)&lt;br /&gt;
&lt;br /&gt;
=== MOSFET-Leistungsausgang ===&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 22/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Hier kommt der einfacher N-Kanal MOSFET (LogicLevel) PHT8N06LT zum Einsatz. Er wird über das ULN2003L Array getrieben und ermöglicht den Anschluss eines DC-Verbrauchers mit max. 55V bei 3,5A. Hier könnte beispielsweise ein PC-Lüfter zur Kühlung oder für Umluft angeschlossen und über PWM geregelt/gesteuert werden. Ein Gatewiderstand von 100 Ohm ist zum Schutz des Treibers vorgesehen. Eine 0-Ohm-Brücke ist stattdessen aber auch möglich, wenn man eine höhere Leistung schalten möchte.Die Leiterbahnen sollten die 3A schon hergeben. Der 100 Ohm Widerstand bildet eine Stromquelle. Sobald der Strom durch den MOSFET und den Widerstand 33mA erreicht, sinkt UGS gegen 0 V. Folge: Der Mosfet sperrt ( und bleibt ganz....)&lt;br /&gt;
Es kann hier prinzipiell auch ein anderer Mosfet im SOT223-Gehäuse zum Einsatz kommen. Achten sollte man darauf, das der MOSFET schon bei 3,3V Ugs gut leiten sollte.&lt;br /&gt;
&lt;br /&gt;
=== Nulldurchgangserkennung ===&lt;br /&gt;
[[Datei:zerocross.png|thumb|right|200px|Nulldurchgangserkennung]]&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 5/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Die Nulldurchgangserkennung erfolgt nach einer sehr bekannten - jedoch ausgeklügelten - Schaltung.  [http://www.dextrel.net/diyzerocrosser.htm siehe: Dextrel]&lt;br /&gt;
Während einer Halbwelle wird C14 über R33 und R35 bzw. D5 geladen. Währenddessen ist T1 gesperrt. Sobald die Wechselspannung (L1-N über Spannungsteiler (R33+R35) / R34) kleiner ist als die Spannung über C14, steuert T1 durch. Dann entlädt sich C14 über den LED-Vorwiderstand R32. Der durch-steuernde Optokoppler zieht die Sync-Leitung nach GND. (Pullup Sync-Leitung = R31). Dies löst beim PIC auf INT2 einen Interrupt aus. &lt;br /&gt;
Dieser Interrupt ermöglicht eine präzise Wellenpaket-, Phasenanschnittsteuerung je nach Bedarf. Das Schalten im Nulldurchgang bei der Wellenpaketsteuerung reduziert EMV-Störungen. Für Phasenanschnitt ist ohnehin eine Nulldurchgangserkennung notwendig. Außerdem liefert sie eine genaue Zeitbasis für alle Programmabläufe.&lt;br /&gt;
&lt;br /&gt;
=== Triac-Ausgänge + Snubber ===&lt;br /&gt;
[[Datei:triac.png|thumb|right|200px|Triac-Ausgangsbeschaltung]]&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 19,20,21/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Die Ansteuerung des eigentlichen Leistungstriacs BTA140-800 erfolgt über den Optotriac IS6005. Der Strom durch Letzteren wird durch R1x limitiert (Vorwiderstand). R2x und R5x limitieren wiederum den Strom durch den Optotriac. Wenn dieser zündet so folgt unmittelbar der &amp;quot;Leistungstriac&amp;quot; der dann die Last schaltet.&lt;br /&gt;
&lt;br /&gt;
S1x ist ein Sicherungshalter um die Lasten einzeln absichern zu können. Wert 10A Mittelträge.&lt;br /&gt;
&lt;br /&gt;
R3x, R4x, C3x bilden ein Snubber-Network, L1X verhindert eine zu schnelle Stromanstiegsgeschwindikeit damit der Triac nicht &amp;quot;von selbst&amp;quot; zündet. Weglassen äußert sich meist in einem fast nicht hörbaren Click. Damit zeigt einem dann der Triac, dass er ab jetzt für immer recht niederohmig geworden ist. Die Regelung der Temperatur braucht dann nicht mehr über den Prozessor erfolgen, sondern nur noch mit dem Ein-/Ausschalter..... :-)&lt;br /&gt;
&lt;br /&gt;
=== Thermoelemente (MAX6675/MAX31855)  ===&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 6,7/22&#039;&#039;&#039;&lt;br /&gt;
Der inzwischen abgekündigte MAX6675 bzw. sein ehrenwerter Nachfolger MAX31855 sind einfach zu handhabende Thermoelement-ICs mit Kaltstellenkompensation. Thermoelemente funktionieren durch das Verschweißen zweier verschiedener Legierungen (beim K-Typ Thermoelemnt Ni und CrNi). Durch den durch die Umgebungstemperatur bedingten Wärmefluss zwischen beiden entsteht ein elektrische Spannung. Diese wird von besagten ICs verstärkt und digitalisiert (ADC). Diese Spannung / Temperatur ist natürlich wieder relativ zur Umgebungstemperatur an der Kaltstelle (Kontaktierung der beiden Drähte mit dem Messinstrument). Daher messen diese ICs auch gleich die Umgebungstemperatur (Kaltstellenkompensation genannt) mit, verrechnen das und geben das Ergebnis auf der SPI-Schnittstelle aus. MAX6675 leistet 12bit also 0,25°C Auflösung (nicht Genauigkeit!) über einen Temperaturbereich von 0°C to +1024°C. Außerdem wird ein nicht/fehlerhaft angeschlossenes Thermoelement erkannt. Der Thermocouple-IC wird an die SPI-Schnittstelle des PICs angeschlossen (hier MSSP genannt). &lt;br /&gt;
&lt;br /&gt;
MAX6675 und MAX31855 scheinen entgegen der Adafruit-Information [http://www.adafruit.com/products/269] doch pinkompatibel zu sein - die Ansteuerung unterscheidet sich jedoch definitiv. (Zitat: &amp;quot;Now uses the MAX31855K instead of the MAX6675, so it can measure a wider temperature measurement range. Please note! the MAX31855 is not pin compatible or drop-in code compatible with the MAX6675. We do have an Arduino library for both chips but you&#039;ll need to adjust any existing MAX6675 designs for the mew MAX31855. The MAX6675 has been discontinued by Maxim.&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Es wurden 2 dieser ICs und damit 2 Temperaturmessstellen vorgesehen. Dies ermöglich die Messung für eine Regelung der Temperatur so wie eine zusätzliche Überwachung kritischer Bauteile (z.B. ICs oder LEDs). Die Minimalbestückung sieht einen MAX6675/MAX31855 vor. Die Auswahl in der Firmware erfolgt über einen der beiden GPIO-Pins RA5 oder RA0 via dem ChipSelect (CS) des MAX6675/MAX31855.&lt;br /&gt;
&lt;br /&gt;
Neben dem MAX6675/MAX31855 wurde ein Decoupling-Kondensator (C8x, Standard 100nF) so wie ein weiterer im Messpfad (C9x) zur Zwecken der Entstörung vorgeshen. C9x 100nF sollte nur bestückt werden wenn Probleme bei der Temperaturmessung entstehen (z.B. unrealstisch stark schwankende Werte).&lt;br /&gt;
&lt;br /&gt;
=== ADC, SPI, UART &amp;amp; I2C Stiftleiste ===&lt;br /&gt;
ADC, SPI, UART und I2C sind zu Zwecken der Kalibrierung / Erweiterung / Einstellung / Debugging auf Stiftleisten herausgeführt:&lt;br /&gt;
Ähnlichkeiten mit dem FTDI-USB-TTL-Kabel bzw. Arduino XXX Bla Bla Bla Schnittstellenkonverter sind natürlich rein zufällig.&lt;br /&gt;
&lt;br /&gt;
Die I2C-Schnittstelle wurde auf eine Stiftleiste geführt, um z.B. einem LM75 o.ä. anschließen zu können. Damit stehen zur Kalibrierung der Thermoelemente genaue Temperaturen zur Verfügung.&lt;br /&gt;
&lt;br /&gt;
Die Stiftleisten haben alle ein Raster von 2,54mm. So können Pin-Header, Wannenstecker oder ähnliches verwendet werden.&lt;br /&gt;
&lt;br /&gt;
Da ja viele Leute eigene Vorstellungen bezüglich der Frontplattengestaltung haben, wurden auch die Taster und LEDs auf Stiftleisten geführt.&lt;br /&gt;
&lt;br /&gt;
=== Kühlkörper ===&lt;br /&gt;
Da die Triacs der Steuerung für bis zu 10A pro Kanal ausgelegt sind, kann man auf die Kühlkörper nicht verzichten. Es fallen bei 10A bis zu 13 Watt Wärme pro Triac ab. Falls mann auf die Kühlkörper doch verzichten möchte, sollte man darauf achten, die Triacs mit dem Kopf nach unten einzubauen. Diese können sich dann bei Überlast ganz von selber auslöten.... :-)&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red;&amp;quot;&amp;gt; Die Triacs müssen mit Glimmerscheibe und Isoliernippel -ALSO ISOLIERT ZUM KÜHLKÖRPER- montiert werden.&lt;br /&gt;
Außerdem muss unter dem Kühlkörper ein Stück Isolierband oder FR4 oder Nylon-Scheiben beigelegt werden, um zu verhindern, dass der Stopplack der Leiterplatte beschädigt wird. In diesem Falle hätte man Potential auf dem Kühlkörper.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Gehäuse ===&lt;br /&gt;
Die Leiterplatte wurde für ein Gehäuse von Hammond entwickelt.&lt;br /&gt;
Das Gehäuse ist zwar keine Schönheit, aber doch recht preiswert.&lt;br /&gt;
Typenbezeichnung: RM2055M oder etwas größer RM2055L&lt;br /&gt;
&lt;br /&gt;
== Firmware PIC ==&lt;br /&gt;
* Die Entwicklung der Firmware für den PIC18LF2550  erfolgt mit MPLABX und dem C18 Compiler. &lt;br /&gt;
* MPLABX ist kostenlos, der C18 Compiler bis auf die stärkste Optimierungsstufe ebenfalls. &lt;br /&gt;
* Die Quellen für die Firmware sind offengelegt und können von Sourceforge bezogen werden, siehe Links, weiter unten.&lt;br /&gt;
&lt;br /&gt;
=== Zuordnung Outputs ===&lt;br /&gt;
&lt;br /&gt;
*In1 = RC2 = PIN13 = ULN5--&amp;gt;12 = OUT1 = PWM &lt;br /&gt;
*In2 = RB3 = PIN24 = ULN6--&amp;gt;11 = OUT2 = TRIAC_A (1) = K5&lt;br /&gt;
*In3 = RB4 = PIN25 = ULN7--&amp;gt;10 = OUT3 = TRIAC_B (2)= K2&lt;br /&gt;
*In4 = RA2 = PIN4  = ULN4--&amp;gt;13 = OUT4 = LED_PRG1 = OPTO D&lt;br /&gt;
*In5 = RC0 = PIN11 = ULN3--&amp;gt;14 = OUT6 = LED_PRG2 = OPTO F&lt;br /&gt;
*In6 = RC1 = PIN12 = ULN2--&amp;gt;15 = OUT7 = LED_PRG3 = OPTO G&lt;br /&gt;
*In7 = RA3 = PIN5  = ULN1--&amp;gt;16 = OUT5 = LED_PRG4 = OPT= E&lt;br /&gt;
&lt;br /&gt;
TRIAC1 ist nahe dem Zerocross&lt;br /&gt;
&lt;br /&gt;
== Ofen / Pizzaofen ==&lt;br /&gt;
=== Leistung und Volumen ===&lt;br /&gt;
* Alls Faustformel wird oft 100W pro Liter Volumen genannt.&lt;br /&gt;
* Ich habe einen sehr preiswerten Ofen gewählt und die &amp;quot;Oberhitze&amp;quot; zusätzlich mit zwei Halogen-Stäben a 300W &amp;quot;verstärkt. Das kostet nicht viel, die Fassung ist für ca. 3 Euro erhältlich, die Halogenstäbe gibt es in jedem Baumarkt. &lt;br /&gt;
* Bezugsquelle Fassung : siehe &amp;quot;Links&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Dämmung ===&lt;br /&gt;
=== Umluft ===&lt;br /&gt;
* Der verwendete Ofen sollte eine Umluftfunktion besitzen, damit sich die Wärme gleichmäßig im Ofen und auf der Leiterplatte verteilen kann.&lt;br /&gt;
&lt;br /&gt;
* Der Umluftbetrieb hat jedoch zur Folge, dass natürlich auch etwas Wärme wieder von der Leiterplatte weggepustet wird. Wenn man nur kleine Leiterplatten hat, kann es von Vorteil sein, diese ohne Umluft zu löten.&lt;br /&gt;
&lt;br /&gt;
== FAQ ==&lt;br /&gt;
&lt;br /&gt;
* Q1: Ich habe einen PT100/PT1000 und möchte den anschließen. Geht das?&lt;br /&gt;
** A1: Ja natürlich. Dazu ist aber etwas externe Elektronik notwendig. Sowohl 2 ADC-Pins (mit 3V3 Betriebsspannung als fixe Referenzspannung), als auch die UART und SPI/I2C-Schnittstelle stehen zur freien Verfügung. Für PT100/PT1000 wird für vernünftige Messungen ohnehin eine Verstärkung (meist mit OPV) von Nöten sein. Da der PIC-interne ADC &amp;quot;nur&amp;quot; 10bit Auflösung bietet sollte ein externer 16bit ADC in Betracht gezogen werden um das Potential der PT100/PT1000 auszunutzen.&lt;br /&gt;
*Q2: Ich habe von günstigen Temperaturmessungen mit Dioden gehört. Geht das auch hier?&lt;br /&gt;
**A2: Ja. Die Vorwärtsspannung einer Diode verhält sich linear zur Sperrschichttemperatur. Diese Spannung (bei 25°C einer Si-Diode die bekannten 0,7V) kann mittels OPV verstärkt werden und auf einen Spannungsbereich von 0 ... 3V3 aufgebläht werden. Eine billige Lösung, auf Kosten der Genauigkeit. Doch eine Diode ist laut Datenblatt nur bis 150°C geeignet. Es ist also beim Löten mehr oder weniger Pfusch. Wenn ich schon eine Reflow-Steuerung baue, sollte ich doch nicht an ein paar Euro für eine gescheite Temperaturmessung sparen. Einige Anregungen vom Messgerätehersteller Keithley bzgl. der Halbleiterphysik mit interessanten Formeln [http://www.keithley.de/support/data?asset=50486]. Oder natürlich der Klassiker von Thomas Pfeifer [http://thomaspfeifer.net/backofen_smd_reflow.htm]. Oder ein Beitrag mit LT-Spice Simulation zum Thema [http://www.mikrocontroller.net/topic/270627#2833883].&lt;br /&gt;
* Q3: God why ... ?&lt;br /&gt;
** A3: Because we can !&lt;br /&gt;
* Q4: Ich hab aber noch nie was mit 230V gemacht.&lt;br /&gt;
**A4: Dann würde ich an Deiner Stelle dieses Projekt NICHT nachbauen.&lt;br /&gt;
* Q5: Warum wurde Altium verwendet und nicht Eagle?&lt;br /&gt;
**A5: Weil es uns kostenlos zur Verfügung stand und wesentlich leistungsfähiger ist. Es ist aber möglich, die Altium-Daten in ein ASCII-Format zu wandeln, welches auch von Eagle geöffnet werden kann - Auf Anfrage...&lt;br /&gt;
&lt;br /&gt;
=Installation USB Treiber=&lt;br /&gt;
Hier mal eine Anleitung, wie der Windows Treiber (z. B. unter Win7) - &lt;br /&gt;
für den in der Firmware verwendeten M-Stack - installiert wird.&lt;br /&gt;
&lt;br /&gt;
1. Unter www.github.com/signal11/m-stack/blob/master/apps/cdc_acm/inf/ &lt;br /&gt;
die Dateie cdc-acm.inf runter laden.&lt;br /&gt;
&lt;br /&gt;
2. USB der Controller-Hardware am PC anstecken. Im Gerätemanager muss &lt;br /&gt;
jetzt unter &amp;quot;Andere Geräte&amp;quot; der Eintrag &amp;quot;USB CDC Test&amp;quot; angezeigt werden.&lt;br /&gt;
&lt;br /&gt;
3. Auf diesem Eintrag &amp;quot;USB CDC Test&amp;quot; im Gerätemanager mit der rechten &lt;br /&gt;
Maustaste klicken und &amp;quot;Treibersoftware aktualisieren&amp;quot; auswählen.&lt;br /&gt;
&lt;br /&gt;
4. Dann den zweiten Punkt (&amp;quot;Auf dem Computer nach Treibersoftware &lt;br /&gt;
suchen&amp;quot;) auswählen.&lt;br /&gt;
&lt;br /&gt;
5. &amp;quot;Durchsuchen&amp;quot; wählen und das Verzeichnis auswählen, in dem sich die &lt;br /&gt;
heruntergeladene Datei cdc-acm.inf befindet.&lt;br /&gt;
&lt;br /&gt;
6. Der Treiber wird nun installiert und danach sollte eine &lt;br /&gt;
Erfolgsmeldung kommen.&lt;br /&gt;
&lt;br /&gt;
7. Im Erfolgsfall wir im Gerätemanager unter &amp;quot;Anschlüsse (COM,...)...&amp;quot; &lt;br /&gt;
z. B.&amp;quot;M-Stack CDS Demo (COM5)&amp;quot; angezeigt.&lt;br /&gt;
&lt;br /&gt;
= Verbesserungen Prototyp - Diese haben jedoch keinen Einfluss auf die Funktion der Leiterplatte=&lt;br /&gt;
&#039;&#039;&#039;Wird in V1.1 gefixt&#039;&#039;&#039;&lt;br /&gt;
* Bauteile weiter weg von den Schraublöchern.--&amp;gt; gefixt&lt;br /&gt;
* Dazu Kreis rund um Bohrung auf Bestückdruck.--&amp;gt; gefixt&lt;br /&gt;
* Masseanbindung Quarz.--&amp;gt; gefixt&lt;br /&gt;
* Klemmen weiter weg vom Rand.--&amp;gt; gefixt&lt;br /&gt;
* Klemme und Sicherungshalter weiter auseinander.--&amp;gt; gefixt&lt;br /&gt;
* Bohrungen für Drossel 0,2mm größer machen.&lt;br /&gt;
* Teilenummer für Conrad-USB-Buchse in BOM übernehmen.&lt;br /&gt;
* Stiftleiste P1  weiter weg von P2 und P4.--&amp;gt; gefixt&lt;br /&gt;
* Varistoren näher an Klemmen platzieren.--&amp;gt; gefixt&lt;br /&gt;
* THT-Kondensatoren für Snubber.--&amp;gt; gefixt&lt;br /&gt;
* Ggf. Stiftleistenbelegung für externe Leds so ändern, das keine extra Vorwiderstände notwendig sind.--&amp;gt; gefixt&lt;br /&gt;
* Befestigungsbohrung für Drossel, um diese mit Kabelbinderung oder Schraube fixieren zu können.--&amp;gt; gefixt&lt;br /&gt;
* Pullup-Widerstand bei MCLR doppelt. --&amp;gt; gefixt&lt;br /&gt;
* Power-LED vorsehen.--&amp;gt; gefixt&lt;br /&gt;
* Leiterbahnen etwas weiter weg von den Kühlkörperanschlüssen--&amp;gt; gefixt&lt;br /&gt;
* Designatoren Texte etwas größer machen.&lt;br /&gt;
* Ein vernünftiger GND-Punkt für einen Tastkopf / Messungen / Aligator-Clips vorsehen.&lt;br /&gt;
* Spannungsversorgung doch Onboard? Oder beides?&lt;br /&gt;
* Leds 90 Grad, Frontplattenmontage--&amp;gt; gefixt&lt;br /&gt;
* Taster 90 Grad Frontplattenmontage--&amp;gt; gefixt&lt;br /&gt;
* Termoelemente Frontplattenmontage??? Termoelementstecker?--&amp;gt; Wird nicht gemacht&lt;br /&gt;
* Schaltausgang 230 V kleiner, weniger Leistungsfähig.--&amp;gt; Wird nicht gemacht&lt;br /&gt;
&lt;br /&gt;
= Errata Projekt =&lt;br /&gt;
&#039;&#039;&#039;Wird in V1.1 gefixt&#039;&#039;&#039;&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:red;&amp;quot;&amp;gt; Triac Symbol in Library falsch, dadurch ist T2 mit T1 vertauscht. Abhilfe für Leiterplattenversion V1.0: T1 und T2 &amp;quot;twisten&amp;quot; und jeweils mit Schrumpfschlauch versehen.( Also Beinchen T1 über kreuz mit Beinchen T2 einlöten...)&amp;lt;/span&amp;gt;&lt;br /&gt;
* Beim MOSFET R39 ist die Masseanbindung falsch. Es bestehen drei Möglichkeiten:&lt;br /&gt;
** 1. 0-R-Brücke für R39 einbauen und auf Strombegrenzung verzichten.&lt;br /&gt;
** 2. Eine Polyfuse mit Bauform 1206 einbauen. &lt;br /&gt;
** 3. Das kleine Leiterbahnstückchen zwischen R38 und R39 unterbrechen und statt dessen die Leiterbahn zwischen R39 und der Klemme mit der Durchkontaktierung bei R38 verbinden.&lt;br /&gt;
* LED-Beschriftung passt nicht ganz (Schaltplan Netlabel OUT1,2,3,4 sind durcheinander gekommen) --&amp;gt; Ist im Prinzip ohne Belang, man muss das nur bei der Software berücksichtigen.&lt;br /&gt;
* Schaltplan UNL2003 fehlerhafte Zuordnung IN5,6,7 &amp;lt;&amp;gt; OUT7,6,5 --&amp;gt; Ist im Prinzip ohne Belang, man muss das nur bei der Software berücksichtigen.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* Diskussion: [http://www.mikrocontroller.net/topic/297217 Diskussion]&lt;br /&gt;
* Software: [http://sourceforge.net/projects/ratcos/ Bei Sourceforge]&lt;br /&gt;
* Dextrel Nulldurchgang: [http://www.dextrel.net/diyzerocrosser.htm Nulldurchgangschaltung]&lt;br /&gt;
* Gehäuse Zeichnung: [http://www.hammondmfg.com/pdf/RM2055L.pdf Großes Gehäuse für Steckdosenmontage]&lt;br /&gt;
* Gehäuse Zeichnung: [http://www.hammondmfg.com/pdf/RM2055M.pdf Kleines Gehäuse, keine Steckdosen]&lt;br /&gt;
* Bezugsquelle [http://www.soselectronic.com/?str=371&amp;amp;artnum=73596&amp;amp;name=hammond-ritec-rm2055l Großes Gehäuse Hammond]&lt;br /&gt;
* Bezugsquelle [http://www.soselectronic.com/?str=371&amp;amp;artnum=73595&amp;amp;name=hammond-ritec-rm2055m Kleines Gehäuse Hammond]&lt;br /&gt;
* Bezugsquelle [http://www.druckerzubehoer.de/shop/product/catid/H-UNIVERSALZUBEHOER_HZB/subcatid/UNIVERSALZUBEHOER_GROUP1_HZB/productid/1727063-390722LA/site/1/lng/de_DE Netzteil Mini USB ]&lt;br /&gt;
* Bezugsquelle [http://www.ebay.de/itm/151037292125?ssPageName=STRK:MEWNX:IT&amp;amp;_trksid=p3984.m1497.l2649 Termoelement Ebay (Typ K für ca. 2Euro)]&lt;br /&gt;
* Bezugsquelle [http://www.artcase-shop.de/index.php?page=search&amp;amp;page_action=query&amp;amp;desc=on&amp;amp;sdesc=on&amp;amp;keywords=pce+105&amp;amp;x=0&amp;amp;y=0 Steckdosen für Schalttafeleinbau:]&lt;br /&gt;
* Bezugsquelle [http://www.schaeffer-ag.de/ Frontplatten]&lt;br /&gt;
* Bezugsquelle [http://www.lichtlieferant.de/catalogsearch/result/?q=r7s+fassung+sockel Vossloh Fassung R7S für Halogenstäbe]&lt;br /&gt;
* Datenblatt Prozessor [http://ww1.microchip.com/downloads/en/DeviceDoc/39632e.pdf PIC18LF2550]&lt;br /&gt;
* Umfangreicher Thread u.A. Leistungsvermögen, Temperaturmessung und Dämmung [http://www.mikrocontroller.net/topic/270627]&lt;br /&gt;
[[Kategorie:PIC-Projekte]]&lt;/div&gt;</summary>
		<author><name>Frankman</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=Reflow_Ofen_Steuerung&amp;diff=80590</id>
		<title>Reflow Ofen Steuerung</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=Reflow_Ofen_Steuerung&amp;diff=80590"/>
		<updated>2014-01-03T12:59:05Z</updated>

		<summary type="html">&lt;p&gt;Frankman: /* Kühlkörpermontage */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Datei:RFB.jpg|thumb|right|200px|Altium 3D Ansicht]]&lt;br /&gt;
[[Datei:pcb.png|thumb|right|200px|Fertige Reflow-Ofen-Steuerung]]&lt;br /&gt;
[[Datei:Teilbest2.jpg|750px|teilbestückte Platine]]&lt;br /&gt;
== Einleitung ==&lt;br /&gt;
&lt;br /&gt;
Hier wird eine weitere Reflow-Ofen-Steuerung beschrieben.&lt;br /&gt;
=== Zum Nachbauen ===&lt;br /&gt;
* Spezifikation: [[Datei: Spec Reflow.pdf]]&lt;br /&gt;
* Schaltplan: &lt;br /&gt;
** Minimalversion [[Datei:Schematic Prints Minimal.pdf]]&lt;br /&gt;
** Standardversion [[Datei:Schematic Prints Standard.pdf]]&lt;br /&gt;
** Deluxeversion [[Datei:Schematic Prints Deluxe.pdf]]&lt;br /&gt;
** Debugversion [[Datei:Schematic Prints Debug.pdf]]&lt;br /&gt;
* Gerberdaten: [[Datei:Gerber Reflow.pdf]]&lt;br /&gt;
* Assemblydrawing: [[Datei:Assembly Reflow.pdf]] &lt;br /&gt;
* Altium-Files: [[Datei:Reflow.zip]]&lt;br /&gt;
* Stückliste als CSV: [[Datei:Reflow.csv]]&lt;br /&gt;
* Stückliste als Open Office: [[Datei:Reflow.ods]]&lt;br /&gt;
* PC Programm: TBD&lt;br /&gt;
* Sourcen PC-Programm: TBD&lt;br /&gt;
* PIC Programm (*.hex): [http://sourceforge.net/projects/reflowofensteue/ ]&lt;br /&gt;
* Sourcen Pic-Programm: [http://sourceforge.net/projects/reflowofensteue/ ]&lt;br /&gt;
* Step-File Steckdose:[[Datei:Steckdose.stp]]&lt;br /&gt;
&lt;br /&gt;
=== Motivation ===&lt;br /&gt;
Die Gründe, eine weitere Steuerung zu entwerfen, waren:&lt;br /&gt;
&lt;br /&gt;
* Die Möglichkeit, auch größere Öfen mit 2 Phasen betreiben zu können.&lt;br /&gt;
* Die Steuerung universell zu gestalten. Es sollte möglich sein, diese nicht nur zum Reflow löten zu verwenden....z.B:&lt;br /&gt;
** Temperatursteuerung für Klimakammer (Heizen, Kühlen)&lt;br /&gt;
** Dimmer mit USB&lt;br /&gt;
** Temperaturregler für ein Tisch-Fondue ( Temperatur halten)&lt;br /&gt;
** Drehzahlsteller mit USB&lt;br /&gt;
** Switchpack&lt;br /&gt;
* Die Schaltung sollte in Altium entwickelt werden. (Warum kein Eagle??? Altium User wissen es.... :-)&lt;br /&gt;
* Die Schaltung sollte mit USB ausgestattet sein.&lt;br /&gt;
&lt;br /&gt;
=== Eigenschaften &amp;amp; Spezifikationen ===&lt;br /&gt;
* Temperaturmessung: bis zu 2x &#039;&#039;&#039;Thermoelement&#039;&#039;&#039; (K-Typ) mit MAX6675 (abgekündigt) oder Nachfolger MAX31855 (pin- aber nicht softwarekompatibel)&lt;br /&gt;
* Leistungsstufen: &#039;&#039;&#039;3 voneinander unabhängige&#039;&#039;&#039; Triacs 800V 25A, limitiert auf &#039;&#039;&#039;10A @ 250VAC&#039;&#039;&#039; (z.B. Oberhitze, Unterhitze, Umluft)&lt;br /&gt;
* Nulldurchgangserkennung ermöglicht Wellenpaket-, und Phasenabschnittssteuerung * Galvanische Trennung der Leistungsendstufen&lt;br /&gt;
* 1x MOSFET-Ausgang PWM z.B. für 12V Lüfter, max. &#039;&#039;&#039;55V 3,5A&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;4 feste Programme&#039;&#039;&#039; im EEPROM über 2-Tasterbedienung und LEDs wähl- und ausführbar. &lt;br /&gt;
* &#039;&#039;&#039;PC-unabhängiger Betrieb&#039;&#039;&#039; möglich. &lt;br /&gt;
* Beliebig viele Programme möglich, bei Betrieb am Computer &lt;br /&gt;
* Mini-USB-Buchse zur Steuerung / Programmierung über GUI und zum Entwickeln. - Dafür ist &#039;&#039;&#039;keine Netzspannung&#039;&#039;&#039; erforderlich&lt;br /&gt;
* Günstiges passendes Gehäuse&lt;br /&gt;
* Alle LEDs und Taster auf &#039;&#039;&#039;Stiftleisten&#039;&#039;&#039; herausgeführt, für eigene Gestaltung der Frontblenden&lt;br /&gt;
* PID-Temperaturregler&lt;br /&gt;
* UART, SPI, I2C und 2x ADC auf Stiftleisten herausgeführt, für zukünftige &#039;&#039;&#039;Erweiterungen&#039;&#039;&#039;&lt;br /&gt;
* Versorgung über USB &amp;lt; 100mA, interne Versorgungsspannung 3,3V&lt;br /&gt;
* umfangreiche EMV-gerechte Entstörung für den Bedarfsfall&lt;br /&gt;
&lt;br /&gt;
=== Zusätzliches Benötigtes Material ===&lt;br /&gt;
* Leiterplatte (1 Stück)&lt;br /&gt;
* Gehäuse Hammond Teilenummer: RM2055L (1 Stück)&lt;br /&gt;
* Alternativ:Gehäuse Hammond Teilenummer: RM2055M (Wenn keine Steckdosen angebracht werden sollen)&lt;br /&gt;
* Alternative: Gehäuse Hammond (Hier muss man die Leiterplatte selber befestigen) Teilenummer: 1455T2201 (1 Stück)&lt;br /&gt;
* Einbausteckdosen Teilenummer: PEC 105 (2-3 Stück, je nach Ausbaustufe)&lt;br /&gt;
* PG-Verschraubung (2-3 Stück)&lt;br /&gt;
* Mutter für PG-Verschraubung (2 Stück)&lt;br /&gt;
* Litze blau, mindestens 1,5mm² (ca. 60cm)&lt;br /&gt;
* Litze braun, mindestens 1,5mm² (ca. 60cm) &lt;br /&gt;
* Litze gelb/grün, mindestens 1,5mm² (ca. 60cm)&lt;br /&gt;
* Aderendhülsen  mit Schutzkragen dazu ( 9 Stück für die Steckdosen)&lt;br /&gt;
* Schrauben, um die Leiterplatte zu befestigen (4 Stück)&lt;br /&gt;
* evtl. Abstandsbolzen dazu, falls das alternative Gehäuse verwendet wird (4 Stück)&lt;br /&gt;
* evtl. Muttern dazu, falls das alternative Gehäuse verwendet wird (4 Stück)&lt;br /&gt;
* Schrauben, Senkkopf DIN 7991 oder DIN 965 M4 X 10 um die Steckdosen zu befestigen (12 Stück)&lt;br /&gt;
* Muttern dazu M4 (12 Stück)&lt;br /&gt;
* Federschreiben  dazu DIN 127 M4 (12 Stück)&lt;br /&gt;
* Glimmerscheiben für Triac (2-3 Stück, je nach Ausbaustufe)&lt;br /&gt;
* Isoliernippel für Triacmontage (2-3 Stück, je nach Ausbaustufe)&lt;br /&gt;
* Zylinderkopfschraube M3 X 12 für Triacmontage (2-3 Stück, je nach Ausbaustufe)&lt;br /&gt;
* Mutter M3 für Triacmontage (2-3 Stück, je nach Ausbaustufe)&lt;br /&gt;
* Beilagscheibe M3 für Triacmontage (2-3 Stück, je nach Ausbaustufe)&lt;br /&gt;
* Isolierband für Triacmontage (ca. 300mm)&lt;br /&gt;
* Gummifüße für das Gehäuse (4 Stück)&lt;br /&gt;
&lt;br /&gt;
=== Kühlkörpermontage===&lt;br /&gt;
[[Datei:kuehlkoerper.jpg|thumb|right|200px|Montagedetail Kühlkörper]]&lt;br /&gt;
* Der Kühlköper sollte 38mm hoch sein, so passt er gut in die angegebenen Gehäuse&lt;br /&gt;
* Der Kühlkörper &amp;lt;span style=&amp;quot;color:red;&amp;quot;&amp;gt;MUSS isoliert montiert werden, also Glimmerscheibe und Isoliernippel einsetzen und NACHMESSEN, ob der Kühlkörper auch wirklich keinen Kontakt zum Triac hat!&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:red;&amp;quot;&amp;gt;Da die 230-V-Leiterbahnen nur durch den Stopplack vom Kühlkörper getrennt sind, sollte die Isolation mit zwei Lagen Gewebe- oder Isolierband verstärkt werden. Das Isolierband kann auf die Leiterplatte oder unter den Kühlkörper geklebt werden.&amp;lt;/span&amp;gt;&lt;br /&gt;
* Als Bohrungsmaß empfehle ich 20mm über der Leiterplatte.&lt;br /&gt;
* Entweder Bohrung 3,2mm für Durchgangsloch für den Triac.&lt;br /&gt;
* Oder Bohrung 2,5mm mit M3-Gewinde für den Triac schneiden.&lt;br /&gt;
* Die Kühlkörper selbst können mit Stiften erworben werden, die man in dei Leiterplatte lötet. Oder Alternativ Bohrungen auf 2,7mm aufbohren und mit Zylinderkopfschraube M2,5 x 8 befestigen.&lt;br /&gt;
&lt;br /&gt;
== Schaltung==&lt;br /&gt;
=== PIC18LF2550 Grundbeschaltung ===&lt;br /&gt;
[[Datei:osc_vs_vcc.png|thumb|right|200px|Taktraten und Versorgungsspannung PIC18F2550 vs. PIC18LF2550, Datenblatt S. 370/438]]&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 3/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Hier kommt ein PIC18&#039;&#039;&#039;L&#039;&#039;&#039;F2550 zum Einsatz. Er verfügt über eine USB-Schnittstelle und ist für Betriebsspannungen von 2 ... 5,5V ausgelegt. Sein Verwandter PIC18F2550 (ohne L) ist nicht für Betriebsspannungen &amp;lt; 4,2V ausgelegt. Dies ist bei USB sowieso nicht immer erfüllt und die Thermoelement-ICs vertragen ohnehin keine 5V, daher wurde die Betriebsspannung auf 3,3V reduziert. Neben Standard-Decoupling (100nF Kerko pro Vcc-Vss-Pärchen) wurde das ICSP-Interface in alt bewährter Pinbelegung (PICKit1,2,3) angebracht. PGD und PGC sind nicht weiter beschaltet, MCRL wird , wie immer als Resetpin verwendet. Der Resetschalter findet sich auf dem Top-Sheet (Schaltplan S. 1/22). Die Taktversorgung erfolgt über einen 24 MHz Quarz (-&amp;gt; USB). Man beachte diesbezüglich rechts stehende Grafik zu Taktraten und Versorgungsspannungen (Vdd bzw. auch Vcc genannt). Auch zu finden im Datenblatt des PICs auf Seite 370.&lt;br /&gt;
&lt;br /&gt;
=== PIC18LF2550 USB Beschaltung ===&lt;br /&gt;
[[Datei:usb_part.png|thumb|right|200px|PIC18(L)F2550&lt;br /&gt;
 Standard &lt;br /&gt;
USB-Beschaltung am PIC]]&lt;br /&gt;
[[Datei:usb_protect.png|thumb|right|200px|USB-Schutzbeschaltung und Mini-USB-Buchse]]&lt;br /&gt;
&lt;br /&gt;
Die Beschaltung der USB-Schnittstelle am PIC ist 1:1 aus dem Datenblatt übernommen. Zum Einsatz kommt eine Mini-USB-Buchse (J1).&lt;br /&gt;
Der Gedanke war: Erstens ein sehr preiswertes, fertiges Netzteil verwenden zu können, (ca. 3,67 € bei druckerzubehoer.de) und zweitens, die Steuerung auch mit dem PC / Laptop versorgen zu können.&lt;br /&gt;
Somit kann die Schaltung OHNE 230V betrieben und debuggt werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 4/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
FER1,2 und C7 filtern den Schirm nach GND. Standardmäßig wird man hier wohl 0-Ohm-Widerstände einsetzen. Falls ein Besuch im EMV-Labor geplant ist, weicht man auf den Ferrit aus. C5 und C6 filtern das Signal zusammen mit der Common-Mode-DrosselL1. Die Drossel kann mit den 0-Ohm-Brücken R8 und R9 überbrückt (gespart) werden. IC2 ist als ESD-Schutz gedacht und kann ebenfalls bei ausgeprägten Kostenbewustsein gespart werden. Die Widerstände R6 und R7 dürfen NICHT bestückt werden. FER1,2, C5, IC2 müssen nicht zwingend bestückt werden. Die Bestückung wurde vorgehalten um im Problemfall einfache Abhilfe schaffen zu können.&lt;br /&gt;
&lt;br /&gt;
=== 3,3V Spannungsversorgung ===&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 2/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Die 3,3V Versorgungsspannung für die gesamte Platine wird aus V_USB mittels des LDO Spannungsreglers TOREX - XC6206P332MR abgeleitet. Günstig, SOT-23, klein, 2x 1µF Kondensatoren benötigt, 3,3V max. 250mA. Der hat auch einen sehr kleinen Ruhestrom.&lt;br /&gt;
&lt;br /&gt;
=== Taster ===&lt;br /&gt;
*Der Resettaster zieht den MCLR-Pin nach GND und löst damit den Reset aus. MCLR  ist mit einem 10k Pullup versehen.&lt;br /&gt;
*Die übrigen beiden Taster ziehen RA4 bzw. RB5 ebenfalls nach GND.&lt;br /&gt;
&lt;br /&gt;
=== LEDs + ULN2003L ===&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 11/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Um alle LEDs auf der Platine (3x Optotriac + 7x Status) ansteuern zu können wurde auf das 7fach Darlington-Array ULN2003L zurückgegriffen. Die PIC-Ausgänge könnten zwar die LEDs direkt steueren. Aber so werden alle Ausgänge einheitlich nach Masse geschaltet. Das verbessert die Testbarkeit der ganzen Platine. ( Mit einem kurzen Masse-Draht kann zur Not der entsprechende Ausgang gesetzt werden, ohne etwas zu zerstören.)&lt;br /&gt;
&lt;br /&gt;
=== MOSFET-Leistungsausgang ===&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 22/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Hier kommt der einfacher N-Kanal MOSFET (LogicLevel) PHT8N06LT zum Einsatz. Er wird über das ULN2003L Array getrieben und ermöglicht den Anschluss eines DC-Verbrauchers mit max. 55V bei 3,5A. Hier könnte beispielsweise ein PC-Lüfter zur Kühlung oder für Umluft angeschlossen und über PWM geregelt/gesteuert werden. Ein Gatewiderstand von 100 Ohm ist zum Schutz des Treibers vorgesehen. Eine 0-Ohm-Brücke ist stattdessen aber auch möglich, wenn man eine höhere Leistung schalten möchte.Die Leiterbahnen sollten die 3A schon hergeben. Der 100 Ohm Widerstand bildet eine Stromquelle. Sobald der Strom durch den MOSFET und den Widerstand 33mA erreicht, sinkt UGS gegen 0 V. Folge: Der Mosfet sperrt ( und bleibt ganz....)&lt;br /&gt;
Es kann hier prinzipiell auch ein anderer Mosfet im SOT223-Gehäuse zum Einsatz kommen. Achten sollte man darauf, das der MOSFET schon bei 3,3V Ugs gut leiten sollte.&lt;br /&gt;
&lt;br /&gt;
=== Nulldurchgangserkennung ===&lt;br /&gt;
[[Datei:zerocross.png|thumb|right|200px|Nulldurchgangserkennung]]&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 5/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Die Nulldurchgangserkennung erfolgt nach einer sehr bekannten - jedoch ausgeklügelten - Schaltung.  [http://www.dextrel.net/diyzerocrosser.htm siehe: Dextrel]&lt;br /&gt;
Während einer Halbwelle wird C14 über R33 und R35 bzw. D5 geladen. Währenddessen ist T1 gesperrt. Sobald die Wechselspannung (L1-N über Spannungsteiler (R33+R35) / R34) kleiner ist als die Spannung über C14, steuert T1 durch. Dann entlädt sich C14 über den LED-Vorwiderstand R32. Der durch-steuernde Optokoppler zieht die Sync-Leitung nach GND. (Pullup Sync-Leitung = R31). Dies löst beim PIC auf INT2 einen Interrupt aus. &lt;br /&gt;
Dieser Interrupt ermöglicht eine präzise Wellenpaket-, Phasenanschnittsteuerung je nach Bedarf. Das Schalten im Nulldurchgang bei der Wellenpaketsteuerung reduziert EMV-Störungen. Für Phasenanschnitt ist ohnehin eine Nulldurchgangserkennung notwendig. Außerdem liefert sie eine genaue Zeitbasis für alle Programmabläufe.&lt;br /&gt;
&lt;br /&gt;
=== Triac-Ausgänge + Snubber ===&lt;br /&gt;
[[Datei:triac.png|thumb|right|200px|Triac-Ausgangsbeschaltung]]&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 19,20,21/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Die Ansteuerung des eigentlichen Leistungstriacs BTA140-800 erfolgt über den Optotriac IS6005. Der Strom durch Letzteren wird durch R1x limitiert (Vorwiderstand). R2x und R5x limitieren wiederum den Strom durch den Optotriac. Wenn dieser zündet so folgt unmittelbar der &amp;quot;Leistungstriac&amp;quot; der dann die Last schaltet.&lt;br /&gt;
&lt;br /&gt;
S1x ist ein Sicherungshalter um die Lasten einzeln absichern zu können. Wert 10A Mittelträge.&lt;br /&gt;
&lt;br /&gt;
R3x, R4x, C3x bilden ein Snubber-Network, L1X verhindert eine zu schnelle Stromanstiegsgeschwindikeit damit der Triac nicht &amp;quot;von selbst&amp;quot; zündet. Weglassen äußert sich meist in einem fast nicht hörbaren Click. Damit zeigt einem dann der Triac, dass er ab jetzt für immer recht niederohmig geworden ist. Die Regelung der Temperatur braucht dann nicht mehr über den Prozessor erfolgen, sondern nur noch mit dem Ein-/Ausschalter..... :-)&lt;br /&gt;
&lt;br /&gt;
=== Thermoelemente (MAX6675/MAX31855)  ===&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 6,7/22&#039;&#039;&#039;&lt;br /&gt;
Der inzwischen abgekündigte MAX6675 bzw. sein ehrenwerter Nachfolger MAX31855 sind einfach zu handhabende Thermoelement-ICs mit Kaltstellenkompensation. Thermoelemente funktionieren durch das Verschweißen zweier verschiedener Legierungen (beim K-Typ Thermoelemnt Ni und CrNi). Durch den durch die Umgebungstemperatur bedingten Wärmefluss zwischen beiden entsteht ein elektrische Spannung. Diese wird von besagten ICs verstärkt und digitalisiert (ADC). Diese Spannung / Temperatur ist natürlich wieder relativ zur Umgebungstemperatur an der Kaltstelle (Kontaktierung der beiden Drähte mit dem Messinstrument). Daher messen diese ICs auch gleich die Umgebungstemperatur (Kaltstellenkompensation genannt) mit, verrechnen das und geben das Ergebnis auf der SPI-Schnittstelle aus. MAX6675 leistet 12bit also 0,25°C Auflösung (nicht Genauigkeit!) über einen Temperaturbereich von 0°C to +1024°C. Außerdem wird ein nicht/fehlerhaft angeschlossenes Thermoelement erkannt. Der Thermocouple-IC wird an die SPI-Schnittstelle des PICs angeschlossen (hier MSSP genannt). &lt;br /&gt;
&lt;br /&gt;
MAX6675 und MAX31855 scheinen entgegen der Adafruit-Information [http://www.adafruit.com/products/269] doch pinkompatibel zu sein - die Ansteuerung unterscheidet sich jedoch definitiv. (Zitat: &amp;quot;Now uses the MAX31855K instead of the MAX6675, so it can measure a wider temperature measurement range. Please note! the MAX31855 is not pin compatible or drop-in code compatible with the MAX6675. We do have an Arduino library for both chips but you&#039;ll need to adjust any existing MAX6675 designs for the mew MAX31855. The MAX6675 has been discontinued by Maxim.&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Es wurden 2 dieser ICs und damit 2 Temperaturmessstellen vorgesehen. Dies ermöglich die Messung für eine Regelung der Temperatur so wie eine zusätzliche Überwachung kritischer Bauteile (z.B. ICs oder LEDs). Die Minimalbestückung sieht einen MAX6675/MAX31855 vor. Die Auswahl in der Firmware erfolgt über einen der beiden GPIO-Pins RA5 oder RA0 via dem ChipSelect (CS) des MAX6675/MAX31855.&lt;br /&gt;
&lt;br /&gt;
Neben dem MAX6675/MAX31855 wurde ein Decoupling-Kondensator (C8x, Standard 100nF) so wie ein weiterer im Messpfad (C9x) zur Zwecken der Entstörung vorgeshen. C9x 100nF sollte nur bestückt werden wenn Probleme bei der Temperaturmessung entstehen (z.B. unrealstisch stark schwankende Werte).&lt;br /&gt;
&lt;br /&gt;
=== ADC, SPI, UART &amp;amp; I2C Stiftleiste ===&lt;br /&gt;
ADC, SPI, UART und I2C sind zu Zwecken der Kalibrierung / Erweiterung / Einstellung / Debugging auf Stiftleisten herausgeführt:&lt;br /&gt;
Ähnlichkeiten mit dem FTDI-USB-TTL-Kabel bzw. Arduino XXX Bla Bla Bla Schnittstellenkonverter sind natürlich rein zufällig.&lt;br /&gt;
&lt;br /&gt;
Die I2C-Schnittstelle wurde auf eine Stiftleiste geführt, um z.B. einem LM75 o.ä. anschließen zu können. Damit stehen zur Kalibrierung der Thermoelemente genaue Temperaturen zur Verfügung.&lt;br /&gt;
&lt;br /&gt;
Die Stiftleisten haben alle ein Raster von 2,54mm. So können Pin-Header, Wannenstecker oder ähnliches verwendet werden.&lt;br /&gt;
&lt;br /&gt;
Da ja viele Leute eigene Vorstellungen bezüglich der Frontplattengestaltung haben, wurden auch die Taster und LEDs auf Stiftleisten geführt.&lt;br /&gt;
&lt;br /&gt;
=== Kühlkörper ===&lt;br /&gt;
Da die Triacs der Steuerung für bis zu 10A pro Kanal ausgelegt sind, kann man auf die Kühlkörper nicht verzichten. Es fallen bei 10A bis zu 13 Watt Wärme pro Triac ab. Falls mann auf die Kühlkörper doch verzichten möchte, sollte man darauf achten, die Triacs mit dem Kopf nach unten einzubauen. Diese können sich dann bei Überlast ganz von selber auslöten.... :-)&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red;&amp;quot;&amp;gt; Die Triacs müssen mit Glimmerscheibe und Isoliernippel -ALSO ISOLIERT ZUM KÜHLKÖRPER- montiert werden.&lt;br /&gt;
Außerdem muss unter dem Kühlkörper ein Stück Isolierband oder FR4 oder Nylon-Scheiben beigelegt werden, um zu verhindern, dass der Stopplack der Leiterplatte beschädigt wird. In diesem Falle hätte man Potential auf dem Kühlkörper.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Gehäuse ===&lt;br /&gt;
Die Leiterplatte wurde für ein Gehäuse von Hammond entwickelt.&lt;br /&gt;
Das Gehäuse ist zwar keine Schönheit, aber doch recht preiswert.&lt;br /&gt;
Typenbezeichnung: RM2055M oder etwas größer RM2055L&lt;br /&gt;
&lt;br /&gt;
== Firmware PIC ==&lt;br /&gt;
* Die Entwicklung der Firmware für den PIC18LF2550  erfolgt mit MPLABX und dem C18 Compiler. &lt;br /&gt;
* MPLABX ist kostenlos, der C18 Compiler bis auf die stärkste Optimierungsstufe ebenfalls. &lt;br /&gt;
* Die Quellen für die Firmware sind offengelegt und können von Sourceforge bezogen werden, siehe Links, weiter unten.&lt;br /&gt;
&lt;br /&gt;
=== Programmstruktur- und ablauf ===&lt;br /&gt;
Nach anfänglicher Initialisierung des PIC startet die Statemachine [http://http://www.mikrocontroller.net/articles/Statemachine] [http://http://de.wikipedia.org/wiki/Endlicher_Automat]. Neben ihr findet in der main-Funktion nur noch die Abfrage der beiden Bedientasten statt. Mit dem Tastendruck wird zum Zwecke der Entprellung ein Timer gestartet. Alles Andere (incl. PID-Regelung, Wellenpaket- bzw. Phasenan- und Phasenabschnittssteuerung und USB) ist interruptbasiert.&lt;br /&gt;
=== Reflow-Ofen-Konfiguration ===&lt;br /&gt;
&lt;br /&gt;
=== Taktversorgung, Nulldurchgangserkennung und Zeitbasis ===&lt;br /&gt;
=== USB ===&lt;br /&gt;
=== SPI für MAX6675 ===&lt;br /&gt;
=== SPI für MAX31855 ===&lt;br /&gt;
&lt;br /&gt;
=== Wellenpaketsteuerung ===&lt;br /&gt;
=== Phasenanschnitt ===&lt;br /&gt;
&lt;br /&gt;
=== PWM für MOSFET ===&lt;br /&gt;
=== PIC-Configword ===&lt;br /&gt;
&lt;br /&gt;
=== Zuordnung Outputs ===&lt;br /&gt;
[[Datei:pinning.png|thumb|right|400px|Input/Output-Funktions-Tabelle]]&lt;br /&gt;
&lt;br /&gt;
*In1 = RC2 = PIN13 = ULN5--&amp;gt;12 = OUT1 = PWM &lt;br /&gt;
*In2 = RB3 = PIN24 = ULN6--&amp;gt;11 = OUT2 = TRIAC_A (1) = K5&lt;br /&gt;
*In3 = RB4 = PIN25 = ULN7--&amp;gt;10 = OUT3 = TRIAC_B (2)= K2&lt;br /&gt;
*In4 = RA2 = PIN4  = ULN4--&amp;gt;13 = OUT4 = LED_PRG1 = OPTO D&lt;br /&gt;
*In5 = RC0 = PIN11 = ULN3--&amp;gt;14 = OUT6 = LED_PRG2 = OPTO F&lt;br /&gt;
*In6 = RC1 = PIN12 = ULN2--&amp;gt;15 = OUT7 = LED_PRG3 = OPTO G&lt;br /&gt;
*In7 = RA3 = PIN5  = ULN1--&amp;gt;16 = OUT5 = LED_PRG4 = OPT= E&lt;br /&gt;
&lt;br /&gt;
TRIAC1 ist nahe dem Zerocross&lt;br /&gt;
&lt;br /&gt;
== PC-Software (GUI) ==&lt;br /&gt;
[[Datei:gui_alpha.png|thumb|right|300px|Screenshot der GUI (noch Alpha) für den Reflow-Ofen-Controller]]&lt;br /&gt;
&lt;br /&gt;
Die GUI (englisch Graphical User Interface) ist der Einfachheit halber in VB.net programmiert und momentan noch im Alpha-Stadium. Auch hierfür liegen die Quellen später selbstverständlich offen.&lt;br /&gt;
&lt;br /&gt;
=== Funktionen und Modi ===&lt;br /&gt;
[[Datei:modi.png|thumb|right|400px|Auswahl der beschriebenen Modi durch Klick]]&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Ofen-Profil&amp;quot;&#039;&#039;&#039; - Es wird ein Programm (Temperaturkurve) aus dem EEPROM des Reflow-Ofens ausgeführt. Der Backvorgang kann mit der Software gesteuert (START, STOP, ...) und überwacht werden. Hierzu stehen Temperatur, Temperaturänderung, Heizleistung (Ober- und Unterhitze, Lüfter) so wie die graphische Darstellung im zentralen Diagramm zur Verfügung. Eingriffsmöglichkeiten, wie das Ändern der Temperaturkurve sind nicht vorgesehen. Dies soll ein reiner Überwachungs-Modus sein. Um die Temperaturkurve zu verändern zu können, sollte der Modus &amp;quot;PC-Profil&amp;quot; verwendet werden und die Temperaturkurve aus dem EEPROM importiert werden. Dann kann Selbige auch verändert und anschließend ausgeführt bzw. verändert in den EEPROM zurückgeschrieben werden. Dieser Modus stellt ein Äquivalent zur START/STOP-Tasten-Bedienung an der Platine dar und kann selbstverständlich parallel dazu genutzt werden. Die GUI also als Addon zum Stand-Alone-Betrieb.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;PC-Profil&amp;quot;&#039;&#039;&#039; - Es wird ein Programm (Temperaturkurve) ausgeführt welche zuvor am Computer erstellt / editiert wurde. In diesem Modus gibt der Computer Temperaturwerte vor, welche live über die USB-Schnittstelle zum PIC übertragen werden und mit dem dort integrierten PID-Regler ausgeführt werden. Das ermöglicht eine on-the-fly Veränderung der Temperaturkurve während des Backvorgangs. Temperaturkurven können aus Dateien oder dem EEPROM importiert und auch wieder exportiert werden. CSV-Dateien können ebenfalls importiert und exportiert werden. Die &amp;quot;Eingabe&amp;quot; der Temperaturkurve erfolgt entweder über Import (CSV/EEPROM), per Mausklick auf dem zentralen Diagramm oder im sog. DataGridView. Weiteres siehe Unterpunkt &amp;quot;Eingabe der Temperaturkurve (Reflowprofil)&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;manueller Ablauf&amp;quot;&#039;&#039;&#039; - In diesem Modus wird (im Gegensatz zu den oberen beiden Modi &amp;quot;Ofen-Profil&amp;quot; und &amp;quot;PC-Profil&amp;quot;) keine Temperatur geregelt. Hier wird die Leistung des Ofens in % eingestellt und gesteuert. Der PID-Regler ist nicht in Aktion. Die Temperatur, Temperaturänderung so wie der Temperaturverlauf werden selbstredend angezeigt bzw. im Diagramm dargestellt. Der Modus &amp;quot;manueller Ablauf&amp;quot; fährt ähnlich dem Modus &amp;quot;PC-Profil&amp;quot; die im DataGridView eingetragenen Leistungs-Zeit-Punkte ab. Für jeden Zeitpunkt ist eine Leistung vorgegeben. Die Eingabe erfolgt ähnlich wie unter &amp;quot;Eingabe der Temperaturkurve (Reflowprofil)&amp;quot; beschrieben. Nur eben, dass eine Leistung und keine Temperatur angegeben wird. Die Eingabe der Leistung kann nicht im Zeit-Temperatur-Diagramm erfolgen sondern mittels der Schieberegler oder direkt tabellarisch.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;manueller Modus&amp;quot;&#039;&#039;&#039; - Dieser Modus enthält 2 Submodi&lt;br /&gt;
** &amp;quot;manueller Leistungsmodus&amp;quot; - Auch in diesem Modus wird die Leistung gesteuert. Es wird keine Temperatur geregelt, der PID-Regler für die Temperatur ist nicht in Betrieb. Die Einstellung hier erfolgt über die drei Schieberegler oder über eine numerische Eingabe durch Klick auf die Leistungsangabe unter dem Schieberegler. Durch Klick auf die Texte &amp;quot;TOP&amp;quot;, &amp;quot;BOTTOM&amp;quot;, &amp;quot;FAN&amp;quot; (Oberhitze, Unterhitze, Lüfter) können selbige deaktiviert bzw. aktiviert werden. Auch in diesem Modus wird Temperatur, Temperaturänderung so wie der Temperaturverlauf dargestellt.&lt;br /&gt;
** &amp;quot;manueller Temperaturmodus&amp;quot; - Hier wird die Temperatur wieder mittels des Temperatur-PIDs geregelt. Die Temperatur wird entweder mittels Schieberegler (Ober- und Unterhitze-Regler sind jetzt gekoppelt) oder durch eine numerische Eingabe unterhalb der Schieberegler vorgegeben. Anzeige wie im &amp;quot;manuellen Leistungsmodus&amp;quot;. Der Lüfter kann unabhängig vom PID in seiner Leistung geregelt werden. Ein evtl. durch den Luftstrom verursachter Temperaturabfall wird vom PID selbstverständlich ausgeregelt (aus diesem Grunde ist es ja ein Regler).&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Programmieren&amp;quot;&#039;&#039;&#039; - Hier kann ein neues &#039;&#039;&#039;Temperatur&#039;&#039;&#039;-Programm für den EEPROM-Speicher des Ofens erstellt und editiert werden. Die Eingabemöglichkeiten sind unter &amp;quot;Eingabe der Temperaturkurve (Reflowprofil)&amp;quot; beschrieben. Dieser Modus ist zum reinen Programmieren des Ofens gedacht und ermöglicht keine weitere Steuerung oder Überwachung des Ofens.&lt;br /&gt;
&lt;br /&gt;
=== Eingabe der Temperaturkurve (Reflowprofil) ===&lt;br /&gt;
[[Datei:datagridview.png|thumb|right|400px|tabellarische Anzeige und Editiermöglichkeit der Temperaturkurve]]&lt;br /&gt;
Die Eingabe der Temperaturkurve erfolgt entweder über Import (CSV/EEPROM), per Mausklick auf dem zentralen Diagramm oder im sog. DataGridView (Excel-ähnliche Bedienung in tabellarischer Form). &lt;br /&gt;
&lt;br /&gt;
* CSV-Import + Export&lt;br /&gt;
* EEPROM-Import + Export&lt;br /&gt;
* Im rechts stehenden Screenshotbeispiel wird eine tabellarische Eingabeform mit einem DataGridView gezeigt: Die Temperatur (erster Temperaturpunkt = Punkt 0) von 100°C wird linear über einen Zeitraum von 0-30s verteilt. Bei 30s hat der Ofen die Temperatur von 100°C. Dafür setzt die Regelung die Oberhitze, die Unterhitze ein. Der Lüfter ist deaktiviert. In der Zeit von 30s bis 120s wird die Temperatur nun von 100°C auf 150°C linear angehoben. Von 120s bis 180s Backzeit steigt die Temperatur von 150°C auf 250°C. Von 180s bis 200s wird die Temperatur auf 280°C angehoben. Anschließend wird sie zwischen 200s und 220s auf 280°C gehalten (280°C@200s und 280°C@220s) um dann bis 240s wieder auf 250°C zu fallen. Bis zum Zeitpunkt 300s wird dann die Temperatur 30°C angestrebt. Zusätzlich ist der Lüfter nun aktiviert (soweit der Ofen eine Umluftfunktion besitzt). Bei Punkt 7 sind Ober- und Unterhitze deaktiviert nur noch der Lüfter kühlt. Da hier bei &amp;quot;Zeit[s]&amp;quot; die 0 eingetragen wird der Zustand (hier nur Lüfter an) für einen unendlich langen Zeitraum auf 0 gehalten. Also so lange wie das Programm aktiviert ist wird der Lüfter laufen. Natürlich könnte man hier auch z.B. 100°C und Zeitpunkt 0s eintragen. Dann würde der Ofen bis zum manuellen Beenden des Programms (klick auf STOP-Button oder Drücken des START/STOP-Tasters auf der Platine/Steuerung) 100°C halten.&lt;br /&gt;
* Alle Zellen des DataGridView sind editierbar (zur Veränderung der Temperatur, Zeitpunkt, ...)&lt;br /&gt;
* Direkter Klick auf das zentrale Temperatur-Zeit-Diagramm trägt den Zeitpunkt so wie die Temperatur unter dem Mauszeiger in die Tabelle (das DataGridView) ein. Die ausgewählte Zeile wird beschrieben oder überschrieben. Neue Zeilen (also Temperatur-Zeit-Punkte) können durch klick auf den &amp;quot;Plus-Button&amp;quot; hinzugefügt werden. Ebenso ist das Löschen oder Verschieben einer oder mehrerer Zeile gleichzeitig möglich.&lt;br /&gt;
&lt;br /&gt;
=== Beschreibung der Steuerungsmöglichkeiten ===&lt;br /&gt;
In Abhängigkeit des gewählten Modus bestehen einige Steuerungs-, Einstellungs- und Kontrollmöglichkeiten:&lt;br /&gt;
* &#039;&#039;&#039;Schieberegler&#039;&#039;&#039; für Temperatur od. Leistung (je nach Modus) für Oberhitze, Unterhitze und Lüfter. Je nach Hardwareausführung. &lt;br /&gt;
** Klick auf &amp;quot;TOP&amp;quot;, &amp;quot;BOTTOM&amp;quot; oder &amp;quot;FAN&amp;quot; aktiviert oder deaktiviert die entsprechende Funktion bzw. Hardware.&lt;br /&gt;
** Numerische Eingabe der Werte für die Schieberegler durch Klick auf die Anzeige unterhalb der Schieberegler. Werte können auch im deaktivierten Zustand angegeben werden. Die Übernahme erfolgt durch den &amp;quot;Aktivierungsklick&amp;quot; auf &amp;quot;TOP&amp;quot;, &amp;quot;BOTTOM&amp;quot; oder &amp;quot;FAN&amp;quot;&lt;br /&gt;
* &#039;&#039;&#039;T1, dT1, T2, dT2&#039;&#039;&#039; - Anzeige der gemessenen Temperatur so wie die momentane Temperaturänderung am jeweiligen Sensor. &lt;br /&gt;
* &#039;&#039;&#039;Bedienbuttons&#039;&#039;&#039;&lt;br /&gt;
** Play - Startet das Programm am angegebenen Startpunkt (siehe unten)&lt;br /&gt;
** Pause - Pausiert das Programm - weitere Pauseoptionen siehe unten&lt;br /&gt;
** Stop - Stopt den Programmablauf&lt;br /&gt;
** Vor / Zurück - Springt zwischen Temperaturpunkten hin und her. Dient zum überspringen oder zurückspringen zu gewissen Temperatur-Zeit-Punkten. Ermöglicht z.B. das Überspringen eines Ablaufes der eine lange Preheat- oder Dryphase hat.&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Status&amp;quot;&#039;&#039;&#039; - zeigt den aktuellen Zustand des Programms an (READY, START, WAITING, PAUSE, ...)&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;RESET&amp;quot;&#039;&#039;&#039; - setzt das (begonnene) Programm zurück. Beinhaltet neben dem Programmablauf auch das Zurücksetzen der graphischen Anzeige des Diagramms, etc.&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Startpunkt&amp;quot;&#039;&#039;&#039; - legt den ersten Punkt des Programmablaufes fest. &lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Wiederholungen&amp;quot;&#039;&#039;&#039; - ermöglicht das wiederholte Backen ohne das Programm händisch immer wieder neu starten zu müssen. Die Anzahl der Wiederholungen ist einstellbar (0 für unendlich viele) und es ist eine Wartezeit zwischen den Wiederholungen einstellbar. Alternativ kann eine Meldung nach jedem vollendeten Backvorgang abgegeben werden. Nach Bestätigung dieser wird die nächste Wiederholung ausgeführt.&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Pause&amp;quot;&#039;&#039;&#039; - Pauseneinstellungen. Hier sind Optionen wählbar was passieren soll, falls der Pausebutton betätigt wird:&lt;br /&gt;
** Pausezeit - gibt an wie lange die Pause dauern soll [s], danach fährt das Programm automatisch gemäß des gewählten Pausemodus fort. Für eine Pause ohne automatisches Fortfahren (Countdowntimer) &#039;0&#039; angeben.&lt;br /&gt;
** Pausemodus &amp;quot;aktuelle Temperatur halten, WarmUp, Fortsetzen&amp;quot; - Ofen hält die Temperatur (Zieltemperatur) des Zeitpunktes als der Pausebutton betätigt wurde. WarmUp bedeutet, dass nach dem Beenden des Pausemodus zunächst die Zieltemperatur wieder erreicht werden &#039;&#039;&#039;muss&#039;&#039;&#039; bevor der nächste Punkt angesteuert wird. Klingt paradox, wenn die Temperatur doch so und so gehalten wird, ist aber nicht so. Die Wahrscheinlichkeit ist hoch, dass der Pausemodus benutzt wird um die Ofentüre zu öffnen und Korrekturen an der Platine vorzunehmen. Unter Umständen ist die Heizung des Ofens jedoch nicht in der Lage den dadurch entstehenden Wärmeverlust zu kompensieren. Fährt das Programm dann sofort fort, so könnten evtl. kritische (Hoch-)Punkte des Lötprofils &amp;quot;unterfahren&amp;quot; werden. Dem wirkt WarmUp entgegen.&lt;br /&gt;
** Pausemodus &amp;quot;aktuelle Temperatur halten, Fortsetzen&amp;quot; - siehe oben, nur ohne WarmUp.&lt;br /&gt;
** Pausemodus &amp;quot;definierte Temperatur halten, WarmUp, Fortsetzen&amp;quot; - siehe oben. Statt der aktuellen Zieltemperatur wird jedoch nun im Pausemodus eine einzustellende Pausetemperatur gehalten. Mit WarmUp.&lt;br /&gt;
** Pausemodus &amp;quot;definierte Temperatur halten, Fortsetzen&amp;quot; - siehe oben, nur ohne WarmUp.&lt;br /&gt;
** &amp;quot;Pausetemperatur&amp;quot; - spezielle Temperatur die bei entsprechender Pausemoduswahl für die Dauer der Pause gehalten wird.&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Ende&amp;quot;&#039;&#039;&#039; - gibt an was am Ende eines durchlaufenen Reflow-Programms passieren soll. Ist der Wiederholungsmodus aktiviert, tritt dieses Ereignis erst nach Durchlauf aller Wiederholungen ein. Folgende Modi sind möglich:&lt;br /&gt;
** automatischer Reset - am Ende des Programms wird alles automatisch zurückgesetzt, alle Graphiken und Anzeigen gelöscht.&lt;br /&gt;
** manueller Reset - am Ende des Programms bleiben alle Anzeigen, Graphiken, etc erhalten und müssen vor Beginn eines neuen Reflowvorgangs händisch durch Klick auf &amp;quot;RESET&amp;quot; zurückgesetzt werden.&lt;br /&gt;
** Benutzermeldung - lässt eine Meldung erscheinen. Alle Anzeigen und Graphiken bleiben erhalten bis der Benutzer diese Meldung bestätigt. Mit Bestätigung dieser Meldung wird ein automatischer Reset vorgenommen.&lt;br /&gt;
&lt;br /&gt;
=== Loggen des Temperaturverlaufes ===&lt;br /&gt;
Es ist möglich jeden Backvorgang in eine CSV-Datei zu loggen. (Software- und PID-Einstellungen). Geloggte CSV-Dateien können eingelesen und im zentralen Temperatur-Zeit-Diagramm begutachtet werden. Ein Ist-Soll-Vergleich ist ebenso möglich wie die direkte Anzeige des Fehlers (&amp;quot;Ist minus Soll&amp;quot;). Dank CSV können die Daten auch mit anderen Programmen (Excel, etc.) weiterverarbeitet werden.&lt;br /&gt;
&lt;br /&gt;
== Ofen / Pizzaofen ==&lt;br /&gt;
=== Leistung und Volumen ===&lt;br /&gt;
* Alls Faustformel wird oft 100W pro Liter Volumen genannt.&lt;br /&gt;
* Ich habe einen sehr preiswerten Ofen gewählt und die &amp;quot;Oberhitze&amp;quot; zusätzlich mit zwei Halogen-Stäben a 300W &amp;quot;verstärkt. Das kostet nicht viel, die Fassung ist für ca. 3 Euro erhältlich, die Halogenstäbe gibt es in jedem Baumarkt. &lt;br /&gt;
* Bezugsquelle Fassung : siehe &amp;quot;Links&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Dämmung ===&lt;br /&gt;
=== Umluft ===&lt;br /&gt;
* Der verwendete Ofen sollte eine Umluftfunktion besitzen, damit sich die Wärme gleichmäßig im Ofen und auf der Leiterplatte verteilen kann.&lt;br /&gt;
&lt;br /&gt;
== FAQ ==&lt;br /&gt;
&lt;br /&gt;
* Q1: Ich habe einen PT100/PT1000 und möchte den anschließen. Geht das?&lt;br /&gt;
** A1: Ja natürlich. Dazu ist aber etwas externe Elektronik notwendig. Sowohl 2 ADC-Pins (mit 3V3 Betriebsspannung als fixe Referenzspannung), als auch die UART und SPI/I2C-Schnittstelle stehen zur freien Verfügung. Für PT100/PT1000 wird für vernünftige Messungen ohnehin eine Verstärkung (meist mit OPV) von Nöten sein. Da der PIC-interne ADC &amp;quot;nur&amp;quot; 10bit Auflösung bietet sollte ein externer 16bit ADC in Betracht gezogen werden um das Potential der PT100/PT1000 auszunutzen.&lt;br /&gt;
*Q2: Ich habe von günstigen Temperaturmessungen mit Dioden gehört. Geht das auch hier?&lt;br /&gt;
**A2: Ja. Die Vorwärtsspannung einer Diode verhält sich linear zur Sperrschichttemperatur. Diese Spannung (bei 25°C einer Si-Diode die bekannten 0,7V) kann mittels OPV verstärkt werden und auf einen Spannungsbereich von 0 ... 3V3 aufgebläht werden. Eine billige Lösung, auf Kosten der Genauigkeit. Doch eine Diode ist laut Datenblatt nur bis 150°C geeignet. Es ist also beim Löten mehr oder weniger Pfusch. Wenn ich schon eine Reflow-Steuerung baue, sollte ich doch nicht an ein paar Euro für eine gescheite Temperaturmessung sparen. Einige Anregungen vom Messgerätehersteller Keithley bzgl. der Halbleiterphysik mit interessanten Formeln [http://www.keithley.de/support/data?asset=50486]. Oder natürlich der Klassiker von Thomas Pfeifer [http://thomaspfeifer.net/backofen_smd_reflow.htm]. Oder ein Beitrag mit LT-Spice Simulation zum Thema [http://www.mikrocontroller.net/topic/270627#2833883].&lt;br /&gt;
* Q3: God why ... ?&lt;br /&gt;
** A3: Because we can !&lt;br /&gt;
* Q4: Ich hab aber noch nie was mit 230V gemacht.&lt;br /&gt;
**A4: Dann würde ich an Deiner Stelle dieses Projekt NICHT nachbauen.&lt;br /&gt;
* Q5: Warum wurde Altium verwendet und nicht Eagle?&lt;br /&gt;
**A5: Weil es uns kostenlos zur Verfügung stand und wesentlich leistungsfähiger ist.&lt;br /&gt;
&lt;br /&gt;
= Verbesserungen Prototyp - Diese haben jedoch keinen Einfluss auf die Funktion der Leiterplatte=&lt;br /&gt;
* Bauteile weiter weg von den Schraublöchern.&lt;br /&gt;
* Dazu Kreis rund um Bohrung auf Bestückdruck.&lt;br /&gt;
* Masseanbindung Quarz.&lt;br /&gt;
* Klemmen weiter weg vom Rand.&lt;br /&gt;
* Klemme und Sicherungshalter weiter auseinander.&lt;br /&gt;
* Bohrungen für Drossel 0,2mm größer machen.&lt;br /&gt;
* Teilenummer für Conrad-USB-Buchse in BOM übernehmen.&lt;br /&gt;
* Stiftleiste P1  weiter weg von P2 und P4.&lt;br /&gt;
* Varistoren näher an Klemmen platzieren.&lt;br /&gt;
* THT-Kondensatoren für Snubber.&lt;br /&gt;
* Ggf. Stiftleistenbelegung für externe Leds so ändern, das keine extra Vorwiderstände notwendig sind.&lt;br /&gt;
* Befestigungsbohrung für Drossel, um diese mit Kabelbinderung oder Schraube fixieren zu können.&lt;br /&gt;
* Pullup-Widerstand bei MCLR doppelt. &lt;br /&gt;
* Power-LED vorsehen.&lt;br /&gt;
* Leiterbahnen etwas weiter weg von den Kühlkörperanschlüssen&lt;br /&gt;
* Designatoren Texte etwas größer machen.&lt;br /&gt;
* Ein vernünftiger GND-Punkt für einen Tastkopf / Messungen / Aligator-Clips vorsehen.&lt;br /&gt;
* Spannungsversorgung doch Onboard? Oder beides?&lt;br /&gt;
* Leds 90 Grad, Frontplattenmontage&lt;br /&gt;
* Taster 90 Grad Frontplattenmontage&lt;br /&gt;
* Termoelemente Frontplattenmontage??? Termoelementstecker?&lt;br /&gt;
* Schaltausgang 230 V kleiner, weniger Leistungsfähig.&lt;br /&gt;
&lt;br /&gt;
= Errata Projekt =&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:red;&amp;quot;&amp;gt; Triac Symbol in Library falsch, dadurch ist T2 mit T1 vertauscht. Abhilfe für Leiterplattenversion V1.0: T1 und T2 &amp;quot;twisten&amp;quot; und jeweils mit Schrumpfschlauch versehen.( Also Beinchen T1 über kreuz mit Beinchen T2 einlöten...)&amp;lt;/span&amp;gt;&lt;br /&gt;
* Beim MOSFET R39 ist die Masseanbindung falsch. Es bestehen drei Möglichkeiten:&lt;br /&gt;
** 1. 0-R-Brücke für R39 einbauen und auf Strombegrenzung verzichten.&lt;br /&gt;
** 2. Eine Polyfuse mit Bauform 1206 einbauen. &lt;br /&gt;
** 3. Das kleine Leiterbahnstückchen zwischen R38 und R39 unterbrechen und statt dessen die Leiterbahn zwischen R39 und der Klemme mit der Durchkontaktierung bei R38 verbinden.&lt;br /&gt;
* LED-Beschriftung passt nicht ganz (Schaltplan Netlabel OUT1,2,3,4 sind durcheinander gekommen) --&amp;gt; Ist im Prinzip ohne Belang, man muss das nur bei der Software berücksichtigen.&lt;br /&gt;
* Schaltplan UNL2003 fehlerhafte Zuordnung IN5,6,7 &amp;lt;&amp;gt; OUT7,6,5 --&amp;gt; Ist im Prinzip ohne Belang, man muss das nur bei der Software berücksichtigen.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* Diskussion: [http://www.mikrocontroller.net/topic/297217 Diskussion]&lt;br /&gt;
* Software: [http://sourceforge.net/projects/reflowofensteue/ Bei Sourceforge]&lt;br /&gt;
* Dextrel Nulldurchgang: [http://www.dextrel.net/diyzerocrosser.htm Nulldurchgangschaltung]&lt;br /&gt;
* Gehäuse Zeichnung: [http://www.hammondmfg.com/pdf/RM2055L.pdf Großes Gehäuse für Steckdosenmontage]&lt;br /&gt;
* Gehäuse Zeichnung: [http://www.hammondmfg.com/pdf/RM2055M.pdf Kleines Gehäuse, keine Steckdosen]&lt;br /&gt;
* Bezugsquelle [http://www.soselectronic.com/?str=371&amp;amp;artnum=73596&amp;amp;name=hammond-ritec-rm2055l Großes Gehäuse Hammond]&lt;br /&gt;
* Bezugsquelle [http://www.soselectronic.com/?str=371&amp;amp;artnum=73595&amp;amp;name=hammond-ritec-rm2055m Kleines Gehäuse Hammond]&lt;br /&gt;
* Bezugsquelle [http://www.druckerzubehoer.de/shop/product/catid/H-UNIVERSALZUBEHOER_HZB/subcatid/UNIVERSALZUBEHOER_GROUP1_HZB/productid/1727063-390722LA/site/1/lng/de_DE Netzteil Mini USB ]&lt;br /&gt;
* Bezugsquelle [http://www.ebay.de/itm/151037292125?ssPageName=STRK:MEWNX:IT&amp;amp;_trksid=p3984.m1497.l2649 Termoelement Ebay (Typ K für ca. 2Euro)]&lt;br /&gt;
* Bezugsquelle [http://www.artcase-shop.de/index.php?page=search&amp;amp;page_action=query&amp;amp;desc=on&amp;amp;sdesc=on&amp;amp;keywords=pce+105&amp;amp;x=0&amp;amp;y=0 Steckdosen für Schalttafeleinbau:]&lt;br /&gt;
* Bezugsquelle [http://www.schaeffer-ag.de/ Frontplatten]&lt;br /&gt;
* Bezugsquelle [http://www.lichtlieferant.de/catalogsearch/result/?q=r7s+fassung+sockel Vossloh Fassung R7S für Halogenstäbe]&lt;br /&gt;
* Datenblatt Prozessor [http://ww1.microchip.com/downloads/en/DeviceDoc/39632e.pdf PIC18LF2550]&lt;br /&gt;
* Umfangreicher Thread u.A. Leistungsvermögen, Temperaturmessung und Dämmung [http://www.mikrocontroller.net/topic/270627]&lt;br /&gt;
[[Kategorie:PIC-Projekte]]&lt;/div&gt;</summary>
		<author><name>Frankman</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=Reflow_Ofen_Steuerung&amp;diff=80589</id>
		<title>Reflow Ofen Steuerung</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=Reflow_Ofen_Steuerung&amp;diff=80589"/>
		<updated>2014-01-03T12:57:03Z</updated>

		<summary type="html">&lt;p&gt;Frankman: /* Kühlkörpermontage */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Datei:RFB.jpg|thumb|right|200px|Altium 3D Ansicht]]&lt;br /&gt;
[[Datei:pcb.png|thumb|right|200px|Fertige Reflow-Ofen-Steuerung]]&lt;br /&gt;
[[Datei:Teilbest2.jpg|750px|teilbestückte Platine]]&lt;br /&gt;
== Einleitung ==&lt;br /&gt;
&lt;br /&gt;
Hier wird eine weitere Reflow-Ofen-Steuerung beschrieben.&lt;br /&gt;
=== Zum Nachbauen ===&lt;br /&gt;
* Spezifikation: [[Datei: Spec Reflow.pdf]]&lt;br /&gt;
* Schaltplan: &lt;br /&gt;
** Minimalversion [[Datei:Schematic Prints Minimal.pdf]]&lt;br /&gt;
** Standardversion [[Datei:Schematic Prints Standard.pdf]]&lt;br /&gt;
** Deluxeversion [[Datei:Schematic Prints Deluxe.pdf]]&lt;br /&gt;
** Debugversion [[Datei:Schematic Prints Debug.pdf]]&lt;br /&gt;
* Gerberdaten: [[Datei:Gerber Reflow.pdf]]&lt;br /&gt;
* Assemblydrawing: [[Datei:Assembly Reflow.pdf]] &lt;br /&gt;
* Altium-Files: [[Datei:Reflow.zip]]&lt;br /&gt;
* Stückliste als CSV: [[Datei:Reflow.csv]]&lt;br /&gt;
* Stückliste als Open Office: [[Datei:Reflow.ods]]&lt;br /&gt;
* PC Programm: TBD&lt;br /&gt;
* Sourcen PC-Programm: TBD&lt;br /&gt;
* PIC Programm (*.hex): [http://sourceforge.net/projects/reflowofensteue/ ]&lt;br /&gt;
* Sourcen Pic-Programm: [http://sourceforge.net/projects/reflowofensteue/ ]&lt;br /&gt;
* Step-File Steckdose:[[Datei:Steckdose.stp]]&lt;br /&gt;
&lt;br /&gt;
=== Motivation ===&lt;br /&gt;
Die Gründe, eine weitere Steuerung zu entwerfen, waren:&lt;br /&gt;
&lt;br /&gt;
* Die Möglichkeit, auch größere Öfen mit 2 Phasen betreiben zu können.&lt;br /&gt;
* Die Steuerung universell zu gestalten. Es sollte möglich sein, diese nicht nur zum Reflow löten zu verwenden....z.B:&lt;br /&gt;
** Temperatursteuerung für Klimakammer (Heizen, Kühlen)&lt;br /&gt;
** Dimmer mit USB&lt;br /&gt;
** Temperaturregler für ein Tisch-Fondue ( Temperatur halten)&lt;br /&gt;
** Drehzahlsteller mit USB&lt;br /&gt;
** Switchpack&lt;br /&gt;
* Die Schaltung sollte in Altium entwickelt werden. (Warum kein Eagle??? Altium User wissen es.... :-)&lt;br /&gt;
* Die Schaltung sollte mit USB ausgestattet sein.&lt;br /&gt;
&lt;br /&gt;
=== Eigenschaften &amp;amp; Spezifikationen ===&lt;br /&gt;
* Temperaturmessung: bis zu 2x &#039;&#039;&#039;Thermoelement&#039;&#039;&#039; (K-Typ) mit MAX6675 (abgekündigt) oder Nachfolger MAX31855 (pin- aber nicht softwarekompatibel)&lt;br /&gt;
* Leistungsstufen: &#039;&#039;&#039;3 voneinander unabhängige&#039;&#039;&#039; Triacs 800V 25A, limitiert auf &#039;&#039;&#039;10A @ 250VAC&#039;&#039;&#039; (z.B. Oberhitze, Unterhitze, Umluft)&lt;br /&gt;
* Nulldurchgangserkennung ermöglicht Wellenpaket-, und Phasenabschnittssteuerung * Galvanische Trennung der Leistungsendstufen&lt;br /&gt;
* 1x MOSFET-Ausgang PWM z.B. für 12V Lüfter, max. &#039;&#039;&#039;55V 3,5A&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;4 feste Programme&#039;&#039;&#039; im EEPROM über 2-Tasterbedienung und LEDs wähl- und ausführbar. &lt;br /&gt;
* &#039;&#039;&#039;PC-unabhängiger Betrieb&#039;&#039;&#039; möglich. &lt;br /&gt;
* Beliebig viele Programme möglich, bei Betrieb am Computer &lt;br /&gt;
* Mini-USB-Buchse zur Steuerung / Programmierung über GUI und zum Entwickeln. - Dafür ist &#039;&#039;&#039;keine Netzspannung&#039;&#039;&#039; erforderlich&lt;br /&gt;
* Günstiges passendes Gehäuse&lt;br /&gt;
* Alle LEDs und Taster auf &#039;&#039;&#039;Stiftleisten&#039;&#039;&#039; herausgeführt, für eigene Gestaltung der Frontblenden&lt;br /&gt;
* PID-Temperaturregler&lt;br /&gt;
* UART, SPI, I2C und 2x ADC auf Stiftleisten herausgeführt, für zukünftige &#039;&#039;&#039;Erweiterungen&#039;&#039;&#039;&lt;br /&gt;
* Versorgung über USB &amp;lt; 100mA, interne Versorgungsspannung 3,3V&lt;br /&gt;
* umfangreiche EMV-gerechte Entstörung für den Bedarfsfall&lt;br /&gt;
&lt;br /&gt;
=== Zusätzliches Benötigtes Material ===&lt;br /&gt;
* Leiterplatte (1 Stück)&lt;br /&gt;
* Gehäuse Hammond Teilenummer: RM2055L (1 Stück)&lt;br /&gt;
* Alternativ:Gehäuse Hammond Teilenummer: RM2055M (Wenn keine Steckdosen angebracht werden sollen)&lt;br /&gt;
* Alternative: Gehäuse Hammond (Hier muss man die Leiterplatte selber befestigen) Teilenummer: 1455T2201 (1 Stück)&lt;br /&gt;
* Einbausteckdosen Teilenummer: PEC 105 (2-3 Stück, je nach Ausbaustufe)&lt;br /&gt;
* PG-Verschraubung (2-3 Stück)&lt;br /&gt;
* Mutter für PG-Verschraubung (2 Stück)&lt;br /&gt;
* Litze blau, mindestens 1,5mm² (ca. 60cm)&lt;br /&gt;
* Litze braun, mindestens 1,5mm² (ca. 60cm) &lt;br /&gt;
* Litze gelb/grün, mindestens 1,5mm² (ca. 60cm)&lt;br /&gt;
* Aderendhülsen  mit Schutzkragen dazu ( 9 Stück für die Steckdosen)&lt;br /&gt;
* Schrauben, um die Leiterplatte zu befestigen (4 Stück)&lt;br /&gt;
* evtl. Abstandsbolzen dazu, falls das alternative Gehäuse verwendet wird (4 Stück)&lt;br /&gt;
* evtl. Muttern dazu, falls das alternative Gehäuse verwendet wird (4 Stück)&lt;br /&gt;
* Schrauben, Senkkopf DIN 7991 oder DIN 965 M4 X 10 um die Steckdosen zu befestigen (12 Stück)&lt;br /&gt;
* Muttern dazu M4 (12 Stück)&lt;br /&gt;
* Federschreiben  dazu DIN 127 M4 (12 Stück)&lt;br /&gt;
* Glimmerscheiben für Triac (2-3 Stück, je nach Ausbaustufe)&lt;br /&gt;
* Isoliernippel für Triacmontage (2-3 Stück, je nach Ausbaustufe)&lt;br /&gt;
* Zylinderkopfschraube M3 X 12 für Triacmontage (2-3 Stück, je nach Ausbaustufe)&lt;br /&gt;
* Mutter M3 für Triacmontage (2-3 Stück, je nach Ausbaustufe)&lt;br /&gt;
* Beilagscheibe M3 für Triacmontage (2-3 Stück, je nach Ausbaustufe)&lt;br /&gt;
* Isolierband für Triacmontage (ca. 300mm)&lt;br /&gt;
* Gummifüße für das Gehäuse (4 Stück)&lt;br /&gt;
&lt;br /&gt;
=== Kühlkörpermontage===&lt;br /&gt;
[[Datei:kuehlkoerper.jpg|thumb|right|200px|Montagedetail Kühlkörper]]&lt;br /&gt;
* Der Kühlköper sollte 38mm hoch sein, so passt er gut in die angegebenen Gehäuse&lt;br /&gt;
* Der Kühlkörper &amp;lt;span style=&amp;quot;color:red;&amp;quot;&amp;gt;MUSS isoliert montiert werden, also Glimmerscheibe und Isoliernippel einsetzen und NACHMESSEN, ob der Kühlkörper auch wirklich keinen Kontakt zum Triac hat!&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:red;&amp;quot;&amp;gt;Da die 230-V-Leiterbahnen nur durch den Stopplack vom Kühlkörper getrennt sind, sollte die Isolation mit zwei Lagen Gewebe- oder Isolierband verstärkt werden. Das Isolierband kann auf die Leiterplatte oder unter den Kühlkörper geklebt werden.&amp;lt;/span&amp;gt;&lt;br /&gt;
* Als Bohrungsmaß empfehle ich 20mm über der Leiterplatte.&lt;br /&gt;
* Entweder Bohrung 3,2mm für Durchgangsloch für den Triac.&lt;br /&gt;
* Oder Bohrung 2,5mm mit M3-Gewinde für den Triac schneiden.&lt;br /&gt;
&lt;br /&gt;
== Schaltung==&lt;br /&gt;
=== PIC18LF2550 Grundbeschaltung ===&lt;br /&gt;
[[Datei:osc_vs_vcc.png|thumb|right|200px|Taktraten und Versorgungsspannung PIC18F2550 vs. PIC18LF2550, Datenblatt S. 370/438]]&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 3/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Hier kommt ein PIC18&#039;&#039;&#039;L&#039;&#039;&#039;F2550 zum Einsatz. Er verfügt über eine USB-Schnittstelle und ist für Betriebsspannungen von 2 ... 5,5V ausgelegt. Sein Verwandter PIC18F2550 (ohne L) ist nicht für Betriebsspannungen &amp;lt; 4,2V ausgelegt. Dies ist bei USB sowieso nicht immer erfüllt und die Thermoelement-ICs vertragen ohnehin keine 5V, daher wurde die Betriebsspannung auf 3,3V reduziert. Neben Standard-Decoupling (100nF Kerko pro Vcc-Vss-Pärchen) wurde das ICSP-Interface in alt bewährter Pinbelegung (PICKit1,2,3) angebracht. PGD und PGC sind nicht weiter beschaltet, MCRL wird , wie immer als Resetpin verwendet. Der Resetschalter findet sich auf dem Top-Sheet (Schaltplan S. 1/22). Die Taktversorgung erfolgt über einen 24 MHz Quarz (-&amp;gt; USB). Man beachte diesbezüglich rechts stehende Grafik zu Taktraten und Versorgungsspannungen (Vdd bzw. auch Vcc genannt). Auch zu finden im Datenblatt des PICs auf Seite 370.&lt;br /&gt;
&lt;br /&gt;
=== PIC18LF2550 USB Beschaltung ===&lt;br /&gt;
[[Datei:usb_part.png|thumb|right|200px|PIC18(L)F2550&lt;br /&gt;
 Standard &lt;br /&gt;
USB-Beschaltung am PIC]]&lt;br /&gt;
[[Datei:usb_protect.png|thumb|right|200px|USB-Schutzbeschaltung und Mini-USB-Buchse]]&lt;br /&gt;
&lt;br /&gt;
Die Beschaltung der USB-Schnittstelle am PIC ist 1:1 aus dem Datenblatt übernommen. Zum Einsatz kommt eine Mini-USB-Buchse (J1).&lt;br /&gt;
Der Gedanke war: Erstens ein sehr preiswertes, fertiges Netzteil verwenden zu können, (ca. 3,67 € bei druckerzubehoer.de) und zweitens, die Steuerung auch mit dem PC / Laptop versorgen zu können.&lt;br /&gt;
Somit kann die Schaltung OHNE 230V betrieben und debuggt werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 4/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
FER1,2 und C7 filtern den Schirm nach GND. Standardmäßig wird man hier wohl 0-Ohm-Widerstände einsetzen. Falls ein Besuch im EMV-Labor geplant ist, weicht man auf den Ferrit aus. C5 und C6 filtern das Signal zusammen mit der Common-Mode-DrosselL1. Die Drossel kann mit den 0-Ohm-Brücken R8 und R9 überbrückt (gespart) werden. IC2 ist als ESD-Schutz gedacht und kann ebenfalls bei ausgeprägten Kostenbewustsein gespart werden. Die Widerstände R6 und R7 dürfen NICHT bestückt werden. FER1,2, C5, IC2 müssen nicht zwingend bestückt werden. Die Bestückung wurde vorgehalten um im Problemfall einfache Abhilfe schaffen zu können.&lt;br /&gt;
&lt;br /&gt;
=== 3,3V Spannungsversorgung ===&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 2/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Die 3,3V Versorgungsspannung für die gesamte Platine wird aus V_USB mittels des LDO Spannungsreglers TOREX - XC6206P332MR abgeleitet. Günstig, SOT-23, klein, 2x 1µF Kondensatoren benötigt, 3,3V max. 250mA. Der hat auch einen sehr kleinen Ruhestrom.&lt;br /&gt;
&lt;br /&gt;
=== Taster ===&lt;br /&gt;
*Der Resettaster zieht den MCLR-Pin nach GND und löst damit den Reset aus. MCLR  ist mit einem 10k Pullup versehen.&lt;br /&gt;
*Die übrigen beiden Taster ziehen RA4 bzw. RB5 ebenfalls nach GND.&lt;br /&gt;
&lt;br /&gt;
=== LEDs + ULN2003L ===&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 11/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Um alle LEDs auf der Platine (3x Optotriac + 7x Status) ansteuern zu können wurde auf das 7fach Darlington-Array ULN2003L zurückgegriffen. Die PIC-Ausgänge könnten zwar die LEDs direkt steueren. Aber so werden alle Ausgänge einheitlich nach Masse geschaltet. Das verbessert die Testbarkeit der ganzen Platine. ( Mit einem kurzen Masse-Draht kann zur Not der entsprechende Ausgang gesetzt werden, ohne etwas zu zerstören.)&lt;br /&gt;
&lt;br /&gt;
=== MOSFET-Leistungsausgang ===&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 22/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Hier kommt der einfacher N-Kanal MOSFET (LogicLevel) PHT8N06LT zum Einsatz. Er wird über das ULN2003L Array getrieben und ermöglicht den Anschluss eines DC-Verbrauchers mit max. 55V bei 3,5A. Hier könnte beispielsweise ein PC-Lüfter zur Kühlung oder für Umluft angeschlossen und über PWM geregelt/gesteuert werden. Ein Gatewiderstand von 100 Ohm ist zum Schutz des Treibers vorgesehen. Eine 0-Ohm-Brücke ist stattdessen aber auch möglich, wenn man eine höhere Leistung schalten möchte.Die Leiterbahnen sollten die 3A schon hergeben. Der 100 Ohm Widerstand bildet eine Stromquelle. Sobald der Strom durch den MOSFET und den Widerstand 33mA erreicht, sinkt UGS gegen 0 V. Folge: Der Mosfet sperrt ( und bleibt ganz....)&lt;br /&gt;
Es kann hier prinzipiell auch ein anderer Mosfet im SOT223-Gehäuse zum Einsatz kommen. Achten sollte man darauf, das der MOSFET schon bei 3,3V Ugs gut leiten sollte.&lt;br /&gt;
&lt;br /&gt;
=== Nulldurchgangserkennung ===&lt;br /&gt;
[[Datei:zerocross.png|thumb|right|200px|Nulldurchgangserkennung]]&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 5/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Die Nulldurchgangserkennung erfolgt nach einer sehr bekannten - jedoch ausgeklügelten - Schaltung.  [http://www.dextrel.net/diyzerocrosser.htm siehe: Dextrel]&lt;br /&gt;
Während einer Halbwelle wird C14 über R33 und R35 bzw. D5 geladen. Währenddessen ist T1 gesperrt. Sobald die Wechselspannung (L1-N über Spannungsteiler (R33+R35) / R34) kleiner ist als die Spannung über C14, steuert T1 durch. Dann entlädt sich C14 über den LED-Vorwiderstand R32. Der durch-steuernde Optokoppler zieht die Sync-Leitung nach GND. (Pullup Sync-Leitung = R31). Dies löst beim PIC auf INT2 einen Interrupt aus. &lt;br /&gt;
Dieser Interrupt ermöglicht eine präzise Wellenpaket-, Phasenanschnittsteuerung je nach Bedarf. Das Schalten im Nulldurchgang bei der Wellenpaketsteuerung reduziert EMV-Störungen. Für Phasenanschnitt ist ohnehin eine Nulldurchgangserkennung notwendig. Außerdem liefert sie eine genaue Zeitbasis für alle Programmabläufe.&lt;br /&gt;
&lt;br /&gt;
=== Triac-Ausgänge + Snubber ===&lt;br /&gt;
[[Datei:triac.png|thumb|right|200px|Triac-Ausgangsbeschaltung]]&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 19,20,21/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Die Ansteuerung des eigentlichen Leistungstriacs BTA140-800 erfolgt über den Optotriac IS6005. Der Strom durch Letzteren wird durch R1x limitiert (Vorwiderstand). R2x und R5x limitieren wiederum den Strom durch den Optotriac. Wenn dieser zündet so folgt unmittelbar der &amp;quot;Leistungstriac&amp;quot; der dann die Last schaltet.&lt;br /&gt;
&lt;br /&gt;
S1x ist ein Sicherungshalter um die Lasten einzeln absichern zu können. Wert 10A Mittelträge.&lt;br /&gt;
&lt;br /&gt;
R3x, R4x, C3x bilden ein Snubber-Network, L1X verhindert eine zu schnelle Stromanstiegsgeschwindikeit damit der Triac nicht &amp;quot;von selbst&amp;quot; zündet. Weglassen äußert sich meist in einem fast nicht hörbaren Click. Damit zeigt einem dann der Triac, dass er ab jetzt für immer recht niederohmig geworden ist. Die Regelung der Temperatur braucht dann nicht mehr über den Prozessor erfolgen, sondern nur noch mit dem Ein-/Ausschalter..... :-)&lt;br /&gt;
&lt;br /&gt;
=== Thermoelemente (MAX6675/MAX31855)  ===&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 6,7/22&#039;&#039;&#039;&lt;br /&gt;
Der inzwischen abgekündigte MAX6675 bzw. sein ehrenwerter Nachfolger MAX31855 sind einfach zu handhabende Thermoelement-ICs mit Kaltstellenkompensation. Thermoelemente funktionieren durch das Verschweißen zweier verschiedener Legierungen (beim K-Typ Thermoelemnt Ni und CrNi). Durch den durch die Umgebungstemperatur bedingten Wärmefluss zwischen beiden entsteht ein elektrische Spannung. Diese wird von besagten ICs verstärkt und digitalisiert (ADC). Diese Spannung / Temperatur ist natürlich wieder relativ zur Umgebungstemperatur an der Kaltstelle (Kontaktierung der beiden Drähte mit dem Messinstrument). Daher messen diese ICs auch gleich die Umgebungstemperatur (Kaltstellenkompensation genannt) mit, verrechnen das und geben das Ergebnis auf der SPI-Schnittstelle aus. MAX6675 leistet 12bit also 0,25°C Auflösung (nicht Genauigkeit!) über einen Temperaturbereich von 0°C to +1024°C. Außerdem wird ein nicht/fehlerhaft angeschlossenes Thermoelement erkannt. Der Thermocouple-IC wird an die SPI-Schnittstelle des PICs angeschlossen (hier MSSP genannt). &lt;br /&gt;
&lt;br /&gt;
MAX6675 und MAX31855 scheinen entgegen der Adafruit-Information [http://www.adafruit.com/products/269] doch pinkompatibel zu sein - die Ansteuerung unterscheidet sich jedoch definitiv. (Zitat: &amp;quot;Now uses the MAX31855K instead of the MAX6675, so it can measure a wider temperature measurement range. Please note! the MAX31855 is not pin compatible or drop-in code compatible with the MAX6675. We do have an Arduino library for both chips but you&#039;ll need to adjust any existing MAX6675 designs for the mew MAX31855. The MAX6675 has been discontinued by Maxim.&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Es wurden 2 dieser ICs und damit 2 Temperaturmessstellen vorgesehen. Dies ermöglich die Messung für eine Regelung der Temperatur so wie eine zusätzliche Überwachung kritischer Bauteile (z.B. ICs oder LEDs). Die Minimalbestückung sieht einen MAX6675/MAX31855 vor. Die Auswahl in der Firmware erfolgt über einen der beiden GPIO-Pins RA5 oder RA0 via dem ChipSelect (CS) des MAX6675/MAX31855.&lt;br /&gt;
&lt;br /&gt;
Neben dem MAX6675/MAX31855 wurde ein Decoupling-Kondensator (C8x, Standard 100nF) so wie ein weiterer im Messpfad (C9x) zur Zwecken der Entstörung vorgeshen. C9x 100nF sollte nur bestückt werden wenn Probleme bei der Temperaturmessung entstehen (z.B. unrealstisch stark schwankende Werte).&lt;br /&gt;
&lt;br /&gt;
=== ADC, SPI, UART &amp;amp; I2C Stiftleiste ===&lt;br /&gt;
ADC, SPI, UART und I2C sind zu Zwecken der Kalibrierung / Erweiterung / Einstellung / Debugging auf Stiftleisten herausgeführt:&lt;br /&gt;
Ähnlichkeiten mit dem FTDI-USB-TTL-Kabel bzw. Arduino XXX Bla Bla Bla Schnittstellenkonverter sind natürlich rein zufällig.&lt;br /&gt;
&lt;br /&gt;
Die I2C-Schnittstelle wurde auf eine Stiftleiste geführt, um z.B. einem LM75 o.ä. anschließen zu können. Damit stehen zur Kalibrierung der Thermoelemente genaue Temperaturen zur Verfügung.&lt;br /&gt;
&lt;br /&gt;
Die Stiftleisten haben alle ein Raster von 2,54mm. So können Pin-Header, Wannenstecker oder ähnliches verwendet werden.&lt;br /&gt;
&lt;br /&gt;
Da ja viele Leute eigene Vorstellungen bezüglich der Frontplattengestaltung haben, wurden auch die Taster und LEDs auf Stiftleisten geführt.&lt;br /&gt;
&lt;br /&gt;
=== Kühlkörper ===&lt;br /&gt;
Da die Triacs der Steuerung für bis zu 10A pro Kanal ausgelegt sind, kann man auf die Kühlkörper nicht verzichten. Es fallen bei 10A bis zu 13 Watt Wärme pro Triac ab. Falls mann auf die Kühlkörper doch verzichten möchte, sollte man darauf achten, die Triacs mit dem Kopf nach unten einzubauen. Diese können sich dann bei Überlast ganz von selber auslöten.... :-)&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red;&amp;quot;&amp;gt; Die Triacs müssen mit Glimmerscheibe und Isoliernippel -ALSO ISOLIERT ZUM KÜHLKÖRPER- montiert werden.&lt;br /&gt;
Außerdem muss unter dem Kühlkörper ein Stück Isolierband oder FR4 oder Nylon-Scheiben beigelegt werden, um zu verhindern, dass der Stopplack der Leiterplatte beschädigt wird. In diesem Falle hätte man Potential auf dem Kühlkörper.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Gehäuse ===&lt;br /&gt;
Die Leiterplatte wurde für ein Gehäuse von Hammond entwickelt.&lt;br /&gt;
Das Gehäuse ist zwar keine Schönheit, aber doch recht preiswert.&lt;br /&gt;
Typenbezeichnung: RM2055M oder etwas größer RM2055L&lt;br /&gt;
&lt;br /&gt;
== Firmware PIC ==&lt;br /&gt;
* Die Entwicklung der Firmware für den PIC18LF2550  erfolgt mit MPLABX und dem C18 Compiler. &lt;br /&gt;
* MPLABX ist kostenlos, der C18 Compiler bis auf die stärkste Optimierungsstufe ebenfalls. &lt;br /&gt;
* Die Quellen für die Firmware sind offengelegt und können von Sourceforge bezogen werden, siehe Links, weiter unten.&lt;br /&gt;
&lt;br /&gt;
=== Programmstruktur- und ablauf ===&lt;br /&gt;
Nach anfänglicher Initialisierung des PIC startet die Statemachine [http://http://www.mikrocontroller.net/articles/Statemachine] [http://http://de.wikipedia.org/wiki/Endlicher_Automat]. Neben ihr findet in der main-Funktion nur noch die Abfrage der beiden Bedientasten statt. Mit dem Tastendruck wird zum Zwecke der Entprellung ein Timer gestartet. Alles Andere (incl. PID-Regelung, Wellenpaket- bzw. Phasenan- und Phasenabschnittssteuerung und USB) ist interruptbasiert.&lt;br /&gt;
=== Reflow-Ofen-Konfiguration ===&lt;br /&gt;
&lt;br /&gt;
=== Taktversorgung, Nulldurchgangserkennung und Zeitbasis ===&lt;br /&gt;
=== USB ===&lt;br /&gt;
=== SPI für MAX6675 ===&lt;br /&gt;
=== SPI für MAX31855 ===&lt;br /&gt;
&lt;br /&gt;
=== Wellenpaketsteuerung ===&lt;br /&gt;
=== Phasenanschnitt ===&lt;br /&gt;
&lt;br /&gt;
=== PWM für MOSFET ===&lt;br /&gt;
=== PIC-Configword ===&lt;br /&gt;
&lt;br /&gt;
=== Zuordnung Outputs ===&lt;br /&gt;
[[Datei:pinning.png|thumb|right|400px|Input/Output-Funktions-Tabelle]]&lt;br /&gt;
&lt;br /&gt;
*In1 = RC2 = PIN13 = ULN5--&amp;gt;12 = OUT1 = PWM &lt;br /&gt;
*In2 = RB3 = PIN24 = ULN6--&amp;gt;11 = OUT2 = TRIAC_A (1) = K5&lt;br /&gt;
*In3 = RB4 = PIN25 = ULN7--&amp;gt;10 = OUT3 = TRIAC_B (2)= K2&lt;br /&gt;
*In4 = RA2 = PIN4  = ULN4--&amp;gt;13 = OUT4 = LED_PRG1 = OPTO D&lt;br /&gt;
*In5 = RC0 = PIN11 = ULN3--&amp;gt;14 = OUT6 = LED_PRG2 = OPTO F&lt;br /&gt;
*In6 = RC1 = PIN12 = ULN2--&amp;gt;15 = OUT7 = LED_PRG3 = OPTO G&lt;br /&gt;
*In7 = RA3 = PIN5  = ULN1--&amp;gt;16 = OUT5 = LED_PRG4 = OPT= E&lt;br /&gt;
&lt;br /&gt;
TRIAC1 ist nahe dem Zerocross&lt;br /&gt;
&lt;br /&gt;
== PC-Software (GUI) ==&lt;br /&gt;
[[Datei:gui_alpha.png|thumb|right|300px|Screenshot der GUI (noch Alpha) für den Reflow-Ofen-Controller]]&lt;br /&gt;
&lt;br /&gt;
Die GUI (englisch Graphical User Interface) ist der Einfachheit halber in VB.net programmiert und momentan noch im Alpha-Stadium. Auch hierfür liegen die Quellen später selbstverständlich offen.&lt;br /&gt;
&lt;br /&gt;
=== Funktionen und Modi ===&lt;br /&gt;
[[Datei:modi.png|thumb|right|400px|Auswahl der beschriebenen Modi durch Klick]]&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Ofen-Profil&amp;quot;&#039;&#039;&#039; - Es wird ein Programm (Temperaturkurve) aus dem EEPROM des Reflow-Ofens ausgeführt. Der Backvorgang kann mit der Software gesteuert (START, STOP, ...) und überwacht werden. Hierzu stehen Temperatur, Temperaturänderung, Heizleistung (Ober- und Unterhitze, Lüfter) so wie die graphische Darstellung im zentralen Diagramm zur Verfügung. Eingriffsmöglichkeiten, wie das Ändern der Temperaturkurve sind nicht vorgesehen. Dies soll ein reiner Überwachungs-Modus sein. Um die Temperaturkurve zu verändern zu können, sollte der Modus &amp;quot;PC-Profil&amp;quot; verwendet werden und die Temperaturkurve aus dem EEPROM importiert werden. Dann kann Selbige auch verändert und anschließend ausgeführt bzw. verändert in den EEPROM zurückgeschrieben werden. Dieser Modus stellt ein Äquivalent zur START/STOP-Tasten-Bedienung an der Platine dar und kann selbstverständlich parallel dazu genutzt werden. Die GUI also als Addon zum Stand-Alone-Betrieb.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;PC-Profil&amp;quot;&#039;&#039;&#039; - Es wird ein Programm (Temperaturkurve) ausgeführt welche zuvor am Computer erstellt / editiert wurde. In diesem Modus gibt der Computer Temperaturwerte vor, welche live über die USB-Schnittstelle zum PIC übertragen werden und mit dem dort integrierten PID-Regler ausgeführt werden. Das ermöglicht eine on-the-fly Veränderung der Temperaturkurve während des Backvorgangs. Temperaturkurven können aus Dateien oder dem EEPROM importiert und auch wieder exportiert werden. CSV-Dateien können ebenfalls importiert und exportiert werden. Die &amp;quot;Eingabe&amp;quot; der Temperaturkurve erfolgt entweder über Import (CSV/EEPROM), per Mausklick auf dem zentralen Diagramm oder im sog. DataGridView. Weiteres siehe Unterpunkt &amp;quot;Eingabe der Temperaturkurve (Reflowprofil)&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;manueller Ablauf&amp;quot;&#039;&#039;&#039; - In diesem Modus wird (im Gegensatz zu den oberen beiden Modi &amp;quot;Ofen-Profil&amp;quot; und &amp;quot;PC-Profil&amp;quot;) keine Temperatur geregelt. Hier wird die Leistung des Ofens in % eingestellt und gesteuert. Der PID-Regler ist nicht in Aktion. Die Temperatur, Temperaturänderung so wie der Temperaturverlauf werden selbstredend angezeigt bzw. im Diagramm dargestellt. Der Modus &amp;quot;manueller Ablauf&amp;quot; fährt ähnlich dem Modus &amp;quot;PC-Profil&amp;quot; die im DataGridView eingetragenen Leistungs-Zeit-Punkte ab. Für jeden Zeitpunkt ist eine Leistung vorgegeben. Die Eingabe erfolgt ähnlich wie unter &amp;quot;Eingabe der Temperaturkurve (Reflowprofil)&amp;quot; beschrieben. Nur eben, dass eine Leistung und keine Temperatur angegeben wird. Die Eingabe der Leistung kann nicht im Zeit-Temperatur-Diagramm erfolgen sondern mittels der Schieberegler oder direkt tabellarisch.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;manueller Modus&amp;quot;&#039;&#039;&#039; - Dieser Modus enthält 2 Submodi&lt;br /&gt;
** &amp;quot;manueller Leistungsmodus&amp;quot; - Auch in diesem Modus wird die Leistung gesteuert. Es wird keine Temperatur geregelt, der PID-Regler für die Temperatur ist nicht in Betrieb. Die Einstellung hier erfolgt über die drei Schieberegler oder über eine numerische Eingabe durch Klick auf die Leistungsangabe unter dem Schieberegler. Durch Klick auf die Texte &amp;quot;TOP&amp;quot;, &amp;quot;BOTTOM&amp;quot;, &amp;quot;FAN&amp;quot; (Oberhitze, Unterhitze, Lüfter) können selbige deaktiviert bzw. aktiviert werden. Auch in diesem Modus wird Temperatur, Temperaturänderung so wie der Temperaturverlauf dargestellt.&lt;br /&gt;
** &amp;quot;manueller Temperaturmodus&amp;quot; - Hier wird die Temperatur wieder mittels des Temperatur-PIDs geregelt. Die Temperatur wird entweder mittels Schieberegler (Ober- und Unterhitze-Regler sind jetzt gekoppelt) oder durch eine numerische Eingabe unterhalb der Schieberegler vorgegeben. Anzeige wie im &amp;quot;manuellen Leistungsmodus&amp;quot;. Der Lüfter kann unabhängig vom PID in seiner Leistung geregelt werden. Ein evtl. durch den Luftstrom verursachter Temperaturabfall wird vom PID selbstverständlich ausgeregelt (aus diesem Grunde ist es ja ein Regler).&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Programmieren&amp;quot;&#039;&#039;&#039; - Hier kann ein neues &#039;&#039;&#039;Temperatur&#039;&#039;&#039;-Programm für den EEPROM-Speicher des Ofens erstellt und editiert werden. Die Eingabemöglichkeiten sind unter &amp;quot;Eingabe der Temperaturkurve (Reflowprofil)&amp;quot; beschrieben. Dieser Modus ist zum reinen Programmieren des Ofens gedacht und ermöglicht keine weitere Steuerung oder Überwachung des Ofens.&lt;br /&gt;
&lt;br /&gt;
=== Eingabe der Temperaturkurve (Reflowprofil) ===&lt;br /&gt;
[[Datei:datagridview.png|thumb|right|400px|tabellarische Anzeige und Editiermöglichkeit der Temperaturkurve]]&lt;br /&gt;
Die Eingabe der Temperaturkurve erfolgt entweder über Import (CSV/EEPROM), per Mausklick auf dem zentralen Diagramm oder im sog. DataGridView (Excel-ähnliche Bedienung in tabellarischer Form). &lt;br /&gt;
&lt;br /&gt;
* CSV-Import + Export&lt;br /&gt;
* EEPROM-Import + Export&lt;br /&gt;
* Im rechts stehenden Screenshotbeispiel wird eine tabellarische Eingabeform mit einem DataGridView gezeigt: Die Temperatur (erster Temperaturpunkt = Punkt 0) von 100°C wird linear über einen Zeitraum von 0-30s verteilt. Bei 30s hat der Ofen die Temperatur von 100°C. Dafür setzt die Regelung die Oberhitze, die Unterhitze ein. Der Lüfter ist deaktiviert. In der Zeit von 30s bis 120s wird die Temperatur nun von 100°C auf 150°C linear angehoben. Von 120s bis 180s Backzeit steigt die Temperatur von 150°C auf 250°C. Von 180s bis 200s wird die Temperatur auf 280°C angehoben. Anschließend wird sie zwischen 200s und 220s auf 280°C gehalten (280°C@200s und 280°C@220s) um dann bis 240s wieder auf 250°C zu fallen. Bis zum Zeitpunkt 300s wird dann die Temperatur 30°C angestrebt. Zusätzlich ist der Lüfter nun aktiviert (soweit der Ofen eine Umluftfunktion besitzt). Bei Punkt 7 sind Ober- und Unterhitze deaktiviert nur noch der Lüfter kühlt. Da hier bei &amp;quot;Zeit[s]&amp;quot; die 0 eingetragen wird der Zustand (hier nur Lüfter an) für einen unendlich langen Zeitraum auf 0 gehalten. Also so lange wie das Programm aktiviert ist wird der Lüfter laufen. Natürlich könnte man hier auch z.B. 100°C und Zeitpunkt 0s eintragen. Dann würde der Ofen bis zum manuellen Beenden des Programms (klick auf STOP-Button oder Drücken des START/STOP-Tasters auf der Platine/Steuerung) 100°C halten.&lt;br /&gt;
* Alle Zellen des DataGridView sind editierbar (zur Veränderung der Temperatur, Zeitpunkt, ...)&lt;br /&gt;
* Direkter Klick auf das zentrale Temperatur-Zeit-Diagramm trägt den Zeitpunkt so wie die Temperatur unter dem Mauszeiger in die Tabelle (das DataGridView) ein. Die ausgewählte Zeile wird beschrieben oder überschrieben. Neue Zeilen (also Temperatur-Zeit-Punkte) können durch klick auf den &amp;quot;Plus-Button&amp;quot; hinzugefügt werden. Ebenso ist das Löschen oder Verschieben einer oder mehrerer Zeile gleichzeitig möglich.&lt;br /&gt;
&lt;br /&gt;
=== Beschreibung der Steuerungsmöglichkeiten ===&lt;br /&gt;
In Abhängigkeit des gewählten Modus bestehen einige Steuerungs-, Einstellungs- und Kontrollmöglichkeiten:&lt;br /&gt;
* &#039;&#039;&#039;Schieberegler&#039;&#039;&#039; für Temperatur od. Leistung (je nach Modus) für Oberhitze, Unterhitze und Lüfter. Je nach Hardwareausführung. &lt;br /&gt;
** Klick auf &amp;quot;TOP&amp;quot;, &amp;quot;BOTTOM&amp;quot; oder &amp;quot;FAN&amp;quot; aktiviert oder deaktiviert die entsprechende Funktion bzw. Hardware.&lt;br /&gt;
** Numerische Eingabe der Werte für die Schieberegler durch Klick auf die Anzeige unterhalb der Schieberegler. Werte können auch im deaktivierten Zustand angegeben werden. Die Übernahme erfolgt durch den &amp;quot;Aktivierungsklick&amp;quot; auf &amp;quot;TOP&amp;quot;, &amp;quot;BOTTOM&amp;quot; oder &amp;quot;FAN&amp;quot;&lt;br /&gt;
* &#039;&#039;&#039;T1, dT1, T2, dT2&#039;&#039;&#039; - Anzeige der gemessenen Temperatur so wie die momentane Temperaturänderung am jeweiligen Sensor. &lt;br /&gt;
* &#039;&#039;&#039;Bedienbuttons&#039;&#039;&#039;&lt;br /&gt;
** Play - Startet das Programm am angegebenen Startpunkt (siehe unten)&lt;br /&gt;
** Pause - Pausiert das Programm - weitere Pauseoptionen siehe unten&lt;br /&gt;
** Stop - Stopt den Programmablauf&lt;br /&gt;
** Vor / Zurück - Springt zwischen Temperaturpunkten hin und her. Dient zum überspringen oder zurückspringen zu gewissen Temperatur-Zeit-Punkten. Ermöglicht z.B. das Überspringen eines Ablaufes der eine lange Preheat- oder Dryphase hat.&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Status&amp;quot;&#039;&#039;&#039; - zeigt den aktuellen Zustand des Programms an (READY, START, WAITING, PAUSE, ...)&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;RESET&amp;quot;&#039;&#039;&#039; - setzt das (begonnene) Programm zurück. Beinhaltet neben dem Programmablauf auch das Zurücksetzen der graphischen Anzeige des Diagramms, etc.&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Startpunkt&amp;quot;&#039;&#039;&#039; - legt den ersten Punkt des Programmablaufes fest. &lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Wiederholungen&amp;quot;&#039;&#039;&#039; - ermöglicht das wiederholte Backen ohne das Programm händisch immer wieder neu starten zu müssen. Die Anzahl der Wiederholungen ist einstellbar (0 für unendlich viele) und es ist eine Wartezeit zwischen den Wiederholungen einstellbar. Alternativ kann eine Meldung nach jedem vollendeten Backvorgang abgegeben werden. Nach Bestätigung dieser wird die nächste Wiederholung ausgeführt.&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Pause&amp;quot;&#039;&#039;&#039; - Pauseneinstellungen. Hier sind Optionen wählbar was passieren soll, falls der Pausebutton betätigt wird:&lt;br /&gt;
** Pausezeit - gibt an wie lange die Pause dauern soll [s], danach fährt das Programm automatisch gemäß des gewählten Pausemodus fort. Für eine Pause ohne automatisches Fortfahren (Countdowntimer) &#039;0&#039; angeben.&lt;br /&gt;
** Pausemodus &amp;quot;aktuelle Temperatur halten, WarmUp, Fortsetzen&amp;quot; - Ofen hält die Temperatur (Zieltemperatur) des Zeitpunktes als der Pausebutton betätigt wurde. WarmUp bedeutet, dass nach dem Beenden des Pausemodus zunächst die Zieltemperatur wieder erreicht werden &#039;&#039;&#039;muss&#039;&#039;&#039; bevor der nächste Punkt angesteuert wird. Klingt paradox, wenn die Temperatur doch so und so gehalten wird, ist aber nicht so. Die Wahrscheinlichkeit ist hoch, dass der Pausemodus benutzt wird um die Ofentüre zu öffnen und Korrekturen an der Platine vorzunehmen. Unter Umständen ist die Heizung des Ofens jedoch nicht in der Lage den dadurch entstehenden Wärmeverlust zu kompensieren. Fährt das Programm dann sofort fort, so könnten evtl. kritische (Hoch-)Punkte des Lötprofils &amp;quot;unterfahren&amp;quot; werden. Dem wirkt WarmUp entgegen.&lt;br /&gt;
** Pausemodus &amp;quot;aktuelle Temperatur halten, Fortsetzen&amp;quot; - siehe oben, nur ohne WarmUp.&lt;br /&gt;
** Pausemodus &amp;quot;definierte Temperatur halten, WarmUp, Fortsetzen&amp;quot; - siehe oben. Statt der aktuellen Zieltemperatur wird jedoch nun im Pausemodus eine einzustellende Pausetemperatur gehalten. Mit WarmUp.&lt;br /&gt;
** Pausemodus &amp;quot;definierte Temperatur halten, Fortsetzen&amp;quot; - siehe oben, nur ohne WarmUp.&lt;br /&gt;
** &amp;quot;Pausetemperatur&amp;quot; - spezielle Temperatur die bei entsprechender Pausemoduswahl für die Dauer der Pause gehalten wird.&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Ende&amp;quot;&#039;&#039;&#039; - gibt an was am Ende eines durchlaufenen Reflow-Programms passieren soll. Ist der Wiederholungsmodus aktiviert, tritt dieses Ereignis erst nach Durchlauf aller Wiederholungen ein. Folgende Modi sind möglich:&lt;br /&gt;
** automatischer Reset - am Ende des Programms wird alles automatisch zurückgesetzt, alle Graphiken und Anzeigen gelöscht.&lt;br /&gt;
** manueller Reset - am Ende des Programms bleiben alle Anzeigen, Graphiken, etc erhalten und müssen vor Beginn eines neuen Reflowvorgangs händisch durch Klick auf &amp;quot;RESET&amp;quot; zurückgesetzt werden.&lt;br /&gt;
** Benutzermeldung - lässt eine Meldung erscheinen. Alle Anzeigen und Graphiken bleiben erhalten bis der Benutzer diese Meldung bestätigt. Mit Bestätigung dieser Meldung wird ein automatischer Reset vorgenommen.&lt;br /&gt;
&lt;br /&gt;
=== Loggen des Temperaturverlaufes ===&lt;br /&gt;
Es ist möglich jeden Backvorgang in eine CSV-Datei zu loggen. (Software- und PID-Einstellungen). Geloggte CSV-Dateien können eingelesen und im zentralen Temperatur-Zeit-Diagramm begutachtet werden. Ein Ist-Soll-Vergleich ist ebenso möglich wie die direkte Anzeige des Fehlers (&amp;quot;Ist minus Soll&amp;quot;). Dank CSV können die Daten auch mit anderen Programmen (Excel, etc.) weiterverarbeitet werden.&lt;br /&gt;
&lt;br /&gt;
== Ofen / Pizzaofen ==&lt;br /&gt;
=== Leistung und Volumen ===&lt;br /&gt;
* Alls Faustformel wird oft 100W pro Liter Volumen genannt.&lt;br /&gt;
* Ich habe einen sehr preiswerten Ofen gewählt und die &amp;quot;Oberhitze&amp;quot; zusätzlich mit zwei Halogen-Stäben a 300W &amp;quot;verstärkt. Das kostet nicht viel, die Fassung ist für ca. 3 Euro erhältlich, die Halogenstäbe gibt es in jedem Baumarkt. &lt;br /&gt;
* Bezugsquelle Fassung : siehe &amp;quot;Links&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Dämmung ===&lt;br /&gt;
=== Umluft ===&lt;br /&gt;
* Der verwendete Ofen sollte eine Umluftfunktion besitzen, damit sich die Wärme gleichmäßig im Ofen und auf der Leiterplatte verteilen kann.&lt;br /&gt;
&lt;br /&gt;
== FAQ ==&lt;br /&gt;
&lt;br /&gt;
* Q1: Ich habe einen PT100/PT1000 und möchte den anschließen. Geht das?&lt;br /&gt;
** A1: Ja natürlich. Dazu ist aber etwas externe Elektronik notwendig. Sowohl 2 ADC-Pins (mit 3V3 Betriebsspannung als fixe Referenzspannung), als auch die UART und SPI/I2C-Schnittstelle stehen zur freien Verfügung. Für PT100/PT1000 wird für vernünftige Messungen ohnehin eine Verstärkung (meist mit OPV) von Nöten sein. Da der PIC-interne ADC &amp;quot;nur&amp;quot; 10bit Auflösung bietet sollte ein externer 16bit ADC in Betracht gezogen werden um das Potential der PT100/PT1000 auszunutzen.&lt;br /&gt;
*Q2: Ich habe von günstigen Temperaturmessungen mit Dioden gehört. Geht das auch hier?&lt;br /&gt;
**A2: Ja. Die Vorwärtsspannung einer Diode verhält sich linear zur Sperrschichttemperatur. Diese Spannung (bei 25°C einer Si-Diode die bekannten 0,7V) kann mittels OPV verstärkt werden und auf einen Spannungsbereich von 0 ... 3V3 aufgebläht werden. Eine billige Lösung, auf Kosten der Genauigkeit. Doch eine Diode ist laut Datenblatt nur bis 150°C geeignet. Es ist also beim Löten mehr oder weniger Pfusch. Wenn ich schon eine Reflow-Steuerung baue, sollte ich doch nicht an ein paar Euro für eine gescheite Temperaturmessung sparen. Einige Anregungen vom Messgerätehersteller Keithley bzgl. der Halbleiterphysik mit interessanten Formeln [http://www.keithley.de/support/data?asset=50486]. Oder natürlich der Klassiker von Thomas Pfeifer [http://thomaspfeifer.net/backofen_smd_reflow.htm]. Oder ein Beitrag mit LT-Spice Simulation zum Thema [http://www.mikrocontroller.net/topic/270627#2833883].&lt;br /&gt;
* Q3: God why ... ?&lt;br /&gt;
** A3: Because we can !&lt;br /&gt;
* Q4: Ich hab aber noch nie was mit 230V gemacht.&lt;br /&gt;
**A4: Dann würde ich an Deiner Stelle dieses Projekt NICHT nachbauen.&lt;br /&gt;
* Q5: Warum wurde Altium verwendet und nicht Eagle?&lt;br /&gt;
**A5: Weil es uns kostenlos zur Verfügung stand und wesentlich leistungsfähiger ist.&lt;br /&gt;
&lt;br /&gt;
= Verbesserungen Prototyp - Diese haben jedoch keinen Einfluss auf die Funktion der Leiterplatte=&lt;br /&gt;
* Bauteile weiter weg von den Schraublöchern.&lt;br /&gt;
* Dazu Kreis rund um Bohrung auf Bestückdruck.&lt;br /&gt;
* Masseanbindung Quarz.&lt;br /&gt;
* Klemmen weiter weg vom Rand.&lt;br /&gt;
* Klemme und Sicherungshalter weiter auseinander.&lt;br /&gt;
* Bohrungen für Drossel 0,2mm größer machen.&lt;br /&gt;
* Teilenummer für Conrad-USB-Buchse in BOM übernehmen.&lt;br /&gt;
* Stiftleiste P1  weiter weg von P2 und P4.&lt;br /&gt;
* Varistoren näher an Klemmen platzieren.&lt;br /&gt;
* THT-Kondensatoren für Snubber.&lt;br /&gt;
* Ggf. Stiftleistenbelegung für externe Leds so ändern, das keine extra Vorwiderstände notwendig sind.&lt;br /&gt;
* Befestigungsbohrung für Drossel, um diese mit Kabelbinderung oder Schraube fixieren zu können.&lt;br /&gt;
* Pullup-Widerstand bei MCLR doppelt. &lt;br /&gt;
* Power-LED vorsehen.&lt;br /&gt;
* Leiterbahnen etwas weiter weg von den Kühlkörperanschlüssen&lt;br /&gt;
* Designatoren Texte etwas größer machen.&lt;br /&gt;
* Ein vernünftiger GND-Punkt für einen Tastkopf / Messungen / Aligator-Clips vorsehen.&lt;br /&gt;
* Spannungsversorgung doch Onboard? Oder beides?&lt;br /&gt;
* Leds 90 Grad, Frontplattenmontage&lt;br /&gt;
* Taster 90 Grad Frontplattenmontage&lt;br /&gt;
* Termoelemente Frontplattenmontage??? Termoelementstecker?&lt;br /&gt;
* Schaltausgang 230 V kleiner, weniger Leistungsfähig.&lt;br /&gt;
&lt;br /&gt;
= Errata Projekt =&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:red;&amp;quot;&amp;gt; Triac Symbol in Library falsch, dadurch ist T2 mit T1 vertauscht. Abhilfe für Leiterplattenversion V1.0: T1 und T2 &amp;quot;twisten&amp;quot; und jeweils mit Schrumpfschlauch versehen.( Also Beinchen T1 über kreuz mit Beinchen T2 einlöten...)&amp;lt;/span&amp;gt;&lt;br /&gt;
* Beim MOSFET R39 ist die Masseanbindung falsch. Es bestehen drei Möglichkeiten:&lt;br /&gt;
** 1. 0-R-Brücke für R39 einbauen und auf Strombegrenzung verzichten.&lt;br /&gt;
** 2. Eine Polyfuse mit Bauform 1206 einbauen. &lt;br /&gt;
** 3. Das kleine Leiterbahnstückchen zwischen R38 und R39 unterbrechen und statt dessen die Leiterbahn zwischen R39 und der Klemme mit der Durchkontaktierung bei R38 verbinden.&lt;br /&gt;
* LED-Beschriftung passt nicht ganz (Schaltplan Netlabel OUT1,2,3,4 sind durcheinander gekommen) --&amp;gt; Ist im Prinzip ohne Belang, man muss das nur bei der Software berücksichtigen.&lt;br /&gt;
* Schaltplan UNL2003 fehlerhafte Zuordnung IN5,6,7 &amp;lt;&amp;gt; OUT7,6,5 --&amp;gt; Ist im Prinzip ohne Belang, man muss das nur bei der Software berücksichtigen.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* Diskussion: [http://www.mikrocontroller.net/topic/297217 Diskussion]&lt;br /&gt;
* Software: [http://sourceforge.net/projects/reflowofensteue/ Bei Sourceforge]&lt;br /&gt;
* Dextrel Nulldurchgang: [http://www.dextrel.net/diyzerocrosser.htm Nulldurchgangschaltung]&lt;br /&gt;
* Gehäuse Zeichnung: [http://www.hammondmfg.com/pdf/RM2055L.pdf Großes Gehäuse für Steckdosenmontage]&lt;br /&gt;
* Gehäuse Zeichnung: [http://www.hammondmfg.com/pdf/RM2055M.pdf Kleines Gehäuse, keine Steckdosen]&lt;br /&gt;
* Bezugsquelle [http://www.soselectronic.com/?str=371&amp;amp;artnum=73596&amp;amp;name=hammond-ritec-rm2055l Großes Gehäuse Hammond]&lt;br /&gt;
* Bezugsquelle [http://www.soselectronic.com/?str=371&amp;amp;artnum=73595&amp;amp;name=hammond-ritec-rm2055m Kleines Gehäuse Hammond]&lt;br /&gt;
* Bezugsquelle [http://www.druckerzubehoer.de/shop/product/catid/H-UNIVERSALZUBEHOER_HZB/subcatid/UNIVERSALZUBEHOER_GROUP1_HZB/productid/1727063-390722LA/site/1/lng/de_DE Netzteil Mini USB ]&lt;br /&gt;
* Bezugsquelle [http://www.ebay.de/itm/151037292125?ssPageName=STRK:MEWNX:IT&amp;amp;_trksid=p3984.m1497.l2649 Termoelement Ebay (Typ K für ca. 2Euro)]&lt;br /&gt;
* Bezugsquelle [http://www.artcase-shop.de/index.php?page=search&amp;amp;page_action=query&amp;amp;desc=on&amp;amp;sdesc=on&amp;amp;keywords=pce+105&amp;amp;x=0&amp;amp;y=0 Steckdosen für Schalttafeleinbau:]&lt;br /&gt;
* Bezugsquelle [http://www.schaeffer-ag.de/ Frontplatten]&lt;br /&gt;
* Bezugsquelle [http://www.lichtlieferant.de/catalogsearch/result/?q=r7s+fassung+sockel Vossloh Fassung R7S für Halogenstäbe]&lt;br /&gt;
* Datenblatt Prozessor [http://ww1.microchip.com/downloads/en/DeviceDoc/39632e.pdf PIC18LF2550]&lt;br /&gt;
* Umfangreicher Thread u.A. Leistungsvermögen, Temperaturmessung und Dämmung [http://www.mikrocontroller.net/topic/270627]&lt;br /&gt;
[[Kategorie:PIC-Projekte]]&lt;/div&gt;</summary>
		<author><name>Frankman</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=Reflow_Ofen_Steuerung&amp;diff=80588</id>
		<title>Reflow Ofen Steuerung</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=Reflow_Ofen_Steuerung&amp;diff=80588"/>
		<updated>2014-01-03T12:56:21Z</updated>

		<summary type="html">&lt;p&gt;Frankman: /* Kühlkörpermontage */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Datei:RFB.jpg|thumb|right|200px|Altium 3D Ansicht]]&lt;br /&gt;
[[Datei:pcb.png|thumb|right|200px|Fertige Reflow-Ofen-Steuerung]]&lt;br /&gt;
[[Datei:Teilbest2.jpg|750px|teilbestückte Platine]]&lt;br /&gt;
== Einleitung ==&lt;br /&gt;
&lt;br /&gt;
Hier wird eine weitere Reflow-Ofen-Steuerung beschrieben.&lt;br /&gt;
=== Zum Nachbauen ===&lt;br /&gt;
* Spezifikation: [[Datei: Spec Reflow.pdf]]&lt;br /&gt;
* Schaltplan: &lt;br /&gt;
** Minimalversion [[Datei:Schematic Prints Minimal.pdf]]&lt;br /&gt;
** Standardversion [[Datei:Schematic Prints Standard.pdf]]&lt;br /&gt;
** Deluxeversion [[Datei:Schematic Prints Deluxe.pdf]]&lt;br /&gt;
** Debugversion [[Datei:Schematic Prints Debug.pdf]]&lt;br /&gt;
* Gerberdaten: [[Datei:Gerber Reflow.pdf]]&lt;br /&gt;
* Assemblydrawing: [[Datei:Assembly Reflow.pdf]] &lt;br /&gt;
* Altium-Files: [[Datei:Reflow.zip]]&lt;br /&gt;
* Stückliste als CSV: [[Datei:Reflow.csv]]&lt;br /&gt;
* Stückliste als Open Office: [[Datei:Reflow.ods]]&lt;br /&gt;
* PC Programm: TBD&lt;br /&gt;
* Sourcen PC-Programm: TBD&lt;br /&gt;
* PIC Programm (*.hex): [http://sourceforge.net/projects/reflowofensteue/ ]&lt;br /&gt;
* Sourcen Pic-Programm: [http://sourceforge.net/projects/reflowofensteue/ ]&lt;br /&gt;
* Step-File Steckdose:[[Datei:Steckdose.stp]]&lt;br /&gt;
&lt;br /&gt;
=== Motivation ===&lt;br /&gt;
Die Gründe, eine weitere Steuerung zu entwerfen, waren:&lt;br /&gt;
&lt;br /&gt;
* Die Möglichkeit, auch größere Öfen mit 2 Phasen betreiben zu können.&lt;br /&gt;
* Die Steuerung universell zu gestalten. Es sollte möglich sein, diese nicht nur zum Reflow löten zu verwenden....z.B:&lt;br /&gt;
** Temperatursteuerung für Klimakammer (Heizen, Kühlen)&lt;br /&gt;
** Dimmer mit USB&lt;br /&gt;
** Temperaturregler für ein Tisch-Fondue ( Temperatur halten)&lt;br /&gt;
** Drehzahlsteller mit USB&lt;br /&gt;
** Switchpack&lt;br /&gt;
* Die Schaltung sollte in Altium entwickelt werden. (Warum kein Eagle??? Altium User wissen es.... :-)&lt;br /&gt;
* Die Schaltung sollte mit USB ausgestattet sein.&lt;br /&gt;
&lt;br /&gt;
=== Eigenschaften &amp;amp; Spezifikationen ===&lt;br /&gt;
* Temperaturmessung: bis zu 2x &#039;&#039;&#039;Thermoelement&#039;&#039;&#039; (K-Typ) mit MAX6675 (abgekündigt) oder Nachfolger MAX31855 (pin- aber nicht softwarekompatibel)&lt;br /&gt;
* Leistungsstufen: &#039;&#039;&#039;3 voneinander unabhängige&#039;&#039;&#039; Triacs 800V 25A, limitiert auf &#039;&#039;&#039;10A @ 250VAC&#039;&#039;&#039; (z.B. Oberhitze, Unterhitze, Umluft)&lt;br /&gt;
* Nulldurchgangserkennung ermöglicht Wellenpaket-, und Phasenabschnittssteuerung * Galvanische Trennung der Leistungsendstufen&lt;br /&gt;
* 1x MOSFET-Ausgang PWM z.B. für 12V Lüfter, max. &#039;&#039;&#039;55V 3,5A&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;4 feste Programme&#039;&#039;&#039; im EEPROM über 2-Tasterbedienung und LEDs wähl- und ausführbar. &lt;br /&gt;
* &#039;&#039;&#039;PC-unabhängiger Betrieb&#039;&#039;&#039; möglich. &lt;br /&gt;
* Beliebig viele Programme möglich, bei Betrieb am Computer &lt;br /&gt;
* Mini-USB-Buchse zur Steuerung / Programmierung über GUI und zum Entwickeln. - Dafür ist &#039;&#039;&#039;keine Netzspannung&#039;&#039;&#039; erforderlich&lt;br /&gt;
* Günstiges passendes Gehäuse&lt;br /&gt;
* Alle LEDs und Taster auf &#039;&#039;&#039;Stiftleisten&#039;&#039;&#039; herausgeführt, für eigene Gestaltung der Frontblenden&lt;br /&gt;
* PID-Temperaturregler&lt;br /&gt;
* UART, SPI, I2C und 2x ADC auf Stiftleisten herausgeführt, für zukünftige &#039;&#039;&#039;Erweiterungen&#039;&#039;&#039;&lt;br /&gt;
* Versorgung über USB &amp;lt; 100mA, interne Versorgungsspannung 3,3V&lt;br /&gt;
* umfangreiche EMV-gerechte Entstörung für den Bedarfsfall&lt;br /&gt;
&lt;br /&gt;
=== Zusätzliches Benötigtes Material ===&lt;br /&gt;
* Leiterplatte (1 Stück)&lt;br /&gt;
* Gehäuse Hammond Teilenummer: RM2055L (1 Stück)&lt;br /&gt;
* Alternativ:Gehäuse Hammond Teilenummer: RM2055M (Wenn keine Steckdosen angebracht werden sollen)&lt;br /&gt;
* Alternative: Gehäuse Hammond (Hier muss man die Leiterplatte selber befestigen) Teilenummer: 1455T2201 (1 Stück)&lt;br /&gt;
* Einbausteckdosen Teilenummer: PEC 105 (2-3 Stück, je nach Ausbaustufe)&lt;br /&gt;
* PG-Verschraubung (2-3 Stück)&lt;br /&gt;
* Mutter für PG-Verschraubung (2 Stück)&lt;br /&gt;
* Litze blau, mindestens 1,5mm² (ca. 60cm)&lt;br /&gt;
* Litze braun, mindestens 1,5mm² (ca. 60cm) &lt;br /&gt;
* Litze gelb/grün, mindestens 1,5mm² (ca. 60cm)&lt;br /&gt;
* Aderendhülsen  mit Schutzkragen dazu ( 9 Stück für die Steckdosen)&lt;br /&gt;
* Schrauben, um die Leiterplatte zu befestigen (4 Stück)&lt;br /&gt;
* evtl. Abstandsbolzen dazu, falls das alternative Gehäuse verwendet wird (4 Stück)&lt;br /&gt;
* evtl. Muttern dazu, falls das alternative Gehäuse verwendet wird (4 Stück)&lt;br /&gt;
* Schrauben, Senkkopf DIN 7991 oder DIN 965 M4 X 10 um die Steckdosen zu befestigen (12 Stück)&lt;br /&gt;
* Muttern dazu M4 (12 Stück)&lt;br /&gt;
* Federschreiben  dazu DIN 127 M4 (12 Stück)&lt;br /&gt;
* Glimmerscheiben für Triac (2-3 Stück, je nach Ausbaustufe)&lt;br /&gt;
* Isoliernippel für Triacmontage (2-3 Stück, je nach Ausbaustufe)&lt;br /&gt;
* Zylinderkopfschraube M3 X 12 für Triacmontage (2-3 Stück, je nach Ausbaustufe)&lt;br /&gt;
* Mutter M3 für Triacmontage (2-3 Stück, je nach Ausbaustufe)&lt;br /&gt;
* Beilagscheibe M3 für Triacmontage (2-3 Stück, je nach Ausbaustufe)&lt;br /&gt;
* Isolierband für Triacmontage (ca. 300mm)&lt;br /&gt;
* Gummifüße für das Gehäuse (4 Stück)&lt;br /&gt;
&lt;br /&gt;
=== Kühlkörpermontage===&lt;br /&gt;
[[Datei:kuehlkoerper.jpg|thumb|right|200px|Montagedetail Kühlkörper]]&lt;br /&gt;
* Der Kühlköper sollte 38mm hoch sein, so passt er gut in die angegebenen Gehäuse&lt;br /&gt;
* Der Kühlkörper &amp;lt;span style=&amp;quot;color:red;&amp;quot;&amp;gt;MUSS isoliert montiert werden, also Glimmerscheibe und Isoliernippel einsetzen und NACHMESSEN, ob der Kühlkörper auch wirklich keinen Kontakt zum Triac hat!&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:red;&amp;quot;&amp;gt;Da die 230-V-Leiterbahnen nur durch den Stopplack vom Kühlkörper getrennt sind, sollte die Isolation mit zwei Lagen Gewebe- oder Isolierband verstärkt werden. Das Isolierband kann auf die Leiterplatte oder unter den Kühlkörper geklebt werden.&amp;lt;/span&amp;gt;&lt;br /&gt;
* Als Bohrungsmaß empfehle ich 20mm über der Leiterplatte.&lt;br /&gt;
* Entweder Bohrung 3,2mm für Durchgangsloch &lt;br /&gt;
* Oder Bohrung 2,5mm mit M3-Gewinde&lt;br /&gt;
&lt;br /&gt;
== Schaltung==&lt;br /&gt;
=== PIC18LF2550 Grundbeschaltung ===&lt;br /&gt;
[[Datei:osc_vs_vcc.png|thumb|right|200px|Taktraten und Versorgungsspannung PIC18F2550 vs. PIC18LF2550, Datenblatt S. 370/438]]&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 3/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Hier kommt ein PIC18&#039;&#039;&#039;L&#039;&#039;&#039;F2550 zum Einsatz. Er verfügt über eine USB-Schnittstelle und ist für Betriebsspannungen von 2 ... 5,5V ausgelegt. Sein Verwandter PIC18F2550 (ohne L) ist nicht für Betriebsspannungen &amp;lt; 4,2V ausgelegt. Dies ist bei USB sowieso nicht immer erfüllt und die Thermoelement-ICs vertragen ohnehin keine 5V, daher wurde die Betriebsspannung auf 3,3V reduziert. Neben Standard-Decoupling (100nF Kerko pro Vcc-Vss-Pärchen) wurde das ICSP-Interface in alt bewährter Pinbelegung (PICKit1,2,3) angebracht. PGD und PGC sind nicht weiter beschaltet, MCRL wird , wie immer als Resetpin verwendet. Der Resetschalter findet sich auf dem Top-Sheet (Schaltplan S. 1/22). Die Taktversorgung erfolgt über einen 24 MHz Quarz (-&amp;gt; USB). Man beachte diesbezüglich rechts stehende Grafik zu Taktraten und Versorgungsspannungen (Vdd bzw. auch Vcc genannt). Auch zu finden im Datenblatt des PICs auf Seite 370.&lt;br /&gt;
&lt;br /&gt;
=== PIC18LF2550 USB Beschaltung ===&lt;br /&gt;
[[Datei:usb_part.png|thumb|right|200px|PIC18(L)F2550&lt;br /&gt;
 Standard &lt;br /&gt;
USB-Beschaltung am PIC]]&lt;br /&gt;
[[Datei:usb_protect.png|thumb|right|200px|USB-Schutzbeschaltung und Mini-USB-Buchse]]&lt;br /&gt;
&lt;br /&gt;
Die Beschaltung der USB-Schnittstelle am PIC ist 1:1 aus dem Datenblatt übernommen. Zum Einsatz kommt eine Mini-USB-Buchse (J1).&lt;br /&gt;
Der Gedanke war: Erstens ein sehr preiswertes, fertiges Netzteil verwenden zu können, (ca. 3,67 € bei druckerzubehoer.de) und zweitens, die Steuerung auch mit dem PC / Laptop versorgen zu können.&lt;br /&gt;
Somit kann die Schaltung OHNE 230V betrieben und debuggt werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 4/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
FER1,2 und C7 filtern den Schirm nach GND. Standardmäßig wird man hier wohl 0-Ohm-Widerstände einsetzen. Falls ein Besuch im EMV-Labor geplant ist, weicht man auf den Ferrit aus. C5 und C6 filtern das Signal zusammen mit der Common-Mode-DrosselL1. Die Drossel kann mit den 0-Ohm-Brücken R8 und R9 überbrückt (gespart) werden. IC2 ist als ESD-Schutz gedacht und kann ebenfalls bei ausgeprägten Kostenbewustsein gespart werden. Die Widerstände R6 und R7 dürfen NICHT bestückt werden. FER1,2, C5, IC2 müssen nicht zwingend bestückt werden. Die Bestückung wurde vorgehalten um im Problemfall einfache Abhilfe schaffen zu können.&lt;br /&gt;
&lt;br /&gt;
=== 3,3V Spannungsversorgung ===&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 2/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Die 3,3V Versorgungsspannung für die gesamte Platine wird aus V_USB mittels des LDO Spannungsreglers TOREX - XC6206P332MR abgeleitet. Günstig, SOT-23, klein, 2x 1µF Kondensatoren benötigt, 3,3V max. 250mA. Der hat auch einen sehr kleinen Ruhestrom.&lt;br /&gt;
&lt;br /&gt;
=== Taster ===&lt;br /&gt;
*Der Resettaster zieht den MCLR-Pin nach GND und löst damit den Reset aus. MCLR  ist mit einem 10k Pullup versehen.&lt;br /&gt;
*Die übrigen beiden Taster ziehen RA4 bzw. RB5 ebenfalls nach GND.&lt;br /&gt;
&lt;br /&gt;
=== LEDs + ULN2003L ===&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 11/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Um alle LEDs auf der Platine (3x Optotriac + 7x Status) ansteuern zu können wurde auf das 7fach Darlington-Array ULN2003L zurückgegriffen. Die PIC-Ausgänge könnten zwar die LEDs direkt steueren. Aber so werden alle Ausgänge einheitlich nach Masse geschaltet. Das verbessert die Testbarkeit der ganzen Platine. ( Mit einem kurzen Masse-Draht kann zur Not der entsprechende Ausgang gesetzt werden, ohne etwas zu zerstören.)&lt;br /&gt;
&lt;br /&gt;
=== MOSFET-Leistungsausgang ===&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 22/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Hier kommt der einfacher N-Kanal MOSFET (LogicLevel) PHT8N06LT zum Einsatz. Er wird über das ULN2003L Array getrieben und ermöglicht den Anschluss eines DC-Verbrauchers mit max. 55V bei 3,5A. Hier könnte beispielsweise ein PC-Lüfter zur Kühlung oder für Umluft angeschlossen und über PWM geregelt/gesteuert werden. Ein Gatewiderstand von 100 Ohm ist zum Schutz des Treibers vorgesehen. Eine 0-Ohm-Brücke ist stattdessen aber auch möglich, wenn man eine höhere Leistung schalten möchte.Die Leiterbahnen sollten die 3A schon hergeben. Der 100 Ohm Widerstand bildet eine Stromquelle. Sobald der Strom durch den MOSFET und den Widerstand 33mA erreicht, sinkt UGS gegen 0 V. Folge: Der Mosfet sperrt ( und bleibt ganz....)&lt;br /&gt;
Es kann hier prinzipiell auch ein anderer Mosfet im SOT223-Gehäuse zum Einsatz kommen. Achten sollte man darauf, das der MOSFET schon bei 3,3V Ugs gut leiten sollte.&lt;br /&gt;
&lt;br /&gt;
=== Nulldurchgangserkennung ===&lt;br /&gt;
[[Datei:zerocross.png|thumb|right|200px|Nulldurchgangserkennung]]&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 5/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Die Nulldurchgangserkennung erfolgt nach einer sehr bekannten - jedoch ausgeklügelten - Schaltung.  [http://www.dextrel.net/diyzerocrosser.htm siehe: Dextrel]&lt;br /&gt;
Während einer Halbwelle wird C14 über R33 und R35 bzw. D5 geladen. Währenddessen ist T1 gesperrt. Sobald die Wechselspannung (L1-N über Spannungsteiler (R33+R35) / R34) kleiner ist als die Spannung über C14, steuert T1 durch. Dann entlädt sich C14 über den LED-Vorwiderstand R32. Der durch-steuernde Optokoppler zieht die Sync-Leitung nach GND. (Pullup Sync-Leitung = R31). Dies löst beim PIC auf INT2 einen Interrupt aus. &lt;br /&gt;
Dieser Interrupt ermöglicht eine präzise Wellenpaket-, Phasenanschnittsteuerung je nach Bedarf. Das Schalten im Nulldurchgang bei der Wellenpaketsteuerung reduziert EMV-Störungen. Für Phasenanschnitt ist ohnehin eine Nulldurchgangserkennung notwendig. Außerdem liefert sie eine genaue Zeitbasis für alle Programmabläufe.&lt;br /&gt;
&lt;br /&gt;
=== Triac-Ausgänge + Snubber ===&lt;br /&gt;
[[Datei:triac.png|thumb|right|200px|Triac-Ausgangsbeschaltung]]&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 19,20,21/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Die Ansteuerung des eigentlichen Leistungstriacs BTA140-800 erfolgt über den Optotriac IS6005. Der Strom durch Letzteren wird durch R1x limitiert (Vorwiderstand). R2x und R5x limitieren wiederum den Strom durch den Optotriac. Wenn dieser zündet so folgt unmittelbar der &amp;quot;Leistungstriac&amp;quot; der dann die Last schaltet.&lt;br /&gt;
&lt;br /&gt;
S1x ist ein Sicherungshalter um die Lasten einzeln absichern zu können. Wert 10A Mittelträge.&lt;br /&gt;
&lt;br /&gt;
R3x, R4x, C3x bilden ein Snubber-Network, L1X verhindert eine zu schnelle Stromanstiegsgeschwindikeit damit der Triac nicht &amp;quot;von selbst&amp;quot; zündet. Weglassen äußert sich meist in einem fast nicht hörbaren Click. Damit zeigt einem dann der Triac, dass er ab jetzt für immer recht niederohmig geworden ist. Die Regelung der Temperatur braucht dann nicht mehr über den Prozessor erfolgen, sondern nur noch mit dem Ein-/Ausschalter..... :-)&lt;br /&gt;
&lt;br /&gt;
=== Thermoelemente (MAX6675/MAX31855)  ===&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 6,7/22&#039;&#039;&#039;&lt;br /&gt;
Der inzwischen abgekündigte MAX6675 bzw. sein ehrenwerter Nachfolger MAX31855 sind einfach zu handhabende Thermoelement-ICs mit Kaltstellenkompensation. Thermoelemente funktionieren durch das Verschweißen zweier verschiedener Legierungen (beim K-Typ Thermoelemnt Ni und CrNi). Durch den durch die Umgebungstemperatur bedingten Wärmefluss zwischen beiden entsteht ein elektrische Spannung. Diese wird von besagten ICs verstärkt und digitalisiert (ADC). Diese Spannung / Temperatur ist natürlich wieder relativ zur Umgebungstemperatur an der Kaltstelle (Kontaktierung der beiden Drähte mit dem Messinstrument). Daher messen diese ICs auch gleich die Umgebungstemperatur (Kaltstellenkompensation genannt) mit, verrechnen das und geben das Ergebnis auf der SPI-Schnittstelle aus. MAX6675 leistet 12bit also 0,25°C Auflösung (nicht Genauigkeit!) über einen Temperaturbereich von 0°C to +1024°C. Außerdem wird ein nicht/fehlerhaft angeschlossenes Thermoelement erkannt. Der Thermocouple-IC wird an die SPI-Schnittstelle des PICs angeschlossen (hier MSSP genannt). &lt;br /&gt;
&lt;br /&gt;
MAX6675 und MAX31855 scheinen entgegen der Adafruit-Information [http://www.adafruit.com/products/269] doch pinkompatibel zu sein - die Ansteuerung unterscheidet sich jedoch definitiv. (Zitat: &amp;quot;Now uses the MAX31855K instead of the MAX6675, so it can measure a wider temperature measurement range. Please note! the MAX31855 is not pin compatible or drop-in code compatible with the MAX6675. We do have an Arduino library for both chips but you&#039;ll need to adjust any existing MAX6675 designs for the mew MAX31855. The MAX6675 has been discontinued by Maxim.&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Es wurden 2 dieser ICs und damit 2 Temperaturmessstellen vorgesehen. Dies ermöglich die Messung für eine Regelung der Temperatur so wie eine zusätzliche Überwachung kritischer Bauteile (z.B. ICs oder LEDs). Die Minimalbestückung sieht einen MAX6675/MAX31855 vor. Die Auswahl in der Firmware erfolgt über einen der beiden GPIO-Pins RA5 oder RA0 via dem ChipSelect (CS) des MAX6675/MAX31855.&lt;br /&gt;
&lt;br /&gt;
Neben dem MAX6675/MAX31855 wurde ein Decoupling-Kondensator (C8x, Standard 100nF) so wie ein weiterer im Messpfad (C9x) zur Zwecken der Entstörung vorgeshen. C9x 100nF sollte nur bestückt werden wenn Probleme bei der Temperaturmessung entstehen (z.B. unrealstisch stark schwankende Werte).&lt;br /&gt;
&lt;br /&gt;
=== ADC, SPI, UART &amp;amp; I2C Stiftleiste ===&lt;br /&gt;
ADC, SPI, UART und I2C sind zu Zwecken der Kalibrierung / Erweiterung / Einstellung / Debugging auf Stiftleisten herausgeführt:&lt;br /&gt;
Ähnlichkeiten mit dem FTDI-USB-TTL-Kabel bzw. Arduino XXX Bla Bla Bla Schnittstellenkonverter sind natürlich rein zufällig.&lt;br /&gt;
&lt;br /&gt;
Die I2C-Schnittstelle wurde auf eine Stiftleiste geführt, um z.B. einem LM75 o.ä. anschließen zu können. Damit stehen zur Kalibrierung der Thermoelemente genaue Temperaturen zur Verfügung.&lt;br /&gt;
&lt;br /&gt;
Die Stiftleisten haben alle ein Raster von 2,54mm. So können Pin-Header, Wannenstecker oder ähnliches verwendet werden.&lt;br /&gt;
&lt;br /&gt;
Da ja viele Leute eigene Vorstellungen bezüglich der Frontplattengestaltung haben, wurden auch die Taster und LEDs auf Stiftleisten geführt.&lt;br /&gt;
&lt;br /&gt;
=== Kühlkörper ===&lt;br /&gt;
Da die Triacs der Steuerung für bis zu 10A pro Kanal ausgelegt sind, kann man auf die Kühlkörper nicht verzichten. Es fallen bei 10A bis zu 13 Watt Wärme pro Triac ab. Falls mann auf die Kühlkörper doch verzichten möchte, sollte man darauf achten, die Triacs mit dem Kopf nach unten einzubauen. Diese können sich dann bei Überlast ganz von selber auslöten.... :-)&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red;&amp;quot;&amp;gt; Die Triacs müssen mit Glimmerscheibe und Isoliernippel -ALSO ISOLIERT ZUM KÜHLKÖRPER- montiert werden.&lt;br /&gt;
Außerdem muss unter dem Kühlkörper ein Stück Isolierband oder FR4 oder Nylon-Scheiben beigelegt werden, um zu verhindern, dass der Stopplack der Leiterplatte beschädigt wird. In diesem Falle hätte man Potential auf dem Kühlkörper.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Gehäuse ===&lt;br /&gt;
Die Leiterplatte wurde für ein Gehäuse von Hammond entwickelt.&lt;br /&gt;
Das Gehäuse ist zwar keine Schönheit, aber doch recht preiswert.&lt;br /&gt;
Typenbezeichnung: RM2055M oder etwas größer RM2055L&lt;br /&gt;
&lt;br /&gt;
== Firmware PIC ==&lt;br /&gt;
* Die Entwicklung der Firmware für den PIC18LF2550  erfolgt mit MPLABX und dem C18 Compiler. &lt;br /&gt;
* MPLABX ist kostenlos, der C18 Compiler bis auf die stärkste Optimierungsstufe ebenfalls. &lt;br /&gt;
* Die Quellen für die Firmware sind offengelegt und können von Sourceforge bezogen werden, siehe Links, weiter unten.&lt;br /&gt;
&lt;br /&gt;
=== Programmstruktur- und ablauf ===&lt;br /&gt;
Nach anfänglicher Initialisierung des PIC startet die Statemachine [http://http://www.mikrocontroller.net/articles/Statemachine] [http://http://de.wikipedia.org/wiki/Endlicher_Automat]. Neben ihr findet in der main-Funktion nur noch die Abfrage der beiden Bedientasten statt. Mit dem Tastendruck wird zum Zwecke der Entprellung ein Timer gestartet. Alles Andere (incl. PID-Regelung, Wellenpaket- bzw. Phasenan- und Phasenabschnittssteuerung und USB) ist interruptbasiert.&lt;br /&gt;
=== Reflow-Ofen-Konfiguration ===&lt;br /&gt;
&lt;br /&gt;
=== Taktversorgung, Nulldurchgangserkennung und Zeitbasis ===&lt;br /&gt;
=== USB ===&lt;br /&gt;
=== SPI für MAX6675 ===&lt;br /&gt;
=== SPI für MAX31855 ===&lt;br /&gt;
&lt;br /&gt;
=== Wellenpaketsteuerung ===&lt;br /&gt;
=== Phasenanschnitt ===&lt;br /&gt;
&lt;br /&gt;
=== PWM für MOSFET ===&lt;br /&gt;
=== PIC-Configword ===&lt;br /&gt;
&lt;br /&gt;
=== Zuordnung Outputs ===&lt;br /&gt;
[[Datei:pinning.png|thumb|right|400px|Input/Output-Funktions-Tabelle]]&lt;br /&gt;
&lt;br /&gt;
*In1 = RC2 = PIN13 = ULN5--&amp;gt;12 = OUT1 = PWM &lt;br /&gt;
*In2 = RB3 = PIN24 = ULN6--&amp;gt;11 = OUT2 = TRIAC_A (1) = K5&lt;br /&gt;
*In3 = RB4 = PIN25 = ULN7--&amp;gt;10 = OUT3 = TRIAC_B (2)= K2&lt;br /&gt;
*In4 = RA2 = PIN4  = ULN4--&amp;gt;13 = OUT4 = LED_PRG1 = OPTO D&lt;br /&gt;
*In5 = RC0 = PIN11 = ULN3--&amp;gt;14 = OUT6 = LED_PRG2 = OPTO F&lt;br /&gt;
*In6 = RC1 = PIN12 = ULN2--&amp;gt;15 = OUT7 = LED_PRG3 = OPTO G&lt;br /&gt;
*In7 = RA3 = PIN5  = ULN1--&amp;gt;16 = OUT5 = LED_PRG4 = OPT= E&lt;br /&gt;
&lt;br /&gt;
TRIAC1 ist nahe dem Zerocross&lt;br /&gt;
&lt;br /&gt;
== PC-Software (GUI) ==&lt;br /&gt;
[[Datei:gui_alpha.png|thumb|right|300px|Screenshot der GUI (noch Alpha) für den Reflow-Ofen-Controller]]&lt;br /&gt;
&lt;br /&gt;
Die GUI (englisch Graphical User Interface) ist der Einfachheit halber in VB.net programmiert und momentan noch im Alpha-Stadium. Auch hierfür liegen die Quellen später selbstverständlich offen.&lt;br /&gt;
&lt;br /&gt;
=== Funktionen und Modi ===&lt;br /&gt;
[[Datei:modi.png|thumb|right|400px|Auswahl der beschriebenen Modi durch Klick]]&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Ofen-Profil&amp;quot;&#039;&#039;&#039; - Es wird ein Programm (Temperaturkurve) aus dem EEPROM des Reflow-Ofens ausgeführt. Der Backvorgang kann mit der Software gesteuert (START, STOP, ...) und überwacht werden. Hierzu stehen Temperatur, Temperaturänderung, Heizleistung (Ober- und Unterhitze, Lüfter) so wie die graphische Darstellung im zentralen Diagramm zur Verfügung. Eingriffsmöglichkeiten, wie das Ändern der Temperaturkurve sind nicht vorgesehen. Dies soll ein reiner Überwachungs-Modus sein. Um die Temperaturkurve zu verändern zu können, sollte der Modus &amp;quot;PC-Profil&amp;quot; verwendet werden und die Temperaturkurve aus dem EEPROM importiert werden. Dann kann Selbige auch verändert und anschließend ausgeführt bzw. verändert in den EEPROM zurückgeschrieben werden. Dieser Modus stellt ein Äquivalent zur START/STOP-Tasten-Bedienung an der Platine dar und kann selbstverständlich parallel dazu genutzt werden. Die GUI also als Addon zum Stand-Alone-Betrieb.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;PC-Profil&amp;quot;&#039;&#039;&#039; - Es wird ein Programm (Temperaturkurve) ausgeführt welche zuvor am Computer erstellt / editiert wurde. In diesem Modus gibt der Computer Temperaturwerte vor, welche live über die USB-Schnittstelle zum PIC übertragen werden und mit dem dort integrierten PID-Regler ausgeführt werden. Das ermöglicht eine on-the-fly Veränderung der Temperaturkurve während des Backvorgangs. Temperaturkurven können aus Dateien oder dem EEPROM importiert und auch wieder exportiert werden. CSV-Dateien können ebenfalls importiert und exportiert werden. Die &amp;quot;Eingabe&amp;quot; der Temperaturkurve erfolgt entweder über Import (CSV/EEPROM), per Mausklick auf dem zentralen Diagramm oder im sog. DataGridView. Weiteres siehe Unterpunkt &amp;quot;Eingabe der Temperaturkurve (Reflowprofil)&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;manueller Ablauf&amp;quot;&#039;&#039;&#039; - In diesem Modus wird (im Gegensatz zu den oberen beiden Modi &amp;quot;Ofen-Profil&amp;quot; und &amp;quot;PC-Profil&amp;quot;) keine Temperatur geregelt. Hier wird die Leistung des Ofens in % eingestellt und gesteuert. Der PID-Regler ist nicht in Aktion. Die Temperatur, Temperaturänderung so wie der Temperaturverlauf werden selbstredend angezeigt bzw. im Diagramm dargestellt. Der Modus &amp;quot;manueller Ablauf&amp;quot; fährt ähnlich dem Modus &amp;quot;PC-Profil&amp;quot; die im DataGridView eingetragenen Leistungs-Zeit-Punkte ab. Für jeden Zeitpunkt ist eine Leistung vorgegeben. Die Eingabe erfolgt ähnlich wie unter &amp;quot;Eingabe der Temperaturkurve (Reflowprofil)&amp;quot; beschrieben. Nur eben, dass eine Leistung und keine Temperatur angegeben wird. Die Eingabe der Leistung kann nicht im Zeit-Temperatur-Diagramm erfolgen sondern mittels der Schieberegler oder direkt tabellarisch.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;manueller Modus&amp;quot;&#039;&#039;&#039; - Dieser Modus enthält 2 Submodi&lt;br /&gt;
** &amp;quot;manueller Leistungsmodus&amp;quot; - Auch in diesem Modus wird die Leistung gesteuert. Es wird keine Temperatur geregelt, der PID-Regler für die Temperatur ist nicht in Betrieb. Die Einstellung hier erfolgt über die drei Schieberegler oder über eine numerische Eingabe durch Klick auf die Leistungsangabe unter dem Schieberegler. Durch Klick auf die Texte &amp;quot;TOP&amp;quot;, &amp;quot;BOTTOM&amp;quot;, &amp;quot;FAN&amp;quot; (Oberhitze, Unterhitze, Lüfter) können selbige deaktiviert bzw. aktiviert werden. Auch in diesem Modus wird Temperatur, Temperaturänderung so wie der Temperaturverlauf dargestellt.&lt;br /&gt;
** &amp;quot;manueller Temperaturmodus&amp;quot; - Hier wird die Temperatur wieder mittels des Temperatur-PIDs geregelt. Die Temperatur wird entweder mittels Schieberegler (Ober- und Unterhitze-Regler sind jetzt gekoppelt) oder durch eine numerische Eingabe unterhalb der Schieberegler vorgegeben. Anzeige wie im &amp;quot;manuellen Leistungsmodus&amp;quot;. Der Lüfter kann unabhängig vom PID in seiner Leistung geregelt werden. Ein evtl. durch den Luftstrom verursachter Temperaturabfall wird vom PID selbstverständlich ausgeregelt (aus diesem Grunde ist es ja ein Regler).&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Programmieren&amp;quot;&#039;&#039;&#039; - Hier kann ein neues &#039;&#039;&#039;Temperatur&#039;&#039;&#039;-Programm für den EEPROM-Speicher des Ofens erstellt und editiert werden. Die Eingabemöglichkeiten sind unter &amp;quot;Eingabe der Temperaturkurve (Reflowprofil)&amp;quot; beschrieben. Dieser Modus ist zum reinen Programmieren des Ofens gedacht und ermöglicht keine weitere Steuerung oder Überwachung des Ofens.&lt;br /&gt;
&lt;br /&gt;
=== Eingabe der Temperaturkurve (Reflowprofil) ===&lt;br /&gt;
[[Datei:datagridview.png|thumb|right|400px|tabellarische Anzeige und Editiermöglichkeit der Temperaturkurve]]&lt;br /&gt;
Die Eingabe der Temperaturkurve erfolgt entweder über Import (CSV/EEPROM), per Mausklick auf dem zentralen Diagramm oder im sog. DataGridView (Excel-ähnliche Bedienung in tabellarischer Form). &lt;br /&gt;
&lt;br /&gt;
* CSV-Import + Export&lt;br /&gt;
* EEPROM-Import + Export&lt;br /&gt;
* Im rechts stehenden Screenshotbeispiel wird eine tabellarische Eingabeform mit einem DataGridView gezeigt: Die Temperatur (erster Temperaturpunkt = Punkt 0) von 100°C wird linear über einen Zeitraum von 0-30s verteilt. Bei 30s hat der Ofen die Temperatur von 100°C. Dafür setzt die Regelung die Oberhitze, die Unterhitze ein. Der Lüfter ist deaktiviert. In der Zeit von 30s bis 120s wird die Temperatur nun von 100°C auf 150°C linear angehoben. Von 120s bis 180s Backzeit steigt die Temperatur von 150°C auf 250°C. Von 180s bis 200s wird die Temperatur auf 280°C angehoben. Anschließend wird sie zwischen 200s und 220s auf 280°C gehalten (280°C@200s und 280°C@220s) um dann bis 240s wieder auf 250°C zu fallen. Bis zum Zeitpunkt 300s wird dann die Temperatur 30°C angestrebt. Zusätzlich ist der Lüfter nun aktiviert (soweit der Ofen eine Umluftfunktion besitzt). Bei Punkt 7 sind Ober- und Unterhitze deaktiviert nur noch der Lüfter kühlt. Da hier bei &amp;quot;Zeit[s]&amp;quot; die 0 eingetragen wird der Zustand (hier nur Lüfter an) für einen unendlich langen Zeitraum auf 0 gehalten. Also so lange wie das Programm aktiviert ist wird der Lüfter laufen. Natürlich könnte man hier auch z.B. 100°C und Zeitpunkt 0s eintragen. Dann würde der Ofen bis zum manuellen Beenden des Programms (klick auf STOP-Button oder Drücken des START/STOP-Tasters auf der Platine/Steuerung) 100°C halten.&lt;br /&gt;
* Alle Zellen des DataGridView sind editierbar (zur Veränderung der Temperatur, Zeitpunkt, ...)&lt;br /&gt;
* Direkter Klick auf das zentrale Temperatur-Zeit-Diagramm trägt den Zeitpunkt so wie die Temperatur unter dem Mauszeiger in die Tabelle (das DataGridView) ein. Die ausgewählte Zeile wird beschrieben oder überschrieben. Neue Zeilen (also Temperatur-Zeit-Punkte) können durch klick auf den &amp;quot;Plus-Button&amp;quot; hinzugefügt werden. Ebenso ist das Löschen oder Verschieben einer oder mehrerer Zeile gleichzeitig möglich.&lt;br /&gt;
&lt;br /&gt;
=== Beschreibung der Steuerungsmöglichkeiten ===&lt;br /&gt;
In Abhängigkeit des gewählten Modus bestehen einige Steuerungs-, Einstellungs- und Kontrollmöglichkeiten:&lt;br /&gt;
* &#039;&#039;&#039;Schieberegler&#039;&#039;&#039; für Temperatur od. Leistung (je nach Modus) für Oberhitze, Unterhitze und Lüfter. Je nach Hardwareausführung. &lt;br /&gt;
** Klick auf &amp;quot;TOP&amp;quot;, &amp;quot;BOTTOM&amp;quot; oder &amp;quot;FAN&amp;quot; aktiviert oder deaktiviert die entsprechende Funktion bzw. Hardware.&lt;br /&gt;
** Numerische Eingabe der Werte für die Schieberegler durch Klick auf die Anzeige unterhalb der Schieberegler. Werte können auch im deaktivierten Zustand angegeben werden. Die Übernahme erfolgt durch den &amp;quot;Aktivierungsklick&amp;quot; auf &amp;quot;TOP&amp;quot;, &amp;quot;BOTTOM&amp;quot; oder &amp;quot;FAN&amp;quot;&lt;br /&gt;
* &#039;&#039;&#039;T1, dT1, T2, dT2&#039;&#039;&#039; - Anzeige der gemessenen Temperatur so wie die momentane Temperaturänderung am jeweiligen Sensor. &lt;br /&gt;
* &#039;&#039;&#039;Bedienbuttons&#039;&#039;&#039;&lt;br /&gt;
** Play - Startet das Programm am angegebenen Startpunkt (siehe unten)&lt;br /&gt;
** Pause - Pausiert das Programm - weitere Pauseoptionen siehe unten&lt;br /&gt;
** Stop - Stopt den Programmablauf&lt;br /&gt;
** Vor / Zurück - Springt zwischen Temperaturpunkten hin und her. Dient zum überspringen oder zurückspringen zu gewissen Temperatur-Zeit-Punkten. Ermöglicht z.B. das Überspringen eines Ablaufes der eine lange Preheat- oder Dryphase hat.&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Status&amp;quot;&#039;&#039;&#039; - zeigt den aktuellen Zustand des Programms an (READY, START, WAITING, PAUSE, ...)&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;RESET&amp;quot;&#039;&#039;&#039; - setzt das (begonnene) Programm zurück. Beinhaltet neben dem Programmablauf auch das Zurücksetzen der graphischen Anzeige des Diagramms, etc.&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Startpunkt&amp;quot;&#039;&#039;&#039; - legt den ersten Punkt des Programmablaufes fest. &lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Wiederholungen&amp;quot;&#039;&#039;&#039; - ermöglicht das wiederholte Backen ohne das Programm händisch immer wieder neu starten zu müssen. Die Anzahl der Wiederholungen ist einstellbar (0 für unendlich viele) und es ist eine Wartezeit zwischen den Wiederholungen einstellbar. Alternativ kann eine Meldung nach jedem vollendeten Backvorgang abgegeben werden. Nach Bestätigung dieser wird die nächste Wiederholung ausgeführt.&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Pause&amp;quot;&#039;&#039;&#039; - Pauseneinstellungen. Hier sind Optionen wählbar was passieren soll, falls der Pausebutton betätigt wird:&lt;br /&gt;
** Pausezeit - gibt an wie lange die Pause dauern soll [s], danach fährt das Programm automatisch gemäß des gewählten Pausemodus fort. Für eine Pause ohne automatisches Fortfahren (Countdowntimer) &#039;0&#039; angeben.&lt;br /&gt;
** Pausemodus &amp;quot;aktuelle Temperatur halten, WarmUp, Fortsetzen&amp;quot; - Ofen hält die Temperatur (Zieltemperatur) des Zeitpunktes als der Pausebutton betätigt wurde. WarmUp bedeutet, dass nach dem Beenden des Pausemodus zunächst die Zieltemperatur wieder erreicht werden &#039;&#039;&#039;muss&#039;&#039;&#039; bevor der nächste Punkt angesteuert wird. Klingt paradox, wenn die Temperatur doch so und so gehalten wird, ist aber nicht so. Die Wahrscheinlichkeit ist hoch, dass der Pausemodus benutzt wird um die Ofentüre zu öffnen und Korrekturen an der Platine vorzunehmen. Unter Umständen ist die Heizung des Ofens jedoch nicht in der Lage den dadurch entstehenden Wärmeverlust zu kompensieren. Fährt das Programm dann sofort fort, so könnten evtl. kritische (Hoch-)Punkte des Lötprofils &amp;quot;unterfahren&amp;quot; werden. Dem wirkt WarmUp entgegen.&lt;br /&gt;
** Pausemodus &amp;quot;aktuelle Temperatur halten, Fortsetzen&amp;quot; - siehe oben, nur ohne WarmUp.&lt;br /&gt;
** Pausemodus &amp;quot;definierte Temperatur halten, WarmUp, Fortsetzen&amp;quot; - siehe oben. Statt der aktuellen Zieltemperatur wird jedoch nun im Pausemodus eine einzustellende Pausetemperatur gehalten. Mit WarmUp.&lt;br /&gt;
** Pausemodus &amp;quot;definierte Temperatur halten, Fortsetzen&amp;quot; - siehe oben, nur ohne WarmUp.&lt;br /&gt;
** &amp;quot;Pausetemperatur&amp;quot; - spezielle Temperatur die bei entsprechender Pausemoduswahl für die Dauer der Pause gehalten wird.&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Ende&amp;quot;&#039;&#039;&#039; - gibt an was am Ende eines durchlaufenen Reflow-Programms passieren soll. Ist der Wiederholungsmodus aktiviert, tritt dieses Ereignis erst nach Durchlauf aller Wiederholungen ein. Folgende Modi sind möglich:&lt;br /&gt;
** automatischer Reset - am Ende des Programms wird alles automatisch zurückgesetzt, alle Graphiken und Anzeigen gelöscht.&lt;br /&gt;
** manueller Reset - am Ende des Programms bleiben alle Anzeigen, Graphiken, etc erhalten und müssen vor Beginn eines neuen Reflowvorgangs händisch durch Klick auf &amp;quot;RESET&amp;quot; zurückgesetzt werden.&lt;br /&gt;
** Benutzermeldung - lässt eine Meldung erscheinen. Alle Anzeigen und Graphiken bleiben erhalten bis der Benutzer diese Meldung bestätigt. Mit Bestätigung dieser Meldung wird ein automatischer Reset vorgenommen.&lt;br /&gt;
&lt;br /&gt;
=== Loggen des Temperaturverlaufes ===&lt;br /&gt;
Es ist möglich jeden Backvorgang in eine CSV-Datei zu loggen. (Software- und PID-Einstellungen). Geloggte CSV-Dateien können eingelesen und im zentralen Temperatur-Zeit-Diagramm begutachtet werden. Ein Ist-Soll-Vergleich ist ebenso möglich wie die direkte Anzeige des Fehlers (&amp;quot;Ist minus Soll&amp;quot;). Dank CSV können die Daten auch mit anderen Programmen (Excel, etc.) weiterverarbeitet werden.&lt;br /&gt;
&lt;br /&gt;
== Ofen / Pizzaofen ==&lt;br /&gt;
=== Leistung und Volumen ===&lt;br /&gt;
* Alls Faustformel wird oft 100W pro Liter Volumen genannt.&lt;br /&gt;
* Ich habe einen sehr preiswerten Ofen gewählt und die &amp;quot;Oberhitze&amp;quot; zusätzlich mit zwei Halogen-Stäben a 300W &amp;quot;verstärkt. Das kostet nicht viel, die Fassung ist für ca. 3 Euro erhältlich, die Halogenstäbe gibt es in jedem Baumarkt. &lt;br /&gt;
* Bezugsquelle Fassung : siehe &amp;quot;Links&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Dämmung ===&lt;br /&gt;
=== Umluft ===&lt;br /&gt;
* Der verwendete Ofen sollte eine Umluftfunktion besitzen, damit sich die Wärme gleichmäßig im Ofen und auf der Leiterplatte verteilen kann.&lt;br /&gt;
&lt;br /&gt;
== FAQ ==&lt;br /&gt;
&lt;br /&gt;
* Q1: Ich habe einen PT100/PT1000 und möchte den anschließen. Geht das?&lt;br /&gt;
** A1: Ja natürlich. Dazu ist aber etwas externe Elektronik notwendig. Sowohl 2 ADC-Pins (mit 3V3 Betriebsspannung als fixe Referenzspannung), als auch die UART und SPI/I2C-Schnittstelle stehen zur freien Verfügung. Für PT100/PT1000 wird für vernünftige Messungen ohnehin eine Verstärkung (meist mit OPV) von Nöten sein. Da der PIC-interne ADC &amp;quot;nur&amp;quot; 10bit Auflösung bietet sollte ein externer 16bit ADC in Betracht gezogen werden um das Potential der PT100/PT1000 auszunutzen.&lt;br /&gt;
*Q2: Ich habe von günstigen Temperaturmessungen mit Dioden gehört. Geht das auch hier?&lt;br /&gt;
**A2: Ja. Die Vorwärtsspannung einer Diode verhält sich linear zur Sperrschichttemperatur. Diese Spannung (bei 25°C einer Si-Diode die bekannten 0,7V) kann mittels OPV verstärkt werden und auf einen Spannungsbereich von 0 ... 3V3 aufgebläht werden. Eine billige Lösung, auf Kosten der Genauigkeit. Doch eine Diode ist laut Datenblatt nur bis 150°C geeignet. Es ist also beim Löten mehr oder weniger Pfusch. Wenn ich schon eine Reflow-Steuerung baue, sollte ich doch nicht an ein paar Euro für eine gescheite Temperaturmessung sparen. Einige Anregungen vom Messgerätehersteller Keithley bzgl. der Halbleiterphysik mit interessanten Formeln [http://www.keithley.de/support/data?asset=50486]. Oder natürlich der Klassiker von Thomas Pfeifer [http://thomaspfeifer.net/backofen_smd_reflow.htm]. Oder ein Beitrag mit LT-Spice Simulation zum Thema [http://www.mikrocontroller.net/topic/270627#2833883].&lt;br /&gt;
* Q3: God why ... ?&lt;br /&gt;
** A3: Because we can !&lt;br /&gt;
* Q4: Ich hab aber noch nie was mit 230V gemacht.&lt;br /&gt;
**A4: Dann würde ich an Deiner Stelle dieses Projekt NICHT nachbauen.&lt;br /&gt;
* Q5: Warum wurde Altium verwendet und nicht Eagle?&lt;br /&gt;
**A5: Weil es uns kostenlos zur Verfügung stand und wesentlich leistungsfähiger ist.&lt;br /&gt;
&lt;br /&gt;
= Verbesserungen Prototyp - Diese haben jedoch keinen Einfluss auf die Funktion der Leiterplatte=&lt;br /&gt;
* Bauteile weiter weg von den Schraublöchern.&lt;br /&gt;
* Dazu Kreis rund um Bohrung auf Bestückdruck.&lt;br /&gt;
* Masseanbindung Quarz.&lt;br /&gt;
* Klemmen weiter weg vom Rand.&lt;br /&gt;
* Klemme und Sicherungshalter weiter auseinander.&lt;br /&gt;
* Bohrungen für Drossel 0,2mm größer machen.&lt;br /&gt;
* Teilenummer für Conrad-USB-Buchse in BOM übernehmen.&lt;br /&gt;
* Stiftleiste P1  weiter weg von P2 und P4.&lt;br /&gt;
* Varistoren näher an Klemmen platzieren.&lt;br /&gt;
* THT-Kondensatoren für Snubber.&lt;br /&gt;
* Ggf. Stiftleistenbelegung für externe Leds so ändern, das keine extra Vorwiderstände notwendig sind.&lt;br /&gt;
* Befestigungsbohrung für Drossel, um diese mit Kabelbinderung oder Schraube fixieren zu können.&lt;br /&gt;
* Pullup-Widerstand bei MCLR doppelt. &lt;br /&gt;
* Power-LED vorsehen.&lt;br /&gt;
* Leiterbahnen etwas weiter weg von den Kühlkörperanschlüssen&lt;br /&gt;
* Designatoren Texte etwas größer machen.&lt;br /&gt;
* Ein vernünftiger GND-Punkt für einen Tastkopf / Messungen / Aligator-Clips vorsehen.&lt;br /&gt;
* Spannungsversorgung doch Onboard? Oder beides?&lt;br /&gt;
* Leds 90 Grad, Frontplattenmontage&lt;br /&gt;
* Taster 90 Grad Frontplattenmontage&lt;br /&gt;
* Termoelemente Frontplattenmontage??? Termoelementstecker?&lt;br /&gt;
* Schaltausgang 230 V kleiner, weniger Leistungsfähig.&lt;br /&gt;
&lt;br /&gt;
= Errata Projekt =&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:red;&amp;quot;&amp;gt; Triac Symbol in Library falsch, dadurch ist T2 mit T1 vertauscht. Abhilfe für Leiterplattenversion V1.0: T1 und T2 &amp;quot;twisten&amp;quot; und jeweils mit Schrumpfschlauch versehen.( Also Beinchen T1 über kreuz mit Beinchen T2 einlöten...)&amp;lt;/span&amp;gt;&lt;br /&gt;
* Beim MOSFET R39 ist die Masseanbindung falsch. Es bestehen drei Möglichkeiten:&lt;br /&gt;
** 1. 0-R-Brücke für R39 einbauen und auf Strombegrenzung verzichten.&lt;br /&gt;
** 2. Eine Polyfuse mit Bauform 1206 einbauen. &lt;br /&gt;
** 3. Das kleine Leiterbahnstückchen zwischen R38 und R39 unterbrechen und statt dessen die Leiterbahn zwischen R39 und der Klemme mit der Durchkontaktierung bei R38 verbinden.&lt;br /&gt;
* LED-Beschriftung passt nicht ganz (Schaltplan Netlabel OUT1,2,3,4 sind durcheinander gekommen) --&amp;gt; Ist im Prinzip ohne Belang, man muss das nur bei der Software berücksichtigen.&lt;br /&gt;
* Schaltplan UNL2003 fehlerhafte Zuordnung IN5,6,7 &amp;lt;&amp;gt; OUT7,6,5 --&amp;gt; Ist im Prinzip ohne Belang, man muss das nur bei der Software berücksichtigen.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* Diskussion: [http://www.mikrocontroller.net/topic/297217 Diskussion]&lt;br /&gt;
* Software: [http://sourceforge.net/projects/reflowofensteue/ Bei Sourceforge]&lt;br /&gt;
* Dextrel Nulldurchgang: [http://www.dextrel.net/diyzerocrosser.htm Nulldurchgangschaltung]&lt;br /&gt;
* Gehäuse Zeichnung: [http://www.hammondmfg.com/pdf/RM2055L.pdf Großes Gehäuse für Steckdosenmontage]&lt;br /&gt;
* Gehäuse Zeichnung: [http://www.hammondmfg.com/pdf/RM2055M.pdf Kleines Gehäuse, keine Steckdosen]&lt;br /&gt;
* Bezugsquelle [http://www.soselectronic.com/?str=371&amp;amp;artnum=73596&amp;amp;name=hammond-ritec-rm2055l Großes Gehäuse Hammond]&lt;br /&gt;
* Bezugsquelle [http://www.soselectronic.com/?str=371&amp;amp;artnum=73595&amp;amp;name=hammond-ritec-rm2055m Kleines Gehäuse Hammond]&lt;br /&gt;
* Bezugsquelle [http://www.druckerzubehoer.de/shop/product/catid/H-UNIVERSALZUBEHOER_HZB/subcatid/UNIVERSALZUBEHOER_GROUP1_HZB/productid/1727063-390722LA/site/1/lng/de_DE Netzteil Mini USB ]&lt;br /&gt;
* Bezugsquelle [http://www.ebay.de/itm/151037292125?ssPageName=STRK:MEWNX:IT&amp;amp;_trksid=p3984.m1497.l2649 Termoelement Ebay (Typ K für ca. 2Euro)]&lt;br /&gt;
* Bezugsquelle [http://www.artcase-shop.de/index.php?page=search&amp;amp;page_action=query&amp;amp;desc=on&amp;amp;sdesc=on&amp;amp;keywords=pce+105&amp;amp;x=0&amp;amp;y=0 Steckdosen für Schalttafeleinbau:]&lt;br /&gt;
* Bezugsquelle [http://www.schaeffer-ag.de/ Frontplatten]&lt;br /&gt;
* Bezugsquelle [http://www.lichtlieferant.de/catalogsearch/result/?q=r7s+fassung+sockel Vossloh Fassung R7S für Halogenstäbe]&lt;br /&gt;
* Datenblatt Prozessor [http://ww1.microchip.com/downloads/en/DeviceDoc/39632e.pdf PIC18LF2550]&lt;br /&gt;
* Umfangreicher Thread u.A. Leistungsvermögen, Temperaturmessung und Dämmung [http://www.mikrocontroller.net/topic/270627]&lt;br /&gt;
[[Kategorie:PIC-Projekte]]&lt;/div&gt;</summary>
		<author><name>Frankman</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=Reflow_Ofen_Steuerung&amp;diff=80587</id>
		<title>Reflow Ofen Steuerung</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=Reflow_Ofen_Steuerung&amp;diff=80587"/>
		<updated>2014-01-03T12:54:30Z</updated>

		<summary type="html">&lt;p&gt;Frankman: /* Kühlkörpermontage */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Datei:RFB.jpg|thumb|right|200px|Altium 3D Ansicht]]&lt;br /&gt;
[[Datei:pcb.png|thumb|right|200px|Fertige Reflow-Ofen-Steuerung]]&lt;br /&gt;
[[Datei:Teilbest2.jpg|750px|teilbestückte Platine]]&lt;br /&gt;
== Einleitung ==&lt;br /&gt;
&lt;br /&gt;
Hier wird eine weitere Reflow-Ofen-Steuerung beschrieben.&lt;br /&gt;
=== Zum Nachbauen ===&lt;br /&gt;
* Spezifikation: [[Datei: Spec Reflow.pdf]]&lt;br /&gt;
* Schaltplan: &lt;br /&gt;
** Minimalversion [[Datei:Schematic Prints Minimal.pdf]]&lt;br /&gt;
** Standardversion [[Datei:Schematic Prints Standard.pdf]]&lt;br /&gt;
** Deluxeversion [[Datei:Schematic Prints Deluxe.pdf]]&lt;br /&gt;
** Debugversion [[Datei:Schematic Prints Debug.pdf]]&lt;br /&gt;
* Gerberdaten: [[Datei:Gerber Reflow.pdf]]&lt;br /&gt;
* Assemblydrawing: [[Datei:Assembly Reflow.pdf]] &lt;br /&gt;
* Altium-Files: [[Datei:Reflow.zip]]&lt;br /&gt;
* Stückliste als CSV: [[Datei:Reflow.csv]]&lt;br /&gt;
* Stückliste als Open Office: [[Datei:Reflow.ods]]&lt;br /&gt;
* PC Programm: TBD&lt;br /&gt;
* Sourcen PC-Programm: TBD&lt;br /&gt;
* PIC Programm (*.hex): [http://sourceforge.net/projects/reflowofensteue/ ]&lt;br /&gt;
* Sourcen Pic-Programm: [http://sourceforge.net/projects/reflowofensteue/ ]&lt;br /&gt;
* Step-File Steckdose:[[Datei:Steckdose.stp]]&lt;br /&gt;
&lt;br /&gt;
=== Motivation ===&lt;br /&gt;
Die Gründe, eine weitere Steuerung zu entwerfen, waren:&lt;br /&gt;
&lt;br /&gt;
* Die Möglichkeit, auch größere Öfen mit 2 Phasen betreiben zu können.&lt;br /&gt;
* Die Steuerung universell zu gestalten. Es sollte möglich sein, diese nicht nur zum Reflow löten zu verwenden....z.B:&lt;br /&gt;
** Temperatursteuerung für Klimakammer (Heizen, Kühlen)&lt;br /&gt;
** Dimmer mit USB&lt;br /&gt;
** Temperaturregler für ein Tisch-Fondue ( Temperatur halten)&lt;br /&gt;
** Drehzahlsteller mit USB&lt;br /&gt;
** Switchpack&lt;br /&gt;
* Die Schaltung sollte in Altium entwickelt werden. (Warum kein Eagle??? Altium User wissen es.... :-)&lt;br /&gt;
* Die Schaltung sollte mit USB ausgestattet sein.&lt;br /&gt;
&lt;br /&gt;
=== Eigenschaften &amp;amp; Spezifikationen ===&lt;br /&gt;
* Temperaturmessung: bis zu 2x &#039;&#039;&#039;Thermoelement&#039;&#039;&#039; (K-Typ) mit MAX6675 (abgekündigt) oder Nachfolger MAX31855 (pin- aber nicht softwarekompatibel)&lt;br /&gt;
* Leistungsstufen: &#039;&#039;&#039;3 voneinander unabhängige&#039;&#039;&#039; Triacs 800V 25A, limitiert auf &#039;&#039;&#039;10A @ 250VAC&#039;&#039;&#039; (z.B. Oberhitze, Unterhitze, Umluft)&lt;br /&gt;
* Nulldurchgangserkennung ermöglicht Wellenpaket-, und Phasenabschnittssteuerung * Galvanische Trennung der Leistungsendstufen&lt;br /&gt;
* 1x MOSFET-Ausgang PWM z.B. für 12V Lüfter, max. &#039;&#039;&#039;55V 3,5A&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;4 feste Programme&#039;&#039;&#039; im EEPROM über 2-Tasterbedienung und LEDs wähl- und ausführbar. &lt;br /&gt;
* &#039;&#039;&#039;PC-unabhängiger Betrieb&#039;&#039;&#039; möglich. &lt;br /&gt;
* Beliebig viele Programme möglich, bei Betrieb am Computer &lt;br /&gt;
* Mini-USB-Buchse zur Steuerung / Programmierung über GUI und zum Entwickeln. - Dafür ist &#039;&#039;&#039;keine Netzspannung&#039;&#039;&#039; erforderlich&lt;br /&gt;
* Günstiges passendes Gehäuse&lt;br /&gt;
* Alle LEDs und Taster auf &#039;&#039;&#039;Stiftleisten&#039;&#039;&#039; herausgeführt, für eigene Gestaltung der Frontblenden&lt;br /&gt;
* PID-Temperaturregler&lt;br /&gt;
* UART, SPI, I2C und 2x ADC auf Stiftleisten herausgeführt, für zukünftige &#039;&#039;&#039;Erweiterungen&#039;&#039;&#039;&lt;br /&gt;
* Versorgung über USB &amp;lt; 100mA, interne Versorgungsspannung 3,3V&lt;br /&gt;
* umfangreiche EMV-gerechte Entstörung für den Bedarfsfall&lt;br /&gt;
&lt;br /&gt;
=== Zusätzliches Benötigtes Material ===&lt;br /&gt;
* Leiterplatte (1 Stück)&lt;br /&gt;
* Gehäuse Hammond Teilenummer: RM2055L (1 Stück)&lt;br /&gt;
* Alternativ:Gehäuse Hammond Teilenummer: RM2055M (Wenn keine Steckdosen angebracht werden sollen)&lt;br /&gt;
* Alternative: Gehäuse Hammond (Hier muss man die Leiterplatte selber befestigen) Teilenummer: 1455T2201 (1 Stück)&lt;br /&gt;
* Einbausteckdosen Teilenummer: PEC 105 (2-3 Stück, je nach Ausbaustufe)&lt;br /&gt;
* PG-Verschraubung (2-3 Stück)&lt;br /&gt;
* Mutter für PG-Verschraubung (2 Stück)&lt;br /&gt;
* Litze blau, mindestens 1,5mm² (ca. 60cm)&lt;br /&gt;
* Litze braun, mindestens 1,5mm² (ca. 60cm) &lt;br /&gt;
* Litze gelb/grün, mindestens 1,5mm² (ca. 60cm)&lt;br /&gt;
* Aderendhülsen  mit Schutzkragen dazu ( 9 Stück für die Steckdosen)&lt;br /&gt;
* Schrauben, um die Leiterplatte zu befestigen (4 Stück)&lt;br /&gt;
* evtl. Abstandsbolzen dazu, falls das alternative Gehäuse verwendet wird (4 Stück)&lt;br /&gt;
* evtl. Muttern dazu, falls das alternative Gehäuse verwendet wird (4 Stück)&lt;br /&gt;
* Schrauben, Senkkopf DIN 7991 oder DIN 965 M4 X 10 um die Steckdosen zu befestigen (12 Stück)&lt;br /&gt;
* Muttern dazu M4 (12 Stück)&lt;br /&gt;
* Federschreiben  dazu DIN 127 M4 (12 Stück)&lt;br /&gt;
* Glimmerscheiben für Triac (2-3 Stück, je nach Ausbaustufe)&lt;br /&gt;
* Isoliernippel für Triacmontage (2-3 Stück, je nach Ausbaustufe)&lt;br /&gt;
* Zylinderkopfschraube M3 X 12 für Triacmontage (2-3 Stück, je nach Ausbaustufe)&lt;br /&gt;
* Mutter M3 für Triacmontage (2-3 Stück, je nach Ausbaustufe)&lt;br /&gt;
* Beilagscheibe M3 für Triacmontage (2-3 Stück, je nach Ausbaustufe)&lt;br /&gt;
* Isolierband für Triacmontage (ca. 300mm)&lt;br /&gt;
* Gummifüße für das Gehäuse (4 Stück)&lt;br /&gt;
&lt;br /&gt;
=== Kühlkörpermontage===&lt;br /&gt;
[[Datei:kuehlkoerper.jpg|thumb|right|200px|Montagedetail Kühlkörper]]&lt;br /&gt;
* Der Kühlköper sollte 38mm hoch sein, so passt er gut in die angegebenen Gehäuse&lt;br /&gt;
* Der Kühlkörper MUSS isoliert montiert werden, also Glimmerscheibe und Isoliernippel einsetzen und NACHMESSEN, ob der Kühlkörper auch wirklich keinen Kontakt zum Triac hat!&lt;br /&gt;
* Da die 230-V-Leiterbahnen nur durch den Stopplack vom Kühlkörper getrennt sind, sollte die Isolation mit zwei Lagen Gewebe- oder Isolierband verstärkt werden. Das Isolierband kann auf die Leiterplatte oder unter den Kühlkörper geklebt werden.&lt;br /&gt;
* Als Bohrungsmaß empfehle ich 20mm über der Leiterplatte.&lt;br /&gt;
* Entweder Bohrung 3,2mm für Durchgangsloch &lt;br /&gt;
* Oder Bohrung 2,5mm mit M3-Gewinde&lt;br /&gt;
&lt;br /&gt;
== Schaltung==&lt;br /&gt;
=== PIC18LF2550 Grundbeschaltung ===&lt;br /&gt;
[[Datei:osc_vs_vcc.png|thumb|right|200px|Taktraten und Versorgungsspannung PIC18F2550 vs. PIC18LF2550, Datenblatt S. 370/438]]&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 3/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Hier kommt ein PIC18&#039;&#039;&#039;L&#039;&#039;&#039;F2550 zum Einsatz. Er verfügt über eine USB-Schnittstelle und ist für Betriebsspannungen von 2 ... 5,5V ausgelegt. Sein Verwandter PIC18F2550 (ohne L) ist nicht für Betriebsspannungen &amp;lt; 4,2V ausgelegt. Dies ist bei USB sowieso nicht immer erfüllt und die Thermoelement-ICs vertragen ohnehin keine 5V, daher wurde die Betriebsspannung auf 3,3V reduziert. Neben Standard-Decoupling (100nF Kerko pro Vcc-Vss-Pärchen) wurde das ICSP-Interface in alt bewährter Pinbelegung (PICKit1,2,3) angebracht. PGD und PGC sind nicht weiter beschaltet, MCRL wird , wie immer als Resetpin verwendet. Der Resetschalter findet sich auf dem Top-Sheet (Schaltplan S. 1/22). Die Taktversorgung erfolgt über einen 24 MHz Quarz (-&amp;gt; USB). Man beachte diesbezüglich rechts stehende Grafik zu Taktraten und Versorgungsspannungen (Vdd bzw. auch Vcc genannt). Auch zu finden im Datenblatt des PICs auf Seite 370.&lt;br /&gt;
&lt;br /&gt;
=== PIC18LF2550 USB Beschaltung ===&lt;br /&gt;
[[Datei:usb_part.png|thumb|right|200px|PIC18(L)F2550&lt;br /&gt;
 Standard &lt;br /&gt;
USB-Beschaltung am PIC]]&lt;br /&gt;
[[Datei:usb_protect.png|thumb|right|200px|USB-Schutzbeschaltung und Mini-USB-Buchse]]&lt;br /&gt;
&lt;br /&gt;
Die Beschaltung der USB-Schnittstelle am PIC ist 1:1 aus dem Datenblatt übernommen. Zum Einsatz kommt eine Mini-USB-Buchse (J1).&lt;br /&gt;
Der Gedanke war: Erstens ein sehr preiswertes, fertiges Netzteil verwenden zu können, (ca. 3,67 € bei druckerzubehoer.de) und zweitens, die Steuerung auch mit dem PC / Laptop versorgen zu können.&lt;br /&gt;
Somit kann die Schaltung OHNE 230V betrieben und debuggt werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 4/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
FER1,2 und C7 filtern den Schirm nach GND. Standardmäßig wird man hier wohl 0-Ohm-Widerstände einsetzen. Falls ein Besuch im EMV-Labor geplant ist, weicht man auf den Ferrit aus. C5 und C6 filtern das Signal zusammen mit der Common-Mode-DrosselL1. Die Drossel kann mit den 0-Ohm-Brücken R8 und R9 überbrückt (gespart) werden. IC2 ist als ESD-Schutz gedacht und kann ebenfalls bei ausgeprägten Kostenbewustsein gespart werden. Die Widerstände R6 und R7 dürfen NICHT bestückt werden. FER1,2, C5, IC2 müssen nicht zwingend bestückt werden. Die Bestückung wurde vorgehalten um im Problemfall einfache Abhilfe schaffen zu können.&lt;br /&gt;
&lt;br /&gt;
=== 3,3V Spannungsversorgung ===&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 2/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Die 3,3V Versorgungsspannung für die gesamte Platine wird aus V_USB mittels des LDO Spannungsreglers TOREX - XC6206P332MR abgeleitet. Günstig, SOT-23, klein, 2x 1µF Kondensatoren benötigt, 3,3V max. 250mA. Der hat auch einen sehr kleinen Ruhestrom.&lt;br /&gt;
&lt;br /&gt;
=== Taster ===&lt;br /&gt;
*Der Resettaster zieht den MCLR-Pin nach GND und löst damit den Reset aus. MCLR  ist mit einem 10k Pullup versehen.&lt;br /&gt;
*Die übrigen beiden Taster ziehen RA4 bzw. RB5 ebenfalls nach GND.&lt;br /&gt;
&lt;br /&gt;
=== LEDs + ULN2003L ===&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 11/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Um alle LEDs auf der Platine (3x Optotriac + 7x Status) ansteuern zu können wurde auf das 7fach Darlington-Array ULN2003L zurückgegriffen. Die PIC-Ausgänge könnten zwar die LEDs direkt steueren. Aber so werden alle Ausgänge einheitlich nach Masse geschaltet. Das verbessert die Testbarkeit der ganzen Platine. ( Mit einem kurzen Masse-Draht kann zur Not der entsprechende Ausgang gesetzt werden, ohne etwas zu zerstören.)&lt;br /&gt;
&lt;br /&gt;
=== MOSFET-Leistungsausgang ===&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 22/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Hier kommt der einfacher N-Kanal MOSFET (LogicLevel) PHT8N06LT zum Einsatz. Er wird über das ULN2003L Array getrieben und ermöglicht den Anschluss eines DC-Verbrauchers mit max. 55V bei 3,5A. Hier könnte beispielsweise ein PC-Lüfter zur Kühlung oder für Umluft angeschlossen und über PWM geregelt/gesteuert werden. Ein Gatewiderstand von 100 Ohm ist zum Schutz des Treibers vorgesehen. Eine 0-Ohm-Brücke ist stattdessen aber auch möglich, wenn man eine höhere Leistung schalten möchte.Die Leiterbahnen sollten die 3A schon hergeben. Der 100 Ohm Widerstand bildet eine Stromquelle. Sobald der Strom durch den MOSFET und den Widerstand 33mA erreicht, sinkt UGS gegen 0 V. Folge: Der Mosfet sperrt ( und bleibt ganz....)&lt;br /&gt;
Es kann hier prinzipiell auch ein anderer Mosfet im SOT223-Gehäuse zum Einsatz kommen. Achten sollte man darauf, das der MOSFET schon bei 3,3V Ugs gut leiten sollte.&lt;br /&gt;
&lt;br /&gt;
=== Nulldurchgangserkennung ===&lt;br /&gt;
[[Datei:zerocross.png|thumb|right|200px|Nulldurchgangserkennung]]&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 5/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Die Nulldurchgangserkennung erfolgt nach einer sehr bekannten - jedoch ausgeklügelten - Schaltung.  [http://www.dextrel.net/diyzerocrosser.htm siehe: Dextrel]&lt;br /&gt;
Während einer Halbwelle wird C14 über R33 und R35 bzw. D5 geladen. Währenddessen ist T1 gesperrt. Sobald die Wechselspannung (L1-N über Spannungsteiler (R33+R35) / R34) kleiner ist als die Spannung über C14, steuert T1 durch. Dann entlädt sich C14 über den LED-Vorwiderstand R32. Der durch-steuernde Optokoppler zieht die Sync-Leitung nach GND. (Pullup Sync-Leitung = R31). Dies löst beim PIC auf INT2 einen Interrupt aus. &lt;br /&gt;
Dieser Interrupt ermöglicht eine präzise Wellenpaket-, Phasenanschnittsteuerung je nach Bedarf. Das Schalten im Nulldurchgang bei der Wellenpaketsteuerung reduziert EMV-Störungen. Für Phasenanschnitt ist ohnehin eine Nulldurchgangserkennung notwendig. Außerdem liefert sie eine genaue Zeitbasis für alle Programmabläufe.&lt;br /&gt;
&lt;br /&gt;
=== Triac-Ausgänge + Snubber ===&lt;br /&gt;
[[Datei:triac.png|thumb|right|200px|Triac-Ausgangsbeschaltung]]&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 19,20,21/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Die Ansteuerung des eigentlichen Leistungstriacs BTA140-800 erfolgt über den Optotriac IS6005. Der Strom durch Letzteren wird durch R1x limitiert (Vorwiderstand). R2x und R5x limitieren wiederum den Strom durch den Optotriac. Wenn dieser zündet so folgt unmittelbar der &amp;quot;Leistungstriac&amp;quot; der dann die Last schaltet.&lt;br /&gt;
&lt;br /&gt;
S1x ist ein Sicherungshalter um die Lasten einzeln absichern zu können. Wert 10A Mittelträge.&lt;br /&gt;
&lt;br /&gt;
R3x, R4x, C3x bilden ein Snubber-Network, L1X verhindert eine zu schnelle Stromanstiegsgeschwindikeit damit der Triac nicht &amp;quot;von selbst&amp;quot; zündet. Weglassen äußert sich meist in einem fast nicht hörbaren Click. Damit zeigt einem dann der Triac, dass er ab jetzt für immer recht niederohmig geworden ist. Die Regelung der Temperatur braucht dann nicht mehr über den Prozessor erfolgen, sondern nur noch mit dem Ein-/Ausschalter..... :-)&lt;br /&gt;
&lt;br /&gt;
=== Thermoelemente (MAX6675/MAX31855)  ===&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 6,7/22&#039;&#039;&#039;&lt;br /&gt;
Der inzwischen abgekündigte MAX6675 bzw. sein ehrenwerter Nachfolger MAX31855 sind einfach zu handhabende Thermoelement-ICs mit Kaltstellenkompensation. Thermoelemente funktionieren durch das Verschweißen zweier verschiedener Legierungen (beim K-Typ Thermoelemnt Ni und CrNi). Durch den durch die Umgebungstemperatur bedingten Wärmefluss zwischen beiden entsteht ein elektrische Spannung. Diese wird von besagten ICs verstärkt und digitalisiert (ADC). Diese Spannung / Temperatur ist natürlich wieder relativ zur Umgebungstemperatur an der Kaltstelle (Kontaktierung der beiden Drähte mit dem Messinstrument). Daher messen diese ICs auch gleich die Umgebungstemperatur (Kaltstellenkompensation genannt) mit, verrechnen das und geben das Ergebnis auf der SPI-Schnittstelle aus. MAX6675 leistet 12bit also 0,25°C Auflösung (nicht Genauigkeit!) über einen Temperaturbereich von 0°C to +1024°C. Außerdem wird ein nicht/fehlerhaft angeschlossenes Thermoelement erkannt. Der Thermocouple-IC wird an die SPI-Schnittstelle des PICs angeschlossen (hier MSSP genannt). &lt;br /&gt;
&lt;br /&gt;
MAX6675 und MAX31855 scheinen entgegen der Adafruit-Information [http://www.adafruit.com/products/269] doch pinkompatibel zu sein - die Ansteuerung unterscheidet sich jedoch definitiv. (Zitat: &amp;quot;Now uses the MAX31855K instead of the MAX6675, so it can measure a wider temperature measurement range. Please note! the MAX31855 is not pin compatible or drop-in code compatible with the MAX6675. We do have an Arduino library for both chips but you&#039;ll need to adjust any existing MAX6675 designs for the mew MAX31855. The MAX6675 has been discontinued by Maxim.&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Es wurden 2 dieser ICs und damit 2 Temperaturmessstellen vorgesehen. Dies ermöglich die Messung für eine Regelung der Temperatur so wie eine zusätzliche Überwachung kritischer Bauteile (z.B. ICs oder LEDs). Die Minimalbestückung sieht einen MAX6675/MAX31855 vor. Die Auswahl in der Firmware erfolgt über einen der beiden GPIO-Pins RA5 oder RA0 via dem ChipSelect (CS) des MAX6675/MAX31855.&lt;br /&gt;
&lt;br /&gt;
Neben dem MAX6675/MAX31855 wurde ein Decoupling-Kondensator (C8x, Standard 100nF) so wie ein weiterer im Messpfad (C9x) zur Zwecken der Entstörung vorgeshen. C9x 100nF sollte nur bestückt werden wenn Probleme bei der Temperaturmessung entstehen (z.B. unrealstisch stark schwankende Werte).&lt;br /&gt;
&lt;br /&gt;
=== ADC, SPI, UART &amp;amp; I2C Stiftleiste ===&lt;br /&gt;
ADC, SPI, UART und I2C sind zu Zwecken der Kalibrierung / Erweiterung / Einstellung / Debugging auf Stiftleisten herausgeführt:&lt;br /&gt;
Ähnlichkeiten mit dem FTDI-USB-TTL-Kabel bzw. Arduino XXX Bla Bla Bla Schnittstellenkonverter sind natürlich rein zufällig.&lt;br /&gt;
&lt;br /&gt;
Die I2C-Schnittstelle wurde auf eine Stiftleiste geführt, um z.B. einem LM75 o.ä. anschließen zu können. Damit stehen zur Kalibrierung der Thermoelemente genaue Temperaturen zur Verfügung.&lt;br /&gt;
&lt;br /&gt;
Die Stiftleisten haben alle ein Raster von 2,54mm. So können Pin-Header, Wannenstecker oder ähnliches verwendet werden.&lt;br /&gt;
&lt;br /&gt;
Da ja viele Leute eigene Vorstellungen bezüglich der Frontplattengestaltung haben, wurden auch die Taster und LEDs auf Stiftleisten geführt.&lt;br /&gt;
&lt;br /&gt;
=== Kühlkörper ===&lt;br /&gt;
Da die Triacs der Steuerung für bis zu 10A pro Kanal ausgelegt sind, kann man auf die Kühlkörper nicht verzichten. Es fallen bei 10A bis zu 13 Watt Wärme pro Triac ab. Falls mann auf die Kühlkörper doch verzichten möchte, sollte man darauf achten, die Triacs mit dem Kopf nach unten einzubauen. Diese können sich dann bei Überlast ganz von selber auslöten.... :-)&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red;&amp;quot;&amp;gt; Die Triacs müssen mit Glimmerscheibe und Isoliernippel -ALSO ISOLIERT ZUM KÜHLKÖRPER- montiert werden.&lt;br /&gt;
Außerdem muss unter dem Kühlkörper ein Stück Isolierband oder FR4 oder Nylon-Scheiben beigelegt werden, um zu verhindern, dass der Stopplack der Leiterplatte beschädigt wird. In diesem Falle hätte man Potential auf dem Kühlkörper.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Gehäuse ===&lt;br /&gt;
Die Leiterplatte wurde für ein Gehäuse von Hammond entwickelt.&lt;br /&gt;
Das Gehäuse ist zwar keine Schönheit, aber doch recht preiswert.&lt;br /&gt;
Typenbezeichnung: RM2055M oder etwas größer RM2055L&lt;br /&gt;
&lt;br /&gt;
== Firmware PIC ==&lt;br /&gt;
* Die Entwicklung der Firmware für den PIC18LF2550  erfolgt mit MPLABX und dem C18 Compiler. &lt;br /&gt;
* MPLABX ist kostenlos, der C18 Compiler bis auf die stärkste Optimierungsstufe ebenfalls. &lt;br /&gt;
* Die Quellen für die Firmware sind offengelegt und können von Sourceforge bezogen werden, siehe Links, weiter unten.&lt;br /&gt;
&lt;br /&gt;
=== Programmstruktur- und ablauf ===&lt;br /&gt;
Nach anfänglicher Initialisierung des PIC startet die Statemachine [http://http://www.mikrocontroller.net/articles/Statemachine] [http://http://de.wikipedia.org/wiki/Endlicher_Automat]. Neben ihr findet in der main-Funktion nur noch die Abfrage der beiden Bedientasten statt. Mit dem Tastendruck wird zum Zwecke der Entprellung ein Timer gestartet. Alles Andere (incl. PID-Regelung, Wellenpaket- bzw. Phasenan- und Phasenabschnittssteuerung und USB) ist interruptbasiert.&lt;br /&gt;
=== Reflow-Ofen-Konfiguration ===&lt;br /&gt;
&lt;br /&gt;
=== Taktversorgung, Nulldurchgangserkennung und Zeitbasis ===&lt;br /&gt;
=== USB ===&lt;br /&gt;
=== SPI für MAX6675 ===&lt;br /&gt;
=== SPI für MAX31855 ===&lt;br /&gt;
&lt;br /&gt;
=== Wellenpaketsteuerung ===&lt;br /&gt;
=== Phasenanschnitt ===&lt;br /&gt;
&lt;br /&gt;
=== PWM für MOSFET ===&lt;br /&gt;
=== PIC-Configword ===&lt;br /&gt;
&lt;br /&gt;
=== Zuordnung Outputs ===&lt;br /&gt;
[[Datei:pinning.png|thumb|right|400px|Input/Output-Funktions-Tabelle]]&lt;br /&gt;
&lt;br /&gt;
*In1 = RC2 = PIN13 = ULN5--&amp;gt;12 = OUT1 = PWM &lt;br /&gt;
*In2 = RB3 = PIN24 = ULN6--&amp;gt;11 = OUT2 = TRIAC_A (1) = K5&lt;br /&gt;
*In3 = RB4 = PIN25 = ULN7--&amp;gt;10 = OUT3 = TRIAC_B (2)= K2&lt;br /&gt;
*In4 = RA2 = PIN4  = ULN4--&amp;gt;13 = OUT4 = LED_PRG1 = OPTO D&lt;br /&gt;
*In5 = RC0 = PIN11 = ULN3--&amp;gt;14 = OUT6 = LED_PRG2 = OPTO F&lt;br /&gt;
*In6 = RC1 = PIN12 = ULN2--&amp;gt;15 = OUT7 = LED_PRG3 = OPTO G&lt;br /&gt;
*In7 = RA3 = PIN5  = ULN1--&amp;gt;16 = OUT5 = LED_PRG4 = OPT= E&lt;br /&gt;
&lt;br /&gt;
TRIAC1 ist nahe dem Zerocross&lt;br /&gt;
&lt;br /&gt;
== PC-Software (GUI) ==&lt;br /&gt;
[[Datei:gui_alpha.png|thumb|right|300px|Screenshot der GUI (noch Alpha) für den Reflow-Ofen-Controller]]&lt;br /&gt;
&lt;br /&gt;
Die GUI (englisch Graphical User Interface) ist der Einfachheit halber in VB.net programmiert und momentan noch im Alpha-Stadium. Auch hierfür liegen die Quellen später selbstverständlich offen.&lt;br /&gt;
&lt;br /&gt;
=== Funktionen und Modi ===&lt;br /&gt;
[[Datei:modi.png|thumb|right|400px|Auswahl der beschriebenen Modi durch Klick]]&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Ofen-Profil&amp;quot;&#039;&#039;&#039; - Es wird ein Programm (Temperaturkurve) aus dem EEPROM des Reflow-Ofens ausgeführt. Der Backvorgang kann mit der Software gesteuert (START, STOP, ...) und überwacht werden. Hierzu stehen Temperatur, Temperaturänderung, Heizleistung (Ober- und Unterhitze, Lüfter) so wie die graphische Darstellung im zentralen Diagramm zur Verfügung. Eingriffsmöglichkeiten, wie das Ändern der Temperaturkurve sind nicht vorgesehen. Dies soll ein reiner Überwachungs-Modus sein. Um die Temperaturkurve zu verändern zu können, sollte der Modus &amp;quot;PC-Profil&amp;quot; verwendet werden und die Temperaturkurve aus dem EEPROM importiert werden. Dann kann Selbige auch verändert und anschließend ausgeführt bzw. verändert in den EEPROM zurückgeschrieben werden. Dieser Modus stellt ein Äquivalent zur START/STOP-Tasten-Bedienung an der Platine dar und kann selbstverständlich parallel dazu genutzt werden. Die GUI also als Addon zum Stand-Alone-Betrieb.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;PC-Profil&amp;quot;&#039;&#039;&#039; - Es wird ein Programm (Temperaturkurve) ausgeführt welche zuvor am Computer erstellt / editiert wurde. In diesem Modus gibt der Computer Temperaturwerte vor, welche live über die USB-Schnittstelle zum PIC übertragen werden und mit dem dort integrierten PID-Regler ausgeführt werden. Das ermöglicht eine on-the-fly Veränderung der Temperaturkurve während des Backvorgangs. Temperaturkurven können aus Dateien oder dem EEPROM importiert und auch wieder exportiert werden. CSV-Dateien können ebenfalls importiert und exportiert werden. Die &amp;quot;Eingabe&amp;quot; der Temperaturkurve erfolgt entweder über Import (CSV/EEPROM), per Mausklick auf dem zentralen Diagramm oder im sog. DataGridView. Weiteres siehe Unterpunkt &amp;quot;Eingabe der Temperaturkurve (Reflowprofil)&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;manueller Ablauf&amp;quot;&#039;&#039;&#039; - In diesem Modus wird (im Gegensatz zu den oberen beiden Modi &amp;quot;Ofen-Profil&amp;quot; und &amp;quot;PC-Profil&amp;quot;) keine Temperatur geregelt. Hier wird die Leistung des Ofens in % eingestellt und gesteuert. Der PID-Regler ist nicht in Aktion. Die Temperatur, Temperaturänderung so wie der Temperaturverlauf werden selbstredend angezeigt bzw. im Diagramm dargestellt. Der Modus &amp;quot;manueller Ablauf&amp;quot; fährt ähnlich dem Modus &amp;quot;PC-Profil&amp;quot; die im DataGridView eingetragenen Leistungs-Zeit-Punkte ab. Für jeden Zeitpunkt ist eine Leistung vorgegeben. Die Eingabe erfolgt ähnlich wie unter &amp;quot;Eingabe der Temperaturkurve (Reflowprofil)&amp;quot; beschrieben. Nur eben, dass eine Leistung und keine Temperatur angegeben wird. Die Eingabe der Leistung kann nicht im Zeit-Temperatur-Diagramm erfolgen sondern mittels der Schieberegler oder direkt tabellarisch.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;manueller Modus&amp;quot;&#039;&#039;&#039; - Dieser Modus enthält 2 Submodi&lt;br /&gt;
** &amp;quot;manueller Leistungsmodus&amp;quot; - Auch in diesem Modus wird die Leistung gesteuert. Es wird keine Temperatur geregelt, der PID-Regler für die Temperatur ist nicht in Betrieb. Die Einstellung hier erfolgt über die drei Schieberegler oder über eine numerische Eingabe durch Klick auf die Leistungsangabe unter dem Schieberegler. Durch Klick auf die Texte &amp;quot;TOP&amp;quot;, &amp;quot;BOTTOM&amp;quot;, &amp;quot;FAN&amp;quot; (Oberhitze, Unterhitze, Lüfter) können selbige deaktiviert bzw. aktiviert werden. Auch in diesem Modus wird Temperatur, Temperaturänderung so wie der Temperaturverlauf dargestellt.&lt;br /&gt;
** &amp;quot;manueller Temperaturmodus&amp;quot; - Hier wird die Temperatur wieder mittels des Temperatur-PIDs geregelt. Die Temperatur wird entweder mittels Schieberegler (Ober- und Unterhitze-Regler sind jetzt gekoppelt) oder durch eine numerische Eingabe unterhalb der Schieberegler vorgegeben. Anzeige wie im &amp;quot;manuellen Leistungsmodus&amp;quot;. Der Lüfter kann unabhängig vom PID in seiner Leistung geregelt werden. Ein evtl. durch den Luftstrom verursachter Temperaturabfall wird vom PID selbstverständlich ausgeregelt (aus diesem Grunde ist es ja ein Regler).&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Programmieren&amp;quot;&#039;&#039;&#039; - Hier kann ein neues &#039;&#039;&#039;Temperatur&#039;&#039;&#039;-Programm für den EEPROM-Speicher des Ofens erstellt und editiert werden. Die Eingabemöglichkeiten sind unter &amp;quot;Eingabe der Temperaturkurve (Reflowprofil)&amp;quot; beschrieben. Dieser Modus ist zum reinen Programmieren des Ofens gedacht und ermöglicht keine weitere Steuerung oder Überwachung des Ofens.&lt;br /&gt;
&lt;br /&gt;
=== Eingabe der Temperaturkurve (Reflowprofil) ===&lt;br /&gt;
[[Datei:datagridview.png|thumb|right|400px|tabellarische Anzeige und Editiermöglichkeit der Temperaturkurve]]&lt;br /&gt;
Die Eingabe der Temperaturkurve erfolgt entweder über Import (CSV/EEPROM), per Mausklick auf dem zentralen Diagramm oder im sog. DataGridView (Excel-ähnliche Bedienung in tabellarischer Form). &lt;br /&gt;
&lt;br /&gt;
* CSV-Import + Export&lt;br /&gt;
* EEPROM-Import + Export&lt;br /&gt;
* Im rechts stehenden Screenshotbeispiel wird eine tabellarische Eingabeform mit einem DataGridView gezeigt: Die Temperatur (erster Temperaturpunkt = Punkt 0) von 100°C wird linear über einen Zeitraum von 0-30s verteilt. Bei 30s hat der Ofen die Temperatur von 100°C. Dafür setzt die Regelung die Oberhitze, die Unterhitze ein. Der Lüfter ist deaktiviert. In der Zeit von 30s bis 120s wird die Temperatur nun von 100°C auf 150°C linear angehoben. Von 120s bis 180s Backzeit steigt die Temperatur von 150°C auf 250°C. Von 180s bis 200s wird die Temperatur auf 280°C angehoben. Anschließend wird sie zwischen 200s und 220s auf 280°C gehalten (280°C@200s und 280°C@220s) um dann bis 240s wieder auf 250°C zu fallen. Bis zum Zeitpunkt 300s wird dann die Temperatur 30°C angestrebt. Zusätzlich ist der Lüfter nun aktiviert (soweit der Ofen eine Umluftfunktion besitzt). Bei Punkt 7 sind Ober- und Unterhitze deaktiviert nur noch der Lüfter kühlt. Da hier bei &amp;quot;Zeit[s]&amp;quot; die 0 eingetragen wird der Zustand (hier nur Lüfter an) für einen unendlich langen Zeitraum auf 0 gehalten. Also so lange wie das Programm aktiviert ist wird der Lüfter laufen. Natürlich könnte man hier auch z.B. 100°C und Zeitpunkt 0s eintragen. Dann würde der Ofen bis zum manuellen Beenden des Programms (klick auf STOP-Button oder Drücken des START/STOP-Tasters auf der Platine/Steuerung) 100°C halten.&lt;br /&gt;
* Alle Zellen des DataGridView sind editierbar (zur Veränderung der Temperatur, Zeitpunkt, ...)&lt;br /&gt;
* Direkter Klick auf das zentrale Temperatur-Zeit-Diagramm trägt den Zeitpunkt so wie die Temperatur unter dem Mauszeiger in die Tabelle (das DataGridView) ein. Die ausgewählte Zeile wird beschrieben oder überschrieben. Neue Zeilen (also Temperatur-Zeit-Punkte) können durch klick auf den &amp;quot;Plus-Button&amp;quot; hinzugefügt werden. Ebenso ist das Löschen oder Verschieben einer oder mehrerer Zeile gleichzeitig möglich.&lt;br /&gt;
&lt;br /&gt;
=== Beschreibung der Steuerungsmöglichkeiten ===&lt;br /&gt;
In Abhängigkeit des gewählten Modus bestehen einige Steuerungs-, Einstellungs- und Kontrollmöglichkeiten:&lt;br /&gt;
* &#039;&#039;&#039;Schieberegler&#039;&#039;&#039; für Temperatur od. Leistung (je nach Modus) für Oberhitze, Unterhitze und Lüfter. Je nach Hardwareausführung. &lt;br /&gt;
** Klick auf &amp;quot;TOP&amp;quot;, &amp;quot;BOTTOM&amp;quot; oder &amp;quot;FAN&amp;quot; aktiviert oder deaktiviert die entsprechende Funktion bzw. Hardware.&lt;br /&gt;
** Numerische Eingabe der Werte für die Schieberegler durch Klick auf die Anzeige unterhalb der Schieberegler. Werte können auch im deaktivierten Zustand angegeben werden. Die Übernahme erfolgt durch den &amp;quot;Aktivierungsklick&amp;quot; auf &amp;quot;TOP&amp;quot;, &amp;quot;BOTTOM&amp;quot; oder &amp;quot;FAN&amp;quot;&lt;br /&gt;
* &#039;&#039;&#039;T1, dT1, T2, dT2&#039;&#039;&#039; - Anzeige der gemessenen Temperatur so wie die momentane Temperaturänderung am jeweiligen Sensor. &lt;br /&gt;
* &#039;&#039;&#039;Bedienbuttons&#039;&#039;&#039;&lt;br /&gt;
** Play - Startet das Programm am angegebenen Startpunkt (siehe unten)&lt;br /&gt;
** Pause - Pausiert das Programm - weitere Pauseoptionen siehe unten&lt;br /&gt;
** Stop - Stopt den Programmablauf&lt;br /&gt;
** Vor / Zurück - Springt zwischen Temperaturpunkten hin und her. Dient zum überspringen oder zurückspringen zu gewissen Temperatur-Zeit-Punkten. Ermöglicht z.B. das Überspringen eines Ablaufes der eine lange Preheat- oder Dryphase hat.&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Status&amp;quot;&#039;&#039;&#039; - zeigt den aktuellen Zustand des Programms an (READY, START, WAITING, PAUSE, ...)&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;RESET&amp;quot;&#039;&#039;&#039; - setzt das (begonnene) Programm zurück. Beinhaltet neben dem Programmablauf auch das Zurücksetzen der graphischen Anzeige des Diagramms, etc.&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Startpunkt&amp;quot;&#039;&#039;&#039; - legt den ersten Punkt des Programmablaufes fest. &lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Wiederholungen&amp;quot;&#039;&#039;&#039; - ermöglicht das wiederholte Backen ohne das Programm händisch immer wieder neu starten zu müssen. Die Anzahl der Wiederholungen ist einstellbar (0 für unendlich viele) und es ist eine Wartezeit zwischen den Wiederholungen einstellbar. Alternativ kann eine Meldung nach jedem vollendeten Backvorgang abgegeben werden. Nach Bestätigung dieser wird die nächste Wiederholung ausgeführt.&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Pause&amp;quot;&#039;&#039;&#039; - Pauseneinstellungen. Hier sind Optionen wählbar was passieren soll, falls der Pausebutton betätigt wird:&lt;br /&gt;
** Pausezeit - gibt an wie lange die Pause dauern soll [s], danach fährt das Programm automatisch gemäß des gewählten Pausemodus fort. Für eine Pause ohne automatisches Fortfahren (Countdowntimer) &#039;0&#039; angeben.&lt;br /&gt;
** Pausemodus &amp;quot;aktuelle Temperatur halten, WarmUp, Fortsetzen&amp;quot; - Ofen hält die Temperatur (Zieltemperatur) des Zeitpunktes als der Pausebutton betätigt wurde. WarmUp bedeutet, dass nach dem Beenden des Pausemodus zunächst die Zieltemperatur wieder erreicht werden &#039;&#039;&#039;muss&#039;&#039;&#039; bevor der nächste Punkt angesteuert wird. Klingt paradox, wenn die Temperatur doch so und so gehalten wird, ist aber nicht so. Die Wahrscheinlichkeit ist hoch, dass der Pausemodus benutzt wird um die Ofentüre zu öffnen und Korrekturen an der Platine vorzunehmen. Unter Umständen ist die Heizung des Ofens jedoch nicht in der Lage den dadurch entstehenden Wärmeverlust zu kompensieren. Fährt das Programm dann sofort fort, so könnten evtl. kritische (Hoch-)Punkte des Lötprofils &amp;quot;unterfahren&amp;quot; werden. Dem wirkt WarmUp entgegen.&lt;br /&gt;
** Pausemodus &amp;quot;aktuelle Temperatur halten, Fortsetzen&amp;quot; - siehe oben, nur ohne WarmUp.&lt;br /&gt;
** Pausemodus &amp;quot;definierte Temperatur halten, WarmUp, Fortsetzen&amp;quot; - siehe oben. Statt der aktuellen Zieltemperatur wird jedoch nun im Pausemodus eine einzustellende Pausetemperatur gehalten. Mit WarmUp.&lt;br /&gt;
** Pausemodus &amp;quot;definierte Temperatur halten, Fortsetzen&amp;quot; - siehe oben, nur ohne WarmUp.&lt;br /&gt;
** &amp;quot;Pausetemperatur&amp;quot; - spezielle Temperatur die bei entsprechender Pausemoduswahl für die Dauer der Pause gehalten wird.&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Ende&amp;quot;&#039;&#039;&#039; - gibt an was am Ende eines durchlaufenen Reflow-Programms passieren soll. Ist der Wiederholungsmodus aktiviert, tritt dieses Ereignis erst nach Durchlauf aller Wiederholungen ein. Folgende Modi sind möglich:&lt;br /&gt;
** automatischer Reset - am Ende des Programms wird alles automatisch zurückgesetzt, alle Graphiken und Anzeigen gelöscht.&lt;br /&gt;
** manueller Reset - am Ende des Programms bleiben alle Anzeigen, Graphiken, etc erhalten und müssen vor Beginn eines neuen Reflowvorgangs händisch durch Klick auf &amp;quot;RESET&amp;quot; zurückgesetzt werden.&lt;br /&gt;
** Benutzermeldung - lässt eine Meldung erscheinen. Alle Anzeigen und Graphiken bleiben erhalten bis der Benutzer diese Meldung bestätigt. Mit Bestätigung dieser Meldung wird ein automatischer Reset vorgenommen.&lt;br /&gt;
&lt;br /&gt;
=== Loggen des Temperaturverlaufes ===&lt;br /&gt;
Es ist möglich jeden Backvorgang in eine CSV-Datei zu loggen. (Software- und PID-Einstellungen). Geloggte CSV-Dateien können eingelesen und im zentralen Temperatur-Zeit-Diagramm begutachtet werden. Ein Ist-Soll-Vergleich ist ebenso möglich wie die direkte Anzeige des Fehlers (&amp;quot;Ist minus Soll&amp;quot;). Dank CSV können die Daten auch mit anderen Programmen (Excel, etc.) weiterverarbeitet werden.&lt;br /&gt;
&lt;br /&gt;
== Ofen / Pizzaofen ==&lt;br /&gt;
=== Leistung und Volumen ===&lt;br /&gt;
* Alls Faustformel wird oft 100W pro Liter Volumen genannt.&lt;br /&gt;
* Ich habe einen sehr preiswerten Ofen gewählt und die &amp;quot;Oberhitze&amp;quot; zusätzlich mit zwei Halogen-Stäben a 300W &amp;quot;verstärkt. Das kostet nicht viel, die Fassung ist für ca. 3 Euro erhältlich, die Halogenstäbe gibt es in jedem Baumarkt. &lt;br /&gt;
* Bezugsquelle Fassung : siehe &amp;quot;Links&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Dämmung ===&lt;br /&gt;
=== Umluft ===&lt;br /&gt;
* Der verwendete Ofen sollte eine Umluftfunktion besitzen, damit sich die Wärme gleichmäßig im Ofen und auf der Leiterplatte verteilen kann.&lt;br /&gt;
&lt;br /&gt;
== FAQ ==&lt;br /&gt;
&lt;br /&gt;
* Q1: Ich habe einen PT100/PT1000 und möchte den anschließen. Geht das?&lt;br /&gt;
** A1: Ja natürlich. Dazu ist aber etwas externe Elektronik notwendig. Sowohl 2 ADC-Pins (mit 3V3 Betriebsspannung als fixe Referenzspannung), als auch die UART und SPI/I2C-Schnittstelle stehen zur freien Verfügung. Für PT100/PT1000 wird für vernünftige Messungen ohnehin eine Verstärkung (meist mit OPV) von Nöten sein. Da der PIC-interne ADC &amp;quot;nur&amp;quot; 10bit Auflösung bietet sollte ein externer 16bit ADC in Betracht gezogen werden um das Potential der PT100/PT1000 auszunutzen.&lt;br /&gt;
*Q2: Ich habe von günstigen Temperaturmessungen mit Dioden gehört. Geht das auch hier?&lt;br /&gt;
**A2: Ja. Die Vorwärtsspannung einer Diode verhält sich linear zur Sperrschichttemperatur. Diese Spannung (bei 25°C einer Si-Diode die bekannten 0,7V) kann mittels OPV verstärkt werden und auf einen Spannungsbereich von 0 ... 3V3 aufgebläht werden. Eine billige Lösung, auf Kosten der Genauigkeit. Doch eine Diode ist laut Datenblatt nur bis 150°C geeignet. Es ist also beim Löten mehr oder weniger Pfusch. Wenn ich schon eine Reflow-Steuerung baue, sollte ich doch nicht an ein paar Euro für eine gescheite Temperaturmessung sparen. Einige Anregungen vom Messgerätehersteller Keithley bzgl. der Halbleiterphysik mit interessanten Formeln [http://www.keithley.de/support/data?asset=50486]. Oder natürlich der Klassiker von Thomas Pfeifer [http://thomaspfeifer.net/backofen_smd_reflow.htm]. Oder ein Beitrag mit LT-Spice Simulation zum Thema [http://www.mikrocontroller.net/topic/270627#2833883].&lt;br /&gt;
* Q3: God why ... ?&lt;br /&gt;
** A3: Because we can !&lt;br /&gt;
* Q4: Ich hab aber noch nie was mit 230V gemacht.&lt;br /&gt;
**A4: Dann würde ich an Deiner Stelle dieses Projekt NICHT nachbauen.&lt;br /&gt;
* Q5: Warum wurde Altium verwendet und nicht Eagle?&lt;br /&gt;
**A5: Weil es uns kostenlos zur Verfügung stand und wesentlich leistungsfähiger ist.&lt;br /&gt;
&lt;br /&gt;
= Verbesserungen Prototyp - Diese haben jedoch keinen Einfluss auf die Funktion der Leiterplatte=&lt;br /&gt;
* Bauteile weiter weg von den Schraublöchern.&lt;br /&gt;
* Dazu Kreis rund um Bohrung auf Bestückdruck.&lt;br /&gt;
* Masseanbindung Quarz.&lt;br /&gt;
* Klemmen weiter weg vom Rand.&lt;br /&gt;
* Klemme und Sicherungshalter weiter auseinander.&lt;br /&gt;
* Bohrungen für Drossel 0,2mm größer machen.&lt;br /&gt;
* Teilenummer für Conrad-USB-Buchse in BOM übernehmen.&lt;br /&gt;
* Stiftleiste P1  weiter weg von P2 und P4.&lt;br /&gt;
* Varistoren näher an Klemmen platzieren.&lt;br /&gt;
* THT-Kondensatoren für Snubber.&lt;br /&gt;
* Ggf. Stiftleistenbelegung für externe Leds so ändern, das keine extra Vorwiderstände notwendig sind.&lt;br /&gt;
* Befestigungsbohrung für Drossel, um diese mit Kabelbinderung oder Schraube fixieren zu können.&lt;br /&gt;
* Pullup-Widerstand bei MCLR doppelt. &lt;br /&gt;
* Power-LED vorsehen.&lt;br /&gt;
* Leiterbahnen etwas weiter weg von den Kühlkörperanschlüssen&lt;br /&gt;
* Designatoren Texte etwas größer machen.&lt;br /&gt;
* Ein vernünftiger GND-Punkt für einen Tastkopf / Messungen / Aligator-Clips vorsehen.&lt;br /&gt;
* Spannungsversorgung doch Onboard? Oder beides?&lt;br /&gt;
* Leds 90 Grad, Frontplattenmontage&lt;br /&gt;
* Taster 90 Grad Frontplattenmontage&lt;br /&gt;
* Termoelemente Frontplattenmontage??? Termoelementstecker?&lt;br /&gt;
* Schaltausgang 230 V kleiner, weniger Leistungsfähig.&lt;br /&gt;
&lt;br /&gt;
= Errata Projekt =&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:red;&amp;quot;&amp;gt; Triac Symbol in Library falsch, dadurch ist T2 mit T1 vertauscht. Abhilfe für Leiterplattenversion V1.0: T1 und T2 &amp;quot;twisten&amp;quot; und jeweils mit Schrumpfschlauch versehen.( Also Beinchen T1 über kreuz mit Beinchen T2 einlöten...)&amp;lt;/span&amp;gt;&lt;br /&gt;
* Beim MOSFET R39 ist die Masseanbindung falsch. Es bestehen drei Möglichkeiten:&lt;br /&gt;
** 1. 0-R-Brücke für R39 einbauen und auf Strombegrenzung verzichten.&lt;br /&gt;
** 2. Eine Polyfuse mit Bauform 1206 einbauen. &lt;br /&gt;
** 3. Das kleine Leiterbahnstückchen zwischen R38 und R39 unterbrechen und statt dessen die Leiterbahn zwischen R39 und der Klemme mit der Durchkontaktierung bei R38 verbinden.&lt;br /&gt;
* LED-Beschriftung passt nicht ganz (Schaltplan Netlabel OUT1,2,3,4 sind durcheinander gekommen) --&amp;gt; Ist im Prinzip ohne Belang, man muss das nur bei der Software berücksichtigen.&lt;br /&gt;
* Schaltplan UNL2003 fehlerhafte Zuordnung IN5,6,7 &amp;lt;&amp;gt; OUT7,6,5 --&amp;gt; Ist im Prinzip ohne Belang, man muss das nur bei der Software berücksichtigen.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* Diskussion: [http://www.mikrocontroller.net/topic/297217 Diskussion]&lt;br /&gt;
* Software: [http://sourceforge.net/projects/reflowofensteue/ Bei Sourceforge]&lt;br /&gt;
* Dextrel Nulldurchgang: [http://www.dextrel.net/diyzerocrosser.htm Nulldurchgangschaltung]&lt;br /&gt;
* Gehäuse Zeichnung: [http://www.hammondmfg.com/pdf/RM2055L.pdf Großes Gehäuse für Steckdosenmontage]&lt;br /&gt;
* Gehäuse Zeichnung: [http://www.hammondmfg.com/pdf/RM2055M.pdf Kleines Gehäuse, keine Steckdosen]&lt;br /&gt;
* Bezugsquelle [http://www.soselectronic.com/?str=371&amp;amp;artnum=73596&amp;amp;name=hammond-ritec-rm2055l Großes Gehäuse Hammond]&lt;br /&gt;
* Bezugsquelle [http://www.soselectronic.com/?str=371&amp;amp;artnum=73595&amp;amp;name=hammond-ritec-rm2055m Kleines Gehäuse Hammond]&lt;br /&gt;
* Bezugsquelle [http://www.druckerzubehoer.de/shop/product/catid/H-UNIVERSALZUBEHOER_HZB/subcatid/UNIVERSALZUBEHOER_GROUP1_HZB/productid/1727063-390722LA/site/1/lng/de_DE Netzteil Mini USB ]&lt;br /&gt;
* Bezugsquelle [http://www.ebay.de/itm/151037292125?ssPageName=STRK:MEWNX:IT&amp;amp;_trksid=p3984.m1497.l2649 Termoelement Ebay (Typ K für ca. 2Euro)]&lt;br /&gt;
* Bezugsquelle [http://www.artcase-shop.de/index.php?page=search&amp;amp;page_action=query&amp;amp;desc=on&amp;amp;sdesc=on&amp;amp;keywords=pce+105&amp;amp;x=0&amp;amp;y=0 Steckdosen für Schalttafeleinbau:]&lt;br /&gt;
* Bezugsquelle [http://www.schaeffer-ag.de/ Frontplatten]&lt;br /&gt;
* Bezugsquelle [http://www.lichtlieferant.de/catalogsearch/result/?q=r7s+fassung+sockel Vossloh Fassung R7S für Halogenstäbe]&lt;br /&gt;
* Datenblatt Prozessor [http://ww1.microchip.com/downloads/en/DeviceDoc/39632e.pdf PIC18LF2550]&lt;br /&gt;
* Umfangreicher Thread u.A. Leistungsvermögen, Temperaturmessung und Dämmung [http://www.mikrocontroller.net/topic/270627]&lt;br /&gt;
[[Kategorie:PIC-Projekte]]&lt;/div&gt;</summary>
		<author><name>Frankman</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=Datei:Kuehlkoerper.jpg&amp;diff=80586</id>
		<title>Datei:Kuehlkoerper.jpg</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=Datei:Kuehlkoerper.jpg&amp;diff=80586"/>
		<updated>2014-01-03T12:54:08Z</updated>

		<summary type="html">&lt;p&gt;Frankman: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Frankman</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=Reflow_Ofen_Steuerung&amp;diff=80585</id>
		<title>Reflow Ofen Steuerung</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=Reflow_Ofen_Steuerung&amp;diff=80585"/>
		<updated>2014-01-03T12:53:29Z</updated>

		<summary type="html">&lt;p&gt;Frankman: /* Kühlkörpermontage */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Datei:RFB.jpg|thumb|right|200px|Altium 3D Ansicht]]&lt;br /&gt;
[[Datei:pcb.png|thumb|right|200px|Fertige Reflow-Ofen-Steuerung]]&lt;br /&gt;
[[Datei:Teilbest2.jpg|750px|teilbestückte Platine]]&lt;br /&gt;
== Einleitung ==&lt;br /&gt;
&lt;br /&gt;
Hier wird eine weitere Reflow-Ofen-Steuerung beschrieben.&lt;br /&gt;
=== Zum Nachbauen ===&lt;br /&gt;
* Spezifikation: [[Datei: Spec Reflow.pdf]]&lt;br /&gt;
* Schaltplan: &lt;br /&gt;
** Minimalversion [[Datei:Schematic Prints Minimal.pdf]]&lt;br /&gt;
** Standardversion [[Datei:Schematic Prints Standard.pdf]]&lt;br /&gt;
** Deluxeversion [[Datei:Schematic Prints Deluxe.pdf]]&lt;br /&gt;
** Debugversion [[Datei:Schematic Prints Debug.pdf]]&lt;br /&gt;
* Gerberdaten: [[Datei:Gerber Reflow.pdf]]&lt;br /&gt;
* Assemblydrawing: [[Datei:Assembly Reflow.pdf]] &lt;br /&gt;
* Altium-Files: [[Datei:Reflow.zip]]&lt;br /&gt;
* Stückliste als CSV: [[Datei:Reflow.csv]]&lt;br /&gt;
* Stückliste als Open Office: [[Datei:Reflow.ods]]&lt;br /&gt;
* PC Programm: TBD&lt;br /&gt;
* Sourcen PC-Programm: TBD&lt;br /&gt;
* PIC Programm (*.hex): [http://sourceforge.net/projects/reflowofensteue/ ]&lt;br /&gt;
* Sourcen Pic-Programm: [http://sourceforge.net/projects/reflowofensteue/ ]&lt;br /&gt;
* Step-File Steckdose:[[Datei:Steckdose.stp]]&lt;br /&gt;
&lt;br /&gt;
=== Motivation ===&lt;br /&gt;
Die Gründe, eine weitere Steuerung zu entwerfen, waren:&lt;br /&gt;
&lt;br /&gt;
* Die Möglichkeit, auch größere Öfen mit 2 Phasen betreiben zu können.&lt;br /&gt;
* Die Steuerung universell zu gestalten. Es sollte möglich sein, diese nicht nur zum Reflow löten zu verwenden....z.B:&lt;br /&gt;
** Temperatursteuerung für Klimakammer (Heizen, Kühlen)&lt;br /&gt;
** Dimmer mit USB&lt;br /&gt;
** Temperaturregler für ein Tisch-Fondue ( Temperatur halten)&lt;br /&gt;
** Drehzahlsteller mit USB&lt;br /&gt;
** Switchpack&lt;br /&gt;
* Die Schaltung sollte in Altium entwickelt werden. (Warum kein Eagle??? Altium User wissen es.... :-)&lt;br /&gt;
* Die Schaltung sollte mit USB ausgestattet sein.&lt;br /&gt;
&lt;br /&gt;
=== Eigenschaften &amp;amp; Spezifikationen ===&lt;br /&gt;
* Temperaturmessung: bis zu 2x &#039;&#039;&#039;Thermoelement&#039;&#039;&#039; (K-Typ) mit MAX6675 (abgekündigt) oder Nachfolger MAX31855 (pin- aber nicht softwarekompatibel)&lt;br /&gt;
* Leistungsstufen: &#039;&#039;&#039;3 voneinander unabhängige&#039;&#039;&#039; Triacs 800V 25A, limitiert auf &#039;&#039;&#039;10A @ 250VAC&#039;&#039;&#039; (z.B. Oberhitze, Unterhitze, Umluft)&lt;br /&gt;
* Nulldurchgangserkennung ermöglicht Wellenpaket-, und Phasenabschnittssteuerung * Galvanische Trennung der Leistungsendstufen&lt;br /&gt;
* 1x MOSFET-Ausgang PWM z.B. für 12V Lüfter, max. &#039;&#039;&#039;55V 3,5A&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;4 feste Programme&#039;&#039;&#039; im EEPROM über 2-Tasterbedienung und LEDs wähl- und ausführbar. &lt;br /&gt;
* &#039;&#039;&#039;PC-unabhängiger Betrieb&#039;&#039;&#039; möglich. &lt;br /&gt;
* Beliebig viele Programme möglich, bei Betrieb am Computer &lt;br /&gt;
* Mini-USB-Buchse zur Steuerung / Programmierung über GUI und zum Entwickeln. - Dafür ist &#039;&#039;&#039;keine Netzspannung&#039;&#039;&#039; erforderlich&lt;br /&gt;
* Günstiges passendes Gehäuse&lt;br /&gt;
* Alle LEDs und Taster auf &#039;&#039;&#039;Stiftleisten&#039;&#039;&#039; herausgeführt, für eigene Gestaltung der Frontblenden&lt;br /&gt;
* PID-Temperaturregler&lt;br /&gt;
* UART, SPI, I2C und 2x ADC auf Stiftleisten herausgeführt, für zukünftige &#039;&#039;&#039;Erweiterungen&#039;&#039;&#039;&lt;br /&gt;
* Versorgung über USB &amp;lt; 100mA, interne Versorgungsspannung 3,3V&lt;br /&gt;
* umfangreiche EMV-gerechte Entstörung für den Bedarfsfall&lt;br /&gt;
&lt;br /&gt;
=== Zusätzliches Benötigtes Material ===&lt;br /&gt;
* Leiterplatte (1 Stück)&lt;br /&gt;
* Gehäuse Hammond Teilenummer: RM2055L (1 Stück)&lt;br /&gt;
* Alternativ:Gehäuse Hammond Teilenummer: RM2055M (Wenn keine Steckdosen angebracht werden sollen)&lt;br /&gt;
* Alternative: Gehäuse Hammond (Hier muss man die Leiterplatte selber befestigen) Teilenummer: 1455T2201 (1 Stück)&lt;br /&gt;
* Einbausteckdosen Teilenummer: PEC 105 (2-3 Stück, je nach Ausbaustufe)&lt;br /&gt;
* PG-Verschraubung (2-3 Stück)&lt;br /&gt;
* Mutter für PG-Verschraubung (2 Stück)&lt;br /&gt;
* Litze blau, mindestens 1,5mm² (ca. 60cm)&lt;br /&gt;
* Litze braun, mindestens 1,5mm² (ca. 60cm) &lt;br /&gt;
* Litze gelb/grün, mindestens 1,5mm² (ca. 60cm)&lt;br /&gt;
* Aderendhülsen  mit Schutzkragen dazu ( 9 Stück für die Steckdosen)&lt;br /&gt;
* Schrauben, um die Leiterplatte zu befestigen (4 Stück)&lt;br /&gt;
* evtl. Abstandsbolzen dazu, falls das alternative Gehäuse verwendet wird (4 Stück)&lt;br /&gt;
* evtl. Muttern dazu, falls das alternative Gehäuse verwendet wird (4 Stück)&lt;br /&gt;
* Schrauben, Senkkopf DIN 7991 oder DIN 965 M4 X 10 um die Steckdosen zu befestigen (12 Stück)&lt;br /&gt;
* Muttern dazu M4 (12 Stück)&lt;br /&gt;
* Federschreiben  dazu DIN 127 M4 (12 Stück)&lt;br /&gt;
* Glimmerscheiben für Triac (2-3 Stück, je nach Ausbaustufe)&lt;br /&gt;
* Isoliernippel für Triacmontage (2-3 Stück, je nach Ausbaustufe)&lt;br /&gt;
* Zylinderkopfschraube M3 X 12 für Triacmontage (2-3 Stück, je nach Ausbaustufe)&lt;br /&gt;
* Mutter M3 für Triacmontage (2-3 Stück, je nach Ausbaustufe)&lt;br /&gt;
* Beilagscheibe M3 für Triacmontage (2-3 Stück, je nach Ausbaustufe)&lt;br /&gt;
* Isolierband für Triacmontage (ca. 300mm)&lt;br /&gt;
* Gummifüße für das Gehäuse (4 Stück)&lt;br /&gt;
&lt;br /&gt;
=== Kühlkörpermontage===&lt;br /&gt;
[[Datei:kuehlkoerper.jpg|thumb|right|400px|Montagedetail Kühlkörper]]&lt;br /&gt;
* Der Kühlköper sollte 38mm hoch sein, so passt er gut in die angegebenen Gehäuse&lt;br /&gt;
* Der Kühlkörper MUSS isoliert montiert werden, also Glimmerscheibe und Isoliernippel einsetzen und NACHMESSEN, ob der Kühlkörper auch wirklich keinen Kontakt zum Triac hat!&lt;br /&gt;
* Da die 230-V-Leiterbahnen nur durch den Stopplack vom Kühlkörper getrennt sind, sollte die Isolation mit zwei Lagen Gewebe- oder Isolierband verstärkt werden. Das Isolierband kann auf die Leiterplatte oder unter den Kühlkörper geklebt werden.&lt;br /&gt;
* Als Bohrungsmaß empfehle ich 20mm über der Leiterplatte.&lt;br /&gt;
* Entweder Bohrung 3,2mm für Durchgangsloch &lt;br /&gt;
* Oder Bohrung 2,5mm mit M3-Gewinde&lt;br /&gt;
&lt;br /&gt;
== Schaltung==&lt;br /&gt;
=== PIC18LF2550 Grundbeschaltung ===&lt;br /&gt;
[[Datei:osc_vs_vcc.png|thumb|right|200px|Taktraten und Versorgungsspannung PIC18F2550 vs. PIC18LF2550, Datenblatt S. 370/438]]&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 3/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Hier kommt ein PIC18&#039;&#039;&#039;L&#039;&#039;&#039;F2550 zum Einsatz. Er verfügt über eine USB-Schnittstelle und ist für Betriebsspannungen von 2 ... 5,5V ausgelegt. Sein Verwandter PIC18F2550 (ohne L) ist nicht für Betriebsspannungen &amp;lt; 4,2V ausgelegt. Dies ist bei USB sowieso nicht immer erfüllt und die Thermoelement-ICs vertragen ohnehin keine 5V, daher wurde die Betriebsspannung auf 3,3V reduziert. Neben Standard-Decoupling (100nF Kerko pro Vcc-Vss-Pärchen) wurde das ICSP-Interface in alt bewährter Pinbelegung (PICKit1,2,3) angebracht. PGD und PGC sind nicht weiter beschaltet, MCRL wird , wie immer als Resetpin verwendet. Der Resetschalter findet sich auf dem Top-Sheet (Schaltplan S. 1/22). Die Taktversorgung erfolgt über einen 24 MHz Quarz (-&amp;gt; USB). Man beachte diesbezüglich rechts stehende Grafik zu Taktraten und Versorgungsspannungen (Vdd bzw. auch Vcc genannt). Auch zu finden im Datenblatt des PICs auf Seite 370.&lt;br /&gt;
&lt;br /&gt;
=== PIC18LF2550 USB Beschaltung ===&lt;br /&gt;
[[Datei:usb_part.png|thumb|right|200px|PIC18(L)F2550&lt;br /&gt;
 Standard &lt;br /&gt;
USB-Beschaltung am PIC]]&lt;br /&gt;
[[Datei:usb_protect.png|thumb|right|200px|USB-Schutzbeschaltung und Mini-USB-Buchse]]&lt;br /&gt;
&lt;br /&gt;
Die Beschaltung der USB-Schnittstelle am PIC ist 1:1 aus dem Datenblatt übernommen. Zum Einsatz kommt eine Mini-USB-Buchse (J1).&lt;br /&gt;
Der Gedanke war: Erstens ein sehr preiswertes, fertiges Netzteil verwenden zu können, (ca. 3,67 € bei druckerzubehoer.de) und zweitens, die Steuerung auch mit dem PC / Laptop versorgen zu können.&lt;br /&gt;
Somit kann die Schaltung OHNE 230V betrieben und debuggt werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 4/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
FER1,2 und C7 filtern den Schirm nach GND. Standardmäßig wird man hier wohl 0-Ohm-Widerstände einsetzen. Falls ein Besuch im EMV-Labor geplant ist, weicht man auf den Ferrit aus. C5 und C6 filtern das Signal zusammen mit der Common-Mode-DrosselL1. Die Drossel kann mit den 0-Ohm-Brücken R8 und R9 überbrückt (gespart) werden. IC2 ist als ESD-Schutz gedacht und kann ebenfalls bei ausgeprägten Kostenbewustsein gespart werden. Die Widerstände R6 und R7 dürfen NICHT bestückt werden. FER1,2, C5, IC2 müssen nicht zwingend bestückt werden. Die Bestückung wurde vorgehalten um im Problemfall einfache Abhilfe schaffen zu können.&lt;br /&gt;
&lt;br /&gt;
=== 3,3V Spannungsversorgung ===&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 2/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Die 3,3V Versorgungsspannung für die gesamte Platine wird aus V_USB mittels des LDO Spannungsreglers TOREX - XC6206P332MR abgeleitet. Günstig, SOT-23, klein, 2x 1µF Kondensatoren benötigt, 3,3V max. 250mA. Der hat auch einen sehr kleinen Ruhestrom.&lt;br /&gt;
&lt;br /&gt;
=== Taster ===&lt;br /&gt;
*Der Resettaster zieht den MCLR-Pin nach GND und löst damit den Reset aus. MCLR  ist mit einem 10k Pullup versehen.&lt;br /&gt;
*Die übrigen beiden Taster ziehen RA4 bzw. RB5 ebenfalls nach GND.&lt;br /&gt;
&lt;br /&gt;
=== LEDs + ULN2003L ===&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 11/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Um alle LEDs auf der Platine (3x Optotriac + 7x Status) ansteuern zu können wurde auf das 7fach Darlington-Array ULN2003L zurückgegriffen. Die PIC-Ausgänge könnten zwar die LEDs direkt steueren. Aber so werden alle Ausgänge einheitlich nach Masse geschaltet. Das verbessert die Testbarkeit der ganzen Platine. ( Mit einem kurzen Masse-Draht kann zur Not der entsprechende Ausgang gesetzt werden, ohne etwas zu zerstören.)&lt;br /&gt;
&lt;br /&gt;
=== MOSFET-Leistungsausgang ===&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 22/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Hier kommt der einfacher N-Kanal MOSFET (LogicLevel) PHT8N06LT zum Einsatz. Er wird über das ULN2003L Array getrieben und ermöglicht den Anschluss eines DC-Verbrauchers mit max. 55V bei 3,5A. Hier könnte beispielsweise ein PC-Lüfter zur Kühlung oder für Umluft angeschlossen und über PWM geregelt/gesteuert werden. Ein Gatewiderstand von 100 Ohm ist zum Schutz des Treibers vorgesehen. Eine 0-Ohm-Brücke ist stattdessen aber auch möglich, wenn man eine höhere Leistung schalten möchte.Die Leiterbahnen sollten die 3A schon hergeben. Der 100 Ohm Widerstand bildet eine Stromquelle. Sobald der Strom durch den MOSFET und den Widerstand 33mA erreicht, sinkt UGS gegen 0 V. Folge: Der Mosfet sperrt ( und bleibt ganz....)&lt;br /&gt;
Es kann hier prinzipiell auch ein anderer Mosfet im SOT223-Gehäuse zum Einsatz kommen. Achten sollte man darauf, das der MOSFET schon bei 3,3V Ugs gut leiten sollte.&lt;br /&gt;
&lt;br /&gt;
=== Nulldurchgangserkennung ===&lt;br /&gt;
[[Datei:zerocross.png|thumb|right|200px|Nulldurchgangserkennung]]&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 5/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Die Nulldurchgangserkennung erfolgt nach einer sehr bekannten - jedoch ausgeklügelten - Schaltung.  [http://www.dextrel.net/diyzerocrosser.htm siehe: Dextrel]&lt;br /&gt;
Während einer Halbwelle wird C14 über R33 und R35 bzw. D5 geladen. Währenddessen ist T1 gesperrt. Sobald die Wechselspannung (L1-N über Spannungsteiler (R33+R35) / R34) kleiner ist als die Spannung über C14, steuert T1 durch. Dann entlädt sich C14 über den LED-Vorwiderstand R32. Der durch-steuernde Optokoppler zieht die Sync-Leitung nach GND. (Pullup Sync-Leitung = R31). Dies löst beim PIC auf INT2 einen Interrupt aus. &lt;br /&gt;
Dieser Interrupt ermöglicht eine präzise Wellenpaket-, Phasenanschnittsteuerung je nach Bedarf. Das Schalten im Nulldurchgang bei der Wellenpaketsteuerung reduziert EMV-Störungen. Für Phasenanschnitt ist ohnehin eine Nulldurchgangserkennung notwendig. Außerdem liefert sie eine genaue Zeitbasis für alle Programmabläufe.&lt;br /&gt;
&lt;br /&gt;
=== Triac-Ausgänge + Snubber ===&lt;br /&gt;
[[Datei:triac.png|thumb|right|200px|Triac-Ausgangsbeschaltung]]&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 19,20,21/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Die Ansteuerung des eigentlichen Leistungstriacs BTA140-800 erfolgt über den Optotriac IS6005. Der Strom durch Letzteren wird durch R1x limitiert (Vorwiderstand). R2x und R5x limitieren wiederum den Strom durch den Optotriac. Wenn dieser zündet so folgt unmittelbar der &amp;quot;Leistungstriac&amp;quot; der dann die Last schaltet.&lt;br /&gt;
&lt;br /&gt;
S1x ist ein Sicherungshalter um die Lasten einzeln absichern zu können. Wert 10A Mittelträge.&lt;br /&gt;
&lt;br /&gt;
R3x, R4x, C3x bilden ein Snubber-Network, L1X verhindert eine zu schnelle Stromanstiegsgeschwindikeit damit der Triac nicht &amp;quot;von selbst&amp;quot; zündet. Weglassen äußert sich meist in einem fast nicht hörbaren Click. Damit zeigt einem dann der Triac, dass er ab jetzt für immer recht niederohmig geworden ist. Die Regelung der Temperatur braucht dann nicht mehr über den Prozessor erfolgen, sondern nur noch mit dem Ein-/Ausschalter..... :-)&lt;br /&gt;
&lt;br /&gt;
=== Thermoelemente (MAX6675/MAX31855)  ===&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 6,7/22&#039;&#039;&#039;&lt;br /&gt;
Der inzwischen abgekündigte MAX6675 bzw. sein ehrenwerter Nachfolger MAX31855 sind einfach zu handhabende Thermoelement-ICs mit Kaltstellenkompensation. Thermoelemente funktionieren durch das Verschweißen zweier verschiedener Legierungen (beim K-Typ Thermoelemnt Ni und CrNi). Durch den durch die Umgebungstemperatur bedingten Wärmefluss zwischen beiden entsteht ein elektrische Spannung. Diese wird von besagten ICs verstärkt und digitalisiert (ADC). Diese Spannung / Temperatur ist natürlich wieder relativ zur Umgebungstemperatur an der Kaltstelle (Kontaktierung der beiden Drähte mit dem Messinstrument). Daher messen diese ICs auch gleich die Umgebungstemperatur (Kaltstellenkompensation genannt) mit, verrechnen das und geben das Ergebnis auf der SPI-Schnittstelle aus. MAX6675 leistet 12bit also 0,25°C Auflösung (nicht Genauigkeit!) über einen Temperaturbereich von 0°C to +1024°C. Außerdem wird ein nicht/fehlerhaft angeschlossenes Thermoelement erkannt. Der Thermocouple-IC wird an die SPI-Schnittstelle des PICs angeschlossen (hier MSSP genannt). &lt;br /&gt;
&lt;br /&gt;
MAX6675 und MAX31855 scheinen entgegen der Adafruit-Information [http://www.adafruit.com/products/269] doch pinkompatibel zu sein - die Ansteuerung unterscheidet sich jedoch definitiv. (Zitat: &amp;quot;Now uses the MAX31855K instead of the MAX6675, so it can measure a wider temperature measurement range. Please note! the MAX31855 is not pin compatible or drop-in code compatible with the MAX6675. We do have an Arduino library for both chips but you&#039;ll need to adjust any existing MAX6675 designs for the mew MAX31855. The MAX6675 has been discontinued by Maxim.&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Es wurden 2 dieser ICs und damit 2 Temperaturmessstellen vorgesehen. Dies ermöglich die Messung für eine Regelung der Temperatur so wie eine zusätzliche Überwachung kritischer Bauteile (z.B. ICs oder LEDs). Die Minimalbestückung sieht einen MAX6675/MAX31855 vor. Die Auswahl in der Firmware erfolgt über einen der beiden GPIO-Pins RA5 oder RA0 via dem ChipSelect (CS) des MAX6675/MAX31855.&lt;br /&gt;
&lt;br /&gt;
Neben dem MAX6675/MAX31855 wurde ein Decoupling-Kondensator (C8x, Standard 100nF) so wie ein weiterer im Messpfad (C9x) zur Zwecken der Entstörung vorgeshen. C9x 100nF sollte nur bestückt werden wenn Probleme bei der Temperaturmessung entstehen (z.B. unrealstisch stark schwankende Werte).&lt;br /&gt;
&lt;br /&gt;
=== ADC, SPI, UART &amp;amp; I2C Stiftleiste ===&lt;br /&gt;
ADC, SPI, UART und I2C sind zu Zwecken der Kalibrierung / Erweiterung / Einstellung / Debugging auf Stiftleisten herausgeführt:&lt;br /&gt;
Ähnlichkeiten mit dem FTDI-USB-TTL-Kabel bzw. Arduino XXX Bla Bla Bla Schnittstellenkonverter sind natürlich rein zufällig.&lt;br /&gt;
&lt;br /&gt;
Die I2C-Schnittstelle wurde auf eine Stiftleiste geführt, um z.B. einem LM75 o.ä. anschließen zu können. Damit stehen zur Kalibrierung der Thermoelemente genaue Temperaturen zur Verfügung.&lt;br /&gt;
&lt;br /&gt;
Die Stiftleisten haben alle ein Raster von 2,54mm. So können Pin-Header, Wannenstecker oder ähnliches verwendet werden.&lt;br /&gt;
&lt;br /&gt;
Da ja viele Leute eigene Vorstellungen bezüglich der Frontplattengestaltung haben, wurden auch die Taster und LEDs auf Stiftleisten geführt.&lt;br /&gt;
&lt;br /&gt;
=== Kühlkörper ===&lt;br /&gt;
Da die Triacs der Steuerung für bis zu 10A pro Kanal ausgelegt sind, kann man auf die Kühlkörper nicht verzichten. Es fallen bei 10A bis zu 13 Watt Wärme pro Triac ab. Falls mann auf die Kühlkörper doch verzichten möchte, sollte man darauf achten, die Triacs mit dem Kopf nach unten einzubauen. Diese können sich dann bei Überlast ganz von selber auslöten.... :-)&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red;&amp;quot;&amp;gt; Die Triacs müssen mit Glimmerscheibe und Isoliernippel -ALSO ISOLIERT ZUM KÜHLKÖRPER- montiert werden.&lt;br /&gt;
Außerdem muss unter dem Kühlkörper ein Stück Isolierband oder FR4 oder Nylon-Scheiben beigelegt werden, um zu verhindern, dass der Stopplack der Leiterplatte beschädigt wird. In diesem Falle hätte man Potential auf dem Kühlkörper.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Gehäuse ===&lt;br /&gt;
Die Leiterplatte wurde für ein Gehäuse von Hammond entwickelt.&lt;br /&gt;
Das Gehäuse ist zwar keine Schönheit, aber doch recht preiswert.&lt;br /&gt;
Typenbezeichnung: RM2055M oder etwas größer RM2055L&lt;br /&gt;
&lt;br /&gt;
== Firmware PIC ==&lt;br /&gt;
* Die Entwicklung der Firmware für den PIC18LF2550  erfolgt mit MPLABX und dem C18 Compiler. &lt;br /&gt;
* MPLABX ist kostenlos, der C18 Compiler bis auf die stärkste Optimierungsstufe ebenfalls. &lt;br /&gt;
* Die Quellen für die Firmware sind offengelegt und können von Sourceforge bezogen werden, siehe Links, weiter unten.&lt;br /&gt;
&lt;br /&gt;
=== Programmstruktur- und ablauf ===&lt;br /&gt;
Nach anfänglicher Initialisierung des PIC startet die Statemachine [http://http://www.mikrocontroller.net/articles/Statemachine] [http://http://de.wikipedia.org/wiki/Endlicher_Automat]. Neben ihr findet in der main-Funktion nur noch die Abfrage der beiden Bedientasten statt. Mit dem Tastendruck wird zum Zwecke der Entprellung ein Timer gestartet. Alles Andere (incl. PID-Regelung, Wellenpaket- bzw. Phasenan- und Phasenabschnittssteuerung und USB) ist interruptbasiert.&lt;br /&gt;
=== Reflow-Ofen-Konfiguration ===&lt;br /&gt;
&lt;br /&gt;
=== Taktversorgung, Nulldurchgangserkennung und Zeitbasis ===&lt;br /&gt;
=== USB ===&lt;br /&gt;
=== SPI für MAX6675 ===&lt;br /&gt;
=== SPI für MAX31855 ===&lt;br /&gt;
&lt;br /&gt;
=== Wellenpaketsteuerung ===&lt;br /&gt;
=== Phasenanschnitt ===&lt;br /&gt;
&lt;br /&gt;
=== PWM für MOSFET ===&lt;br /&gt;
=== PIC-Configword ===&lt;br /&gt;
&lt;br /&gt;
=== Zuordnung Outputs ===&lt;br /&gt;
[[Datei:pinning.png|thumb|right|400px|Input/Output-Funktions-Tabelle]]&lt;br /&gt;
&lt;br /&gt;
*In1 = RC2 = PIN13 = ULN5--&amp;gt;12 = OUT1 = PWM &lt;br /&gt;
*In2 = RB3 = PIN24 = ULN6--&amp;gt;11 = OUT2 = TRIAC_A (1) = K5&lt;br /&gt;
*In3 = RB4 = PIN25 = ULN7--&amp;gt;10 = OUT3 = TRIAC_B (2)= K2&lt;br /&gt;
*In4 = RA2 = PIN4  = ULN4--&amp;gt;13 = OUT4 = LED_PRG1 = OPTO D&lt;br /&gt;
*In5 = RC0 = PIN11 = ULN3--&amp;gt;14 = OUT6 = LED_PRG2 = OPTO F&lt;br /&gt;
*In6 = RC1 = PIN12 = ULN2--&amp;gt;15 = OUT7 = LED_PRG3 = OPTO G&lt;br /&gt;
*In7 = RA3 = PIN5  = ULN1--&amp;gt;16 = OUT5 = LED_PRG4 = OPT= E&lt;br /&gt;
&lt;br /&gt;
TRIAC1 ist nahe dem Zerocross&lt;br /&gt;
&lt;br /&gt;
== PC-Software (GUI) ==&lt;br /&gt;
[[Datei:gui_alpha.png|thumb|right|300px|Screenshot der GUI (noch Alpha) für den Reflow-Ofen-Controller]]&lt;br /&gt;
&lt;br /&gt;
Die GUI (englisch Graphical User Interface) ist der Einfachheit halber in VB.net programmiert und momentan noch im Alpha-Stadium. Auch hierfür liegen die Quellen später selbstverständlich offen.&lt;br /&gt;
&lt;br /&gt;
=== Funktionen und Modi ===&lt;br /&gt;
[[Datei:modi.png|thumb|right|400px|Auswahl der beschriebenen Modi durch Klick]]&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Ofen-Profil&amp;quot;&#039;&#039;&#039; - Es wird ein Programm (Temperaturkurve) aus dem EEPROM des Reflow-Ofens ausgeführt. Der Backvorgang kann mit der Software gesteuert (START, STOP, ...) und überwacht werden. Hierzu stehen Temperatur, Temperaturänderung, Heizleistung (Ober- und Unterhitze, Lüfter) so wie die graphische Darstellung im zentralen Diagramm zur Verfügung. Eingriffsmöglichkeiten, wie das Ändern der Temperaturkurve sind nicht vorgesehen. Dies soll ein reiner Überwachungs-Modus sein. Um die Temperaturkurve zu verändern zu können, sollte der Modus &amp;quot;PC-Profil&amp;quot; verwendet werden und die Temperaturkurve aus dem EEPROM importiert werden. Dann kann Selbige auch verändert und anschließend ausgeführt bzw. verändert in den EEPROM zurückgeschrieben werden. Dieser Modus stellt ein Äquivalent zur START/STOP-Tasten-Bedienung an der Platine dar und kann selbstverständlich parallel dazu genutzt werden. Die GUI also als Addon zum Stand-Alone-Betrieb.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;PC-Profil&amp;quot;&#039;&#039;&#039; - Es wird ein Programm (Temperaturkurve) ausgeführt welche zuvor am Computer erstellt / editiert wurde. In diesem Modus gibt der Computer Temperaturwerte vor, welche live über die USB-Schnittstelle zum PIC übertragen werden und mit dem dort integrierten PID-Regler ausgeführt werden. Das ermöglicht eine on-the-fly Veränderung der Temperaturkurve während des Backvorgangs. Temperaturkurven können aus Dateien oder dem EEPROM importiert und auch wieder exportiert werden. CSV-Dateien können ebenfalls importiert und exportiert werden. Die &amp;quot;Eingabe&amp;quot; der Temperaturkurve erfolgt entweder über Import (CSV/EEPROM), per Mausklick auf dem zentralen Diagramm oder im sog. DataGridView. Weiteres siehe Unterpunkt &amp;quot;Eingabe der Temperaturkurve (Reflowprofil)&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;manueller Ablauf&amp;quot;&#039;&#039;&#039; - In diesem Modus wird (im Gegensatz zu den oberen beiden Modi &amp;quot;Ofen-Profil&amp;quot; und &amp;quot;PC-Profil&amp;quot;) keine Temperatur geregelt. Hier wird die Leistung des Ofens in % eingestellt und gesteuert. Der PID-Regler ist nicht in Aktion. Die Temperatur, Temperaturänderung so wie der Temperaturverlauf werden selbstredend angezeigt bzw. im Diagramm dargestellt. Der Modus &amp;quot;manueller Ablauf&amp;quot; fährt ähnlich dem Modus &amp;quot;PC-Profil&amp;quot; die im DataGridView eingetragenen Leistungs-Zeit-Punkte ab. Für jeden Zeitpunkt ist eine Leistung vorgegeben. Die Eingabe erfolgt ähnlich wie unter &amp;quot;Eingabe der Temperaturkurve (Reflowprofil)&amp;quot; beschrieben. Nur eben, dass eine Leistung und keine Temperatur angegeben wird. Die Eingabe der Leistung kann nicht im Zeit-Temperatur-Diagramm erfolgen sondern mittels der Schieberegler oder direkt tabellarisch.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;manueller Modus&amp;quot;&#039;&#039;&#039; - Dieser Modus enthält 2 Submodi&lt;br /&gt;
** &amp;quot;manueller Leistungsmodus&amp;quot; - Auch in diesem Modus wird die Leistung gesteuert. Es wird keine Temperatur geregelt, der PID-Regler für die Temperatur ist nicht in Betrieb. Die Einstellung hier erfolgt über die drei Schieberegler oder über eine numerische Eingabe durch Klick auf die Leistungsangabe unter dem Schieberegler. Durch Klick auf die Texte &amp;quot;TOP&amp;quot;, &amp;quot;BOTTOM&amp;quot;, &amp;quot;FAN&amp;quot; (Oberhitze, Unterhitze, Lüfter) können selbige deaktiviert bzw. aktiviert werden. Auch in diesem Modus wird Temperatur, Temperaturänderung so wie der Temperaturverlauf dargestellt.&lt;br /&gt;
** &amp;quot;manueller Temperaturmodus&amp;quot; - Hier wird die Temperatur wieder mittels des Temperatur-PIDs geregelt. Die Temperatur wird entweder mittels Schieberegler (Ober- und Unterhitze-Regler sind jetzt gekoppelt) oder durch eine numerische Eingabe unterhalb der Schieberegler vorgegeben. Anzeige wie im &amp;quot;manuellen Leistungsmodus&amp;quot;. Der Lüfter kann unabhängig vom PID in seiner Leistung geregelt werden. Ein evtl. durch den Luftstrom verursachter Temperaturabfall wird vom PID selbstverständlich ausgeregelt (aus diesem Grunde ist es ja ein Regler).&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Programmieren&amp;quot;&#039;&#039;&#039; - Hier kann ein neues &#039;&#039;&#039;Temperatur&#039;&#039;&#039;-Programm für den EEPROM-Speicher des Ofens erstellt und editiert werden. Die Eingabemöglichkeiten sind unter &amp;quot;Eingabe der Temperaturkurve (Reflowprofil)&amp;quot; beschrieben. Dieser Modus ist zum reinen Programmieren des Ofens gedacht und ermöglicht keine weitere Steuerung oder Überwachung des Ofens.&lt;br /&gt;
&lt;br /&gt;
=== Eingabe der Temperaturkurve (Reflowprofil) ===&lt;br /&gt;
[[Datei:datagridview.png|thumb|right|400px|tabellarische Anzeige und Editiermöglichkeit der Temperaturkurve]]&lt;br /&gt;
Die Eingabe der Temperaturkurve erfolgt entweder über Import (CSV/EEPROM), per Mausklick auf dem zentralen Diagramm oder im sog. DataGridView (Excel-ähnliche Bedienung in tabellarischer Form). &lt;br /&gt;
&lt;br /&gt;
* CSV-Import + Export&lt;br /&gt;
* EEPROM-Import + Export&lt;br /&gt;
* Im rechts stehenden Screenshotbeispiel wird eine tabellarische Eingabeform mit einem DataGridView gezeigt: Die Temperatur (erster Temperaturpunkt = Punkt 0) von 100°C wird linear über einen Zeitraum von 0-30s verteilt. Bei 30s hat der Ofen die Temperatur von 100°C. Dafür setzt die Regelung die Oberhitze, die Unterhitze ein. Der Lüfter ist deaktiviert. In der Zeit von 30s bis 120s wird die Temperatur nun von 100°C auf 150°C linear angehoben. Von 120s bis 180s Backzeit steigt die Temperatur von 150°C auf 250°C. Von 180s bis 200s wird die Temperatur auf 280°C angehoben. Anschließend wird sie zwischen 200s und 220s auf 280°C gehalten (280°C@200s und 280°C@220s) um dann bis 240s wieder auf 250°C zu fallen. Bis zum Zeitpunkt 300s wird dann die Temperatur 30°C angestrebt. Zusätzlich ist der Lüfter nun aktiviert (soweit der Ofen eine Umluftfunktion besitzt). Bei Punkt 7 sind Ober- und Unterhitze deaktiviert nur noch der Lüfter kühlt. Da hier bei &amp;quot;Zeit[s]&amp;quot; die 0 eingetragen wird der Zustand (hier nur Lüfter an) für einen unendlich langen Zeitraum auf 0 gehalten. Also so lange wie das Programm aktiviert ist wird der Lüfter laufen. Natürlich könnte man hier auch z.B. 100°C und Zeitpunkt 0s eintragen. Dann würde der Ofen bis zum manuellen Beenden des Programms (klick auf STOP-Button oder Drücken des START/STOP-Tasters auf der Platine/Steuerung) 100°C halten.&lt;br /&gt;
* Alle Zellen des DataGridView sind editierbar (zur Veränderung der Temperatur, Zeitpunkt, ...)&lt;br /&gt;
* Direkter Klick auf das zentrale Temperatur-Zeit-Diagramm trägt den Zeitpunkt so wie die Temperatur unter dem Mauszeiger in die Tabelle (das DataGridView) ein. Die ausgewählte Zeile wird beschrieben oder überschrieben. Neue Zeilen (also Temperatur-Zeit-Punkte) können durch klick auf den &amp;quot;Plus-Button&amp;quot; hinzugefügt werden. Ebenso ist das Löschen oder Verschieben einer oder mehrerer Zeile gleichzeitig möglich.&lt;br /&gt;
&lt;br /&gt;
=== Beschreibung der Steuerungsmöglichkeiten ===&lt;br /&gt;
In Abhängigkeit des gewählten Modus bestehen einige Steuerungs-, Einstellungs- und Kontrollmöglichkeiten:&lt;br /&gt;
* &#039;&#039;&#039;Schieberegler&#039;&#039;&#039; für Temperatur od. Leistung (je nach Modus) für Oberhitze, Unterhitze und Lüfter. Je nach Hardwareausführung. &lt;br /&gt;
** Klick auf &amp;quot;TOP&amp;quot;, &amp;quot;BOTTOM&amp;quot; oder &amp;quot;FAN&amp;quot; aktiviert oder deaktiviert die entsprechende Funktion bzw. Hardware.&lt;br /&gt;
** Numerische Eingabe der Werte für die Schieberegler durch Klick auf die Anzeige unterhalb der Schieberegler. Werte können auch im deaktivierten Zustand angegeben werden. Die Übernahme erfolgt durch den &amp;quot;Aktivierungsklick&amp;quot; auf &amp;quot;TOP&amp;quot;, &amp;quot;BOTTOM&amp;quot; oder &amp;quot;FAN&amp;quot;&lt;br /&gt;
* &#039;&#039;&#039;T1, dT1, T2, dT2&#039;&#039;&#039; - Anzeige der gemessenen Temperatur so wie die momentane Temperaturänderung am jeweiligen Sensor. &lt;br /&gt;
* &#039;&#039;&#039;Bedienbuttons&#039;&#039;&#039;&lt;br /&gt;
** Play - Startet das Programm am angegebenen Startpunkt (siehe unten)&lt;br /&gt;
** Pause - Pausiert das Programm - weitere Pauseoptionen siehe unten&lt;br /&gt;
** Stop - Stopt den Programmablauf&lt;br /&gt;
** Vor / Zurück - Springt zwischen Temperaturpunkten hin und her. Dient zum überspringen oder zurückspringen zu gewissen Temperatur-Zeit-Punkten. Ermöglicht z.B. das Überspringen eines Ablaufes der eine lange Preheat- oder Dryphase hat.&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Status&amp;quot;&#039;&#039;&#039; - zeigt den aktuellen Zustand des Programms an (READY, START, WAITING, PAUSE, ...)&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;RESET&amp;quot;&#039;&#039;&#039; - setzt das (begonnene) Programm zurück. Beinhaltet neben dem Programmablauf auch das Zurücksetzen der graphischen Anzeige des Diagramms, etc.&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Startpunkt&amp;quot;&#039;&#039;&#039; - legt den ersten Punkt des Programmablaufes fest. &lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Wiederholungen&amp;quot;&#039;&#039;&#039; - ermöglicht das wiederholte Backen ohne das Programm händisch immer wieder neu starten zu müssen. Die Anzahl der Wiederholungen ist einstellbar (0 für unendlich viele) und es ist eine Wartezeit zwischen den Wiederholungen einstellbar. Alternativ kann eine Meldung nach jedem vollendeten Backvorgang abgegeben werden. Nach Bestätigung dieser wird die nächste Wiederholung ausgeführt.&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Pause&amp;quot;&#039;&#039;&#039; - Pauseneinstellungen. Hier sind Optionen wählbar was passieren soll, falls der Pausebutton betätigt wird:&lt;br /&gt;
** Pausezeit - gibt an wie lange die Pause dauern soll [s], danach fährt das Programm automatisch gemäß des gewählten Pausemodus fort. Für eine Pause ohne automatisches Fortfahren (Countdowntimer) &#039;0&#039; angeben.&lt;br /&gt;
** Pausemodus &amp;quot;aktuelle Temperatur halten, WarmUp, Fortsetzen&amp;quot; - Ofen hält die Temperatur (Zieltemperatur) des Zeitpunktes als der Pausebutton betätigt wurde. WarmUp bedeutet, dass nach dem Beenden des Pausemodus zunächst die Zieltemperatur wieder erreicht werden &#039;&#039;&#039;muss&#039;&#039;&#039; bevor der nächste Punkt angesteuert wird. Klingt paradox, wenn die Temperatur doch so und so gehalten wird, ist aber nicht so. Die Wahrscheinlichkeit ist hoch, dass der Pausemodus benutzt wird um die Ofentüre zu öffnen und Korrekturen an der Platine vorzunehmen. Unter Umständen ist die Heizung des Ofens jedoch nicht in der Lage den dadurch entstehenden Wärmeverlust zu kompensieren. Fährt das Programm dann sofort fort, so könnten evtl. kritische (Hoch-)Punkte des Lötprofils &amp;quot;unterfahren&amp;quot; werden. Dem wirkt WarmUp entgegen.&lt;br /&gt;
** Pausemodus &amp;quot;aktuelle Temperatur halten, Fortsetzen&amp;quot; - siehe oben, nur ohne WarmUp.&lt;br /&gt;
** Pausemodus &amp;quot;definierte Temperatur halten, WarmUp, Fortsetzen&amp;quot; - siehe oben. Statt der aktuellen Zieltemperatur wird jedoch nun im Pausemodus eine einzustellende Pausetemperatur gehalten. Mit WarmUp.&lt;br /&gt;
** Pausemodus &amp;quot;definierte Temperatur halten, Fortsetzen&amp;quot; - siehe oben, nur ohne WarmUp.&lt;br /&gt;
** &amp;quot;Pausetemperatur&amp;quot; - spezielle Temperatur die bei entsprechender Pausemoduswahl für die Dauer der Pause gehalten wird.&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Ende&amp;quot;&#039;&#039;&#039; - gibt an was am Ende eines durchlaufenen Reflow-Programms passieren soll. Ist der Wiederholungsmodus aktiviert, tritt dieses Ereignis erst nach Durchlauf aller Wiederholungen ein. Folgende Modi sind möglich:&lt;br /&gt;
** automatischer Reset - am Ende des Programms wird alles automatisch zurückgesetzt, alle Graphiken und Anzeigen gelöscht.&lt;br /&gt;
** manueller Reset - am Ende des Programms bleiben alle Anzeigen, Graphiken, etc erhalten und müssen vor Beginn eines neuen Reflowvorgangs händisch durch Klick auf &amp;quot;RESET&amp;quot; zurückgesetzt werden.&lt;br /&gt;
** Benutzermeldung - lässt eine Meldung erscheinen. Alle Anzeigen und Graphiken bleiben erhalten bis der Benutzer diese Meldung bestätigt. Mit Bestätigung dieser Meldung wird ein automatischer Reset vorgenommen.&lt;br /&gt;
&lt;br /&gt;
=== Loggen des Temperaturverlaufes ===&lt;br /&gt;
Es ist möglich jeden Backvorgang in eine CSV-Datei zu loggen. (Software- und PID-Einstellungen). Geloggte CSV-Dateien können eingelesen und im zentralen Temperatur-Zeit-Diagramm begutachtet werden. Ein Ist-Soll-Vergleich ist ebenso möglich wie die direkte Anzeige des Fehlers (&amp;quot;Ist minus Soll&amp;quot;). Dank CSV können die Daten auch mit anderen Programmen (Excel, etc.) weiterverarbeitet werden.&lt;br /&gt;
&lt;br /&gt;
== Ofen / Pizzaofen ==&lt;br /&gt;
=== Leistung und Volumen ===&lt;br /&gt;
* Alls Faustformel wird oft 100W pro Liter Volumen genannt.&lt;br /&gt;
* Ich habe einen sehr preiswerten Ofen gewählt und die &amp;quot;Oberhitze&amp;quot; zusätzlich mit zwei Halogen-Stäben a 300W &amp;quot;verstärkt. Das kostet nicht viel, die Fassung ist für ca. 3 Euro erhältlich, die Halogenstäbe gibt es in jedem Baumarkt. &lt;br /&gt;
* Bezugsquelle Fassung : siehe &amp;quot;Links&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Dämmung ===&lt;br /&gt;
=== Umluft ===&lt;br /&gt;
* Der verwendete Ofen sollte eine Umluftfunktion besitzen, damit sich die Wärme gleichmäßig im Ofen und auf der Leiterplatte verteilen kann.&lt;br /&gt;
&lt;br /&gt;
== FAQ ==&lt;br /&gt;
&lt;br /&gt;
* Q1: Ich habe einen PT100/PT1000 und möchte den anschließen. Geht das?&lt;br /&gt;
** A1: Ja natürlich. Dazu ist aber etwas externe Elektronik notwendig. Sowohl 2 ADC-Pins (mit 3V3 Betriebsspannung als fixe Referenzspannung), als auch die UART und SPI/I2C-Schnittstelle stehen zur freien Verfügung. Für PT100/PT1000 wird für vernünftige Messungen ohnehin eine Verstärkung (meist mit OPV) von Nöten sein. Da der PIC-interne ADC &amp;quot;nur&amp;quot; 10bit Auflösung bietet sollte ein externer 16bit ADC in Betracht gezogen werden um das Potential der PT100/PT1000 auszunutzen.&lt;br /&gt;
*Q2: Ich habe von günstigen Temperaturmessungen mit Dioden gehört. Geht das auch hier?&lt;br /&gt;
**A2: Ja. Die Vorwärtsspannung einer Diode verhält sich linear zur Sperrschichttemperatur. Diese Spannung (bei 25°C einer Si-Diode die bekannten 0,7V) kann mittels OPV verstärkt werden und auf einen Spannungsbereich von 0 ... 3V3 aufgebläht werden. Eine billige Lösung, auf Kosten der Genauigkeit. Doch eine Diode ist laut Datenblatt nur bis 150°C geeignet. Es ist also beim Löten mehr oder weniger Pfusch. Wenn ich schon eine Reflow-Steuerung baue, sollte ich doch nicht an ein paar Euro für eine gescheite Temperaturmessung sparen. Einige Anregungen vom Messgerätehersteller Keithley bzgl. der Halbleiterphysik mit interessanten Formeln [http://www.keithley.de/support/data?asset=50486]. Oder natürlich der Klassiker von Thomas Pfeifer [http://thomaspfeifer.net/backofen_smd_reflow.htm]. Oder ein Beitrag mit LT-Spice Simulation zum Thema [http://www.mikrocontroller.net/topic/270627#2833883].&lt;br /&gt;
* Q3: God why ... ?&lt;br /&gt;
** A3: Because we can !&lt;br /&gt;
* Q4: Ich hab aber noch nie was mit 230V gemacht.&lt;br /&gt;
**A4: Dann würde ich an Deiner Stelle dieses Projekt NICHT nachbauen.&lt;br /&gt;
* Q5: Warum wurde Altium verwendet und nicht Eagle?&lt;br /&gt;
**A5: Weil es uns kostenlos zur Verfügung stand und wesentlich leistungsfähiger ist.&lt;br /&gt;
&lt;br /&gt;
= Verbesserungen Prototyp - Diese haben jedoch keinen Einfluss auf die Funktion der Leiterplatte=&lt;br /&gt;
* Bauteile weiter weg von den Schraublöchern.&lt;br /&gt;
* Dazu Kreis rund um Bohrung auf Bestückdruck.&lt;br /&gt;
* Masseanbindung Quarz.&lt;br /&gt;
* Klemmen weiter weg vom Rand.&lt;br /&gt;
* Klemme und Sicherungshalter weiter auseinander.&lt;br /&gt;
* Bohrungen für Drossel 0,2mm größer machen.&lt;br /&gt;
* Teilenummer für Conrad-USB-Buchse in BOM übernehmen.&lt;br /&gt;
* Stiftleiste P1  weiter weg von P2 und P4.&lt;br /&gt;
* Varistoren näher an Klemmen platzieren.&lt;br /&gt;
* THT-Kondensatoren für Snubber.&lt;br /&gt;
* Ggf. Stiftleistenbelegung für externe Leds so ändern, das keine extra Vorwiderstände notwendig sind.&lt;br /&gt;
* Befestigungsbohrung für Drossel, um diese mit Kabelbinderung oder Schraube fixieren zu können.&lt;br /&gt;
* Pullup-Widerstand bei MCLR doppelt. &lt;br /&gt;
* Power-LED vorsehen.&lt;br /&gt;
* Leiterbahnen etwas weiter weg von den Kühlkörperanschlüssen&lt;br /&gt;
* Designatoren Texte etwas größer machen.&lt;br /&gt;
* Ein vernünftiger GND-Punkt für einen Tastkopf / Messungen / Aligator-Clips vorsehen.&lt;br /&gt;
* Spannungsversorgung doch Onboard? Oder beides?&lt;br /&gt;
* Leds 90 Grad, Frontplattenmontage&lt;br /&gt;
* Taster 90 Grad Frontplattenmontage&lt;br /&gt;
* Termoelemente Frontplattenmontage??? Termoelementstecker?&lt;br /&gt;
* Schaltausgang 230 V kleiner, weniger Leistungsfähig.&lt;br /&gt;
&lt;br /&gt;
= Errata Projekt =&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:red;&amp;quot;&amp;gt; Triac Symbol in Library falsch, dadurch ist T2 mit T1 vertauscht. Abhilfe für Leiterplattenversion V1.0: T1 und T2 &amp;quot;twisten&amp;quot; und jeweils mit Schrumpfschlauch versehen.( Also Beinchen T1 über kreuz mit Beinchen T2 einlöten...)&amp;lt;/span&amp;gt;&lt;br /&gt;
* Beim MOSFET R39 ist die Masseanbindung falsch. Es bestehen drei Möglichkeiten:&lt;br /&gt;
** 1. 0-R-Brücke für R39 einbauen und auf Strombegrenzung verzichten.&lt;br /&gt;
** 2. Eine Polyfuse mit Bauform 1206 einbauen. &lt;br /&gt;
** 3. Das kleine Leiterbahnstückchen zwischen R38 und R39 unterbrechen und statt dessen die Leiterbahn zwischen R39 und der Klemme mit der Durchkontaktierung bei R38 verbinden.&lt;br /&gt;
* LED-Beschriftung passt nicht ganz (Schaltplan Netlabel OUT1,2,3,4 sind durcheinander gekommen) --&amp;gt; Ist im Prinzip ohne Belang, man muss das nur bei der Software berücksichtigen.&lt;br /&gt;
* Schaltplan UNL2003 fehlerhafte Zuordnung IN5,6,7 &amp;lt;&amp;gt; OUT7,6,5 --&amp;gt; Ist im Prinzip ohne Belang, man muss das nur bei der Software berücksichtigen.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* Diskussion: [http://www.mikrocontroller.net/topic/297217 Diskussion]&lt;br /&gt;
* Software: [http://sourceforge.net/projects/reflowofensteue/ Bei Sourceforge]&lt;br /&gt;
* Dextrel Nulldurchgang: [http://www.dextrel.net/diyzerocrosser.htm Nulldurchgangschaltung]&lt;br /&gt;
* Gehäuse Zeichnung: [http://www.hammondmfg.com/pdf/RM2055L.pdf Großes Gehäuse für Steckdosenmontage]&lt;br /&gt;
* Gehäuse Zeichnung: [http://www.hammondmfg.com/pdf/RM2055M.pdf Kleines Gehäuse, keine Steckdosen]&lt;br /&gt;
* Bezugsquelle [http://www.soselectronic.com/?str=371&amp;amp;artnum=73596&amp;amp;name=hammond-ritec-rm2055l Großes Gehäuse Hammond]&lt;br /&gt;
* Bezugsquelle [http://www.soselectronic.com/?str=371&amp;amp;artnum=73595&amp;amp;name=hammond-ritec-rm2055m Kleines Gehäuse Hammond]&lt;br /&gt;
* Bezugsquelle [http://www.druckerzubehoer.de/shop/product/catid/H-UNIVERSALZUBEHOER_HZB/subcatid/UNIVERSALZUBEHOER_GROUP1_HZB/productid/1727063-390722LA/site/1/lng/de_DE Netzteil Mini USB ]&lt;br /&gt;
* Bezugsquelle [http://www.ebay.de/itm/151037292125?ssPageName=STRK:MEWNX:IT&amp;amp;_trksid=p3984.m1497.l2649 Termoelement Ebay (Typ K für ca. 2Euro)]&lt;br /&gt;
* Bezugsquelle [http://www.artcase-shop.de/index.php?page=search&amp;amp;page_action=query&amp;amp;desc=on&amp;amp;sdesc=on&amp;amp;keywords=pce+105&amp;amp;x=0&amp;amp;y=0 Steckdosen für Schalttafeleinbau:]&lt;br /&gt;
* Bezugsquelle [http://www.schaeffer-ag.de/ Frontplatten]&lt;br /&gt;
* Bezugsquelle [http://www.lichtlieferant.de/catalogsearch/result/?q=r7s+fassung+sockel Vossloh Fassung R7S für Halogenstäbe]&lt;br /&gt;
* Datenblatt Prozessor [http://ww1.microchip.com/downloads/en/DeviceDoc/39632e.pdf PIC18LF2550]&lt;br /&gt;
* Umfangreicher Thread u.A. Leistungsvermögen, Temperaturmessung und Dämmung [http://www.mikrocontroller.net/topic/270627]&lt;br /&gt;
[[Kategorie:PIC-Projekte]]&lt;/div&gt;</summary>
		<author><name>Frankman</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=Reflow_Ofen_Steuerung&amp;diff=80584</id>
		<title>Reflow Ofen Steuerung</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=Reflow_Ofen_Steuerung&amp;diff=80584"/>
		<updated>2014-01-03T12:52:17Z</updated>

		<summary type="html">&lt;p&gt;Frankman: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Datei:RFB.jpg|thumb|right|200px|Altium 3D Ansicht]]&lt;br /&gt;
[[Datei:pcb.png|thumb|right|200px|Fertige Reflow-Ofen-Steuerung]]&lt;br /&gt;
[[Datei:Teilbest2.jpg|750px|teilbestückte Platine]]&lt;br /&gt;
== Einleitung ==&lt;br /&gt;
&lt;br /&gt;
Hier wird eine weitere Reflow-Ofen-Steuerung beschrieben.&lt;br /&gt;
=== Zum Nachbauen ===&lt;br /&gt;
* Spezifikation: [[Datei: Spec Reflow.pdf]]&lt;br /&gt;
* Schaltplan: &lt;br /&gt;
** Minimalversion [[Datei:Schematic Prints Minimal.pdf]]&lt;br /&gt;
** Standardversion [[Datei:Schematic Prints Standard.pdf]]&lt;br /&gt;
** Deluxeversion [[Datei:Schematic Prints Deluxe.pdf]]&lt;br /&gt;
** Debugversion [[Datei:Schematic Prints Debug.pdf]]&lt;br /&gt;
* Gerberdaten: [[Datei:Gerber Reflow.pdf]]&lt;br /&gt;
* Assemblydrawing: [[Datei:Assembly Reflow.pdf]] &lt;br /&gt;
* Altium-Files: [[Datei:Reflow.zip]]&lt;br /&gt;
* Stückliste als CSV: [[Datei:Reflow.csv]]&lt;br /&gt;
* Stückliste als Open Office: [[Datei:Reflow.ods]]&lt;br /&gt;
* PC Programm: TBD&lt;br /&gt;
* Sourcen PC-Programm: TBD&lt;br /&gt;
* PIC Programm (*.hex): [http://sourceforge.net/projects/reflowofensteue/ ]&lt;br /&gt;
* Sourcen Pic-Programm: [http://sourceforge.net/projects/reflowofensteue/ ]&lt;br /&gt;
* Step-File Steckdose:[[Datei:Steckdose.stp]]&lt;br /&gt;
&lt;br /&gt;
=== Motivation ===&lt;br /&gt;
Die Gründe, eine weitere Steuerung zu entwerfen, waren:&lt;br /&gt;
&lt;br /&gt;
* Die Möglichkeit, auch größere Öfen mit 2 Phasen betreiben zu können.&lt;br /&gt;
* Die Steuerung universell zu gestalten. Es sollte möglich sein, diese nicht nur zum Reflow löten zu verwenden....z.B:&lt;br /&gt;
** Temperatursteuerung für Klimakammer (Heizen, Kühlen)&lt;br /&gt;
** Dimmer mit USB&lt;br /&gt;
** Temperaturregler für ein Tisch-Fondue ( Temperatur halten)&lt;br /&gt;
** Drehzahlsteller mit USB&lt;br /&gt;
** Switchpack&lt;br /&gt;
* Die Schaltung sollte in Altium entwickelt werden. (Warum kein Eagle??? Altium User wissen es.... :-)&lt;br /&gt;
* Die Schaltung sollte mit USB ausgestattet sein.&lt;br /&gt;
&lt;br /&gt;
=== Eigenschaften &amp;amp; Spezifikationen ===&lt;br /&gt;
* Temperaturmessung: bis zu 2x &#039;&#039;&#039;Thermoelement&#039;&#039;&#039; (K-Typ) mit MAX6675 (abgekündigt) oder Nachfolger MAX31855 (pin- aber nicht softwarekompatibel)&lt;br /&gt;
* Leistungsstufen: &#039;&#039;&#039;3 voneinander unabhängige&#039;&#039;&#039; Triacs 800V 25A, limitiert auf &#039;&#039;&#039;10A @ 250VAC&#039;&#039;&#039; (z.B. Oberhitze, Unterhitze, Umluft)&lt;br /&gt;
* Nulldurchgangserkennung ermöglicht Wellenpaket-, und Phasenabschnittssteuerung * Galvanische Trennung der Leistungsendstufen&lt;br /&gt;
* 1x MOSFET-Ausgang PWM z.B. für 12V Lüfter, max. &#039;&#039;&#039;55V 3,5A&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;4 feste Programme&#039;&#039;&#039; im EEPROM über 2-Tasterbedienung und LEDs wähl- und ausführbar. &lt;br /&gt;
* &#039;&#039;&#039;PC-unabhängiger Betrieb&#039;&#039;&#039; möglich. &lt;br /&gt;
* Beliebig viele Programme möglich, bei Betrieb am Computer &lt;br /&gt;
* Mini-USB-Buchse zur Steuerung / Programmierung über GUI und zum Entwickeln. - Dafür ist &#039;&#039;&#039;keine Netzspannung&#039;&#039;&#039; erforderlich&lt;br /&gt;
* Günstiges passendes Gehäuse&lt;br /&gt;
* Alle LEDs und Taster auf &#039;&#039;&#039;Stiftleisten&#039;&#039;&#039; herausgeführt, für eigene Gestaltung der Frontblenden&lt;br /&gt;
* PID-Temperaturregler&lt;br /&gt;
* UART, SPI, I2C und 2x ADC auf Stiftleisten herausgeführt, für zukünftige &#039;&#039;&#039;Erweiterungen&#039;&#039;&#039;&lt;br /&gt;
* Versorgung über USB &amp;lt; 100mA, interne Versorgungsspannung 3,3V&lt;br /&gt;
* umfangreiche EMV-gerechte Entstörung für den Bedarfsfall&lt;br /&gt;
&lt;br /&gt;
=== Zusätzliches Benötigtes Material ===&lt;br /&gt;
* Leiterplatte (1 Stück)&lt;br /&gt;
* Gehäuse Hammond Teilenummer: RM2055L (1 Stück)&lt;br /&gt;
* Alternativ:Gehäuse Hammond Teilenummer: RM2055M (Wenn keine Steckdosen angebracht werden sollen)&lt;br /&gt;
* Alternative: Gehäuse Hammond (Hier muss man die Leiterplatte selber befestigen) Teilenummer: 1455T2201 (1 Stück)&lt;br /&gt;
* Einbausteckdosen Teilenummer: PEC 105 (2-3 Stück, je nach Ausbaustufe)&lt;br /&gt;
* PG-Verschraubung (2-3 Stück)&lt;br /&gt;
* Mutter für PG-Verschraubung (2 Stück)&lt;br /&gt;
* Litze blau, mindestens 1,5mm² (ca. 60cm)&lt;br /&gt;
* Litze braun, mindestens 1,5mm² (ca. 60cm) &lt;br /&gt;
* Litze gelb/grün, mindestens 1,5mm² (ca. 60cm)&lt;br /&gt;
* Aderendhülsen  mit Schutzkragen dazu ( 9 Stück für die Steckdosen)&lt;br /&gt;
* Schrauben, um die Leiterplatte zu befestigen (4 Stück)&lt;br /&gt;
* evtl. Abstandsbolzen dazu, falls das alternative Gehäuse verwendet wird (4 Stück)&lt;br /&gt;
* evtl. Muttern dazu, falls das alternative Gehäuse verwendet wird (4 Stück)&lt;br /&gt;
* Schrauben, Senkkopf DIN 7991 oder DIN 965 M4 X 10 um die Steckdosen zu befestigen (12 Stück)&lt;br /&gt;
* Muttern dazu M4 (12 Stück)&lt;br /&gt;
* Federschreiben  dazu DIN 127 M4 (12 Stück)&lt;br /&gt;
* Glimmerscheiben für Triac (2-3 Stück, je nach Ausbaustufe)&lt;br /&gt;
* Isoliernippel für Triacmontage (2-3 Stück, je nach Ausbaustufe)&lt;br /&gt;
* Zylinderkopfschraube M3 X 12 für Triacmontage (2-3 Stück, je nach Ausbaustufe)&lt;br /&gt;
* Mutter M3 für Triacmontage (2-3 Stück, je nach Ausbaustufe)&lt;br /&gt;
* Beilagscheibe M3 für Triacmontage (2-3 Stück, je nach Ausbaustufe)&lt;br /&gt;
* Isolierband für Triacmontage (ca. 300mm)&lt;br /&gt;
* Gummifüße für das Gehäuse (4 Stück)&lt;br /&gt;
&lt;br /&gt;
=== Kühlkörpermontage===&lt;br /&gt;
* Der Kühlköper sollte 38mm hoch sein, so passt er gut in die angegebenen Gehäuse&lt;br /&gt;
* Der Kühlkörper MUSS isoliert montiert werden, also Glimmerscheibe und Isoliernippel einsetzen und NACHMESSEN, ob der Kühlkörper auch wirklich keinen Kontakt zum Triac hat!&lt;br /&gt;
* Da die 230-V-Leiterbahnen nur durch den Stopplack vom Kühlkörper getrennt sind, sollte die Isolation mit zwei Lagen Gewebe- oder Isolierband verstärkt werden. Das Isolierband kann auf die Leiterplatte oder unter den Kühlkörper geklebt werden.&lt;br /&gt;
* Als Bohrungsmaß empfehle ich 20mm über der Leiterplatte.&lt;br /&gt;
* Entweder Bohrung 3,2mm für Durchgangsloch &lt;br /&gt;
* Oder Bohrung 2,5mm mit M3-Gewinde&lt;br /&gt;
&lt;br /&gt;
== Schaltung==&lt;br /&gt;
=== PIC18LF2550 Grundbeschaltung ===&lt;br /&gt;
[[Datei:osc_vs_vcc.png|thumb|right|200px|Taktraten und Versorgungsspannung PIC18F2550 vs. PIC18LF2550, Datenblatt S. 370/438]]&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 3/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Hier kommt ein PIC18&#039;&#039;&#039;L&#039;&#039;&#039;F2550 zum Einsatz. Er verfügt über eine USB-Schnittstelle und ist für Betriebsspannungen von 2 ... 5,5V ausgelegt. Sein Verwandter PIC18F2550 (ohne L) ist nicht für Betriebsspannungen &amp;lt; 4,2V ausgelegt. Dies ist bei USB sowieso nicht immer erfüllt und die Thermoelement-ICs vertragen ohnehin keine 5V, daher wurde die Betriebsspannung auf 3,3V reduziert. Neben Standard-Decoupling (100nF Kerko pro Vcc-Vss-Pärchen) wurde das ICSP-Interface in alt bewährter Pinbelegung (PICKit1,2,3) angebracht. PGD und PGC sind nicht weiter beschaltet, MCRL wird , wie immer als Resetpin verwendet. Der Resetschalter findet sich auf dem Top-Sheet (Schaltplan S. 1/22). Die Taktversorgung erfolgt über einen 24 MHz Quarz (-&amp;gt; USB). Man beachte diesbezüglich rechts stehende Grafik zu Taktraten und Versorgungsspannungen (Vdd bzw. auch Vcc genannt). Auch zu finden im Datenblatt des PICs auf Seite 370.&lt;br /&gt;
&lt;br /&gt;
=== PIC18LF2550 USB Beschaltung ===&lt;br /&gt;
[[Datei:usb_part.png|thumb|right|200px|PIC18(L)F2550&lt;br /&gt;
 Standard &lt;br /&gt;
USB-Beschaltung am PIC]]&lt;br /&gt;
[[Datei:usb_protect.png|thumb|right|200px|USB-Schutzbeschaltung und Mini-USB-Buchse]]&lt;br /&gt;
&lt;br /&gt;
Die Beschaltung der USB-Schnittstelle am PIC ist 1:1 aus dem Datenblatt übernommen. Zum Einsatz kommt eine Mini-USB-Buchse (J1).&lt;br /&gt;
Der Gedanke war: Erstens ein sehr preiswertes, fertiges Netzteil verwenden zu können, (ca. 3,67 € bei druckerzubehoer.de) und zweitens, die Steuerung auch mit dem PC / Laptop versorgen zu können.&lt;br /&gt;
Somit kann die Schaltung OHNE 230V betrieben und debuggt werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 4/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
FER1,2 und C7 filtern den Schirm nach GND. Standardmäßig wird man hier wohl 0-Ohm-Widerstände einsetzen. Falls ein Besuch im EMV-Labor geplant ist, weicht man auf den Ferrit aus. C5 und C6 filtern das Signal zusammen mit der Common-Mode-DrosselL1. Die Drossel kann mit den 0-Ohm-Brücken R8 und R9 überbrückt (gespart) werden. IC2 ist als ESD-Schutz gedacht und kann ebenfalls bei ausgeprägten Kostenbewustsein gespart werden. Die Widerstände R6 und R7 dürfen NICHT bestückt werden. FER1,2, C5, IC2 müssen nicht zwingend bestückt werden. Die Bestückung wurde vorgehalten um im Problemfall einfache Abhilfe schaffen zu können.&lt;br /&gt;
&lt;br /&gt;
=== 3,3V Spannungsversorgung ===&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 2/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Die 3,3V Versorgungsspannung für die gesamte Platine wird aus V_USB mittels des LDO Spannungsreglers TOREX - XC6206P332MR abgeleitet. Günstig, SOT-23, klein, 2x 1µF Kondensatoren benötigt, 3,3V max. 250mA. Der hat auch einen sehr kleinen Ruhestrom.&lt;br /&gt;
&lt;br /&gt;
=== Taster ===&lt;br /&gt;
*Der Resettaster zieht den MCLR-Pin nach GND und löst damit den Reset aus. MCLR  ist mit einem 10k Pullup versehen.&lt;br /&gt;
*Die übrigen beiden Taster ziehen RA4 bzw. RB5 ebenfalls nach GND.&lt;br /&gt;
&lt;br /&gt;
=== LEDs + ULN2003L ===&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 11/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Um alle LEDs auf der Platine (3x Optotriac + 7x Status) ansteuern zu können wurde auf das 7fach Darlington-Array ULN2003L zurückgegriffen. Die PIC-Ausgänge könnten zwar die LEDs direkt steueren. Aber so werden alle Ausgänge einheitlich nach Masse geschaltet. Das verbessert die Testbarkeit der ganzen Platine. ( Mit einem kurzen Masse-Draht kann zur Not der entsprechende Ausgang gesetzt werden, ohne etwas zu zerstören.)&lt;br /&gt;
&lt;br /&gt;
=== MOSFET-Leistungsausgang ===&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 22/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Hier kommt der einfacher N-Kanal MOSFET (LogicLevel) PHT8N06LT zum Einsatz. Er wird über das ULN2003L Array getrieben und ermöglicht den Anschluss eines DC-Verbrauchers mit max. 55V bei 3,5A. Hier könnte beispielsweise ein PC-Lüfter zur Kühlung oder für Umluft angeschlossen und über PWM geregelt/gesteuert werden. Ein Gatewiderstand von 100 Ohm ist zum Schutz des Treibers vorgesehen. Eine 0-Ohm-Brücke ist stattdessen aber auch möglich, wenn man eine höhere Leistung schalten möchte.Die Leiterbahnen sollten die 3A schon hergeben. Der 100 Ohm Widerstand bildet eine Stromquelle. Sobald der Strom durch den MOSFET und den Widerstand 33mA erreicht, sinkt UGS gegen 0 V. Folge: Der Mosfet sperrt ( und bleibt ganz....)&lt;br /&gt;
Es kann hier prinzipiell auch ein anderer Mosfet im SOT223-Gehäuse zum Einsatz kommen. Achten sollte man darauf, das der MOSFET schon bei 3,3V Ugs gut leiten sollte.&lt;br /&gt;
&lt;br /&gt;
=== Nulldurchgangserkennung ===&lt;br /&gt;
[[Datei:zerocross.png|thumb|right|200px|Nulldurchgangserkennung]]&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 5/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Die Nulldurchgangserkennung erfolgt nach einer sehr bekannten - jedoch ausgeklügelten - Schaltung.  [http://www.dextrel.net/diyzerocrosser.htm siehe: Dextrel]&lt;br /&gt;
Während einer Halbwelle wird C14 über R33 und R35 bzw. D5 geladen. Währenddessen ist T1 gesperrt. Sobald die Wechselspannung (L1-N über Spannungsteiler (R33+R35) / R34) kleiner ist als die Spannung über C14, steuert T1 durch. Dann entlädt sich C14 über den LED-Vorwiderstand R32. Der durch-steuernde Optokoppler zieht die Sync-Leitung nach GND. (Pullup Sync-Leitung = R31). Dies löst beim PIC auf INT2 einen Interrupt aus. &lt;br /&gt;
Dieser Interrupt ermöglicht eine präzise Wellenpaket-, Phasenanschnittsteuerung je nach Bedarf. Das Schalten im Nulldurchgang bei der Wellenpaketsteuerung reduziert EMV-Störungen. Für Phasenanschnitt ist ohnehin eine Nulldurchgangserkennung notwendig. Außerdem liefert sie eine genaue Zeitbasis für alle Programmabläufe.&lt;br /&gt;
&lt;br /&gt;
=== Triac-Ausgänge + Snubber ===&lt;br /&gt;
[[Datei:triac.png|thumb|right|200px|Triac-Ausgangsbeschaltung]]&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 19,20,21/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Die Ansteuerung des eigentlichen Leistungstriacs BTA140-800 erfolgt über den Optotriac IS6005. Der Strom durch Letzteren wird durch R1x limitiert (Vorwiderstand). R2x und R5x limitieren wiederum den Strom durch den Optotriac. Wenn dieser zündet so folgt unmittelbar der &amp;quot;Leistungstriac&amp;quot; der dann die Last schaltet.&lt;br /&gt;
&lt;br /&gt;
S1x ist ein Sicherungshalter um die Lasten einzeln absichern zu können. Wert 10A Mittelträge.&lt;br /&gt;
&lt;br /&gt;
R3x, R4x, C3x bilden ein Snubber-Network, L1X verhindert eine zu schnelle Stromanstiegsgeschwindikeit damit der Triac nicht &amp;quot;von selbst&amp;quot; zündet. Weglassen äußert sich meist in einem fast nicht hörbaren Click. Damit zeigt einem dann der Triac, dass er ab jetzt für immer recht niederohmig geworden ist. Die Regelung der Temperatur braucht dann nicht mehr über den Prozessor erfolgen, sondern nur noch mit dem Ein-/Ausschalter..... :-)&lt;br /&gt;
&lt;br /&gt;
=== Thermoelemente (MAX6675/MAX31855)  ===&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 6,7/22&#039;&#039;&#039;&lt;br /&gt;
Der inzwischen abgekündigte MAX6675 bzw. sein ehrenwerter Nachfolger MAX31855 sind einfach zu handhabende Thermoelement-ICs mit Kaltstellenkompensation. Thermoelemente funktionieren durch das Verschweißen zweier verschiedener Legierungen (beim K-Typ Thermoelemnt Ni und CrNi). Durch den durch die Umgebungstemperatur bedingten Wärmefluss zwischen beiden entsteht ein elektrische Spannung. Diese wird von besagten ICs verstärkt und digitalisiert (ADC). Diese Spannung / Temperatur ist natürlich wieder relativ zur Umgebungstemperatur an der Kaltstelle (Kontaktierung der beiden Drähte mit dem Messinstrument). Daher messen diese ICs auch gleich die Umgebungstemperatur (Kaltstellenkompensation genannt) mit, verrechnen das und geben das Ergebnis auf der SPI-Schnittstelle aus. MAX6675 leistet 12bit also 0,25°C Auflösung (nicht Genauigkeit!) über einen Temperaturbereich von 0°C to +1024°C. Außerdem wird ein nicht/fehlerhaft angeschlossenes Thermoelement erkannt. Der Thermocouple-IC wird an die SPI-Schnittstelle des PICs angeschlossen (hier MSSP genannt). &lt;br /&gt;
&lt;br /&gt;
MAX6675 und MAX31855 scheinen entgegen der Adafruit-Information [http://www.adafruit.com/products/269] doch pinkompatibel zu sein - die Ansteuerung unterscheidet sich jedoch definitiv. (Zitat: &amp;quot;Now uses the MAX31855K instead of the MAX6675, so it can measure a wider temperature measurement range. Please note! the MAX31855 is not pin compatible or drop-in code compatible with the MAX6675. We do have an Arduino library for both chips but you&#039;ll need to adjust any existing MAX6675 designs for the mew MAX31855. The MAX6675 has been discontinued by Maxim.&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Es wurden 2 dieser ICs und damit 2 Temperaturmessstellen vorgesehen. Dies ermöglich die Messung für eine Regelung der Temperatur so wie eine zusätzliche Überwachung kritischer Bauteile (z.B. ICs oder LEDs). Die Minimalbestückung sieht einen MAX6675/MAX31855 vor. Die Auswahl in der Firmware erfolgt über einen der beiden GPIO-Pins RA5 oder RA0 via dem ChipSelect (CS) des MAX6675/MAX31855.&lt;br /&gt;
&lt;br /&gt;
Neben dem MAX6675/MAX31855 wurde ein Decoupling-Kondensator (C8x, Standard 100nF) so wie ein weiterer im Messpfad (C9x) zur Zwecken der Entstörung vorgeshen. C9x 100nF sollte nur bestückt werden wenn Probleme bei der Temperaturmessung entstehen (z.B. unrealstisch stark schwankende Werte).&lt;br /&gt;
&lt;br /&gt;
=== ADC, SPI, UART &amp;amp; I2C Stiftleiste ===&lt;br /&gt;
ADC, SPI, UART und I2C sind zu Zwecken der Kalibrierung / Erweiterung / Einstellung / Debugging auf Stiftleisten herausgeführt:&lt;br /&gt;
Ähnlichkeiten mit dem FTDI-USB-TTL-Kabel bzw. Arduino XXX Bla Bla Bla Schnittstellenkonverter sind natürlich rein zufällig.&lt;br /&gt;
&lt;br /&gt;
Die I2C-Schnittstelle wurde auf eine Stiftleiste geführt, um z.B. einem LM75 o.ä. anschließen zu können. Damit stehen zur Kalibrierung der Thermoelemente genaue Temperaturen zur Verfügung.&lt;br /&gt;
&lt;br /&gt;
Die Stiftleisten haben alle ein Raster von 2,54mm. So können Pin-Header, Wannenstecker oder ähnliches verwendet werden.&lt;br /&gt;
&lt;br /&gt;
Da ja viele Leute eigene Vorstellungen bezüglich der Frontplattengestaltung haben, wurden auch die Taster und LEDs auf Stiftleisten geführt.&lt;br /&gt;
&lt;br /&gt;
=== Kühlkörper ===&lt;br /&gt;
Da die Triacs der Steuerung für bis zu 10A pro Kanal ausgelegt sind, kann man auf die Kühlkörper nicht verzichten. Es fallen bei 10A bis zu 13 Watt Wärme pro Triac ab. Falls mann auf die Kühlkörper doch verzichten möchte, sollte man darauf achten, die Triacs mit dem Kopf nach unten einzubauen. Diese können sich dann bei Überlast ganz von selber auslöten.... :-)&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red;&amp;quot;&amp;gt; Die Triacs müssen mit Glimmerscheibe und Isoliernippel -ALSO ISOLIERT ZUM KÜHLKÖRPER- montiert werden.&lt;br /&gt;
Außerdem muss unter dem Kühlkörper ein Stück Isolierband oder FR4 oder Nylon-Scheiben beigelegt werden, um zu verhindern, dass der Stopplack der Leiterplatte beschädigt wird. In diesem Falle hätte man Potential auf dem Kühlkörper.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Gehäuse ===&lt;br /&gt;
Die Leiterplatte wurde für ein Gehäuse von Hammond entwickelt.&lt;br /&gt;
Das Gehäuse ist zwar keine Schönheit, aber doch recht preiswert.&lt;br /&gt;
Typenbezeichnung: RM2055M oder etwas größer RM2055L&lt;br /&gt;
&lt;br /&gt;
== Firmware PIC ==&lt;br /&gt;
* Die Entwicklung der Firmware für den PIC18LF2550  erfolgt mit MPLABX und dem C18 Compiler. &lt;br /&gt;
* MPLABX ist kostenlos, der C18 Compiler bis auf die stärkste Optimierungsstufe ebenfalls. &lt;br /&gt;
* Die Quellen für die Firmware sind offengelegt und können von Sourceforge bezogen werden, siehe Links, weiter unten.&lt;br /&gt;
&lt;br /&gt;
=== Programmstruktur- und ablauf ===&lt;br /&gt;
Nach anfänglicher Initialisierung des PIC startet die Statemachine [http://http://www.mikrocontroller.net/articles/Statemachine] [http://http://de.wikipedia.org/wiki/Endlicher_Automat]. Neben ihr findet in der main-Funktion nur noch die Abfrage der beiden Bedientasten statt. Mit dem Tastendruck wird zum Zwecke der Entprellung ein Timer gestartet. Alles Andere (incl. PID-Regelung, Wellenpaket- bzw. Phasenan- und Phasenabschnittssteuerung und USB) ist interruptbasiert.&lt;br /&gt;
=== Reflow-Ofen-Konfiguration ===&lt;br /&gt;
&lt;br /&gt;
=== Taktversorgung, Nulldurchgangserkennung und Zeitbasis ===&lt;br /&gt;
=== USB ===&lt;br /&gt;
=== SPI für MAX6675 ===&lt;br /&gt;
=== SPI für MAX31855 ===&lt;br /&gt;
&lt;br /&gt;
=== Wellenpaketsteuerung ===&lt;br /&gt;
=== Phasenanschnitt ===&lt;br /&gt;
&lt;br /&gt;
=== PWM für MOSFET ===&lt;br /&gt;
=== PIC-Configword ===&lt;br /&gt;
&lt;br /&gt;
=== Zuordnung Outputs ===&lt;br /&gt;
[[Datei:pinning.png|thumb|right|400px|Input/Output-Funktions-Tabelle]]&lt;br /&gt;
&lt;br /&gt;
*In1 = RC2 = PIN13 = ULN5--&amp;gt;12 = OUT1 = PWM &lt;br /&gt;
*In2 = RB3 = PIN24 = ULN6--&amp;gt;11 = OUT2 = TRIAC_A (1) = K5&lt;br /&gt;
*In3 = RB4 = PIN25 = ULN7--&amp;gt;10 = OUT3 = TRIAC_B (2)= K2&lt;br /&gt;
*In4 = RA2 = PIN4  = ULN4--&amp;gt;13 = OUT4 = LED_PRG1 = OPTO D&lt;br /&gt;
*In5 = RC0 = PIN11 = ULN3--&amp;gt;14 = OUT6 = LED_PRG2 = OPTO F&lt;br /&gt;
*In6 = RC1 = PIN12 = ULN2--&amp;gt;15 = OUT7 = LED_PRG3 = OPTO G&lt;br /&gt;
*In7 = RA3 = PIN5  = ULN1--&amp;gt;16 = OUT5 = LED_PRG4 = OPT= E&lt;br /&gt;
&lt;br /&gt;
TRIAC1 ist nahe dem Zerocross&lt;br /&gt;
&lt;br /&gt;
== PC-Software (GUI) ==&lt;br /&gt;
[[Datei:gui_alpha.png|thumb|right|300px|Screenshot der GUI (noch Alpha) für den Reflow-Ofen-Controller]]&lt;br /&gt;
&lt;br /&gt;
Die GUI (englisch Graphical User Interface) ist der Einfachheit halber in VB.net programmiert und momentan noch im Alpha-Stadium. Auch hierfür liegen die Quellen später selbstverständlich offen.&lt;br /&gt;
&lt;br /&gt;
=== Funktionen und Modi ===&lt;br /&gt;
[[Datei:modi.png|thumb|right|400px|Auswahl der beschriebenen Modi durch Klick]]&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Ofen-Profil&amp;quot;&#039;&#039;&#039; - Es wird ein Programm (Temperaturkurve) aus dem EEPROM des Reflow-Ofens ausgeführt. Der Backvorgang kann mit der Software gesteuert (START, STOP, ...) und überwacht werden. Hierzu stehen Temperatur, Temperaturänderung, Heizleistung (Ober- und Unterhitze, Lüfter) so wie die graphische Darstellung im zentralen Diagramm zur Verfügung. Eingriffsmöglichkeiten, wie das Ändern der Temperaturkurve sind nicht vorgesehen. Dies soll ein reiner Überwachungs-Modus sein. Um die Temperaturkurve zu verändern zu können, sollte der Modus &amp;quot;PC-Profil&amp;quot; verwendet werden und die Temperaturkurve aus dem EEPROM importiert werden. Dann kann Selbige auch verändert und anschließend ausgeführt bzw. verändert in den EEPROM zurückgeschrieben werden. Dieser Modus stellt ein Äquivalent zur START/STOP-Tasten-Bedienung an der Platine dar und kann selbstverständlich parallel dazu genutzt werden. Die GUI also als Addon zum Stand-Alone-Betrieb.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;PC-Profil&amp;quot;&#039;&#039;&#039; - Es wird ein Programm (Temperaturkurve) ausgeführt welche zuvor am Computer erstellt / editiert wurde. In diesem Modus gibt der Computer Temperaturwerte vor, welche live über die USB-Schnittstelle zum PIC übertragen werden und mit dem dort integrierten PID-Regler ausgeführt werden. Das ermöglicht eine on-the-fly Veränderung der Temperaturkurve während des Backvorgangs. Temperaturkurven können aus Dateien oder dem EEPROM importiert und auch wieder exportiert werden. CSV-Dateien können ebenfalls importiert und exportiert werden. Die &amp;quot;Eingabe&amp;quot; der Temperaturkurve erfolgt entweder über Import (CSV/EEPROM), per Mausklick auf dem zentralen Diagramm oder im sog. DataGridView. Weiteres siehe Unterpunkt &amp;quot;Eingabe der Temperaturkurve (Reflowprofil)&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;manueller Ablauf&amp;quot;&#039;&#039;&#039; - In diesem Modus wird (im Gegensatz zu den oberen beiden Modi &amp;quot;Ofen-Profil&amp;quot; und &amp;quot;PC-Profil&amp;quot;) keine Temperatur geregelt. Hier wird die Leistung des Ofens in % eingestellt und gesteuert. Der PID-Regler ist nicht in Aktion. Die Temperatur, Temperaturänderung so wie der Temperaturverlauf werden selbstredend angezeigt bzw. im Diagramm dargestellt. Der Modus &amp;quot;manueller Ablauf&amp;quot; fährt ähnlich dem Modus &amp;quot;PC-Profil&amp;quot; die im DataGridView eingetragenen Leistungs-Zeit-Punkte ab. Für jeden Zeitpunkt ist eine Leistung vorgegeben. Die Eingabe erfolgt ähnlich wie unter &amp;quot;Eingabe der Temperaturkurve (Reflowprofil)&amp;quot; beschrieben. Nur eben, dass eine Leistung und keine Temperatur angegeben wird. Die Eingabe der Leistung kann nicht im Zeit-Temperatur-Diagramm erfolgen sondern mittels der Schieberegler oder direkt tabellarisch.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;manueller Modus&amp;quot;&#039;&#039;&#039; - Dieser Modus enthält 2 Submodi&lt;br /&gt;
** &amp;quot;manueller Leistungsmodus&amp;quot; - Auch in diesem Modus wird die Leistung gesteuert. Es wird keine Temperatur geregelt, der PID-Regler für die Temperatur ist nicht in Betrieb. Die Einstellung hier erfolgt über die drei Schieberegler oder über eine numerische Eingabe durch Klick auf die Leistungsangabe unter dem Schieberegler. Durch Klick auf die Texte &amp;quot;TOP&amp;quot;, &amp;quot;BOTTOM&amp;quot;, &amp;quot;FAN&amp;quot; (Oberhitze, Unterhitze, Lüfter) können selbige deaktiviert bzw. aktiviert werden. Auch in diesem Modus wird Temperatur, Temperaturänderung so wie der Temperaturverlauf dargestellt.&lt;br /&gt;
** &amp;quot;manueller Temperaturmodus&amp;quot; - Hier wird die Temperatur wieder mittels des Temperatur-PIDs geregelt. Die Temperatur wird entweder mittels Schieberegler (Ober- und Unterhitze-Regler sind jetzt gekoppelt) oder durch eine numerische Eingabe unterhalb der Schieberegler vorgegeben. Anzeige wie im &amp;quot;manuellen Leistungsmodus&amp;quot;. Der Lüfter kann unabhängig vom PID in seiner Leistung geregelt werden. Ein evtl. durch den Luftstrom verursachter Temperaturabfall wird vom PID selbstverständlich ausgeregelt (aus diesem Grunde ist es ja ein Regler).&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Programmieren&amp;quot;&#039;&#039;&#039; - Hier kann ein neues &#039;&#039;&#039;Temperatur&#039;&#039;&#039;-Programm für den EEPROM-Speicher des Ofens erstellt und editiert werden. Die Eingabemöglichkeiten sind unter &amp;quot;Eingabe der Temperaturkurve (Reflowprofil)&amp;quot; beschrieben. Dieser Modus ist zum reinen Programmieren des Ofens gedacht und ermöglicht keine weitere Steuerung oder Überwachung des Ofens.&lt;br /&gt;
&lt;br /&gt;
=== Eingabe der Temperaturkurve (Reflowprofil) ===&lt;br /&gt;
[[Datei:datagridview.png|thumb|right|400px|tabellarische Anzeige und Editiermöglichkeit der Temperaturkurve]]&lt;br /&gt;
Die Eingabe der Temperaturkurve erfolgt entweder über Import (CSV/EEPROM), per Mausklick auf dem zentralen Diagramm oder im sog. DataGridView (Excel-ähnliche Bedienung in tabellarischer Form). &lt;br /&gt;
&lt;br /&gt;
* CSV-Import + Export&lt;br /&gt;
* EEPROM-Import + Export&lt;br /&gt;
* Im rechts stehenden Screenshotbeispiel wird eine tabellarische Eingabeform mit einem DataGridView gezeigt: Die Temperatur (erster Temperaturpunkt = Punkt 0) von 100°C wird linear über einen Zeitraum von 0-30s verteilt. Bei 30s hat der Ofen die Temperatur von 100°C. Dafür setzt die Regelung die Oberhitze, die Unterhitze ein. Der Lüfter ist deaktiviert. In der Zeit von 30s bis 120s wird die Temperatur nun von 100°C auf 150°C linear angehoben. Von 120s bis 180s Backzeit steigt die Temperatur von 150°C auf 250°C. Von 180s bis 200s wird die Temperatur auf 280°C angehoben. Anschließend wird sie zwischen 200s und 220s auf 280°C gehalten (280°C@200s und 280°C@220s) um dann bis 240s wieder auf 250°C zu fallen. Bis zum Zeitpunkt 300s wird dann die Temperatur 30°C angestrebt. Zusätzlich ist der Lüfter nun aktiviert (soweit der Ofen eine Umluftfunktion besitzt). Bei Punkt 7 sind Ober- und Unterhitze deaktiviert nur noch der Lüfter kühlt. Da hier bei &amp;quot;Zeit[s]&amp;quot; die 0 eingetragen wird der Zustand (hier nur Lüfter an) für einen unendlich langen Zeitraum auf 0 gehalten. Also so lange wie das Programm aktiviert ist wird der Lüfter laufen. Natürlich könnte man hier auch z.B. 100°C und Zeitpunkt 0s eintragen. Dann würde der Ofen bis zum manuellen Beenden des Programms (klick auf STOP-Button oder Drücken des START/STOP-Tasters auf der Platine/Steuerung) 100°C halten.&lt;br /&gt;
* Alle Zellen des DataGridView sind editierbar (zur Veränderung der Temperatur, Zeitpunkt, ...)&lt;br /&gt;
* Direkter Klick auf das zentrale Temperatur-Zeit-Diagramm trägt den Zeitpunkt so wie die Temperatur unter dem Mauszeiger in die Tabelle (das DataGridView) ein. Die ausgewählte Zeile wird beschrieben oder überschrieben. Neue Zeilen (also Temperatur-Zeit-Punkte) können durch klick auf den &amp;quot;Plus-Button&amp;quot; hinzugefügt werden. Ebenso ist das Löschen oder Verschieben einer oder mehrerer Zeile gleichzeitig möglich.&lt;br /&gt;
&lt;br /&gt;
=== Beschreibung der Steuerungsmöglichkeiten ===&lt;br /&gt;
In Abhängigkeit des gewählten Modus bestehen einige Steuerungs-, Einstellungs- und Kontrollmöglichkeiten:&lt;br /&gt;
* &#039;&#039;&#039;Schieberegler&#039;&#039;&#039; für Temperatur od. Leistung (je nach Modus) für Oberhitze, Unterhitze und Lüfter. Je nach Hardwareausführung. &lt;br /&gt;
** Klick auf &amp;quot;TOP&amp;quot;, &amp;quot;BOTTOM&amp;quot; oder &amp;quot;FAN&amp;quot; aktiviert oder deaktiviert die entsprechende Funktion bzw. Hardware.&lt;br /&gt;
** Numerische Eingabe der Werte für die Schieberegler durch Klick auf die Anzeige unterhalb der Schieberegler. Werte können auch im deaktivierten Zustand angegeben werden. Die Übernahme erfolgt durch den &amp;quot;Aktivierungsklick&amp;quot; auf &amp;quot;TOP&amp;quot;, &amp;quot;BOTTOM&amp;quot; oder &amp;quot;FAN&amp;quot;&lt;br /&gt;
* &#039;&#039;&#039;T1, dT1, T2, dT2&#039;&#039;&#039; - Anzeige der gemessenen Temperatur so wie die momentane Temperaturänderung am jeweiligen Sensor. &lt;br /&gt;
* &#039;&#039;&#039;Bedienbuttons&#039;&#039;&#039;&lt;br /&gt;
** Play - Startet das Programm am angegebenen Startpunkt (siehe unten)&lt;br /&gt;
** Pause - Pausiert das Programm - weitere Pauseoptionen siehe unten&lt;br /&gt;
** Stop - Stopt den Programmablauf&lt;br /&gt;
** Vor / Zurück - Springt zwischen Temperaturpunkten hin und her. Dient zum überspringen oder zurückspringen zu gewissen Temperatur-Zeit-Punkten. Ermöglicht z.B. das Überspringen eines Ablaufes der eine lange Preheat- oder Dryphase hat.&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Status&amp;quot;&#039;&#039;&#039; - zeigt den aktuellen Zustand des Programms an (READY, START, WAITING, PAUSE, ...)&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;RESET&amp;quot;&#039;&#039;&#039; - setzt das (begonnene) Programm zurück. Beinhaltet neben dem Programmablauf auch das Zurücksetzen der graphischen Anzeige des Diagramms, etc.&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Startpunkt&amp;quot;&#039;&#039;&#039; - legt den ersten Punkt des Programmablaufes fest. &lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Wiederholungen&amp;quot;&#039;&#039;&#039; - ermöglicht das wiederholte Backen ohne das Programm händisch immer wieder neu starten zu müssen. Die Anzahl der Wiederholungen ist einstellbar (0 für unendlich viele) und es ist eine Wartezeit zwischen den Wiederholungen einstellbar. Alternativ kann eine Meldung nach jedem vollendeten Backvorgang abgegeben werden. Nach Bestätigung dieser wird die nächste Wiederholung ausgeführt.&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Pause&amp;quot;&#039;&#039;&#039; - Pauseneinstellungen. Hier sind Optionen wählbar was passieren soll, falls der Pausebutton betätigt wird:&lt;br /&gt;
** Pausezeit - gibt an wie lange die Pause dauern soll [s], danach fährt das Programm automatisch gemäß des gewählten Pausemodus fort. Für eine Pause ohne automatisches Fortfahren (Countdowntimer) &#039;0&#039; angeben.&lt;br /&gt;
** Pausemodus &amp;quot;aktuelle Temperatur halten, WarmUp, Fortsetzen&amp;quot; - Ofen hält die Temperatur (Zieltemperatur) des Zeitpunktes als der Pausebutton betätigt wurde. WarmUp bedeutet, dass nach dem Beenden des Pausemodus zunächst die Zieltemperatur wieder erreicht werden &#039;&#039;&#039;muss&#039;&#039;&#039; bevor der nächste Punkt angesteuert wird. Klingt paradox, wenn die Temperatur doch so und so gehalten wird, ist aber nicht so. Die Wahrscheinlichkeit ist hoch, dass der Pausemodus benutzt wird um die Ofentüre zu öffnen und Korrekturen an der Platine vorzunehmen. Unter Umständen ist die Heizung des Ofens jedoch nicht in der Lage den dadurch entstehenden Wärmeverlust zu kompensieren. Fährt das Programm dann sofort fort, so könnten evtl. kritische (Hoch-)Punkte des Lötprofils &amp;quot;unterfahren&amp;quot; werden. Dem wirkt WarmUp entgegen.&lt;br /&gt;
** Pausemodus &amp;quot;aktuelle Temperatur halten, Fortsetzen&amp;quot; - siehe oben, nur ohne WarmUp.&lt;br /&gt;
** Pausemodus &amp;quot;definierte Temperatur halten, WarmUp, Fortsetzen&amp;quot; - siehe oben. Statt der aktuellen Zieltemperatur wird jedoch nun im Pausemodus eine einzustellende Pausetemperatur gehalten. Mit WarmUp.&lt;br /&gt;
** Pausemodus &amp;quot;definierte Temperatur halten, Fortsetzen&amp;quot; - siehe oben, nur ohne WarmUp.&lt;br /&gt;
** &amp;quot;Pausetemperatur&amp;quot; - spezielle Temperatur die bei entsprechender Pausemoduswahl für die Dauer der Pause gehalten wird.&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Ende&amp;quot;&#039;&#039;&#039; - gibt an was am Ende eines durchlaufenen Reflow-Programms passieren soll. Ist der Wiederholungsmodus aktiviert, tritt dieses Ereignis erst nach Durchlauf aller Wiederholungen ein. Folgende Modi sind möglich:&lt;br /&gt;
** automatischer Reset - am Ende des Programms wird alles automatisch zurückgesetzt, alle Graphiken und Anzeigen gelöscht.&lt;br /&gt;
** manueller Reset - am Ende des Programms bleiben alle Anzeigen, Graphiken, etc erhalten und müssen vor Beginn eines neuen Reflowvorgangs händisch durch Klick auf &amp;quot;RESET&amp;quot; zurückgesetzt werden.&lt;br /&gt;
** Benutzermeldung - lässt eine Meldung erscheinen. Alle Anzeigen und Graphiken bleiben erhalten bis der Benutzer diese Meldung bestätigt. Mit Bestätigung dieser Meldung wird ein automatischer Reset vorgenommen.&lt;br /&gt;
&lt;br /&gt;
=== Loggen des Temperaturverlaufes ===&lt;br /&gt;
Es ist möglich jeden Backvorgang in eine CSV-Datei zu loggen. (Software- und PID-Einstellungen). Geloggte CSV-Dateien können eingelesen und im zentralen Temperatur-Zeit-Diagramm begutachtet werden. Ein Ist-Soll-Vergleich ist ebenso möglich wie die direkte Anzeige des Fehlers (&amp;quot;Ist minus Soll&amp;quot;). Dank CSV können die Daten auch mit anderen Programmen (Excel, etc.) weiterverarbeitet werden.&lt;br /&gt;
&lt;br /&gt;
== Ofen / Pizzaofen ==&lt;br /&gt;
=== Leistung und Volumen ===&lt;br /&gt;
* Alls Faustformel wird oft 100W pro Liter Volumen genannt.&lt;br /&gt;
* Ich habe einen sehr preiswerten Ofen gewählt und die &amp;quot;Oberhitze&amp;quot; zusätzlich mit zwei Halogen-Stäben a 300W &amp;quot;verstärkt. Das kostet nicht viel, die Fassung ist für ca. 3 Euro erhältlich, die Halogenstäbe gibt es in jedem Baumarkt. &lt;br /&gt;
* Bezugsquelle Fassung : siehe &amp;quot;Links&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Dämmung ===&lt;br /&gt;
=== Umluft ===&lt;br /&gt;
* Der verwendete Ofen sollte eine Umluftfunktion besitzen, damit sich die Wärme gleichmäßig im Ofen und auf der Leiterplatte verteilen kann.&lt;br /&gt;
&lt;br /&gt;
== FAQ ==&lt;br /&gt;
&lt;br /&gt;
* Q1: Ich habe einen PT100/PT1000 und möchte den anschließen. Geht das?&lt;br /&gt;
** A1: Ja natürlich. Dazu ist aber etwas externe Elektronik notwendig. Sowohl 2 ADC-Pins (mit 3V3 Betriebsspannung als fixe Referenzspannung), als auch die UART und SPI/I2C-Schnittstelle stehen zur freien Verfügung. Für PT100/PT1000 wird für vernünftige Messungen ohnehin eine Verstärkung (meist mit OPV) von Nöten sein. Da der PIC-interne ADC &amp;quot;nur&amp;quot; 10bit Auflösung bietet sollte ein externer 16bit ADC in Betracht gezogen werden um das Potential der PT100/PT1000 auszunutzen.&lt;br /&gt;
*Q2: Ich habe von günstigen Temperaturmessungen mit Dioden gehört. Geht das auch hier?&lt;br /&gt;
**A2: Ja. Die Vorwärtsspannung einer Diode verhält sich linear zur Sperrschichttemperatur. Diese Spannung (bei 25°C einer Si-Diode die bekannten 0,7V) kann mittels OPV verstärkt werden und auf einen Spannungsbereich von 0 ... 3V3 aufgebläht werden. Eine billige Lösung, auf Kosten der Genauigkeit. Doch eine Diode ist laut Datenblatt nur bis 150°C geeignet. Es ist also beim Löten mehr oder weniger Pfusch. Wenn ich schon eine Reflow-Steuerung baue, sollte ich doch nicht an ein paar Euro für eine gescheite Temperaturmessung sparen. Einige Anregungen vom Messgerätehersteller Keithley bzgl. der Halbleiterphysik mit interessanten Formeln [http://www.keithley.de/support/data?asset=50486]. Oder natürlich der Klassiker von Thomas Pfeifer [http://thomaspfeifer.net/backofen_smd_reflow.htm]. Oder ein Beitrag mit LT-Spice Simulation zum Thema [http://www.mikrocontroller.net/topic/270627#2833883].&lt;br /&gt;
* Q3: God why ... ?&lt;br /&gt;
** A3: Because we can !&lt;br /&gt;
* Q4: Ich hab aber noch nie was mit 230V gemacht.&lt;br /&gt;
**A4: Dann würde ich an Deiner Stelle dieses Projekt NICHT nachbauen.&lt;br /&gt;
* Q5: Warum wurde Altium verwendet und nicht Eagle?&lt;br /&gt;
**A5: Weil es uns kostenlos zur Verfügung stand und wesentlich leistungsfähiger ist.&lt;br /&gt;
&lt;br /&gt;
= Verbesserungen Prototyp - Diese haben jedoch keinen Einfluss auf die Funktion der Leiterplatte=&lt;br /&gt;
* Bauteile weiter weg von den Schraublöchern.&lt;br /&gt;
* Dazu Kreis rund um Bohrung auf Bestückdruck.&lt;br /&gt;
* Masseanbindung Quarz.&lt;br /&gt;
* Klemmen weiter weg vom Rand.&lt;br /&gt;
* Klemme und Sicherungshalter weiter auseinander.&lt;br /&gt;
* Bohrungen für Drossel 0,2mm größer machen.&lt;br /&gt;
* Teilenummer für Conrad-USB-Buchse in BOM übernehmen.&lt;br /&gt;
* Stiftleiste P1  weiter weg von P2 und P4.&lt;br /&gt;
* Varistoren näher an Klemmen platzieren.&lt;br /&gt;
* THT-Kondensatoren für Snubber.&lt;br /&gt;
* Ggf. Stiftleistenbelegung für externe Leds so ändern, das keine extra Vorwiderstände notwendig sind.&lt;br /&gt;
* Befestigungsbohrung für Drossel, um diese mit Kabelbinderung oder Schraube fixieren zu können.&lt;br /&gt;
* Pullup-Widerstand bei MCLR doppelt. &lt;br /&gt;
* Power-LED vorsehen.&lt;br /&gt;
* Leiterbahnen etwas weiter weg von den Kühlkörperanschlüssen&lt;br /&gt;
* Designatoren Texte etwas größer machen.&lt;br /&gt;
* Ein vernünftiger GND-Punkt für einen Tastkopf / Messungen / Aligator-Clips vorsehen.&lt;br /&gt;
* Spannungsversorgung doch Onboard? Oder beides?&lt;br /&gt;
* Leds 90 Grad, Frontplattenmontage&lt;br /&gt;
* Taster 90 Grad Frontplattenmontage&lt;br /&gt;
* Termoelemente Frontplattenmontage??? Termoelementstecker?&lt;br /&gt;
* Schaltausgang 230 V kleiner, weniger Leistungsfähig.&lt;br /&gt;
&lt;br /&gt;
= Errata Projekt =&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:red;&amp;quot;&amp;gt; Triac Symbol in Library falsch, dadurch ist T2 mit T1 vertauscht. Abhilfe für Leiterplattenversion V1.0: T1 und T2 &amp;quot;twisten&amp;quot; und jeweils mit Schrumpfschlauch versehen.( Also Beinchen T1 über kreuz mit Beinchen T2 einlöten...)&amp;lt;/span&amp;gt;&lt;br /&gt;
* Beim MOSFET R39 ist die Masseanbindung falsch. Es bestehen drei Möglichkeiten:&lt;br /&gt;
** 1. 0-R-Brücke für R39 einbauen und auf Strombegrenzung verzichten.&lt;br /&gt;
** 2. Eine Polyfuse mit Bauform 1206 einbauen. &lt;br /&gt;
** 3. Das kleine Leiterbahnstückchen zwischen R38 und R39 unterbrechen und statt dessen die Leiterbahn zwischen R39 und der Klemme mit der Durchkontaktierung bei R38 verbinden.&lt;br /&gt;
* LED-Beschriftung passt nicht ganz (Schaltplan Netlabel OUT1,2,3,4 sind durcheinander gekommen) --&amp;gt; Ist im Prinzip ohne Belang, man muss das nur bei der Software berücksichtigen.&lt;br /&gt;
* Schaltplan UNL2003 fehlerhafte Zuordnung IN5,6,7 &amp;lt;&amp;gt; OUT7,6,5 --&amp;gt; Ist im Prinzip ohne Belang, man muss das nur bei der Software berücksichtigen.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* Diskussion: [http://www.mikrocontroller.net/topic/297217 Diskussion]&lt;br /&gt;
* Software: [http://sourceforge.net/projects/reflowofensteue/ Bei Sourceforge]&lt;br /&gt;
* Dextrel Nulldurchgang: [http://www.dextrel.net/diyzerocrosser.htm Nulldurchgangschaltung]&lt;br /&gt;
* Gehäuse Zeichnung: [http://www.hammondmfg.com/pdf/RM2055L.pdf Großes Gehäuse für Steckdosenmontage]&lt;br /&gt;
* Gehäuse Zeichnung: [http://www.hammondmfg.com/pdf/RM2055M.pdf Kleines Gehäuse, keine Steckdosen]&lt;br /&gt;
* Bezugsquelle [http://www.soselectronic.com/?str=371&amp;amp;artnum=73596&amp;amp;name=hammond-ritec-rm2055l Großes Gehäuse Hammond]&lt;br /&gt;
* Bezugsquelle [http://www.soselectronic.com/?str=371&amp;amp;artnum=73595&amp;amp;name=hammond-ritec-rm2055m Kleines Gehäuse Hammond]&lt;br /&gt;
* Bezugsquelle [http://www.druckerzubehoer.de/shop/product/catid/H-UNIVERSALZUBEHOER_HZB/subcatid/UNIVERSALZUBEHOER_GROUP1_HZB/productid/1727063-390722LA/site/1/lng/de_DE Netzteil Mini USB ]&lt;br /&gt;
* Bezugsquelle [http://www.ebay.de/itm/151037292125?ssPageName=STRK:MEWNX:IT&amp;amp;_trksid=p3984.m1497.l2649 Termoelement Ebay (Typ K für ca. 2Euro)]&lt;br /&gt;
* Bezugsquelle [http://www.artcase-shop.de/index.php?page=search&amp;amp;page_action=query&amp;amp;desc=on&amp;amp;sdesc=on&amp;amp;keywords=pce+105&amp;amp;x=0&amp;amp;y=0 Steckdosen für Schalttafeleinbau:]&lt;br /&gt;
* Bezugsquelle [http://www.schaeffer-ag.de/ Frontplatten]&lt;br /&gt;
* Bezugsquelle [http://www.lichtlieferant.de/catalogsearch/result/?q=r7s+fassung+sockel Vossloh Fassung R7S für Halogenstäbe]&lt;br /&gt;
* Datenblatt Prozessor [http://ww1.microchip.com/downloads/en/DeviceDoc/39632e.pdf PIC18LF2550]&lt;br /&gt;
* Umfangreicher Thread u.A. Leistungsvermögen, Temperaturmessung und Dämmung [http://www.mikrocontroller.net/topic/270627]&lt;br /&gt;
[[Kategorie:PIC-Projekte]]&lt;/div&gt;</summary>
		<author><name>Frankman</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=Reflow_Ofen_Steuerung&amp;diff=80583</id>
		<title>Reflow Ofen Steuerung</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=Reflow_Ofen_Steuerung&amp;diff=80583"/>
		<updated>2014-01-03T12:51:14Z</updated>

		<summary type="html">&lt;p&gt;Frankman: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Datei:RFB.jpg|thumb|right|200px|Altium 3D Ansicht]]&lt;br /&gt;
[[Datei:Teilbest2.jpg|750px|teilbestückte Platine]]&lt;br /&gt;
== Einleitung ==&lt;br /&gt;
&lt;br /&gt;
Hier wird eine weitere Reflow-Ofen-Steuerung beschrieben.&lt;br /&gt;
=== Zum Nachbauen ===&lt;br /&gt;
* Spezifikation: [[Datei: Spec Reflow.pdf]]&lt;br /&gt;
* Schaltplan: &lt;br /&gt;
** Minimalversion [[Datei:Schematic Prints Minimal.pdf]]&lt;br /&gt;
** Standardversion [[Datei:Schematic Prints Standard.pdf]]&lt;br /&gt;
** Deluxeversion [[Datei:Schematic Prints Deluxe.pdf]]&lt;br /&gt;
** Debugversion [[Datei:Schematic Prints Debug.pdf]]&lt;br /&gt;
* Gerberdaten: [[Datei:Gerber Reflow.pdf]]&lt;br /&gt;
* Assemblydrawing: [[Datei:Assembly Reflow.pdf]] &lt;br /&gt;
* Altium-Files: [[Datei:Reflow.zip]]&lt;br /&gt;
* Stückliste als CSV: [[Datei:Reflow.csv]]&lt;br /&gt;
* Stückliste als Open Office: [[Datei:Reflow.ods]]&lt;br /&gt;
* PC Programm: TBD&lt;br /&gt;
* Sourcen PC-Programm: TBD&lt;br /&gt;
* PIC Programm (*.hex): [http://sourceforge.net/projects/reflowofensteue/ ]&lt;br /&gt;
* Sourcen Pic-Programm: [http://sourceforge.net/projects/reflowofensteue/ ]&lt;br /&gt;
* Step-File Steckdose:[[Datei:Steckdose.stp]]&lt;br /&gt;
&lt;br /&gt;
=== Motivation ===&lt;br /&gt;
Die Gründe, eine weitere Steuerung zu entwerfen, waren:&lt;br /&gt;
&lt;br /&gt;
* Die Möglichkeit, auch größere Öfen mit 2 Phasen betreiben zu können.&lt;br /&gt;
* Die Steuerung universell zu gestalten. Es sollte möglich sein, diese nicht nur zum Reflow löten zu verwenden....z.B:&lt;br /&gt;
** Temperatursteuerung für Klimakammer (Heizen, Kühlen)&lt;br /&gt;
** Dimmer mit USB&lt;br /&gt;
** Temperaturregler für ein Tisch-Fondue ( Temperatur halten)&lt;br /&gt;
** Drehzahlsteller mit USB&lt;br /&gt;
** Switchpack&lt;br /&gt;
* Die Schaltung sollte in Altium entwickelt werden. (Warum kein Eagle??? Altium User wissen es.... :-)&lt;br /&gt;
* Die Schaltung sollte mit USB ausgestattet sein.&lt;br /&gt;
&lt;br /&gt;
=== Eigenschaften &amp;amp; Spezifikationen ===&lt;br /&gt;
* Temperaturmessung: bis zu 2x &#039;&#039;&#039;Thermoelement&#039;&#039;&#039; (K-Typ) mit MAX6675 (abgekündigt) oder Nachfolger MAX31855 (pin- aber nicht softwarekompatibel)&lt;br /&gt;
* Leistungsstufen: &#039;&#039;&#039;3 voneinander unabhängige&#039;&#039;&#039; Triacs 800V 25A, limitiert auf &#039;&#039;&#039;10A @ 250VAC&#039;&#039;&#039; (z.B. Oberhitze, Unterhitze, Umluft)&lt;br /&gt;
* Nulldurchgangserkennung ermöglicht Wellenpaket-, und Phasenabschnittssteuerung * Galvanische Trennung der Leistungsendstufen&lt;br /&gt;
* 1x MOSFET-Ausgang PWM z.B. für 12V Lüfter, max. &#039;&#039;&#039;55V 3,5A&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;4 feste Programme&#039;&#039;&#039; im EEPROM über 2-Tasterbedienung und LEDs wähl- und ausführbar. &lt;br /&gt;
* &#039;&#039;&#039;PC-unabhängiger Betrieb&#039;&#039;&#039; möglich. &lt;br /&gt;
* Beliebig viele Programme möglich, bei Betrieb am Computer &lt;br /&gt;
* Mini-USB-Buchse zur Steuerung / Programmierung über GUI und zum Entwickeln. - Dafür ist &#039;&#039;&#039;keine Netzspannung&#039;&#039;&#039; erforderlich&lt;br /&gt;
* Günstiges passendes Gehäuse&lt;br /&gt;
* Alle LEDs und Taster auf &#039;&#039;&#039;Stiftleisten&#039;&#039;&#039; herausgeführt, für eigene Gestaltung der Frontblenden&lt;br /&gt;
* PID-Temperaturregler&lt;br /&gt;
* UART, SPI, I2C und 2x ADC auf Stiftleisten herausgeführt, für zukünftige &#039;&#039;&#039;Erweiterungen&#039;&#039;&#039;&lt;br /&gt;
* Versorgung über USB &amp;lt; 100mA, interne Versorgungsspannung 3,3V&lt;br /&gt;
* umfangreiche EMV-gerechte Entstörung für den Bedarfsfall&lt;br /&gt;
&lt;br /&gt;
=== Zusätzliches Benötigtes Material ===&lt;br /&gt;
* Leiterplatte (1 Stück)&lt;br /&gt;
* Gehäuse Hammond Teilenummer: RM2055L (1 Stück)&lt;br /&gt;
* Alternativ:Gehäuse Hammond Teilenummer: RM2055M (Wenn keine Steckdosen angebracht werden sollen)&lt;br /&gt;
* Alternative: Gehäuse Hammond (Hier muss man die Leiterplatte selber befestigen) Teilenummer: 1455T2201 (1 Stück)&lt;br /&gt;
* Einbausteckdosen Teilenummer: PEC 105 (2-3 Stück, je nach Ausbaustufe)&lt;br /&gt;
* PG-Verschraubung (2-3 Stück)&lt;br /&gt;
* Mutter für PG-Verschraubung (2 Stück)&lt;br /&gt;
* Litze blau, mindestens 1,5mm² (ca. 60cm)&lt;br /&gt;
* Litze braun, mindestens 1,5mm² (ca. 60cm) &lt;br /&gt;
* Litze gelb/grün, mindestens 1,5mm² (ca. 60cm)&lt;br /&gt;
* Aderendhülsen  mit Schutzkragen dazu ( 9 Stück für die Steckdosen)&lt;br /&gt;
* Schrauben, um die Leiterplatte zu befestigen (4 Stück)&lt;br /&gt;
* evtl. Abstandsbolzen dazu, falls das alternative Gehäuse verwendet wird (4 Stück)&lt;br /&gt;
* evtl. Muttern dazu, falls das alternative Gehäuse verwendet wird (4 Stück)&lt;br /&gt;
* Schrauben, Senkkopf DIN 7991 oder DIN 965 M4 X 10 um die Steckdosen zu befestigen (12 Stück)&lt;br /&gt;
* Muttern dazu M4 (12 Stück)&lt;br /&gt;
* Federschreiben  dazu DIN 127 M4 (12 Stück)&lt;br /&gt;
* Glimmerscheiben für Triac (2-3 Stück, je nach Ausbaustufe)&lt;br /&gt;
* Isoliernippel für Triacmontage (2-3 Stück, je nach Ausbaustufe)&lt;br /&gt;
* Zylinderkopfschraube M3 X 12 für Triacmontage (2-3 Stück, je nach Ausbaustufe)&lt;br /&gt;
* Mutter M3 für Triacmontage (2-3 Stück, je nach Ausbaustufe)&lt;br /&gt;
* Beilagscheibe M3 für Triacmontage (2-3 Stück, je nach Ausbaustufe)&lt;br /&gt;
* Isolierband für Triacmontage (ca. 300mm)&lt;br /&gt;
* Gummifüße für das Gehäuse (4 Stück)&lt;br /&gt;
&lt;br /&gt;
=== Kühlkörpermontage===&lt;br /&gt;
* Der Kühlköper sollte 38mm hoch sein, so passt er gut in die angegebenen Gehäuse&lt;br /&gt;
* Der Kühlkörper MUSS isoliert montiert werden, also Glimmerscheibe und Isoliernippel einsetzen und NACHMESSEN, ob der Kühlkörper auch wirklich keinen Kontakt zum Triac hat!&lt;br /&gt;
* Da die 230-V-Leiterbahnen nur durch den Stopplack vom Kühlkörper getrennt sind, sollte die Isolation mit zwei Lagen Gewebe- oder Isolierband verstärkt werden. Das Isolierband kann auf die Leiterplatte oder unter den Kühlkörper geklebt werden.&lt;br /&gt;
* Als Bohrungsmaß empfehle ich 20mm über der Leiterplatte.&lt;br /&gt;
* Entweder Bohrung 3,2mm für Durchgangsloch &lt;br /&gt;
* Oder Bohrung 2,5mm mit M3-Gewinde&lt;br /&gt;
&lt;br /&gt;
== Schaltung==&lt;br /&gt;
=== PIC18LF2550 Grundbeschaltung ===&lt;br /&gt;
[[Datei:osc_vs_vcc.png|thumb|right|200px|Taktraten und Versorgungsspannung PIC18F2550 vs. PIC18LF2550, Datenblatt S. 370/438]]&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 3/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Hier kommt ein PIC18&#039;&#039;&#039;L&#039;&#039;&#039;F2550 zum Einsatz. Er verfügt über eine USB-Schnittstelle und ist für Betriebsspannungen von 2 ... 5,5V ausgelegt. Sein Verwandter PIC18F2550 (ohne L) ist nicht für Betriebsspannungen &amp;lt; 4,2V ausgelegt. Dies ist bei USB sowieso nicht immer erfüllt und die Thermoelement-ICs vertragen ohnehin keine 5V, daher wurde die Betriebsspannung auf 3,3V reduziert. Neben Standard-Decoupling (100nF Kerko pro Vcc-Vss-Pärchen) wurde das ICSP-Interface in alt bewährter Pinbelegung (PICKit1,2,3) angebracht. PGD und PGC sind nicht weiter beschaltet, MCRL wird , wie immer als Resetpin verwendet. Der Resetschalter findet sich auf dem Top-Sheet (Schaltplan S. 1/22). Die Taktversorgung erfolgt über einen 24 MHz Quarz (-&amp;gt; USB). Man beachte diesbezüglich rechts stehende Grafik zu Taktraten und Versorgungsspannungen (Vdd bzw. auch Vcc genannt). Auch zu finden im Datenblatt des PICs auf Seite 370.&lt;br /&gt;
&lt;br /&gt;
=== PIC18LF2550 USB Beschaltung ===&lt;br /&gt;
[[Datei:usb_part.png|thumb|right|200px|PIC18(L)F2550&lt;br /&gt;
 Standard &lt;br /&gt;
USB-Beschaltung am PIC]]&lt;br /&gt;
[[Datei:usb_protect.png|thumb|right|200px|USB-Schutzbeschaltung und Mini-USB-Buchse]]&lt;br /&gt;
&lt;br /&gt;
Die Beschaltung der USB-Schnittstelle am PIC ist 1:1 aus dem Datenblatt übernommen. Zum Einsatz kommt eine Mini-USB-Buchse (J1).&lt;br /&gt;
Der Gedanke war: Erstens ein sehr preiswertes, fertiges Netzteil verwenden zu können, (ca. 3,67 € bei druckerzubehoer.de) und zweitens, die Steuerung auch mit dem PC / Laptop versorgen zu können.&lt;br /&gt;
Somit kann die Schaltung OHNE 230V betrieben und debuggt werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 4/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
FER1,2 und C7 filtern den Schirm nach GND. Standardmäßig wird man hier wohl 0-Ohm-Widerstände einsetzen. Falls ein Besuch im EMV-Labor geplant ist, weicht man auf den Ferrit aus. C5 und C6 filtern das Signal zusammen mit der Common-Mode-DrosselL1. Die Drossel kann mit den 0-Ohm-Brücken R8 und R9 überbrückt (gespart) werden. IC2 ist als ESD-Schutz gedacht und kann ebenfalls bei ausgeprägten Kostenbewustsein gespart werden. Die Widerstände R6 und R7 dürfen NICHT bestückt werden. FER1,2, C5, IC2 müssen nicht zwingend bestückt werden. Die Bestückung wurde vorgehalten um im Problemfall einfache Abhilfe schaffen zu können.&lt;br /&gt;
&lt;br /&gt;
=== 3,3V Spannungsversorgung ===&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 2/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Die 3,3V Versorgungsspannung für die gesamte Platine wird aus V_USB mittels des LDO Spannungsreglers TOREX - XC6206P332MR abgeleitet. Günstig, SOT-23, klein, 2x 1µF Kondensatoren benötigt, 3,3V max. 250mA. Der hat auch einen sehr kleinen Ruhestrom.&lt;br /&gt;
&lt;br /&gt;
=== Taster ===&lt;br /&gt;
*Der Resettaster zieht den MCLR-Pin nach GND und löst damit den Reset aus. MCLR  ist mit einem 10k Pullup versehen.&lt;br /&gt;
*Die übrigen beiden Taster ziehen RA4 bzw. RB5 ebenfalls nach GND.&lt;br /&gt;
&lt;br /&gt;
=== LEDs + ULN2003L ===&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 11/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Um alle LEDs auf der Platine (3x Optotriac + 7x Status) ansteuern zu können wurde auf das 7fach Darlington-Array ULN2003L zurückgegriffen. Die PIC-Ausgänge könnten zwar die LEDs direkt steueren. Aber so werden alle Ausgänge einheitlich nach Masse geschaltet. Das verbessert die Testbarkeit der ganzen Platine. ( Mit einem kurzen Masse-Draht kann zur Not der entsprechende Ausgang gesetzt werden, ohne etwas zu zerstören.)&lt;br /&gt;
&lt;br /&gt;
=== MOSFET-Leistungsausgang ===&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 22/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Hier kommt der einfacher N-Kanal MOSFET (LogicLevel) PHT8N06LT zum Einsatz. Er wird über das ULN2003L Array getrieben und ermöglicht den Anschluss eines DC-Verbrauchers mit max. 55V bei 3,5A. Hier könnte beispielsweise ein PC-Lüfter zur Kühlung oder für Umluft angeschlossen und über PWM geregelt/gesteuert werden. Ein Gatewiderstand von 100 Ohm ist zum Schutz des Treibers vorgesehen. Eine 0-Ohm-Brücke ist stattdessen aber auch möglich, wenn man eine höhere Leistung schalten möchte.Die Leiterbahnen sollten die 3A schon hergeben. Der 100 Ohm Widerstand bildet eine Stromquelle. Sobald der Strom durch den MOSFET und den Widerstand 33mA erreicht, sinkt UGS gegen 0 V. Folge: Der Mosfet sperrt ( und bleibt ganz....)&lt;br /&gt;
Es kann hier prinzipiell auch ein anderer Mosfet im SOT223-Gehäuse zum Einsatz kommen. Achten sollte man darauf, das der MOSFET schon bei 3,3V Ugs gut leiten sollte.&lt;br /&gt;
&lt;br /&gt;
=== Nulldurchgangserkennung ===&lt;br /&gt;
[[Datei:zerocross.png|thumb|right|200px|Nulldurchgangserkennung]]&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 5/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Die Nulldurchgangserkennung erfolgt nach einer sehr bekannten - jedoch ausgeklügelten - Schaltung.  [http://www.dextrel.net/diyzerocrosser.htm siehe: Dextrel]&lt;br /&gt;
Während einer Halbwelle wird C14 über R33 und R35 bzw. D5 geladen. Währenddessen ist T1 gesperrt. Sobald die Wechselspannung (L1-N über Spannungsteiler (R33+R35) / R34) kleiner ist als die Spannung über C14, steuert T1 durch. Dann entlädt sich C14 über den LED-Vorwiderstand R32. Der durch-steuernde Optokoppler zieht die Sync-Leitung nach GND. (Pullup Sync-Leitung = R31). Dies löst beim PIC auf INT2 einen Interrupt aus. &lt;br /&gt;
Dieser Interrupt ermöglicht eine präzise Wellenpaket-, Phasenanschnittsteuerung je nach Bedarf. Das Schalten im Nulldurchgang bei der Wellenpaketsteuerung reduziert EMV-Störungen. Für Phasenanschnitt ist ohnehin eine Nulldurchgangserkennung notwendig. Außerdem liefert sie eine genaue Zeitbasis für alle Programmabläufe.&lt;br /&gt;
&lt;br /&gt;
=== Triac-Ausgänge + Snubber ===&lt;br /&gt;
[[Datei:triac.png|thumb|right|200px|Triac-Ausgangsbeschaltung]]&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 19,20,21/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Die Ansteuerung des eigentlichen Leistungstriacs BTA140-800 erfolgt über den Optotriac IS6005. Der Strom durch Letzteren wird durch R1x limitiert (Vorwiderstand). R2x und R5x limitieren wiederum den Strom durch den Optotriac. Wenn dieser zündet so folgt unmittelbar der &amp;quot;Leistungstriac&amp;quot; der dann die Last schaltet.&lt;br /&gt;
&lt;br /&gt;
S1x ist ein Sicherungshalter um die Lasten einzeln absichern zu können. Wert 10A Mittelträge.&lt;br /&gt;
&lt;br /&gt;
R3x, R4x, C3x bilden ein Snubber-Network, L1X verhindert eine zu schnelle Stromanstiegsgeschwindikeit damit der Triac nicht &amp;quot;von selbst&amp;quot; zündet. Weglassen äußert sich meist in einem fast nicht hörbaren Click. Damit zeigt einem dann der Triac, dass er ab jetzt für immer recht niederohmig geworden ist. Die Regelung der Temperatur braucht dann nicht mehr über den Prozessor erfolgen, sondern nur noch mit dem Ein-/Ausschalter..... :-)&lt;br /&gt;
&lt;br /&gt;
=== Thermoelemente (MAX6675/MAX31855)  ===&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 6,7/22&#039;&#039;&#039;&lt;br /&gt;
Der inzwischen abgekündigte MAX6675 bzw. sein ehrenwerter Nachfolger MAX31855 sind einfach zu handhabende Thermoelement-ICs mit Kaltstellenkompensation. Thermoelemente funktionieren durch das Verschweißen zweier verschiedener Legierungen (beim K-Typ Thermoelemnt Ni und CrNi). Durch den durch die Umgebungstemperatur bedingten Wärmefluss zwischen beiden entsteht ein elektrische Spannung. Diese wird von besagten ICs verstärkt und digitalisiert (ADC). Diese Spannung / Temperatur ist natürlich wieder relativ zur Umgebungstemperatur an der Kaltstelle (Kontaktierung der beiden Drähte mit dem Messinstrument). Daher messen diese ICs auch gleich die Umgebungstemperatur (Kaltstellenkompensation genannt) mit, verrechnen das und geben das Ergebnis auf der SPI-Schnittstelle aus. MAX6675 leistet 12bit also 0,25°C Auflösung (nicht Genauigkeit!) über einen Temperaturbereich von 0°C to +1024°C. Außerdem wird ein nicht/fehlerhaft angeschlossenes Thermoelement erkannt. Der Thermocouple-IC wird an die SPI-Schnittstelle des PICs angeschlossen (hier MSSP genannt). &lt;br /&gt;
&lt;br /&gt;
MAX6675 und MAX31855 scheinen entgegen der Adafruit-Information [http://www.adafruit.com/products/269] doch pinkompatibel zu sein - die Ansteuerung unterscheidet sich jedoch definitiv. (Zitat: &amp;quot;Now uses the MAX31855K instead of the MAX6675, so it can measure a wider temperature measurement range. Please note! the MAX31855 is not pin compatible or drop-in code compatible with the MAX6675. We do have an Arduino library for both chips but you&#039;ll need to adjust any existing MAX6675 designs for the mew MAX31855. The MAX6675 has been discontinued by Maxim.&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Es wurden 2 dieser ICs und damit 2 Temperaturmessstellen vorgesehen. Dies ermöglich die Messung für eine Regelung der Temperatur so wie eine zusätzliche Überwachung kritischer Bauteile (z.B. ICs oder LEDs). Die Minimalbestückung sieht einen MAX6675/MAX31855 vor. Die Auswahl in der Firmware erfolgt über einen der beiden GPIO-Pins RA5 oder RA0 via dem ChipSelect (CS) des MAX6675/MAX31855.&lt;br /&gt;
&lt;br /&gt;
Neben dem MAX6675/MAX31855 wurde ein Decoupling-Kondensator (C8x, Standard 100nF) so wie ein weiterer im Messpfad (C9x) zur Zwecken der Entstörung vorgeshen. C9x 100nF sollte nur bestückt werden wenn Probleme bei der Temperaturmessung entstehen (z.B. unrealstisch stark schwankende Werte).&lt;br /&gt;
&lt;br /&gt;
=== ADC, SPI, UART &amp;amp; I2C Stiftleiste ===&lt;br /&gt;
ADC, SPI, UART und I2C sind zu Zwecken der Kalibrierung / Erweiterung / Einstellung / Debugging auf Stiftleisten herausgeführt:&lt;br /&gt;
Ähnlichkeiten mit dem FTDI-USB-TTL-Kabel bzw. Arduino XXX Bla Bla Bla Schnittstellenkonverter sind natürlich rein zufällig.&lt;br /&gt;
&lt;br /&gt;
Die I2C-Schnittstelle wurde auf eine Stiftleiste geführt, um z.B. einem LM75 o.ä. anschließen zu können. Damit stehen zur Kalibrierung der Thermoelemente genaue Temperaturen zur Verfügung.&lt;br /&gt;
&lt;br /&gt;
Die Stiftleisten haben alle ein Raster von 2,54mm. So können Pin-Header, Wannenstecker oder ähnliches verwendet werden.&lt;br /&gt;
&lt;br /&gt;
Da ja viele Leute eigene Vorstellungen bezüglich der Frontplattengestaltung haben, wurden auch die Taster und LEDs auf Stiftleisten geführt.&lt;br /&gt;
&lt;br /&gt;
=== Kühlkörper ===&lt;br /&gt;
Da die Triacs der Steuerung für bis zu 10A pro Kanal ausgelegt sind, kann man auf die Kühlkörper nicht verzichten. Es fallen bei 10A bis zu 13 Watt Wärme pro Triac ab. Falls mann auf die Kühlkörper doch verzichten möchte, sollte man darauf achten, die Triacs mit dem Kopf nach unten einzubauen. Diese können sich dann bei Überlast ganz von selber auslöten.... :-)&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red;&amp;quot;&amp;gt; Die Triacs müssen mit Glimmerscheibe und Isoliernippel -ALSO ISOLIERT ZUM KÜHLKÖRPER- montiert werden.&lt;br /&gt;
Außerdem muss unter dem Kühlkörper ein Stück Isolierband oder FR4 oder Nylon-Scheiben beigelegt werden, um zu verhindern, dass der Stopplack der Leiterplatte beschädigt wird. In diesem Falle hätte man Potential auf dem Kühlkörper.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Gehäuse ===&lt;br /&gt;
Die Leiterplatte wurde für ein Gehäuse von Hammond entwickelt.&lt;br /&gt;
Das Gehäuse ist zwar keine Schönheit, aber doch recht preiswert.&lt;br /&gt;
Typenbezeichnung: RM2055M oder etwas größer RM2055L&lt;br /&gt;
&lt;br /&gt;
== Firmware PIC ==&lt;br /&gt;
* Die Entwicklung der Firmware für den PIC18LF2550  erfolgt mit MPLABX und dem C18 Compiler. &lt;br /&gt;
* MPLABX ist kostenlos, der C18 Compiler bis auf die stärkste Optimierungsstufe ebenfalls. &lt;br /&gt;
* Die Quellen für die Firmware sind offengelegt und können von Sourceforge bezogen werden, siehe Links, weiter unten.&lt;br /&gt;
&lt;br /&gt;
=== Programmstruktur- und ablauf ===&lt;br /&gt;
Nach anfänglicher Initialisierung des PIC startet die Statemachine [http://http://www.mikrocontroller.net/articles/Statemachine] [http://http://de.wikipedia.org/wiki/Endlicher_Automat]. Neben ihr findet in der main-Funktion nur noch die Abfrage der beiden Bedientasten statt. Mit dem Tastendruck wird zum Zwecke der Entprellung ein Timer gestartet. Alles Andere (incl. PID-Regelung, Wellenpaket- bzw. Phasenan- und Phasenabschnittssteuerung und USB) ist interruptbasiert.&lt;br /&gt;
=== Reflow-Ofen-Konfiguration ===&lt;br /&gt;
&lt;br /&gt;
=== Taktversorgung, Nulldurchgangserkennung und Zeitbasis ===&lt;br /&gt;
=== USB ===&lt;br /&gt;
=== SPI für MAX6675 ===&lt;br /&gt;
=== SPI für MAX31855 ===&lt;br /&gt;
&lt;br /&gt;
=== Wellenpaketsteuerung ===&lt;br /&gt;
=== Phasenanschnitt ===&lt;br /&gt;
&lt;br /&gt;
=== PWM für MOSFET ===&lt;br /&gt;
=== PIC-Configword ===&lt;br /&gt;
&lt;br /&gt;
=== Zuordnung Outputs ===&lt;br /&gt;
[[Datei:pinning.png|thumb|right|400px|Input/Output-Funktions-Tabelle]]&lt;br /&gt;
&lt;br /&gt;
*In1 = RC2 = PIN13 = ULN5--&amp;gt;12 = OUT1 = PWM &lt;br /&gt;
*In2 = RB3 = PIN24 = ULN6--&amp;gt;11 = OUT2 = TRIAC_A (1) = K5&lt;br /&gt;
*In3 = RB4 = PIN25 = ULN7--&amp;gt;10 = OUT3 = TRIAC_B (2)= K2&lt;br /&gt;
*In4 = RA2 = PIN4  = ULN4--&amp;gt;13 = OUT4 = LED_PRG1 = OPTO D&lt;br /&gt;
*In5 = RC0 = PIN11 = ULN3--&amp;gt;14 = OUT6 = LED_PRG2 = OPTO F&lt;br /&gt;
*In6 = RC1 = PIN12 = ULN2--&amp;gt;15 = OUT7 = LED_PRG3 = OPTO G&lt;br /&gt;
*In7 = RA3 = PIN5  = ULN1--&amp;gt;16 = OUT5 = LED_PRG4 = OPT= E&lt;br /&gt;
&lt;br /&gt;
TRIAC1 ist nahe dem Zerocross&lt;br /&gt;
&lt;br /&gt;
== PC-Software (GUI) ==&lt;br /&gt;
[[Datei:gui_alpha.png|thumb|right|300px|Screenshot der GUI (noch Alpha) für den Reflow-Ofen-Controller]]&lt;br /&gt;
&lt;br /&gt;
Die GUI (englisch Graphical User Interface) ist der Einfachheit halber in VB.net programmiert und momentan noch im Alpha-Stadium. Auch hierfür liegen die Quellen später selbstverständlich offen.&lt;br /&gt;
&lt;br /&gt;
=== Funktionen und Modi ===&lt;br /&gt;
[[Datei:modi.png|thumb|right|400px|Auswahl der beschriebenen Modi durch Klick]]&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Ofen-Profil&amp;quot;&#039;&#039;&#039; - Es wird ein Programm (Temperaturkurve) aus dem EEPROM des Reflow-Ofens ausgeführt. Der Backvorgang kann mit der Software gesteuert (START, STOP, ...) und überwacht werden. Hierzu stehen Temperatur, Temperaturänderung, Heizleistung (Ober- und Unterhitze, Lüfter) so wie die graphische Darstellung im zentralen Diagramm zur Verfügung. Eingriffsmöglichkeiten, wie das Ändern der Temperaturkurve sind nicht vorgesehen. Dies soll ein reiner Überwachungs-Modus sein. Um die Temperaturkurve zu verändern zu können, sollte der Modus &amp;quot;PC-Profil&amp;quot; verwendet werden und die Temperaturkurve aus dem EEPROM importiert werden. Dann kann Selbige auch verändert und anschließend ausgeführt bzw. verändert in den EEPROM zurückgeschrieben werden. Dieser Modus stellt ein Äquivalent zur START/STOP-Tasten-Bedienung an der Platine dar und kann selbstverständlich parallel dazu genutzt werden. Die GUI also als Addon zum Stand-Alone-Betrieb.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;PC-Profil&amp;quot;&#039;&#039;&#039; - Es wird ein Programm (Temperaturkurve) ausgeführt welche zuvor am Computer erstellt / editiert wurde. In diesem Modus gibt der Computer Temperaturwerte vor, welche live über die USB-Schnittstelle zum PIC übertragen werden und mit dem dort integrierten PID-Regler ausgeführt werden. Das ermöglicht eine on-the-fly Veränderung der Temperaturkurve während des Backvorgangs. Temperaturkurven können aus Dateien oder dem EEPROM importiert und auch wieder exportiert werden. CSV-Dateien können ebenfalls importiert und exportiert werden. Die &amp;quot;Eingabe&amp;quot; der Temperaturkurve erfolgt entweder über Import (CSV/EEPROM), per Mausklick auf dem zentralen Diagramm oder im sog. DataGridView. Weiteres siehe Unterpunkt &amp;quot;Eingabe der Temperaturkurve (Reflowprofil)&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;manueller Ablauf&amp;quot;&#039;&#039;&#039; - In diesem Modus wird (im Gegensatz zu den oberen beiden Modi &amp;quot;Ofen-Profil&amp;quot; und &amp;quot;PC-Profil&amp;quot;) keine Temperatur geregelt. Hier wird die Leistung des Ofens in % eingestellt und gesteuert. Der PID-Regler ist nicht in Aktion. Die Temperatur, Temperaturänderung so wie der Temperaturverlauf werden selbstredend angezeigt bzw. im Diagramm dargestellt. Der Modus &amp;quot;manueller Ablauf&amp;quot; fährt ähnlich dem Modus &amp;quot;PC-Profil&amp;quot; die im DataGridView eingetragenen Leistungs-Zeit-Punkte ab. Für jeden Zeitpunkt ist eine Leistung vorgegeben. Die Eingabe erfolgt ähnlich wie unter &amp;quot;Eingabe der Temperaturkurve (Reflowprofil)&amp;quot; beschrieben. Nur eben, dass eine Leistung und keine Temperatur angegeben wird. Die Eingabe der Leistung kann nicht im Zeit-Temperatur-Diagramm erfolgen sondern mittels der Schieberegler oder direkt tabellarisch.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;manueller Modus&amp;quot;&#039;&#039;&#039; - Dieser Modus enthält 2 Submodi&lt;br /&gt;
** &amp;quot;manueller Leistungsmodus&amp;quot; - Auch in diesem Modus wird die Leistung gesteuert. Es wird keine Temperatur geregelt, der PID-Regler für die Temperatur ist nicht in Betrieb. Die Einstellung hier erfolgt über die drei Schieberegler oder über eine numerische Eingabe durch Klick auf die Leistungsangabe unter dem Schieberegler. Durch Klick auf die Texte &amp;quot;TOP&amp;quot;, &amp;quot;BOTTOM&amp;quot;, &amp;quot;FAN&amp;quot; (Oberhitze, Unterhitze, Lüfter) können selbige deaktiviert bzw. aktiviert werden. Auch in diesem Modus wird Temperatur, Temperaturänderung so wie der Temperaturverlauf dargestellt.&lt;br /&gt;
** &amp;quot;manueller Temperaturmodus&amp;quot; - Hier wird die Temperatur wieder mittels des Temperatur-PIDs geregelt. Die Temperatur wird entweder mittels Schieberegler (Ober- und Unterhitze-Regler sind jetzt gekoppelt) oder durch eine numerische Eingabe unterhalb der Schieberegler vorgegeben. Anzeige wie im &amp;quot;manuellen Leistungsmodus&amp;quot;. Der Lüfter kann unabhängig vom PID in seiner Leistung geregelt werden. Ein evtl. durch den Luftstrom verursachter Temperaturabfall wird vom PID selbstverständlich ausgeregelt (aus diesem Grunde ist es ja ein Regler).&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Programmieren&amp;quot;&#039;&#039;&#039; - Hier kann ein neues &#039;&#039;&#039;Temperatur&#039;&#039;&#039;-Programm für den EEPROM-Speicher des Ofens erstellt und editiert werden. Die Eingabemöglichkeiten sind unter &amp;quot;Eingabe der Temperaturkurve (Reflowprofil)&amp;quot; beschrieben. Dieser Modus ist zum reinen Programmieren des Ofens gedacht und ermöglicht keine weitere Steuerung oder Überwachung des Ofens.&lt;br /&gt;
&lt;br /&gt;
=== Eingabe der Temperaturkurve (Reflowprofil) ===&lt;br /&gt;
[[Datei:datagridview.png|thumb|right|400px|tabellarische Anzeige und Editiermöglichkeit der Temperaturkurve]]&lt;br /&gt;
Die Eingabe der Temperaturkurve erfolgt entweder über Import (CSV/EEPROM), per Mausklick auf dem zentralen Diagramm oder im sog. DataGridView (Excel-ähnliche Bedienung in tabellarischer Form). &lt;br /&gt;
&lt;br /&gt;
* CSV-Import + Export&lt;br /&gt;
* EEPROM-Import + Export&lt;br /&gt;
* Im rechts stehenden Screenshotbeispiel wird eine tabellarische Eingabeform mit einem DataGridView gezeigt: Die Temperatur (erster Temperaturpunkt = Punkt 0) von 100°C wird linear über einen Zeitraum von 0-30s verteilt. Bei 30s hat der Ofen die Temperatur von 100°C. Dafür setzt die Regelung die Oberhitze, die Unterhitze ein. Der Lüfter ist deaktiviert. In der Zeit von 30s bis 120s wird die Temperatur nun von 100°C auf 150°C linear angehoben. Von 120s bis 180s Backzeit steigt die Temperatur von 150°C auf 250°C. Von 180s bis 200s wird die Temperatur auf 280°C angehoben. Anschließend wird sie zwischen 200s und 220s auf 280°C gehalten (280°C@200s und 280°C@220s) um dann bis 240s wieder auf 250°C zu fallen. Bis zum Zeitpunkt 300s wird dann die Temperatur 30°C angestrebt. Zusätzlich ist der Lüfter nun aktiviert (soweit der Ofen eine Umluftfunktion besitzt). Bei Punkt 7 sind Ober- und Unterhitze deaktiviert nur noch der Lüfter kühlt. Da hier bei &amp;quot;Zeit[s]&amp;quot; die 0 eingetragen wird der Zustand (hier nur Lüfter an) für einen unendlich langen Zeitraum auf 0 gehalten. Also so lange wie das Programm aktiviert ist wird der Lüfter laufen. Natürlich könnte man hier auch z.B. 100°C und Zeitpunkt 0s eintragen. Dann würde der Ofen bis zum manuellen Beenden des Programms (klick auf STOP-Button oder Drücken des START/STOP-Tasters auf der Platine/Steuerung) 100°C halten.&lt;br /&gt;
* Alle Zellen des DataGridView sind editierbar (zur Veränderung der Temperatur, Zeitpunkt, ...)&lt;br /&gt;
* Direkter Klick auf das zentrale Temperatur-Zeit-Diagramm trägt den Zeitpunkt so wie die Temperatur unter dem Mauszeiger in die Tabelle (das DataGridView) ein. Die ausgewählte Zeile wird beschrieben oder überschrieben. Neue Zeilen (also Temperatur-Zeit-Punkte) können durch klick auf den &amp;quot;Plus-Button&amp;quot; hinzugefügt werden. Ebenso ist das Löschen oder Verschieben einer oder mehrerer Zeile gleichzeitig möglich.&lt;br /&gt;
&lt;br /&gt;
=== Beschreibung der Steuerungsmöglichkeiten ===&lt;br /&gt;
In Abhängigkeit des gewählten Modus bestehen einige Steuerungs-, Einstellungs- und Kontrollmöglichkeiten:&lt;br /&gt;
* &#039;&#039;&#039;Schieberegler&#039;&#039;&#039; für Temperatur od. Leistung (je nach Modus) für Oberhitze, Unterhitze und Lüfter. Je nach Hardwareausführung. &lt;br /&gt;
** Klick auf &amp;quot;TOP&amp;quot;, &amp;quot;BOTTOM&amp;quot; oder &amp;quot;FAN&amp;quot; aktiviert oder deaktiviert die entsprechende Funktion bzw. Hardware.&lt;br /&gt;
** Numerische Eingabe der Werte für die Schieberegler durch Klick auf die Anzeige unterhalb der Schieberegler. Werte können auch im deaktivierten Zustand angegeben werden. Die Übernahme erfolgt durch den &amp;quot;Aktivierungsklick&amp;quot; auf &amp;quot;TOP&amp;quot;, &amp;quot;BOTTOM&amp;quot; oder &amp;quot;FAN&amp;quot;&lt;br /&gt;
* &#039;&#039;&#039;T1, dT1, T2, dT2&#039;&#039;&#039; - Anzeige der gemessenen Temperatur so wie die momentane Temperaturänderung am jeweiligen Sensor. &lt;br /&gt;
* &#039;&#039;&#039;Bedienbuttons&#039;&#039;&#039;&lt;br /&gt;
** Play - Startet das Programm am angegebenen Startpunkt (siehe unten)&lt;br /&gt;
** Pause - Pausiert das Programm - weitere Pauseoptionen siehe unten&lt;br /&gt;
** Stop - Stopt den Programmablauf&lt;br /&gt;
** Vor / Zurück - Springt zwischen Temperaturpunkten hin und her. Dient zum überspringen oder zurückspringen zu gewissen Temperatur-Zeit-Punkten. Ermöglicht z.B. das Überspringen eines Ablaufes der eine lange Preheat- oder Dryphase hat.&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Status&amp;quot;&#039;&#039;&#039; - zeigt den aktuellen Zustand des Programms an (READY, START, WAITING, PAUSE, ...)&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;RESET&amp;quot;&#039;&#039;&#039; - setzt das (begonnene) Programm zurück. Beinhaltet neben dem Programmablauf auch das Zurücksetzen der graphischen Anzeige des Diagramms, etc.&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Startpunkt&amp;quot;&#039;&#039;&#039; - legt den ersten Punkt des Programmablaufes fest. &lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Wiederholungen&amp;quot;&#039;&#039;&#039; - ermöglicht das wiederholte Backen ohne das Programm händisch immer wieder neu starten zu müssen. Die Anzahl der Wiederholungen ist einstellbar (0 für unendlich viele) und es ist eine Wartezeit zwischen den Wiederholungen einstellbar. Alternativ kann eine Meldung nach jedem vollendeten Backvorgang abgegeben werden. Nach Bestätigung dieser wird die nächste Wiederholung ausgeführt.&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Pause&amp;quot;&#039;&#039;&#039; - Pauseneinstellungen. Hier sind Optionen wählbar was passieren soll, falls der Pausebutton betätigt wird:&lt;br /&gt;
** Pausezeit - gibt an wie lange die Pause dauern soll [s], danach fährt das Programm automatisch gemäß des gewählten Pausemodus fort. Für eine Pause ohne automatisches Fortfahren (Countdowntimer) &#039;0&#039; angeben.&lt;br /&gt;
** Pausemodus &amp;quot;aktuelle Temperatur halten, WarmUp, Fortsetzen&amp;quot; - Ofen hält die Temperatur (Zieltemperatur) des Zeitpunktes als der Pausebutton betätigt wurde. WarmUp bedeutet, dass nach dem Beenden des Pausemodus zunächst die Zieltemperatur wieder erreicht werden &#039;&#039;&#039;muss&#039;&#039;&#039; bevor der nächste Punkt angesteuert wird. Klingt paradox, wenn die Temperatur doch so und so gehalten wird, ist aber nicht so. Die Wahrscheinlichkeit ist hoch, dass der Pausemodus benutzt wird um die Ofentüre zu öffnen und Korrekturen an der Platine vorzunehmen. Unter Umständen ist die Heizung des Ofens jedoch nicht in der Lage den dadurch entstehenden Wärmeverlust zu kompensieren. Fährt das Programm dann sofort fort, so könnten evtl. kritische (Hoch-)Punkte des Lötprofils &amp;quot;unterfahren&amp;quot; werden. Dem wirkt WarmUp entgegen.&lt;br /&gt;
** Pausemodus &amp;quot;aktuelle Temperatur halten, Fortsetzen&amp;quot; - siehe oben, nur ohne WarmUp.&lt;br /&gt;
** Pausemodus &amp;quot;definierte Temperatur halten, WarmUp, Fortsetzen&amp;quot; - siehe oben. Statt der aktuellen Zieltemperatur wird jedoch nun im Pausemodus eine einzustellende Pausetemperatur gehalten. Mit WarmUp.&lt;br /&gt;
** Pausemodus &amp;quot;definierte Temperatur halten, Fortsetzen&amp;quot; - siehe oben, nur ohne WarmUp.&lt;br /&gt;
** &amp;quot;Pausetemperatur&amp;quot; - spezielle Temperatur die bei entsprechender Pausemoduswahl für die Dauer der Pause gehalten wird.&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Ende&amp;quot;&#039;&#039;&#039; - gibt an was am Ende eines durchlaufenen Reflow-Programms passieren soll. Ist der Wiederholungsmodus aktiviert, tritt dieses Ereignis erst nach Durchlauf aller Wiederholungen ein. Folgende Modi sind möglich:&lt;br /&gt;
** automatischer Reset - am Ende des Programms wird alles automatisch zurückgesetzt, alle Graphiken und Anzeigen gelöscht.&lt;br /&gt;
** manueller Reset - am Ende des Programms bleiben alle Anzeigen, Graphiken, etc erhalten und müssen vor Beginn eines neuen Reflowvorgangs händisch durch Klick auf &amp;quot;RESET&amp;quot; zurückgesetzt werden.&lt;br /&gt;
** Benutzermeldung - lässt eine Meldung erscheinen. Alle Anzeigen und Graphiken bleiben erhalten bis der Benutzer diese Meldung bestätigt. Mit Bestätigung dieser Meldung wird ein automatischer Reset vorgenommen.&lt;br /&gt;
&lt;br /&gt;
=== Loggen des Temperaturverlaufes ===&lt;br /&gt;
Es ist möglich jeden Backvorgang in eine CSV-Datei zu loggen. (Software- und PID-Einstellungen). Geloggte CSV-Dateien können eingelesen und im zentralen Temperatur-Zeit-Diagramm begutachtet werden. Ein Ist-Soll-Vergleich ist ebenso möglich wie die direkte Anzeige des Fehlers (&amp;quot;Ist minus Soll&amp;quot;). Dank CSV können die Daten auch mit anderen Programmen (Excel, etc.) weiterverarbeitet werden.&lt;br /&gt;
&lt;br /&gt;
== Ofen / Pizzaofen ==&lt;br /&gt;
=== Leistung und Volumen ===&lt;br /&gt;
* Alls Faustformel wird oft 100W pro Liter Volumen genannt.&lt;br /&gt;
* Ich habe einen sehr preiswerten Ofen gewählt und die &amp;quot;Oberhitze&amp;quot; zusätzlich mit zwei Halogen-Stäben a 300W &amp;quot;verstärkt. Das kostet nicht viel, die Fassung ist für ca. 3 Euro erhältlich, die Halogenstäbe gibt es in jedem Baumarkt. &lt;br /&gt;
* Bezugsquelle Fassung : siehe &amp;quot;Links&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Dämmung ===&lt;br /&gt;
=== Umluft ===&lt;br /&gt;
* Der verwendete Ofen sollte eine Umluftfunktion besitzen, damit sich die Wärme gleichmäßig im Ofen und auf der Leiterplatte verteilen kann.&lt;br /&gt;
&lt;br /&gt;
== FAQ ==&lt;br /&gt;
&lt;br /&gt;
* Q1: Ich habe einen PT100/PT1000 und möchte den anschließen. Geht das?&lt;br /&gt;
** A1: Ja natürlich. Dazu ist aber etwas externe Elektronik notwendig. Sowohl 2 ADC-Pins (mit 3V3 Betriebsspannung als fixe Referenzspannung), als auch die UART und SPI/I2C-Schnittstelle stehen zur freien Verfügung. Für PT100/PT1000 wird für vernünftige Messungen ohnehin eine Verstärkung (meist mit OPV) von Nöten sein. Da der PIC-interne ADC &amp;quot;nur&amp;quot; 10bit Auflösung bietet sollte ein externer 16bit ADC in Betracht gezogen werden um das Potential der PT100/PT1000 auszunutzen.&lt;br /&gt;
*Q2: Ich habe von günstigen Temperaturmessungen mit Dioden gehört. Geht das auch hier?&lt;br /&gt;
**A2: Ja. Die Vorwärtsspannung einer Diode verhält sich linear zur Sperrschichttemperatur. Diese Spannung (bei 25°C einer Si-Diode die bekannten 0,7V) kann mittels OPV verstärkt werden und auf einen Spannungsbereich von 0 ... 3V3 aufgebläht werden. Eine billige Lösung, auf Kosten der Genauigkeit. Doch eine Diode ist laut Datenblatt nur bis 150°C geeignet. Es ist also beim Löten mehr oder weniger Pfusch. Wenn ich schon eine Reflow-Steuerung baue, sollte ich doch nicht an ein paar Euro für eine gescheite Temperaturmessung sparen. Einige Anregungen vom Messgerätehersteller Keithley bzgl. der Halbleiterphysik mit interessanten Formeln [http://www.keithley.de/support/data?asset=50486]. Oder natürlich der Klassiker von Thomas Pfeifer [http://thomaspfeifer.net/backofen_smd_reflow.htm]. Oder ein Beitrag mit LT-Spice Simulation zum Thema [http://www.mikrocontroller.net/topic/270627#2833883].&lt;br /&gt;
* Q3: God why ... ?&lt;br /&gt;
** A3: Because we can !&lt;br /&gt;
* Q4: Ich hab aber noch nie was mit 230V gemacht.&lt;br /&gt;
**A4: Dann würde ich an Deiner Stelle dieses Projekt NICHT nachbauen.&lt;br /&gt;
* Q5: Warum wurde Altium verwendet und nicht Eagle?&lt;br /&gt;
**A5: Weil es uns kostenlos zur Verfügung stand und wesentlich leistungsfähiger ist.&lt;br /&gt;
&lt;br /&gt;
= Verbesserungen Prototyp - Diese haben jedoch keinen Einfluss auf die Funktion der Leiterplatte=&lt;br /&gt;
* Bauteile weiter weg von den Schraublöchern.&lt;br /&gt;
* Dazu Kreis rund um Bohrung auf Bestückdruck.&lt;br /&gt;
* Masseanbindung Quarz.&lt;br /&gt;
* Klemmen weiter weg vom Rand.&lt;br /&gt;
* Klemme und Sicherungshalter weiter auseinander.&lt;br /&gt;
* Bohrungen für Drossel 0,2mm größer machen.&lt;br /&gt;
* Teilenummer für Conrad-USB-Buchse in BOM übernehmen.&lt;br /&gt;
* Stiftleiste P1  weiter weg von P2 und P4.&lt;br /&gt;
* Varistoren näher an Klemmen platzieren.&lt;br /&gt;
* THT-Kondensatoren für Snubber.&lt;br /&gt;
* Ggf. Stiftleistenbelegung für externe Leds so ändern, das keine extra Vorwiderstände notwendig sind.&lt;br /&gt;
* Befestigungsbohrung für Drossel, um diese mit Kabelbinderung oder Schraube fixieren zu können.&lt;br /&gt;
* Pullup-Widerstand bei MCLR doppelt. &lt;br /&gt;
* Power-LED vorsehen.&lt;br /&gt;
* Leiterbahnen etwas weiter weg von den Kühlkörperanschlüssen&lt;br /&gt;
* Designatoren Texte etwas größer machen.&lt;br /&gt;
* Ein vernünftiger GND-Punkt für einen Tastkopf / Messungen / Aligator-Clips vorsehen.&lt;br /&gt;
* Spannungsversorgung doch Onboard? Oder beides?&lt;br /&gt;
* Leds 90 Grad, Frontplattenmontage&lt;br /&gt;
* Taster 90 Grad Frontplattenmontage&lt;br /&gt;
* Termoelemente Frontplattenmontage??? Termoelementstecker?&lt;br /&gt;
* Schaltausgang 230 V kleiner, weniger Leistungsfähig.&lt;br /&gt;
&lt;br /&gt;
= Errata Projekt =&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:red;&amp;quot;&amp;gt; Triac Symbol in Library falsch, dadurch ist T2 mit T1 vertauscht. Abhilfe für Leiterplattenversion V1.0: T1 und T2 &amp;quot;twisten&amp;quot; und jeweils mit Schrumpfschlauch versehen.( Also Beinchen T1 über kreuz mit Beinchen T2 einlöten...)&amp;lt;/span&amp;gt;&lt;br /&gt;
* Beim MOSFET R39 ist die Masseanbindung falsch. Es bestehen drei Möglichkeiten:&lt;br /&gt;
** 1. 0-R-Brücke für R39 einbauen und auf Strombegrenzung verzichten.&lt;br /&gt;
** 2. Eine Polyfuse mit Bauform 1206 einbauen. &lt;br /&gt;
** 3. Das kleine Leiterbahnstückchen zwischen R38 und R39 unterbrechen und statt dessen die Leiterbahn zwischen R39 und der Klemme mit der Durchkontaktierung bei R38 verbinden.&lt;br /&gt;
* LED-Beschriftung passt nicht ganz (Schaltplan Netlabel OUT1,2,3,4 sind durcheinander gekommen) --&amp;gt; Ist im Prinzip ohne Belang, man muss das nur bei der Software berücksichtigen.&lt;br /&gt;
* Schaltplan UNL2003 fehlerhafte Zuordnung IN5,6,7 &amp;lt;&amp;gt; OUT7,6,5 --&amp;gt; Ist im Prinzip ohne Belang, man muss das nur bei der Software berücksichtigen.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* Diskussion: [http://www.mikrocontroller.net/topic/297217 Diskussion]&lt;br /&gt;
* Software: [http://sourceforge.net/projects/reflowofensteue/ Bei Sourceforge]&lt;br /&gt;
* Dextrel Nulldurchgang: [http://www.dextrel.net/diyzerocrosser.htm Nulldurchgangschaltung]&lt;br /&gt;
* Gehäuse Zeichnung: [http://www.hammondmfg.com/pdf/RM2055L.pdf Großes Gehäuse für Steckdosenmontage]&lt;br /&gt;
* Gehäuse Zeichnung: [http://www.hammondmfg.com/pdf/RM2055M.pdf Kleines Gehäuse, keine Steckdosen]&lt;br /&gt;
* Bezugsquelle [http://www.soselectronic.com/?str=371&amp;amp;artnum=73596&amp;amp;name=hammond-ritec-rm2055l Großes Gehäuse Hammond]&lt;br /&gt;
* Bezugsquelle [http://www.soselectronic.com/?str=371&amp;amp;artnum=73595&amp;amp;name=hammond-ritec-rm2055m Kleines Gehäuse Hammond]&lt;br /&gt;
* Bezugsquelle [http://www.druckerzubehoer.de/shop/product/catid/H-UNIVERSALZUBEHOER_HZB/subcatid/UNIVERSALZUBEHOER_GROUP1_HZB/productid/1727063-390722LA/site/1/lng/de_DE Netzteil Mini USB ]&lt;br /&gt;
* Bezugsquelle [http://www.ebay.de/itm/151037292125?ssPageName=STRK:MEWNX:IT&amp;amp;_trksid=p3984.m1497.l2649 Termoelement Ebay (Typ K für ca. 2Euro)]&lt;br /&gt;
* Bezugsquelle [http://www.artcase-shop.de/index.php?page=search&amp;amp;page_action=query&amp;amp;desc=on&amp;amp;sdesc=on&amp;amp;keywords=pce+105&amp;amp;x=0&amp;amp;y=0 Steckdosen für Schalttafeleinbau:]&lt;br /&gt;
* Bezugsquelle [http://www.schaeffer-ag.de/ Frontplatten]&lt;br /&gt;
* Bezugsquelle [http://www.lichtlieferant.de/catalogsearch/result/?q=r7s+fassung+sockel Vossloh Fassung R7S für Halogenstäbe]&lt;br /&gt;
* Datenblatt Prozessor [http://ww1.microchip.com/downloads/en/DeviceDoc/39632e.pdf PIC18LF2550]&lt;br /&gt;
* Umfangreicher Thread u.A. Leistungsvermögen, Temperaturmessung und Dämmung [http://www.mikrocontroller.net/topic/270627]&lt;br /&gt;
[[Kategorie:PIC-Projekte]]&lt;/div&gt;</summary>
		<author><name>Frankman</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=Reflow_Ofen_Steuerung&amp;diff=80582</id>
		<title>Reflow Ofen Steuerung</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=Reflow_Ofen_Steuerung&amp;diff=80582"/>
		<updated>2014-01-03T12:49:40Z</updated>

		<summary type="html">&lt;p&gt;Frankman: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Datei:RFB.jpg|thumb|right|200px|Altium 3D Ansicht]]&lt;br /&gt;
[[Datei:Teilbest2.jpg|750px|teilbestückte Platine]]&lt;br /&gt;
== Einleitung ==&lt;br /&gt;
[[Datei:pcb.png|thumb|right|400px|Fertige Reflow-Ofen-Steuerung]]&lt;br /&gt;
Hier wird eine weitere Reflow-Ofen-Steuerung beschrieben.&lt;br /&gt;
=== Zum Nachbauen ===&lt;br /&gt;
* Spezifikation: [[Datei: Spec Reflow.pdf]]&lt;br /&gt;
* Schaltplan: &lt;br /&gt;
** Minimalversion [[Datei:Schematic Prints Minimal.pdf]]&lt;br /&gt;
** Standardversion [[Datei:Schematic Prints Standard.pdf]]&lt;br /&gt;
** Deluxeversion [[Datei:Schematic Prints Deluxe.pdf]]&lt;br /&gt;
** Debugversion [[Datei:Schematic Prints Debug.pdf]]&lt;br /&gt;
* Gerberdaten: [[Datei:Gerber Reflow.pdf]]&lt;br /&gt;
* Assemblydrawing: [[Datei:Assembly Reflow.pdf]] &lt;br /&gt;
* Altium-Files: [[Datei:Reflow.zip]]&lt;br /&gt;
* Stückliste als CSV: [[Datei:Reflow.csv]]&lt;br /&gt;
* Stückliste als Open Office: [[Datei:Reflow.ods]]&lt;br /&gt;
* PC Programm: TBD&lt;br /&gt;
* Sourcen PC-Programm: TBD&lt;br /&gt;
* PIC Programm (*.hex): [http://sourceforge.net/projects/reflowofensteue/ ]&lt;br /&gt;
* Sourcen Pic-Programm: [http://sourceforge.net/projects/reflowofensteue/ ]&lt;br /&gt;
* Step-File Steckdose:[[Datei:Steckdose.stp]]&lt;br /&gt;
&lt;br /&gt;
=== Motivation ===&lt;br /&gt;
Die Gründe, eine weitere Steuerung zu entwerfen, waren:&lt;br /&gt;
&lt;br /&gt;
* Die Möglichkeit, auch größere Öfen mit 2 Phasen betreiben zu können.&lt;br /&gt;
* Die Steuerung universell zu gestalten. Es sollte möglich sein, diese nicht nur zum Reflow löten zu verwenden....z.B:&lt;br /&gt;
** Temperatursteuerung für Klimakammer (Heizen, Kühlen)&lt;br /&gt;
** Dimmer mit USB&lt;br /&gt;
** Temperaturregler für ein Tisch-Fondue ( Temperatur halten)&lt;br /&gt;
** Drehzahlsteller mit USB&lt;br /&gt;
** Switchpack&lt;br /&gt;
* Die Schaltung sollte in Altium entwickelt werden. (Warum kein Eagle??? Altium User wissen es.... :-)&lt;br /&gt;
* Die Schaltung sollte mit USB ausgestattet sein.&lt;br /&gt;
&lt;br /&gt;
=== Eigenschaften &amp;amp; Spezifikationen ===&lt;br /&gt;
* Temperaturmessung: bis zu 2x &#039;&#039;&#039;Thermoelement&#039;&#039;&#039; (K-Typ) mit MAX6675 (abgekündigt) oder Nachfolger MAX31855 (pin- aber nicht softwarekompatibel)&lt;br /&gt;
* Leistungsstufen: &#039;&#039;&#039;3 voneinander unabhängige&#039;&#039;&#039; Triacs 800V 25A, limitiert auf &#039;&#039;&#039;10A @ 250VAC&#039;&#039;&#039; (z.B. Oberhitze, Unterhitze, Umluft)&lt;br /&gt;
* Nulldurchgangserkennung ermöglicht Wellenpaket-, und Phasenabschnittssteuerung * Galvanische Trennung der Leistungsendstufen&lt;br /&gt;
* 1x MOSFET-Ausgang PWM z.B. für 12V Lüfter, max. &#039;&#039;&#039;55V 3,5A&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;4 feste Programme&#039;&#039;&#039; im EEPROM über 2-Tasterbedienung und LEDs wähl- und ausführbar. &lt;br /&gt;
* &#039;&#039;&#039;PC-unabhängiger Betrieb&#039;&#039;&#039; möglich. &lt;br /&gt;
* Beliebig viele Programme möglich, bei Betrieb am Computer &lt;br /&gt;
* Mini-USB-Buchse zur Steuerung / Programmierung über GUI und zum Entwickeln. - Dafür ist &#039;&#039;&#039;keine Netzspannung&#039;&#039;&#039; erforderlich&lt;br /&gt;
* Günstiges passendes Gehäuse&lt;br /&gt;
* Alle LEDs und Taster auf &#039;&#039;&#039;Stiftleisten&#039;&#039;&#039; herausgeführt, für eigene Gestaltung der Frontblenden&lt;br /&gt;
* PID-Temperaturregler&lt;br /&gt;
* UART, SPI, I2C und 2x ADC auf Stiftleisten herausgeführt, für zukünftige &#039;&#039;&#039;Erweiterungen&#039;&#039;&#039;&lt;br /&gt;
* Versorgung über USB &amp;lt; 100mA, interne Versorgungsspannung 3,3V&lt;br /&gt;
* umfangreiche EMV-gerechte Entstörung für den Bedarfsfall&lt;br /&gt;
&lt;br /&gt;
=== Zusätzliches Benötigtes Material ===&lt;br /&gt;
* Leiterplatte (1 Stück)&lt;br /&gt;
* Gehäuse Hammond Teilenummer: RM2055L (1 Stück)&lt;br /&gt;
* Alternativ:Gehäuse Hammond Teilenummer: RM2055M (Wenn keine Steckdosen angebracht werden sollen)&lt;br /&gt;
* Alternative: Gehäuse Hammond (Hier muss man die Leiterplatte selber befestigen) Teilenummer: 1455T2201 (1 Stück)&lt;br /&gt;
* Einbausteckdosen Teilenummer: PEC 105 (2-3 Stück, je nach Ausbaustufe)&lt;br /&gt;
* PG-Verschraubung (2-3 Stück)&lt;br /&gt;
* Mutter für PG-Verschraubung (2 Stück)&lt;br /&gt;
* Litze blau, mindestens 1,5mm² (ca. 60cm)&lt;br /&gt;
* Litze braun, mindestens 1,5mm² (ca. 60cm) &lt;br /&gt;
* Litze gelb/grün, mindestens 1,5mm² (ca. 60cm)&lt;br /&gt;
* Aderendhülsen  mit Schutzkragen dazu ( 9 Stück für die Steckdosen)&lt;br /&gt;
* Schrauben, um die Leiterplatte zu befestigen (4 Stück)&lt;br /&gt;
* evtl. Abstandsbolzen dazu, falls das alternative Gehäuse verwendet wird (4 Stück)&lt;br /&gt;
* evtl. Muttern dazu, falls das alternative Gehäuse verwendet wird (4 Stück)&lt;br /&gt;
* Schrauben, Senkkopf DIN 7991 oder DIN 965 M4 X 10 um die Steckdosen zu befestigen (12 Stück)&lt;br /&gt;
* Muttern dazu M4 (12 Stück)&lt;br /&gt;
* Federschreiben  dazu DIN 127 M4 (12 Stück)&lt;br /&gt;
* Glimmerscheiben für Triac (2-3 Stück, je nach Ausbaustufe)&lt;br /&gt;
* Isoliernippel für Triacmontage (2-3 Stück, je nach Ausbaustufe)&lt;br /&gt;
* Zylinderkopfschraube M3 X 12 für Triacmontage (2-3 Stück, je nach Ausbaustufe)&lt;br /&gt;
* Mutter M3 für Triacmontage (2-3 Stück, je nach Ausbaustufe)&lt;br /&gt;
* Beilagscheibe M3 für Triacmontage (2-3 Stück, je nach Ausbaustufe)&lt;br /&gt;
* Isolierband für Triacmontage (ca. 300mm)&lt;br /&gt;
* Gummifüße für das Gehäuse (4 Stück)&lt;br /&gt;
&lt;br /&gt;
=== Kühlkörpermontage===&lt;br /&gt;
* Der Kühlköper sollte 38mm hoch sein, so passt er gut in die angegebenen Gehäuse&lt;br /&gt;
* Der Kühlkörper MUSS isoliert montiert werden, also Glimmerscheibe und Isoliernippel einsetzen und NACHMESSEN, ob der Kühlkörper auch wirklich keinen Kontakt zum Triac hat!&lt;br /&gt;
* Da die 230-V-Leiterbahnen nur durch den Stopplack vom Kühlkörper getrennt sind, sollte die Isolation mit zwei Lagen Gewebe- oder Isolierband verstärkt werden. Das Isolierband kann auf die Leiterplatte oder unter den Kühlkörper geklebt werden.&lt;br /&gt;
* Als Bohrungsmaß empfehle ich 20mm über der Leiterplatte.&lt;br /&gt;
* Entweder Bohrung 3,2mm für Durchgangsloch &lt;br /&gt;
* Oder Bohrung 2,5mm mit M3-Gewinde&lt;br /&gt;
&lt;br /&gt;
== Schaltung==&lt;br /&gt;
=== PIC18LF2550 Grundbeschaltung ===&lt;br /&gt;
[[Datei:osc_vs_vcc.png|thumb|right|200px|Taktraten und Versorgungsspannung PIC18F2550 vs. PIC18LF2550, Datenblatt S. 370/438]]&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 3/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Hier kommt ein PIC18&#039;&#039;&#039;L&#039;&#039;&#039;F2550 zum Einsatz. Er verfügt über eine USB-Schnittstelle und ist für Betriebsspannungen von 2 ... 5,5V ausgelegt. Sein Verwandter PIC18F2550 (ohne L) ist nicht für Betriebsspannungen &amp;lt; 4,2V ausgelegt. Dies ist bei USB sowieso nicht immer erfüllt und die Thermoelement-ICs vertragen ohnehin keine 5V, daher wurde die Betriebsspannung auf 3,3V reduziert. Neben Standard-Decoupling (100nF Kerko pro Vcc-Vss-Pärchen) wurde das ICSP-Interface in alt bewährter Pinbelegung (PICKit1,2,3) angebracht. PGD und PGC sind nicht weiter beschaltet, MCRL wird , wie immer als Resetpin verwendet. Der Resetschalter findet sich auf dem Top-Sheet (Schaltplan S. 1/22). Die Taktversorgung erfolgt über einen 24 MHz Quarz (-&amp;gt; USB). Man beachte diesbezüglich rechts stehende Grafik zu Taktraten und Versorgungsspannungen (Vdd bzw. auch Vcc genannt). Auch zu finden im Datenblatt des PICs auf Seite 370.&lt;br /&gt;
&lt;br /&gt;
=== PIC18LF2550 USB Beschaltung ===&lt;br /&gt;
[[Datei:usb_part.png|thumb|right|200px|PIC18(L)F2550&lt;br /&gt;
 Standard &lt;br /&gt;
USB-Beschaltung am PIC]]&lt;br /&gt;
[[Datei:usb_protect.png|thumb|right|200px|USB-Schutzbeschaltung und Mini-USB-Buchse]]&lt;br /&gt;
&lt;br /&gt;
Die Beschaltung der USB-Schnittstelle am PIC ist 1:1 aus dem Datenblatt übernommen. Zum Einsatz kommt eine Mini-USB-Buchse (J1).&lt;br /&gt;
Der Gedanke war: Erstens ein sehr preiswertes, fertiges Netzteil verwenden zu können, (ca. 3,67 € bei druckerzubehoer.de) und zweitens, die Steuerung auch mit dem PC / Laptop versorgen zu können.&lt;br /&gt;
Somit kann die Schaltung OHNE 230V betrieben und debuggt werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 4/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
FER1,2 und C7 filtern den Schirm nach GND. Standardmäßig wird man hier wohl 0-Ohm-Widerstände einsetzen. Falls ein Besuch im EMV-Labor geplant ist, weicht man auf den Ferrit aus. C5 und C6 filtern das Signal zusammen mit der Common-Mode-DrosselL1. Die Drossel kann mit den 0-Ohm-Brücken R8 und R9 überbrückt (gespart) werden. IC2 ist als ESD-Schutz gedacht und kann ebenfalls bei ausgeprägten Kostenbewustsein gespart werden. Die Widerstände R6 und R7 dürfen NICHT bestückt werden. FER1,2, C5, IC2 müssen nicht zwingend bestückt werden. Die Bestückung wurde vorgehalten um im Problemfall einfache Abhilfe schaffen zu können.&lt;br /&gt;
&lt;br /&gt;
=== 3,3V Spannungsversorgung ===&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 2/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Die 3,3V Versorgungsspannung für die gesamte Platine wird aus V_USB mittels des LDO Spannungsreglers TOREX - XC6206P332MR abgeleitet. Günstig, SOT-23, klein, 2x 1µF Kondensatoren benötigt, 3,3V max. 250mA. Der hat auch einen sehr kleinen Ruhestrom.&lt;br /&gt;
&lt;br /&gt;
=== Taster ===&lt;br /&gt;
*Der Resettaster zieht den MCLR-Pin nach GND und löst damit den Reset aus. MCLR  ist mit einem 10k Pullup versehen.&lt;br /&gt;
*Die übrigen beiden Taster ziehen RA4 bzw. RB5 ebenfalls nach GND.&lt;br /&gt;
&lt;br /&gt;
=== LEDs + ULN2003L ===&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 11/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Um alle LEDs auf der Platine (3x Optotriac + 7x Status) ansteuern zu können wurde auf das 7fach Darlington-Array ULN2003L zurückgegriffen. Die PIC-Ausgänge könnten zwar die LEDs direkt steueren. Aber so werden alle Ausgänge einheitlich nach Masse geschaltet. Das verbessert die Testbarkeit der ganzen Platine. ( Mit einem kurzen Masse-Draht kann zur Not der entsprechende Ausgang gesetzt werden, ohne etwas zu zerstören.)&lt;br /&gt;
&lt;br /&gt;
=== MOSFET-Leistungsausgang ===&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 22/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Hier kommt der einfacher N-Kanal MOSFET (LogicLevel) PHT8N06LT zum Einsatz. Er wird über das ULN2003L Array getrieben und ermöglicht den Anschluss eines DC-Verbrauchers mit max. 55V bei 3,5A. Hier könnte beispielsweise ein PC-Lüfter zur Kühlung oder für Umluft angeschlossen und über PWM geregelt/gesteuert werden. Ein Gatewiderstand von 100 Ohm ist zum Schutz des Treibers vorgesehen. Eine 0-Ohm-Brücke ist stattdessen aber auch möglich, wenn man eine höhere Leistung schalten möchte.Die Leiterbahnen sollten die 3A schon hergeben. Der 100 Ohm Widerstand bildet eine Stromquelle. Sobald der Strom durch den MOSFET und den Widerstand 33mA erreicht, sinkt UGS gegen 0 V. Folge: Der Mosfet sperrt ( und bleibt ganz....)&lt;br /&gt;
Es kann hier prinzipiell auch ein anderer Mosfet im SOT223-Gehäuse zum Einsatz kommen. Achten sollte man darauf, das der MOSFET schon bei 3,3V Ugs gut leiten sollte.&lt;br /&gt;
&lt;br /&gt;
=== Nulldurchgangserkennung ===&lt;br /&gt;
[[Datei:zerocross.png|thumb|right|200px|Nulldurchgangserkennung]]&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 5/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Die Nulldurchgangserkennung erfolgt nach einer sehr bekannten - jedoch ausgeklügelten - Schaltung.  [http://www.dextrel.net/diyzerocrosser.htm siehe: Dextrel]&lt;br /&gt;
Während einer Halbwelle wird C14 über R33 und R35 bzw. D5 geladen. Währenddessen ist T1 gesperrt. Sobald die Wechselspannung (L1-N über Spannungsteiler (R33+R35) / R34) kleiner ist als die Spannung über C14, steuert T1 durch. Dann entlädt sich C14 über den LED-Vorwiderstand R32. Der durch-steuernde Optokoppler zieht die Sync-Leitung nach GND. (Pullup Sync-Leitung = R31). Dies löst beim PIC auf INT2 einen Interrupt aus. &lt;br /&gt;
Dieser Interrupt ermöglicht eine präzise Wellenpaket-, Phasenanschnittsteuerung je nach Bedarf. Das Schalten im Nulldurchgang bei der Wellenpaketsteuerung reduziert EMV-Störungen. Für Phasenanschnitt ist ohnehin eine Nulldurchgangserkennung notwendig. Außerdem liefert sie eine genaue Zeitbasis für alle Programmabläufe.&lt;br /&gt;
&lt;br /&gt;
=== Triac-Ausgänge + Snubber ===&lt;br /&gt;
[[Datei:triac.png|thumb|right|200px|Triac-Ausgangsbeschaltung]]&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 19,20,21/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Die Ansteuerung des eigentlichen Leistungstriacs BTA140-800 erfolgt über den Optotriac IS6005. Der Strom durch Letzteren wird durch R1x limitiert (Vorwiderstand). R2x und R5x limitieren wiederum den Strom durch den Optotriac. Wenn dieser zündet so folgt unmittelbar der &amp;quot;Leistungstriac&amp;quot; der dann die Last schaltet.&lt;br /&gt;
&lt;br /&gt;
S1x ist ein Sicherungshalter um die Lasten einzeln absichern zu können. Wert 10A Mittelträge.&lt;br /&gt;
&lt;br /&gt;
R3x, R4x, C3x bilden ein Snubber-Network, L1X verhindert eine zu schnelle Stromanstiegsgeschwindikeit damit der Triac nicht &amp;quot;von selbst&amp;quot; zündet. Weglassen äußert sich meist in einem fast nicht hörbaren Click. Damit zeigt einem dann der Triac, dass er ab jetzt für immer recht niederohmig geworden ist. Die Regelung der Temperatur braucht dann nicht mehr über den Prozessor erfolgen, sondern nur noch mit dem Ein-/Ausschalter..... :-)&lt;br /&gt;
&lt;br /&gt;
=== Thermoelemente (MAX6675/MAX31855)  ===&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 6,7/22&#039;&#039;&#039;&lt;br /&gt;
Der inzwischen abgekündigte MAX6675 bzw. sein ehrenwerter Nachfolger MAX31855 sind einfach zu handhabende Thermoelement-ICs mit Kaltstellenkompensation. Thermoelemente funktionieren durch das Verschweißen zweier verschiedener Legierungen (beim K-Typ Thermoelemnt Ni und CrNi). Durch den durch die Umgebungstemperatur bedingten Wärmefluss zwischen beiden entsteht ein elektrische Spannung. Diese wird von besagten ICs verstärkt und digitalisiert (ADC). Diese Spannung / Temperatur ist natürlich wieder relativ zur Umgebungstemperatur an der Kaltstelle (Kontaktierung der beiden Drähte mit dem Messinstrument). Daher messen diese ICs auch gleich die Umgebungstemperatur (Kaltstellenkompensation genannt) mit, verrechnen das und geben das Ergebnis auf der SPI-Schnittstelle aus. MAX6675 leistet 12bit also 0,25°C Auflösung (nicht Genauigkeit!) über einen Temperaturbereich von 0°C to +1024°C. Außerdem wird ein nicht/fehlerhaft angeschlossenes Thermoelement erkannt. Der Thermocouple-IC wird an die SPI-Schnittstelle des PICs angeschlossen (hier MSSP genannt). &lt;br /&gt;
&lt;br /&gt;
MAX6675 und MAX31855 scheinen entgegen der Adafruit-Information [http://www.adafruit.com/products/269] doch pinkompatibel zu sein - die Ansteuerung unterscheidet sich jedoch definitiv. (Zitat: &amp;quot;Now uses the MAX31855K instead of the MAX6675, so it can measure a wider temperature measurement range. Please note! the MAX31855 is not pin compatible or drop-in code compatible with the MAX6675. We do have an Arduino library for both chips but you&#039;ll need to adjust any existing MAX6675 designs for the mew MAX31855. The MAX6675 has been discontinued by Maxim.&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Es wurden 2 dieser ICs und damit 2 Temperaturmessstellen vorgesehen. Dies ermöglich die Messung für eine Regelung der Temperatur so wie eine zusätzliche Überwachung kritischer Bauteile (z.B. ICs oder LEDs). Die Minimalbestückung sieht einen MAX6675/MAX31855 vor. Die Auswahl in der Firmware erfolgt über einen der beiden GPIO-Pins RA5 oder RA0 via dem ChipSelect (CS) des MAX6675/MAX31855.&lt;br /&gt;
&lt;br /&gt;
Neben dem MAX6675/MAX31855 wurde ein Decoupling-Kondensator (C8x, Standard 100nF) so wie ein weiterer im Messpfad (C9x) zur Zwecken der Entstörung vorgeshen. C9x 100nF sollte nur bestückt werden wenn Probleme bei der Temperaturmessung entstehen (z.B. unrealstisch stark schwankende Werte).&lt;br /&gt;
&lt;br /&gt;
=== ADC, SPI, UART &amp;amp; I2C Stiftleiste ===&lt;br /&gt;
ADC, SPI, UART und I2C sind zu Zwecken der Kalibrierung / Erweiterung / Einstellung / Debugging auf Stiftleisten herausgeführt:&lt;br /&gt;
Ähnlichkeiten mit dem FTDI-USB-TTL-Kabel bzw. Arduino XXX Bla Bla Bla Schnittstellenkonverter sind natürlich rein zufällig.&lt;br /&gt;
&lt;br /&gt;
Die I2C-Schnittstelle wurde auf eine Stiftleiste geführt, um z.B. einem LM75 o.ä. anschließen zu können. Damit stehen zur Kalibrierung der Thermoelemente genaue Temperaturen zur Verfügung.&lt;br /&gt;
&lt;br /&gt;
Die Stiftleisten haben alle ein Raster von 2,54mm. So können Pin-Header, Wannenstecker oder ähnliches verwendet werden.&lt;br /&gt;
&lt;br /&gt;
Da ja viele Leute eigene Vorstellungen bezüglich der Frontplattengestaltung haben, wurden auch die Taster und LEDs auf Stiftleisten geführt.&lt;br /&gt;
&lt;br /&gt;
=== Kühlkörper ===&lt;br /&gt;
Da die Triacs der Steuerung für bis zu 10A pro Kanal ausgelegt sind, kann man auf die Kühlkörper nicht verzichten. Es fallen bei 10A bis zu 13 Watt Wärme pro Triac ab. Falls mann auf die Kühlkörper doch verzichten möchte, sollte man darauf achten, die Triacs mit dem Kopf nach unten einzubauen. Diese können sich dann bei Überlast ganz von selber auslöten.... :-)&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red;&amp;quot;&amp;gt; Die Triacs müssen mit Glimmerscheibe und Isoliernippel -ALSO ISOLIERT ZUM KÜHLKÖRPER- montiert werden.&lt;br /&gt;
Außerdem muss unter dem Kühlkörper ein Stück Isolierband oder FR4 oder Nylon-Scheiben beigelegt werden, um zu verhindern, dass der Stopplack der Leiterplatte beschädigt wird. In diesem Falle hätte man Potential auf dem Kühlkörper.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Gehäuse ===&lt;br /&gt;
Die Leiterplatte wurde für ein Gehäuse von Hammond entwickelt.&lt;br /&gt;
Das Gehäuse ist zwar keine Schönheit, aber doch recht preiswert.&lt;br /&gt;
Typenbezeichnung: RM2055M oder etwas größer RM2055L&lt;br /&gt;
&lt;br /&gt;
== Firmware PIC ==&lt;br /&gt;
* Die Entwicklung der Firmware für den PIC18LF2550  erfolgt mit MPLABX und dem C18 Compiler. &lt;br /&gt;
* MPLABX ist kostenlos, der C18 Compiler bis auf die stärkste Optimierungsstufe ebenfalls. &lt;br /&gt;
* Die Quellen für die Firmware sind offengelegt und können von Sourceforge bezogen werden, siehe Links, weiter unten.&lt;br /&gt;
&lt;br /&gt;
=== Programmstruktur- und ablauf ===&lt;br /&gt;
Nach anfänglicher Initialisierung des PIC startet die Statemachine [http://http://www.mikrocontroller.net/articles/Statemachine] [http://http://de.wikipedia.org/wiki/Endlicher_Automat]. Neben ihr findet in der main-Funktion nur noch die Abfrage der beiden Bedientasten statt. Mit dem Tastendruck wird zum Zwecke der Entprellung ein Timer gestartet. Alles Andere (incl. PID-Regelung, Wellenpaket- bzw. Phasenan- und Phasenabschnittssteuerung und USB) ist interruptbasiert.&lt;br /&gt;
=== Reflow-Ofen-Konfiguration ===&lt;br /&gt;
&lt;br /&gt;
=== Taktversorgung, Nulldurchgangserkennung und Zeitbasis ===&lt;br /&gt;
=== USB ===&lt;br /&gt;
=== SPI für MAX6675 ===&lt;br /&gt;
=== SPI für MAX31855 ===&lt;br /&gt;
&lt;br /&gt;
=== Wellenpaketsteuerung ===&lt;br /&gt;
=== Phasenanschnitt ===&lt;br /&gt;
&lt;br /&gt;
=== PWM für MOSFET ===&lt;br /&gt;
=== PIC-Configword ===&lt;br /&gt;
&lt;br /&gt;
=== Zuordnung Outputs ===&lt;br /&gt;
[[Datei:pinning.png|thumb|right|400px|Input/Output-Funktions-Tabelle]]&lt;br /&gt;
&lt;br /&gt;
*In1 = RC2 = PIN13 = ULN5--&amp;gt;12 = OUT1 = PWM &lt;br /&gt;
*In2 = RB3 = PIN24 = ULN6--&amp;gt;11 = OUT2 = TRIAC_A (1) = K5&lt;br /&gt;
*In3 = RB4 = PIN25 = ULN7--&amp;gt;10 = OUT3 = TRIAC_B (2)= K2&lt;br /&gt;
*In4 = RA2 = PIN4  = ULN4--&amp;gt;13 = OUT4 = LED_PRG1 = OPTO D&lt;br /&gt;
*In5 = RC0 = PIN11 = ULN3--&amp;gt;14 = OUT6 = LED_PRG2 = OPTO F&lt;br /&gt;
*In6 = RC1 = PIN12 = ULN2--&amp;gt;15 = OUT7 = LED_PRG3 = OPTO G&lt;br /&gt;
*In7 = RA3 = PIN5  = ULN1--&amp;gt;16 = OUT5 = LED_PRG4 = OPT= E&lt;br /&gt;
&lt;br /&gt;
TRIAC1 ist nahe dem Zerocross&lt;br /&gt;
&lt;br /&gt;
== PC-Software (GUI) ==&lt;br /&gt;
[[Datei:gui_alpha.png|thumb|right|300px|Screenshot der GUI (noch Alpha) für den Reflow-Ofen-Controller]]&lt;br /&gt;
&lt;br /&gt;
Die GUI (englisch Graphical User Interface) ist der Einfachheit halber in VB.net programmiert und momentan noch im Alpha-Stadium. Auch hierfür liegen die Quellen später selbstverständlich offen.&lt;br /&gt;
&lt;br /&gt;
=== Funktionen und Modi ===&lt;br /&gt;
[[Datei:modi.png|thumb|right|400px|Auswahl der beschriebenen Modi durch Klick]]&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Ofen-Profil&amp;quot;&#039;&#039;&#039; - Es wird ein Programm (Temperaturkurve) aus dem EEPROM des Reflow-Ofens ausgeführt. Der Backvorgang kann mit der Software gesteuert (START, STOP, ...) und überwacht werden. Hierzu stehen Temperatur, Temperaturänderung, Heizleistung (Ober- und Unterhitze, Lüfter) so wie die graphische Darstellung im zentralen Diagramm zur Verfügung. Eingriffsmöglichkeiten, wie das Ändern der Temperaturkurve sind nicht vorgesehen. Dies soll ein reiner Überwachungs-Modus sein. Um die Temperaturkurve zu verändern zu können, sollte der Modus &amp;quot;PC-Profil&amp;quot; verwendet werden und die Temperaturkurve aus dem EEPROM importiert werden. Dann kann Selbige auch verändert und anschließend ausgeführt bzw. verändert in den EEPROM zurückgeschrieben werden. Dieser Modus stellt ein Äquivalent zur START/STOP-Tasten-Bedienung an der Platine dar und kann selbstverständlich parallel dazu genutzt werden. Die GUI also als Addon zum Stand-Alone-Betrieb.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;PC-Profil&amp;quot;&#039;&#039;&#039; - Es wird ein Programm (Temperaturkurve) ausgeführt welche zuvor am Computer erstellt / editiert wurde. In diesem Modus gibt der Computer Temperaturwerte vor, welche live über die USB-Schnittstelle zum PIC übertragen werden und mit dem dort integrierten PID-Regler ausgeführt werden. Das ermöglicht eine on-the-fly Veränderung der Temperaturkurve während des Backvorgangs. Temperaturkurven können aus Dateien oder dem EEPROM importiert und auch wieder exportiert werden. CSV-Dateien können ebenfalls importiert und exportiert werden. Die &amp;quot;Eingabe&amp;quot; der Temperaturkurve erfolgt entweder über Import (CSV/EEPROM), per Mausklick auf dem zentralen Diagramm oder im sog. DataGridView. Weiteres siehe Unterpunkt &amp;quot;Eingabe der Temperaturkurve (Reflowprofil)&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;manueller Ablauf&amp;quot;&#039;&#039;&#039; - In diesem Modus wird (im Gegensatz zu den oberen beiden Modi &amp;quot;Ofen-Profil&amp;quot; und &amp;quot;PC-Profil&amp;quot;) keine Temperatur geregelt. Hier wird die Leistung des Ofens in % eingestellt und gesteuert. Der PID-Regler ist nicht in Aktion. Die Temperatur, Temperaturänderung so wie der Temperaturverlauf werden selbstredend angezeigt bzw. im Diagramm dargestellt. Der Modus &amp;quot;manueller Ablauf&amp;quot; fährt ähnlich dem Modus &amp;quot;PC-Profil&amp;quot; die im DataGridView eingetragenen Leistungs-Zeit-Punkte ab. Für jeden Zeitpunkt ist eine Leistung vorgegeben. Die Eingabe erfolgt ähnlich wie unter &amp;quot;Eingabe der Temperaturkurve (Reflowprofil)&amp;quot; beschrieben. Nur eben, dass eine Leistung und keine Temperatur angegeben wird. Die Eingabe der Leistung kann nicht im Zeit-Temperatur-Diagramm erfolgen sondern mittels der Schieberegler oder direkt tabellarisch.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;manueller Modus&amp;quot;&#039;&#039;&#039; - Dieser Modus enthält 2 Submodi&lt;br /&gt;
** &amp;quot;manueller Leistungsmodus&amp;quot; - Auch in diesem Modus wird die Leistung gesteuert. Es wird keine Temperatur geregelt, der PID-Regler für die Temperatur ist nicht in Betrieb. Die Einstellung hier erfolgt über die drei Schieberegler oder über eine numerische Eingabe durch Klick auf die Leistungsangabe unter dem Schieberegler. Durch Klick auf die Texte &amp;quot;TOP&amp;quot;, &amp;quot;BOTTOM&amp;quot;, &amp;quot;FAN&amp;quot; (Oberhitze, Unterhitze, Lüfter) können selbige deaktiviert bzw. aktiviert werden. Auch in diesem Modus wird Temperatur, Temperaturänderung so wie der Temperaturverlauf dargestellt.&lt;br /&gt;
** &amp;quot;manueller Temperaturmodus&amp;quot; - Hier wird die Temperatur wieder mittels des Temperatur-PIDs geregelt. Die Temperatur wird entweder mittels Schieberegler (Ober- und Unterhitze-Regler sind jetzt gekoppelt) oder durch eine numerische Eingabe unterhalb der Schieberegler vorgegeben. Anzeige wie im &amp;quot;manuellen Leistungsmodus&amp;quot;. Der Lüfter kann unabhängig vom PID in seiner Leistung geregelt werden. Ein evtl. durch den Luftstrom verursachter Temperaturabfall wird vom PID selbstverständlich ausgeregelt (aus diesem Grunde ist es ja ein Regler).&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Programmieren&amp;quot;&#039;&#039;&#039; - Hier kann ein neues &#039;&#039;&#039;Temperatur&#039;&#039;&#039;-Programm für den EEPROM-Speicher des Ofens erstellt und editiert werden. Die Eingabemöglichkeiten sind unter &amp;quot;Eingabe der Temperaturkurve (Reflowprofil)&amp;quot; beschrieben. Dieser Modus ist zum reinen Programmieren des Ofens gedacht und ermöglicht keine weitere Steuerung oder Überwachung des Ofens.&lt;br /&gt;
&lt;br /&gt;
=== Eingabe der Temperaturkurve (Reflowprofil) ===&lt;br /&gt;
[[Datei:datagridview.png|thumb|right|400px|tabellarische Anzeige und Editiermöglichkeit der Temperaturkurve]]&lt;br /&gt;
Die Eingabe der Temperaturkurve erfolgt entweder über Import (CSV/EEPROM), per Mausklick auf dem zentralen Diagramm oder im sog. DataGridView (Excel-ähnliche Bedienung in tabellarischer Form). &lt;br /&gt;
&lt;br /&gt;
* CSV-Import + Export&lt;br /&gt;
* EEPROM-Import + Export&lt;br /&gt;
* Im rechts stehenden Screenshotbeispiel wird eine tabellarische Eingabeform mit einem DataGridView gezeigt: Die Temperatur (erster Temperaturpunkt = Punkt 0) von 100°C wird linear über einen Zeitraum von 0-30s verteilt. Bei 30s hat der Ofen die Temperatur von 100°C. Dafür setzt die Regelung die Oberhitze, die Unterhitze ein. Der Lüfter ist deaktiviert. In der Zeit von 30s bis 120s wird die Temperatur nun von 100°C auf 150°C linear angehoben. Von 120s bis 180s Backzeit steigt die Temperatur von 150°C auf 250°C. Von 180s bis 200s wird die Temperatur auf 280°C angehoben. Anschließend wird sie zwischen 200s und 220s auf 280°C gehalten (280°C@200s und 280°C@220s) um dann bis 240s wieder auf 250°C zu fallen. Bis zum Zeitpunkt 300s wird dann die Temperatur 30°C angestrebt. Zusätzlich ist der Lüfter nun aktiviert (soweit der Ofen eine Umluftfunktion besitzt). Bei Punkt 7 sind Ober- und Unterhitze deaktiviert nur noch der Lüfter kühlt. Da hier bei &amp;quot;Zeit[s]&amp;quot; die 0 eingetragen wird der Zustand (hier nur Lüfter an) für einen unendlich langen Zeitraum auf 0 gehalten. Also so lange wie das Programm aktiviert ist wird der Lüfter laufen. Natürlich könnte man hier auch z.B. 100°C und Zeitpunkt 0s eintragen. Dann würde der Ofen bis zum manuellen Beenden des Programms (klick auf STOP-Button oder Drücken des START/STOP-Tasters auf der Platine/Steuerung) 100°C halten.&lt;br /&gt;
* Alle Zellen des DataGridView sind editierbar (zur Veränderung der Temperatur, Zeitpunkt, ...)&lt;br /&gt;
* Direkter Klick auf das zentrale Temperatur-Zeit-Diagramm trägt den Zeitpunkt so wie die Temperatur unter dem Mauszeiger in die Tabelle (das DataGridView) ein. Die ausgewählte Zeile wird beschrieben oder überschrieben. Neue Zeilen (also Temperatur-Zeit-Punkte) können durch klick auf den &amp;quot;Plus-Button&amp;quot; hinzugefügt werden. Ebenso ist das Löschen oder Verschieben einer oder mehrerer Zeile gleichzeitig möglich.&lt;br /&gt;
&lt;br /&gt;
=== Beschreibung der Steuerungsmöglichkeiten ===&lt;br /&gt;
In Abhängigkeit des gewählten Modus bestehen einige Steuerungs-, Einstellungs- und Kontrollmöglichkeiten:&lt;br /&gt;
* &#039;&#039;&#039;Schieberegler&#039;&#039;&#039; für Temperatur od. Leistung (je nach Modus) für Oberhitze, Unterhitze und Lüfter. Je nach Hardwareausführung. &lt;br /&gt;
** Klick auf &amp;quot;TOP&amp;quot;, &amp;quot;BOTTOM&amp;quot; oder &amp;quot;FAN&amp;quot; aktiviert oder deaktiviert die entsprechende Funktion bzw. Hardware.&lt;br /&gt;
** Numerische Eingabe der Werte für die Schieberegler durch Klick auf die Anzeige unterhalb der Schieberegler. Werte können auch im deaktivierten Zustand angegeben werden. Die Übernahme erfolgt durch den &amp;quot;Aktivierungsklick&amp;quot; auf &amp;quot;TOP&amp;quot;, &amp;quot;BOTTOM&amp;quot; oder &amp;quot;FAN&amp;quot;&lt;br /&gt;
* &#039;&#039;&#039;T1, dT1, T2, dT2&#039;&#039;&#039; - Anzeige der gemessenen Temperatur so wie die momentane Temperaturänderung am jeweiligen Sensor. &lt;br /&gt;
* &#039;&#039;&#039;Bedienbuttons&#039;&#039;&#039;&lt;br /&gt;
** Play - Startet das Programm am angegebenen Startpunkt (siehe unten)&lt;br /&gt;
** Pause - Pausiert das Programm - weitere Pauseoptionen siehe unten&lt;br /&gt;
** Stop - Stopt den Programmablauf&lt;br /&gt;
** Vor / Zurück - Springt zwischen Temperaturpunkten hin und her. Dient zum überspringen oder zurückspringen zu gewissen Temperatur-Zeit-Punkten. Ermöglicht z.B. das Überspringen eines Ablaufes der eine lange Preheat- oder Dryphase hat.&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Status&amp;quot;&#039;&#039;&#039; - zeigt den aktuellen Zustand des Programms an (READY, START, WAITING, PAUSE, ...)&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;RESET&amp;quot;&#039;&#039;&#039; - setzt das (begonnene) Programm zurück. Beinhaltet neben dem Programmablauf auch das Zurücksetzen der graphischen Anzeige des Diagramms, etc.&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Startpunkt&amp;quot;&#039;&#039;&#039; - legt den ersten Punkt des Programmablaufes fest. &lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Wiederholungen&amp;quot;&#039;&#039;&#039; - ermöglicht das wiederholte Backen ohne das Programm händisch immer wieder neu starten zu müssen. Die Anzahl der Wiederholungen ist einstellbar (0 für unendlich viele) und es ist eine Wartezeit zwischen den Wiederholungen einstellbar. Alternativ kann eine Meldung nach jedem vollendeten Backvorgang abgegeben werden. Nach Bestätigung dieser wird die nächste Wiederholung ausgeführt.&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Pause&amp;quot;&#039;&#039;&#039; - Pauseneinstellungen. Hier sind Optionen wählbar was passieren soll, falls der Pausebutton betätigt wird:&lt;br /&gt;
** Pausezeit - gibt an wie lange die Pause dauern soll [s], danach fährt das Programm automatisch gemäß des gewählten Pausemodus fort. Für eine Pause ohne automatisches Fortfahren (Countdowntimer) &#039;0&#039; angeben.&lt;br /&gt;
** Pausemodus &amp;quot;aktuelle Temperatur halten, WarmUp, Fortsetzen&amp;quot; - Ofen hält die Temperatur (Zieltemperatur) des Zeitpunktes als der Pausebutton betätigt wurde. WarmUp bedeutet, dass nach dem Beenden des Pausemodus zunächst die Zieltemperatur wieder erreicht werden &#039;&#039;&#039;muss&#039;&#039;&#039; bevor der nächste Punkt angesteuert wird. Klingt paradox, wenn die Temperatur doch so und so gehalten wird, ist aber nicht so. Die Wahrscheinlichkeit ist hoch, dass der Pausemodus benutzt wird um die Ofentüre zu öffnen und Korrekturen an der Platine vorzunehmen. Unter Umständen ist die Heizung des Ofens jedoch nicht in der Lage den dadurch entstehenden Wärmeverlust zu kompensieren. Fährt das Programm dann sofort fort, so könnten evtl. kritische (Hoch-)Punkte des Lötprofils &amp;quot;unterfahren&amp;quot; werden. Dem wirkt WarmUp entgegen.&lt;br /&gt;
** Pausemodus &amp;quot;aktuelle Temperatur halten, Fortsetzen&amp;quot; - siehe oben, nur ohne WarmUp.&lt;br /&gt;
** Pausemodus &amp;quot;definierte Temperatur halten, WarmUp, Fortsetzen&amp;quot; - siehe oben. Statt der aktuellen Zieltemperatur wird jedoch nun im Pausemodus eine einzustellende Pausetemperatur gehalten. Mit WarmUp.&lt;br /&gt;
** Pausemodus &amp;quot;definierte Temperatur halten, Fortsetzen&amp;quot; - siehe oben, nur ohne WarmUp.&lt;br /&gt;
** &amp;quot;Pausetemperatur&amp;quot; - spezielle Temperatur die bei entsprechender Pausemoduswahl für die Dauer der Pause gehalten wird.&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Ende&amp;quot;&#039;&#039;&#039; - gibt an was am Ende eines durchlaufenen Reflow-Programms passieren soll. Ist der Wiederholungsmodus aktiviert, tritt dieses Ereignis erst nach Durchlauf aller Wiederholungen ein. Folgende Modi sind möglich:&lt;br /&gt;
** automatischer Reset - am Ende des Programms wird alles automatisch zurückgesetzt, alle Graphiken und Anzeigen gelöscht.&lt;br /&gt;
** manueller Reset - am Ende des Programms bleiben alle Anzeigen, Graphiken, etc erhalten und müssen vor Beginn eines neuen Reflowvorgangs händisch durch Klick auf &amp;quot;RESET&amp;quot; zurückgesetzt werden.&lt;br /&gt;
** Benutzermeldung - lässt eine Meldung erscheinen. Alle Anzeigen und Graphiken bleiben erhalten bis der Benutzer diese Meldung bestätigt. Mit Bestätigung dieser Meldung wird ein automatischer Reset vorgenommen.&lt;br /&gt;
&lt;br /&gt;
=== Loggen des Temperaturverlaufes ===&lt;br /&gt;
Es ist möglich jeden Backvorgang in eine CSV-Datei zu loggen. (Software- und PID-Einstellungen). Geloggte CSV-Dateien können eingelesen und im zentralen Temperatur-Zeit-Diagramm begutachtet werden. Ein Ist-Soll-Vergleich ist ebenso möglich wie die direkte Anzeige des Fehlers (&amp;quot;Ist minus Soll&amp;quot;). Dank CSV können die Daten auch mit anderen Programmen (Excel, etc.) weiterverarbeitet werden.&lt;br /&gt;
&lt;br /&gt;
== Ofen / Pizzaofen ==&lt;br /&gt;
=== Leistung und Volumen ===&lt;br /&gt;
* Alls Faustformel wird oft 100W pro Liter Volumen genannt.&lt;br /&gt;
* Ich habe einen sehr preiswerten Ofen gewählt und die &amp;quot;Oberhitze&amp;quot; zusätzlich mit zwei Halogen-Stäben a 300W &amp;quot;verstärkt. Das kostet nicht viel, die Fassung ist für ca. 3 Euro erhältlich, die Halogenstäbe gibt es in jedem Baumarkt. &lt;br /&gt;
* Bezugsquelle Fassung : siehe &amp;quot;Links&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Dämmung ===&lt;br /&gt;
=== Umluft ===&lt;br /&gt;
* Der verwendete Ofen sollte eine Umluftfunktion besitzen, damit sich die Wärme gleichmäßig im Ofen und auf der Leiterplatte verteilen kann.&lt;br /&gt;
&lt;br /&gt;
== FAQ ==&lt;br /&gt;
&lt;br /&gt;
* Q1: Ich habe einen PT100/PT1000 und möchte den anschließen. Geht das?&lt;br /&gt;
** A1: Ja natürlich. Dazu ist aber etwas externe Elektronik notwendig. Sowohl 2 ADC-Pins (mit 3V3 Betriebsspannung als fixe Referenzspannung), als auch die UART und SPI/I2C-Schnittstelle stehen zur freien Verfügung. Für PT100/PT1000 wird für vernünftige Messungen ohnehin eine Verstärkung (meist mit OPV) von Nöten sein. Da der PIC-interne ADC &amp;quot;nur&amp;quot; 10bit Auflösung bietet sollte ein externer 16bit ADC in Betracht gezogen werden um das Potential der PT100/PT1000 auszunutzen.&lt;br /&gt;
*Q2: Ich habe von günstigen Temperaturmessungen mit Dioden gehört. Geht das auch hier?&lt;br /&gt;
**A2: Ja. Die Vorwärtsspannung einer Diode verhält sich linear zur Sperrschichttemperatur. Diese Spannung (bei 25°C einer Si-Diode die bekannten 0,7V) kann mittels OPV verstärkt werden und auf einen Spannungsbereich von 0 ... 3V3 aufgebläht werden. Eine billige Lösung, auf Kosten der Genauigkeit. Doch eine Diode ist laut Datenblatt nur bis 150°C geeignet. Es ist also beim Löten mehr oder weniger Pfusch. Wenn ich schon eine Reflow-Steuerung baue, sollte ich doch nicht an ein paar Euro für eine gescheite Temperaturmessung sparen. Einige Anregungen vom Messgerätehersteller Keithley bzgl. der Halbleiterphysik mit interessanten Formeln [http://www.keithley.de/support/data?asset=50486]. Oder natürlich der Klassiker von Thomas Pfeifer [http://thomaspfeifer.net/backofen_smd_reflow.htm]. Oder ein Beitrag mit LT-Spice Simulation zum Thema [http://www.mikrocontroller.net/topic/270627#2833883].&lt;br /&gt;
* Q3: God why ... ?&lt;br /&gt;
** A3: Because we can !&lt;br /&gt;
* Q4: Ich hab aber noch nie was mit 230V gemacht.&lt;br /&gt;
**A4: Dann würde ich an Deiner Stelle dieses Projekt NICHT nachbauen.&lt;br /&gt;
* Q5: Warum wurde Altium verwendet und nicht Eagle?&lt;br /&gt;
**A5: Weil es uns kostenlos zur Verfügung stand und wesentlich leistungsfähiger ist.&lt;br /&gt;
&lt;br /&gt;
= Verbesserungen Prototyp - Diese haben jedoch keinen Einfluss auf die Funktion der Leiterplatte=&lt;br /&gt;
* Bauteile weiter weg von den Schraublöchern.&lt;br /&gt;
* Dazu Kreis rund um Bohrung auf Bestückdruck.&lt;br /&gt;
* Masseanbindung Quarz.&lt;br /&gt;
* Klemmen weiter weg vom Rand.&lt;br /&gt;
* Klemme und Sicherungshalter weiter auseinander.&lt;br /&gt;
* Bohrungen für Drossel 0,2mm größer machen.&lt;br /&gt;
* Teilenummer für Conrad-USB-Buchse in BOM übernehmen.&lt;br /&gt;
* Stiftleiste P1  weiter weg von P2 und P4.&lt;br /&gt;
* Varistoren näher an Klemmen platzieren.&lt;br /&gt;
* THT-Kondensatoren für Snubber.&lt;br /&gt;
* Ggf. Stiftleistenbelegung für externe Leds so ändern, das keine extra Vorwiderstände notwendig sind.&lt;br /&gt;
* Befestigungsbohrung für Drossel, um diese mit Kabelbinderung oder Schraube fixieren zu können.&lt;br /&gt;
* Pullup-Widerstand bei MCLR doppelt. &lt;br /&gt;
* Power-LED vorsehen.&lt;br /&gt;
* Leiterbahnen etwas weiter weg von den Kühlkörperanschlüssen&lt;br /&gt;
* Designatoren Texte etwas größer machen.&lt;br /&gt;
* Ein vernünftiger GND-Punkt für einen Tastkopf / Messungen / Aligator-Clips vorsehen.&lt;br /&gt;
* Spannungsversorgung doch Onboard? Oder beides?&lt;br /&gt;
* Leds 90 Grad, Frontplattenmontage&lt;br /&gt;
* Taster 90 Grad Frontplattenmontage&lt;br /&gt;
* Termoelemente Frontplattenmontage??? Termoelementstecker?&lt;br /&gt;
* Schaltausgang 230 V kleiner, weniger Leistungsfähig.&lt;br /&gt;
&lt;br /&gt;
= Errata Projekt =&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:red;&amp;quot;&amp;gt; Triac Symbol in Library falsch, dadurch ist T2 mit T1 vertauscht. Abhilfe für Leiterplattenversion V1.0: T1 und T2 &amp;quot;twisten&amp;quot; und jeweils mit Schrumpfschlauch versehen.( Also Beinchen T1 über kreuz mit Beinchen T2 einlöten...)&amp;lt;/span&amp;gt;&lt;br /&gt;
* Beim MOSFET R39 ist die Masseanbindung falsch. Es bestehen drei Möglichkeiten:&lt;br /&gt;
** 1. 0-R-Brücke für R39 einbauen und auf Strombegrenzung verzichten.&lt;br /&gt;
** 2. Eine Polyfuse mit Bauform 1206 einbauen. &lt;br /&gt;
** 3. Das kleine Leiterbahnstückchen zwischen R38 und R39 unterbrechen und statt dessen die Leiterbahn zwischen R39 und der Klemme mit der Durchkontaktierung bei R38 verbinden.&lt;br /&gt;
* LED-Beschriftung passt nicht ganz (Schaltplan Netlabel OUT1,2,3,4 sind durcheinander gekommen) --&amp;gt; Ist im Prinzip ohne Belang, man muss das nur bei der Software berücksichtigen.&lt;br /&gt;
* Schaltplan UNL2003 fehlerhafte Zuordnung IN5,6,7 &amp;lt;&amp;gt; OUT7,6,5 --&amp;gt; Ist im Prinzip ohne Belang, man muss das nur bei der Software berücksichtigen.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* Diskussion: [http://www.mikrocontroller.net/topic/297217 Diskussion]&lt;br /&gt;
* Software: [http://sourceforge.net/projects/reflowofensteue/ Bei Sourceforge]&lt;br /&gt;
* Dextrel Nulldurchgang: [http://www.dextrel.net/diyzerocrosser.htm Nulldurchgangschaltung]&lt;br /&gt;
* Gehäuse Zeichnung: [http://www.hammondmfg.com/pdf/RM2055L.pdf Großes Gehäuse für Steckdosenmontage]&lt;br /&gt;
* Gehäuse Zeichnung: [http://www.hammondmfg.com/pdf/RM2055M.pdf Kleines Gehäuse, keine Steckdosen]&lt;br /&gt;
* Bezugsquelle [http://www.soselectronic.com/?str=371&amp;amp;artnum=73596&amp;amp;name=hammond-ritec-rm2055l Großes Gehäuse Hammond]&lt;br /&gt;
* Bezugsquelle [http://www.soselectronic.com/?str=371&amp;amp;artnum=73595&amp;amp;name=hammond-ritec-rm2055m Kleines Gehäuse Hammond]&lt;br /&gt;
* Bezugsquelle [http://www.druckerzubehoer.de/shop/product/catid/H-UNIVERSALZUBEHOER_HZB/subcatid/UNIVERSALZUBEHOER_GROUP1_HZB/productid/1727063-390722LA/site/1/lng/de_DE Netzteil Mini USB ]&lt;br /&gt;
* Bezugsquelle [http://www.ebay.de/itm/151037292125?ssPageName=STRK:MEWNX:IT&amp;amp;_trksid=p3984.m1497.l2649 Termoelement Ebay (Typ K für ca. 2Euro)]&lt;br /&gt;
* Bezugsquelle [http://www.artcase-shop.de/index.php?page=search&amp;amp;page_action=query&amp;amp;desc=on&amp;amp;sdesc=on&amp;amp;keywords=pce+105&amp;amp;x=0&amp;amp;y=0 Steckdosen für Schalttafeleinbau:]&lt;br /&gt;
* Bezugsquelle [http://www.schaeffer-ag.de/ Frontplatten]&lt;br /&gt;
* Bezugsquelle [http://www.lichtlieferant.de/catalogsearch/result/?q=r7s+fassung+sockel Vossloh Fassung R7S für Halogenstäbe]&lt;br /&gt;
* Datenblatt Prozessor [http://ww1.microchip.com/downloads/en/DeviceDoc/39632e.pdf PIC18LF2550]&lt;br /&gt;
* Umfangreicher Thread u.A. Leistungsvermögen, Temperaturmessung und Dämmung [http://www.mikrocontroller.net/topic/270627]&lt;br /&gt;
[[Kategorie:PIC-Projekte]]&lt;/div&gt;</summary>
		<author><name>Frankman</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=Datei:Pcb.png&amp;diff=80581</id>
		<title>Datei:Pcb.png</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=Datei:Pcb.png&amp;diff=80581"/>
		<updated>2014-01-03T12:46:23Z</updated>

		<summary type="html">&lt;p&gt;Frankman: Frankman lud eine neue Version von „Datei:Pcb.png“ hoch&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Frankman</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=Reflow_Ofen_Steuerung&amp;diff=80580</id>
		<title>Reflow Ofen Steuerung</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=Reflow_Ofen_Steuerung&amp;diff=80580"/>
		<updated>2014-01-03T11:54:21Z</updated>

		<summary type="html">&lt;p&gt;Frankman: /* FAQ */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Datei:RFB.jpg|thumb|right|200px|Altium 3D Ansicht]]&lt;br /&gt;
[[Datei:Teilbest2.jpg|750px|teilbestückte Platine]]&lt;br /&gt;
== Einleitung ==&lt;br /&gt;
[[Datei:pcb.png|thumb|right|400px|unbestücktes PCB der Reflow-Ofen-Steuerung]]&lt;br /&gt;
Hier wird eine weitere Reflow-Ofen-Steuerung beschrieben.&lt;br /&gt;
=== Zum Nachbauen ===&lt;br /&gt;
* Spezifikation: [[Datei: Spec Reflow.pdf]]&lt;br /&gt;
* Schaltplan: &lt;br /&gt;
** Minimalversion [[Datei:Schematic Prints Minimal.pdf]]&lt;br /&gt;
** Standardversion [[Datei:Schematic Prints Standard.pdf]]&lt;br /&gt;
** Deluxeversion [[Datei:Schematic Prints Deluxe.pdf]]&lt;br /&gt;
** Debugversion [[Datei:Schematic Prints Debug.pdf]]&lt;br /&gt;
* Gerberdaten: [[Datei:Gerber Reflow.pdf]]&lt;br /&gt;
* Assemblydrawing: [[Datei:Assembly Reflow.pdf]] &lt;br /&gt;
* Altium-Files: [[Datei:Reflow.zip]]&lt;br /&gt;
* Stückliste als CSV: [[Datei:Reflow.csv]]&lt;br /&gt;
* Stückliste als Open Office: [[Datei:Reflow.ods]]&lt;br /&gt;
* PC Programm: TBD&lt;br /&gt;
* Sourcen PC-Programm: TBD&lt;br /&gt;
* PIC Programm (*.hex): [http://sourceforge.net/projects/reflowofensteue/ ]&lt;br /&gt;
* Sourcen Pic-Programm: [http://sourceforge.net/projects/reflowofensteue/ ]&lt;br /&gt;
* Step-File Steckdose:[[Datei:Steckdose.stp]]&lt;br /&gt;
&lt;br /&gt;
=== Motivation ===&lt;br /&gt;
Die Gründe, eine weitere Steuerung zu entwerfen, waren:&lt;br /&gt;
&lt;br /&gt;
* Die Möglichkeit, auch größere Öfen mit 2 Phasen betreiben zu können.&lt;br /&gt;
* Die Steuerung universell zu gestalten. Es sollte möglich sein, diese nicht nur zum Reflow löten zu verwenden....z.B:&lt;br /&gt;
** Temperatursteuerung für Klimakammer (Heizen, Kühlen)&lt;br /&gt;
** Dimmer mit USB&lt;br /&gt;
** Temperaturregler für ein Tisch-Fondue ( Temperatur halten)&lt;br /&gt;
** Drehzahlsteller mit USB&lt;br /&gt;
** Switchpack&lt;br /&gt;
* Die Schaltung sollte in Altium entwickelt werden. (Warum kein Eagle??? Altium User wissen es.... :-)&lt;br /&gt;
* Die Schaltung sollte mit USB ausgestattet sein.&lt;br /&gt;
&lt;br /&gt;
=== Eigenschaften &amp;amp; Spezifikationen ===&lt;br /&gt;
* Temperaturmessung: bis zu 2x &#039;&#039;&#039;Thermoelement&#039;&#039;&#039; (K-Typ) mit MAX6675 (abgekündigt) oder Nachfolger MAX31855 (pin- aber nicht softwarekompatibel)&lt;br /&gt;
* Leistungsstufen: &#039;&#039;&#039;3 voneinander unabhängige&#039;&#039;&#039; Triacs 800V 25A, limitiert auf &#039;&#039;&#039;10A @ 250VAC&#039;&#039;&#039; (z.B. Oberhitze, Unterhitze, Umluft)&lt;br /&gt;
* Nulldurchgangserkennung ermöglicht Wellenpaket-, und Phasenabschnittssteuerung * Galvanische Trennung der Leistungsendstufen&lt;br /&gt;
* 1x MOSFET-Ausgang PWM z.B. für 12V Lüfter, max. &#039;&#039;&#039;55V 3,5A&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;4 feste Programme&#039;&#039;&#039; im EEPROM über 2-Tasterbedienung und LEDs wähl- und ausführbar. &lt;br /&gt;
* &#039;&#039;&#039;PC-unabhängiger Betrieb&#039;&#039;&#039; möglich. &lt;br /&gt;
* Beliebig viele Programme möglich, bei Betrieb am Computer &lt;br /&gt;
* Mini-USB-Buchse zur Steuerung / Programmierung über GUI und zum Entwickeln. - Dafür ist &#039;&#039;&#039;keine Netzspannung&#039;&#039;&#039; erforderlich&lt;br /&gt;
* Günstiges passendes Gehäuse&lt;br /&gt;
* Alle LEDs und Taster auf &#039;&#039;&#039;Stiftleisten&#039;&#039;&#039; herausgeführt, für eigene Gestaltung der Frontblenden&lt;br /&gt;
* PID-Temperaturregler&lt;br /&gt;
* UART, SPI, I2C und 2x ADC auf Stiftleisten herausgeführt, für zukünftige &#039;&#039;&#039;Erweiterungen&#039;&#039;&#039;&lt;br /&gt;
* Versorgung über USB &amp;lt; 100mA, interne Versorgungsspannung 3,3V&lt;br /&gt;
* umfangreiche EMV-gerechte Entstörung für den Bedarfsfall&lt;br /&gt;
&lt;br /&gt;
=== Zusätzliches Benötigtes Material ===&lt;br /&gt;
* Leiterplatte (1 Stück)&lt;br /&gt;
* Gehäuse Hammond Teilenummer: RM2055L (1 Stück)&lt;br /&gt;
* Alternativ:Gehäuse Hammond Teilenummer: RM2055M (Wenn keine Steckdosen angebracht werden sollen)&lt;br /&gt;
* Alternative: Gehäuse Hammond (Hier muss man die Leiterplatte selber befestigen) Teilenummer: 1455T2201 (1 Stück)&lt;br /&gt;
* Einbausteckdosen Teilenummer: PEC 105 (2-3 Stück, je nach Ausbaustufe)&lt;br /&gt;
* PG-Verschraubung (2-3 Stück)&lt;br /&gt;
* Mutter für PG-Verschraubung (2 Stück)&lt;br /&gt;
* Litze blau, mindestens 1,5mm² (ca. 60cm)&lt;br /&gt;
* Litze braun, mindestens 1,5mm² (ca. 60cm) &lt;br /&gt;
* Litze gelb/grün, mindestens 1,5mm² (ca. 60cm)&lt;br /&gt;
* Aderendhülsen  mit Schutzkragen dazu ( 9 Stück für die Steckdosen)&lt;br /&gt;
* Schrauben, um die Leiterplatte zu befestigen (4 Stück)&lt;br /&gt;
* evtl. Abstandsbolzen dazu, falls das alternative Gehäuse verwendet wird (4 Stück)&lt;br /&gt;
* evtl. Muttern dazu, falls das alternative Gehäuse verwendet wird (4 Stück)&lt;br /&gt;
* Schrauben, Senkkopf DIN 7991 oder DIN 965 M4 X 10 um die Steckdosen zu befestigen (12 Stück)&lt;br /&gt;
* Muttern dazu M4 (12 Stück)&lt;br /&gt;
* Federschreiben  dazu DIN 127 M4 (12 Stück)&lt;br /&gt;
* Glimmerscheiben für Triac (2-3 Stück, je nach Ausbaustufe)&lt;br /&gt;
* Isoliernippel für Triacmontage (2-3 Stück, je nach Ausbaustufe)&lt;br /&gt;
* Zylinderkopfschraube M3 X 12 für Triacmontage (2-3 Stück, je nach Ausbaustufe)&lt;br /&gt;
* Mutter M3 für Triacmontage (2-3 Stück, je nach Ausbaustufe)&lt;br /&gt;
* Beilagscheibe M3 für Triacmontage (2-3 Stück, je nach Ausbaustufe)&lt;br /&gt;
* Isolierband für Triacmontage (ca. 300mm)&lt;br /&gt;
* Gummifüße für das Gehäuse (4 Stück)&lt;br /&gt;
&lt;br /&gt;
=== Kühlkörpermontage===&lt;br /&gt;
* Der Kühlköper sollte 38mm hoch sein, so passt er gut in die angegebenen Gehäuse&lt;br /&gt;
* Der Kühlkörper MUSS isoliert montiert werden, also Glimmerscheibe und Isoliernippel einsetzen und NACHMESSEN, ob der Kühlkörper auch wirklich keinen Kontakt zum Triac hat!&lt;br /&gt;
* Da die 230-V-Leiterbahnen nur durch den Stopplack vom Kühlkörper getrennt sind, sollte die Isolation mit zwei Lagen Gewebe- oder Isolierband verstärkt werden. Das Isolierband kann auf die Leiterplatte oder unter den Kühlkörper geklebt werden.&lt;br /&gt;
* Als Bohrungsmaß empfehle ich 20mm über der Leiterplatte.&lt;br /&gt;
* Entweder Bohrung 3,2mm für Durchgangsloch &lt;br /&gt;
* Oder Bohrung 2,5mm mit M3-Gewinde&lt;br /&gt;
&lt;br /&gt;
== Schaltung==&lt;br /&gt;
=== PIC18LF2550 Grundbeschaltung ===&lt;br /&gt;
[[Datei:osc_vs_vcc.png|thumb|right|200px|Taktraten und Versorgungsspannung PIC18F2550 vs. PIC18LF2550, Datenblatt S. 370/438]]&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 3/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Hier kommt ein PIC18&#039;&#039;&#039;L&#039;&#039;&#039;F2550 zum Einsatz. Er verfügt über eine USB-Schnittstelle und ist für Betriebsspannungen von 2 ... 5,5V ausgelegt. Sein Verwandter PIC18F2550 (ohne L) ist nicht für Betriebsspannungen &amp;lt; 4,2V ausgelegt. Dies ist bei USB sowieso nicht immer erfüllt und die Thermoelement-ICs vertragen ohnehin keine 5V, daher wurde die Betriebsspannung auf 3,3V reduziert. Neben Standard-Decoupling (100nF Kerko pro Vcc-Vss-Pärchen) wurde das ICSP-Interface in alt bewährter Pinbelegung (PICKit1,2,3) angebracht. PGD und PGC sind nicht weiter beschaltet, MCRL wird , wie immer als Resetpin verwendet. Der Resetschalter findet sich auf dem Top-Sheet (Schaltplan S. 1/22). Die Taktversorgung erfolgt über einen 24 MHz Quarz (-&amp;gt; USB). Man beachte diesbezüglich rechts stehende Grafik zu Taktraten und Versorgungsspannungen (Vdd bzw. auch Vcc genannt). Auch zu finden im Datenblatt des PICs auf Seite 370.&lt;br /&gt;
&lt;br /&gt;
=== PIC18LF2550 USB Beschaltung ===&lt;br /&gt;
[[Datei:usb_part.png|thumb|right|200px|PIC18(L)F2550&lt;br /&gt;
 Standard &lt;br /&gt;
USB-Beschaltung am PIC]]&lt;br /&gt;
[[Datei:usb_protect.png|thumb|right|200px|USB-Schutzbeschaltung und Mini-USB-Buchse]]&lt;br /&gt;
&lt;br /&gt;
Die Beschaltung der USB-Schnittstelle am PIC ist 1:1 aus dem Datenblatt übernommen. Zum Einsatz kommt eine Mini-USB-Buchse (J1).&lt;br /&gt;
Der Gedanke war: Erstens ein sehr preiswertes, fertiges Netzteil verwenden zu können, (ca. 3,67 € bei druckerzubehoer.de) und zweitens, die Steuerung auch mit dem PC / Laptop versorgen zu können.&lt;br /&gt;
Somit kann die Schaltung OHNE 230V betrieben und debuggt werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 4/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
FER1,2 und C7 filtern den Schirm nach GND. Standardmäßig wird man hier wohl 0-Ohm-Widerstände einsetzen. Falls ein Besuch im EMV-Labor geplant ist, weicht man auf den Ferrit aus. C5 und C6 filtern das Signal zusammen mit der Common-Mode-DrosselL1. Die Drossel kann mit den 0-Ohm-Brücken R8 und R9 überbrückt (gespart) werden. IC2 ist als ESD-Schutz gedacht und kann ebenfalls bei ausgeprägten Kostenbewustsein gespart werden. Die Widerstände R6 und R7 dürfen NICHT bestückt werden. FER1,2, C5, IC2 müssen nicht zwingend bestückt werden. Die Bestückung wurde vorgehalten um im Problemfall einfache Abhilfe schaffen zu können.&lt;br /&gt;
&lt;br /&gt;
=== 3,3V Spannungsversorgung ===&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 2/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Die 3,3V Versorgungsspannung für die gesamte Platine wird aus V_USB mittels des LDO Spannungsreglers TOREX - XC6206P332MR abgeleitet. Günstig, SOT-23, klein, 2x 1µF Kondensatoren benötigt, 3,3V max. 250mA. Der hat auch einen sehr kleinen Ruhestrom.&lt;br /&gt;
&lt;br /&gt;
=== Taster ===&lt;br /&gt;
*Der Resettaster zieht den MCLR-Pin nach GND und löst damit den Reset aus. MCLR  ist mit einem 10k Pullup versehen.&lt;br /&gt;
*Die übrigen beiden Taster ziehen RA4 bzw. RB5 ebenfalls nach GND.&lt;br /&gt;
&lt;br /&gt;
=== LEDs + ULN2003L ===&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 11/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Um alle LEDs auf der Platine (3x Optotriac + 7x Status) ansteuern zu können wurde auf das 7fach Darlington-Array ULN2003L zurückgegriffen. Die PIC-Ausgänge könnten zwar die LEDs direkt steueren. Aber so werden alle Ausgänge einheitlich nach Masse geschaltet. Das verbessert die Testbarkeit der ganzen Platine. ( Mit einem kurzen Masse-Draht kann zur Not der entsprechende Ausgang gesetzt werden, ohne etwas zu zerstören.)&lt;br /&gt;
&lt;br /&gt;
=== MOSFET-Leistungsausgang ===&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 22/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Hier kommt der einfacher N-Kanal MOSFET (LogicLevel) PHT8N06LT zum Einsatz. Er wird über das ULN2003L Array getrieben und ermöglicht den Anschluss eines DC-Verbrauchers mit max. 55V bei 3,5A. Hier könnte beispielsweise ein PC-Lüfter zur Kühlung oder für Umluft angeschlossen und über PWM geregelt/gesteuert werden. Ein Gatewiderstand von 100 Ohm ist zum Schutz des Treibers vorgesehen. Eine 0-Ohm-Brücke ist stattdessen aber auch möglich, wenn man eine höhere Leistung schalten möchte.Die Leiterbahnen sollten die 3A schon hergeben. Der 100 Ohm Widerstand bildet eine Stromquelle. Sobald der Strom durch den MOSFET und den Widerstand 33mA erreicht, sinkt UGS gegen 0 V. Folge: Der Mosfet sperrt ( und bleibt ganz....)&lt;br /&gt;
Es kann hier prinzipiell auch ein anderer Mosfet im SOT223-Gehäuse zum Einsatz kommen. Achten sollte man darauf, das der MOSFET schon bei 3,3V Ugs gut leiten sollte.&lt;br /&gt;
&lt;br /&gt;
=== Nulldurchgangserkennung ===&lt;br /&gt;
[[Datei:zerocross.png|thumb|right|200px|Nulldurchgangserkennung]]&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 5/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Die Nulldurchgangserkennung erfolgt nach einer sehr bekannten - jedoch ausgeklügelten - Schaltung.  [http://www.dextrel.net/diyzerocrosser.htm siehe: Dextrel]&lt;br /&gt;
Während einer Halbwelle wird C14 über R33 und R35 bzw. D5 geladen. Währenddessen ist T1 gesperrt. Sobald die Wechselspannung (L1-N über Spannungsteiler (R33+R35) / R34) kleiner ist als die Spannung über C14, steuert T1 durch. Dann entlädt sich C14 über den LED-Vorwiderstand R32. Der durch-steuernde Optokoppler zieht die Sync-Leitung nach GND. (Pullup Sync-Leitung = R31). Dies löst beim PIC auf INT2 einen Interrupt aus. &lt;br /&gt;
Dieser Interrupt ermöglicht eine präzise Wellenpaket-, Phasenanschnittsteuerung je nach Bedarf. Das Schalten im Nulldurchgang bei der Wellenpaketsteuerung reduziert EMV-Störungen. Für Phasenanschnitt ist ohnehin eine Nulldurchgangserkennung notwendig. Außerdem liefert sie eine genaue Zeitbasis für alle Programmabläufe.&lt;br /&gt;
&lt;br /&gt;
=== Triac-Ausgänge + Snubber ===&lt;br /&gt;
[[Datei:triac.png|thumb|right|200px|Triac-Ausgangsbeschaltung]]&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 19,20,21/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Die Ansteuerung des eigentlichen Leistungstriacs BTA140-800 erfolgt über den Optotriac IS6005. Der Strom durch Letzteren wird durch R1x limitiert (Vorwiderstand). R2x und R5x limitieren wiederum den Strom durch den Optotriac. Wenn dieser zündet so folgt unmittelbar der &amp;quot;Leistungstriac&amp;quot; der dann die Last schaltet.&lt;br /&gt;
&lt;br /&gt;
S1x ist ein Sicherungshalter um die Lasten einzeln absichern zu können. Wert 10A Mittelträge.&lt;br /&gt;
&lt;br /&gt;
R3x, R4x, C3x bilden ein Snubber-Network, L1X verhindert eine zu schnelle Stromanstiegsgeschwindikeit damit der Triac nicht &amp;quot;von selbst&amp;quot; zündet. Weglassen äußert sich meist in einem fast nicht hörbaren Click. Damit zeigt einem dann der Triac, dass er ab jetzt für immer recht niederohmig geworden ist. Die Regelung der Temperatur braucht dann nicht mehr über den Prozessor erfolgen, sondern nur noch mit dem Ein-/Ausschalter..... :-)&lt;br /&gt;
&lt;br /&gt;
=== Thermoelemente (MAX6675/MAX31855)  ===&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 6,7/22&#039;&#039;&#039;&lt;br /&gt;
Der inzwischen abgekündigte MAX6675 bzw. sein ehrenwerter Nachfolger MAX31855 sind einfach zu handhabende Thermoelement-ICs mit Kaltstellenkompensation. Thermoelemente funktionieren durch das Verschweißen zweier verschiedener Legierungen (beim K-Typ Thermoelemnt Ni und CrNi). Durch den durch die Umgebungstemperatur bedingten Wärmefluss zwischen beiden entsteht ein elektrische Spannung. Diese wird von besagten ICs verstärkt und digitalisiert (ADC). Diese Spannung / Temperatur ist natürlich wieder relativ zur Umgebungstemperatur an der Kaltstelle (Kontaktierung der beiden Drähte mit dem Messinstrument). Daher messen diese ICs auch gleich die Umgebungstemperatur (Kaltstellenkompensation genannt) mit, verrechnen das und geben das Ergebnis auf der SPI-Schnittstelle aus. MAX6675 leistet 12bit also 0,25°C Auflösung (nicht Genauigkeit!) über einen Temperaturbereich von 0°C to +1024°C. Außerdem wird ein nicht/fehlerhaft angeschlossenes Thermoelement erkannt. Der Thermocouple-IC wird an die SPI-Schnittstelle des PICs angeschlossen (hier MSSP genannt). &lt;br /&gt;
&lt;br /&gt;
MAX6675 und MAX31855 scheinen entgegen der Adafruit-Information [http://www.adafruit.com/products/269] doch pinkompatibel zu sein - die Ansteuerung unterscheidet sich jedoch definitiv. (Zitat: &amp;quot;Now uses the MAX31855K instead of the MAX6675, so it can measure a wider temperature measurement range. Please note! the MAX31855 is not pin compatible or drop-in code compatible with the MAX6675. We do have an Arduino library for both chips but you&#039;ll need to adjust any existing MAX6675 designs for the mew MAX31855. The MAX6675 has been discontinued by Maxim.&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Es wurden 2 dieser ICs und damit 2 Temperaturmessstellen vorgesehen. Dies ermöglich die Messung für eine Regelung der Temperatur so wie eine zusätzliche Überwachung kritischer Bauteile (z.B. ICs oder LEDs). Die Minimalbestückung sieht einen MAX6675/MAX31855 vor. Die Auswahl in der Firmware erfolgt über einen der beiden GPIO-Pins RA5 oder RA0 via dem ChipSelect (CS) des MAX6675/MAX31855.&lt;br /&gt;
&lt;br /&gt;
Neben dem MAX6675/MAX31855 wurde ein Decoupling-Kondensator (C8x, Standard 100nF) so wie ein weiterer im Messpfad (C9x) zur Zwecken der Entstörung vorgeshen. C9x 100nF sollte nur bestückt werden wenn Probleme bei der Temperaturmessung entstehen (z.B. unrealstisch stark schwankende Werte).&lt;br /&gt;
&lt;br /&gt;
=== ADC, SPI, UART &amp;amp; I2C Stiftleiste ===&lt;br /&gt;
ADC, SPI, UART und I2C sind zu Zwecken der Kalibrierung / Erweiterung / Einstellung / Debugging auf Stiftleisten herausgeführt:&lt;br /&gt;
Ähnlichkeiten mit dem FTDI-USB-TTL-Kabel bzw. Arduino XXX Bla Bla Bla Schnittstellenkonverter sind natürlich rein zufällig.&lt;br /&gt;
&lt;br /&gt;
Die I2C-Schnittstelle wurde auf eine Stiftleiste geführt, um z.B. einem LM75 o.ä. anschließen zu können. Damit stehen zur Kalibrierung der Thermoelemente genaue Temperaturen zur Verfügung.&lt;br /&gt;
&lt;br /&gt;
Die Stiftleisten haben alle ein Raster von 2,54mm. So können Pin-Header, Wannenstecker oder ähnliches verwendet werden.&lt;br /&gt;
&lt;br /&gt;
Da ja viele Leute eigene Vorstellungen bezüglich der Frontplattengestaltung haben, wurden auch die Taster und LEDs auf Stiftleisten geführt.&lt;br /&gt;
&lt;br /&gt;
=== Kühlkörper ===&lt;br /&gt;
Da die Triacs der Steuerung für bis zu 10A pro Kanal ausgelegt sind, kann man auf die Kühlkörper nicht verzichten. Es fallen bei 10A bis zu 13 Watt Wärme pro Triac ab. Falls mann auf die Kühlkörper doch verzichten möchte, sollte man darauf achten, die Triacs mit dem Kopf nach unten einzubauen. Diese können sich dann bei Überlast ganz von selber auslöten.... :-)&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red;&amp;quot;&amp;gt; Die Triacs müssen mit Glimmerscheibe und Isoliernippel -ALSO ISOLIERT ZUM KÜHLKÖRPER- montiert werden.&lt;br /&gt;
Außerdem muss unter dem Kühlkörper ein Stück Isolierband oder FR4 oder Nylon-Scheiben beigelegt werden, um zu verhindern, dass der Stopplack der Leiterplatte beschädigt wird. In diesem Falle hätte man Potential auf dem Kühlkörper.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Gehäuse ===&lt;br /&gt;
Die Leiterplatte wurde für ein Gehäuse von Hammond entwickelt.&lt;br /&gt;
Das Gehäuse ist zwar keine Schönheit, aber doch recht preiswert.&lt;br /&gt;
Typenbezeichnung: RM2055M oder etwas größer RM2055L&lt;br /&gt;
&lt;br /&gt;
== Firmware PIC ==&lt;br /&gt;
* Die Entwicklung der Firmware für den PIC18LF2550  erfolgt mit MPLABX und dem C18 Compiler. &lt;br /&gt;
* MPLABX ist kostenlos, der C18 Compiler bis auf die stärkste Optimierungsstufe ebenfalls. &lt;br /&gt;
* Die Quellen für die Firmware sind offengelegt und können von Sourceforge bezogen werden, siehe Links, weiter unten.&lt;br /&gt;
&lt;br /&gt;
=== Programmstruktur- und ablauf ===&lt;br /&gt;
Nach anfänglicher Initialisierung des PIC startet die Statemachine [http://http://www.mikrocontroller.net/articles/Statemachine] [http://http://de.wikipedia.org/wiki/Endlicher_Automat]. Neben ihr findet in der main-Funktion nur noch die Abfrage der beiden Bedientasten statt. Mit dem Tastendruck wird zum Zwecke der Entprellung ein Timer gestartet. Alles Andere (incl. PID-Regelung, Wellenpaket- bzw. Phasenan- und Phasenabschnittssteuerung und USB) ist interruptbasiert.&lt;br /&gt;
=== Reflow-Ofen-Konfiguration ===&lt;br /&gt;
&lt;br /&gt;
=== Taktversorgung, Nulldurchgangserkennung und Zeitbasis ===&lt;br /&gt;
=== USB ===&lt;br /&gt;
=== SPI für MAX6675 ===&lt;br /&gt;
=== SPI für MAX31855 ===&lt;br /&gt;
&lt;br /&gt;
=== Wellenpaketsteuerung ===&lt;br /&gt;
=== Phasenanschnitt ===&lt;br /&gt;
&lt;br /&gt;
=== PWM für MOSFET ===&lt;br /&gt;
=== PIC-Configword ===&lt;br /&gt;
&lt;br /&gt;
=== Zuordnung Outputs ===&lt;br /&gt;
[[Datei:pinning.png|thumb|right|400px|Input/Output-Funktions-Tabelle]]&lt;br /&gt;
&lt;br /&gt;
*In1 = RC2 = PIN13 = ULN5--&amp;gt;12 = OUT1 = PWM &lt;br /&gt;
*In2 = RB3 = PIN24 = ULN6--&amp;gt;11 = OUT2 = TRIAC_A (1) = K5&lt;br /&gt;
*In3 = RB4 = PIN25 = ULN7--&amp;gt;10 = OUT3 = TRIAC_B (2)= K2&lt;br /&gt;
*In4 = RA2 = PIN4  = ULN4--&amp;gt;13 = OUT4 = LED_PRG1 = OPTO D&lt;br /&gt;
*In5 = RC0 = PIN11 = ULN3--&amp;gt;14 = OUT6 = LED_PRG2 = OPTO F&lt;br /&gt;
*In6 = RC1 = PIN12 = ULN2--&amp;gt;15 = OUT7 = LED_PRG3 = OPTO G&lt;br /&gt;
*In7 = RA3 = PIN5  = ULN1--&amp;gt;16 = OUT5 = LED_PRG4 = OPT= E&lt;br /&gt;
&lt;br /&gt;
TRIAC1 ist nahe dem Zerocross&lt;br /&gt;
&lt;br /&gt;
== PC-Software (GUI) ==&lt;br /&gt;
[[Datei:gui_alpha.png|thumb|right|300px|Screenshot der GUI (noch Alpha) für den Reflow-Ofen-Controller]]&lt;br /&gt;
&lt;br /&gt;
Die GUI (englisch Graphical User Interface) ist der Einfachheit halber in VB.net programmiert und momentan noch im Alpha-Stadium. Auch hierfür liegen die Quellen später selbstverständlich offen.&lt;br /&gt;
&lt;br /&gt;
=== Funktionen und Modi ===&lt;br /&gt;
[[Datei:modi.png|thumb|right|400px|Auswahl der beschriebenen Modi durch Klick]]&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Ofen-Profil&amp;quot;&#039;&#039;&#039; - Es wird ein Programm (Temperaturkurve) aus dem EEPROM des Reflow-Ofens ausgeführt. Der Backvorgang kann mit der Software gesteuert (START, STOP, ...) und überwacht werden. Hierzu stehen Temperatur, Temperaturänderung, Heizleistung (Ober- und Unterhitze, Lüfter) so wie die graphische Darstellung im zentralen Diagramm zur Verfügung. Eingriffsmöglichkeiten, wie das Ändern der Temperaturkurve sind nicht vorgesehen. Dies soll ein reiner Überwachungs-Modus sein. Um die Temperaturkurve zu verändern zu können, sollte der Modus &amp;quot;PC-Profil&amp;quot; verwendet werden und die Temperaturkurve aus dem EEPROM importiert werden. Dann kann Selbige auch verändert und anschließend ausgeführt bzw. verändert in den EEPROM zurückgeschrieben werden. Dieser Modus stellt ein Äquivalent zur START/STOP-Tasten-Bedienung an der Platine dar und kann selbstverständlich parallel dazu genutzt werden. Die GUI also als Addon zum Stand-Alone-Betrieb.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;PC-Profil&amp;quot;&#039;&#039;&#039; - Es wird ein Programm (Temperaturkurve) ausgeführt welche zuvor am Computer erstellt / editiert wurde. In diesem Modus gibt der Computer Temperaturwerte vor, welche live über die USB-Schnittstelle zum PIC übertragen werden und mit dem dort integrierten PID-Regler ausgeführt werden. Das ermöglicht eine on-the-fly Veränderung der Temperaturkurve während des Backvorgangs. Temperaturkurven können aus Dateien oder dem EEPROM importiert und auch wieder exportiert werden. CSV-Dateien können ebenfalls importiert und exportiert werden. Die &amp;quot;Eingabe&amp;quot; der Temperaturkurve erfolgt entweder über Import (CSV/EEPROM), per Mausklick auf dem zentralen Diagramm oder im sog. DataGridView. Weiteres siehe Unterpunkt &amp;quot;Eingabe der Temperaturkurve (Reflowprofil)&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;manueller Ablauf&amp;quot;&#039;&#039;&#039; - In diesem Modus wird (im Gegensatz zu den oberen beiden Modi &amp;quot;Ofen-Profil&amp;quot; und &amp;quot;PC-Profil&amp;quot;) keine Temperatur geregelt. Hier wird die Leistung des Ofens in % eingestellt und gesteuert. Der PID-Regler ist nicht in Aktion. Die Temperatur, Temperaturänderung so wie der Temperaturverlauf werden selbstredend angezeigt bzw. im Diagramm dargestellt. Der Modus &amp;quot;manueller Ablauf&amp;quot; fährt ähnlich dem Modus &amp;quot;PC-Profil&amp;quot; die im DataGridView eingetragenen Leistungs-Zeit-Punkte ab. Für jeden Zeitpunkt ist eine Leistung vorgegeben. Die Eingabe erfolgt ähnlich wie unter &amp;quot;Eingabe der Temperaturkurve (Reflowprofil)&amp;quot; beschrieben. Nur eben, dass eine Leistung und keine Temperatur angegeben wird. Die Eingabe der Leistung kann nicht im Zeit-Temperatur-Diagramm erfolgen sondern mittels der Schieberegler oder direkt tabellarisch.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;manueller Modus&amp;quot;&#039;&#039;&#039; - Dieser Modus enthält 2 Submodi&lt;br /&gt;
** &amp;quot;manueller Leistungsmodus&amp;quot; - Auch in diesem Modus wird die Leistung gesteuert. Es wird keine Temperatur geregelt, der PID-Regler für die Temperatur ist nicht in Betrieb. Die Einstellung hier erfolgt über die drei Schieberegler oder über eine numerische Eingabe durch Klick auf die Leistungsangabe unter dem Schieberegler. Durch Klick auf die Texte &amp;quot;TOP&amp;quot;, &amp;quot;BOTTOM&amp;quot;, &amp;quot;FAN&amp;quot; (Oberhitze, Unterhitze, Lüfter) können selbige deaktiviert bzw. aktiviert werden. Auch in diesem Modus wird Temperatur, Temperaturänderung so wie der Temperaturverlauf dargestellt.&lt;br /&gt;
** &amp;quot;manueller Temperaturmodus&amp;quot; - Hier wird die Temperatur wieder mittels des Temperatur-PIDs geregelt. Die Temperatur wird entweder mittels Schieberegler (Ober- und Unterhitze-Regler sind jetzt gekoppelt) oder durch eine numerische Eingabe unterhalb der Schieberegler vorgegeben. Anzeige wie im &amp;quot;manuellen Leistungsmodus&amp;quot;. Der Lüfter kann unabhängig vom PID in seiner Leistung geregelt werden. Ein evtl. durch den Luftstrom verursachter Temperaturabfall wird vom PID selbstverständlich ausgeregelt (aus diesem Grunde ist es ja ein Regler).&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Programmieren&amp;quot;&#039;&#039;&#039; - Hier kann ein neues &#039;&#039;&#039;Temperatur&#039;&#039;&#039;-Programm für den EEPROM-Speicher des Ofens erstellt und editiert werden. Die Eingabemöglichkeiten sind unter &amp;quot;Eingabe der Temperaturkurve (Reflowprofil)&amp;quot; beschrieben. Dieser Modus ist zum reinen Programmieren des Ofens gedacht und ermöglicht keine weitere Steuerung oder Überwachung des Ofens.&lt;br /&gt;
&lt;br /&gt;
=== Eingabe der Temperaturkurve (Reflowprofil) ===&lt;br /&gt;
[[Datei:datagridview.png|thumb|right|400px|tabellarische Anzeige und Editiermöglichkeit der Temperaturkurve]]&lt;br /&gt;
Die Eingabe der Temperaturkurve erfolgt entweder über Import (CSV/EEPROM), per Mausklick auf dem zentralen Diagramm oder im sog. DataGridView (Excel-ähnliche Bedienung in tabellarischer Form). &lt;br /&gt;
&lt;br /&gt;
* CSV-Import + Export&lt;br /&gt;
* EEPROM-Import + Export&lt;br /&gt;
* Im rechts stehenden Screenshotbeispiel wird eine tabellarische Eingabeform mit einem DataGridView gezeigt: Die Temperatur (erster Temperaturpunkt = Punkt 0) von 100°C wird linear über einen Zeitraum von 0-30s verteilt. Bei 30s hat der Ofen die Temperatur von 100°C. Dafür setzt die Regelung die Oberhitze, die Unterhitze ein. Der Lüfter ist deaktiviert. In der Zeit von 30s bis 120s wird die Temperatur nun von 100°C auf 150°C linear angehoben. Von 120s bis 180s Backzeit steigt die Temperatur von 150°C auf 250°C. Von 180s bis 200s wird die Temperatur auf 280°C angehoben. Anschließend wird sie zwischen 200s und 220s auf 280°C gehalten (280°C@200s und 280°C@220s) um dann bis 240s wieder auf 250°C zu fallen. Bis zum Zeitpunkt 300s wird dann die Temperatur 30°C angestrebt. Zusätzlich ist der Lüfter nun aktiviert (soweit der Ofen eine Umluftfunktion besitzt). Bei Punkt 7 sind Ober- und Unterhitze deaktiviert nur noch der Lüfter kühlt. Da hier bei &amp;quot;Zeit[s]&amp;quot; die 0 eingetragen wird der Zustand (hier nur Lüfter an) für einen unendlich langen Zeitraum auf 0 gehalten. Also so lange wie das Programm aktiviert ist wird der Lüfter laufen. Natürlich könnte man hier auch z.B. 100°C und Zeitpunkt 0s eintragen. Dann würde der Ofen bis zum manuellen Beenden des Programms (klick auf STOP-Button oder Drücken des START/STOP-Tasters auf der Platine/Steuerung) 100°C halten.&lt;br /&gt;
* Alle Zellen des DataGridView sind editierbar (zur Veränderung der Temperatur, Zeitpunkt, ...)&lt;br /&gt;
* Direkter Klick auf das zentrale Temperatur-Zeit-Diagramm trägt den Zeitpunkt so wie die Temperatur unter dem Mauszeiger in die Tabelle (das DataGridView) ein. Die ausgewählte Zeile wird beschrieben oder überschrieben. Neue Zeilen (also Temperatur-Zeit-Punkte) können durch klick auf den &amp;quot;Plus-Button&amp;quot; hinzugefügt werden. Ebenso ist das Löschen oder Verschieben einer oder mehrerer Zeile gleichzeitig möglich.&lt;br /&gt;
&lt;br /&gt;
=== Beschreibung der Steuerungsmöglichkeiten ===&lt;br /&gt;
In Abhängigkeit des gewählten Modus bestehen einige Steuerungs-, Einstellungs- und Kontrollmöglichkeiten:&lt;br /&gt;
* &#039;&#039;&#039;Schieberegler&#039;&#039;&#039; für Temperatur od. Leistung (je nach Modus) für Oberhitze, Unterhitze und Lüfter. Je nach Hardwareausführung. &lt;br /&gt;
** Klick auf &amp;quot;TOP&amp;quot;, &amp;quot;BOTTOM&amp;quot; oder &amp;quot;FAN&amp;quot; aktiviert oder deaktiviert die entsprechende Funktion bzw. Hardware.&lt;br /&gt;
** Numerische Eingabe der Werte für die Schieberegler durch Klick auf die Anzeige unterhalb der Schieberegler. Werte können auch im deaktivierten Zustand angegeben werden. Die Übernahme erfolgt durch den &amp;quot;Aktivierungsklick&amp;quot; auf &amp;quot;TOP&amp;quot;, &amp;quot;BOTTOM&amp;quot; oder &amp;quot;FAN&amp;quot;&lt;br /&gt;
* &#039;&#039;&#039;T1, dT1, T2, dT2&#039;&#039;&#039; - Anzeige der gemessenen Temperatur so wie die momentane Temperaturänderung am jeweiligen Sensor. &lt;br /&gt;
* &#039;&#039;&#039;Bedienbuttons&#039;&#039;&#039;&lt;br /&gt;
** Play - Startet das Programm am angegebenen Startpunkt (siehe unten)&lt;br /&gt;
** Pause - Pausiert das Programm - weitere Pauseoptionen siehe unten&lt;br /&gt;
** Stop - Stopt den Programmablauf&lt;br /&gt;
** Vor / Zurück - Springt zwischen Temperaturpunkten hin und her. Dient zum überspringen oder zurückspringen zu gewissen Temperatur-Zeit-Punkten. Ermöglicht z.B. das Überspringen eines Ablaufes der eine lange Preheat- oder Dryphase hat.&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Status&amp;quot;&#039;&#039;&#039; - zeigt den aktuellen Zustand des Programms an (READY, START, WAITING, PAUSE, ...)&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;RESET&amp;quot;&#039;&#039;&#039; - setzt das (begonnene) Programm zurück. Beinhaltet neben dem Programmablauf auch das Zurücksetzen der graphischen Anzeige des Diagramms, etc.&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Startpunkt&amp;quot;&#039;&#039;&#039; - legt den ersten Punkt des Programmablaufes fest. &lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Wiederholungen&amp;quot;&#039;&#039;&#039; - ermöglicht das wiederholte Backen ohne das Programm händisch immer wieder neu starten zu müssen. Die Anzahl der Wiederholungen ist einstellbar (0 für unendlich viele) und es ist eine Wartezeit zwischen den Wiederholungen einstellbar. Alternativ kann eine Meldung nach jedem vollendeten Backvorgang abgegeben werden. Nach Bestätigung dieser wird die nächste Wiederholung ausgeführt.&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Pause&amp;quot;&#039;&#039;&#039; - Pauseneinstellungen. Hier sind Optionen wählbar was passieren soll, falls der Pausebutton betätigt wird:&lt;br /&gt;
** Pausezeit - gibt an wie lange die Pause dauern soll [s], danach fährt das Programm automatisch gemäß des gewählten Pausemodus fort. Für eine Pause ohne automatisches Fortfahren (Countdowntimer) &#039;0&#039; angeben.&lt;br /&gt;
** Pausemodus &amp;quot;aktuelle Temperatur halten, WarmUp, Fortsetzen&amp;quot; - Ofen hält die Temperatur (Zieltemperatur) des Zeitpunktes als der Pausebutton betätigt wurde. WarmUp bedeutet, dass nach dem Beenden des Pausemodus zunächst die Zieltemperatur wieder erreicht werden &#039;&#039;&#039;muss&#039;&#039;&#039; bevor der nächste Punkt angesteuert wird. Klingt paradox, wenn die Temperatur doch so und so gehalten wird, ist aber nicht so. Die Wahrscheinlichkeit ist hoch, dass der Pausemodus benutzt wird um die Ofentüre zu öffnen und Korrekturen an der Platine vorzunehmen. Unter Umständen ist die Heizung des Ofens jedoch nicht in der Lage den dadurch entstehenden Wärmeverlust zu kompensieren. Fährt das Programm dann sofort fort, so könnten evtl. kritische (Hoch-)Punkte des Lötprofils &amp;quot;unterfahren&amp;quot; werden. Dem wirkt WarmUp entgegen.&lt;br /&gt;
** Pausemodus &amp;quot;aktuelle Temperatur halten, Fortsetzen&amp;quot; - siehe oben, nur ohne WarmUp.&lt;br /&gt;
** Pausemodus &amp;quot;definierte Temperatur halten, WarmUp, Fortsetzen&amp;quot; - siehe oben. Statt der aktuellen Zieltemperatur wird jedoch nun im Pausemodus eine einzustellende Pausetemperatur gehalten. Mit WarmUp.&lt;br /&gt;
** Pausemodus &amp;quot;definierte Temperatur halten, Fortsetzen&amp;quot; - siehe oben, nur ohne WarmUp.&lt;br /&gt;
** &amp;quot;Pausetemperatur&amp;quot; - spezielle Temperatur die bei entsprechender Pausemoduswahl für die Dauer der Pause gehalten wird.&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Ende&amp;quot;&#039;&#039;&#039; - gibt an was am Ende eines durchlaufenen Reflow-Programms passieren soll. Ist der Wiederholungsmodus aktiviert, tritt dieses Ereignis erst nach Durchlauf aller Wiederholungen ein. Folgende Modi sind möglich:&lt;br /&gt;
** automatischer Reset - am Ende des Programms wird alles automatisch zurückgesetzt, alle Graphiken und Anzeigen gelöscht.&lt;br /&gt;
** manueller Reset - am Ende des Programms bleiben alle Anzeigen, Graphiken, etc erhalten und müssen vor Beginn eines neuen Reflowvorgangs händisch durch Klick auf &amp;quot;RESET&amp;quot; zurückgesetzt werden.&lt;br /&gt;
** Benutzermeldung - lässt eine Meldung erscheinen. Alle Anzeigen und Graphiken bleiben erhalten bis der Benutzer diese Meldung bestätigt. Mit Bestätigung dieser Meldung wird ein automatischer Reset vorgenommen.&lt;br /&gt;
&lt;br /&gt;
=== Loggen des Temperaturverlaufes ===&lt;br /&gt;
Es ist möglich jeden Backvorgang in eine CSV-Datei zu loggen. (Software- und PID-Einstellungen). Geloggte CSV-Dateien können eingelesen und im zentralen Temperatur-Zeit-Diagramm begutachtet werden. Ein Ist-Soll-Vergleich ist ebenso möglich wie die direkte Anzeige des Fehlers (&amp;quot;Ist minus Soll&amp;quot;). Dank CSV können die Daten auch mit anderen Programmen (Excel, etc.) weiterverarbeitet werden.&lt;br /&gt;
&lt;br /&gt;
== Ofen / Pizzaofen ==&lt;br /&gt;
=== Leistung und Volumen ===&lt;br /&gt;
* Alls Faustformel wird oft 100W pro Liter Volumen genannt.&lt;br /&gt;
* Ich habe einen sehr preiswerten Ofen gewählt und die &amp;quot;Oberhitze&amp;quot; zusätzlich mit zwei Halogen-Stäben a 300W &amp;quot;verstärkt. Das kostet nicht viel, die Fassung ist für ca. 3 Euro erhältlich, die Halogenstäbe gibt es in jedem Baumarkt. &lt;br /&gt;
* Bezugsquelle Fassung : siehe &amp;quot;Links&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Dämmung ===&lt;br /&gt;
=== Umluft ===&lt;br /&gt;
* Der verwendete Ofen sollte eine Umluftfunktion besitzen, damit sich die Wärme gleichmäßig im Ofen und auf der Leiterplatte verteilen kann.&lt;br /&gt;
&lt;br /&gt;
== FAQ ==&lt;br /&gt;
&lt;br /&gt;
* Q1: Ich habe einen PT100/PT1000 und möchte den anschließen. Geht das?&lt;br /&gt;
** A1: Ja natürlich. Dazu ist aber etwas externe Elektronik notwendig. Sowohl 2 ADC-Pins (mit 3V3 Betriebsspannung als fixe Referenzspannung), als auch die UART und SPI/I2C-Schnittstelle stehen zur freien Verfügung. Für PT100/PT1000 wird für vernünftige Messungen ohnehin eine Verstärkung (meist mit OPV) von Nöten sein. Da der PIC-interne ADC &amp;quot;nur&amp;quot; 10bit Auflösung bietet sollte ein externer 16bit ADC in Betracht gezogen werden um das Potential der PT100/PT1000 auszunutzen.&lt;br /&gt;
*Q2: Ich habe von günstigen Temperaturmessungen mit Dioden gehört. Geht das auch hier?&lt;br /&gt;
**A2: Ja. Die Vorwärtsspannung einer Diode verhält sich linear zur Sperrschichttemperatur. Diese Spannung (bei 25°C einer Si-Diode die bekannten 0,7V) kann mittels OPV verstärkt werden und auf einen Spannungsbereich von 0 ... 3V3 aufgebläht werden. Eine billige Lösung, auf Kosten der Genauigkeit. Doch eine Diode ist laut Datenblatt nur bis 150°C geeignet. Es ist also beim Löten mehr oder weniger Pfusch. Wenn ich schon eine Reflow-Steuerung baue, sollte ich doch nicht an ein paar Euro für eine gescheite Temperaturmessung sparen. Einige Anregungen vom Messgerätehersteller Keithley bzgl. der Halbleiterphysik mit interessanten Formeln [http://www.keithley.de/support/data?asset=50486]. Oder natürlich der Klassiker von Thomas Pfeifer [http://thomaspfeifer.net/backofen_smd_reflow.htm]. Oder ein Beitrag mit LT-Spice Simulation zum Thema [http://www.mikrocontroller.net/topic/270627#2833883].&lt;br /&gt;
* Q3: God why ... ?&lt;br /&gt;
** A3: Because we can !&lt;br /&gt;
* Q4: Ich hab aber noch nie was mit 230V gemacht.&lt;br /&gt;
**A4: Dann würde ich an Deiner Stelle dieses Projekt NICHT nachbauen.&lt;br /&gt;
* Q5: Warum wurde Altium verwendet und nicht Eagle?&lt;br /&gt;
**A5: Weil es uns kostenlos zur Verfügung stand und wesentlich leistungsfähiger ist.&lt;br /&gt;
&lt;br /&gt;
= Verbesserungen Prototyp - Diese haben jedoch keinen Einfluss auf die Funktion der Leiterplatte=&lt;br /&gt;
* Bauteile weiter weg von den Schraublöchern.&lt;br /&gt;
* Dazu Kreis rund um Bohrung auf Bestückdruck.&lt;br /&gt;
* Masseanbindung Quarz.&lt;br /&gt;
* Klemmen weiter weg vom Rand.&lt;br /&gt;
* Klemme und Sicherungshalter weiter auseinander.&lt;br /&gt;
* Bohrungen für Drossel 0,2mm größer machen.&lt;br /&gt;
* Teilenummer für Conrad-USB-Buchse in BOM übernehmen.&lt;br /&gt;
* Stiftleiste P1  weiter weg von P2 und P4.&lt;br /&gt;
* Varistoren näher an Klemmen platzieren.&lt;br /&gt;
* THT-Kondensatoren für Snubber.&lt;br /&gt;
* Ggf. Stiftleistenbelegung für externe Leds so ändern, das keine extra Vorwiderstände notwendig sind.&lt;br /&gt;
* Befestigungsbohrung für Drossel, um diese mit Kabelbinderung oder Schraube fixieren zu können.&lt;br /&gt;
* Pullup-Widerstand bei MCLR doppelt. &lt;br /&gt;
* Power-LED vorsehen.&lt;br /&gt;
* Leiterbahnen etwas weiter weg von den Kühlkörperanschlüssen&lt;br /&gt;
* Designatoren Texte etwas größer machen.&lt;br /&gt;
* Ein vernünftiger GND-Punkt für einen Tastkopf / Messungen / Aligator-Clips vorsehen.&lt;br /&gt;
* Spannungsversorgung doch Onboard? Oder beides?&lt;br /&gt;
* Leds 90 Grad, Frontplattenmontage&lt;br /&gt;
* Taster 90 Grad Frontplattenmontage&lt;br /&gt;
* Termoelemente Frontplattenmontage??? Termoelementstecker?&lt;br /&gt;
* Schaltausgang 230 V kleiner, weniger Leistungsfähig.&lt;br /&gt;
&lt;br /&gt;
= Errata Projekt =&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:red;&amp;quot;&amp;gt; Triac Symbol in Library falsch, dadurch ist T2 mit T1 vertauscht. Abhilfe für Leiterplattenversion V1.0: T1 und T2 &amp;quot;twisten&amp;quot; und jeweils mit Schrumpfschlauch versehen.( Also Beinchen T1 über kreuz mit Beinchen T2 einlöten...)&amp;lt;/span&amp;gt;&lt;br /&gt;
* Beim MOSFET R39 ist die Masseanbindung falsch. Es bestehen drei Möglichkeiten:&lt;br /&gt;
** 1. 0-R-Brücke für R39 einbauen und auf Strombegrenzung verzichten.&lt;br /&gt;
** 2. Eine Polyfuse mit Bauform 1206 einbauen. &lt;br /&gt;
** 3. Das kleine Leiterbahnstückchen zwischen R38 und R39 unterbrechen und statt dessen die Leiterbahn zwischen R39 und der Klemme mit der Durchkontaktierung bei R38 verbinden.&lt;br /&gt;
* LED-Beschriftung passt nicht ganz (Schaltplan Netlabel OUT1,2,3,4 sind durcheinander gekommen) --&amp;gt; Ist im Prinzip ohne Belang, man muss das nur bei der Software berücksichtigen.&lt;br /&gt;
* Schaltplan UNL2003 fehlerhafte Zuordnung IN5,6,7 &amp;lt;&amp;gt; OUT7,6,5 --&amp;gt; Ist im Prinzip ohne Belang, man muss das nur bei der Software berücksichtigen.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* Diskussion: [http://www.mikrocontroller.net/topic/297217 Diskussion]&lt;br /&gt;
* Software: [http://sourceforge.net/projects/reflowofensteue/ Bei Sourceforge]&lt;br /&gt;
* Dextrel Nulldurchgang: [http://www.dextrel.net/diyzerocrosser.htm Nulldurchgangschaltung]&lt;br /&gt;
* Gehäuse Zeichnung: [http://www.hammondmfg.com/pdf/RM2055L.pdf Großes Gehäuse für Steckdosenmontage]&lt;br /&gt;
* Gehäuse Zeichnung: [http://www.hammondmfg.com/pdf/RM2055M.pdf Kleines Gehäuse, keine Steckdosen]&lt;br /&gt;
* Bezugsquelle [http://www.soselectronic.com/?str=371&amp;amp;artnum=73596&amp;amp;name=hammond-ritec-rm2055l Großes Gehäuse Hammond]&lt;br /&gt;
* Bezugsquelle [http://www.soselectronic.com/?str=371&amp;amp;artnum=73595&amp;amp;name=hammond-ritec-rm2055m Kleines Gehäuse Hammond]&lt;br /&gt;
* Bezugsquelle [http://www.druckerzubehoer.de/shop/product/catid/H-UNIVERSALZUBEHOER_HZB/subcatid/UNIVERSALZUBEHOER_GROUP1_HZB/productid/1727063-390722LA/site/1/lng/de_DE Netzteil Mini USB ]&lt;br /&gt;
* Bezugsquelle [http://www.ebay.de/itm/151037292125?ssPageName=STRK:MEWNX:IT&amp;amp;_trksid=p3984.m1497.l2649 Termoelement Ebay (Typ K für ca. 2Euro)]&lt;br /&gt;
* Bezugsquelle [http://www.artcase-shop.de/index.php?page=search&amp;amp;page_action=query&amp;amp;desc=on&amp;amp;sdesc=on&amp;amp;keywords=pce+105&amp;amp;x=0&amp;amp;y=0 Steckdosen für Schalttafeleinbau:]&lt;br /&gt;
* Bezugsquelle [http://www.schaeffer-ag.de/ Frontplatten]&lt;br /&gt;
* Bezugsquelle [http://www.lichtlieferant.de/catalogsearch/result/?q=r7s+fassung+sockel Vossloh Fassung R7S für Halogenstäbe]&lt;br /&gt;
* Datenblatt Prozessor [http://ww1.microchip.com/downloads/en/DeviceDoc/39632e.pdf PIC18LF2550]&lt;br /&gt;
* Umfangreicher Thread u.A. Leistungsvermögen, Temperaturmessung und Dämmung [http://www.mikrocontroller.net/topic/270627]&lt;br /&gt;
[[Kategorie:PIC-Projekte]]&lt;/div&gt;</summary>
		<author><name>Frankman</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=Reflow_Ofen_Steuerung&amp;diff=80579</id>
		<title>Reflow Ofen Steuerung</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=Reflow_Ofen_Steuerung&amp;diff=80579"/>
		<updated>2014-01-03T11:52:07Z</updated>

		<summary type="html">&lt;p&gt;Frankman: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Datei:RFB.jpg|thumb|right|200px|Altium 3D Ansicht]]&lt;br /&gt;
[[Datei:Teilbest2.jpg|750px|teilbestückte Platine]]&lt;br /&gt;
== Einleitung ==&lt;br /&gt;
[[Datei:pcb.png|thumb|right|400px|unbestücktes PCB der Reflow-Ofen-Steuerung]]&lt;br /&gt;
Hier wird eine weitere Reflow-Ofen-Steuerung beschrieben.&lt;br /&gt;
=== Zum Nachbauen ===&lt;br /&gt;
* Spezifikation: [[Datei: Spec Reflow.pdf]]&lt;br /&gt;
* Schaltplan: &lt;br /&gt;
** Minimalversion [[Datei:Schematic Prints Minimal.pdf]]&lt;br /&gt;
** Standardversion [[Datei:Schematic Prints Standard.pdf]]&lt;br /&gt;
** Deluxeversion [[Datei:Schematic Prints Deluxe.pdf]]&lt;br /&gt;
** Debugversion [[Datei:Schematic Prints Debug.pdf]]&lt;br /&gt;
* Gerberdaten: [[Datei:Gerber Reflow.pdf]]&lt;br /&gt;
* Assemblydrawing: [[Datei:Assembly Reflow.pdf]] &lt;br /&gt;
* Altium-Files: [[Datei:Reflow.zip]]&lt;br /&gt;
* Stückliste als CSV: [[Datei:Reflow.csv]]&lt;br /&gt;
* Stückliste als Open Office: [[Datei:Reflow.ods]]&lt;br /&gt;
* PC Programm: TBD&lt;br /&gt;
* Sourcen PC-Programm: TBD&lt;br /&gt;
* PIC Programm (*.hex): [http://sourceforge.net/projects/reflowofensteue/ ]&lt;br /&gt;
* Sourcen Pic-Programm: [http://sourceforge.net/projects/reflowofensteue/ ]&lt;br /&gt;
* Step-File Steckdose:[[Datei:Steckdose.stp]]&lt;br /&gt;
&lt;br /&gt;
=== Motivation ===&lt;br /&gt;
Die Gründe, eine weitere Steuerung zu entwerfen, waren:&lt;br /&gt;
&lt;br /&gt;
* Die Möglichkeit, auch größere Öfen mit 2 Phasen betreiben zu können.&lt;br /&gt;
* Die Steuerung universell zu gestalten. Es sollte möglich sein, diese nicht nur zum Reflow löten zu verwenden....z.B:&lt;br /&gt;
** Temperatursteuerung für Klimakammer (Heizen, Kühlen)&lt;br /&gt;
** Dimmer mit USB&lt;br /&gt;
** Temperaturregler für ein Tisch-Fondue ( Temperatur halten)&lt;br /&gt;
** Drehzahlsteller mit USB&lt;br /&gt;
** Switchpack&lt;br /&gt;
* Die Schaltung sollte in Altium entwickelt werden. (Warum kein Eagle??? Altium User wissen es.... :-)&lt;br /&gt;
* Die Schaltung sollte mit USB ausgestattet sein.&lt;br /&gt;
&lt;br /&gt;
=== Eigenschaften &amp;amp; Spezifikationen ===&lt;br /&gt;
* Temperaturmessung: bis zu 2x &#039;&#039;&#039;Thermoelement&#039;&#039;&#039; (K-Typ) mit MAX6675 (abgekündigt) oder Nachfolger MAX31855 (pin- aber nicht softwarekompatibel)&lt;br /&gt;
* Leistungsstufen: &#039;&#039;&#039;3 voneinander unabhängige&#039;&#039;&#039; Triacs 800V 25A, limitiert auf &#039;&#039;&#039;10A @ 250VAC&#039;&#039;&#039; (z.B. Oberhitze, Unterhitze, Umluft)&lt;br /&gt;
* Nulldurchgangserkennung ermöglicht Wellenpaket-, und Phasenabschnittssteuerung * Galvanische Trennung der Leistungsendstufen&lt;br /&gt;
* 1x MOSFET-Ausgang PWM z.B. für 12V Lüfter, max. &#039;&#039;&#039;55V 3,5A&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;4 feste Programme&#039;&#039;&#039; im EEPROM über 2-Tasterbedienung und LEDs wähl- und ausführbar. &lt;br /&gt;
* &#039;&#039;&#039;PC-unabhängiger Betrieb&#039;&#039;&#039; möglich. &lt;br /&gt;
* Beliebig viele Programme möglich, bei Betrieb am Computer &lt;br /&gt;
* Mini-USB-Buchse zur Steuerung / Programmierung über GUI und zum Entwickeln. - Dafür ist &#039;&#039;&#039;keine Netzspannung&#039;&#039;&#039; erforderlich&lt;br /&gt;
* Günstiges passendes Gehäuse&lt;br /&gt;
* Alle LEDs und Taster auf &#039;&#039;&#039;Stiftleisten&#039;&#039;&#039; herausgeführt, für eigene Gestaltung der Frontblenden&lt;br /&gt;
* PID-Temperaturregler&lt;br /&gt;
* UART, SPI, I2C und 2x ADC auf Stiftleisten herausgeführt, für zukünftige &#039;&#039;&#039;Erweiterungen&#039;&#039;&#039;&lt;br /&gt;
* Versorgung über USB &amp;lt; 100mA, interne Versorgungsspannung 3,3V&lt;br /&gt;
* umfangreiche EMV-gerechte Entstörung für den Bedarfsfall&lt;br /&gt;
&lt;br /&gt;
=== Zusätzliches Benötigtes Material ===&lt;br /&gt;
* Leiterplatte (1 Stück)&lt;br /&gt;
* Gehäuse Hammond Teilenummer: RM2055L (1 Stück)&lt;br /&gt;
* Alternativ:Gehäuse Hammond Teilenummer: RM2055M (Wenn keine Steckdosen angebracht werden sollen)&lt;br /&gt;
* Alternative: Gehäuse Hammond (Hier muss man die Leiterplatte selber befestigen) Teilenummer: 1455T2201 (1 Stück)&lt;br /&gt;
* Einbausteckdosen Teilenummer: PEC 105 (2-3 Stück, je nach Ausbaustufe)&lt;br /&gt;
* PG-Verschraubung (2-3 Stück)&lt;br /&gt;
* Mutter für PG-Verschraubung (2 Stück)&lt;br /&gt;
* Litze blau, mindestens 1,5mm² (ca. 60cm)&lt;br /&gt;
* Litze braun, mindestens 1,5mm² (ca. 60cm) &lt;br /&gt;
* Litze gelb/grün, mindestens 1,5mm² (ca. 60cm)&lt;br /&gt;
* Aderendhülsen  mit Schutzkragen dazu ( 9 Stück für die Steckdosen)&lt;br /&gt;
* Schrauben, um die Leiterplatte zu befestigen (4 Stück)&lt;br /&gt;
* evtl. Abstandsbolzen dazu, falls das alternative Gehäuse verwendet wird (4 Stück)&lt;br /&gt;
* evtl. Muttern dazu, falls das alternative Gehäuse verwendet wird (4 Stück)&lt;br /&gt;
* Schrauben, Senkkopf DIN 7991 oder DIN 965 M4 X 10 um die Steckdosen zu befestigen (12 Stück)&lt;br /&gt;
* Muttern dazu M4 (12 Stück)&lt;br /&gt;
* Federschreiben  dazu DIN 127 M4 (12 Stück)&lt;br /&gt;
* Glimmerscheiben für Triac (2-3 Stück, je nach Ausbaustufe)&lt;br /&gt;
* Isoliernippel für Triacmontage (2-3 Stück, je nach Ausbaustufe)&lt;br /&gt;
* Zylinderkopfschraube M3 X 12 für Triacmontage (2-3 Stück, je nach Ausbaustufe)&lt;br /&gt;
* Mutter M3 für Triacmontage (2-3 Stück, je nach Ausbaustufe)&lt;br /&gt;
* Beilagscheibe M3 für Triacmontage (2-3 Stück, je nach Ausbaustufe)&lt;br /&gt;
* Isolierband für Triacmontage (ca. 300mm)&lt;br /&gt;
* Gummifüße für das Gehäuse (4 Stück)&lt;br /&gt;
&lt;br /&gt;
=== Kühlkörpermontage===&lt;br /&gt;
* Der Kühlköper sollte 38mm hoch sein, so passt er gut in die angegebenen Gehäuse&lt;br /&gt;
* Der Kühlkörper MUSS isoliert montiert werden, also Glimmerscheibe und Isoliernippel einsetzen und NACHMESSEN, ob der Kühlkörper auch wirklich keinen Kontakt zum Triac hat!&lt;br /&gt;
* Da die 230-V-Leiterbahnen nur durch den Stopplack vom Kühlkörper getrennt sind, sollte die Isolation mit zwei Lagen Gewebe- oder Isolierband verstärkt werden. Das Isolierband kann auf die Leiterplatte oder unter den Kühlkörper geklebt werden.&lt;br /&gt;
* Als Bohrungsmaß empfehle ich 20mm über der Leiterplatte.&lt;br /&gt;
* Entweder Bohrung 3,2mm für Durchgangsloch &lt;br /&gt;
* Oder Bohrung 2,5mm mit M3-Gewinde&lt;br /&gt;
&lt;br /&gt;
== Schaltung==&lt;br /&gt;
=== PIC18LF2550 Grundbeschaltung ===&lt;br /&gt;
[[Datei:osc_vs_vcc.png|thumb|right|200px|Taktraten und Versorgungsspannung PIC18F2550 vs. PIC18LF2550, Datenblatt S. 370/438]]&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 3/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Hier kommt ein PIC18&#039;&#039;&#039;L&#039;&#039;&#039;F2550 zum Einsatz. Er verfügt über eine USB-Schnittstelle und ist für Betriebsspannungen von 2 ... 5,5V ausgelegt. Sein Verwandter PIC18F2550 (ohne L) ist nicht für Betriebsspannungen &amp;lt; 4,2V ausgelegt. Dies ist bei USB sowieso nicht immer erfüllt und die Thermoelement-ICs vertragen ohnehin keine 5V, daher wurde die Betriebsspannung auf 3,3V reduziert. Neben Standard-Decoupling (100nF Kerko pro Vcc-Vss-Pärchen) wurde das ICSP-Interface in alt bewährter Pinbelegung (PICKit1,2,3) angebracht. PGD und PGC sind nicht weiter beschaltet, MCRL wird , wie immer als Resetpin verwendet. Der Resetschalter findet sich auf dem Top-Sheet (Schaltplan S. 1/22). Die Taktversorgung erfolgt über einen 24 MHz Quarz (-&amp;gt; USB). Man beachte diesbezüglich rechts stehende Grafik zu Taktraten und Versorgungsspannungen (Vdd bzw. auch Vcc genannt). Auch zu finden im Datenblatt des PICs auf Seite 370.&lt;br /&gt;
&lt;br /&gt;
=== PIC18LF2550 USB Beschaltung ===&lt;br /&gt;
[[Datei:usb_part.png|thumb|right|200px|PIC18(L)F2550&lt;br /&gt;
 Standard &lt;br /&gt;
USB-Beschaltung am PIC]]&lt;br /&gt;
[[Datei:usb_protect.png|thumb|right|200px|USB-Schutzbeschaltung und Mini-USB-Buchse]]&lt;br /&gt;
&lt;br /&gt;
Die Beschaltung der USB-Schnittstelle am PIC ist 1:1 aus dem Datenblatt übernommen. Zum Einsatz kommt eine Mini-USB-Buchse (J1).&lt;br /&gt;
Der Gedanke war: Erstens ein sehr preiswertes, fertiges Netzteil verwenden zu können, (ca. 3,67 € bei druckerzubehoer.de) und zweitens, die Steuerung auch mit dem PC / Laptop versorgen zu können.&lt;br /&gt;
Somit kann die Schaltung OHNE 230V betrieben und debuggt werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 4/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
FER1,2 und C7 filtern den Schirm nach GND. Standardmäßig wird man hier wohl 0-Ohm-Widerstände einsetzen. Falls ein Besuch im EMV-Labor geplant ist, weicht man auf den Ferrit aus. C5 und C6 filtern das Signal zusammen mit der Common-Mode-DrosselL1. Die Drossel kann mit den 0-Ohm-Brücken R8 und R9 überbrückt (gespart) werden. IC2 ist als ESD-Schutz gedacht und kann ebenfalls bei ausgeprägten Kostenbewustsein gespart werden. Die Widerstände R6 und R7 dürfen NICHT bestückt werden. FER1,2, C5, IC2 müssen nicht zwingend bestückt werden. Die Bestückung wurde vorgehalten um im Problemfall einfache Abhilfe schaffen zu können.&lt;br /&gt;
&lt;br /&gt;
=== 3,3V Spannungsversorgung ===&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 2/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Die 3,3V Versorgungsspannung für die gesamte Platine wird aus V_USB mittels des LDO Spannungsreglers TOREX - XC6206P332MR abgeleitet. Günstig, SOT-23, klein, 2x 1µF Kondensatoren benötigt, 3,3V max. 250mA. Der hat auch einen sehr kleinen Ruhestrom.&lt;br /&gt;
&lt;br /&gt;
=== Taster ===&lt;br /&gt;
*Der Resettaster zieht den MCLR-Pin nach GND und löst damit den Reset aus. MCLR  ist mit einem 10k Pullup versehen.&lt;br /&gt;
*Die übrigen beiden Taster ziehen RA4 bzw. RB5 ebenfalls nach GND.&lt;br /&gt;
&lt;br /&gt;
=== LEDs + ULN2003L ===&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 11/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Um alle LEDs auf der Platine (3x Optotriac + 7x Status) ansteuern zu können wurde auf das 7fach Darlington-Array ULN2003L zurückgegriffen. Die PIC-Ausgänge könnten zwar die LEDs direkt steueren. Aber so werden alle Ausgänge einheitlich nach Masse geschaltet. Das verbessert die Testbarkeit der ganzen Platine. ( Mit einem kurzen Masse-Draht kann zur Not der entsprechende Ausgang gesetzt werden, ohne etwas zu zerstören.)&lt;br /&gt;
&lt;br /&gt;
=== MOSFET-Leistungsausgang ===&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 22/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Hier kommt der einfacher N-Kanal MOSFET (LogicLevel) PHT8N06LT zum Einsatz. Er wird über das ULN2003L Array getrieben und ermöglicht den Anschluss eines DC-Verbrauchers mit max. 55V bei 3,5A. Hier könnte beispielsweise ein PC-Lüfter zur Kühlung oder für Umluft angeschlossen und über PWM geregelt/gesteuert werden. Ein Gatewiderstand von 100 Ohm ist zum Schutz des Treibers vorgesehen. Eine 0-Ohm-Brücke ist stattdessen aber auch möglich, wenn man eine höhere Leistung schalten möchte.Die Leiterbahnen sollten die 3A schon hergeben. Der 100 Ohm Widerstand bildet eine Stromquelle. Sobald der Strom durch den MOSFET und den Widerstand 33mA erreicht, sinkt UGS gegen 0 V. Folge: Der Mosfet sperrt ( und bleibt ganz....)&lt;br /&gt;
Es kann hier prinzipiell auch ein anderer Mosfet im SOT223-Gehäuse zum Einsatz kommen. Achten sollte man darauf, das der MOSFET schon bei 3,3V Ugs gut leiten sollte.&lt;br /&gt;
&lt;br /&gt;
=== Nulldurchgangserkennung ===&lt;br /&gt;
[[Datei:zerocross.png|thumb|right|200px|Nulldurchgangserkennung]]&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 5/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Die Nulldurchgangserkennung erfolgt nach einer sehr bekannten - jedoch ausgeklügelten - Schaltung.  [http://www.dextrel.net/diyzerocrosser.htm siehe: Dextrel]&lt;br /&gt;
Während einer Halbwelle wird C14 über R33 und R35 bzw. D5 geladen. Währenddessen ist T1 gesperrt. Sobald die Wechselspannung (L1-N über Spannungsteiler (R33+R35) / R34) kleiner ist als die Spannung über C14, steuert T1 durch. Dann entlädt sich C14 über den LED-Vorwiderstand R32. Der durch-steuernde Optokoppler zieht die Sync-Leitung nach GND. (Pullup Sync-Leitung = R31). Dies löst beim PIC auf INT2 einen Interrupt aus. &lt;br /&gt;
Dieser Interrupt ermöglicht eine präzise Wellenpaket-, Phasenanschnittsteuerung je nach Bedarf. Das Schalten im Nulldurchgang bei der Wellenpaketsteuerung reduziert EMV-Störungen. Für Phasenanschnitt ist ohnehin eine Nulldurchgangserkennung notwendig. Außerdem liefert sie eine genaue Zeitbasis für alle Programmabläufe.&lt;br /&gt;
&lt;br /&gt;
=== Triac-Ausgänge + Snubber ===&lt;br /&gt;
[[Datei:triac.png|thumb|right|200px|Triac-Ausgangsbeschaltung]]&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 19,20,21/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Die Ansteuerung des eigentlichen Leistungstriacs BTA140-800 erfolgt über den Optotriac IS6005. Der Strom durch Letzteren wird durch R1x limitiert (Vorwiderstand). R2x und R5x limitieren wiederum den Strom durch den Optotriac. Wenn dieser zündet so folgt unmittelbar der &amp;quot;Leistungstriac&amp;quot; der dann die Last schaltet.&lt;br /&gt;
&lt;br /&gt;
S1x ist ein Sicherungshalter um die Lasten einzeln absichern zu können. Wert 10A Mittelträge.&lt;br /&gt;
&lt;br /&gt;
R3x, R4x, C3x bilden ein Snubber-Network, L1X verhindert eine zu schnelle Stromanstiegsgeschwindikeit damit der Triac nicht &amp;quot;von selbst&amp;quot; zündet. Weglassen äußert sich meist in einem fast nicht hörbaren Click. Damit zeigt einem dann der Triac, dass er ab jetzt für immer recht niederohmig geworden ist. Die Regelung der Temperatur braucht dann nicht mehr über den Prozessor erfolgen, sondern nur noch mit dem Ein-/Ausschalter..... :-)&lt;br /&gt;
&lt;br /&gt;
=== Thermoelemente (MAX6675/MAX31855)  ===&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 6,7/22&#039;&#039;&#039;&lt;br /&gt;
Der inzwischen abgekündigte MAX6675 bzw. sein ehrenwerter Nachfolger MAX31855 sind einfach zu handhabende Thermoelement-ICs mit Kaltstellenkompensation. Thermoelemente funktionieren durch das Verschweißen zweier verschiedener Legierungen (beim K-Typ Thermoelemnt Ni und CrNi). Durch den durch die Umgebungstemperatur bedingten Wärmefluss zwischen beiden entsteht ein elektrische Spannung. Diese wird von besagten ICs verstärkt und digitalisiert (ADC). Diese Spannung / Temperatur ist natürlich wieder relativ zur Umgebungstemperatur an der Kaltstelle (Kontaktierung der beiden Drähte mit dem Messinstrument). Daher messen diese ICs auch gleich die Umgebungstemperatur (Kaltstellenkompensation genannt) mit, verrechnen das und geben das Ergebnis auf der SPI-Schnittstelle aus. MAX6675 leistet 12bit also 0,25°C Auflösung (nicht Genauigkeit!) über einen Temperaturbereich von 0°C to +1024°C. Außerdem wird ein nicht/fehlerhaft angeschlossenes Thermoelement erkannt. Der Thermocouple-IC wird an die SPI-Schnittstelle des PICs angeschlossen (hier MSSP genannt). &lt;br /&gt;
&lt;br /&gt;
MAX6675 und MAX31855 scheinen entgegen der Adafruit-Information [http://www.adafruit.com/products/269] doch pinkompatibel zu sein - die Ansteuerung unterscheidet sich jedoch definitiv. (Zitat: &amp;quot;Now uses the MAX31855K instead of the MAX6675, so it can measure a wider temperature measurement range. Please note! the MAX31855 is not pin compatible or drop-in code compatible with the MAX6675. We do have an Arduino library for both chips but you&#039;ll need to adjust any existing MAX6675 designs for the mew MAX31855. The MAX6675 has been discontinued by Maxim.&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Es wurden 2 dieser ICs und damit 2 Temperaturmessstellen vorgesehen. Dies ermöglich die Messung für eine Regelung der Temperatur so wie eine zusätzliche Überwachung kritischer Bauteile (z.B. ICs oder LEDs). Die Minimalbestückung sieht einen MAX6675/MAX31855 vor. Die Auswahl in der Firmware erfolgt über einen der beiden GPIO-Pins RA5 oder RA0 via dem ChipSelect (CS) des MAX6675/MAX31855.&lt;br /&gt;
&lt;br /&gt;
Neben dem MAX6675/MAX31855 wurde ein Decoupling-Kondensator (C8x, Standard 100nF) so wie ein weiterer im Messpfad (C9x) zur Zwecken der Entstörung vorgeshen. C9x 100nF sollte nur bestückt werden wenn Probleme bei der Temperaturmessung entstehen (z.B. unrealstisch stark schwankende Werte).&lt;br /&gt;
&lt;br /&gt;
=== ADC, SPI, UART &amp;amp; I2C Stiftleiste ===&lt;br /&gt;
ADC, SPI, UART und I2C sind zu Zwecken der Kalibrierung / Erweiterung / Einstellung / Debugging auf Stiftleisten herausgeführt:&lt;br /&gt;
Ähnlichkeiten mit dem FTDI-USB-TTL-Kabel bzw. Arduino XXX Bla Bla Bla Schnittstellenkonverter sind natürlich rein zufällig.&lt;br /&gt;
&lt;br /&gt;
Die I2C-Schnittstelle wurde auf eine Stiftleiste geführt, um z.B. einem LM75 o.ä. anschließen zu können. Damit stehen zur Kalibrierung der Thermoelemente genaue Temperaturen zur Verfügung.&lt;br /&gt;
&lt;br /&gt;
Die Stiftleisten haben alle ein Raster von 2,54mm. So können Pin-Header, Wannenstecker oder ähnliches verwendet werden.&lt;br /&gt;
&lt;br /&gt;
Da ja viele Leute eigene Vorstellungen bezüglich der Frontplattengestaltung haben, wurden auch die Taster und LEDs auf Stiftleisten geführt.&lt;br /&gt;
&lt;br /&gt;
=== Kühlkörper ===&lt;br /&gt;
Da die Triacs der Steuerung für bis zu 10A pro Kanal ausgelegt sind, kann man auf die Kühlkörper nicht verzichten. Es fallen bei 10A bis zu 13 Watt Wärme pro Triac ab. Falls mann auf die Kühlkörper doch verzichten möchte, sollte man darauf achten, die Triacs mit dem Kopf nach unten einzubauen. Diese können sich dann bei Überlast ganz von selber auslöten.... :-)&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red;&amp;quot;&amp;gt; Die Triacs müssen mit Glimmerscheibe und Isoliernippel -ALSO ISOLIERT ZUM KÜHLKÖRPER- montiert werden.&lt;br /&gt;
Außerdem muss unter dem Kühlkörper ein Stück Isolierband oder FR4 oder Nylon-Scheiben beigelegt werden, um zu verhindern, dass der Stopplack der Leiterplatte beschädigt wird. In diesem Falle hätte man Potential auf dem Kühlkörper.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Gehäuse ===&lt;br /&gt;
Die Leiterplatte wurde für ein Gehäuse von Hammond entwickelt.&lt;br /&gt;
Das Gehäuse ist zwar keine Schönheit, aber doch recht preiswert.&lt;br /&gt;
Typenbezeichnung: RM2055M oder etwas größer RM2055L&lt;br /&gt;
&lt;br /&gt;
== Firmware PIC ==&lt;br /&gt;
* Die Entwicklung der Firmware für den PIC18LF2550  erfolgt mit MPLABX und dem C18 Compiler. &lt;br /&gt;
* MPLABX ist kostenlos, der C18 Compiler bis auf die stärkste Optimierungsstufe ebenfalls. &lt;br /&gt;
* Die Quellen für die Firmware sind offengelegt und können von Sourceforge bezogen werden, siehe Links, weiter unten.&lt;br /&gt;
&lt;br /&gt;
=== Programmstruktur- und ablauf ===&lt;br /&gt;
Nach anfänglicher Initialisierung des PIC startet die Statemachine [http://http://www.mikrocontroller.net/articles/Statemachine] [http://http://de.wikipedia.org/wiki/Endlicher_Automat]. Neben ihr findet in der main-Funktion nur noch die Abfrage der beiden Bedientasten statt. Mit dem Tastendruck wird zum Zwecke der Entprellung ein Timer gestartet. Alles Andere (incl. PID-Regelung, Wellenpaket- bzw. Phasenan- und Phasenabschnittssteuerung und USB) ist interruptbasiert.&lt;br /&gt;
=== Reflow-Ofen-Konfiguration ===&lt;br /&gt;
&lt;br /&gt;
=== Taktversorgung, Nulldurchgangserkennung und Zeitbasis ===&lt;br /&gt;
=== USB ===&lt;br /&gt;
=== SPI für MAX6675 ===&lt;br /&gt;
=== SPI für MAX31855 ===&lt;br /&gt;
&lt;br /&gt;
=== Wellenpaketsteuerung ===&lt;br /&gt;
=== Phasenanschnitt ===&lt;br /&gt;
&lt;br /&gt;
=== PWM für MOSFET ===&lt;br /&gt;
=== PIC-Configword ===&lt;br /&gt;
&lt;br /&gt;
=== Zuordnung Outputs ===&lt;br /&gt;
[[Datei:pinning.png|thumb|right|400px|Input/Output-Funktions-Tabelle]]&lt;br /&gt;
&lt;br /&gt;
*In1 = RC2 = PIN13 = ULN5--&amp;gt;12 = OUT1 = PWM &lt;br /&gt;
*In2 = RB3 = PIN24 = ULN6--&amp;gt;11 = OUT2 = TRIAC_A (1) = K5&lt;br /&gt;
*In3 = RB4 = PIN25 = ULN7--&amp;gt;10 = OUT3 = TRIAC_B (2)= K2&lt;br /&gt;
*In4 = RA2 = PIN4  = ULN4--&amp;gt;13 = OUT4 = LED_PRG1 = OPTO D&lt;br /&gt;
*In5 = RC0 = PIN11 = ULN3--&amp;gt;14 = OUT6 = LED_PRG2 = OPTO F&lt;br /&gt;
*In6 = RC1 = PIN12 = ULN2--&amp;gt;15 = OUT7 = LED_PRG3 = OPTO G&lt;br /&gt;
*In7 = RA3 = PIN5  = ULN1--&amp;gt;16 = OUT5 = LED_PRG4 = OPT= E&lt;br /&gt;
&lt;br /&gt;
TRIAC1 ist nahe dem Zerocross&lt;br /&gt;
&lt;br /&gt;
== PC-Software (GUI) ==&lt;br /&gt;
[[Datei:gui_alpha.png|thumb|right|300px|Screenshot der GUI (noch Alpha) für den Reflow-Ofen-Controller]]&lt;br /&gt;
&lt;br /&gt;
Die GUI (englisch Graphical User Interface) ist der Einfachheit halber in VB.net programmiert und momentan noch im Alpha-Stadium. Auch hierfür liegen die Quellen später selbstverständlich offen.&lt;br /&gt;
&lt;br /&gt;
=== Funktionen und Modi ===&lt;br /&gt;
[[Datei:modi.png|thumb|right|400px|Auswahl der beschriebenen Modi durch Klick]]&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Ofen-Profil&amp;quot;&#039;&#039;&#039; - Es wird ein Programm (Temperaturkurve) aus dem EEPROM des Reflow-Ofens ausgeführt. Der Backvorgang kann mit der Software gesteuert (START, STOP, ...) und überwacht werden. Hierzu stehen Temperatur, Temperaturänderung, Heizleistung (Ober- und Unterhitze, Lüfter) so wie die graphische Darstellung im zentralen Diagramm zur Verfügung. Eingriffsmöglichkeiten, wie das Ändern der Temperaturkurve sind nicht vorgesehen. Dies soll ein reiner Überwachungs-Modus sein. Um die Temperaturkurve zu verändern zu können, sollte der Modus &amp;quot;PC-Profil&amp;quot; verwendet werden und die Temperaturkurve aus dem EEPROM importiert werden. Dann kann Selbige auch verändert und anschließend ausgeführt bzw. verändert in den EEPROM zurückgeschrieben werden. Dieser Modus stellt ein Äquivalent zur START/STOP-Tasten-Bedienung an der Platine dar und kann selbstverständlich parallel dazu genutzt werden. Die GUI also als Addon zum Stand-Alone-Betrieb.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;PC-Profil&amp;quot;&#039;&#039;&#039; - Es wird ein Programm (Temperaturkurve) ausgeführt welche zuvor am Computer erstellt / editiert wurde. In diesem Modus gibt der Computer Temperaturwerte vor, welche live über die USB-Schnittstelle zum PIC übertragen werden und mit dem dort integrierten PID-Regler ausgeführt werden. Das ermöglicht eine on-the-fly Veränderung der Temperaturkurve während des Backvorgangs. Temperaturkurven können aus Dateien oder dem EEPROM importiert und auch wieder exportiert werden. CSV-Dateien können ebenfalls importiert und exportiert werden. Die &amp;quot;Eingabe&amp;quot; der Temperaturkurve erfolgt entweder über Import (CSV/EEPROM), per Mausklick auf dem zentralen Diagramm oder im sog. DataGridView. Weiteres siehe Unterpunkt &amp;quot;Eingabe der Temperaturkurve (Reflowprofil)&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;manueller Ablauf&amp;quot;&#039;&#039;&#039; - In diesem Modus wird (im Gegensatz zu den oberen beiden Modi &amp;quot;Ofen-Profil&amp;quot; und &amp;quot;PC-Profil&amp;quot;) keine Temperatur geregelt. Hier wird die Leistung des Ofens in % eingestellt und gesteuert. Der PID-Regler ist nicht in Aktion. Die Temperatur, Temperaturänderung so wie der Temperaturverlauf werden selbstredend angezeigt bzw. im Diagramm dargestellt. Der Modus &amp;quot;manueller Ablauf&amp;quot; fährt ähnlich dem Modus &amp;quot;PC-Profil&amp;quot; die im DataGridView eingetragenen Leistungs-Zeit-Punkte ab. Für jeden Zeitpunkt ist eine Leistung vorgegeben. Die Eingabe erfolgt ähnlich wie unter &amp;quot;Eingabe der Temperaturkurve (Reflowprofil)&amp;quot; beschrieben. Nur eben, dass eine Leistung und keine Temperatur angegeben wird. Die Eingabe der Leistung kann nicht im Zeit-Temperatur-Diagramm erfolgen sondern mittels der Schieberegler oder direkt tabellarisch.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;manueller Modus&amp;quot;&#039;&#039;&#039; - Dieser Modus enthält 2 Submodi&lt;br /&gt;
** &amp;quot;manueller Leistungsmodus&amp;quot; - Auch in diesem Modus wird die Leistung gesteuert. Es wird keine Temperatur geregelt, der PID-Regler für die Temperatur ist nicht in Betrieb. Die Einstellung hier erfolgt über die drei Schieberegler oder über eine numerische Eingabe durch Klick auf die Leistungsangabe unter dem Schieberegler. Durch Klick auf die Texte &amp;quot;TOP&amp;quot;, &amp;quot;BOTTOM&amp;quot;, &amp;quot;FAN&amp;quot; (Oberhitze, Unterhitze, Lüfter) können selbige deaktiviert bzw. aktiviert werden. Auch in diesem Modus wird Temperatur, Temperaturänderung so wie der Temperaturverlauf dargestellt.&lt;br /&gt;
** &amp;quot;manueller Temperaturmodus&amp;quot; - Hier wird die Temperatur wieder mittels des Temperatur-PIDs geregelt. Die Temperatur wird entweder mittels Schieberegler (Ober- und Unterhitze-Regler sind jetzt gekoppelt) oder durch eine numerische Eingabe unterhalb der Schieberegler vorgegeben. Anzeige wie im &amp;quot;manuellen Leistungsmodus&amp;quot;. Der Lüfter kann unabhängig vom PID in seiner Leistung geregelt werden. Ein evtl. durch den Luftstrom verursachter Temperaturabfall wird vom PID selbstverständlich ausgeregelt (aus diesem Grunde ist es ja ein Regler).&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Programmieren&amp;quot;&#039;&#039;&#039; - Hier kann ein neues &#039;&#039;&#039;Temperatur&#039;&#039;&#039;-Programm für den EEPROM-Speicher des Ofens erstellt und editiert werden. Die Eingabemöglichkeiten sind unter &amp;quot;Eingabe der Temperaturkurve (Reflowprofil)&amp;quot; beschrieben. Dieser Modus ist zum reinen Programmieren des Ofens gedacht und ermöglicht keine weitere Steuerung oder Überwachung des Ofens.&lt;br /&gt;
&lt;br /&gt;
=== Eingabe der Temperaturkurve (Reflowprofil) ===&lt;br /&gt;
[[Datei:datagridview.png|thumb|right|400px|tabellarische Anzeige und Editiermöglichkeit der Temperaturkurve]]&lt;br /&gt;
Die Eingabe der Temperaturkurve erfolgt entweder über Import (CSV/EEPROM), per Mausklick auf dem zentralen Diagramm oder im sog. DataGridView (Excel-ähnliche Bedienung in tabellarischer Form). &lt;br /&gt;
&lt;br /&gt;
* CSV-Import + Export&lt;br /&gt;
* EEPROM-Import + Export&lt;br /&gt;
* Im rechts stehenden Screenshotbeispiel wird eine tabellarische Eingabeform mit einem DataGridView gezeigt: Die Temperatur (erster Temperaturpunkt = Punkt 0) von 100°C wird linear über einen Zeitraum von 0-30s verteilt. Bei 30s hat der Ofen die Temperatur von 100°C. Dafür setzt die Regelung die Oberhitze, die Unterhitze ein. Der Lüfter ist deaktiviert. In der Zeit von 30s bis 120s wird die Temperatur nun von 100°C auf 150°C linear angehoben. Von 120s bis 180s Backzeit steigt die Temperatur von 150°C auf 250°C. Von 180s bis 200s wird die Temperatur auf 280°C angehoben. Anschließend wird sie zwischen 200s und 220s auf 280°C gehalten (280°C@200s und 280°C@220s) um dann bis 240s wieder auf 250°C zu fallen. Bis zum Zeitpunkt 300s wird dann die Temperatur 30°C angestrebt. Zusätzlich ist der Lüfter nun aktiviert (soweit der Ofen eine Umluftfunktion besitzt). Bei Punkt 7 sind Ober- und Unterhitze deaktiviert nur noch der Lüfter kühlt. Da hier bei &amp;quot;Zeit[s]&amp;quot; die 0 eingetragen wird der Zustand (hier nur Lüfter an) für einen unendlich langen Zeitraum auf 0 gehalten. Also so lange wie das Programm aktiviert ist wird der Lüfter laufen. Natürlich könnte man hier auch z.B. 100°C und Zeitpunkt 0s eintragen. Dann würde der Ofen bis zum manuellen Beenden des Programms (klick auf STOP-Button oder Drücken des START/STOP-Tasters auf der Platine/Steuerung) 100°C halten.&lt;br /&gt;
* Alle Zellen des DataGridView sind editierbar (zur Veränderung der Temperatur, Zeitpunkt, ...)&lt;br /&gt;
* Direkter Klick auf das zentrale Temperatur-Zeit-Diagramm trägt den Zeitpunkt so wie die Temperatur unter dem Mauszeiger in die Tabelle (das DataGridView) ein. Die ausgewählte Zeile wird beschrieben oder überschrieben. Neue Zeilen (also Temperatur-Zeit-Punkte) können durch klick auf den &amp;quot;Plus-Button&amp;quot; hinzugefügt werden. Ebenso ist das Löschen oder Verschieben einer oder mehrerer Zeile gleichzeitig möglich.&lt;br /&gt;
&lt;br /&gt;
=== Beschreibung der Steuerungsmöglichkeiten ===&lt;br /&gt;
In Abhängigkeit des gewählten Modus bestehen einige Steuerungs-, Einstellungs- und Kontrollmöglichkeiten:&lt;br /&gt;
* &#039;&#039;&#039;Schieberegler&#039;&#039;&#039; für Temperatur od. Leistung (je nach Modus) für Oberhitze, Unterhitze und Lüfter. Je nach Hardwareausführung. &lt;br /&gt;
** Klick auf &amp;quot;TOP&amp;quot;, &amp;quot;BOTTOM&amp;quot; oder &amp;quot;FAN&amp;quot; aktiviert oder deaktiviert die entsprechende Funktion bzw. Hardware.&lt;br /&gt;
** Numerische Eingabe der Werte für die Schieberegler durch Klick auf die Anzeige unterhalb der Schieberegler. Werte können auch im deaktivierten Zustand angegeben werden. Die Übernahme erfolgt durch den &amp;quot;Aktivierungsklick&amp;quot; auf &amp;quot;TOP&amp;quot;, &amp;quot;BOTTOM&amp;quot; oder &amp;quot;FAN&amp;quot;&lt;br /&gt;
* &#039;&#039;&#039;T1, dT1, T2, dT2&#039;&#039;&#039; - Anzeige der gemessenen Temperatur so wie die momentane Temperaturänderung am jeweiligen Sensor. &lt;br /&gt;
* &#039;&#039;&#039;Bedienbuttons&#039;&#039;&#039;&lt;br /&gt;
** Play - Startet das Programm am angegebenen Startpunkt (siehe unten)&lt;br /&gt;
** Pause - Pausiert das Programm - weitere Pauseoptionen siehe unten&lt;br /&gt;
** Stop - Stopt den Programmablauf&lt;br /&gt;
** Vor / Zurück - Springt zwischen Temperaturpunkten hin und her. Dient zum überspringen oder zurückspringen zu gewissen Temperatur-Zeit-Punkten. Ermöglicht z.B. das Überspringen eines Ablaufes der eine lange Preheat- oder Dryphase hat.&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Status&amp;quot;&#039;&#039;&#039; - zeigt den aktuellen Zustand des Programms an (READY, START, WAITING, PAUSE, ...)&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;RESET&amp;quot;&#039;&#039;&#039; - setzt das (begonnene) Programm zurück. Beinhaltet neben dem Programmablauf auch das Zurücksetzen der graphischen Anzeige des Diagramms, etc.&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Startpunkt&amp;quot;&#039;&#039;&#039; - legt den ersten Punkt des Programmablaufes fest. &lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Wiederholungen&amp;quot;&#039;&#039;&#039; - ermöglicht das wiederholte Backen ohne das Programm händisch immer wieder neu starten zu müssen. Die Anzahl der Wiederholungen ist einstellbar (0 für unendlich viele) und es ist eine Wartezeit zwischen den Wiederholungen einstellbar. Alternativ kann eine Meldung nach jedem vollendeten Backvorgang abgegeben werden. Nach Bestätigung dieser wird die nächste Wiederholung ausgeführt.&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Pause&amp;quot;&#039;&#039;&#039; - Pauseneinstellungen. Hier sind Optionen wählbar was passieren soll, falls der Pausebutton betätigt wird:&lt;br /&gt;
** Pausezeit - gibt an wie lange die Pause dauern soll [s], danach fährt das Programm automatisch gemäß des gewählten Pausemodus fort. Für eine Pause ohne automatisches Fortfahren (Countdowntimer) &#039;0&#039; angeben.&lt;br /&gt;
** Pausemodus &amp;quot;aktuelle Temperatur halten, WarmUp, Fortsetzen&amp;quot; - Ofen hält die Temperatur (Zieltemperatur) des Zeitpunktes als der Pausebutton betätigt wurde. WarmUp bedeutet, dass nach dem Beenden des Pausemodus zunächst die Zieltemperatur wieder erreicht werden &#039;&#039;&#039;muss&#039;&#039;&#039; bevor der nächste Punkt angesteuert wird. Klingt paradox, wenn die Temperatur doch so und so gehalten wird, ist aber nicht so. Die Wahrscheinlichkeit ist hoch, dass der Pausemodus benutzt wird um die Ofentüre zu öffnen und Korrekturen an der Platine vorzunehmen. Unter Umständen ist die Heizung des Ofens jedoch nicht in der Lage den dadurch entstehenden Wärmeverlust zu kompensieren. Fährt das Programm dann sofort fort, so könnten evtl. kritische (Hoch-)Punkte des Lötprofils &amp;quot;unterfahren&amp;quot; werden. Dem wirkt WarmUp entgegen.&lt;br /&gt;
** Pausemodus &amp;quot;aktuelle Temperatur halten, Fortsetzen&amp;quot; - siehe oben, nur ohne WarmUp.&lt;br /&gt;
** Pausemodus &amp;quot;definierte Temperatur halten, WarmUp, Fortsetzen&amp;quot; - siehe oben. Statt der aktuellen Zieltemperatur wird jedoch nun im Pausemodus eine einzustellende Pausetemperatur gehalten. Mit WarmUp.&lt;br /&gt;
** Pausemodus &amp;quot;definierte Temperatur halten, Fortsetzen&amp;quot; - siehe oben, nur ohne WarmUp.&lt;br /&gt;
** &amp;quot;Pausetemperatur&amp;quot; - spezielle Temperatur die bei entsprechender Pausemoduswahl für die Dauer der Pause gehalten wird.&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Ende&amp;quot;&#039;&#039;&#039; - gibt an was am Ende eines durchlaufenen Reflow-Programms passieren soll. Ist der Wiederholungsmodus aktiviert, tritt dieses Ereignis erst nach Durchlauf aller Wiederholungen ein. Folgende Modi sind möglich:&lt;br /&gt;
** automatischer Reset - am Ende des Programms wird alles automatisch zurückgesetzt, alle Graphiken und Anzeigen gelöscht.&lt;br /&gt;
** manueller Reset - am Ende des Programms bleiben alle Anzeigen, Graphiken, etc erhalten und müssen vor Beginn eines neuen Reflowvorgangs händisch durch Klick auf &amp;quot;RESET&amp;quot; zurückgesetzt werden.&lt;br /&gt;
** Benutzermeldung - lässt eine Meldung erscheinen. Alle Anzeigen und Graphiken bleiben erhalten bis der Benutzer diese Meldung bestätigt. Mit Bestätigung dieser Meldung wird ein automatischer Reset vorgenommen.&lt;br /&gt;
&lt;br /&gt;
=== Loggen des Temperaturverlaufes ===&lt;br /&gt;
Es ist möglich jeden Backvorgang in eine CSV-Datei zu loggen. (Software- und PID-Einstellungen). Geloggte CSV-Dateien können eingelesen und im zentralen Temperatur-Zeit-Diagramm begutachtet werden. Ein Ist-Soll-Vergleich ist ebenso möglich wie die direkte Anzeige des Fehlers (&amp;quot;Ist minus Soll&amp;quot;). Dank CSV können die Daten auch mit anderen Programmen (Excel, etc.) weiterverarbeitet werden.&lt;br /&gt;
&lt;br /&gt;
== Ofen / Pizzaofen ==&lt;br /&gt;
=== Leistung und Volumen ===&lt;br /&gt;
* Alls Faustformel wird oft 100W pro Liter Volumen genannt.&lt;br /&gt;
* Ich habe einen sehr preiswerten Ofen gewählt und die &amp;quot;Oberhitze&amp;quot; zusätzlich mit zwei Halogen-Stäben a 300W &amp;quot;verstärkt. Das kostet nicht viel, die Fassung ist für ca. 3 Euro erhältlich, die Halogenstäbe gibt es in jedem Baumarkt. &lt;br /&gt;
* Bezugsquelle Fassung : siehe &amp;quot;Links&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Dämmung ===&lt;br /&gt;
=== Umluft ===&lt;br /&gt;
* Der verwendete Ofen sollte eine Umluftfunktion besitzen, damit sich die Wärme gleichmäßig im Ofen und auf der Leiterplatte verteilen kann.&lt;br /&gt;
&lt;br /&gt;
== FAQ ==&lt;br /&gt;
&lt;br /&gt;
* Q1: Ich habe einen PT100/PT1000 und möchte den anschließen. Geht das?&lt;br /&gt;
** A1: Ja natürlich. Dazu ist aber etwas externe Elektronik notwendig. Sowohl 2 ADC-Pins (mit 3V3 Betriebsspannung als fixe Referenzspannung), als auch die UART und SPI/I2C-Schnittstelle stehen zur freien Verfügung. Für PT100/PT1000 wird für vernünftige Messungen ohnehin eine Verstärkung (meist mit OPV) von Nöten sein. Da der PIC-interne ADC &amp;quot;nur&amp;quot; 10bit Auflösung bietet sollte ein externer 16bit ADC in Betracht gezogen werden um das Potential der PT100/PT1000 auszunutzen.&lt;br /&gt;
*Q2: Ich habe von günstigen Temperaturmessungen mit Dioden gehört. Geht das auch hier?&lt;br /&gt;
**A2: Ja. Die Vorwärtsspannung einer Diode verhält sich linear zur Sperrschichttemperatur. Diese Spannung (bei 25°C einer Si-Diode die bekannten 0,7V) kann mittels OPV verstärkt werden und auf einen Spannungsbereich von 0 ... 3V3 aufgebläht werden. Eine billige Lösung, auf Kosten der Genauigkeit. Doch eine Diode ist laut Datenblatt nur bis 150°C geeignet. Es ist also beim Löten mehr oder weniger Pfusch. Wenn ich schon eine Reflow-Steuerung baue, sollte ich doch nicht an ein paar Euro für eine gescheite Temperaturmessung sparen. Einige Anregungen vom Messgerätehersteller Keithley bzgl. der Halbleiterphysik mit interessanten Formeln [http://www.keithley.de/support/data?asset=50486]. Oder natürlich der Klassiker von Thomas Pfeifer [http://thomaspfeifer.net/backofen_smd_reflow.htm]. Oder ein Beitrag mit LT-Spice Simulation zum Thema [http://www.mikrocontroller.net/topic/270627#2833883].&lt;br /&gt;
* Q: God why ... ?&lt;br /&gt;
** A: Because we can !&lt;br /&gt;
*Q: Ich hab aber noch nie was mit 230V gemacht.&lt;br /&gt;
**A: Dann würde ich an Deiner Stelle dieses Projekt NICHT nachbauen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Verbesserungen Prototyp - Diese haben jedoch keinen Einfluss auf die Funktion der Leiterplatte=&lt;br /&gt;
* Bauteile weiter weg von den Schraublöchern.&lt;br /&gt;
* Dazu Kreis rund um Bohrung auf Bestückdruck.&lt;br /&gt;
* Masseanbindung Quarz.&lt;br /&gt;
* Klemmen weiter weg vom Rand.&lt;br /&gt;
* Klemme und Sicherungshalter weiter auseinander.&lt;br /&gt;
* Bohrungen für Drossel 0,2mm größer machen.&lt;br /&gt;
* Teilenummer für Conrad-USB-Buchse in BOM übernehmen.&lt;br /&gt;
* Stiftleiste P1  weiter weg von P2 und P4.&lt;br /&gt;
* Varistoren näher an Klemmen platzieren.&lt;br /&gt;
* THT-Kondensatoren für Snubber.&lt;br /&gt;
* Ggf. Stiftleistenbelegung für externe Leds so ändern, das keine extra Vorwiderstände notwendig sind.&lt;br /&gt;
* Befestigungsbohrung für Drossel, um diese mit Kabelbinderung oder Schraube fixieren zu können.&lt;br /&gt;
* Pullup-Widerstand bei MCLR doppelt. &lt;br /&gt;
* Power-LED vorsehen.&lt;br /&gt;
* Leiterbahnen etwas weiter weg von den Kühlkörperanschlüssen&lt;br /&gt;
* Designatoren Texte etwas größer machen.&lt;br /&gt;
* Ein vernünftiger GND-Punkt für einen Tastkopf / Messungen / Aligator-Clips vorsehen.&lt;br /&gt;
* Spannungsversorgung doch Onboard? Oder beides?&lt;br /&gt;
* Leds 90 Grad, Frontplattenmontage&lt;br /&gt;
* Taster 90 Grad Frontplattenmontage&lt;br /&gt;
* Termoelemente Frontplattenmontage??? Termoelementstecker?&lt;br /&gt;
* Schaltausgang 230 V kleiner, weniger Leistungsfähig.&lt;br /&gt;
&lt;br /&gt;
= Errata Projekt =&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:red;&amp;quot;&amp;gt; Triac Symbol in Library falsch, dadurch ist T2 mit T1 vertauscht. Abhilfe für Leiterplattenversion V1.0: T1 und T2 &amp;quot;twisten&amp;quot; und jeweils mit Schrumpfschlauch versehen.( Also Beinchen T1 über kreuz mit Beinchen T2 einlöten...)&amp;lt;/span&amp;gt;&lt;br /&gt;
* Beim MOSFET R39 ist die Masseanbindung falsch. Es bestehen drei Möglichkeiten:&lt;br /&gt;
** 1. 0-R-Brücke für R39 einbauen und auf Strombegrenzung verzichten.&lt;br /&gt;
** 2. Eine Polyfuse mit Bauform 1206 einbauen. &lt;br /&gt;
** 3. Das kleine Leiterbahnstückchen zwischen R38 und R39 unterbrechen und statt dessen die Leiterbahn zwischen R39 und der Klemme mit der Durchkontaktierung bei R38 verbinden.&lt;br /&gt;
* LED-Beschriftung passt nicht ganz (Schaltplan Netlabel OUT1,2,3,4 sind durcheinander gekommen) --&amp;gt; Ist im Prinzip ohne Belang, man muss das nur bei der Software berücksichtigen.&lt;br /&gt;
* Schaltplan UNL2003 fehlerhafte Zuordnung IN5,6,7 &amp;lt;&amp;gt; OUT7,6,5 --&amp;gt; Ist im Prinzip ohne Belang, man muss das nur bei der Software berücksichtigen.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* Diskussion: [http://www.mikrocontroller.net/topic/297217 Diskussion]&lt;br /&gt;
* Software: [http://sourceforge.net/projects/reflowofensteue/ Bei Sourceforge]&lt;br /&gt;
* Dextrel Nulldurchgang: [http://www.dextrel.net/diyzerocrosser.htm Nulldurchgangschaltung]&lt;br /&gt;
* Gehäuse Zeichnung: [http://www.hammondmfg.com/pdf/RM2055L.pdf Großes Gehäuse für Steckdosenmontage]&lt;br /&gt;
* Gehäuse Zeichnung: [http://www.hammondmfg.com/pdf/RM2055M.pdf Kleines Gehäuse, keine Steckdosen]&lt;br /&gt;
* Bezugsquelle [http://www.soselectronic.com/?str=371&amp;amp;artnum=73596&amp;amp;name=hammond-ritec-rm2055l Großes Gehäuse Hammond]&lt;br /&gt;
* Bezugsquelle [http://www.soselectronic.com/?str=371&amp;amp;artnum=73595&amp;amp;name=hammond-ritec-rm2055m Kleines Gehäuse Hammond]&lt;br /&gt;
* Bezugsquelle [http://www.druckerzubehoer.de/shop/product/catid/H-UNIVERSALZUBEHOER_HZB/subcatid/UNIVERSALZUBEHOER_GROUP1_HZB/productid/1727063-390722LA/site/1/lng/de_DE Netzteil Mini USB ]&lt;br /&gt;
* Bezugsquelle [http://www.ebay.de/itm/151037292125?ssPageName=STRK:MEWNX:IT&amp;amp;_trksid=p3984.m1497.l2649 Termoelement Ebay (Typ K für ca. 2Euro)]&lt;br /&gt;
* Bezugsquelle [http://www.artcase-shop.de/index.php?page=search&amp;amp;page_action=query&amp;amp;desc=on&amp;amp;sdesc=on&amp;amp;keywords=pce+105&amp;amp;x=0&amp;amp;y=0 Steckdosen für Schalttafeleinbau:]&lt;br /&gt;
* Bezugsquelle [http://www.schaeffer-ag.de/ Frontplatten]&lt;br /&gt;
* Bezugsquelle [http://www.lichtlieferant.de/catalogsearch/result/?q=r7s+fassung+sockel Vossloh Fassung R7S für Halogenstäbe]&lt;br /&gt;
* Datenblatt Prozessor [http://ww1.microchip.com/downloads/en/DeviceDoc/39632e.pdf PIC18LF2550]&lt;br /&gt;
* Umfangreicher Thread u.A. Leistungsvermögen, Temperaturmessung und Dämmung [http://www.mikrocontroller.net/topic/270627]&lt;br /&gt;
[[Kategorie:PIC-Projekte]]&lt;/div&gt;</summary>
		<author><name>Frankman</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=Reflow_Ofen_Steuerung&amp;diff=80578</id>
		<title>Reflow Ofen Steuerung</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=Reflow_Ofen_Steuerung&amp;diff=80578"/>
		<updated>2014-01-03T11:50:59Z</updated>

		<summary type="html">&lt;p&gt;Frankman: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Datei:RFB.jpg|thumb|right|200px|Altium 3D Ansicht]]&lt;br /&gt;
[[Datei:Teilbest2.jpg|750px|teilbestückte Platine]]&lt;br /&gt;
== Einleitung ==&lt;br /&gt;
[[Datei:pcb.png|thumb|right|400px|unbestücktes PCB der Reflow-Ofen-Steuerung]]&lt;br /&gt;
Hier wird eine weitere Reflow-Ofen-Steuerung beschrieben.&lt;br /&gt;
=== Zum Nachbauen ===&lt;br /&gt;
* Spezifikation: [[Datei: Spec Reflow.pdf]]&lt;br /&gt;
* Schaltplan: &lt;br /&gt;
** Minimalversion [[Datei:Schematic Prints Minimal.pdf]]&lt;br /&gt;
** Standardversion [[Datei:Schematic Prints Standard.pdf]]&lt;br /&gt;
** Deluxeversion [[Datei:Schematic Prints Deluxe.pdf]]&lt;br /&gt;
** Debugversion [[Datei:Schematic Prints Debug.pdf]]&lt;br /&gt;
* Gerberdaten: [[Datei:Gerber Reflow.pdf]]&lt;br /&gt;
* Assemblydrawing: [[Datei:Assembly Reflow.pdf]] &lt;br /&gt;
* Altium-Files: [[Datei:Reflow.zip]]&lt;br /&gt;
* Stückliste als CSV: [[Datei:Reflow.csv]]&lt;br /&gt;
* Stückliste als Open Office: [[Datei:Reflow.ods]]&lt;br /&gt;
* PC Programm: TBD&lt;br /&gt;
* Sourcen PC-Programm: TBD&lt;br /&gt;
* PIC Programm (*.hex): [http://sourceforge.net/projects/reflowofensteue/ ]&lt;br /&gt;
* Sourcen Pic-Programm: [http://sourceforge.net/projects/reflowofensteue/ ]&lt;br /&gt;
* Step-File Steckdose:[[Datei:Steckdose.stp]]&lt;br /&gt;
&lt;br /&gt;
=== Motivation ===&lt;br /&gt;
Die Gründe, eine weitere Steuerung zu entwerfen, waren:&lt;br /&gt;
&lt;br /&gt;
* Die Möglichkeit, auch größere Öfen mit 2 Phasen betreiben zu können.&lt;br /&gt;
* Die Steuerung universell zu gestalten. Es sollte möglich sein, diese nicht nur zum Reflow löten zu verwenden....z.B:&lt;br /&gt;
** Temperatursteuerung für Klimakammer (Heizen, Kühlen)&lt;br /&gt;
** Dimmer mit USB&lt;br /&gt;
** Temperaturregler für ein Tisch-Fondue ( Temperatur halten)&lt;br /&gt;
** Drehzahlsteller mit USB&lt;br /&gt;
** Switchpack&lt;br /&gt;
* Die Schaltung sollte in Altium entwickelt werden. (Warum kein Eagle??? Altium User wissen es.... :-)&lt;br /&gt;
* Die Schaltung sollte mit USB ausgestattet sein.&lt;br /&gt;
&lt;br /&gt;
=== Eigenschaften &amp;amp; Spezifikationen ===&lt;br /&gt;
* Temperaturmessung: bis zu 2x &#039;&#039;&#039;Thermoelement&#039;&#039;&#039; (K-Typ) mit MAX6675 (abgekündigt) oder Nachfolger MAX31855 (pin- aber nicht softwarekompatibel)&lt;br /&gt;
* Leistungsstufen: &#039;&#039;&#039;3 voneinander unabhängige&#039;&#039;&#039; Triacs 800V 25A, limitiert auf &#039;&#039;&#039;10A @ 250VAC&#039;&#039;&#039; (z.B. Oberhitze, Unterhitze, Umluft)&lt;br /&gt;
* Nulldurchgangserkennung ermöglicht Wellenpaket-, und Phasenabschnittssteuerung * Galvanische Trennung der Leistungsendstufen&lt;br /&gt;
* 1x MOSFET-Ausgang PWM z.B. für 12V Lüfter, max. &#039;&#039;&#039;55V 3,5A&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;4 feste Programme&#039;&#039;&#039; im EEPROM über 2-Tasterbedienung und LEDs wähl- und ausführbar. &lt;br /&gt;
* &#039;&#039;&#039;PC-unabhängiger Betrieb&#039;&#039;&#039; möglich. &lt;br /&gt;
* Beliebig viele Programme möglich, bei Betrieb am Computer &lt;br /&gt;
* Mini-USB-Buchse zur Steuerung / Programmierung über GUI und zum Entwickeln. - Dafür ist &#039;&#039;&#039;keine Netzspannung&#039;&#039;&#039; erforderlich&lt;br /&gt;
* Günstiges passendes Gehäuse&lt;br /&gt;
* Alle LEDs und Taster auf &#039;&#039;&#039;Stiftleisten&#039;&#039;&#039; herausgeführt, für eigene Gestaltung der Frontblenden&lt;br /&gt;
* PID-Temperaturregler&lt;br /&gt;
* UART, SPI, I2C und 2x ADC auf Stiftleisten herausgeführt, für zukünftige &#039;&#039;&#039;Erweiterungen&#039;&#039;&#039;&lt;br /&gt;
* Versorgung über USB &amp;lt; 100mA, interne Versorgungsspannung 3,3V&lt;br /&gt;
* umfangreiche EMV-gerechte Entstörung für den Bedarfsfall&lt;br /&gt;
&lt;br /&gt;
=== Zusätzliches Benötigtes Material ===&lt;br /&gt;
* Leiterplatte (1 Stück)&lt;br /&gt;
* Gehäuse Hammond Teilenummer: RM2055L (1 Stück)&lt;br /&gt;
* Alternativ:Gehäuse Hammond Teilenummer: RM2055M (Wenn keine Steckdosen angebracht werden sollen)&lt;br /&gt;
* Alternative: Gehäuse Hammond (Hier muss man die Leiterplatte selber befestigen) Teilenummer: 1455T2201 (1 Stück)&lt;br /&gt;
* Einbausteckdosen Teilenummer: PEC 105 (2-3 Stück, je nach Ausbaustufe)&lt;br /&gt;
* PG-Verschraubung (2-3 Stück)&lt;br /&gt;
* Mutter für PG-Verschraubung (2 Stück)&lt;br /&gt;
* Litze blau, mindestens 1,5mm² (ca. 60cm)&lt;br /&gt;
* Litze braun, mindestens 1,5mm² (ca. 60cm) &lt;br /&gt;
* Litze gelb/grün, mindestens 1,5mm² (ca. 60cm)&lt;br /&gt;
* Aderendhülsen  mit Schutzkragen dazu ( 9 Stück für die Steckdosen)&lt;br /&gt;
* Schrauben, um die Leiterplatte zu befestigen (4 Stück)&lt;br /&gt;
* evtl. Abstandsbolzen dazu, falls das alternative Gehäuse verwendet wird (4 Stück)&lt;br /&gt;
* evtl. Muttern dazu, falls das alternative Gehäuse verwendet wird (4 Stück)&lt;br /&gt;
* Schrauben, Senkkopf DIN 7991 oder DIN 965 M4 X 10 um die Steckdosen zu befestigen (12 Stück)&lt;br /&gt;
* Muttern dazu M4 (12 Stück)&lt;br /&gt;
* Federschreiben  dazu DIN 127 M4 (12 Stück)&lt;br /&gt;
* Glimmerscheiben für Triac (2-3 Stück, je nach Ausbaustufe)&lt;br /&gt;
* Isoliernippel für Triacmontage (2-3 Stück, je nach Ausbaustufe)&lt;br /&gt;
* Zylinderkopfschraube M3 X 12 für Triacmontage (2-3 Stück, je nach Ausbaustufe)&lt;br /&gt;
* Mutter M3 für Triacmontage (2-3 Stück, je nach Ausbaustufe)&lt;br /&gt;
* Beilagscheibe M3 für Triacmontage (2-3 Stück, je nach Ausbaustufe)&lt;br /&gt;
* Isolierband für Triacmontage (ca. 300mm)&lt;br /&gt;
* Gummifüße für das Gehäuse (4 Stück)&lt;br /&gt;
&lt;br /&gt;
=== Kühlkörpermontage===&lt;br /&gt;
* Der Kühlköper sollte 38mm hoch sein, so passt er gut in die angegebenen Gehäuse&lt;br /&gt;
* Der Kühlkörper MUSS isoliert montiert werden, also Glimmerscheibe und Isoliernippel einsetzen und NACHMESSEN, ob der Kühlkörper auch wirklich keinen Kontakt zum Triac hat!&lt;br /&gt;
* Da die 230-V-Leiterbahnen nur durch den Stopplack vom Kühlkörper getrennt sind, sollte die Isolation mit zwei Lagen Gewebe- oder Isolierband verstärkt werden. Das Isolierband kann auf die Leiterplatte oder unter den Kühlkörper geklebt werden.&lt;br /&gt;
* Als Bohrungsmaß empfehle ich 20mm über der Leiterplatte.&lt;br /&gt;
* Entweder Bohrung 3,2mm für Durchgangsloch &lt;br /&gt;
* Oder Bohrung 2,5mm mit M3-Gewinde&lt;br /&gt;
&lt;br /&gt;
== Schaltung==&lt;br /&gt;
=== PIC18LF2550 Grundbeschaltung ===&lt;br /&gt;
[[Datei:osc_vs_vcc.png|thumb|right|200px|Taktraten und Versorgungsspannung PIC18F2550 vs. PIC18LF2550, Datenblatt S. 370/438]]&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 3/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Hier kommt ein PIC18&#039;&#039;&#039;L&#039;&#039;&#039;F2550 zum Einsatz. Er verfügt über eine USB-Schnittstelle und ist für Betriebsspannungen von 2 ... 5,5V ausgelegt. Sein Verwandter PIC18F2550 (ohne L) ist nicht für Betriebsspannungen &amp;lt; 4,2V ausgelegt. Dies ist bei USB sowieso nicht immer erfüllt und die Thermoelement-ICs vertragen ohnehin keine 5V, daher wurde die Betriebsspannung auf 3,3V reduziert. Neben Standard-Decoupling (100nF Kerko pro Vcc-Vss-Pärchen) wurde das ICSP-Interface in alt bewährter Pinbelegung (PICKit1,2,3) angebracht. PGD und PGC sind nicht weiter beschaltet, MCRL wird , wie immer als Resetpin verwendet. Der Resetschalter findet sich auf dem Top-Sheet (Schaltplan S. 1/22). Die Taktversorgung erfolgt über einen 24 MHz Quarz (-&amp;gt; USB). Man beachte diesbezüglich rechts stehende Grafik zu Taktraten und Versorgungsspannungen (Vdd bzw. auch Vcc genannt). Auch zu finden im Datenblatt des PICs auf Seite 370.&lt;br /&gt;
&lt;br /&gt;
=== PIC18LF2550 USB Beschaltung ===&lt;br /&gt;
[[Datei:usb_part.png|thumb|right|200px|PIC18(L)F2550&lt;br /&gt;
 Standard &lt;br /&gt;
USB-Beschaltung am PIC]]&lt;br /&gt;
[[Datei:usb_protect.png|thumb|right|200px|USB-Schutzbeschaltung und Mini-USB-Buchse]]&lt;br /&gt;
&lt;br /&gt;
Die Beschaltung der USB-Schnittstelle am PIC ist 1:1 aus dem Datenblatt übernommen. Zum Einsatz kommt eine Mini-USB-Buchse (J1).&lt;br /&gt;
Der Gedanke war: Erstens ein sehr preiswertes, fertiges Netzteil verwenden zu können, (ca. 3,67 € bei druckerzubehoer.de) und zweitens, die Steuerung auch mit dem PC / Laptop versorgen zu können.&lt;br /&gt;
Somit kann die Schaltung OHNE 230V betrieben und debuggt werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 4/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
FER1,2 und C7 filtern den Schirm nach GND. Standardmäßig wird man hier wohl 0-Ohm-Widerstände einsetzen. Falls ein Besuch im EMV-Labor geplant ist, weicht man auf den Ferrit aus. C5 und C6 filtern das Signal zusammen mit der Common-Mode-DrosselL1. Die Drossel kann mit den 0-Ohm-Brücken R8 und R9 überbrückt (gespart) werden. IC2 ist als ESD-Schutz gedacht und kann ebenfalls bei ausgeprägten Kostenbewustsein gespart werden. Die Widerstände R6 und R7 dürfen NICHT bestückt werden. FER1,2, C5, IC2 müssen nicht zwingend bestückt werden. Die Bestückung wurde vorgehalten um im Problemfall einfache Abhilfe schaffen zu können.&lt;br /&gt;
&lt;br /&gt;
=== 3,3V Spannungsversorgung ===&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 2/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Die 3,3V Versorgungsspannung für die gesamte Platine wird aus V_USB mittels des LDO Spannungsreglers TOREX - XC6206P332MR abgeleitet. Günstig, SOT-23, klein, 2x 1µF Kondensatoren benötigt, 3,3V max. 250mA. Der hat auch einen sehr kleinen Ruhestrom.&lt;br /&gt;
&lt;br /&gt;
=== Taster ===&lt;br /&gt;
*Der Resettaster zieht den MCLR-Pin nach GND und löst damit den Reset aus. MCLR  ist mit einem 10k Pullup versehen.&lt;br /&gt;
*Die übrigen beiden Taster ziehen RA4 bzw. RB5 ebenfalls nach GND.&lt;br /&gt;
&lt;br /&gt;
=== LEDs + ULN2003L ===&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 11/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Um alle LEDs auf der Platine (3x Optotriac + 7x Status) ansteuern zu können wurde auf das 7fach Darlington-Array ULN2003L zurückgegriffen. Die PIC-Ausgänge könnten zwar die LEDs direkt steueren. Aber so werden alle Ausgänge einheitlich nach Masse geschaltet. Das verbessert die Testbarkeit der ganzen Platine. ( Mit einem kurzen Masse-Draht kann zur Not der entsprechende Ausgang gesetzt werden, ohne etwas zu zerstören.)&lt;br /&gt;
&lt;br /&gt;
=== MOSFET-Leistungsausgang ===&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 22/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Hier kommt der einfacher N-Kanal MOSFET (LogicLevel) PHT8N06LT zum Einsatz. Er wird über das ULN2003L Array getrieben und ermöglicht den Anschluss eines DC-Verbrauchers mit max. 55V bei 3,5A. Hier könnte beispielsweise ein PC-Lüfter zur Kühlung oder für Umluft angeschlossen und über PWM geregelt/gesteuert werden. Ein Gatewiderstand von 100 Ohm ist zum Schutz des Treibers vorgesehen. Eine 0-Ohm-Brücke ist stattdessen aber auch möglich, wenn man eine höhere Leistung schalten möchte.Die Leiterbahnen sollten die 3A schon hergeben. Der 100 Ohm Widerstand bildet eine Stromquelle. Sobald der Strom durch den MOSFET und den Widerstand 33mA erreicht, sinkt UGS gegen 0 V. Folge: Der Mosfet sperrt ( und bleibt ganz....)&lt;br /&gt;
Es kann hier prinzipiell auch ein anderer Mosfet im SOT223-Gehäuse zum Einsatz kommen. Achten sollte man darauf, das der MOSFET schon bei 3,3V Ugs gut leiten sollte.&lt;br /&gt;
&lt;br /&gt;
=== Nulldurchgangserkennung ===&lt;br /&gt;
[[Datei:zerocross.png|thumb|right|200px|Nulldurchgangserkennung]]&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 5/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Die Nulldurchgangserkennung erfolgt nach einer sehr bekannten - jedoch ausgeklügelten - Schaltung.  [http://www.dextrel.net/diyzerocrosser.htm siehe: Dextrel]&lt;br /&gt;
Während einer Halbwelle wird C14 über R33 und R35 bzw. D5 geladen. Währenddessen ist T1 gesperrt. Sobald die Wechselspannung (L1-N über Spannungsteiler (R33+R35) / R34) kleiner ist als die Spannung über C14, steuert T1 durch. Dann entlädt sich C14 über den LED-Vorwiderstand R32. Der durch-steuernde Optokoppler zieht die Sync-Leitung nach GND. (Pullup Sync-Leitung = R31). Dies löst beim PIC auf INT2 einen Interrupt aus. &lt;br /&gt;
Dieser Interrupt ermöglicht eine präzise Wellenpaket-, Phasenanschnittsteuerung je nach Bedarf. Das Schalten im Nulldurchgang bei der Wellenpaketsteuerung reduziert EMV-Störungen. Für Phasenanschnitt ist ohnehin eine Nulldurchgangserkennung notwendig. Außerdem liefert sie eine genaue Zeitbasis für alle Programmabläufe.&lt;br /&gt;
&lt;br /&gt;
=== Triac-Ausgänge + Snubber ===&lt;br /&gt;
[[Datei:triac.png|thumb|right|200px|Triac-Ausgangsbeschaltung]]&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 19,20,21/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Die Ansteuerung des eigentlichen Leistungstriacs BTA140-800 erfolgt über den Optotriac IS6005. Der Strom durch Letzteren wird durch R1x limitiert (Vorwiderstand). R2x und R5x limitieren wiederum den Strom durch den Optotriac. Wenn dieser zündet so folgt unmittelbar der &amp;quot;Leistungstriac&amp;quot; der dann die Last schaltet.&lt;br /&gt;
&lt;br /&gt;
S1x ist ein Sicherungshalter um die Lasten einzeln absichern zu können. Wert 10A Mittelträge.&lt;br /&gt;
&lt;br /&gt;
R3x, R4x, C3x bilden ein Snubber-Network, L1X verhindert eine zu schnelle Stromanstiegsgeschwindikeit damit der Triac nicht &amp;quot;von selbst&amp;quot; zündet. Weglassen äußert sich meist in einem fast nicht hörbaren Click. Damit zeigt einem dann der Triac, dass er ab jetzt für immer recht niederohmig geworden ist. Die Regelung der Temperatur braucht dann nicht mehr über den Prozessor erfolgen, sondern nur noch mit dem Ein-/Ausschalter..... :-)&lt;br /&gt;
&lt;br /&gt;
=== Thermoelemente (MAX6675/MAX31855)  ===&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 6,7/22&#039;&#039;&#039;&lt;br /&gt;
Der inzwischen abgekündigte MAX6675 bzw. sein ehrenwerter Nachfolger MAX31855 sind einfach zu handhabende Thermoelement-ICs mit Kaltstellenkompensation. Thermoelemente funktionieren durch das Verschweißen zweier verschiedener Legierungen (beim K-Typ Thermoelemnt Ni und CrNi). Durch den durch die Umgebungstemperatur bedingten Wärmefluss zwischen beiden entsteht ein elektrische Spannung. Diese wird von besagten ICs verstärkt und digitalisiert (ADC). Diese Spannung / Temperatur ist natürlich wieder relativ zur Umgebungstemperatur an der Kaltstelle (Kontaktierung der beiden Drähte mit dem Messinstrument). Daher messen diese ICs auch gleich die Umgebungstemperatur (Kaltstellenkompensation genannt) mit, verrechnen das und geben das Ergebnis auf der SPI-Schnittstelle aus. MAX6675 leistet 12bit also 0,25°C Auflösung (nicht Genauigkeit!) über einen Temperaturbereich von 0°C to +1024°C. Außerdem wird ein nicht/fehlerhaft angeschlossenes Thermoelement erkannt. Der Thermocouple-IC wird an die SPI-Schnittstelle des PICs angeschlossen (hier MSSP genannt). &lt;br /&gt;
&lt;br /&gt;
MAX6675 und MAX31855 scheinen entgegen der Adafruit-Information [http://www.adafruit.com/products/269] doch pinkompatibel zu sein - die Ansteuerung unterscheidet sich jedoch definitiv. (Zitat: &amp;quot;Now uses the MAX31855K instead of the MAX6675, so it can measure a wider temperature measurement range. Please note! the MAX31855 is not pin compatible or drop-in code compatible with the MAX6675. We do have an Arduino library for both chips but you&#039;ll need to adjust any existing MAX6675 designs for the mew MAX31855. The MAX6675 has been discontinued by Maxim.&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Es wurden 2 dieser ICs und damit 2 Temperaturmessstellen vorgesehen. Dies ermöglich die Messung für eine Regelung der Temperatur so wie eine zusätzliche Überwachung kritischer Bauteile (z.B. ICs oder LEDs). Die Minimalbestückung sieht einen MAX6675/MAX31855 vor. Die Auswahl in der Firmware erfolgt über einen der beiden GPIO-Pins RA5 oder RA0 via dem ChipSelect (CS) des MAX6675/MAX31855.&lt;br /&gt;
&lt;br /&gt;
Neben dem MAX6675/MAX31855 wurde ein Decoupling-Kondensator (C8x, Standard 100nF) so wie ein weiterer im Messpfad (C9x) zur Zwecken der Entstörung vorgeshen. C9x 100nF sollte nur bestückt werden wenn Probleme bei der Temperaturmessung entstehen (z.B. unrealstisch stark schwankende Werte).&lt;br /&gt;
&lt;br /&gt;
=== ADC, SPI, UART &amp;amp; I2C Stiftleiste ===&lt;br /&gt;
ADC, SPI, UART und I2C sind zu Zwecken der Kalibrierung / Erweiterung / Einstellung / Debugging auf Stiftleisten herausgeführt:&lt;br /&gt;
Ähnlichkeiten mit dem FTDI-USB-TTL-Kabel bzw. Arduino XXX Bla Bla Bla Schnittstellenkonverter sind natürlich rein zufällig.&lt;br /&gt;
&lt;br /&gt;
Die I2C-Schnittstelle wurde auf eine Stiftleiste geführt, um z.B. einem LM75 o.ä. anschließen zu können. Damit stehen zur Kalibrierung der Thermoelemente genaue Temperaturen zur Verfügung.&lt;br /&gt;
&lt;br /&gt;
Die Stiftleisten haben alle ein Raster von 2,54mm. So können Pin-Header, Wannenstecker oder ähnliches verwendet werden.&lt;br /&gt;
&lt;br /&gt;
Da ja viele Leute eigene Vorstellungen bezüglich der Frontplattengestaltung haben, wurden auch die Taster und LEDs auf Stiftleisten geführt.&lt;br /&gt;
&lt;br /&gt;
=== Kühlkörper ===&lt;br /&gt;
Da die Triacs der Steuerung für bis zu 10A pro Kanal ausgelegt sind, kann man auf die Kühlkörper nicht verzichten. Es fallen bei 10A bis zu 13 Watt Wärme pro Triac ab. Falls mann auf die Kühlkörper doch verzichten möchte, sollte man darauf achten, die Triacs mit dem Kopf nach unten einzubauen. Diese können sich dann bei Überlast ganz von selber auslöten.... :-)&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red;&amp;quot;&amp;gt; Die Triacs müssen mit Glimmerscheibe und Isoliernippel -ALSO ISOLIERT ZUM KÜHLKÖRPER- montiert werden.&lt;br /&gt;
Außerdem muss unter dem Kühlkörper ein Stück Isolierband oder FR4 oder Nylon-Scheiben beigelegt werden, um zu verhindern, dass der Stopplack der Leiterplatte beschädigt wird. In diesem Falle hätte man Potential auf dem Kühlkörper.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Gehäuse ===&lt;br /&gt;
Die Leiterplatte wurde für ein Gehäuse von Hammond entwickelt.&lt;br /&gt;
Das Gehäuse ist zwar keine Schönheit, aber doch recht preiswert.&lt;br /&gt;
Typenbezeichnung: RM2055M oder etwas größer RM2055L&lt;br /&gt;
&lt;br /&gt;
== Firmware PIC ==&lt;br /&gt;
* Die Entwicklung der Firmware für den PIC18LF2550  erfolgt mit MPLABX und dem C18 Compiler. &lt;br /&gt;
* MPLABX ist kostenlos, der C18 Compiler bis auf die stärkste Optimierungsstufe ebenfalls. &lt;br /&gt;
* Die Quellen für die Firmware sind offengelegt und können von Sourceforge bezogen werden, siehe Links, weiter unten.&lt;br /&gt;
&lt;br /&gt;
=== Programmstruktur- und ablauf ===&lt;br /&gt;
Nach anfänglicher Initialisierung des PIC startet die Statemachine [http://http://www.mikrocontroller.net/articles/Statemachine] [http://http://de.wikipedia.org/wiki/Endlicher_Automat]. Neben ihr findet in der main-Funktion nur noch die Abfrage der beiden Bedientasten statt. Mit dem Tastendruck wird zum Zwecke der Entprellung ein Timer gestartet. Alles Andere (incl. PID-Regelung, Wellenpaket- bzw. Phasenan- und Phasenabschnittssteuerung und USB) ist interruptbasiert.&lt;br /&gt;
=== Reflow-Ofen-Konfiguration ===&lt;br /&gt;
&lt;br /&gt;
=== Taktversorgung, Nulldurchgangserkennung und Zeitbasis ===&lt;br /&gt;
=== USB ===&lt;br /&gt;
=== SPI für MAX6675 ===&lt;br /&gt;
=== SPI für MAX31855 ===&lt;br /&gt;
&lt;br /&gt;
=== Wellenpaketsteuerung ===&lt;br /&gt;
=== Phasenanschnitt ===&lt;br /&gt;
&lt;br /&gt;
=== PWM für MOSFET ===&lt;br /&gt;
=== PIC-Configword ===&lt;br /&gt;
&lt;br /&gt;
=== Zuordnung Outputs ===&lt;br /&gt;
[[Datei:pinning.png|thumb|right|400px|Input/Output-Funktions-Tabelle]]&lt;br /&gt;
&lt;br /&gt;
*In1 = RC2 = PIN13 = ULN5--&amp;gt;12 = OUT1 = PWM &lt;br /&gt;
*In2 = RB3 = PIN24 = ULN6--&amp;gt;11 = OUT2 = TRIAC_A (1) = K5&lt;br /&gt;
*In3 = RB4 = PIN25 = ULN7--&amp;gt;10 = OUT3 = TRIAC_B (2)= K2&lt;br /&gt;
*In4 = RA2 = PIN4  = ULN4--&amp;gt;13 = OUT4 = LED_PRG1 = OPTO D&lt;br /&gt;
*In5 = RC0 = PIN11 = ULN3--&amp;gt;14 = OUT6 = LED_PRG2 = OPTO F&lt;br /&gt;
*In6 = RC1 = PIN12 = ULN2--&amp;gt;15 = OUT7 = LED_PRG3 = OPTO G&lt;br /&gt;
*In7 = RA3 = PIN5  = ULN1--&amp;gt;16 = OUT5 = LED_PRG4 = OPT= E&lt;br /&gt;
&lt;br /&gt;
TRIAC1 ist nahe dem Zerocross&lt;br /&gt;
&lt;br /&gt;
== PC-Software (GUI) ==&lt;br /&gt;
[[Datei:gui_alpha.png|thumb|right|300px|Screenshot der GUI (noch Alpha) für den Reflow-Ofen-Controller]]&lt;br /&gt;
&lt;br /&gt;
Die GUI (englisch Graphical User Interface) ist der Einfachheit halber in VB.net programmiert und momentan noch im Alpha-Stadium. Auch hierfür liegen die Quellen später selbstverständlich offen.&lt;br /&gt;
&lt;br /&gt;
=== Funktionen und Modi ===&lt;br /&gt;
[[Datei:modi.png|thumb|right|400px|Auswahl der beschriebenen Modi durch Klick]]&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Ofen-Profil&amp;quot;&#039;&#039;&#039; - Es wird ein Programm (Temperaturkurve) aus dem EEPROM des Reflow-Ofens ausgeführt. Der Backvorgang kann mit der Software gesteuert (START, STOP, ...) und überwacht werden. Hierzu stehen Temperatur, Temperaturänderung, Heizleistung (Ober- und Unterhitze, Lüfter) so wie die graphische Darstellung im zentralen Diagramm zur Verfügung. Eingriffsmöglichkeiten, wie das Ändern der Temperaturkurve sind nicht vorgesehen. Dies soll ein reiner Überwachungs-Modus sein. Um die Temperaturkurve zu verändern zu können, sollte der Modus &amp;quot;PC-Profil&amp;quot; verwendet werden und die Temperaturkurve aus dem EEPROM importiert werden. Dann kann Selbige auch verändert und anschließend ausgeführt bzw. verändert in den EEPROM zurückgeschrieben werden. Dieser Modus stellt ein Äquivalent zur START/STOP-Tasten-Bedienung an der Platine dar und kann selbstverständlich parallel dazu genutzt werden. Die GUI also als Addon zum Stand-Alone-Betrieb.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;PC-Profil&amp;quot;&#039;&#039;&#039; - Es wird ein Programm (Temperaturkurve) ausgeführt welche zuvor am Computer erstellt / editiert wurde. In diesem Modus gibt der Computer Temperaturwerte vor, welche live über die USB-Schnittstelle zum PIC übertragen werden und mit dem dort integrierten PID-Regler ausgeführt werden. Das ermöglicht eine on-the-fly Veränderung der Temperaturkurve während des Backvorgangs. Temperaturkurven können aus Dateien oder dem EEPROM importiert und auch wieder exportiert werden. CSV-Dateien können ebenfalls importiert und exportiert werden. Die &amp;quot;Eingabe&amp;quot; der Temperaturkurve erfolgt entweder über Import (CSV/EEPROM), per Mausklick auf dem zentralen Diagramm oder im sog. DataGridView. Weiteres siehe Unterpunkt &amp;quot;Eingabe der Temperaturkurve (Reflowprofil)&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;manueller Ablauf&amp;quot;&#039;&#039;&#039; - In diesem Modus wird (im Gegensatz zu den oberen beiden Modi &amp;quot;Ofen-Profil&amp;quot; und &amp;quot;PC-Profil&amp;quot;) keine Temperatur geregelt. Hier wird die Leistung des Ofens in % eingestellt und gesteuert. Der PID-Regler ist nicht in Aktion. Die Temperatur, Temperaturänderung so wie der Temperaturverlauf werden selbstredend angezeigt bzw. im Diagramm dargestellt. Der Modus &amp;quot;manueller Ablauf&amp;quot; fährt ähnlich dem Modus &amp;quot;PC-Profil&amp;quot; die im DataGridView eingetragenen Leistungs-Zeit-Punkte ab. Für jeden Zeitpunkt ist eine Leistung vorgegeben. Die Eingabe erfolgt ähnlich wie unter &amp;quot;Eingabe der Temperaturkurve (Reflowprofil)&amp;quot; beschrieben. Nur eben, dass eine Leistung und keine Temperatur angegeben wird. Die Eingabe der Leistung kann nicht im Zeit-Temperatur-Diagramm erfolgen sondern mittels der Schieberegler oder direkt tabellarisch.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;manueller Modus&amp;quot;&#039;&#039;&#039; - Dieser Modus enthält 2 Submodi&lt;br /&gt;
** &amp;quot;manueller Leistungsmodus&amp;quot; - Auch in diesem Modus wird die Leistung gesteuert. Es wird keine Temperatur geregelt, der PID-Regler für die Temperatur ist nicht in Betrieb. Die Einstellung hier erfolgt über die drei Schieberegler oder über eine numerische Eingabe durch Klick auf die Leistungsangabe unter dem Schieberegler. Durch Klick auf die Texte &amp;quot;TOP&amp;quot;, &amp;quot;BOTTOM&amp;quot;, &amp;quot;FAN&amp;quot; (Oberhitze, Unterhitze, Lüfter) können selbige deaktiviert bzw. aktiviert werden. Auch in diesem Modus wird Temperatur, Temperaturänderung so wie der Temperaturverlauf dargestellt.&lt;br /&gt;
** &amp;quot;manueller Temperaturmodus&amp;quot; - Hier wird die Temperatur wieder mittels des Temperatur-PIDs geregelt. Die Temperatur wird entweder mittels Schieberegler (Ober- und Unterhitze-Regler sind jetzt gekoppelt) oder durch eine numerische Eingabe unterhalb der Schieberegler vorgegeben. Anzeige wie im &amp;quot;manuellen Leistungsmodus&amp;quot;. Der Lüfter kann unabhängig vom PID in seiner Leistung geregelt werden. Ein evtl. durch den Luftstrom verursachter Temperaturabfall wird vom PID selbstverständlich ausgeregelt (aus diesem Grunde ist es ja ein Regler).&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Programmieren&amp;quot;&#039;&#039;&#039; - Hier kann ein neues &#039;&#039;&#039;Temperatur&#039;&#039;&#039;-Programm für den EEPROM-Speicher des Ofens erstellt und editiert werden. Die Eingabemöglichkeiten sind unter &amp;quot;Eingabe der Temperaturkurve (Reflowprofil)&amp;quot; beschrieben. Dieser Modus ist zum reinen Programmieren des Ofens gedacht und ermöglicht keine weitere Steuerung oder Überwachung des Ofens.&lt;br /&gt;
&lt;br /&gt;
=== Eingabe der Temperaturkurve (Reflowprofil) ===&lt;br /&gt;
[[Datei:datagridview.png|thumb|right|400px|tabellarische Anzeige und Editiermöglichkeit der Temperaturkurve]]&lt;br /&gt;
Die Eingabe der Temperaturkurve erfolgt entweder über Import (CSV/EEPROM), per Mausklick auf dem zentralen Diagramm oder im sog. DataGridView (Excel-ähnliche Bedienung in tabellarischer Form). &lt;br /&gt;
&lt;br /&gt;
* CSV-Import + Export&lt;br /&gt;
* EEPROM-Import + Export&lt;br /&gt;
* Im rechts stehenden Screenshotbeispiel wird eine tabellarische Eingabeform mit einem DataGridView gezeigt: Die Temperatur (erster Temperaturpunkt = Punkt 0) von 100°C wird linear über einen Zeitraum von 0-30s verteilt. Bei 30s hat der Ofen die Temperatur von 100°C. Dafür setzt die Regelung die Oberhitze, die Unterhitze ein. Der Lüfter ist deaktiviert. In der Zeit von 30s bis 120s wird die Temperatur nun von 100°C auf 150°C linear angehoben. Von 120s bis 180s Backzeit steigt die Temperatur von 150°C auf 250°C. Von 180s bis 200s wird die Temperatur auf 280°C angehoben. Anschließend wird sie zwischen 200s und 220s auf 280°C gehalten (280°C@200s und 280°C@220s) um dann bis 240s wieder auf 250°C zu fallen. Bis zum Zeitpunkt 300s wird dann die Temperatur 30°C angestrebt. Zusätzlich ist der Lüfter nun aktiviert (soweit der Ofen eine Umluftfunktion besitzt). Bei Punkt 7 sind Ober- und Unterhitze deaktiviert nur noch der Lüfter kühlt. Da hier bei &amp;quot;Zeit[s]&amp;quot; die 0 eingetragen wird der Zustand (hier nur Lüfter an) für einen unendlich langen Zeitraum auf 0 gehalten. Also so lange wie das Programm aktiviert ist wird der Lüfter laufen. Natürlich könnte man hier auch z.B. 100°C und Zeitpunkt 0s eintragen. Dann würde der Ofen bis zum manuellen Beenden des Programms (klick auf STOP-Button oder Drücken des START/STOP-Tasters auf der Platine/Steuerung) 100°C halten.&lt;br /&gt;
* Alle Zellen des DataGridView sind editierbar (zur Veränderung der Temperatur, Zeitpunkt, ...)&lt;br /&gt;
* Direkter Klick auf das zentrale Temperatur-Zeit-Diagramm trägt den Zeitpunkt so wie die Temperatur unter dem Mauszeiger in die Tabelle (das DataGridView) ein. Die ausgewählte Zeile wird beschrieben oder überschrieben. Neue Zeilen (also Temperatur-Zeit-Punkte) können durch klick auf den &amp;quot;Plus-Button&amp;quot; hinzugefügt werden. Ebenso ist das Löschen oder Verschieben einer oder mehrerer Zeile gleichzeitig möglich.&lt;br /&gt;
&lt;br /&gt;
=== Beschreibung der Steuerungsmöglichkeiten ===&lt;br /&gt;
In Abhängigkeit des gewählten Modus bestehen einige Steuerungs-, Einstellungs- und Kontrollmöglichkeiten:&lt;br /&gt;
* &#039;&#039;&#039;Schieberegler&#039;&#039;&#039; für Temperatur od. Leistung (je nach Modus) für Oberhitze, Unterhitze und Lüfter. Je nach Hardwareausführung. &lt;br /&gt;
** Klick auf &amp;quot;TOP&amp;quot;, &amp;quot;BOTTOM&amp;quot; oder &amp;quot;FAN&amp;quot; aktiviert oder deaktiviert die entsprechende Funktion bzw. Hardware.&lt;br /&gt;
** Numerische Eingabe der Werte für die Schieberegler durch Klick auf die Anzeige unterhalb der Schieberegler. Werte können auch im deaktivierten Zustand angegeben werden. Die Übernahme erfolgt durch den &amp;quot;Aktivierungsklick&amp;quot; auf &amp;quot;TOP&amp;quot;, &amp;quot;BOTTOM&amp;quot; oder &amp;quot;FAN&amp;quot;&lt;br /&gt;
* &#039;&#039;&#039;T1, dT1, T2, dT2&#039;&#039;&#039; - Anzeige der gemessenen Temperatur so wie die momentane Temperaturänderung am jeweiligen Sensor. &lt;br /&gt;
* &#039;&#039;&#039;Bedienbuttons&#039;&#039;&#039;&lt;br /&gt;
** Play - Startet das Programm am angegebenen Startpunkt (siehe unten)&lt;br /&gt;
** Pause - Pausiert das Programm - weitere Pauseoptionen siehe unten&lt;br /&gt;
** Stop - Stopt den Programmablauf&lt;br /&gt;
** Vor / Zurück - Springt zwischen Temperaturpunkten hin und her. Dient zum überspringen oder zurückspringen zu gewissen Temperatur-Zeit-Punkten. Ermöglicht z.B. das Überspringen eines Ablaufes der eine lange Preheat- oder Dryphase hat.&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Status&amp;quot;&#039;&#039;&#039; - zeigt den aktuellen Zustand des Programms an (READY, START, WAITING, PAUSE, ...)&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;RESET&amp;quot;&#039;&#039;&#039; - setzt das (begonnene) Programm zurück. Beinhaltet neben dem Programmablauf auch das Zurücksetzen der graphischen Anzeige des Diagramms, etc.&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Startpunkt&amp;quot;&#039;&#039;&#039; - legt den ersten Punkt des Programmablaufes fest. &lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Wiederholungen&amp;quot;&#039;&#039;&#039; - ermöglicht das wiederholte Backen ohne das Programm händisch immer wieder neu starten zu müssen. Die Anzahl der Wiederholungen ist einstellbar (0 für unendlich viele) und es ist eine Wartezeit zwischen den Wiederholungen einstellbar. Alternativ kann eine Meldung nach jedem vollendeten Backvorgang abgegeben werden. Nach Bestätigung dieser wird die nächste Wiederholung ausgeführt.&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Pause&amp;quot;&#039;&#039;&#039; - Pauseneinstellungen. Hier sind Optionen wählbar was passieren soll, falls der Pausebutton betätigt wird:&lt;br /&gt;
** Pausezeit - gibt an wie lange die Pause dauern soll [s], danach fährt das Programm automatisch gemäß des gewählten Pausemodus fort. Für eine Pause ohne automatisches Fortfahren (Countdowntimer) &#039;0&#039; angeben.&lt;br /&gt;
** Pausemodus &amp;quot;aktuelle Temperatur halten, WarmUp, Fortsetzen&amp;quot; - Ofen hält die Temperatur (Zieltemperatur) des Zeitpunktes als der Pausebutton betätigt wurde. WarmUp bedeutet, dass nach dem Beenden des Pausemodus zunächst die Zieltemperatur wieder erreicht werden &#039;&#039;&#039;muss&#039;&#039;&#039; bevor der nächste Punkt angesteuert wird. Klingt paradox, wenn die Temperatur doch so und so gehalten wird, ist aber nicht so. Die Wahrscheinlichkeit ist hoch, dass der Pausemodus benutzt wird um die Ofentüre zu öffnen und Korrekturen an der Platine vorzunehmen. Unter Umständen ist die Heizung des Ofens jedoch nicht in der Lage den dadurch entstehenden Wärmeverlust zu kompensieren. Fährt das Programm dann sofort fort, so könnten evtl. kritische (Hoch-)Punkte des Lötprofils &amp;quot;unterfahren&amp;quot; werden. Dem wirkt WarmUp entgegen.&lt;br /&gt;
** Pausemodus &amp;quot;aktuelle Temperatur halten, Fortsetzen&amp;quot; - siehe oben, nur ohne WarmUp.&lt;br /&gt;
** Pausemodus &amp;quot;definierte Temperatur halten, WarmUp, Fortsetzen&amp;quot; - siehe oben. Statt der aktuellen Zieltemperatur wird jedoch nun im Pausemodus eine einzustellende Pausetemperatur gehalten. Mit WarmUp.&lt;br /&gt;
** Pausemodus &amp;quot;definierte Temperatur halten, Fortsetzen&amp;quot; - siehe oben, nur ohne WarmUp.&lt;br /&gt;
** &amp;quot;Pausetemperatur&amp;quot; - spezielle Temperatur die bei entsprechender Pausemoduswahl für die Dauer der Pause gehalten wird.&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Ende&amp;quot;&#039;&#039;&#039; - gibt an was am Ende eines durchlaufenen Reflow-Programms passieren soll. Ist der Wiederholungsmodus aktiviert, tritt dieses Ereignis erst nach Durchlauf aller Wiederholungen ein. Folgende Modi sind möglich:&lt;br /&gt;
** automatischer Reset - am Ende des Programms wird alles automatisch zurückgesetzt, alle Graphiken und Anzeigen gelöscht.&lt;br /&gt;
** manueller Reset - am Ende des Programms bleiben alle Anzeigen, Graphiken, etc erhalten und müssen vor Beginn eines neuen Reflowvorgangs händisch durch Klick auf &amp;quot;RESET&amp;quot; zurückgesetzt werden.&lt;br /&gt;
** Benutzermeldung - lässt eine Meldung erscheinen. Alle Anzeigen und Graphiken bleiben erhalten bis der Benutzer diese Meldung bestätigt. Mit Bestätigung dieser Meldung wird ein automatischer Reset vorgenommen.&lt;br /&gt;
&lt;br /&gt;
=== Loggen des Temperaturverlaufes ===&lt;br /&gt;
Es ist möglich jeden Backvorgang in eine CSV-Datei zu loggen. (Software- und PID-Einstellungen). Geloggte CSV-Dateien können eingelesen und im zentralen Temperatur-Zeit-Diagramm begutachtet werden. Ein Ist-Soll-Vergleich ist ebenso möglich wie die direkte Anzeige des Fehlers (&amp;quot;Ist minus Soll&amp;quot;). Dank CSV können die Daten auch mit anderen Programmen (Excel, etc.) weiterverarbeitet werden.&lt;br /&gt;
&lt;br /&gt;
== Ofen / Pizzaofen ==&lt;br /&gt;
=== Leistung und Volumen ===&lt;br /&gt;
* Alls Faustformel wird oft 100W pro Liter Volumen genannt.&lt;br /&gt;
* Ich habe einen sehr preiswerten Ofen gewählt und die &amp;quot;Oberhitze&amp;quot; zusätzlich mit zwei Halogen-Stäben a 300W &amp;quot;verstärkt. Das kostet nicht viel, die Fassung ist für ca. 3 Euro erhältlich, die Halogenstäbe gibt es in jedem Baumarkt. &lt;br /&gt;
* Bezugsquelle Fassung : siehe &amp;quot;Links&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Dämmung ===&lt;br /&gt;
=== Umluft ===&lt;br /&gt;
* Der verwendete Ofen sollte eine Umluftfunktion besitzen, damit sich die Wärme gleichmäßig im Ofen und auf der Leiterplatte verteilen kann.&lt;br /&gt;
&lt;br /&gt;
== FAQ ==&lt;br /&gt;
&lt;br /&gt;
* Q1: Ich habe einen PT100/PT1000 und möchte den anschließen. Geht das?&lt;br /&gt;
** A1: Ja natürlich. Dazu ist aber etwas externe Elektronik notwendig. Sowohl 2 ADC-Pins (mit 3V3 Betriebsspannung als fixe Referenzspannung), als auch die UART und SPI/I2C-Schnittstelle stehen zur freien Verfügung. Für PT100/PT1000 wird für vernünftige Messungen ohnehin eine Verstärkung (meist mit OPV) von Nöten sein. Da der PIC-interne ADC &amp;quot;nur&amp;quot; 10bit Auflösung bietet sollte ein externer 16bit ADC in Betracht gezogen werden um das Potential der PT100/PT1000 auszunutzen.&lt;br /&gt;
*Q2: Ich habe von günstigen Temperaturmessungen mit Dioden gehört. Geht das auch hier?&lt;br /&gt;
**A2: Ja. Die Vorwärtsspannung einer Diode verhält sich linear zur Sperrschichttemperatur. Diese Spannung (bei 25°C einer Si-Diode die bekannten 0,7V) kann mittels OPV verstärkt werden und auf einen Spannungsbereich von 0 ... 3V3 aufgebläht werden. Eine billige Lösung, auf Kosten der Genauigkeit. Doch eine Diode ist laut Datenblatt nur bis 150°C geeignet. Es ist also beim Löten mehr oder weniger Pfusch. Wenn ich schon eine Reflow-Steuerung baue, sollte ich doch nicht an ein paar Euro für eine gescheite Temperaturmessung sparen. Einige Anregungen vom Messgerätehersteller Keithley bzgl. der Halbleiterphysik mit interessanten Formeln [http://www.keithley.de/support/data?asset=50486]. Oder natürlich der Klassiker von Thomas Pfeifer [http://thomaspfeifer.net/backofen_smd_reflow.htm]. Oder ein Beitrag mit LT-Spice Simulation zum Thema [http://www.mikrocontroller.net/topic/270627#2833883].&lt;br /&gt;
* Q: God why ... ?&lt;br /&gt;
** A: Because we can !&lt;br /&gt;
*Q: Ich hab aber noch nie was mit 230V gemacht.&lt;br /&gt;
**A: Dann würde ich an Deiner Stelle dieses Projekt NICHT nachbauen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Verbesserungen Prototyp - Diese haben jedoch keinen Einfluss auf die Funktion der Leiterplatte=&lt;br /&gt;
* Bauteile weiter weg von den Schraublöchern.&lt;br /&gt;
* Dazu Kreis rund um Bohrung auf Bestückdruck.&lt;br /&gt;
* Masseanbindung Quarz.&lt;br /&gt;
* Klemmen weiter weg vom Rand.&lt;br /&gt;
* Klemme und Sicherungshalter weiter auseinander.&lt;br /&gt;
* Bohrungen für Drossel 0,2mm größer machen.&lt;br /&gt;
* Teilenummer für Conrad-USB-Buchse in BOM übernehmen.&lt;br /&gt;
* Stiftleiste P1  weiter weg von P2 und P4.&lt;br /&gt;
* Varistoren näher an Klemmen platzieren.&lt;br /&gt;
* THT-Kondensatoren für Snubber.&lt;br /&gt;
* Ggf. Stiftleistenbelegung für externe Leds so ändern, das keine extra Vorwiderstände notwendig sind.&lt;br /&gt;
* Befestigungsbohrung für Drossel, um diese mit Kabelbinderung oder Schraube fixieren zu können.&lt;br /&gt;
* Pullup-Widerstand bei MCLR doppelt. &lt;br /&gt;
* Power-LED vorsehen.&lt;br /&gt;
* Leiterbahnen etwas weiter weg von den Kühlkörperanschlüssen&lt;br /&gt;
* Designatoren Texte etwas größer machen.&lt;br /&gt;
* Ein vernünftiger GND-Punkt für einen Tastkopf / Messungen / Aligator-Clips vorsehen.&lt;br /&gt;
* Spannungsversorgung doch Onboard? Oder beides?&lt;br /&gt;
* Leds 90 Grad, Frontplattenmontage&lt;br /&gt;
* Taster 90 Grad Frontplattenmontage&lt;br /&gt;
* Termoelemente Frontplattenmontage??? Termoelementstecker?&lt;br /&gt;
&lt;br /&gt;
= Errata Projekt =&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:red;&amp;quot;&amp;gt; Triac Symbol in Library falsch, dadurch ist T2 mit T1 vertauscht. Abhilfe für Leiterplattenversion V1.0: T1 und T2 &amp;quot;twisten&amp;quot; und jeweils mit Schrumpfschlauch versehen.( Also Beinchen T1 über kreuz mit Beinchen T2 einlöten...)&amp;lt;/span&amp;gt;&lt;br /&gt;
* Beim MOSFET R39 ist die Masseanbindung falsch. Es bestehen drei Möglichkeiten:&lt;br /&gt;
** 1. 0-R-Brücke für R39 einbauen und auf Strombegrenzung verzichten.&lt;br /&gt;
** 2. Eine Polyfuse mit Bauform 1206 einbauen. &lt;br /&gt;
** 3. Das kleine Leiterbahnstückchen zwischen R38 und R39 unterbrechen und statt dessen die Leiterbahn zwischen R39 und der Klemme mit der Durchkontaktierung bei R38 verbinden.&lt;br /&gt;
* LED-Beschriftung passt nicht ganz (Schaltplan Netlabel OUT1,2,3,4 sind durcheinander gekommen) --&amp;gt; Ist im Prinzip ohne Belang, man muss das nur bei der Software berücksichtigen.&lt;br /&gt;
* Schaltplan UNL2003 fehlerhafte Zuordnung IN5,6,7 &amp;lt;&amp;gt; OUT7,6,5 --&amp;gt; Ist im Prinzip ohne Belang, man muss das nur bei der Software berücksichtigen.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* Diskussion: [http://www.mikrocontroller.net/topic/297217 Diskussion]&lt;br /&gt;
* Software: [http://sourceforge.net/projects/reflowofensteue/ Bei Sourceforge]&lt;br /&gt;
* Dextrel Nulldurchgang: [http://www.dextrel.net/diyzerocrosser.htm Nulldurchgangschaltung]&lt;br /&gt;
* Gehäuse Zeichnung: [http://www.hammondmfg.com/pdf/RM2055L.pdf Großes Gehäuse für Steckdosenmontage]&lt;br /&gt;
* Gehäuse Zeichnung: [http://www.hammondmfg.com/pdf/RM2055M.pdf Kleines Gehäuse, keine Steckdosen]&lt;br /&gt;
* Bezugsquelle [http://www.soselectronic.com/?str=371&amp;amp;artnum=73596&amp;amp;name=hammond-ritec-rm2055l Großes Gehäuse Hammond]&lt;br /&gt;
* Bezugsquelle [http://www.soselectronic.com/?str=371&amp;amp;artnum=73595&amp;amp;name=hammond-ritec-rm2055m Kleines Gehäuse Hammond]&lt;br /&gt;
* Bezugsquelle [http://www.druckerzubehoer.de/shop/product/catid/H-UNIVERSALZUBEHOER_HZB/subcatid/UNIVERSALZUBEHOER_GROUP1_HZB/productid/1727063-390722LA/site/1/lng/de_DE Netzteil Mini USB ]&lt;br /&gt;
* Bezugsquelle [http://www.ebay.de/itm/151037292125?ssPageName=STRK:MEWNX:IT&amp;amp;_trksid=p3984.m1497.l2649 Termoelement Ebay (Typ K für ca. 2Euro)]&lt;br /&gt;
* Bezugsquelle [http://www.artcase-shop.de/index.php?page=search&amp;amp;page_action=query&amp;amp;desc=on&amp;amp;sdesc=on&amp;amp;keywords=pce+105&amp;amp;x=0&amp;amp;y=0 Steckdosen für Schalttafeleinbau:]&lt;br /&gt;
* Bezugsquelle [http://www.schaeffer-ag.de/ Frontplatten]&lt;br /&gt;
* Bezugsquelle [http://www.lichtlieferant.de/catalogsearch/result/?q=r7s+fassung+sockel Vossloh Fassung R7S für Halogenstäbe]&lt;br /&gt;
* Datenblatt Prozessor [http://ww1.microchip.com/downloads/en/DeviceDoc/39632e.pdf PIC18LF2550]&lt;br /&gt;
* Umfangreicher Thread u.A. Leistungsvermögen, Temperaturmessung und Dämmung [http://www.mikrocontroller.net/topic/270627]&lt;br /&gt;
[[Kategorie:PIC-Projekte]]&lt;/div&gt;</summary>
		<author><name>Frankman</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=Reflow_Ofen_Steuerung&amp;diff=80573</id>
		<title>Reflow Ofen Steuerung</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=Reflow_Ofen_Steuerung&amp;diff=80573"/>
		<updated>2014-01-03T10:59:02Z</updated>

		<summary type="html">&lt;p&gt;Frankman: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Datei:RFB.jpg|thumb|right|200px|Altium 3D Ansicht]]&lt;br /&gt;
[[Datei:Teilbest2.jpg|750px|teilbestückte Platine]]&lt;br /&gt;
== Einleitung ==&lt;br /&gt;
[[Datei:pcb.png|thumb|right|400px|unbestücktes PCB der Reflow-Ofen-Steuerung]]&lt;br /&gt;
Hier wird eine weitere Reflow-Ofen-Steuerung beschrieben.&lt;br /&gt;
=== Zum Nachbauen ===&lt;br /&gt;
* Spezifikation: [[Datei: Spec Reflow.pdf]]&lt;br /&gt;
* Schaltplan: &lt;br /&gt;
** Minimalversion [[Datei:Schematic Prints Minimal.pdf]]&lt;br /&gt;
** Standardversion [[Datei:Schematic Prints Standard.pdf]]&lt;br /&gt;
** Deluxeversion [[Datei:Schematic Prints Deluxe.pdf]]&lt;br /&gt;
** Debugversion [[Datei:Schematic Prints Debug.pdf]]&lt;br /&gt;
* Gerberdaten: [[Datei:Gerber Reflow.pdf]]&lt;br /&gt;
* Assemblydrawing: [[Datei:Assembly Reflow.pdf]] &lt;br /&gt;
* Altium-Files: [[Datei:Reflow.zip]]&lt;br /&gt;
* Stückliste als CSV: [[Datei:Reflow.csv]]&lt;br /&gt;
* Stückliste als Open Office: [[Datei:Reflow.ods]]&lt;br /&gt;
* PC Programm: TBD&lt;br /&gt;
* Sourcen PC-Programm: TBD&lt;br /&gt;
* PIC Programm (*.hex): [http://sourceforge.net/projects/reflowofensteue/ ]&lt;br /&gt;
* Sourcen Pic-Programm: [http://sourceforge.net/projects/reflowofensteue/ ]&lt;br /&gt;
* Step-File Steckdose:[[Datei:Steckdose.stp]]&lt;br /&gt;
&lt;br /&gt;
=== Motivation ===&lt;br /&gt;
Die Gründe, eine weitere Steuerung zu entwerfen, waren:&lt;br /&gt;
&lt;br /&gt;
* Die Möglichkeit, auch größere Öfen mit 2 Phasen betreiben zu können.&lt;br /&gt;
* Die Steuerung universell zu gestalten. Es sollte möglich sein, diese nicht nur zum Reflow löten zu verwenden....z.B:&lt;br /&gt;
** Temperatursteuerung für Klimakammer (Heizen, Kühlen)&lt;br /&gt;
** Dimmer mit USB&lt;br /&gt;
** Temperaturregler für ein Tisch-Fondue ( Temperatur halten)&lt;br /&gt;
** Drehzahlsteller mit USB&lt;br /&gt;
** Switchpack&lt;br /&gt;
* Die Schaltung sollte in Altium entwickelt werden. (Warum kein Eagle??? Altium User wissen es.... :-)&lt;br /&gt;
* Die Schaltung sollte mit USB ausgestattet sein.&lt;br /&gt;
&lt;br /&gt;
=== Eigenschaften &amp;amp; Spezifikationen ===&lt;br /&gt;
* Temperaturmessung: bis zu 2x &#039;&#039;&#039;Thermoelement&#039;&#039;&#039; (K-Typ) mit MAX6675 (abgekündigt) oder Nachfolger MAX31855 (pin- aber nicht softwarekompatibel)&lt;br /&gt;
* Leistungsstufen: &#039;&#039;&#039;3 voneinander unabhängige&#039;&#039;&#039; Triacs 800V 25A, limitiert auf &#039;&#039;&#039;10A @ 250VAC&#039;&#039;&#039; (z.B. Oberhitze, Unterhitze, Umluft)&lt;br /&gt;
* Nulldurchgangserkennung ermöglicht Wellenpaket-, und Phasenabschnittssteuerung * Galvanische Trennung der Leistungsendstufen&lt;br /&gt;
* 1x MOSFET-Ausgang PWM z.B. für 12V Lüfter, max. &#039;&#039;&#039;55V 3,5A&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;4 feste Programme&#039;&#039;&#039; im EEPROM über 2-Tasterbedienung und LEDs wähl- und ausführbar. &lt;br /&gt;
* &#039;&#039;&#039;PC-unabhängiger Betrieb&#039;&#039;&#039; möglich. &lt;br /&gt;
* Beliebig viele Programme möglich, bei Betrieb am Computer &lt;br /&gt;
* Mini-USB-Buchse zur Steuerung / Programmierung über GUI und zum Entwickeln. - Dafür ist &#039;&#039;&#039;keine Netzspannung&#039;&#039;&#039; erforderlich&lt;br /&gt;
* Günstiges passendes Gehäuse&lt;br /&gt;
* Alle LEDs und Taster auf &#039;&#039;&#039;Stiftleisten&#039;&#039;&#039; herausgeführt, für eigene Gestaltung der Frontblenden&lt;br /&gt;
* PID-Temperaturregler&lt;br /&gt;
* UART, SPI, I2C und 2x ADC auf Stiftleisten herausgeführt, für zukünftige &#039;&#039;&#039;Erweiterungen&#039;&#039;&#039;&lt;br /&gt;
* Versorgung über USB &amp;lt; 100mA, interne Versorgungsspannung 3,3V&lt;br /&gt;
* umfangreiche EMV-gerechte Entstörung für den Bedarfsfall&lt;br /&gt;
&lt;br /&gt;
=== Zusätzliches Benötigtes Material ===&lt;br /&gt;
* Leiterplatte (1 Stück)&lt;br /&gt;
* Gehäuse Hammond Teilenummer: RM2055L (1 Stück)&lt;br /&gt;
* Alternativ:Gehäuse Hammond Teilenummer: RM2055M (Wenn keine Steckdosen angebracht werden sollen)&lt;br /&gt;
* Alternative: Gehäuse Hammond (Hier muss man die Leiterplatte selber befestigen) Teilenummer: 1455T2201 (1 Stück)&lt;br /&gt;
* Einbausteckdosen Teilenummer: PEC 105 (2-3 Stück, je nach Ausbaustufe)&lt;br /&gt;
* PG-Verschraubung (2-3 Stück)&lt;br /&gt;
* Mutter für PG-Verschraubung (2 Stück)&lt;br /&gt;
* Litze blau, mindestens 1,5mm² (ca. 60cm)&lt;br /&gt;
* Litze braun, mindestens 1,5mm² (ca. 60cm) &lt;br /&gt;
* Litze gelb/grün, mindestens 1,5mm² (ca. 60cm)&lt;br /&gt;
* Aderendhülsen  mit Schutzkragen dazu ( 9 Stück für die Steckdosen)&lt;br /&gt;
* Schrauben, um die Leiterplatte zu befestigen (4 Stück)&lt;br /&gt;
* evtl. Abstandsbolzen dazu, falls das alternative Gehäuse verwendet wird (4 Stück)&lt;br /&gt;
* evtl. Muttern dazu, falls das alternative Gehäuse verwendet wird (4 Stück)&lt;br /&gt;
* Schrauben, Senkkopf DIN 7991 oder DIN 965 M4 X 10 um die Steckdosen zu befestigen (12 Stück)&lt;br /&gt;
* Muttern dazu M4 (12 Stück)&lt;br /&gt;
* Federschreiben  dazu DIN 127 M4 (12 Stück)&lt;br /&gt;
* Glimmerscheiben für Triac (2-3 Stück, je nach Ausbaustufe)&lt;br /&gt;
* Isoliernippel für Triacmontage (2-3 Stück, je nach Ausbaustufe)&lt;br /&gt;
* Zylinderkopfschraube M3 X 12 für Triacmontage (2-3 Stück, je nach Ausbaustufe)&lt;br /&gt;
* Mutter M3 für Triacmontage (2-3 Stück, je nach Ausbaustufe)&lt;br /&gt;
* Beilagscheibe M3 für Triacmontage (2-3 Stück, je nach Ausbaustufe)&lt;br /&gt;
* Isolierband für Triacmontage (ca. 300mm)&lt;br /&gt;
* Gummifüße für das Gehäuse (4 Stück)&lt;br /&gt;
&lt;br /&gt;
=== Kühlkörpermontage===&lt;br /&gt;
* Der Kühlköper sollte 38mm hoch sein, so passt er gut in die angegebenen Gehäuse&lt;br /&gt;
* Der Kühlkörper MUSS isoliert montiert werden, also Glimmerscheibe und Isoliernippel einsetzen und NACHMESSEN, ob der Kühlkörper auch wirklich keinen Kontakt zum Triac hat!&lt;br /&gt;
* Da die 230-V-Leiterbahnen nur durch den Stopplack vom Kühlkörper getrennt sind, sollte die Isolation mit zwei Lagen Gewebe- oder Isolierband verstärkt werden. Das Isolierband kann auf die Leiterplatte oder unter den Kühlkörper geklebt werden.&lt;br /&gt;
* Als Bohrungsmaß empfehle ich 20mm über der Leiterplatte.&lt;br /&gt;
* Entweder Bohrung 3,2mm für Durchgangsloch &lt;br /&gt;
* Oder Bohrung 2,5mm mit M3-Gewinde&lt;br /&gt;
&lt;br /&gt;
== Schaltung==&lt;br /&gt;
=== PIC18LF2550 Grundbeschaltung ===&lt;br /&gt;
[[Datei:osc_vs_vcc.png|thumb|right|200px|Taktraten und Versorgungsspannung PIC18F2550 vs. PIC18LF2550, Datenblatt S. 370/438]]&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 3/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Hier kommt ein PIC18&#039;&#039;&#039;L&#039;&#039;&#039;F2550 zum Einsatz. Er verfügt über eine USB-Schnittstelle und ist für Betriebsspannungen von 2 ... 5,5V ausgelegt. Sein Verwandter PIC18F2550 (ohne L) ist nicht für Betriebsspannungen &amp;lt; 4,2V ausgelegt. Dies ist bei USB sowieso nicht immer erfüllt und die Thermoelement-ICs vertragen ohnehin keine 5V, daher wurde die Betriebsspannung auf 3,3V reduziert. Neben Standard-Decoupling (100nF Kerko pro Vcc-Vss-Pärchen) wurde das ICSP-Interface in alt bewährter Pinbelegung (PICKit1,2,3) angebracht. PGD und PGC sind nicht weiter beschaltet, MCRL wird , wie immer als Resetpin verwendet. Der Resetschalter findet sich auf dem Top-Sheet (Schaltplan S. 1/22). Die Taktversorgung erfolgt über einen 24 MHz Quarz (-&amp;gt; USB). Man beachte diesbezüglich rechts stehende Grafik zu Taktraten und Versorgungsspannungen (Vdd bzw. auch Vcc genannt). Auch zu finden im Datenblatt des PICs auf Seite 370.&lt;br /&gt;
&lt;br /&gt;
=== PIC18LF2550 USB Beschaltung ===&lt;br /&gt;
[[Datei:usb_part.png|thumb|right|200px|PIC18(L)F2550&lt;br /&gt;
 Standard &lt;br /&gt;
USB-Beschaltung am PIC]]&lt;br /&gt;
[[Datei:usb_protect.png|thumb|right|200px|USB-Schutzbeschaltung und Mini-USB-Buchse]]&lt;br /&gt;
&lt;br /&gt;
Die Beschaltung der USB-Schnittstelle am PIC ist 1:1 aus dem Datenblatt übernommen. Zum Einsatz kommt eine Mini-USB-Buchse (J1).&lt;br /&gt;
Der Gedanke war: Erstens ein sehr preiswertes, fertiges Netzteil verwenden zu können, (ca. 3,67 € bei druckerzubehoer.de) und zweitens, die Steuerung auch mit dem PC / Laptop versorgen zu können.&lt;br /&gt;
Somit kann die Schaltung OHNE 230V betrieben und debuggt werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 4/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
FER1,2 und C7 filtern den Schirm nach GND. Standardmäßig wird man hier wohl 0-Ohm-Widerstände einsetzen. Falls ein Besuch im EMV-Labor geplant ist, weicht man auf den Ferrit aus. C5 und C6 filtern das Signal zusammen mit der Common-Mode-DrosselL1. Die Drossel kann mit den 0-Ohm-Brücken R8 und R9 überbrückt (gespart) werden. IC2 ist als ESD-Schutz gedacht und kann ebenfalls bei ausgeprägten Kostenbewustsein gespart werden. Die Widerstände R6 und R7 dürfen NICHT bestückt werden. FER1,2, C5, IC2 müssen nicht zwingend bestückt werden. Die Bestückung wurde vorgehalten um im Problemfall einfache Abhilfe schaffen zu können.&lt;br /&gt;
&lt;br /&gt;
=== 3,3V Spannungsversorgung ===&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 2/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Die 3,3V Versorgungsspannung für die gesamte Platine wird aus V_USB mittels des LDO Spannungsreglers TOREX - XC6206P332MR abgeleitet. Günstig, SOT-23, klein, 2x 1µF Kondensatoren benötigt, 3,3V max. 250mA. Der hat auch einen sehr kleinen Ruhestrom.&lt;br /&gt;
&lt;br /&gt;
=== Taster ===&lt;br /&gt;
*Der Resettaster zieht den MCLR-Pin nach GND und löst damit den Reset aus. MCLR  ist mit einem 10k Pullup versehen.&lt;br /&gt;
*Die übrigen beiden Taster ziehen RA4 bzw. RB5 ebenfalls nach GND.&lt;br /&gt;
&lt;br /&gt;
=== LEDs + ULN2003L ===&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 11/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Um alle LEDs auf der Platine (3x Optotriac + 7x Status) ansteuern zu können wurde auf das 7fach Darlington-Array ULN2003L zurückgegriffen. Die PIC-Ausgänge könnten zwar die LEDs direkt steueren. Aber so werden alle Ausgänge einheitlich nach Masse geschaltet. Das verbessert die Testbarkeit der ganzen Platine. ( Mit einem kurzen Masse-Draht kann zur Not der entsprechende Ausgang gesetzt werden, ohne etwas zu zerstören.)&lt;br /&gt;
&lt;br /&gt;
=== MOSFET-Leistungsausgang ===&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 22/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Hier kommt der einfacher N-Kanal MOSFET (LogicLevel) PHT8N06LT zum Einsatz. Er wird über das ULN2003L Array getrieben und ermöglicht den Anschluss eines DC-Verbrauchers mit max. 55V bei 3,5A. Hier könnte beispielsweise ein PC-Lüfter zur Kühlung oder für Umluft angeschlossen und über PWM geregelt/gesteuert werden. Ein Gatewiderstand von 100 Ohm ist zum Schutz des Treibers vorgesehen. Eine 0-Ohm-Brücke ist stattdessen aber auch möglich, wenn man eine höhere Leistung schalten möchte.Die Leiterbahnen sollten die 3A schon hergeben. Der 100 Ohm Widerstand bildet eine Stromquelle. Sobald der Strom durch den MOSFET und den Widerstand 33mA erreicht, sinkt UGS gegen 0 V. Folge: Der Mosfet sperrt ( und bleibt ganz....)&lt;br /&gt;
Es kann hier prinzipiell auch ein anderer Mosfet im SOT223-Gehäuse zum Einsatz kommen. Achten sollte man darauf, das der MOSFET schon bei 3,3V Ugs gut leiten sollte.&lt;br /&gt;
&lt;br /&gt;
=== Nulldurchgangserkennung ===&lt;br /&gt;
[[Datei:zerocross.png|thumb|right|200px|Nulldurchgangserkennung]]&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 5/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Die Nulldurchgangserkennung erfolgt nach einer sehr bekannten - jedoch ausgeklügelten - Schaltung.  [http://www.dextrel.net/diyzerocrosser.htm siehe: Dextrel]&lt;br /&gt;
Während einer Halbwelle wird C14 über R33 und R35 bzw. D5 geladen. Währenddessen ist T1 gesperrt. Sobald die Wechselspannung (L1-N über Spannungsteiler (R33+R35) / R34) kleiner ist als die Spannung über C14, steuert T1 durch. Dann entlädt sich C14 über den LED-Vorwiderstand R32. Der durch-steuernde Optokoppler zieht die Sync-Leitung nach GND. (Pullup Sync-Leitung = R31). Dies löst beim PIC auf INT2 einen Interrupt aus. &lt;br /&gt;
Dieser Interrupt ermöglicht eine präzise Wellenpaket-, Phasenanschnittsteuerung je nach Bedarf. Das Schalten im Nulldurchgang bei der Wellenpaketsteuerung reduziert EMV-Störungen. Für Phasenanschnitt ist ohnehin eine Nulldurchgangserkennung notwendig. Außerdem liefert sie eine genaue Zeitbasis für alle Programmabläufe.&lt;br /&gt;
&lt;br /&gt;
=== Triac-Ausgänge + Snubber ===&lt;br /&gt;
[[Datei:triac.png|thumb|right|200px|Triac-Ausgangsbeschaltung]]&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 19,20,21/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Die Ansteuerung des eigentlichen Leistungstriacs BTA140-800 erfolgt über den Optotriac IS6005. Der Strom durch Letzteren wird durch R1x limitiert (Vorwiderstand). R2x und R5x limitieren wiederum den Strom durch den Optotriac. Wenn dieser zündet so folgt unmittelbar der &amp;quot;Leistungstriac&amp;quot; der dann die Last schaltet.&lt;br /&gt;
&lt;br /&gt;
S1x ist ein Sicherungshalter um die Lasten einzeln absichern zu können. Wert 10A Mittelträge.&lt;br /&gt;
&lt;br /&gt;
R3x, R4x, C3x bilden ein Snubber-Network, L1X verhindert eine zu schnelle Stromanstiegsgeschwindikeit damit der Triac nicht &amp;quot;von selbst&amp;quot; zündet. Weglassen äußert sich meist in einem fast nicht hörbaren Click. Damit zeigt einem dann der Triac, dass er ab jetzt für immer recht niederohmig geworden ist. Die Regelung der Temperatur braucht dann nicht mehr über den Prozessor erfolgen, sondern nur noch mit dem Ein-/Ausschalter..... :-)&lt;br /&gt;
&lt;br /&gt;
=== Thermoelemente (MAX6675/MAX31855)  ===&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 6,7/22&#039;&#039;&#039;&lt;br /&gt;
Der inzwischen abgekündigte MAX6675 bzw. sein ehrenwerter Nachfolger MAX31855 sind einfach zu handhabende Thermoelement-ICs mit Kaltstellenkompensation. Thermoelemente funktionieren durch das Verschweißen zweier verschiedener Legierungen (beim K-Typ Thermoelemnt Ni und CrNi). Durch den durch die Umgebungstemperatur bedingten Wärmefluss zwischen beiden entsteht ein elektrische Spannung. Diese wird von besagten ICs verstärkt und digitalisiert (ADC). Diese Spannung / Temperatur ist natürlich wieder relativ zur Umgebungstemperatur an der Kaltstelle (Kontaktierung der beiden Drähte mit dem Messinstrument). Daher messen diese ICs auch gleich die Umgebungstemperatur (Kaltstellenkompensation genannt) mit, verrechnen das und geben das Ergebnis auf der SPI-Schnittstelle aus. MAX6675 leistet 12bit also 0,25°C Auflösung (nicht Genauigkeit!) über einen Temperaturbereich von 0°C to +1024°C. Außerdem wird ein nicht/fehlerhaft angeschlossenes Thermoelement erkannt. Der Thermocouple-IC wird an die SPI-Schnittstelle des PICs angeschlossen (hier MSSP genannt). &lt;br /&gt;
&lt;br /&gt;
MAX6675 und MAX31855 scheinen entgegen der Adafruit-Information [http://www.adafruit.com/products/269] doch pinkompatibel zu sein - die Ansteuerung unterscheidet sich jedoch definitiv. (Zitat: &amp;quot;Now uses the MAX31855K instead of the MAX6675, so it can measure a wider temperature measurement range. Please note! the MAX31855 is not pin compatible or drop-in code compatible with the MAX6675. We do have an Arduino library for both chips but you&#039;ll need to adjust any existing MAX6675 designs for the mew MAX31855. The MAX6675 has been discontinued by Maxim.&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Es wurden 2 dieser ICs und damit 2 Temperaturmessstellen vorgesehen. Dies ermöglich die Messung für eine Regelung der Temperatur so wie eine zusätzliche Überwachung kritischer Bauteile (z.B. ICs oder LEDs). Die Minimalbestückung sieht einen MAX6675/MAX31855 vor. Die Auswahl in der Firmware erfolgt über einen der beiden GPIO-Pins RA5 oder RA0 via dem ChipSelect (CS) des MAX6675/MAX31855.&lt;br /&gt;
&lt;br /&gt;
Neben dem MAX6675/MAX31855 wurde ein Decoupling-Kondensator (C8x, Standard 100nF) so wie ein weiterer im Messpfad (C9x) zur Zwecken der Entstörung vorgeshen. C9x 100nF sollte nur bestückt werden wenn Probleme bei der Temperaturmessung entstehen (z.B. unrealstisch stark schwankende Werte).&lt;br /&gt;
&lt;br /&gt;
=== ADC, SPI, UART &amp;amp; I2C Stiftleiste ===&lt;br /&gt;
ADC, SPI, UART und I2C sind zu Zwecken der Kalibrierung / Erweiterung / Einstellung / Debugging auf Stiftleisten herausgeführt:&lt;br /&gt;
Ähnlichkeiten mit dem FTDI-USB-TTL-Kabel bzw. Arduino XXX Bla Bla Bla Schnittstellenkonverter sind natürlich rein zufällig.&lt;br /&gt;
&lt;br /&gt;
Die I2C-Schnittstelle wurde auf eine Stiftleiste geführt, um z.B. einem LM75 o.ä. anschließen zu können. Damit stehen zur Kalibrierung der Thermoelemente genaue Temperaturen zur Verfügung.&lt;br /&gt;
&lt;br /&gt;
Die Stiftleisten haben alle ein Raster von 2,54mm. So können Pin-Header, Wannenstecker oder ähnliches verwendet werden.&lt;br /&gt;
&lt;br /&gt;
Da ja viele Leute eigene Vorstellungen bezüglich der Frontplattengestaltung haben, wurden auch die Taster und LEDs auf Stiftleisten geführt.&lt;br /&gt;
&lt;br /&gt;
=== Kühlkörper ===&lt;br /&gt;
Da die Triacs der Steuerung für bis zu 10A pro Kanal ausgelegt sind, kann man auf die Kühlkörper nicht verzichten. Es fallen bei 10A bis zu 13 Watt Wärme pro Triac ab. Falls mann auf die Kühlkörper doch verzichten möchte, sollte man darauf achten, die Triacs mit dem Kopf nach unten einzubauen. Diese können sich dann bei Überlast ganz von selber auslöten.... :-)&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red;&amp;quot;&amp;gt; Die Triacs müssen mit Glimmerscheibe und Isoliernippel -ALSO ISOLIERT ZUM KÜHLKÖRPER- montiert werden.&lt;br /&gt;
Außerdem muss unter dem Kühlkörper ein Stück Isolierband oder FR4 oder Nylon-Scheiben beigelegt werden, um zu verhindern, dass der Stopplack der Leiterplatte beschädigt wird. In diesem Falle hätte man Potential auf dem Kühlkörper.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Gehäuse ===&lt;br /&gt;
Die Leiterplatte wurde für ein Gehäuse von Hammond entwickelt.&lt;br /&gt;
Das Gehäuse ist zwar keine Schönheit, aber doch recht preiswert.&lt;br /&gt;
Typenbezeichnung: RM2055M oder etwas größer RM2055L&lt;br /&gt;
&lt;br /&gt;
== Firmware PIC ==&lt;br /&gt;
* Die Entwicklung der Firmware für den PIC18LF2550  erfolgt mit MPLABX und dem C18 Compiler. &lt;br /&gt;
* MPLABX ist kostenlos, der C18 Compiler bis auf die stärkste Optimierungsstufe ebenfalls. &lt;br /&gt;
* Die Quellen für die Firmware sind offengelegt und können von Sourceforge bezogen werden, siehe Links, weiter unten.&lt;br /&gt;
&lt;br /&gt;
=== Programmstruktur- und ablauf ===&lt;br /&gt;
Nach anfänglicher Initialisierung des PIC startet die Statemachine [http://http://www.mikrocontroller.net/articles/Statemachine] [http://http://de.wikipedia.org/wiki/Endlicher_Automat]. Neben ihr findet in der main-Funktion nur noch die Abfrage der beiden Bedientasten statt. Mit dem Tastendruck wird zum Zwecke der Entprellung ein Timer gestartet. Alles Andere (incl. PID-Regelung, Wellenpaket- bzw. Phasenan- und Phasenabschnittssteuerung und USB) ist interruptbasiert.&lt;br /&gt;
=== Reflow-Ofen-Konfiguration ===&lt;br /&gt;
&lt;br /&gt;
=== Taktversorgung, Nulldurchgangserkennung und Zeitbasis ===&lt;br /&gt;
=== USB ===&lt;br /&gt;
=== SPI für MAX6675 ===&lt;br /&gt;
=== SPI für MAX31855 ===&lt;br /&gt;
&lt;br /&gt;
=== Wellenpaketsteuerung ===&lt;br /&gt;
=== Phasenanschnitt ===&lt;br /&gt;
&lt;br /&gt;
=== PWM für MOSFET ===&lt;br /&gt;
=== PIC-Configword ===&lt;br /&gt;
&lt;br /&gt;
=== Zuordnung Outputs ===&lt;br /&gt;
[[Datei:pinning.png|thumb|right|400px|Input/Output-Funktions-Tabelle]]&lt;br /&gt;
&lt;br /&gt;
*In1 = RC2 = PIN13 = ULN5--&amp;gt;12 = OUT1 = PWM &lt;br /&gt;
*In2 = RB3 = PIN24 = ULN6--&amp;gt;11 = OUT2 = TRIAC_A (1) = K5&lt;br /&gt;
*In3 = RB4 = PIN25 = ULN7--&amp;gt;10 = OUT3 = TRIAC_B (2)= K2&lt;br /&gt;
*In4 = RA2 = PIN4  = ULN4--&amp;gt;13 = OUT4 = LED_PRG1 = OPTO D&lt;br /&gt;
*In5 = RC0 = PIN11 = ULN3--&amp;gt;14 = OUT6 = LED_PRG2 = OPTO F&lt;br /&gt;
*In6 = RC1 = PIN12 = ULN2--&amp;gt;15 = OUT7 = LED_PRG3 = OPTO G&lt;br /&gt;
*In7 = RA3 = PIN5  = ULN1--&amp;gt;16 = OUT5 = LED_PRG4 = OPT= E&lt;br /&gt;
&lt;br /&gt;
TRIAC1 ist nahe dem Zerocross&lt;br /&gt;
&lt;br /&gt;
== PC-Software (GUI) ==&lt;br /&gt;
[[Datei:gui_alpha.png|thumb|right|300px|Screenshot der GUI (noch Alpha) für den Reflow-Ofen-Controller]]&lt;br /&gt;
&lt;br /&gt;
Die GUI (englisch Graphical User Interface) ist der Einfachheit halber in VB.net programmiert und momentan noch im Alpha-Stadium. Auch hierfür liegen die Quellen später selbstverständlich offen.&lt;br /&gt;
&lt;br /&gt;
=== Funktionen und Modi ===&lt;br /&gt;
[[Datei:modi.png|thumb|right|400px|Auswahl der beschriebenen Modi durch Klick]]&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Ofen-Profil&amp;quot;&#039;&#039;&#039; - Es wird ein Programm (Temperaturkurve) aus dem EEPROM des Reflow-Ofens ausgeführt. Der Backvorgang kann mit der Software gesteuert (START, STOP, ...) und überwacht werden. Hierzu stehen Temperatur, Temperaturänderung, Heizleistung (Ober- und Unterhitze, Lüfter) so wie die graphische Darstellung im zentralen Diagramm zur Verfügung. Eingriffsmöglichkeiten, wie das Ändern der Temperaturkurve sind nicht vorgesehen. Dies soll ein reiner Überwachungs-Modus sein. Um die Temperaturkurve zu verändern zu können, sollte der Modus &amp;quot;PC-Profil&amp;quot; verwendet werden und die Temperaturkurve aus dem EEPROM importiert werden. Dann kann Selbige auch verändert und anschließend ausgeführt bzw. verändert in den EEPROM zurückgeschrieben werden. Dieser Modus stellt ein Äquivalent zur START/STOP-Tasten-Bedienung an der Platine dar und kann selbstverständlich parallel dazu genutzt werden. Die GUI also als Addon zum Stand-Alone-Betrieb.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;PC-Profil&amp;quot;&#039;&#039;&#039; - Es wird ein Programm (Temperaturkurve) ausgeführt welche zuvor am Computer erstellt / editiert wurde. In diesem Modus gibt der Computer Temperaturwerte vor, welche live über die USB-Schnittstelle zum PIC übertragen werden und mit dem dort integrierten PID-Regler ausgeführt werden. Das ermöglicht eine on-the-fly Veränderung der Temperaturkurve während des Backvorgangs. Temperaturkurven können aus Dateien oder dem EEPROM importiert und auch wieder exportiert werden. CSV-Dateien können ebenfalls importiert und exportiert werden. Die &amp;quot;Eingabe&amp;quot; der Temperaturkurve erfolgt entweder über Import (CSV/EEPROM), per Mausklick auf dem zentralen Diagramm oder im sog. DataGridView. Weiteres siehe Unterpunkt &amp;quot;Eingabe der Temperaturkurve (Reflowprofil)&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;manueller Ablauf&amp;quot;&#039;&#039;&#039; - In diesem Modus wird (im Gegensatz zu den oberen beiden Modi &amp;quot;Ofen-Profil&amp;quot; und &amp;quot;PC-Profil&amp;quot;) keine Temperatur geregelt. Hier wird die Leistung des Ofens in % eingestellt und gesteuert. Der PID-Regler ist nicht in Aktion. Die Temperatur, Temperaturänderung so wie der Temperaturverlauf werden selbstredend angezeigt bzw. im Diagramm dargestellt. Der Modus &amp;quot;manueller Ablauf&amp;quot; fährt ähnlich dem Modus &amp;quot;PC-Profil&amp;quot; die im DataGridView eingetragenen Leistungs-Zeit-Punkte ab. Für jeden Zeitpunkt ist eine Leistung vorgegeben. Die Eingabe erfolgt ähnlich wie unter &amp;quot;Eingabe der Temperaturkurve (Reflowprofil)&amp;quot; beschrieben. Nur eben, dass eine Leistung und keine Temperatur angegeben wird. Die Eingabe der Leistung kann nicht im Zeit-Temperatur-Diagramm erfolgen sondern mittels der Schieberegler oder direkt tabellarisch.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;manueller Modus&amp;quot;&#039;&#039;&#039; - Dieser Modus enthält 2 Submodi&lt;br /&gt;
** &amp;quot;manueller Leistungsmodus&amp;quot; - Auch in diesem Modus wird die Leistung gesteuert. Es wird keine Temperatur geregelt, der PID-Regler für die Temperatur ist nicht in Betrieb. Die Einstellung hier erfolgt über die drei Schieberegler oder über eine numerische Eingabe durch Klick auf die Leistungsangabe unter dem Schieberegler. Durch Klick auf die Texte &amp;quot;TOP&amp;quot;, &amp;quot;BOTTOM&amp;quot;, &amp;quot;FAN&amp;quot; (Oberhitze, Unterhitze, Lüfter) können selbige deaktiviert bzw. aktiviert werden. Auch in diesem Modus wird Temperatur, Temperaturänderung so wie der Temperaturverlauf dargestellt.&lt;br /&gt;
** &amp;quot;manueller Temperaturmodus&amp;quot; - Hier wird die Temperatur wieder mittels des Temperatur-PIDs geregelt. Die Temperatur wird entweder mittels Schieberegler (Ober- und Unterhitze-Regler sind jetzt gekoppelt) oder durch eine numerische Eingabe unterhalb der Schieberegler vorgegeben. Anzeige wie im &amp;quot;manuellen Leistungsmodus&amp;quot;. Der Lüfter kann unabhängig vom PID in seiner Leistung geregelt werden. Ein evtl. durch den Luftstrom verursachter Temperaturabfall wird vom PID selbstverständlich ausgeregelt (aus diesem Grunde ist es ja ein Regler).&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Programmieren&amp;quot;&#039;&#039;&#039; - Hier kann ein neues &#039;&#039;&#039;Temperatur&#039;&#039;&#039;-Programm für den EEPROM-Speicher des Ofens erstellt und editiert werden. Die Eingabemöglichkeiten sind unter &amp;quot;Eingabe der Temperaturkurve (Reflowprofil)&amp;quot; beschrieben. Dieser Modus ist zum reinen Programmieren des Ofens gedacht und ermöglicht keine weitere Steuerung oder Überwachung des Ofens.&lt;br /&gt;
&lt;br /&gt;
=== Eingabe der Temperaturkurve (Reflowprofil) ===&lt;br /&gt;
[[Datei:datagridview.png|thumb|right|400px|tabellarische Anzeige und Editiermöglichkeit der Temperaturkurve]]&lt;br /&gt;
Die Eingabe der Temperaturkurve erfolgt entweder über Import (CSV/EEPROM), per Mausklick auf dem zentralen Diagramm oder im sog. DataGridView (Excel-ähnliche Bedienung in tabellarischer Form). &lt;br /&gt;
&lt;br /&gt;
* CSV-Import + Export&lt;br /&gt;
* EEPROM-Import + Export&lt;br /&gt;
* Im rechts stehenden Screenshotbeispiel wird eine tabellarische Eingabeform mit einem DataGridView gezeigt: Die Temperatur (erster Temperaturpunkt = Punkt 0) von 100°C wird linear über einen Zeitraum von 0-30s verteilt. Bei 30s hat der Ofen die Temperatur von 100°C. Dafür setzt die Regelung die Oberhitze, die Unterhitze ein. Der Lüfter ist deaktiviert. In der Zeit von 30s bis 120s wird die Temperatur nun von 100°C auf 150°C linear angehoben. Von 120s bis 180s Backzeit steigt die Temperatur von 150°C auf 250°C. Von 180s bis 200s wird die Temperatur auf 280°C angehoben. Anschließend wird sie zwischen 200s und 220s auf 280°C gehalten (280°C@200s und 280°C@220s) um dann bis 240s wieder auf 250°C zu fallen. Bis zum Zeitpunkt 300s wird dann die Temperatur 30°C angestrebt. Zusätzlich ist der Lüfter nun aktiviert (soweit der Ofen eine Umluftfunktion besitzt). Bei Punkt 7 sind Ober- und Unterhitze deaktiviert nur noch der Lüfter kühlt. Da hier bei &amp;quot;Zeit[s]&amp;quot; die 0 eingetragen wird der Zustand (hier nur Lüfter an) für einen unendlich langen Zeitraum auf 0 gehalten. Also so lange wie das Programm aktiviert ist wird der Lüfter laufen. Natürlich könnte man hier auch z.B. 100°C und Zeitpunkt 0s eintragen. Dann würde der Ofen bis zum manuellen Beenden des Programms (klick auf STOP-Button oder Drücken des START/STOP-Tasters auf der Platine/Steuerung) 100°C halten.&lt;br /&gt;
* Alle Zellen des DataGridView sind editierbar (zur Veränderung der Temperatur, Zeitpunkt, ...)&lt;br /&gt;
* Direkter Klick auf das zentrale Temperatur-Zeit-Diagramm trägt den Zeitpunkt so wie die Temperatur unter dem Mauszeiger in die Tabelle (das DataGridView) ein. Die ausgewählte Zeile wird beschrieben oder überschrieben. Neue Zeilen (also Temperatur-Zeit-Punkte) können durch klick auf den &amp;quot;Plus-Button&amp;quot; hinzugefügt werden. Ebenso ist das Löschen oder Verschieben einer oder mehrerer Zeile gleichzeitig möglich.&lt;br /&gt;
&lt;br /&gt;
=== Beschreibung der Steuerungsmöglichkeiten ===&lt;br /&gt;
In Abhängigkeit des gewählten Modus bestehen einige Steuerungs-, Einstellungs- und Kontrollmöglichkeiten:&lt;br /&gt;
* &#039;&#039;&#039;Schieberegler&#039;&#039;&#039; für Temperatur od. Leistung (je nach Modus) für Oberhitze, Unterhitze und Lüfter. Je nach Hardwareausführung. &lt;br /&gt;
** Klick auf &amp;quot;TOP&amp;quot;, &amp;quot;BOTTOM&amp;quot; oder &amp;quot;FAN&amp;quot; aktiviert oder deaktiviert die entsprechende Funktion bzw. Hardware.&lt;br /&gt;
** Numerische Eingabe der Werte für die Schieberegler durch Klick auf die Anzeige unterhalb der Schieberegler. Werte können auch im deaktivierten Zustand angegeben werden. Die Übernahme erfolgt durch den &amp;quot;Aktivierungsklick&amp;quot; auf &amp;quot;TOP&amp;quot;, &amp;quot;BOTTOM&amp;quot; oder &amp;quot;FAN&amp;quot;&lt;br /&gt;
* &#039;&#039;&#039;T1, dT1, T2, dT2&#039;&#039;&#039; - Anzeige der gemessenen Temperatur so wie die momentane Temperaturänderung am jeweiligen Sensor. &lt;br /&gt;
* &#039;&#039;&#039;Bedienbuttons&#039;&#039;&#039;&lt;br /&gt;
** Play - Startet das Programm am angegebenen Startpunkt (siehe unten)&lt;br /&gt;
** Pause - Pausiert das Programm - weitere Pauseoptionen siehe unten&lt;br /&gt;
** Stop - Stopt den Programmablauf&lt;br /&gt;
** Vor / Zurück - Springt zwischen Temperaturpunkten hin und her. Dient zum überspringen oder zurückspringen zu gewissen Temperatur-Zeit-Punkten. Ermöglicht z.B. das Überspringen eines Ablaufes der eine lange Preheat- oder Dryphase hat.&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Status&amp;quot;&#039;&#039;&#039; - zeigt den aktuellen Zustand des Programms an (READY, START, WAITING, PAUSE, ...)&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;RESET&amp;quot;&#039;&#039;&#039; - setzt das (begonnene) Programm zurück. Beinhaltet neben dem Programmablauf auch das Zurücksetzen der graphischen Anzeige des Diagramms, etc.&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Startpunkt&amp;quot;&#039;&#039;&#039; - legt den ersten Punkt des Programmablaufes fest. &lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Wiederholungen&amp;quot;&#039;&#039;&#039; - ermöglicht das wiederholte Backen ohne das Programm händisch immer wieder neu starten zu müssen. Die Anzahl der Wiederholungen ist einstellbar (0 für unendlich viele) und es ist eine Wartezeit zwischen den Wiederholungen einstellbar. Alternativ kann eine Meldung nach jedem vollendeten Backvorgang abgegeben werden. Nach Bestätigung dieser wird die nächste Wiederholung ausgeführt.&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Pause&amp;quot;&#039;&#039;&#039; - Pauseneinstellungen. Hier sind Optionen wählbar was passieren soll, falls der Pausebutton betätigt wird:&lt;br /&gt;
** Pausezeit - gibt an wie lange die Pause dauern soll [s], danach fährt das Programm automatisch gemäß des gewählten Pausemodus fort. Für eine Pause ohne automatisches Fortfahren (Countdowntimer) &#039;0&#039; angeben.&lt;br /&gt;
** Pausemodus &amp;quot;aktuelle Temperatur halten, WarmUp, Fortsetzen&amp;quot; - Ofen hält die Temperatur (Zieltemperatur) des Zeitpunktes als der Pausebutton betätigt wurde. WarmUp bedeutet, dass nach dem Beenden des Pausemodus zunächst die Zieltemperatur wieder erreicht werden &#039;&#039;&#039;muss&#039;&#039;&#039; bevor der nächste Punkt angesteuert wird. Klingt paradox, wenn die Temperatur doch so und so gehalten wird, ist aber nicht so. Die Wahrscheinlichkeit ist hoch, dass der Pausemodus benutzt wird um die Ofentüre zu öffnen und Korrekturen an der Platine vorzunehmen. Unter Umständen ist die Heizung des Ofens jedoch nicht in der Lage den dadurch entstehenden Wärmeverlust zu kompensieren. Fährt das Programm dann sofort fort, so könnten evtl. kritische (Hoch-)Punkte des Lötprofils &amp;quot;unterfahren&amp;quot; werden. Dem wirkt WarmUp entgegen.&lt;br /&gt;
** Pausemodus &amp;quot;aktuelle Temperatur halten, Fortsetzen&amp;quot; - siehe oben, nur ohne WarmUp.&lt;br /&gt;
** Pausemodus &amp;quot;definierte Temperatur halten, WarmUp, Fortsetzen&amp;quot; - siehe oben. Statt der aktuellen Zieltemperatur wird jedoch nun im Pausemodus eine einzustellende Pausetemperatur gehalten. Mit WarmUp.&lt;br /&gt;
** Pausemodus &amp;quot;definierte Temperatur halten, Fortsetzen&amp;quot; - siehe oben, nur ohne WarmUp.&lt;br /&gt;
** &amp;quot;Pausetemperatur&amp;quot; - spezielle Temperatur die bei entsprechender Pausemoduswahl für die Dauer der Pause gehalten wird.&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Ende&amp;quot;&#039;&#039;&#039; - gibt an was am Ende eines durchlaufenen Reflow-Programms passieren soll. Ist der Wiederholungsmodus aktiviert, tritt dieses Ereignis erst nach Durchlauf aller Wiederholungen ein. Folgende Modi sind möglich:&lt;br /&gt;
** automatischer Reset - am Ende des Programms wird alles automatisch zurückgesetzt, alle Graphiken und Anzeigen gelöscht.&lt;br /&gt;
** manueller Reset - am Ende des Programms bleiben alle Anzeigen, Graphiken, etc erhalten und müssen vor Beginn eines neuen Reflowvorgangs händisch durch Klick auf &amp;quot;RESET&amp;quot; zurückgesetzt werden.&lt;br /&gt;
** Benutzermeldung - lässt eine Meldung erscheinen. Alle Anzeigen und Graphiken bleiben erhalten bis der Benutzer diese Meldung bestätigt. Mit Bestätigung dieser Meldung wird ein automatischer Reset vorgenommen.&lt;br /&gt;
&lt;br /&gt;
=== Loggen des Temperaturverlaufes ===&lt;br /&gt;
Es ist möglich jeden Backvorgang in eine CSV-Datei zu loggen. (Software- und PID-Einstellungen). Geloggte CSV-Dateien können eingelesen und im zentralen Temperatur-Zeit-Diagramm begutachtet werden. Ein Ist-Soll-Vergleich ist ebenso möglich wie die direkte Anzeige des Fehlers (&amp;quot;Ist minus Soll&amp;quot;). Dank CSV können die Daten auch mit anderen Programmen (Excel, etc.) weiterverarbeitet werden.&lt;br /&gt;
&lt;br /&gt;
== Ofen / Pizzaofen ==&lt;br /&gt;
=== Leistung und Volumen ===&lt;br /&gt;
* Alls Faustformel wird oft 100W pro Liter Volumen genannt.&lt;br /&gt;
* Ich habe einen sehr preiswerten Ofen gewählt und die &amp;quot;Oberhitze&amp;quot; zusätzlich mit zwei Halogen-Stäben a 300W &amp;quot;verstärkt. Das kostet nicht viel, die Fassung ist für ca. 3 Euro erhältlich, die Halogenstäbe gibt es in jedem Baumarkt. &lt;br /&gt;
* Bezugsquelle Fassung : siehe &amp;quot;Links&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Dämmung ===&lt;br /&gt;
=== Umluft ===&lt;br /&gt;
* Der verwendete Ofen sollte eine Umluftfunktion besitzen, damit sich die Wärme gleichmäßig im Ofen und auf der Leiterplatte verteilen kann.&lt;br /&gt;
&lt;br /&gt;
== FAQ ==&lt;br /&gt;
&lt;br /&gt;
* Q1: Ich habe einen PT100/PT1000 und möchte den anschließen. Geht das?&lt;br /&gt;
** A1: Ja natürlich. Dazu ist aber etwas externe Elektronik notwendig. Sowohl 2 ADC-Pins (mit 3V3 Betriebsspannung als fixe Referenzspannung), als auch die UART und SPI/I2C-Schnittstelle stehen zur freien Verfügung. Für PT100/PT1000 wird für vernünftige Messungen ohnehin eine Verstärkung (meist mit OPV) von Nöten sein. Da der PIC-interne ADC &amp;quot;nur&amp;quot; 10bit Auflösung bietet sollte ein externer 16bit ADC in Betracht gezogen werden um das Potential der PT100/PT1000 auszunutzen.&lt;br /&gt;
*Q2: Ich habe von günstigen Temperaturmessungen mit Dioden gehört. Geht das auch hier?&lt;br /&gt;
**A2: Ja. Die Vorwärtsspannung einer Diode verhält sich linear zur Sperrschichttemperatur. Diese Spannung (bei 25°C einer Si-Diode die bekannten 0,7V) kann mittels OPV verstärkt werden und auf einen Spannungsbereich von 0 ... 3V3 aufgebläht werden. Eine billige Lösung, auf Kosten der Genauigkeit. Doch eine Diode ist laut Datenblatt nur bis 150°C geeignet. Es ist also beim Löten mehr oder weniger Pfusch. Wenn ich schon eine Reflow-Steuerung baue, sollte ich doch nicht an ein paar Euro für eine gescheite Temperaturmessung sparen. Einige Anregungen vom Messgerätehersteller Keithley bzgl. der Halbleiterphysik mit interessanten Formeln [http://www.keithley.de/support/data?asset=50486]. Oder natürlich der Klassiker von Thomas Pfeifer [http://thomaspfeifer.net/backofen_smd_reflow.htm]. Oder ein Beitrag mit LT-Spice Simulation zum Thema [http://www.mikrocontroller.net/topic/270627#2833883].&lt;br /&gt;
* Q: God why ... ?&lt;br /&gt;
** A: Because we can !&lt;br /&gt;
*Q: Ich hab aber noch nie was mit 230V gemacht.&lt;br /&gt;
**A: Dann würde ich an Deiner Stelle dieses Projekt NICHT nachbauen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Verbesserungen Prototyp - Diese haben jedoch keinen Einfluss auf die Funktion der Leiterplatte===&lt;br /&gt;
* Bauteile weiter weg von den Schraublöchern.&lt;br /&gt;
* Dazu Kreis rund um Bohrung auf Bestückdruck.&lt;br /&gt;
* Masseanbindung Quarz.&lt;br /&gt;
* Klemmen weiter weg vom Rand.&lt;br /&gt;
* Klemme und Sicherungshalter weiter auseinander.&lt;br /&gt;
* Bohrungen für Drossel 0,2mm größer machen.&lt;br /&gt;
* Teilenummer für Conrad-USB-Buchse in BOM übernehmen.&lt;br /&gt;
* Stiftleiste P1  weiter weg von P2 und P4.&lt;br /&gt;
* Varistoren näher an Klemmen platzieren.&lt;br /&gt;
* THT-Kondensatoren für Snubber.&lt;br /&gt;
* Ggf. Stiftleistenbelegung für externe Leds so ändern, das keine extra Vorwiderstände notwendig sind.&lt;br /&gt;
* Befestigungsbohrung für Drossel, um diese mit Kabelbinderung oder Schraube fixieren zu können.&lt;br /&gt;
* Pullup-Widerstand bei MCLR doppelt. &lt;br /&gt;
* Power-LED vorsehen.&lt;br /&gt;
* Leiterbahnen etwas weiter weg von den Kühlkörperanschlüssen&lt;br /&gt;
* Designatoren Texte etwas größer machen.&lt;br /&gt;
* Ein vernünftiger GND-Punkt für einen Tastkopf / Messungen / Aligator-Clips vorsehen.&lt;br /&gt;
&lt;br /&gt;
= Errata Projekt =&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:red;&amp;quot;&amp;gt; Triac Symbol in Library falsch, dadurch ist T2 mit T1 vertauscht. Abhilfe für Leiterplattenversion V1.0: T1 und T2 &amp;quot;twisten&amp;quot; und jeweils mit Schrumpfschlauch versehen.( Also Beinchen T1 über kreuz mit Beinchen T2 einlöten...)&amp;lt;/span&amp;gt;&lt;br /&gt;
* Beim MOSFET R39 ist die Masseanbindung falsch. Es bestehen drei Möglichkeiten:&lt;br /&gt;
** 1. 0-R-Brücke für R39 einbauen und auf Strombegrenzung verzichten.&lt;br /&gt;
** 2. Eine Polyfuse mit Bauform 1206 einbauen. &lt;br /&gt;
** 3. Das kleine Leiterbahnstückchen zwischen R38 und R39 unterbrechen und statt dessen die Leiterbahn zwischen R39 und der Klemme mit der Durchkontaktierung bei R38 verbinden.&lt;br /&gt;
* LED-Beschriftung passt nicht ganz (Schaltplan Netlabel OUT1,2,3,4 sind durcheinander gekommen) --&amp;gt; Ist im Prinzip ohne Belang, man muss das nur bei der Software berücksichtigen.&lt;br /&gt;
* Schaltplan UNL2003 fehlerhafte Zuordnung IN5,6,7 &amp;lt;&amp;gt; OUT7,6,5 --&amp;gt; Ist im Prinzip ohne Belang, man muss das nur bei der Software berücksichtigen.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* Diskussion: [http://www.mikrocontroller.net/topic/297217 Diskussion]&lt;br /&gt;
* Software: [http://sourceforge.net/projects/reflowofensteue/ Bei Sourceforge]&lt;br /&gt;
* Dextrel Nulldurchgang: [http://www.dextrel.net/diyzerocrosser.htm Nulldurchgangschaltung]&lt;br /&gt;
* Gehäuse Zeichnung: [http://www.hammondmfg.com/pdf/RM2055L.pdf Großes Gehäuse für Steckdosenmontage]&lt;br /&gt;
* Gehäuse Zeichnung: [http://www.hammondmfg.com/pdf/RM2055M.pdf Kleines Gehäuse, keine Steckdosen]&lt;br /&gt;
* Bezugsquelle [http://www.soselectronic.com/?str=371&amp;amp;artnum=73596&amp;amp;name=hammond-ritec-rm2055l Großes Gehäuse Hammond]&lt;br /&gt;
* Bezugsquelle [http://www.soselectronic.com/?str=371&amp;amp;artnum=73595&amp;amp;name=hammond-ritec-rm2055m Kleines Gehäuse Hammond]&lt;br /&gt;
* Bezugsquelle [http://www.druckerzubehoer.de/shop/product/catid/H-UNIVERSALZUBEHOER_HZB/subcatid/UNIVERSALZUBEHOER_GROUP1_HZB/productid/1727063-390722LA/site/1/lng/de_DE Netzteil Mini USB ]&lt;br /&gt;
* Bezugsquelle [http://www.ebay.de/itm/151037292125?ssPageName=STRK:MEWNX:IT&amp;amp;_trksid=p3984.m1497.l2649 Termoelement Ebay (Typ K für ca. 2Euro)]&lt;br /&gt;
* Bezugsquelle [http://www.artcase-shop.de/index.php?page=search&amp;amp;page_action=query&amp;amp;desc=on&amp;amp;sdesc=on&amp;amp;keywords=pce+105&amp;amp;x=0&amp;amp;y=0 Steckdosen für Schalttafeleinbau:]&lt;br /&gt;
* Bezugsquelle [http://www.schaeffer-ag.de/ Frontplatten]&lt;br /&gt;
* Bezugsquelle [http://www.lichtlieferant.de/catalogsearch/result/?q=r7s+fassung+sockel Vossloh Fassung R7S für Halogenstäbe]&lt;br /&gt;
* Datenblatt Prozessor [http://ww1.microchip.com/downloads/en/DeviceDoc/39632e.pdf PIC18LF2550]&lt;br /&gt;
* Umfangreicher Thread u.A. Leistungsvermögen, Temperaturmessung und Dämmung [http://www.mikrocontroller.net/topic/270627]&lt;br /&gt;
[[Kategorie:PIC-Projekte]]&lt;/div&gt;</summary>
		<author><name>Frankman</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=Reflow_Ofen_Steuerung&amp;diff=80572</id>
		<title>Reflow Ofen Steuerung</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=Reflow_Ofen_Steuerung&amp;diff=80572"/>
		<updated>2014-01-03T10:58:30Z</updated>

		<summary type="html">&lt;p&gt;Frankman: /* Kühlkörper */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Datei:RFB.jpg|thumb|right|200px|Altium 3D Ansicht]]&lt;br /&gt;
[[Datei:Teilbest2.jpg|750px|teilbestückte Platine]]&lt;br /&gt;
== Einleitung ==&lt;br /&gt;
[[Datei:pcb.png|thumb|right|400px|unbestücktes PCB der Reflow-Ofen-Steuerung]]&lt;br /&gt;
Hier wird eine weitere Reflow-Ofen-Steuerung beschrieben.&lt;br /&gt;
=== Zum Nachbauen ===&lt;br /&gt;
* Spezifikation: [[Datei: Spec Reflow.pdf]]&lt;br /&gt;
* Schaltplan: &lt;br /&gt;
** Minimalversion [[Datei:Schematic Prints Minimal.pdf]]&lt;br /&gt;
** Standardversion [[Datei:Schematic Prints Standard.pdf]]&lt;br /&gt;
** Deluxeversion [[Datei:Schematic Prints Deluxe.pdf]]&lt;br /&gt;
** Debugversion [[Datei:Schematic Prints Debug.pdf]]&lt;br /&gt;
* Gerberdaten: [[Datei:Gerber Reflow.pdf]]&lt;br /&gt;
* Assemblydrawing: [[Datei:Assembly Reflow.pdf]] &lt;br /&gt;
* Altium-Files: [[Datei:Reflow.zip]]&lt;br /&gt;
* Stückliste als CSV: [[Datei:Reflow.csv]]&lt;br /&gt;
* Stückliste als Open Office: [[Datei:Reflow.ods]]&lt;br /&gt;
* PC Programm: TBD&lt;br /&gt;
* Sourcen PC-Programm: TBD&lt;br /&gt;
* PIC Programm (*.hex): [http://sourceforge.net/projects/reflowofensteue/ ]&lt;br /&gt;
* Sourcen Pic-Programm: [http://sourceforge.net/projects/reflowofensteue/ ]&lt;br /&gt;
* Step-File Steckdose:[[Datei:Steckdose.stp]]&lt;br /&gt;
&lt;br /&gt;
=== Motivation ===&lt;br /&gt;
Die Gründe, eine weitere Steuerung zu entwerfen, waren:&lt;br /&gt;
&lt;br /&gt;
* Die Möglichkeit, auch größere Öfen mit 2 Phasen betreiben zu können.&lt;br /&gt;
* Die Steuerung universell zu gestalten. Es sollte möglich sein, diese nicht nur zum Reflow löten zu verwenden....z.B:&lt;br /&gt;
** Temperatursteuerung für Klimakammer (Heizen, Kühlen)&lt;br /&gt;
** Dimmer mit USB&lt;br /&gt;
** Temperaturregler für ein Tisch-Fondue ( Temperatur halten)&lt;br /&gt;
** Drehzahlsteller mit USB&lt;br /&gt;
** Switchpack&lt;br /&gt;
* Die Schaltung sollte in Altium entwickelt werden. (Warum kein Eagle??? Altium User wissen es.... :-)&lt;br /&gt;
* Die Schaltung sollte mit USB ausgestattet sein.&lt;br /&gt;
&lt;br /&gt;
=== Eigenschaften &amp;amp; Spezifikationen ===&lt;br /&gt;
* Temperaturmessung: bis zu 2x &#039;&#039;&#039;Thermoelement&#039;&#039;&#039; (K-Typ) mit MAX6675 (abgekündigt) oder Nachfolger MAX31855 (pin- aber nicht softwarekompatibel)&lt;br /&gt;
* Leistungsstufen: &#039;&#039;&#039;3 voneinander unabhängige&#039;&#039;&#039; Triacs 800V 25A, limitiert auf &#039;&#039;&#039;10A @ 250VAC&#039;&#039;&#039; (z.B. Oberhitze, Unterhitze, Umluft)&lt;br /&gt;
* Nulldurchgangserkennung ermöglicht Wellenpaket-, und Phasenabschnittssteuerung * Galvanische Trennung der Leistungsendstufen&lt;br /&gt;
* 1x MOSFET-Ausgang PWM z.B. für 12V Lüfter, max. &#039;&#039;&#039;55V 3,5A&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;4 feste Programme&#039;&#039;&#039; im EEPROM über 2-Tasterbedienung und LEDs wähl- und ausführbar. &lt;br /&gt;
* &#039;&#039;&#039;PC-unabhängiger Betrieb&#039;&#039;&#039; möglich. &lt;br /&gt;
* Beliebig viele Programme möglich, bei Betrieb am Computer &lt;br /&gt;
* Mini-USB-Buchse zur Steuerung / Programmierung über GUI und zum Entwickeln. - Dafür ist &#039;&#039;&#039;keine Netzspannung&#039;&#039;&#039; erforderlich&lt;br /&gt;
* Günstiges passendes Gehäuse&lt;br /&gt;
* Alle LEDs und Taster auf &#039;&#039;&#039;Stiftleisten&#039;&#039;&#039; herausgeführt, für eigene Gestaltung der Frontblenden&lt;br /&gt;
* PID-Temperaturregler&lt;br /&gt;
* UART, SPI, I2C und 2x ADC auf Stiftleisten herausgeführt, für zukünftige &#039;&#039;&#039;Erweiterungen&#039;&#039;&#039;&lt;br /&gt;
* Versorgung über USB &amp;lt; 100mA, interne Versorgungsspannung 3,3V&lt;br /&gt;
* umfangreiche EMV-gerechte Entstörung für den Bedarfsfall&lt;br /&gt;
&lt;br /&gt;
=== Zusätzliches Benötigtes Material ===&lt;br /&gt;
* Leiterplatte (1 Stück)&lt;br /&gt;
* Gehäuse Hammond Teilenummer: RM2055L (1 Stück)&lt;br /&gt;
* Alternativ:Gehäuse Hammond Teilenummer: RM2055M (Wenn keine Steckdosen angebracht werden sollen)&lt;br /&gt;
* Alternative: Gehäuse Hammond (Hier muss man die Leiterplatte selber befestigen) Teilenummer: 1455T2201 (1 Stück)&lt;br /&gt;
* Einbausteckdosen Teilenummer: PEC 105 (2-3 Stück, je nach Ausbaustufe)&lt;br /&gt;
* PG-Verschraubung (2-3 Stück)&lt;br /&gt;
* Mutter für PG-Verschraubung (2 Stück)&lt;br /&gt;
* Litze blau, mindestens 1,5mm² (ca. 60cm)&lt;br /&gt;
* Litze braun, mindestens 1,5mm² (ca. 60cm) &lt;br /&gt;
* Litze gelb/grün, mindestens 1,5mm² (ca. 60cm)&lt;br /&gt;
* Aderendhülsen  mit Schutzkragen dazu ( 9 Stück für die Steckdosen)&lt;br /&gt;
* Schrauben, um die Leiterplatte zu befestigen (4 Stück)&lt;br /&gt;
* evtl. Abstandsbolzen dazu, falls das alternative Gehäuse verwendet wird (4 Stück)&lt;br /&gt;
* evtl. Muttern dazu, falls das alternative Gehäuse verwendet wird (4 Stück)&lt;br /&gt;
* Schrauben, Senkkopf DIN 7991 oder DIN 965 M4 X 10 um die Steckdosen zu befestigen (12 Stück)&lt;br /&gt;
* Muttern dazu M4 (12 Stück)&lt;br /&gt;
* Federschreiben  dazu DIN 127 M4 (12 Stück)&lt;br /&gt;
* Glimmerscheiben für Triac (2-3 Stück, je nach Ausbaustufe)&lt;br /&gt;
* Isoliernippel für Triacmontage (2-3 Stück, je nach Ausbaustufe)&lt;br /&gt;
* Zylinderkopfschraube M3 X 12 für Triacmontage (2-3 Stück, je nach Ausbaustufe)&lt;br /&gt;
* Mutter M3 für Triacmontage (2-3 Stück, je nach Ausbaustufe)&lt;br /&gt;
* Beilagscheibe M3 für Triacmontage (2-3 Stück, je nach Ausbaustufe)&lt;br /&gt;
* Isolierband für Triacmontage (ca. 300mm)&lt;br /&gt;
* Gummifüße für das Gehäuse (4 Stück)&lt;br /&gt;
&lt;br /&gt;
=== Kühlkörpermontage===&lt;br /&gt;
* Der Kühlköper sollte 38mm hoch sein, so passt er gut in die angegebenen Gehäuse&lt;br /&gt;
* Der Kühlkörper MUSS isoliert montiert werden, also Glimmerscheibe und Isoliernippel einsetzen und NACHMESSEN, ob der Kühlkörper auch wirklich keinen Kontakt zum Triac hat!&lt;br /&gt;
* Da die 230-V-Leiterbahnen nur durch den Stopplack vom Kühlkörper getrennt sind, sollte die Isolation mit zwei Lagen Gewebe- oder Isolierband verstärkt werden. Das Isolierband kann auf die Leiterplatte oder unter den Kühlkörper geklebt werden.&lt;br /&gt;
* Als Bohrungsmaß empfehle ich 20mm über der Leiterplatte.&lt;br /&gt;
* Entweder Bohrung 3,2mm für Durchgangsloch &lt;br /&gt;
* Oder Bohrung 2,5mm mit M3-Gewinde&lt;br /&gt;
&lt;br /&gt;
== Schaltung==&lt;br /&gt;
=== PIC18LF2550 Grundbeschaltung ===&lt;br /&gt;
[[Datei:osc_vs_vcc.png|thumb|right|200px|Taktraten und Versorgungsspannung PIC18F2550 vs. PIC18LF2550, Datenblatt S. 370/438]]&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 3/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Hier kommt ein PIC18&#039;&#039;&#039;L&#039;&#039;&#039;F2550 zum Einsatz. Er verfügt über eine USB-Schnittstelle und ist für Betriebsspannungen von 2 ... 5,5V ausgelegt. Sein Verwandter PIC18F2550 (ohne L) ist nicht für Betriebsspannungen &amp;lt; 4,2V ausgelegt. Dies ist bei USB sowieso nicht immer erfüllt und die Thermoelement-ICs vertragen ohnehin keine 5V, daher wurde die Betriebsspannung auf 3,3V reduziert. Neben Standard-Decoupling (100nF Kerko pro Vcc-Vss-Pärchen) wurde das ICSP-Interface in alt bewährter Pinbelegung (PICKit1,2,3) angebracht. PGD und PGC sind nicht weiter beschaltet, MCRL wird , wie immer als Resetpin verwendet. Der Resetschalter findet sich auf dem Top-Sheet (Schaltplan S. 1/22). Die Taktversorgung erfolgt über einen 24 MHz Quarz (-&amp;gt; USB). Man beachte diesbezüglich rechts stehende Grafik zu Taktraten und Versorgungsspannungen (Vdd bzw. auch Vcc genannt). Auch zu finden im Datenblatt des PICs auf Seite 370.&lt;br /&gt;
&lt;br /&gt;
=== PIC18LF2550 USB Beschaltung ===&lt;br /&gt;
[[Datei:usb_part.png|thumb|right|200px|PIC18(L)F2550&lt;br /&gt;
 Standard &lt;br /&gt;
USB-Beschaltung am PIC]]&lt;br /&gt;
[[Datei:usb_protect.png|thumb|right|200px|USB-Schutzbeschaltung und Mini-USB-Buchse]]&lt;br /&gt;
&lt;br /&gt;
Die Beschaltung der USB-Schnittstelle am PIC ist 1:1 aus dem Datenblatt übernommen. Zum Einsatz kommt eine Mini-USB-Buchse (J1).&lt;br /&gt;
Der Gedanke war: Erstens ein sehr preiswertes, fertiges Netzteil verwenden zu können, (ca. 3,67 € bei druckerzubehoer.de) und zweitens, die Steuerung auch mit dem PC / Laptop versorgen zu können.&lt;br /&gt;
Somit kann die Schaltung OHNE 230V betrieben und debuggt werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 4/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
FER1,2 und C7 filtern den Schirm nach GND. Standardmäßig wird man hier wohl 0-Ohm-Widerstände einsetzen. Falls ein Besuch im EMV-Labor geplant ist, weicht man auf den Ferrit aus. C5 und C6 filtern das Signal zusammen mit der Common-Mode-DrosselL1. Die Drossel kann mit den 0-Ohm-Brücken R8 und R9 überbrückt (gespart) werden. IC2 ist als ESD-Schutz gedacht und kann ebenfalls bei ausgeprägten Kostenbewustsein gespart werden. Die Widerstände R6 und R7 dürfen NICHT bestückt werden. FER1,2, C5, IC2 müssen nicht zwingend bestückt werden. Die Bestückung wurde vorgehalten um im Problemfall einfache Abhilfe schaffen zu können.&lt;br /&gt;
&lt;br /&gt;
=== 3,3V Spannungsversorgung ===&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 2/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Die 3,3V Versorgungsspannung für die gesamte Platine wird aus V_USB mittels des LDO Spannungsreglers TOREX - XC6206P332MR abgeleitet. Günstig, SOT-23, klein, 2x 1µF Kondensatoren benötigt, 3,3V max. 250mA. Der hat auch einen sehr kleinen Ruhestrom.&lt;br /&gt;
&lt;br /&gt;
=== Taster ===&lt;br /&gt;
*Der Resettaster zieht den MCLR-Pin nach GND und löst damit den Reset aus. MCLR  ist mit einem 10k Pullup versehen.&lt;br /&gt;
*Die übrigen beiden Taster ziehen RA4 bzw. RB5 ebenfalls nach GND.&lt;br /&gt;
&lt;br /&gt;
=== LEDs + ULN2003L ===&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 11/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Um alle LEDs auf der Platine (3x Optotriac + 7x Status) ansteuern zu können wurde auf das 7fach Darlington-Array ULN2003L zurückgegriffen. Die PIC-Ausgänge könnten zwar die LEDs direkt steueren. Aber so werden alle Ausgänge einheitlich nach Masse geschaltet. Das verbessert die Testbarkeit der ganzen Platine. ( Mit einem kurzen Masse-Draht kann zur Not der entsprechende Ausgang gesetzt werden, ohne etwas zu zerstören.)&lt;br /&gt;
&lt;br /&gt;
=== MOSFET-Leistungsausgang ===&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 22/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Hier kommt der einfacher N-Kanal MOSFET (LogicLevel) PHT8N06LT zum Einsatz. Er wird über das ULN2003L Array getrieben und ermöglicht den Anschluss eines DC-Verbrauchers mit max. 55V bei 3,5A. Hier könnte beispielsweise ein PC-Lüfter zur Kühlung oder für Umluft angeschlossen und über PWM geregelt/gesteuert werden. Ein Gatewiderstand von 100 Ohm ist zum Schutz des Treibers vorgesehen. Eine 0-Ohm-Brücke ist stattdessen aber auch möglich, wenn man eine höhere Leistung schalten möchte.Die Leiterbahnen sollten die 3A schon hergeben. Der 100 Ohm Widerstand bildet eine Stromquelle. Sobald der Strom durch den MOSFET und den Widerstand 33mA erreicht, sinkt UGS gegen 0 V. Folge: Der Mosfet sperrt ( und bleibt ganz....)&lt;br /&gt;
Es kann hier prinzipiell auch ein anderer Mosfet im SOT223-Gehäuse zum Einsatz kommen. Achten sollte man darauf, das der MOSFET schon bei 3,3V Ugs gut leiten sollte.&lt;br /&gt;
&lt;br /&gt;
=== Nulldurchgangserkennung ===&lt;br /&gt;
[[Datei:zerocross.png|thumb|right|200px|Nulldurchgangserkennung]]&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 5/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Die Nulldurchgangserkennung erfolgt nach einer sehr bekannten - jedoch ausgeklügelten - Schaltung.  [http://www.dextrel.net/diyzerocrosser.htm siehe: Dextrel]&lt;br /&gt;
Während einer Halbwelle wird C14 über R33 und R35 bzw. D5 geladen. Währenddessen ist T1 gesperrt. Sobald die Wechselspannung (L1-N über Spannungsteiler (R33+R35) / R34) kleiner ist als die Spannung über C14, steuert T1 durch. Dann entlädt sich C14 über den LED-Vorwiderstand R32. Der durch-steuernde Optokoppler zieht die Sync-Leitung nach GND. (Pullup Sync-Leitung = R31). Dies löst beim PIC auf INT2 einen Interrupt aus. &lt;br /&gt;
Dieser Interrupt ermöglicht eine präzise Wellenpaket-, Phasenanschnittsteuerung je nach Bedarf. Das Schalten im Nulldurchgang bei der Wellenpaketsteuerung reduziert EMV-Störungen. Für Phasenanschnitt ist ohnehin eine Nulldurchgangserkennung notwendig. Außerdem liefert sie eine genaue Zeitbasis für alle Programmabläufe.&lt;br /&gt;
&lt;br /&gt;
=== Triac-Ausgänge + Snubber ===&lt;br /&gt;
[[Datei:triac.png|thumb|right|200px|Triac-Ausgangsbeschaltung]]&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 19,20,21/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Die Ansteuerung des eigentlichen Leistungstriacs BTA140-800 erfolgt über den Optotriac IS6005. Der Strom durch Letzteren wird durch R1x limitiert (Vorwiderstand). R2x und R5x limitieren wiederum den Strom durch den Optotriac. Wenn dieser zündet so folgt unmittelbar der &amp;quot;Leistungstriac&amp;quot; der dann die Last schaltet.&lt;br /&gt;
&lt;br /&gt;
S1x ist ein Sicherungshalter um die Lasten einzeln absichern zu können. Wert 10A Mittelträge.&lt;br /&gt;
&lt;br /&gt;
R3x, R4x, C3x bilden ein Snubber-Network, L1X verhindert eine zu schnelle Stromanstiegsgeschwindikeit damit der Triac nicht &amp;quot;von selbst&amp;quot; zündet. Weglassen äußert sich meist in einem fast nicht hörbaren Click. Damit zeigt einem dann der Triac, dass er ab jetzt für immer recht niederohmig geworden ist. Die Regelung der Temperatur braucht dann nicht mehr über den Prozessor erfolgen, sondern nur noch mit dem Ein-/Ausschalter..... :-)&lt;br /&gt;
&lt;br /&gt;
=== Thermoelemente (MAX6675/MAX31855)  ===&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 6,7/22&#039;&#039;&#039;&lt;br /&gt;
Der inzwischen abgekündigte MAX6675 bzw. sein ehrenwerter Nachfolger MAX31855 sind einfach zu handhabende Thermoelement-ICs mit Kaltstellenkompensation. Thermoelemente funktionieren durch das Verschweißen zweier verschiedener Legierungen (beim K-Typ Thermoelemnt Ni und CrNi). Durch den durch die Umgebungstemperatur bedingten Wärmefluss zwischen beiden entsteht ein elektrische Spannung. Diese wird von besagten ICs verstärkt und digitalisiert (ADC). Diese Spannung / Temperatur ist natürlich wieder relativ zur Umgebungstemperatur an der Kaltstelle (Kontaktierung der beiden Drähte mit dem Messinstrument). Daher messen diese ICs auch gleich die Umgebungstemperatur (Kaltstellenkompensation genannt) mit, verrechnen das und geben das Ergebnis auf der SPI-Schnittstelle aus. MAX6675 leistet 12bit also 0,25°C Auflösung (nicht Genauigkeit!) über einen Temperaturbereich von 0°C to +1024°C. Außerdem wird ein nicht/fehlerhaft angeschlossenes Thermoelement erkannt. Der Thermocouple-IC wird an die SPI-Schnittstelle des PICs angeschlossen (hier MSSP genannt). &lt;br /&gt;
&lt;br /&gt;
MAX6675 und MAX31855 scheinen entgegen der Adafruit-Information [http://www.adafruit.com/products/269] doch pinkompatibel zu sein - die Ansteuerung unterscheidet sich jedoch definitiv. (Zitat: &amp;quot;Now uses the MAX31855K instead of the MAX6675, so it can measure a wider temperature measurement range. Please note! the MAX31855 is not pin compatible or drop-in code compatible with the MAX6675. We do have an Arduino library for both chips but you&#039;ll need to adjust any existing MAX6675 designs for the mew MAX31855. The MAX6675 has been discontinued by Maxim.&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Es wurden 2 dieser ICs und damit 2 Temperaturmessstellen vorgesehen. Dies ermöglich die Messung für eine Regelung der Temperatur so wie eine zusätzliche Überwachung kritischer Bauteile (z.B. ICs oder LEDs). Die Minimalbestückung sieht einen MAX6675/MAX31855 vor. Die Auswahl in der Firmware erfolgt über einen der beiden GPIO-Pins RA5 oder RA0 via dem ChipSelect (CS) des MAX6675/MAX31855.&lt;br /&gt;
&lt;br /&gt;
Neben dem MAX6675/MAX31855 wurde ein Decoupling-Kondensator (C8x, Standard 100nF) so wie ein weiterer im Messpfad (C9x) zur Zwecken der Entstörung vorgeshen. C9x 100nF sollte nur bestückt werden wenn Probleme bei der Temperaturmessung entstehen (z.B. unrealstisch stark schwankende Werte).&lt;br /&gt;
&lt;br /&gt;
=== ADC, SPI, UART &amp;amp; I2C Stiftleiste ===&lt;br /&gt;
ADC, SPI, UART und I2C sind zu Zwecken der Kalibrierung / Erweiterung / Einstellung / Debugging auf Stiftleisten herausgeführt:&lt;br /&gt;
Ähnlichkeiten mit dem FTDI-USB-TTL-Kabel bzw. Arduino XXX Bla Bla Bla Schnittstellenkonverter sind natürlich rein zufällig.&lt;br /&gt;
&lt;br /&gt;
Die I2C-Schnittstelle wurde auf eine Stiftleiste geführt, um z.B. einem LM75 o.ä. anschließen zu können. Damit stehen zur Kalibrierung der Thermoelemente genaue Temperaturen zur Verfügung.&lt;br /&gt;
&lt;br /&gt;
Die Stiftleisten haben alle ein Raster von 2,54mm. So können Pin-Header, Wannenstecker oder ähnliches verwendet werden.&lt;br /&gt;
&lt;br /&gt;
Da ja viele Leute eigene Vorstellungen bezüglich der Frontplattengestaltung haben, wurden auch die Taster und LEDs auf Stiftleisten geführt.&lt;br /&gt;
&lt;br /&gt;
=== Kühlkörper ===&lt;br /&gt;
Da die Triacs der Steuerung für bis zu 10A pro Kanal ausgelegt sind, kann man auf die Kühlkörper nicht verzichten. Es fallen bei 10A bis zu 13 Watt Wärme pro Triac ab. Falls mann auf die Kühlkörper doch verzichten möchte, sollte man darauf achten, die Triacs mit dem Kopf nach unten einzubauen. Diese können sich dann bei Überlast ganz von selber auslöten.... :-)&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red;&amp;quot;&amp;gt; Die Triacs müssen mit Glimmerscheibe und Isoliernippel -ALSO ISOLIERT ZUM KÜHLKÖRPER- montiert werden.&lt;br /&gt;
Außerdem muss unter dem Kühlkörper ein Stück Isolierband oder FR4 oder Nylon-Scheiben beigelegt werden, um zu verhindern, dass der Stopplack der Leiterplatte beschädigt wird. In diesem Falle hätte man Potential auf dem Kühlkörper.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Gehäuse ===&lt;br /&gt;
Die Leiterplatte wurde für ein Gehäuse von Hammond entwickelt.&lt;br /&gt;
Das Gehäuse ist zwar keine Schönheit, aber doch recht preiswert.&lt;br /&gt;
Typenbezeichnung: RM2055M oder etwas größer RM2055L&lt;br /&gt;
&lt;br /&gt;
== Firmware PIC ==&lt;br /&gt;
Die Entwicklung der Firmware für den PIC18LF2550  erfolgt mit MPLABX und dem C18 Compiler. MPLABX ist kostenlos, der C18 Compiler bis auf die stärkste Optimierungsstufe ebenfalls. Die Quellen für die Firmware sind offengelegt und können von Sourceforge bezogen werden, siehe Links, weiter unten.&lt;br /&gt;
&lt;br /&gt;
=== Programmstruktur- und ablauf ===&lt;br /&gt;
Nach anfänglicher Initialisierung des PIC startet die Statemachine [http://http://www.mikrocontroller.net/articles/Statemachine] [http://http://de.wikipedia.org/wiki/Endlicher_Automat]. Neben ihr findet in der main-Funktion nur noch die Abfrage der beiden Bedientasten statt. Mit dem Tastendruck wird zum Zwecke der Entprellung ein Timer gestartet. Alles Andere (incl. PID-Regelung, Wellenpaket- bzw. Phasenan- und Phasenabschnittssteuerung und USB) ist interruptbasiert.&lt;br /&gt;
=== Reflow-Ofen-Konfiguration ===&lt;br /&gt;
&lt;br /&gt;
=== Taktversorgung, Nulldurchgangserkennung und Zeitbasis ===&lt;br /&gt;
=== USB ===&lt;br /&gt;
=== SPI für MAX6675 ===&lt;br /&gt;
=== SPI für MAX31855 ===&lt;br /&gt;
&lt;br /&gt;
=== Wellenpaketsteuerung ===&lt;br /&gt;
=== Phasenanschnitt ===&lt;br /&gt;
&lt;br /&gt;
=== PWM für MOSFET ===&lt;br /&gt;
=== PIC-Configword ===&lt;br /&gt;
&lt;br /&gt;
=== Zuordnung Outputs ===&lt;br /&gt;
[[Datei:pinning.png|thumb|right|400px|Input/Output-Funktions-Tabelle]]&lt;br /&gt;
&lt;br /&gt;
*In1 = RC2 = PIN13 = ULN5--&amp;gt;12 = OUT1 = PWM &lt;br /&gt;
*In2 = RB3 = PIN24 = ULN6--&amp;gt;11 = OUT2 = TRIAC_A (1) = K5&lt;br /&gt;
*In3 = RB4 = PIN25 = ULN7--&amp;gt;10 = OUT3 = TRIAC_B (2)= K2&lt;br /&gt;
*In4 = RA2 = PIN4  = ULN4--&amp;gt;13 = OUT4 = LED_PRG1 = OPTO D&lt;br /&gt;
*In5 = RC0 = PIN11 = ULN3--&amp;gt;14 = OUT6 = LED_PRG2 = OPTO F&lt;br /&gt;
*In6 = RC1 = PIN12 = ULN2--&amp;gt;15 = OUT7 = LED_PRG3 = OPTO G&lt;br /&gt;
*In7 = RA3 = PIN5  = ULN1--&amp;gt;16 = OUT5 = LED_PRG4 = OPT= E&lt;br /&gt;
&lt;br /&gt;
TRIAC1 ist nahe dem Zerocross&lt;br /&gt;
&lt;br /&gt;
== PC-Software (GUI) ==&lt;br /&gt;
[[Datei:gui_alpha.png|thumb|right|300px|Screenshot der GUI (noch Alpha) für den Reflow-Ofen-Controller]]&lt;br /&gt;
&lt;br /&gt;
Die GUI (englisch Graphical User Interface) ist der Einfachheit halber in VB.net programmiert und momentan noch im Alpha-Stadium. Auch hierfür liegen die Quellen später selbstverständlich offen.&lt;br /&gt;
&lt;br /&gt;
=== Funktionen und Modi ===&lt;br /&gt;
[[Datei:modi.png|thumb|right|400px|Auswahl der beschriebenen Modi durch Klick]]&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Ofen-Profil&amp;quot;&#039;&#039;&#039; - Es wird ein Programm (Temperaturkurve) aus dem EEPROM des Reflow-Ofens ausgeführt. Der Backvorgang kann mit der Software gesteuert (START, STOP, ...) und überwacht werden. Hierzu stehen Temperatur, Temperaturänderung, Heizleistung (Ober- und Unterhitze, Lüfter) so wie die graphische Darstellung im zentralen Diagramm zur Verfügung. Eingriffsmöglichkeiten, wie das Ändern der Temperaturkurve sind nicht vorgesehen. Dies soll ein reiner Überwachungs-Modus sein. Um die Temperaturkurve zu verändern zu können, sollte der Modus &amp;quot;PC-Profil&amp;quot; verwendet werden und die Temperaturkurve aus dem EEPROM importiert werden. Dann kann Selbige auch verändert und anschließend ausgeführt bzw. verändert in den EEPROM zurückgeschrieben werden. Dieser Modus stellt ein Äquivalent zur START/STOP-Tasten-Bedienung an der Platine dar und kann selbstverständlich parallel dazu genutzt werden. Die GUI also als Addon zum Stand-Alone-Betrieb.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;PC-Profil&amp;quot;&#039;&#039;&#039; - Es wird ein Programm (Temperaturkurve) ausgeführt welche zuvor am Computer erstellt / editiert wurde. In diesem Modus gibt der Computer Temperaturwerte vor, welche live über die USB-Schnittstelle zum PIC übertragen werden und mit dem dort integrierten PID-Regler ausgeführt werden. Das ermöglicht eine on-the-fly Veränderung der Temperaturkurve während des Backvorgangs. Temperaturkurven können aus Dateien oder dem EEPROM importiert und auch wieder exportiert werden. CSV-Dateien können ebenfalls importiert und exportiert werden. Die &amp;quot;Eingabe&amp;quot; der Temperaturkurve erfolgt entweder über Import (CSV/EEPROM), per Mausklick auf dem zentralen Diagramm oder im sog. DataGridView. Weiteres siehe Unterpunkt &amp;quot;Eingabe der Temperaturkurve (Reflowprofil)&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;manueller Ablauf&amp;quot;&#039;&#039;&#039; - In diesem Modus wird (im Gegensatz zu den oberen beiden Modi &amp;quot;Ofen-Profil&amp;quot; und &amp;quot;PC-Profil&amp;quot;) keine Temperatur geregelt. Hier wird die Leistung des Ofens in % eingestellt und gesteuert. Der PID-Regler ist nicht in Aktion. Die Temperatur, Temperaturänderung so wie der Temperaturverlauf werden selbstredend angezeigt bzw. im Diagramm dargestellt. Der Modus &amp;quot;manueller Ablauf&amp;quot; fährt ähnlich dem Modus &amp;quot;PC-Profil&amp;quot; die im DataGridView eingetragenen Leistungs-Zeit-Punkte ab. Für jeden Zeitpunkt ist eine Leistung vorgegeben. Die Eingabe erfolgt ähnlich wie unter &amp;quot;Eingabe der Temperaturkurve (Reflowprofil)&amp;quot; beschrieben. Nur eben, dass eine Leistung und keine Temperatur angegeben wird. Die Eingabe der Leistung kann nicht im Zeit-Temperatur-Diagramm erfolgen sondern mittels der Schieberegler oder direkt tabellarisch.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;manueller Modus&amp;quot;&#039;&#039;&#039; - Dieser Modus enthält 2 Submodi&lt;br /&gt;
** &amp;quot;manueller Leistungsmodus&amp;quot; - Auch in diesem Modus wird die Leistung gesteuert. Es wird keine Temperatur geregelt, der PID-Regler für die Temperatur ist nicht in Betrieb. Die Einstellung hier erfolgt über die drei Schieberegler oder über eine numerische Eingabe durch Klick auf die Leistungsangabe unter dem Schieberegler. Durch Klick auf die Texte &amp;quot;TOP&amp;quot;, &amp;quot;BOTTOM&amp;quot;, &amp;quot;FAN&amp;quot; (Oberhitze, Unterhitze, Lüfter) können selbige deaktiviert bzw. aktiviert werden. Auch in diesem Modus wird Temperatur, Temperaturänderung so wie der Temperaturverlauf dargestellt.&lt;br /&gt;
** &amp;quot;manueller Temperaturmodus&amp;quot; - Hier wird die Temperatur wieder mittels des Temperatur-PIDs geregelt. Die Temperatur wird entweder mittels Schieberegler (Ober- und Unterhitze-Regler sind jetzt gekoppelt) oder durch eine numerische Eingabe unterhalb der Schieberegler vorgegeben. Anzeige wie im &amp;quot;manuellen Leistungsmodus&amp;quot;. Der Lüfter kann unabhängig vom PID in seiner Leistung geregelt werden. Ein evtl. durch den Luftstrom verursachter Temperaturabfall wird vom PID selbstverständlich ausgeregelt (aus diesem Grunde ist es ja ein Regler).&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Programmieren&amp;quot;&#039;&#039;&#039; - Hier kann ein neues &#039;&#039;&#039;Temperatur&#039;&#039;&#039;-Programm für den EEPROM-Speicher des Ofens erstellt und editiert werden. Die Eingabemöglichkeiten sind unter &amp;quot;Eingabe der Temperaturkurve (Reflowprofil)&amp;quot; beschrieben. Dieser Modus ist zum reinen Programmieren des Ofens gedacht und ermöglicht keine weitere Steuerung oder Überwachung des Ofens.&lt;br /&gt;
&lt;br /&gt;
=== Eingabe der Temperaturkurve (Reflowprofil) ===&lt;br /&gt;
[[Datei:datagridview.png|thumb|right|400px|tabellarische Anzeige und Editiermöglichkeit der Temperaturkurve]]&lt;br /&gt;
Die Eingabe der Temperaturkurve erfolgt entweder über Import (CSV/EEPROM), per Mausklick auf dem zentralen Diagramm oder im sog. DataGridView (Excel-ähnliche Bedienung in tabellarischer Form). &lt;br /&gt;
&lt;br /&gt;
* CSV-Import + Export&lt;br /&gt;
* EEPROM-Import + Export&lt;br /&gt;
* Im rechts stehenden Screenshotbeispiel wird eine tabellarische Eingabeform mit einem DataGridView gezeigt: Die Temperatur (erster Temperaturpunkt = Punkt 0) von 100°C wird linear über einen Zeitraum von 0-30s verteilt. Bei 30s hat der Ofen die Temperatur von 100°C. Dafür setzt die Regelung die Oberhitze, die Unterhitze ein. Der Lüfter ist deaktiviert. In der Zeit von 30s bis 120s wird die Temperatur nun von 100°C auf 150°C linear angehoben. Von 120s bis 180s Backzeit steigt die Temperatur von 150°C auf 250°C. Von 180s bis 200s wird die Temperatur auf 280°C angehoben. Anschließend wird sie zwischen 200s und 220s auf 280°C gehalten (280°C@200s und 280°C@220s) um dann bis 240s wieder auf 250°C zu fallen. Bis zum Zeitpunkt 300s wird dann die Temperatur 30°C angestrebt. Zusätzlich ist der Lüfter nun aktiviert (soweit der Ofen eine Umluftfunktion besitzt). Bei Punkt 7 sind Ober- und Unterhitze deaktiviert nur noch der Lüfter kühlt. Da hier bei &amp;quot;Zeit[s]&amp;quot; die 0 eingetragen wird der Zustand (hier nur Lüfter an) für einen unendlich langen Zeitraum auf 0 gehalten. Also so lange wie das Programm aktiviert ist wird der Lüfter laufen. Natürlich könnte man hier auch z.B. 100°C und Zeitpunkt 0s eintragen. Dann würde der Ofen bis zum manuellen Beenden des Programms (klick auf STOP-Button oder Drücken des START/STOP-Tasters auf der Platine/Steuerung) 100°C halten.&lt;br /&gt;
* Alle Zellen des DataGridView sind editierbar (zur Veränderung der Temperatur, Zeitpunkt, ...)&lt;br /&gt;
* Direkter Klick auf das zentrale Temperatur-Zeit-Diagramm trägt den Zeitpunkt so wie die Temperatur unter dem Mauszeiger in die Tabelle (das DataGridView) ein. Die ausgewählte Zeile wird beschrieben oder überschrieben. Neue Zeilen (also Temperatur-Zeit-Punkte) können durch klick auf den &amp;quot;Plus-Button&amp;quot; hinzugefügt werden. Ebenso ist das Löschen oder Verschieben einer oder mehrerer Zeile gleichzeitig möglich.&lt;br /&gt;
&lt;br /&gt;
=== Beschreibung der Steuerungsmöglichkeiten ===&lt;br /&gt;
In Abhängigkeit des gewählten Modus bestehen einige Steuerungs-, Einstellungs- und Kontrollmöglichkeiten:&lt;br /&gt;
* &#039;&#039;&#039;Schieberegler&#039;&#039;&#039; für Temperatur od. Leistung (je nach Modus) für Oberhitze, Unterhitze und Lüfter. Je nach Hardwareausführung. &lt;br /&gt;
** Klick auf &amp;quot;TOP&amp;quot;, &amp;quot;BOTTOM&amp;quot; oder &amp;quot;FAN&amp;quot; aktiviert oder deaktiviert die entsprechende Funktion bzw. Hardware.&lt;br /&gt;
** Numerische Eingabe der Werte für die Schieberegler durch Klick auf die Anzeige unterhalb der Schieberegler. Werte können auch im deaktivierten Zustand angegeben werden. Die Übernahme erfolgt durch den &amp;quot;Aktivierungsklick&amp;quot; auf &amp;quot;TOP&amp;quot;, &amp;quot;BOTTOM&amp;quot; oder &amp;quot;FAN&amp;quot;&lt;br /&gt;
* &#039;&#039;&#039;T1, dT1, T2, dT2&#039;&#039;&#039; - Anzeige der gemessenen Temperatur so wie die momentane Temperaturänderung am jeweiligen Sensor. &lt;br /&gt;
* &#039;&#039;&#039;Bedienbuttons&#039;&#039;&#039;&lt;br /&gt;
** Play - Startet das Programm am angegebenen Startpunkt (siehe unten)&lt;br /&gt;
** Pause - Pausiert das Programm - weitere Pauseoptionen siehe unten&lt;br /&gt;
** Stop - Stopt den Programmablauf&lt;br /&gt;
** Vor / Zurück - Springt zwischen Temperaturpunkten hin und her. Dient zum überspringen oder zurückspringen zu gewissen Temperatur-Zeit-Punkten. Ermöglicht z.B. das Überspringen eines Ablaufes der eine lange Preheat- oder Dryphase hat.&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Status&amp;quot;&#039;&#039;&#039; - zeigt den aktuellen Zustand des Programms an (READY, START, WAITING, PAUSE, ...)&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;RESET&amp;quot;&#039;&#039;&#039; - setzt das (begonnene) Programm zurück. Beinhaltet neben dem Programmablauf auch das Zurücksetzen der graphischen Anzeige des Diagramms, etc.&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Startpunkt&amp;quot;&#039;&#039;&#039; - legt den ersten Punkt des Programmablaufes fest. &lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Wiederholungen&amp;quot;&#039;&#039;&#039; - ermöglicht das wiederholte Backen ohne das Programm händisch immer wieder neu starten zu müssen. Die Anzahl der Wiederholungen ist einstellbar (0 für unendlich viele) und es ist eine Wartezeit zwischen den Wiederholungen einstellbar. Alternativ kann eine Meldung nach jedem vollendeten Backvorgang abgegeben werden. Nach Bestätigung dieser wird die nächste Wiederholung ausgeführt.&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Pause&amp;quot;&#039;&#039;&#039; - Pauseneinstellungen. Hier sind Optionen wählbar was passieren soll, falls der Pausebutton betätigt wird:&lt;br /&gt;
** Pausezeit - gibt an wie lange die Pause dauern soll [s], danach fährt das Programm automatisch gemäß des gewählten Pausemodus fort. Für eine Pause ohne automatisches Fortfahren (Countdowntimer) &#039;0&#039; angeben.&lt;br /&gt;
** Pausemodus &amp;quot;aktuelle Temperatur halten, WarmUp, Fortsetzen&amp;quot; - Ofen hält die Temperatur (Zieltemperatur) des Zeitpunktes als der Pausebutton betätigt wurde. WarmUp bedeutet, dass nach dem Beenden des Pausemodus zunächst die Zieltemperatur wieder erreicht werden &#039;&#039;&#039;muss&#039;&#039;&#039; bevor der nächste Punkt angesteuert wird. Klingt paradox, wenn die Temperatur doch so und so gehalten wird, ist aber nicht so. Die Wahrscheinlichkeit ist hoch, dass der Pausemodus benutzt wird um die Ofentüre zu öffnen und Korrekturen an der Platine vorzunehmen. Unter Umständen ist die Heizung des Ofens jedoch nicht in der Lage den dadurch entstehenden Wärmeverlust zu kompensieren. Fährt das Programm dann sofort fort, so könnten evtl. kritische (Hoch-)Punkte des Lötprofils &amp;quot;unterfahren&amp;quot; werden. Dem wirkt WarmUp entgegen.&lt;br /&gt;
** Pausemodus &amp;quot;aktuelle Temperatur halten, Fortsetzen&amp;quot; - siehe oben, nur ohne WarmUp.&lt;br /&gt;
** Pausemodus &amp;quot;definierte Temperatur halten, WarmUp, Fortsetzen&amp;quot; - siehe oben. Statt der aktuellen Zieltemperatur wird jedoch nun im Pausemodus eine einzustellende Pausetemperatur gehalten. Mit WarmUp.&lt;br /&gt;
** Pausemodus &amp;quot;definierte Temperatur halten, Fortsetzen&amp;quot; - siehe oben, nur ohne WarmUp.&lt;br /&gt;
** &amp;quot;Pausetemperatur&amp;quot; - spezielle Temperatur die bei entsprechender Pausemoduswahl für die Dauer der Pause gehalten wird.&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Ende&amp;quot;&#039;&#039;&#039; - gibt an was am Ende eines durchlaufenen Reflow-Programms passieren soll. Ist der Wiederholungsmodus aktiviert, tritt dieses Ereignis erst nach Durchlauf aller Wiederholungen ein. Folgende Modi sind möglich:&lt;br /&gt;
** automatischer Reset - am Ende des Programms wird alles automatisch zurückgesetzt, alle Graphiken und Anzeigen gelöscht.&lt;br /&gt;
** manueller Reset - am Ende des Programms bleiben alle Anzeigen, Graphiken, etc erhalten und müssen vor Beginn eines neuen Reflowvorgangs händisch durch Klick auf &amp;quot;RESET&amp;quot; zurückgesetzt werden.&lt;br /&gt;
** Benutzermeldung - lässt eine Meldung erscheinen. Alle Anzeigen und Graphiken bleiben erhalten bis der Benutzer diese Meldung bestätigt. Mit Bestätigung dieser Meldung wird ein automatischer Reset vorgenommen.&lt;br /&gt;
&lt;br /&gt;
=== Loggen des Temperaturverlaufes ===&lt;br /&gt;
Es ist möglich jeden Backvorgang in eine CSV-Datei zu loggen. (Software- und PID-Einstellungen). Geloggte CSV-Dateien können eingelesen und im zentralen Temperatur-Zeit-Diagramm begutachtet werden. Ein Ist-Soll-Vergleich ist ebenso möglich wie die direkte Anzeige des Fehlers (&amp;quot;Ist minus Soll&amp;quot;). Dank CSV können die Daten auch mit anderen Programmen (Excel, etc.) weiterverarbeitet werden.&lt;br /&gt;
&lt;br /&gt;
== Ofen / Pizzaofen ==&lt;br /&gt;
=== Leistung und Volumen ===&lt;br /&gt;
* Alls Faustformel wird oft 100W pro Liter Volumen genannt.&lt;br /&gt;
* Ich habe einen sehr preiswerten Ofen gewählt und die &amp;quot;Oberhitze&amp;quot; zusätzlich mit zwei Halogen-Stäben a 300W &amp;quot;verstärkt. Das kostet nicht viel, die Fassung ist für ca. 3 Euro erhältlich, die Halogenstäbe gibt es in jedem Baumarkt. &lt;br /&gt;
* Bezugsquelle Fassung : siehe &amp;quot;Links&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Dämmung ===&lt;br /&gt;
=== Umluft ===&lt;br /&gt;
* Der verwendete Ofen sollte eine Umluftfunktion besitzen, damit sich die Wärme gleichmäßig im Ofen und auf der Leiterplatte verteilen kann.&lt;br /&gt;
&lt;br /&gt;
== FAQ ==&lt;br /&gt;
&lt;br /&gt;
* Q1: Ich habe einen PT100/PT1000 und möchte den anschließen. Geht das?&lt;br /&gt;
** A1: Ja natürlich. Dazu ist aber etwas externe Elektronik notwendig. Sowohl 2 ADC-Pins (mit 3V3 Betriebsspannung als fixe Referenzspannung), als auch die UART und SPI/I2C-Schnittstelle stehen zur freien Verfügung. Für PT100/PT1000 wird für vernünftige Messungen ohnehin eine Verstärkung (meist mit OPV) von Nöten sein. Da der PIC-interne ADC &amp;quot;nur&amp;quot; 10bit Auflösung bietet sollte ein externer 16bit ADC in Betracht gezogen werden um das Potential der PT100/PT1000 auszunutzen.&lt;br /&gt;
*Q2: Ich habe von günstigen Temperaturmessungen mit Dioden gehört. Geht das auch hier?&lt;br /&gt;
**A2: Ja. Die Vorwärtsspannung einer Diode verhält sich linear zur Sperrschichttemperatur. Diese Spannung (bei 25°C einer Si-Diode die bekannten 0,7V) kann mittels OPV verstärkt werden und auf einen Spannungsbereich von 0 ... 3V3 aufgebläht werden. Eine billige Lösung, auf Kosten der Genauigkeit. Doch eine Diode ist laut Datenblatt nur bis 150°C geeignet. Es ist also beim Löten mehr oder weniger Pfusch. Wenn ich schon eine Reflow-Steuerung baue, sollte ich doch nicht an ein paar Euro für eine gescheite Temperaturmessung sparen. Einige Anregungen vom Messgerätehersteller Keithley bzgl. der Halbleiterphysik mit interessanten Formeln [http://www.keithley.de/support/data?asset=50486]. Oder natürlich der Klassiker von Thomas Pfeifer [http://thomaspfeifer.net/backofen_smd_reflow.htm]. Oder ein Beitrag mit LT-Spice Simulation zum Thema [http://www.mikrocontroller.net/topic/270627#2833883].&lt;br /&gt;
* Q: God why ... ?&lt;br /&gt;
** A: Because we can !&lt;br /&gt;
*Q: Ich hab aber noch nie was mit 230V gemacht.&lt;br /&gt;
**A: Dann würde ich an Deiner Stelle dieses Projekt NICHT nachbauen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Verbesserungen Prototyp - Diese haben jedoch keinen Einfluss auf die Funktion der Leiterplatte===&lt;br /&gt;
* Bauteile weiter weg von den Schraublöchern.&lt;br /&gt;
* Dazu Kreis rund um Bohrung auf Bestückdruck.&lt;br /&gt;
* Masseanbindung Quarz.&lt;br /&gt;
* Klemmen weiter weg vom Rand.&lt;br /&gt;
* Klemme und Sicherungshalter weiter auseinander.&lt;br /&gt;
* Bohrungen für Drossel 0,2mm größer machen.&lt;br /&gt;
* Teilenummer für Conrad-USB-Buchse in BOM übernehmen.&lt;br /&gt;
* Stiftleiste P1  weiter weg von P2 und P4.&lt;br /&gt;
* Varistoren näher an Klemmen platzieren.&lt;br /&gt;
* THT-Kondensatoren für Snubber.&lt;br /&gt;
* Ggf. Stiftleistenbelegung für externe Leds so ändern, das keine extra Vorwiderstände notwendig sind.&lt;br /&gt;
* Befestigungsbohrung für Drossel, um diese mit Kabelbinderung oder Schraube fixieren zu können.&lt;br /&gt;
* Pullup-Widerstand bei MCLR doppelt. &lt;br /&gt;
* Power-LED vorsehen.&lt;br /&gt;
* Leiterbahnen etwas weiter weg von den Kühlkörperanschlüssen&lt;br /&gt;
* Designatoren Texte etwas größer machen.&lt;br /&gt;
* Ein vernünftiger GND-Punkt für einen Tastkopf / Messungen / Aligator-Clips vorsehen.&lt;br /&gt;
&lt;br /&gt;
= Errata Projekt =&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:red;&amp;quot;&amp;gt; Triac Symbol in Library falsch, dadurch ist T2 mit T1 vertauscht. Abhilfe für Leiterplattenversion V1.0: T1 und T2 &amp;quot;twisten&amp;quot; und jeweils mit Schrumpfschlauch versehen.( Also Beinchen T1 über kreuz mit Beinchen T2 einlöten...)&amp;lt;/span&amp;gt;&lt;br /&gt;
* Beim MOSFET R39 ist die Masseanbindung falsch. Es bestehen drei Möglichkeiten:&lt;br /&gt;
** 1. 0-R-Brücke für R39 einbauen und auf Strombegrenzung verzichten.&lt;br /&gt;
** 2. Eine Polyfuse mit Bauform 1206 einbauen. &lt;br /&gt;
** 3. Das kleine Leiterbahnstückchen zwischen R38 und R39 unterbrechen und statt dessen die Leiterbahn zwischen R39 und der Klemme mit der Durchkontaktierung bei R38 verbinden.&lt;br /&gt;
* LED-Beschriftung passt nicht ganz (Schaltplan Netlabel OUT1,2,3,4 sind durcheinander gekommen) --&amp;gt; Ist im Prinzip ohne Belang, man muss das nur bei der Software berücksichtigen.&lt;br /&gt;
* Schaltplan UNL2003 fehlerhafte Zuordnung IN5,6,7 &amp;lt;&amp;gt; OUT7,6,5 --&amp;gt; Ist im Prinzip ohne Belang, man muss das nur bei der Software berücksichtigen.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* Diskussion: [http://www.mikrocontroller.net/topic/297217 Diskussion]&lt;br /&gt;
* Software: [http://sourceforge.net/projects/reflowofensteue/ Bei Sourceforge]&lt;br /&gt;
* Dextrel Nulldurchgang: [http://www.dextrel.net/diyzerocrosser.htm Nulldurchgangschaltung]&lt;br /&gt;
* Gehäuse Zeichnung: [http://www.hammondmfg.com/pdf/RM2055L.pdf Großes Gehäuse für Steckdosenmontage]&lt;br /&gt;
* Gehäuse Zeichnung: [http://www.hammondmfg.com/pdf/RM2055M.pdf Kleines Gehäuse, keine Steckdosen]&lt;br /&gt;
* Bezugsquelle [http://www.soselectronic.com/?str=371&amp;amp;artnum=73596&amp;amp;name=hammond-ritec-rm2055l Großes Gehäuse Hammond]&lt;br /&gt;
* Bezugsquelle [http://www.soselectronic.com/?str=371&amp;amp;artnum=73595&amp;amp;name=hammond-ritec-rm2055m Kleines Gehäuse Hammond]&lt;br /&gt;
* Bezugsquelle [http://www.druckerzubehoer.de/shop/product/catid/H-UNIVERSALZUBEHOER_HZB/subcatid/UNIVERSALZUBEHOER_GROUP1_HZB/productid/1727063-390722LA/site/1/lng/de_DE Netzteil Mini USB ]&lt;br /&gt;
* Bezugsquelle [http://www.ebay.de/itm/151037292125?ssPageName=STRK:MEWNX:IT&amp;amp;_trksid=p3984.m1497.l2649 Termoelement Ebay (Typ K für ca. 2Euro)]&lt;br /&gt;
* Bezugsquelle [http://www.artcase-shop.de/index.php?page=search&amp;amp;page_action=query&amp;amp;desc=on&amp;amp;sdesc=on&amp;amp;keywords=pce+105&amp;amp;x=0&amp;amp;y=0 Steckdosen für Schalttafeleinbau:]&lt;br /&gt;
* Bezugsquelle [http://www.schaeffer-ag.de/ Frontplatten]&lt;br /&gt;
* Bezugsquelle [http://www.lichtlieferant.de/catalogsearch/result/?q=r7s+fassung+sockel Vossloh Fassung R7S für Halogenstäbe]&lt;br /&gt;
* Datenblatt Prozessor [http://ww1.microchip.com/downloads/en/DeviceDoc/39632e.pdf PIC18LF2550]&lt;br /&gt;
* Umfangreicher Thread u.A. Leistungsvermögen, Temperaturmessung und Dämmung [http://www.mikrocontroller.net/topic/270627]&lt;br /&gt;
[[Kategorie:PIC-Projekte]]&lt;/div&gt;</summary>
		<author><name>Frankman</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=Reflow_Ofen_Steuerung&amp;diff=80571</id>
		<title>Reflow Ofen Steuerung</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=Reflow_Ofen_Steuerung&amp;diff=80571"/>
		<updated>2014-01-03T10:57:53Z</updated>

		<summary type="html">&lt;p&gt;Frankman: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Datei:RFB.jpg|thumb|right|200px|Altium 3D Ansicht]]&lt;br /&gt;
[[Datei:Teilbest2.jpg|750px|teilbestückte Platine]]&lt;br /&gt;
== Einleitung ==&lt;br /&gt;
[[Datei:pcb.png|thumb|right|400px|unbestücktes PCB der Reflow-Ofen-Steuerung]]&lt;br /&gt;
Hier wird eine weitere Reflow-Ofen-Steuerung beschrieben.&lt;br /&gt;
=== Zum Nachbauen ===&lt;br /&gt;
* Spezifikation: [[Datei: Spec Reflow.pdf]]&lt;br /&gt;
* Schaltplan: &lt;br /&gt;
** Minimalversion [[Datei:Schematic Prints Minimal.pdf]]&lt;br /&gt;
** Standardversion [[Datei:Schematic Prints Standard.pdf]]&lt;br /&gt;
** Deluxeversion [[Datei:Schematic Prints Deluxe.pdf]]&lt;br /&gt;
** Debugversion [[Datei:Schematic Prints Debug.pdf]]&lt;br /&gt;
* Gerberdaten: [[Datei:Gerber Reflow.pdf]]&lt;br /&gt;
* Assemblydrawing: [[Datei:Assembly Reflow.pdf]] &lt;br /&gt;
* Altium-Files: [[Datei:Reflow.zip]]&lt;br /&gt;
* Stückliste als CSV: [[Datei:Reflow.csv]]&lt;br /&gt;
* Stückliste als Open Office: [[Datei:Reflow.ods]]&lt;br /&gt;
* PC Programm: TBD&lt;br /&gt;
* Sourcen PC-Programm: TBD&lt;br /&gt;
* PIC Programm (*.hex): [http://sourceforge.net/projects/reflowofensteue/ ]&lt;br /&gt;
* Sourcen Pic-Programm: [http://sourceforge.net/projects/reflowofensteue/ ]&lt;br /&gt;
* Step-File Steckdose:[[Datei:Steckdose.stp]]&lt;br /&gt;
&lt;br /&gt;
=== Motivation ===&lt;br /&gt;
Die Gründe, eine weitere Steuerung zu entwerfen, waren:&lt;br /&gt;
&lt;br /&gt;
* Die Möglichkeit, auch größere Öfen mit 2 Phasen betreiben zu können.&lt;br /&gt;
* Die Steuerung universell zu gestalten. Es sollte möglich sein, diese nicht nur zum Reflow löten zu verwenden....z.B:&lt;br /&gt;
** Temperatursteuerung für Klimakammer (Heizen, Kühlen)&lt;br /&gt;
** Dimmer mit USB&lt;br /&gt;
** Temperaturregler für ein Tisch-Fondue ( Temperatur halten)&lt;br /&gt;
** Drehzahlsteller mit USB&lt;br /&gt;
** Switchpack&lt;br /&gt;
* Die Schaltung sollte in Altium entwickelt werden. (Warum kein Eagle??? Altium User wissen es.... :-)&lt;br /&gt;
* Die Schaltung sollte mit USB ausgestattet sein.&lt;br /&gt;
&lt;br /&gt;
=== Eigenschaften &amp;amp; Spezifikationen ===&lt;br /&gt;
* Temperaturmessung: bis zu 2x &#039;&#039;&#039;Thermoelement&#039;&#039;&#039; (K-Typ) mit MAX6675 (abgekündigt) oder Nachfolger MAX31855 (pin- aber nicht softwarekompatibel)&lt;br /&gt;
* Leistungsstufen: &#039;&#039;&#039;3 voneinander unabhängige&#039;&#039;&#039; Triacs 800V 25A, limitiert auf &#039;&#039;&#039;10A @ 250VAC&#039;&#039;&#039; (z.B. Oberhitze, Unterhitze, Umluft)&lt;br /&gt;
* Nulldurchgangserkennung ermöglicht Wellenpaket-, und Phasenabschnittssteuerung * Galvanische Trennung der Leistungsendstufen&lt;br /&gt;
* 1x MOSFET-Ausgang PWM z.B. für 12V Lüfter, max. &#039;&#039;&#039;55V 3,5A&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;4 feste Programme&#039;&#039;&#039; im EEPROM über 2-Tasterbedienung und LEDs wähl- und ausführbar. &lt;br /&gt;
* &#039;&#039;&#039;PC-unabhängiger Betrieb&#039;&#039;&#039; möglich. &lt;br /&gt;
* Beliebig viele Programme möglich, bei Betrieb am Computer &lt;br /&gt;
* Mini-USB-Buchse zur Steuerung / Programmierung über GUI und zum Entwickeln. - Dafür ist &#039;&#039;&#039;keine Netzspannung&#039;&#039;&#039; erforderlich&lt;br /&gt;
* Günstiges passendes Gehäuse&lt;br /&gt;
* Alle LEDs und Taster auf &#039;&#039;&#039;Stiftleisten&#039;&#039;&#039; herausgeführt, für eigene Gestaltung der Frontblenden&lt;br /&gt;
* PID-Temperaturregler&lt;br /&gt;
* UART, SPI, I2C und 2x ADC auf Stiftleisten herausgeführt, für zukünftige &#039;&#039;&#039;Erweiterungen&#039;&#039;&#039;&lt;br /&gt;
* Versorgung über USB &amp;lt; 100mA, interne Versorgungsspannung 3,3V&lt;br /&gt;
* umfangreiche EMV-gerechte Entstörung für den Bedarfsfall&lt;br /&gt;
&lt;br /&gt;
=== Zusätzliches Benötigtes Material ===&lt;br /&gt;
* Leiterplatte (1 Stück)&lt;br /&gt;
* Gehäuse Hammond Teilenummer: RM2055L (1 Stück)&lt;br /&gt;
* Alternativ:Gehäuse Hammond Teilenummer: RM2055M (Wenn keine Steckdosen angebracht werden sollen)&lt;br /&gt;
* Alternative: Gehäuse Hammond (Hier muss man die Leiterplatte selber befestigen) Teilenummer: 1455T2201 (1 Stück)&lt;br /&gt;
* Einbausteckdosen Teilenummer: PEC 105 (2-3 Stück, je nach Ausbaustufe)&lt;br /&gt;
* PG-Verschraubung (2-3 Stück)&lt;br /&gt;
* Mutter für PG-Verschraubung (2 Stück)&lt;br /&gt;
* Litze blau, mindestens 1,5mm² (ca. 60cm)&lt;br /&gt;
* Litze braun, mindestens 1,5mm² (ca. 60cm) &lt;br /&gt;
* Litze gelb/grün, mindestens 1,5mm² (ca. 60cm)&lt;br /&gt;
* Aderendhülsen  mit Schutzkragen dazu ( 9 Stück für die Steckdosen)&lt;br /&gt;
* Schrauben, um die Leiterplatte zu befestigen (4 Stück)&lt;br /&gt;
* evtl. Abstandsbolzen dazu, falls das alternative Gehäuse verwendet wird (4 Stück)&lt;br /&gt;
* evtl. Muttern dazu, falls das alternative Gehäuse verwendet wird (4 Stück)&lt;br /&gt;
* Schrauben, Senkkopf DIN 7991 oder DIN 965 M4 X 10 um die Steckdosen zu befestigen (12 Stück)&lt;br /&gt;
* Muttern dazu M4 (12 Stück)&lt;br /&gt;
* Federschreiben  dazu DIN 127 M4 (12 Stück)&lt;br /&gt;
* Glimmerscheiben für Triac (2-3 Stück, je nach Ausbaustufe)&lt;br /&gt;
* Isoliernippel für Triacmontage (2-3 Stück, je nach Ausbaustufe)&lt;br /&gt;
* Zylinderkopfschraube M3 X 12 für Triacmontage (2-3 Stück, je nach Ausbaustufe)&lt;br /&gt;
* Mutter M3 für Triacmontage (2-3 Stück, je nach Ausbaustufe)&lt;br /&gt;
* Beilagscheibe M3 für Triacmontage (2-3 Stück, je nach Ausbaustufe)&lt;br /&gt;
* Isolierband für Triacmontage (ca. 300mm)&lt;br /&gt;
* Gummifüße für das Gehäuse (4 Stück)&lt;br /&gt;
&lt;br /&gt;
=== Kühlkörpermontage===&lt;br /&gt;
* Der Kühlköper sollte 38mm hoch sein, so passt er gut in die angegebenen Gehäuse&lt;br /&gt;
* Der Kühlkörper MUSS isoliert montiert werden, also Glimmerscheibe und Isoliernippel einsetzen und NACHMESSEN, ob der Kühlkörper auch wirklich keinen Kontakt zum Triac hat!&lt;br /&gt;
* Da die 230-V-Leiterbahnen nur durch den Stopplack vom Kühlkörper getrennt sind, sollte die Isolation mit zwei Lagen Gewebe- oder Isolierband verstärkt werden. Das Isolierband kann auf die Leiterplatte oder unter den Kühlkörper geklebt werden.&lt;br /&gt;
* Als Bohrungsmaß empfehle ich 20mm über der Leiterplatte.&lt;br /&gt;
* Entweder Bohrung 3,2mm für Durchgangsloch &lt;br /&gt;
* Oder Bohrung 2,5mm mit M3-Gewinde&lt;br /&gt;
&lt;br /&gt;
== Schaltung==&lt;br /&gt;
=== PIC18LF2550 Grundbeschaltung ===&lt;br /&gt;
[[Datei:osc_vs_vcc.png|thumb|right|200px|Taktraten und Versorgungsspannung PIC18F2550 vs. PIC18LF2550, Datenblatt S. 370/438]]&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 3/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Hier kommt ein PIC18&#039;&#039;&#039;L&#039;&#039;&#039;F2550 zum Einsatz. Er verfügt über eine USB-Schnittstelle und ist für Betriebsspannungen von 2 ... 5,5V ausgelegt. Sein Verwandter PIC18F2550 (ohne L) ist nicht für Betriebsspannungen &amp;lt; 4,2V ausgelegt. Dies ist bei USB sowieso nicht immer erfüllt und die Thermoelement-ICs vertragen ohnehin keine 5V, daher wurde die Betriebsspannung auf 3,3V reduziert. Neben Standard-Decoupling (100nF Kerko pro Vcc-Vss-Pärchen) wurde das ICSP-Interface in alt bewährter Pinbelegung (PICKit1,2,3) angebracht. PGD und PGC sind nicht weiter beschaltet, MCRL wird , wie immer als Resetpin verwendet. Der Resetschalter findet sich auf dem Top-Sheet (Schaltplan S. 1/22). Die Taktversorgung erfolgt über einen 24 MHz Quarz (-&amp;gt; USB). Man beachte diesbezüglich rechts stehende Grafik zu Taktraten und Versorgungsspannungen (Vdd bzw. auch Vcc genannt). Auch zu finden im Datenblatt des PICs auf Seite 370.&lt;br /&gt;
&lt;br /&gt;
=== PIC18LF2550 USB Beschaltung ===&lt;br /&gt;
[[Datei:usb_part.png|thumb|right|200px|PIC18(L)F2550&lt;br /&gt;
 Standard &lt;br /&gt;
USB-Beschaltung am PIC]]&lt;br /&gt;
[[Datei:usb_protect.png|thumb|right|200px|USB-Schutzbeschaltung und Mini-USB-Buchse]]&lt;br /&gt;
&lt;br /&gt;
Die Beschaltung der USB-Schnittstelle am PIC ist 1:1 aus dem Datenblatt übernommen. Zum Einsatz kommt eine Mini-USB-Buchse (J1).&lt;br /&gt;
Der Gedanke war: Erstens ein sehr preiswertes, fertiges Netzteil verwenden zu können, (ca. 3,67 € bei druckerzubehoer.de) und zweitens, die Steuerung auch mit dem PC / Laptop versorgen zu können.&lt;br /&gt;
Somit kann die Schaltung OHNE 230V betrieben und debuggt werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 4/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
FER1,2 und C7 filtern den Schirm nach GND. Standardmäßig wird man hier wohl 0-Ohm-Widerstände einsetzen. Falls ein Besuch im EMV-Labor geplant ist, weicht man auf den Ferrit aus. C5 und C6 filtern das Signal zusammen mit der Common-Mode-DrosselL1. Die Drossel kann mit den 0-Ohm-Brücken R8 und R9 überbrückt (gespart) werden. IC2 ist als ESD-Schutz gedacht und kann ebenfalls bei ausgeprägten Kostenbewustsein gespart werden. Die Widerstände R6 und R7 dürfen NICHT bestückt werden. FER1,2, C5, IC2 müssen nicht zwingend bestückt werden. Die Bestückung wurde vorgehalten um im Problemfall einfache Abhilfe schaffen zu können.&lt;br /&gt;
&lt;br /&gt;
=== 3,3V Spannungsversorgung ===&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 2/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Die 3,3V Versorgungsspannung für die gesamte Platine wird aus V_USB mittels des LDO Spannungsreglers TOREX - XC6206P332MR abgeleitet. Günstig, SOT-23, klein, 2x 1µF Kondensatoren benötigt, 3,3V max. 250mA. Der hat auch einen sehr kleinen Ruhestrom.&lt;br /&gt;
&lt;br /&gt;
=== Taster ===&lt;br /&gt;
*Der Resettaster zieht den MCLR-Pin nach GND und löst damit den Reset aus. MCLR  ist mit einem 10k Pullup versehen.&lt;br /&gt;
*Die übrigen beiden Taster ziehen RA4 bzw. RB5 ebenfalls nach GND.&lt;br /&gt;
&lt;br /&gt;
=== LEDs + ULN2003L ===&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 11/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Um alle LEDs auf der Platine (3x Optotriac + 7x Status) ansteuern zu können wurde auf das 7fach Darlington-Array ULN2003L zurückgegriffen. Die PIC-Ausgänge könnten zwar die LEDs direkt steueren. Aber so werden alle Ausgänge einheitlich nach Masse geschaltet. Das verbessert die Testbarkeit der ganzen Platine. ( Mit einem kurzen Masse-Draht kann zur Not der entsprechende Ausgang gesetzt werden, ohne etwas zu zerstören.)&lt;br /&gt;
&lt;br /&gt;
=== MOSFET-Leistungsausgang ===&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 22/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Hier kommt der einfacher N-Kanal MOSFET (LogicLevel) PHT8N06LT zum Einsatz. Er wird über das ULN2003L Array getrieben und ermöglicht den Anschluss eines DC-Verbrauchers mit max. 55V bei 3,5A. Hier könnte beispielsweise ein PC-Lüfter zur Kühlung oder für Umluft angeschlossen und über PWM geregelt/gesteuert werden. Ein Gatewiderstand von 100 Ohm ist zum Schutz des Treibers vorgesehen. Eine 0-Ohm-Brücke ist stattdessen aber auch möglich, wenn man eine höhere Leistung schalten möchte.Die Leiterbahnen sollten die 3A schon hergeben. Der 100 Ohm Widerstand bildet eine Stromquelle. Sobald der Strom durch den MOSFET und den Widerstand 33mA erreicht, sinkt UGS gegen 0 V. Folge: Der Mosfet sperrt ( und bleibt ganz....)&lt;br /&gt;
Es kann hier prinzipiell auch ein anderer Mosfet im SOT223-Gehäuse zum Einsatz kommen. Achten sollte man darauf, das der MOSFET schon bei 3,3V Ugs gut leiten sollte.&lt;br /&gt;
&lt;br /&gt;
=== Nulldurchgangserkennung ===&lt;br /&gt;
[[Datei:zerocross.png|thumb|right|200px|Nulldurchgangserkennung]]&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 5/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Die Nulldurchgangserkennung erfolgt nach einer sehr bekannten - jedoch ausgeklügelten - Schaltung.  [http://www.dextrel.net/diyzerocrosser.htm siehe: Dextrel]&lt;br /&gt;
Während einer Halbwelle wird C14 über R33 und R35 bzw. D5 geladen. Währenddessen ist T1 gesperrt. Sobald die Wechselspannung (L1-N über Spannungsteiler (R33+R35) / R34) kleiner ist als die Spannung über C14, steuert T1 durch. Dann entlädt sich C14 über den LED-Vorwiderstand R32. Der durch-steuernde Optokoppler zieht die Sync-Leitung nach GND. (Pullup Sync-Leitung = R31). Dies löst beim PIC auf INT2 einen Interrupt aus. &lt;br /&gt;
Dieser Interrupt ermöglicht eine präzise Wellenpaket-, Phasenanschnittsteuerung je nach Bedarf. Das Schalten im Nulldurchgang bei der Wellenpaketsteuerung reduziert EMV-Störungen. Für Phasenanschnitt ist ohnehin eine Nulldurchgangserkennung notwendig. Außerdem liefert sie eine genaue Zeitbasis für alle Programmabläufe.&lt;br /&gt;
&lt;br /&gt;
=== Triac-Ausgänge + Snubber ===&lt;br /&gt;
[[Datei:triac.png|thumb|right|200px|Triac-Ausgangsbeschaltung]]&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 19,20,21/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Die Ansteuerung des eigentlichen Leistungstriacs BTA140-800 erfolgt über den Optotriac IS6005. Der Strom durch Letzteren wird durch R1x limitiert (Vorwiderstand). R2x und R5x limitieren wiederum den Strom durch den Optotriac. Wenn dieser zündet so folgt unmittelbar der &amp;quot;Leistungstriac&amp;quot; der dann die Last schaltet.&lt;br /&gt;
&lt;br /&gt;
S1x ist ein Sicherungshalter um die Lasten einzeln absichern zu können. Wert 10A Mittelträge.&lt;br /&gt;
&lt;br /&gt;
R3x, R4x, C3x bilden ein Snubber-Network, L1X verhindert eine zu schnelle Stromanstiegsgeschwindikeit damit der Triac nicht &amp;quot;von selbst&amp;quot; zündet. Weglassen äußert sich meist in einem fast nicht hörbaren Click. Damit zeigt einem dann der Triac, dass er ab jetzt für immer recht niederohmig geworden ist. Die Regelung der Temperatur braucht dann nicht mehr über den Prozessor erfolgen, sondern nur noch mit dem Ein-/Ausschalter..... :-)&lt;br /&gt;
&lt;br /&gt;
=== Thermoelemente (MAX6675/MAX31855)  ===&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 6,7/22&#039;&#039;&#039;&lt;br /&gt;
Der inzwischen abgekündigte MAX6675 bzw. sein ehrenwerter Nachfolger MAX31855 sind einfach zu handhabende Thermoelement-ICs mit Kaltstellenkompensation. Thermoelemente funktionieren durch das Verschweißen zweier verschiedener Legierungen (beim K-Typ Thermoelemnt Ni und CrNi). Durch den durch die Umgebungstemperatur bedingten Wärmefluss zwischen beiden entsteht ein elektrische Spannung. Diese wird von besagten ICs verstärkt und digitalisiert (ADC). Diese Spannung / Temperatur ist natürlich wieder relativ zur Umgebungstemperatur an der Kaltstelle (Kontaktierung der beiden Drähte mit dem Messinstrument). Daher messen diese ICs auch gleich die Umgebungstemperatur (Kaltstellenkompensation genannt) mit, verrechnen das und geben das Ergebnis auf der SPI-Schnittstelle aus. MAX6675 leistet 12bit also 0,25°C Auflösung (nicht Genauigkeit!) über einen Temperaturbereich von 0°C to +1024°C. Außerdem wird ein nicht/fehlerhaft angeschlossenes Thermoelement erkannt. Der Thermocouple-IC wird an die SPI-Schnittstelle des PICs angeschlossen (hier MSSP genannt). &lt;br /&gt;
&lt;br /&gt;
MAX6675 und MAX31855 scheinen entgegen der Adafruit-Information [http://www.adafruit.com/products/269] doch pinkompatibel zu sein - die Ansteuerung unterscheidet sich jedoch definitiv. (Zitat: &amp;quot;Now uses the MAX31855K instead of the MAX6675, so it can measure a wider temperature measurement range. Please note! the MAX31855 is not pin compatible or drop-in code compatible with the MAX6675. We do have an Arduino library for both chips but you&#039;ll need to adjust any existing MAX6675 designs for the mew MAX31855. The MAX6675 has been discontinued by Maxim.&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Es wurden 2 dieser ICs und damit 2 Temperaturmessstellen vorgesehen. Dies ermöglich die Messung für eine Regelung der Temperatur so wie eine zusätzliche Überwachung kritischer Bauteile (z.B. ICs oder LEDs). Die Minimalbestückung sieht einen MAX6675/MAX31855 vor. Die Auswahl in der Firmware erfolgt über einen der beiden GPIO-Pins RA5 oder RA0 via dem ChipSelect (CS) des MAX6675/MAX31855.&lt;br /&gt;
&lt;br /&gt;
Neben dem MAX6675/MAX31855 wurde ein Decoupling-Kondensator (C8x, Standard 100nF) so wie ein weiterer im Messpfad (C9x) zur Zwecken der Entstörung vorgeshen. C9x 100nF sollte nur bestückt werden wenn Probleme bei der Temperaturmessung entstehen (z.B. unrealstisch stark schwankende Werte).&lt;br /&gt;
&lt;br /&gt;
=== ADC, SPI, UART &amp;amp; I2C Stiftleiste ===&lt;br /&gt;
ADC, SPI, UART und I2C sind zu Zwecken der Kalibrierung / Erweiterung / Einstellung / Debugging auf Stiftleisten herausgeführt:&lt;br /&gt;
Ähnlichkeiten mit dem FTDI-USB-TTL-Kabel bzw. Arduino XXX Bla Bla Bla Schnittstellenkonverter sind natürlich rein zufällig.&lt;br /&gt;
&lt;br /&gt;
Die I2C-Schnittstelle wurde auf eine Stiftleiste geführt, um z.B. einem LM75 o.ä. anschließen zu können. Damit stehen zur Kalibrierung der Thermoelemente genaue Temperaturen zur Verfügung.&lt;br /&gt;
&lt;br /&gt;
Die Stiftleisten haben alle ein Raster von 2,54mm. So können Pin-Header, Wannenstecker oder ähnliches verwendet werden.&lt;br /&gt;
&lt;br /&gt;
Da ja viele Leute eigene Vorstellungen bezüglich der Frontplattengestaltung haben, wurden auch die Taster und LEDs auf Stiftleisten geführt.&lt;br /&gt;
&lt;br /&gt;
=== Kühlkörper ===&lt;br /&gt;
Da die Triacs der Steuerung für bis zu 10A pro Kanal ausgelegt sind, kann man auf die Kühlkörper nicht verzichten. Es fallen bei 10A bis zu 13 Watt Wärme pro Triac ab. Falls mann auf die Kühlkörper doch verzichten möchte, sollte man darauf achten, die Triacs mit dem Kopf nach unten einzubauen. Diese können sich dann bei Überlast ganz von selber auslöten.... :-)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red;&amp;quot;&amp;gt; Die Triacs müssen mit Glimmerscheibe und Isoliernippel -ALSO ISOLIERT ZUM KÜHLKÖRPER- montiert werden.&lt;br /&gt;
Außerdem muss unter dem Kühlkörper ein Stück Isolierband oder FR4 oder Nylon-Scheiben beigelegt werden, um zu verhindern, dass der Stopplack der Leiterplatte beschädigt wird. In diesem Falle hätte man Potential auf dem Kühlkörper.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Gehäuse ===&lt;br /&gt;
Die Leiterplatte wurde für ein Gehäuse von Hammond entwickelt.&lt;br /&gt;
Das Gehäuse ist zwar keine Schönheit, aber doch recht preiswert.&lt;br /&gt;
Typenbezeichnung: RM2055M oder etwas größer RM2055L&lt;br /&gt;
&lt;br /&gt;
== Firmware PIC ==&lt;br /&gt;
Die Entwicklung der Firmware für den PIC18LF2550  erfolgt mit MPLABX und dem C18 Compiler. MPLABX ist kostenlos, der C18 Compiler bis auf die stärkste Optimierungsstufe ebenfalls. Die Quellen für die Firmware sind offengelegt und können von Sourceforge bezogen werden, siehe Links, weiter unten.&lt;br /&gt;
&lt;br /&gt;
=== Programmstruktur- und ablauf ===&lt;br /&gt;
Nach anfänglicher Initialisierung des PIC startet die Statemachine [http://http://www.mikrocontroller.net/articles/Statemachine] [http://http://de.wikipedia.org/wiki/Endlicher_Automat]. Neben ihr findet in der main-Funktion nur noch die Abfrage der beiden Bedientasten statt. Mit dem Tastendruck wird zum Zwecke der Entprellung ein Timer gestartet. Alles Andere (incl. PID-Regelung, Wellenpaket- bzw. Phasenan- und Phasenabschnittssteuerung und USB) ist interruptbasiert.&lt;br /&gt;
=== Reflow-Ofen-Konfiguration ===&lt;br /&gt;
&lt;br /&gt;
=== Taktversorgung, Nulldurchgangserkennung und Zeitbasis ===&lt;br /&gt;
=== USB ===&lt;br /&gt;
=== SPI für MAX6675 ===&lt;br /&gt;
=== SPI für MAX31855 ===&lt;br /&gt;
&lt;br /&gt;
=== Wellenpaketsteuerung ===&lt;br /&gt;
=== Phasenanschnitt ===&lt;br /&gt;
&lt;br /&gt;
=== PWM für MOSFET ===&lt;br /&gt;
=== PIC-Configword ===&lt;br /&gt;
&lt;br /&gt;
=== Zuordnung Outputs ===&lt;br /&gt;
[[Datei:pinning.png|thumb|right|400px|Input/Output-Funktions-Tabelle]]&lt;br /&gt;
&lt;br /&gt;
*In1 = RC2 = PIN13 = ULN5--&amp;gt;12 = OUT1 = PWM &lt;br /&gt;
*In2 = RB3 = PIN24 = ULN6--&amp;gt;11 = OUT2 = TRIAC_A (1) = K5&lt;br /&gt;
*In3 = RB4 = PIN25 = ULN7--&amp;gt;10 = OUT3 = TRIAC_B (2)= K2&lt;br /&gt;
*In4 = RA2 = PIN4  = ULN4--&amp;gt;13 = OUT4 = LED_PRG1 = OPTO D&lt;br /&gt;
*In5 = RC0 = PIN11 = ULN3--&amp;gt;14 = OUT6 = LED_PRG2 = OPTO F&lt;br /&gt;
*In6 = RC1 = PIN12 = ULN2--&amp;gt;15 = OUT7 = LED_PRG3 = OPTO G&lt;br /&gt;
*In7 = RA3 = PIN5  = ULN1--&amp;gt;16 = OUT5 = LED_PRG4 = OPT= E&lt;br /&gt;
&lt;br /&gt;
TRIAC1 ist nahe dem Zerocross&lt;br /&gt;
&lt;br /&gt;
== PC-Software (GUI) ==&lt;br /&gt;
[[Datei:gui_alpha.png|thumb|right|300px|Screenshot der GUI (noch Alpha) für den Reflow-Ofen-Controller]]&lt;br /&gt;
&lt;br /&gt;
Die GUI (englisch Graphical User Interface) ist der Einfachheit halber in VB.net programmiert und momentan noch im Alpha-Stadium. Auch hierfür liegen die Quellen später selbstverständlich offen.&lt;br /&gt;
&lt;br /&gt;
=== Funktionen und Modi ===&lt;br /&gt;
[[Datei:modi.png|thumb|right|400px|Auswahl der beschriebenen Modi durch Klick]]&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Ofen-Profil&amp;quot;&#039;&#039;&#039; - Es wird ein Programm (Temperaturkurve) aus dem EEPROM des Reflow-Ofens ausgeführt. Der Backvorgang kann mit der Software gesteuert (START, STOP, ...) und überwacht werden. Hierzu stehen Temperatur, Temperaturänderung, Heizleistung (Ober- und Unterhitze, Lüfter) so wie die graphische Darstellung im zentralen Diagramm zur Verfügung. Eingriffsmöglichkeiten, wie das Ändern der Temperaturkurve sind nicht vorgesehen. Dies soll ein reiner Überwachungs-Modus sein. Um die Temperaturkurve zu verändern zu können, sollte der Modus &amp;quot;PC-Profil&amp;quot; verwendet werden und die Temperaturkurve aus dem EEPROM importiert werden. Dann kann Selbige auch verändert und anschließend ausgeführt bzw. verändert in den EEPROM zurückgeschrieben werden. Dieser Modus stellt ein Äquivalent zur START/STOP-Tasten-Bedienung an der Platine dar und kann selbstverständlich parallel dazu genutzt werden. Die GUI also als Addon zum Stand-Alone-Betrieb.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;PC-Profil&amp;quot;&#039;&#039;&#039; - Es wird ein Programm (Temperaturkurve) ausgeführt welche zuvor am Computer erstellt / editiert wurde. In diesem Modus gibt der Computer Temperaturwerte vor, welche live über die USB-Schnittstelle zum PIC übertragen werden und mit dem dort integrierten PID-Regler ausgeführt werden. Das ermöglicht eine on-the-fly Veränderung der Temperaturkurve während des Backvorgangs. Temperaturkurven können aus Dateien oder dem EEPROM importiert und auch wieder exportiert werden. CSV-Dateien können ebenfalls importiert und exportiert werden. Die &amp;quot;Eingabe&amp;quot; der Temperaturkurve erfolgt entweder über Import (CSV/EEPROM), per Mausklick auf dem zentralen Diagramm oder im sog. DataGridView. Weiteres siehe Unterpunkt &amp;quot;Eingabe der Temperaturkurve (Reflowprofil)&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;manueller Ablauf&amp;quot;&#039;&#039;&#039; - In diesem Modus wird (im Gegensatz zu den oberen beiden Modi &amp;quot;Ofen-Profil&amp;quot; und &amp;quot;PC-Profil&amp;quot;) keine Temperatur geregelt. Hier wird die Leistung des Ofens in % eingestellt und gesteuert. Der PID-Regler ist nicht in Aktion. Die Temperatur, Temperaturänderung so wie der Temperaturverlauf werden selbstredend angezeigt bzw. im Diagramm dargestellt. Der Modus &amp;quot;manueller Ablauf&amp;quot; fährt ähnlich dem Modus &amp;quot;PC-Profil&amp;quot; die im DataGridView eingetragenen Leistungs-Zeit-Punkte ab. Für jeden Zeitpunkt ist eine Leistung vorgegeben. Die Eingabe erfolgt ähnlich wie unter &amp;quot;Eingabe der Temperaturkurve (Reflowprofil)&amp;quot; beschrieben. Nur eben, dass eine Leistung und keine Temperatur angegeben wird. Die Eingabe der Leistung kann nicht im Zeit-Temperatur-Diagramm erfolgen sondern mittels der Schieberegler oder direkt tabellarisch.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;manueller Modus&amp;quot;&#039;&#039;&#039; - Dieser Modus enthält 2 Submodi&lt;br /&gt;
** &amp;quot;manueller Leistungsmodus&amp;quot; - Auch in diesem Modus wird die Leistung gesteuert. Es wird keine Temperatur geregelt, der PID-Regler für die Temperatur ist nicht in Betrieb. Die Einstellung hier erfolgt über die drei Schieberegler oder über eine numerische Eingabe durch Klick auf die Leistungsangabe unter dem Schieberegler. Durch Klick auf die Texte &amp;quot;TOP&amp;quot;, &amp;quot;BOTTOM&amp;quot;, &amp;quot;FAN&amp;quot; (Oberhitze, Unterhitze, Lüfter) können selbige deaktiviert bzw. aktiviert werden. Auch in diesem Modus wird Temperatur, Temperaturänderung so wie der Temperaturverlauf dargestellt.&lt;br /&gt;
** &amp;quot;manueller Temperaturmodus&amp;quot; - Hier wird die Temperatur wieder mittels des Temperatur-PIDs geregelt. Die Temperatur wird entweder mittels Schieberegler (Ober- und Unterhitze-Regler sind jetzt gekoppelt) oder durch eine numerische Eingabe unterhalb der Schieberegler vorgegeben. Anzeige wie im &amp;quot;manuellen Leistungsmodus&amp;quot;. Der Lüfter kann unabhängig vom PID in seiner Leistung geregelt werden. Ein evtl. durch den Luftstrom verursachter Temperaturabfall wird vom PID selbstverständlich ausgeregelt (aus diesem Grunde ist es ja ein Regler).&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Programmieren&amp;quot;&#039;&#039;&#039; - Hier kann ein neues &#039;&#039;&#039;Temperatur&#039;&#039;&#039;-Programm für den EEPROM-Speicher des Ofens erstellt und editiert werden. Die Eingabemöglichkeiten sind unter &amp;quot;Eingabe der Temperaturkurve (Reflowprofil)&amp;quot; beschrieben. Dieser Modus ist zum reinen Programmieren des Ofens gedacht und ermöglicht keine weitere Steuerung oder Überwachung des Ofens.&lt;br /&gt;
&lt;br /&gt;
=== Eingabe der Temperaturkurve (Reflowprofil) ===&lt;br /&gt;
[[Datei:datagridview.png|thumb|right|400px|tabellarische Anzeige und Editiermöglichkeit der Temperaturkurve]]&lt;br /&gt;
Die Eingabe der Temperaturkurve erfolgt entweder über Import (CSV/EEPROM), per Mausklick auf dem zentralen Diagramm oder im sog. DataGridView (Excel-ähnliche Bedienung in tabellarischer Form). &lt;br /&gt;
&lt;br /&gt;
* CSV-Import + Export&lt;br /&gt;
* EEPROM-Import + Export&lt;br /&gt;
* Im rechts stehenden Screenshotbeispiel wird eine tabellarische Eingabeform mit einem DataGridView gezeigt: Die Temperatur (erster Temperaturpunkt = Punkt 0) von 100°C wird linear über einen Zeitraum von 0-30s verteilt. Bei 30s hat der Ofen die Temperatur von 100°C. Dafür setzt die Regelung die Oberhitze, die Unterhitze ein. Der Lüfter ist deaktiviert. In der Zeit von 30s bis 120s wird die Temperatur nun von 100°C auf 150°C linear angehoben. Von 120s bis 180s Backzeit steigt die Temperatur von 150°C auf 250°C. Von 180s bis 200s wird die Temperatur auf 280°C angehoben. Anschließend wird sie zwischen 200s und 220s auf 280°C gehalten (280°C@200s und 280°C@220s) um dann bis 240s wieder auf 250°C zu fallen. Bis zum Zeitpunkt 300s wird dann die Temperatur 30°C angestrebt. Zusätzlich ist der Lüfter nun aktiviert (soweit der Ofen eine Umluftfunktion besitzt). Bei Punkt 7 sind Ober- und Unterhitze deaktiviert nur noch der Lüfter kühlt. Da hier bei &amp;quot;Zeit[s]&amp;quot; die 0 eingetragen wird der Zustand (hier nur Lüfter an) für einen unendlich langen Zeitraum auf 0 gehalten. Also so lange wie das Programm aktiviert ist wird der Lüfter laufen. Natürlich könnte man hier auch z.B. 100°C und Zeitpunkt 0s eintragen. Dann würde der Ofen bis zum manuellen Beenden des Programms (klick auf STOP-Button oder Drücken des START/STOP-Tasters auf der Platine/Steuerung) 100°C halten.&lt;br /&gt;
* Alle Zellen des DataGridView sind editierbar (zur Veränderung der Temperatur, Zeitpunkt, ...)&lt;br /&gt;
* Direkter Klick auf das zentrale Temperatur-Zeit-Diagramm trägt den Zeitpunkt so wie die Temperatur unter dem Mauszeiger in die Tabelle (das DataGridView) ein. Die ausgewählte Zeile wird beschrieben oder überschrieben. Neue Zeilen (also Temperatur-Zeit-Punkte) können durch klick auf den &amp;quot;Plus-Button&amp;quot; hinzugefügt werden. Ebenso ist das Löschen oder Verschieben einer oder mehrerer Zeile gleichzeitig möglich.&lt;br /&gt;
&lt;br /&gt;
=== Beschreibung der Steuerungsmöglichkeiten ===&lt;br /&gt;
In Abhängigkeit des gewählten Modus bestehen einige Steuerungs-, Einstellungs- und Kontrollmöglichkeiten:&lt;br /&gt;
* &#039;&#039;&#039;Schieberegler&#039;&#039;&#039; für Temperatur od. Leistung (je nach Modus) für Oberhitze, Unterhitze und Lüfter. Je nach Hardwareausführung. &lt;br /&gt;
** Klick auf &amp;quot;TOP&amp;quot;, &amp;quot;BOTTOM&amp;quot; oder &amp;quot;FAN&amp;quot; aktiviert oder deaktiviert die entsprechende Funktion bzw. Hardware.&lt;br /&gt;
** Numerische Eingabe der Werte für die Schieberegler durch Klick auf die Anzeige unterhalb der Schieberegler. Werte können auch im deaktivierten Zustand angegeben werden. Die Übernahme erfolgt durch den &amp;quot;Aktivierungsklick&amp;quot; auf &amp;quot;TOP&amp;quot;, &amp;quot;BOTTOM&amp;quot; oder &amp;quot;FAN&amp;quot;&lt;br /&gt;
* &#039;&#039;&#039;T1, dT1, T2, dT2&#039;&#039;&#039; - Anzeige der gemessenen Temperatur so wie die momentane Temperaturänderung am jeweiligen Sensor. &lt;br /&gt;
* &#039;&#039;&#039;Bedienbuttons&#039;&#039;&#039;&lt;br /&gt;
** Play - Startet das Programm am angegebenen Startpunkt (siehe unten)&lt;br /&gt;
** Pause - Pausiert das Programm - weitere Pauseoptionen siehe unten&lt;br /&gt;
** Stop - Stopt den Programmablauf&lt;br /&gt;
** Vor / Zurück - Springt zwischen Temperaturpunkten hin und her. Dient zum überspringen oder zurückspringen zu gewissen Temperatur-Zeit-Punkten. Ermöglicht z.B. das Überspringen eines Ablaufes der eine lange Preheat- oder Dryphase hat.&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Status&amp;quot;&#039;&#039;&#039; - zeigt den aktuellen Zustand des Programms an (READY, START, WAITING, PAUSE, ...)&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;RESET&amp;quot;&#039;&#039;&#039; - setzt das (begonnene) Programm zurück. Beinhaltet neben dem Programmablauf auch das Zurücksetzen der graphischen Anzeige des Diagramms, etc.&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Startpunkt&amp;quot;&#039;&#039;&#039; - legt den ersten Punkt des Programmablaufes fest. &lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Wiederholungen&amp;quot;&#039;&#039;&#039; - ermöglicht das wiederholte Backen ohne das Programm händisch immer wieder neu starten zu müssen. Die Anzahl der Wiederholungen ist einstellbar (0 für unendlich viele) und es ist eine Wartezeit zwischen den Wiederholungen einstellbar. Alternativ kann eine Meldung nach jedem vollendeten Backvorgang abgegeben werden. Nach Bestätigung dieser wird die nächste Wiederholung ausgeführt.&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Pause&amp;quot;&#039;&#039;&#039; - Pauseneinstellungen. Hier sind Optionen wählbar was passieren soll, falls der Pausebutton betätigt wird:&lt;br /&gt;
** Pausezeit - gibt an wie lange die Pause dauern soll [s], danach fährt das Programm automatisch gemäß des gewählten Pausemodus fort. Für eine Pause ohne automatisches Fortfahren (Countdowntimer) &#039;0&#039; angeben.&lt;br /&gt;
** Pausemodus &amp;quot;aktuelle Temperatur halten, WarmUp, Fortsetzen&amp;quot; - Ofen hält die Temperatur (Zieltemperatur) des Zeitpunktes als der Pausebutton betätigt wurde. WarmUp bedeutet, dass nach dem Beenden des Pausemodus zunächst die Zieltemperatur wieder erreicht werden &#039;&#039;&#039;muss&#039;&#039;&#039; bevor der nächste Punkt angesteuert wird. Klingt paradox, wenn die Temperatur doch so und so gehalten wird, ist aber nicht so. Die Wahrscheinlichkeit ist hoch, dass der Pausemodus benutzt wird um die Ofentüre zu öffnen und Korrekturen an der Platine vorzunehmen. Unter Umständen ist die Heizung des Ofens jedoch nicht in der Lage den dadurch entstehenden Wärmeverlust zu kompensieren. Fährt das Programm dann sofort fort, so könnten evtl. kritische (Hoch-)Punkte des Lötprofils &amp;quot;unterfahren&amp;quot; werden. Dem wirkt WarmUp entgegen.&lt;br /&gt;
** Pausemodus &amp;quot;aktuelle Temperatur halten, Fortsetzen&amp;quot; - siehe oben, nur ohne WarmUp.&lt;br /&gt;
** Pausemodus &amp;quot;definierte Temperatur halten, WarmUp, Fortsetzen&amp;quot; - siehe oben. Statt der aktuellen Zieltemperatur wird jedoch nun im Pausemodus eine einzustellende Pausetemperatur gehalten. Mit WarmUp.&lt;br /&gt;
** Pausemodus &amp;quot;definierte Temperatur halten, Fortsetzen&amp;quot; - siehe oben, nur ohne WarmUp.&lt;br /&gt;
** &amp;quot;Pausetemperatur&amp;quot; - spezielle Temperatur die bei entsprechender Pausemoduswahl für die Dauer der Pause gehalten wird.&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Ende&amp;quot;&#039;&#039;&#039; - gibt an was am Ende eines durchlaufenen Reflow-Programms passieren soll. Ist der Wiederholungsmodus aktiviert, tritt dieses Ereignis erst nach Durchlauf aller Wiederholungen ein. Folgende Modi sind möglich:&lt;br /&gt;
** automatischer Reset - am Ende des Programms wird alles automatisch zurückgesetzt, alle Graphiken und Anzeigen gelöscht.&lt;br /&gt;
** manueller Reset - am Ende des Programms bleiben alle Anzeigen, Graphiken, etc erhalten und müssen vor Beginn eines neuen Reflowvorgangs händisch durch Klick auf &amp;quot;RESET&amp;quot; zurückgesetzt werden.&lt;br /&gt;
** Benutzermeldung - lässt eine Meldung erscheinen. Alle Anzeigen und Graphiken bleiben erhalten bis der Benutzer diese Meldung bestätigt. Mit Bestätigung dieser Meldung wird ein automatischer Reset vorgenommen.&lt;br /&gt;
&lt;br /&gt;
=== Loggen des Temperaturverlaufes ===&lt;br /&gt;
Es ist möglich jeden Backvorgang in eine CSV-Datei zu loggen. (Software- und PID-Einstellungen). Geloggte CSV-Dateien können eingelesen und im zentralen Temperatur-Zeit-Diagramm begutachtet werden. Ein Ist-Soll-Vergleich ist ebenso möglich wie die direkte Anzeige des Fehlers (&amp;quot;Ist minus Soll&amp;quot;). Dank CSV können die Daten auch mit anderen Programmen (Excel, etc.) weiterverarbeitet werden.&lt;br /&gt;
&lt;br /&gt;
== Ofen / Pizzaofen ==&lt;br /&gt;
=== Leistung und Volumen ===&lt;br /&gt;
* Alls Faustformel wird oft 100W pro Liter Volumen genannt.&lt;br /&gt;
* Ich habe einen sehr preiswerten Ofen gewählt und die &amp;quot;Oberhitze&amp;quot; zusätzlich mit zwei Halogen-Stäben a 300W &amp;quot;verstärkt. Das kostet nicht viel, die Fassung ist für ca. 3 Euro erhältlich, die Halogenstäbe gibt es in jedem Baumarkt. &lt;br /&gt;
* Bezugsquelle Fassung : siehe &amp;quot;Links&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Dämmung ===&lt;br /&gt;
=== Umluft ===&lt;br /&gt;
* Der verwendete Ofen sollte eine Umluftfunktion besitzen, damit sich die Wärme gleichmäßig im Ofen und auf der Leiterplatte verteilen kann.&lt;br /&gt;
&lt;br /&gt;
== FAQ ==&lt;br /&gt;
&lt;br /&gt;
* Q1: Ich habe einen PT100/PT1000 und möchte den anschließen. Geht das?&lt;br /&gt;
** A1: Ja natürlich. Dazu ist aber etwas externe Elektronik notwendig. Sowohl 2 ADC-Pins (mit 3V3 Betriebsspannung als fixe Referenzspannung), als auch die UART und SPI/I2C-Schnittstelle stehen zur freien Verfügung. Für PT100/PT1000 wird für vernünftige Messungen ohnehin eine Verstärkung (meist mit OPV) von Nöten sein. Da der PIC-interne ADC &amp;quot;nur&amp;quot; 10bit Auflösung bietet sollte ein externer 16bit ADC in Betracht gezogen werden um das Potential der PT100/PT1000 auszunutzen.&lt;br /&gt;
*Q2: Ich habe von günstigen Temperaturmessungen mit Dioden gehört. Geht das auch hier?&lt;br /&gt;
**A2: Ja. Die Vorwärtsspannung einer Diode verhält sich linear zur Sperrschichttemperatur. Diese Spannung (bei 25°C einer Si-Diode die bekannten 0,7V) kann mittels OPV verstärkt werden und auf einen Spannungsbereich von 0 ... 3V3 aufgebläht werden. Eine billige Lösung, auf Kosten der Genauigkeit. Doch eine Diode ist laut Datenblatt nur bis 150°C geeignet. Es ist also beim Löten mehr oder weniger Pfusch. Wenn ich schon eine Reflow-Steuerung baue, sollte ich doch nicht an ein paar Euro für eine gescheite Temperaturmessung sparen. Einige Anregungen vom Messgerätehersteller Keithley bzgl. der Halbleiterphysik mit interessanten Formeln [http://www.keithley.de/support/data?asset=50486]. Oder natürlich der Klassiker von Thomas Pfeifer [http://thomaspfeifer.net/backofen_smd_reflow.htm]. Oder ein Beitrag mit LT-Spice Simulation zum Thema [http://www.mikrocontroller.net/topic/270627#2833883].&lt;br /&gt;
* Q: God why ... ?&lt;br /&gt;
** A: Because we can !&lt;br /&gt;
*Q: Ich hab aber noch nie was mit 230V gemacht.&lt;br /&gt;
**A: Dann würde ich an Deiner Stelle dieses Projekt NICHT nachbauen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Verbesserungen Prototyp - Diese haben jedoch keinen Einfluss auf die Funktion der Leiterplatte===&lt;br /&gt;
* Bauteile weiter weg von den Schraublöchern.&lt;br /&gt;
* Dazu Kreis rund um Bohrung auf Bestückdruck.&lt;br /&gt;
* Masseanbindung Quarz.&lt;br /&gt;
* Klemmen weiter weg vom Rand.&lt;br /&gt;
* Klemme und Sicherungshalter weiter auseinander.&lt;br /&gt;
* Bohrungen für Drossel 0,2mm größer machen.&lt;br /&gt;
* Teilenummer für Conrad-USB-Buchse in BOM übernehmen.&lt;br /&gt;
* Stiftleiste P1  weiter weg von P2 und P4.&lt;br /&gt;
* Varistoren näher an Klemmen platzieren.&lt;br /&gt;
* THT-Kondensatoren für Snubber.&lt;br /&gt;
* Ggf. Stiftleistenbelegung für externe Leds so ändern, das keine extra Vorwiderstände notwendig sind.&lt;br /&gt;
* Befestigungsbohrung für Drossel, um diese mit Kabelbinderung oder Schraube fixieren zu können.&lt;br /&gt;
* Pullup-Widerstand bei MCLR doppelt. &lt;br /&gt;
* Power-LED vorsehen.&lt;br /&gt;
* Leiterbahnen etwas weiter weg von den Kühlkörperanschlüssen&lt;br /&gt;
* Designatoren Texte etwas größer machen.&lt;br /&gt;
* Ein vernünftiger GND-Punkt für einen Tastkopf / Messungen / Aligator-Clips vorsehen.&lt;br /&gt;
&lt;br /&gt;
= Errata Projekt =&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:red;&amp;quot;&amp;gt; Triac Symbol in Library falsch, dadurch ist T2 mit T1 vertauscht. Abhilfe für Leiterplattenversion V1.0: T1 und T2 &amp;quot;twisten&amp;quot; und jeweils mit Schrumpfschlauch versehen.( Also Beinchen T1 über kreuz mit Beinchen T2 einlöten...)&amp;lt;/span&amp;gt;&lt;br /&gt;
* Beim MOSFET R39 ist die Masseanbindung falsch. Es bestehen drei Möglichkeiten:&lt;br /&gt;
** 1. 0-R-Brücke für R39 einbauen und auf Strombegrenzung verzichten.&lt;br /&gt;
** 2. Eine Polyfuse mit Bauform 1206 einbauen. &lt;br /&gt;
** 3. Das kleine Leiterbahnstückchen zwischen R38 und R39 unterbrechen und statt dessen die Leiterbahn zwischen R39 und der Klemme mit der Durchkontaktierung bei R38 verbinden.&lt;br /&gt;
* LED-Beschriftung passt nicht ganz (Schaltplan Netlabel OUT1,2,3,4 sind durcheinander gekommen) --&amp;gt; Ist im Prinzip ohne Belang, man muss das nur bei der Software berücksichtigen.&lt;br /&gt;
* Schaltplan UNL2003 fehlerhafte Zuordnung IN5,6,7 &amp;lt;&amp;gt; OUT7,6,5 --&amp;gt; Ist im Prinzip ohne Belang, man muss das nur bei der Software berücksichtigen.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* Diskussion: [http://www.mikrocontroller.net/topic/297217 Diskussion]&lt;br /&gt;
* Software: [http://sourceforge.net/projects/reflowofensteue/ Bei Sourceforge]&lt;br /&gt;
* Dextrel Nulldurchgang: [http://www.dextrel.net/diyzerocrosser.htm Nulldurchgangschaltung]&lt;br /&gt;
* Gehäuse Zeichnung: [http://www.hammondmfg.com/pdf/RM2055L.pdf Großes Gehäuse für Steckdosenmontage]&lt;br /&gt;
* Gehäuse Zeichnung: [http://www.hammondmfg.com/pdf/RM2055M.pdf Kleines Gehäuse, keine Steckdosen]&lt;br /&gt;
* Bezugsquelle [http://www.soselectronic.com/?str=371&amp;amp;artnum=73596&amp;amp;name=hammond-ritec-rm2055l Großes Gehäuse Hammond]&lt;br /&gt;
* Bezugsquelle [http://www.soselectronic.com/?str=371&amp;amp;artnum=73595&amp;amp;name=hammond-ritec-rm2055m Kleines Gehäuse Hammond]&lt;br /&gt;
* Bezugsquelle [http://www.druckerzubehoer.de/shop/product/catid/H-UNIVERSALZUBEHOER_HZB/subcatid/UNIVERSALZUBEHOER_GROUP1_HZB/productid/1727063-390722LA/site/1/lng/de_DE Netzteil Mini USB ]&lt;br /&gt;
* Bezugsquelle [http://www.ebay.de/itm/151037292125?ssPageName=STRK:MEWNX:IT&amp;amp;_trksid=p3984.m1497.l2649 Termoelement Ebay (Typ K für ca. 2Euro)]&lt;br /&gt;
* Bezugsquelle [http://www.artcase-shop.de/index.php?page=search&amp;amp;page_action=query&amp;amp;desc=on&amp;amp;sdesc=on&amp;amp;keywords=pce+105&amp;amp;x=0&amp;amp;y=0 Steckdosen für Schalttafeleinbau:]&lt;br /&gt;
* Bezugsquelle [http://www.schaeffer-ag.de/ Frontplatten]&lt;br /&gt;
* Bezugsquelle [http://www.lichtlieferant.de/catalogsearch/result/?q=r7s+fassung+sockel Vossloh Fassung R7S für Halogenstäbe]&lt;br /&gt;
* Datenblatt Prozessor [http://ww1.microchip.com/downloads/en/DeviceDoc/39632e.pdf PIC18LF2550]&lt;br /&gt;
* Umfangreicher Thread u.A. Leistungsvermögen, Temperaturmessung und Dämmung [http://www.mikrocontroller.net/topic/270627]&lt;br /&gt;
[[Kategorie:PIC-Projekte]]&lt;/div&gt;</summary>
		<author><name>Frankman</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=Reflow_Ofen_Steuerung&amp;diff=80569</id>
		<title>Reflow Ofen Steuerung</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=Reflow_Ofen_Steuerung&amp;diff=80569"/>
		<updated>2014-01-03T10:56:26Z</updated>

		<summary type="html">&lt;p&gt;Frankman: Kleinigkeit&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Datei:RFB.jpg|thumb|right|200px|Altium 3D Ansicht]]&lt;br /&gt;
[[Datei:Teilbest2.jpg|750px|teilbestückte Platine]]&lt;br /&gt;
== Einleitung ==&lt;br /&gt;
[[Datei:pcb.png|thumb|right|400px|unbestücktes PCB der Reflow-Ofen-Steuerung]]&lt;br /&gt;
Hier wird eine weitere Reflow-Ofen-Steuerung beschrieben.&lt;br /&gt;
=== Zum Nachbauen ===&lt;br /&gt;
* Spezifikation: [[Datei: Spec Reflow.pdf]]&lt;br /&gt;
* Schaltplan: &lt;br /&gt;
** Minimalversion [[Datei:Schematic Prints Minimal.pdf]]&lt;br /&gt;
** Standardversion [[Datei:Schematic Prints Standard.pdf]]&lt;br /&gt;
** Deluxeversion [[Datei:Schematic Prints Deluxe.pdf]]&lt;br /&gt;
** Debugversion [[Datei:Schematic Prints Debug.pdf]]&lt;br /&gt;
* Gerberdaten: [[Datei:Gerber Reflow.pdf]]&lt;br /&gt;
* Assemblydrawing: [[Datei:Assembly Reflow.pdf]] &lt;br /&gt;
* Altium-Files: [[Datei:Reflow.zip]]&lt;br /&gt;
* Stückliste als CSV: [[Datei:Reflow.csv]]&lt;br /&gt;
* Stückliste als Open Office: [[Datei:Reflow.ods]]&lt;br /&gt;
* PC Programm: TBD&lt;br /&gt;
* Sourcen PC-Programm: TBD&lt;br /&gt;
* PIC Programm (*.hex): [http://sourceforge.net/projects/reflowofensteue/ ]&lt;br /&gt;
* Sourcen Pic-Programm: [http://sourceforge.net/projects/reflowofensteue/ ]&lt;br /&gt;
* Step-File Steckdose:[[Datei:Steckdose.stp]]&lt;br /&gt;
&lt;br /&gt;
=== Motivation ===&lt;br /&gt;
Die Gründe, eine weitere Steuerung zu entwerfen, waren:&lt;br /&gt;
&lt;br /&gt;
* Die Möglichkeit, auch größere Öfen mit 2 Phasen betreiben zu können.&lt;br /&gt;
* Die Steuerung universell zu gestalten. Es sollte möglich sein, diese nicht nur zum Reflow löten zu verwenden....z.B:&lt;br /&gt;
** Temperatursteuerung für Klimakammer (Heizen, Kühlen)&lt;br /&gt;
** Dimmer mit USB&lt;br /&gt;
** Temperaturregler für ein Tisch-Fondue ( Temperatur halten)&lt;br /&gt;
** Drehzahlsteller mit USB&lt;br /&gt;
** Switchpack&lt;br /&gt;
* Die Schaltung sollte in Altium entwickelt werden. (Warum kein Eagle??? Altium User wissen es.... :-)&lt;br /&gt;
* Die Schaltung sollte mit USB ausgestattet sein.&lt;br /&gt;
&lt;br /&gt;
=== Eigenschaften &amp;amp; Spezifikationen ===&lt;br /&gt;
* Temperaturmessung: bis zu 2x &#039;&#039;&#039;Thermoelement&#039;&#039;&#039; (K-Typ) mit MAX6675 (abgekündigt) oder Nachfolger MAX31855 (pin- aber nicht softwarekompatibel)&lt;br /&gt;
* Leistungsstufen: &#039;&#039;&#039;3 voneinander unabhängige&#039;&#039;&#039; Triacs 800V 25A, limitiert auf &#039;&#039;&#039;10A @ 250VAC&#039;&#039;&#039; (z.B. Oberhitze, Unterhitze, Umluft)&lt;br /&gt;
* Nulldurchgangserkennung ermöglicht Wellenpaket-, und Phasenabschnittssteuerung * Galvanische Trennung der Leistungsendstufen&lt;br /&gt;
* 1x MOSFET-Ausgang PWM z.B. für 12V Lüfter, max. &#039;&#039;&#039;55V 3,5A&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;4 feste Programme&#039;&#039;&#039; im EEPROM über 2-Tasterbedienung und LEDs wähl- und ausführbar. &lt;br /&gt;
* &#039;&#039;&#039;PC-unabhängiger Betrieb&#039;&#039;&#039; möglich. &lt;br /&gt;
* Beliebig viele Programme möglich, bei Betrieb am Computer &lt;br /&gt;
* Mini-USB-Buchse zur Steuerung / Programmierung über GUI und zum Entwickeln. - Dafür ist &#039;&#039;&#039;keine Netzspannung&#039;&#039;&#039; erforderlich&lt;br /&gt;
* Günstiges passendes Gehäuse&lt;br /&gt;
* Alle LEDs und Taster auf &#039;&#039;&#039;Stiftleisten&#039;&#039;&#039; herausgeführt, für eigene Gestaltung der Frontblenden&lt;br /&gt;
* PID-Temperaturregler&lt;br /&gt;
* UART, SPI, I2C und 2x ADC auf Stiftleisten herausgeführt, für zukünftige &#039;&#039;&#039;Erweiterungen&#039;&#039;&#039;&lt;br /&gt;
* Versorgung über USB &amp;lt; 100mA, interne Versorgungsspannung 3,3V&lt;br /&gt;
* umfangreiche EMV-gerechte Entstörung für den Bedarfsfall&lt;br /&gt;
&lt;br /&gt;
=== Zusätzliches Benötigtes Material ===&lt;br /&gt;
* Leiterplatte (1 Stück)&lt;br /&gt;
* Gehäuse Hammond Teilenummer: RM2055L (1 Stück)&lt;br /&gt;
* Alternativ:Gehäuse Hammond Teilenummer: RM2055M (Wenn keine Steckdosen angebracht werden sollen)&lt;br /&gt;
* Alternative: Gehäuse Hammond (Hier muss man die Leiterplatte selber befestigen) Teilenummer: 1455T2201 (1 Stück)&lt;br /&gt;
* Einbausteckdosen Teilenummer: PEC 105 (2-3 Stück, je nach Ausbaustufe)&lt;br /&gt;
* PG-Verschraubung (2-3 Stück)&lt;br /&gt;
* Mutter für PG-Verschraubung (2 Stück)&lt;br /&gt;
* Litze blau, mindestens 1,5mm² (ca. 60cm)&lt;br /&gt;
* Litze braun, mindestens 1,5mm² (ca. 60cm) &lt;br /&gt;
* Litze gelb/grün, mindestens 1,5mm² (ca. 60cm)&lt;br /&gt;
* Aderendhülsen  mit Schutzkragen dazu ( 9 Stück für die Steckdosen)&lt;br /&gt;
* Schrauben, um die Leiterplatte zu befestigen (4 Stück)&lt;br /&gt;
* evtl. Abstandsbolzen dazu, falls das alternative Gehäuse verwendet wird (4 Stück)&lt;br /&gt;
* evtl. Muttern dazu, falls das alternative Gehäuse verwendet wird (4 Stück)&lt;br /&gt;
* Schrauben, Senkkopf DIN 7991 oder DIN 965 M4 X 10 um die Steckdosen zu befestigen (12 Stück)&lt;br /&gt;
* Muttern dazu M4 (12 Stück)&lt;br /&gt;
* Federschreiben  dazu DIN 127 M4 (12 Stück)&lt;br /&gt;
* Glimmerscheiben für Triac (2-3 Stück, je nach Ausbaustufe)&lt;br /&gt;
* Isoliernippel für Triacmontage (2-3 Stück, je nach Ausbaustufe)&lt;br /&gt;
* Zylinderkopfschraube M3 X 12 für Triacmontage (2-3 Stück, je nach Ausbaustufe)&lt;br /&gt;
* Mutter M3 für Triacmontage (2-3 Stück, je nach Ausbaustufe)&lt;br /&gt;
* Beilagscheibe M3 für Triacmontage (2-3 Stück, je nach Ausbaustufe)&lt;br /&gt;
* Isolierband für Triacmontage (ca. 300mm)&lt;br /&gt;
* Gummifüße für das Gehäuse (4 Stück)&lt;br /&gt;
&lt;br /&gt;
=== Kühlkörpermontage===&lt;br /&gt;
* Der Kühlköper sollte 38mm hoch sein, so passt er gut in die angegebenen Gehäuse&lt;br /&gt;
* Der Kühlkörper MUSS isoliert montiert werden, also Glimmerscheibe und Isoliernippel einsetzen und NACHMESSEN, ob der Kühlkörper auch wirklich keinen Kontakt zum Triac hat!&lt;br /&gt;
* Da die 230-V-Leiterbahnen nur durch den Stopplack vom Kühlkörper getrennt sind, sollte die Isolation mit zwei Lagen Gewebe- oder Isolierband verstärkt werden. Das Isolierband kann auf die Leiterplatte oder unter den Kühlkörper geklebt werden.&lt;br /&gt;
* Als Bohrungsmaß empfehle ich 20mm über der Leiterplatte.&lt;br /&gt;
* Entweder Bohrung 3,2mm für Durchgangsloch &lt;br /&gt;
* Oder Bohrung 2,5mm mit M3-Gewinde&lt;br /&gt;
&lt;br /&gt;
== Schaltung==&lt;br /&gt;
=== PIC18LF2550 Grundbeschaltung ===&lt;br /&gt;
[[Datei:osc_vs_vcc.png|thumb|right|200px|Taktraten und Versorgungsspannung PIC18F2550 vs. PIC18LF2550, Datenblatt S. 370/438]]&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 3/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Hier kommt ein PIC18&#039;&#039;&#039;L&#039;&#039;&#039;F2550 zum Einsatz. Er verfügt über eine USB-Schnittstelle und ist für Betriebsspannungen von 2 ... 5,5V ausgelegt. Sein Verwandter PIC18F2550 (ohne L) ist nicht für Betriebsspannungen &amp;lt; 4,2V ausgelegt. Dies ist bei USB sowieso nicht immer erfüllt und die Thermoelement-ICs vertragen ohnehin keine 5V, daher wurde die Betriebsspannung auf 3,3V reduziert. Neben Standard-Decoupling (100nF Kerko pro Vcc-Vss-Pärchen) wurde das ICSP-Interface in alt bewährter Pinbelegung (PICKit1,2,3) angebracht. PGD und PGC sind nicht weiter beschaltet, MCRL wird , wie immer als Resetpin verwendet. Der Resetschalter findet sich auf dem Top-Sheet (Schaltplan S. 1/22). Die Taktversorgung erfolgt über einen 24 MHz Quarz (-&amp;gt; USB). Man beachte diesbezüglich rechts stehende Grafik zu Taktraten und Versorgungsspannungen (Vdd bzw. auch Vcc genannt). Auch zu finden im Datenblatt des PICs auf Seite 370.&lt;br /&gt;
&lt;br /&gt;
=== PIC18LF2550 USB Beschaltung ===&lt;br /&gt;
[[Datei:usb_part.png|thumb|right|200px|PIC18(L)F2550&lt;br /&gt;
 Standard &lt;br /&gt;
USB-Beschaltung am PIC]]&lt;br /&gt;
[[Datei:usb_protect.png|thumb|right|200px|USB-Schutzbeschaltung und Mini-USB-Buchse]]&lt;br /&gt;
&lt;br /&gt;
Die Beschaltung der USB-Schnittstelle am PIC ist 1:1 aus dem Datenblatt übernommen. Zum Einsatz kommt eine Mini-USB-Buchse (J1).&lt;br /&gt;
Der Gedanke war: Erstens ein sehr preiswertes, fertiges Netzteil verwenden zu können, (ca. 3,67 € bei druckerzubehoer.de) und zweitens, die Steuerung auch mit dem PC / Laptop versorgen zu können.&lt;br /&gt;
Somit kann die Schaltung OHNE 230V betrieben und debuggt werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 4/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
FER1,2 und C7 filtern den Schirm nach GND. Standardmäßig wird man hier wohl 0-Ohm-Widerstände einsetzen. Falls ein Besuch im EMV-Labor geplant ist, weicht man auf den Ferrit aus. C5 und C6 filtern das Signal zusammen mit der Common-Mode-DrosselL1. Die Drossel kann mit den 0-Ohm-Brücken R8 und R9 überbrückt (gespart) werden. IC2 ist als ESD-Schutz gedacht und kann ebenfalls bei ausgeprägten Kostenbewustsein gespart werden. Die Widerstände R6 und R7 dürfen NICHT bestückt werden. FER1,2, C5, IC2 müssen nicht zwingend bestückt werden. Die Bestückung wurde vorgehalten um im Problemfall einfache Abhilfe schaffen zu können.&lt;br /&gt;
&lt;br /&gt;
=== 3,3V Spannungsversorgung ===&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 2/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Die 3,3V Versorgungsspannung für die gesamte Platine wird aus V_USB mittels des LDO Spannungsreglers TOREX - XC6206P332MR abgeleitet. Günstig, SOT-23, klein, 2x 1µF Kondensatoren benötigt, 3,3V max. 250mA. Der hat auch einen sehr kleinen Ruhestrom.&lt;br /&gt;
&lt;br /&gt;
=== Taster ===&lt;br /&gt;
*Der Resettaster zieht den MCLR-Pin nach GND und löst damit den Reset aus. MCLR  ist mit einem 10k Pullup versehen.&lt;br /&gt;
*Die übrigen beiden Taster ziehen RA4 bzw. RB5 ebenfalls nach GND.&lt;br /&gt;
&lt;br /&gt;
=== LEDs + ULN2003L ===&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 11/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Um alle LEDs auf der Platine (3x Optotriac + 7x Status) ansteuern zu können wurde auf das 7fach Darlington-Array ULN2003L zurückgegriffen. Die PIC-Ausgänge könnten zwar die LEDs direkt steueren. Aber so werden alle Ausgänge einheitlich nach Masse geschaltet. Das verbessert die Testbarkeit der ganzen Platine. ( Mit einem kurzen Masse-Draht kann zur Not der entsprechende Ausgang gesetzt werden, ohne etwas zu zerstören.)&lt;br /&gt;
&lt;br /&gt;
=== MOSFET-Leistungsausgang ===&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 22/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Hier kommt der einfacher N-Kanal MOSFET (LogicLevel) PHT8N06LT zum Einsatz. Er wird über das ULN2003L Array getrieben und ermöglicht den Anschluss eines DC-Verbrauchers mit max. 55V bei 3,5A. Hier könnte beispielsweise ein PC-Lüfter zur Kühlung oder für Umluft angeschlossen und über PWM geregelt/gesteuert werden. Ein Gatewiderstand von 100 Ohm ist zum Schutz des Treibers vorgesehen. Eine 0-Ohm-Brücke ist stattdessen aber auch möglich, wenn man eine höhere Leistung schalten möchte.Die Leiterbahnen sollten die 3A schon hergeben. Der 100 Ohm Widerstand bildet eine Stromquelle. Sobald der Strom durch den MOSFET und den Widerstand 33mA erreicht, sinkt UGS gegen 0 V. Folge: Der Mosfet sperrt ( und bleibt ganz....)&lt;br /&gt;
Es kann hier prinzipiell auch ein anderer Mosfet im SOT223-Gehäuse zum Einsatz kommen. Achten sollte man darauf, das der MOSFET schon bei 3,3V Ugs gut leiten sollte.&lt;br /&gt;
&lt;br /&gt;
=== Nulldurchgangserkennung ===&lt;br /&gt;
[[Datei:zerocross.png|thumb|right|200px|Nulldurchgangserkennung]]&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 5/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Die Nulldurchgangserkennung erfolgt nach einer sehr bekannten - jedoch ausgeklügelten - Schaltung.  [http://www.dextrel.net/diyzerocrosser.htm siehe: Dextrel]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Während einer Halbwelle wird C14 über R33 und R35 bzw. D5 geladen. Währenddessen ist T1 gesperrt. Sobald die Wechselspannung (L1-N über Spannungsteiler (R33+R35) / R34) kleiner ist als die Spannung über C14, steuert T1 durch. Dann entlädt sich C14 über den LED-Vorwiderstand R32. Der durch-steuernde Optokoppler zieht die Sync-Leitung nach GND. (Pullup Sync-Leitung = R31). Dies löst beim PIC auf INT2 einen Interrupt aus. &lt;br /&gt;
&lt;br /&gt;
Dieser Interrupt ermöglicht eine präzise Wellenpaket-, Phasenanschnittsteuerung je nach Bedarf. Das Schalten im Nulldurchgang bei der Wellenpaketsteuerung reduziert EMV-Störungen. Für Phasenanschnitt ist ohnehin eine Nulldurchgangserkennung notwendig. Außerdem liefert sie eine genaue Zeitbasis für alle Programmabläufe.&lt;br /&gt;
&lt;br /&gt;
=== Triac-Ausgänge + Snubber ===&lt;br /&gt;
[[Datei:triac.png|thumb|right|200px|Triac-Ausgangsbeschaltung]]&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 19,20,21/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Die Ansteuerung des eigentlichen Leistungstriacs BTA140-800 erfolgt über den Optotriac IS6005. Der Strom durch Letzteren wird durch R1x limitiert (Vorwiderstand). R2x und R5x limitieren wiederum den Strom durch den Optotriac. Wenn dieser zündet so folgt unmittelbar der &amp;quot;Leistungstriac&amp;quot; der dann die Last schaltet.&lt;br /&gt;
&lt;br /&gt;
S1x ist ein Sicherungshalter um die Lasten einzeln absichern zu können. Wert 10A Mittelträge.&lt;br /&gt;
&lt;br /&gt;
R3x, R4x, C3x bilden ein Snubber-Network, L1X verhindert eine zu schnelle Stromanstiegsgeschwindikeit damit der Triac nicht &amp;quot;von selbst&amp;quot; zündet. Weglassen äußert sich meist in einem fast nicht hörbaren Click. Damit zeigt einem dann der Triac, dass er ab jetzt für immer recht niederohmig geworden ist. Die Regelung der Temperatur braucht dann nicht mehr über den Prozessor erfolgen, sondern nur noch mit dem Ein-/Ausschalter..... :-)&lt;br /&gt;
&lt;br /&gt;
=== Thermoelemente (MAX6675/MAX31855)  ===&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 6,7/22&#039;&#039;&#039;&lt;br /&gt;
Der inzwischen abgekündigte MAX6675 bzw. sein ehrenwerter Nachfolger MAX31855 sind einfach zu handhabende Thermoelement-ICs mit Kaltstellenkompensation. Thermoelemente funktionieren durch das Verschweißen zweier verschiedener Legierungen (beim K-Typ Thermoelemnt Ni und CrNi). Durch den durch die Umgebungstemperatur bedingten Wärmefluss zwischen beiden entsteht ein elektrische Spannung. Diese wird von besagten ICs verstärkt und digitalisiert (ADC). Diese Spannung / Temperatur ist natürlich wieder relativ zur Umgebungstemperatur an der Kaltstelle (Kontaktierung der beiden Drähte mit dem Messinstrument). Daher messen diese ICs auch gleich die Umgebungstemperatur (Kaltstellenkompensation genannt) mit, verrechnen das und geben das Ergebnis auf der SPI-Schnittstelle aus. MAX6675 leistet 12bit also 0,25°C Auflösung (nicht Genauigkeit!) über einen Temperaturbereich von 0°C to +1024°C. Außerdem wird ein nicht/fehlerhaft angeschlossenes Thermoelement erkannt. Der Thermocouple-IC wird an die SPI-Schnittstelle des PICs angeschlossen (hier MSSP genannt). &lt;br /&gt;
&lt;br /&gt;
MAX6675 und MAX31855 scheinen entgegen der Adafruit-Information [http://www.adafruit.com/products/269] doch pinkompatibel zu sein - die Ansteuerung unterscheidet sich jedoch definitiv. (Zitat: &amp;quot;Now uses the MAX31855K instead of the MAX6675, so it can measure a wider temperature measurement range. Please note! the MAX31855 is not pin compatible or drop-in code compatible with the MAX6675. We do have an Arduino library for both chips but you&#039;ll need to adjust any existing MAX6675 designs for the mew MAX31855. The MAX6675 has been discontinued by Maxim.&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Es wurden 2 dieser ICs und damit 2 Temperaturmessstellen vorgesehen. Dies ermöglich die Messung für eine Regelung der Temperatur so wie eine zusätzliche Überwachung kritischer Bauteile (z.B. ICs oder LEDs). Die Minimalbestückung sieht einen MAX6675/MAX31855 vor. Die Auswahl in der Firmware erfolgt über einen der beiden GPIO-Pins RA5 oder RA0 via dem ChipSelect (CS) des MAX6675/MAX31855.&lt;br /&gt;
&lt;br /&gt;
Neben dem MAX6675/MAX31855 wurde ein Decoupling-Kondensator (C8x, Standard 100nF) so wie ein weiterer im Messpfad (C9x) zur Zwecken der Entstörung vorgeshen. C9x 100nF sollte nur bestückt werden wenn Probleme bei der Temperaturmessung entstehen (z.B. unrealstisch stark schwankende Werte).&lt;br /&gt;
&lt;br /&gt;
=== ADC, SPI, UART &amp;amp; I2C Stiftleiste ===&lt;br /&gt;
ADC, SPI, UART und I2C sind zu Zwecken der Kalibrierung / Erweiterung / Einstellung / Debugging auf Stiftleisten herausgeführt:&lt;br /&gt;
Ähnlichkeiten mit dem FTDI-USB-TTL-Kabel bzw. Arduino XXX Bla Bla Bla Schnittstellenkonverter sind natürlich rein zufällig.&lt;br /&gt;
&lt;br /&gt;
Die I2C-Schnittstelle wurde auf eine Stiftleiste geführt, um z.B. einem LM75 o.ä. anschließen zu können. Damit stehen zur Kalibrierung der Thermoelemente genaue Temperaturen zur Verfügung.&lt;br /&gt;
&lt;br /&gt;
Die Stiftleisten haben alle ein Raster von 2,54mm. So können Pin-Header, Wannenstecker oder ähnliches verwendet werden.&lt;br /&gt;
&lt;br /&gt;
Da ja viele Leute eigene Vorstellungen bezüglich der Frontplattengestaltung haben, wurden auch die Taster und LEDs auf Stiftleisten geführt.&lt;br /&gt;
&lt;br /&gt;
=== Kühlkörper ===&lt;br /&gt;
Da die Triacs der Steuerung für bis zu 10A pro Kanal ausgelegt sind, kann man auf die Kühlkörper nicht verzichten. Es fallen bei 10A bis zu 13 Watt Wärme pro Triac ab. Falls mann auf die Kühlkörper doch verzichten möchte, sollte man darauf achten, die Triacs mit dem Kopf nach unten einzubauen. Diese können sich dann bei Überlast ganz von selber auslöten.... :-)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red;&amp;quot;&amp;gt; Die Triacs müssen mit Glimmerscheibe und Isoliernippel -ALSO ISOLIERT ZUM KÜHLKÖRPER- montiert werden.&lt;br /&gt;
Außerdem muss unter dem Kühlkörper ein Stück Isolierband oder FR4 oder Nylon-Scheiben beigelegt werden, um zu verhindern, dass der Stopplack der Leiterplatte beschädigt wird. In diesem Falle hätte man Potential auf dem Kühlkörper.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Gehäuse ===&lt;br /&gt;
Die Leiterplatte wurde für ein Gehäuse von Hammond entwickelt.&lt;br /&gt;
Das Gehäuse ist zwar keine Schönheit, aber doch recht preiswert.&lt;br /&gt;
Typenbezeichnung: RM2055M oder etwas größer RM2055L&lt;br /&gt;
&lt;br /&gt;
== Firmware PIC ==&lt;br /&gt;
Die Entwicklung der Firmware für den PIC18LF2550  erfolgt mit MPLABX und dem C18 Compiler. MPLABX ist kostenlos, der C18 Compiler bis auf die stärkste Optimierungsstufe ebenfalls. Die Quellen für die Firmware sind offengelegt und können von Sourceforge bezogen werden, siehe Links, weiter unten.&lt;br /&gt;
&lt;br /&gt;
=== Programmstruktur- und ablauf ===&lt;br /&gt;
Nach anfänglicher Initialisierung des PIC startet die Statemachine [http://http://www.mikrocontroller.net/articles/Statemachine] [http://http://de.wikipedia.org/wiki/Endlicher_Automat]. Neben ihr findet in der main-Funktion nur noch die Abfrage der beiden Bedientasten statt. Mit dem Tastendruck wird zum Zwecke der Entprellung ein Timer gestartet. Alles Andere (incl. PID-Regelung, Wellenpaket- bzw. Phasenan- und Phasenabschnittssteuerung und USB) ist interruptbasiert.&lt;br /&gt;
=== Reflow-Ofen-Konfiguration ===&lt;br /&gt;
&lt;br /&gt;
=== Taktversorgung, Nulldurchgangserkennung und Zeitbasis ===&lt;br /&gt;
=== USB ===&lt;br /&gt;
=== SPI für MAX6675 ===&lt;br /&gt;
=== SPI für MAX31855 ===&lt;br /&gt;
&lt;br /&gt;
=== Wellenpaketsteuerung ===&lt;br /&gt;
=== Phasenanschnitt ===&lt;br /&gt;
&lt;br /&gt;
=== PWM für MOSFET ===&lt;br /&gt;
=== PIC-Configword ===&lt;br /&gt;
&lt;br /&gt;
=== Zuordnung Outputs ===&lt;br /&gt;
[[Datei:pinning.png|thumb|right|400px|Input/Output-Funktions-Tabelle]]&lt;br /&gt;
&lt;br /&gt;
*In1 = RC2 = PIN13 = ULN5--&amp;gt;12 = OUT1 = PWM &lt;br /&gt;
*In2 = RB3 = PIN24 = ULN6--&amp;gt;11 = OUT2 = TRIAC_A (1) = K5&lt;br /&gt;
*In3 = RB4 = PIN25 = ULN7--&amp;gt;10 = OUT3 = TRIAC_B (2)= K2&lt;br /&gt;
*In4 = RA2 = PIN4  = ULN4--&amp;gt;13 = OUT4 = LED_PRG1 = OPTO D&lt;br /&gt;
*In5 = RC0 = PIN11 = ULN3--&amp;gt;14 = OUT6 = LED_PRG2 = OPTO F&lt;br /&gt;
*In6 = RC1 = PIN12 = ULN2--&amp;gt;15 = OUT7 = LED_PRG3 = OPTO G&lt;br /&gt;
*In7 = RA3 = PIN5  = ULN1--&amp;gt;16 = OUT5 = LED_PRG4 = OPT= E&lt;br /&gt;
&lt;br /&gt;
TRIAC1 ist nahe dem Zerocross&lt;br /&gt;
&lt;br /&gt;
== PC-Software (GUI) ==&lt;br /&gt;
[[Datei:gui_alpha.png|thumb|right|300px|Screenshot der GUI (noch Alpha) für den Reflow-Ofen-Controller]]&lt;br /&gt;
&lt;br /&gt;
Die GUI (englisch Graphical User Interface) ist der Einfachheit halber in VB.net programmiert und momentan noch im Alpha-Stadium. Auch hierfür liegen die Quellen später selbstverständlich offen.&lt;br /&gt;
&lt;br /&gt;
=== Funktionen und Modi ===&lt;br /&gt;
[[Datei:modi.png|thumb|right|400px|Auswahl der beschriebenen Modi durch Klick]]&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Ofen-Profil&amp;quot;&#039;&#039;&#039; - Es wird ein Programm (Temperaturkurve) aus dem EEPROM des Reflow-Ofens ausgeführt. Der Backvorgang kann mit der Software gesteuert (START, STOP, ...) und überwacht werden. Hierzu stehen Temperatur, Temperaturänderung, Heizleistung (Ober- und Unterhitze, Lüfter) so wie die graphische Darstellung im zentralen Diagramm zur Verfügung. Eingriffsmöglichkeiten, wie das Ändern der Temperaturkurve sind nicht vorgesehen. Dies soll ein reiner Überwachungs-Modus sein. Um die Temperaturkurve zu verändern zu können, sollte der Modus &amp;quot;PC-Profil&amp;quot; verwendet werden und die Temperaturkurve aus dem EEPROM importiert werden. Dann kann Selbige auch verändert und anschließend ausgeführt bzw. verändert in den EEPROM zurückgeschrieben werden. Dieser Modus stellt ein Äquivalent zur START/STOP-Tasten-Bedienung an der Platine dar und kann selbstverständlich parallel dazu genutzt werden. Die GUI also als Addon zum Stand-Alone-Betrieb.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;PC-Profil&amp;quot;&#039;&#039;&#039; - Es wird ein Programm (Temperaturkurve) ausgeführt welche zuvor am Computer erstellt / editiert wurde. In diesem Modus gibt der Computer Temperaturwerte vor, welche live über die USB-Schnittstelle zum PIC übertragen werden und mit dem dort integrierten PID-Regler ausgeführt werden. Das ermöglicht eine on-the-fly Veränderung der Temperaturkurve während des Backvorgangs. Temperaturkurven können aus Dateien oder dem EEPROM importiert und auch wieder exportiert werden. CSV-Dateien können ebenfalls importiert und exportiert werden. Die &amp;quot;Eingabe&amp;quot; der Temperaturkurve erfolgt entweder über Import (CSV/EEPROM), per Mausklick auf dem zentralen Diagramm oder im sog. DataGridView. Weiteres siehe Unterpunkt &amp;quot;Eingabe der Temperaturkurve (Reflowprofil)&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;manueller Ablauf&amp;quot;&#039;&#039;&#039; - In diesem Modus wird (im Gegensatz zu den oberen beiden Modi &amp;quot;Ofen-Profil&amp;quot; und &amp;quot;PC-Profil&amp;quot;) keine Temperatur geregelt. Hier wird die Leistung des Ofens in % eingestellt und gesteuert. Der PID-Regler ist nicht in Aktion. Die Temperatur, Temperaturänderung so wie der Temperaturverlauf werden selbstredend angezeigt bzw. im Diagramm dargestellt. Der Modus &amp;quot;manueller Ablauf&amp;quot; fährt ähnlich dem Modus &amp;quot;PC-Profil&amp;quot; die im DataGridView eingetragenen Leistungs-Zeit-Punkte ab. Für jeden Zeitpunkt ist eine Leistung vorgegeben. Die Eingabe erfolgt ähnlich wie unter &amp;quot;Eingabe der Temperaturkurve (Reflowprofil)&amp;quot; beschrieben. Nur eben, dass eine Leistung und keine Temperatur angegeben wird. Die Eingabe der Leistung kann nicht im Zeit-Temperatur-Diagramm erfolgen sondern mittels der Schieberegler oder direkt tabellarisch.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;manueller Modus&amp;quot;&#039;&#039;&#039; - Dieser Modus enthält 2 Submodi&lt;br /&gt;
** &amp;quot;manueller Leistungsmodus&amp;quot; - Auch in diesem Modus wird die Leistung gesteuert. Es wird keine Temperatur geregelt, der PID-Regler für die Temperatur ist nicht in Betrieb. Die Einstellung hier erfolgt über die drei Schieberegler oder über eine numerische Eingabe durch Klick auf die Leistungsangabe unter dem Schieberegler. Durch Klick auf die Texte &amp;quot;TOP&amp;quot;, &amp;quot;BOTTOM&amp;quot;, &amp;quot;FAN&amp;quot; (Oberhitze, Unterhitze, Lüfter) können selbige deaktiviert bzw. aktiviert werden. Auch in diesem Modus wird Temperatur, Temperaturänderung so wie der Temperaturverlauf dargestellt.&lt;br /&gt;
** &amp;quot;manueller Temperaturmodus&amp;quot; - Hier wird die Temperatur wieder mittels des Temperatur-PIDs geregelt. Die Temperatur wird entweder mittels Schieberegler (Ober- und Unterhitze-Regler sind jetzt gekoppelt) oder durch eine numerische Eingabe unterhalb der Schieberegler vorgegeben. Anzeige wie im &amp;quot;manuellen Leistungsmodus&amp;quot;. Der Lüfter kann unabhängig vom PID in seiner Leistung geregelt werden. Ein evtl. durch den Luftstrom verursachter Temperaturabfall wird vom PID selbstverständlich ausgeregelt (aus diesem Grunde ist es ja ein Regler).&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Programmieren&amp;quot;&#039;&#039;&#039; - Hier kann ein neues &#039;&#039;&#039;Temperatur&#039;&#039;&#039;-Programm für den EEPROM-Speicher des Ofens erstellt und editiert werden. Die Eingabemöglichkeiten sind unter &amp;quot;Eingabe der Temperaturkurve (Reflowprofil)&amp;quot; beschrieben. Dieser Modus ist zum reinen Programmieren des Ofens gedacht und ermöglicht keine weitere Steuerung oder Überwachung des Ofens.&lt;br /&gt;
&lt;br /&gt;
=== Eingabe der Temperaturkurve (Reflowprofil) ===&lt;br /&gt;
[[Datei:datagridview.png|thumb|right|400px|tabellarische Anzeige und Editiermöglichkeit der Temperaturkurve]]&lt;br /&gt;
Die Eingabe der Temperaturkurve erfolgt entweder über Import (CSV/EEPROM), per Mausklick auf dem zentralen Diagramm oder im sog. DataGridView (Excel-ähnliche Bedienung in tabellarischer Form). &lt;br /&gt;
&lt;br /&gt;
* CSV-Import + Export&lt;br /&gt;
* EEPROM-Import + Export&lt;br /&gt;
* Im rechts stehenden Screenshotbeispiel wird eine tabellarische Eingabeform mit einem DataGridView gezeigt: Die Temperatur (erster Temperaturpunkt = Punkt 0) von 100°C wird linear über einen Zeitraum von 0-30s verteilt. Bei 30s hat der Ofen die Temperatur von 100°C. Dafür setzt die Regelung die Oberhitze, die Unterhitze ein. Der Lüfter ist deaktiviert. In der Zeit von 30s bis 120s wird die Temperatur nun von 100°C auf 150°C linear angehoben. Von 120s bis 180s Backzeit steigt die Temperatur von 150°C auf 250°C. Von 180s bis 200s wird die Temperatur auf 280°C angehoben. Anschließend wird sie zwischen 200s und 220s auf 280°C gehalten (280°C@200s und 280°C@220s) um dann bis 240s wieder auf 250°C zu fallen. Bis zum Zeitpunkt 300s wird dann die Temperatur 30°C angestrebt. Zusätzlich ist der Lüfter nun aktiviert (soweit der Ofen eine Umluftfunktion besitzt). Bei Punkt 7 sind Ober- und Unterhitze deaktiviert nur noch der Lüfter kühlt. Da hier bei &amp;quot;Zeit[s]&amp;quot; die 0 eingetragen wird der Zustand (hier nur Lüfter an) für einen unendlich langen Zeitraum auf 0 gehalten. Also so lange wie das Programm aktiviert ist wird der Lüfter laufen. Natürlich könnte man hier auch z.B. 100°C und Zeitpunkt 0s eintragen. Dann würde der Ofen bis zum manuellen Beenden des Programms (klick auf STOP-Button oder Drücken des START/STOP-Tasters auf der Platine/Steuerung) 100°C halten.&lt;br /&gt;
* Alle Zellen des DataGridView sind editierbar (zur Veränderung der Temperatur, Zeitpunkt, ...)&lt;br /&gt;
* Direkter Klick auf das zentrale Temperatur-Zeit-Diagramm trägt den Zeitpunkt so wie die Temperatur unter dem Mauszeiger in die Tabelle (das DataGridView) ein. Die ausgewählte Zeile wird beschrieben oder überschrieben. Neue Zeilen (also Temperatur-Zeit-Punkte) können durch klick auf den &amp;quot;Plus-Button&amp;quot; hinzugefügt werden. Ebenso ist das Löschen oder Verschieben einer oder mehrerer Zeile gleichzeitig möglich.&lt;br /&gt;
&lt;br /&gt;
=== Beschreibung der Steuerungsmöglichkeiten ===&lt;br /&gt;
In Abhängigkeit des gewählten Modus bestehen einige Steuerungs-, Einstellungs- und Kontrollmöglichkeiten:&lt;br /&gt;
* &#039;&#039;&#039;Schieberegler&#039;&#039;&#039; für Temperatur od. Leistung (je nach Modus) für Oberhitze, Unterhitze und Lüfter. Je nach Hardwareausführung. &lt;br /&gt;
** Klick auf &amp;quot;TOP&amp;quot;, &amp;quot;BOTTOM&amp;quot; oder &amp;quot;FAN&amp;quot; aktiviert oder deaktiviert die entsprechende Funktion bzw. Hardware.&lt;br /&gt;
** Numerische Eingabe der Werte für die Schieberegler durch Klick auf die Anzeige unterhalb der Schieberegler. Werte können auch im deaktivierten Zustand angegeben werden. Die Übernahme erfolgt durch den &amp;quot;Aktivierungsklick&amp;quot; auf &amp;quot;TOP&amp;quot;, &amp;quot;BOTTOM&amp;quot; oder &amp;quot;FAN&amp;quot;&lt;br /&gt;
* &#039;&#039;&#039;T1, dT1, T2, dT2&#039;&#039;&#039; - Anzeige der gemessenen Temperatur so wie die momentane Temperaturänderung am jeweiligen Sensor. &lt;br /&gt;
* &#039;&#039;&#039;Bedienbuttons&#039;&#039;&#039;&lt;br /&gt;
** Play - Startet das Programm am angegebenen Startpunkt (siehe unten)&lt;br /&gt;
** Pause - Pausiert das Programm - weitere Pauseoptionen siehe unten&lt;br /&gt;
** Stop - Stopt den Programmablauf&lt;br /&gt;
** Vor / Zurück - Springt zwischen Temperaturpunkten hin und her. Dient zum überspringen oder zurückspringen zu gewissen Temperatur-Zeit-Punkten. Ermöglicht z.B. das Überspringen eines Ablaufes der eine lange Preheat- oder Dryphase hat.&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Status&amp;quot;&#039;&#039;&#039; - zeigt den aktuellen Zustand des Programms an (READY, START, WAITING, PAUSE, ...)&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;RESET&amp;quot;&#039;&#039;&#039; - setzt das (begonnene) Programm zurück. Beinhaltet neben dem Programmablauf auch das Zurücksetzen der graphischen Anzeige des Diagramms, etc.&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Startpunkt&amp;quot;&#039;&#039;&#039; - legt den ersten Punkt des Programmablaufes fest. &lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Wiederholungen&amp;quot;&#039;&#039;&#039; - ermöglicht das wiederholte Backen ohne das Programm händisch immer wieder neu starten zu müssen. Die Anzahl der Wiederholungen ist einstellbar (0 für unendlich viele) und es ist eine Wartezeit zwischen den Wiederholungen einstellbar. Alternativ kann eine Meldung nach jedem vollendeten Backvorgang abgegeben werden. Nach Bestätigung dieser wird die nächste Wiederholung ausgeführt.&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Pause&amp;quot;&#039;&#039;&#039; - Pauseneinstellungen. Hier sind Optionen wählbar was passieren soll, falls der Pausebutton betätigt wird:&lt;br /&gt;
** Pausezeit - gibt an wie lange die Pause dauern soll [s], danach fährt das Programm automatisch gemäß des gewählten Pausemodus fort. Für eine Pause ohne automatisches Fortfahren (Countdowntimer) &#039;0&#039; angeben.&lt;br /&gt;
** Pausemodus &amp;quot;aktuelle Temperatur halten, WarmUp, Fortsetzen&amp;quot; - Ofen hält die Temperatur (Zieltemperatur) des Zeitpunktes als der Pausebutton betätigt wurde. WarmUp bedeutet, dass nach dem Beenden des Pausemodus zunächst die Zieltemperatur wieder erreicht werden &#039;&#039;&#039;muss&#039;&#039;&#039; bevor der nächste Punkt angesteuert wird. Klingt paradox, wenn die Temperatur doch so und so gehalten wird, ist aber nicht so. Die Wahrscheinlichkeit ist hoch, dass der Pausemodus benutzt wird um die Ofentüre zu öffnen und Korrekturen an der Platine vorzunehmen. Unter Umständen ist die Heizung des Ofens jedoch nicht in der Lage den dadurch entstehenden Wärmeverlust zu kompensieren. Fährt das Programm dann sofort fort, so könnten evtl. kritische (Hoch-)Punkte des Lötprofils &amp;quot;unterfahren&amp;quot; werden. Dem wirkt WarmUp entgegen.&lt;br /&gt;
** Pausemodus &amp;quot;aktuelle Temperatur halten, Fortsetzen&amp;quot; - siehe oben, nur ohne WarmUp.&lt;br /&gt;
** Pausemodus &amp;quot;definierte Temperatur halten, WarmUp, Fortsetzen&amp;quot; - siehe oben. Statt der aktuellen Zieltemperatur wird jedoch nun im Pausemodus eine einzustellende Pausetemperatur gehalten. Mit WarmUp.&lt;br /&gt;
** Pausemodus &amp;quot;definierte Temperatur halten, Fortsetzen&amp;quot; - siehe oben, nur ohne WarmUp.&lt;br /&gt;
** &amp;quot;Pausetemperatur&amp;quot; - spezielle Temperatur die bei entsprechender Pausemoduswahl für die Dauer der Pause gehalten wird.&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Ende&amp;quot;&#039;&#039;&#039; - gibt an was am Ende eines durchlaufenen Reflow-Programms passieren soll. Ist der Wiederholungsmodus aktiviert, tritt dieses Ereignis erst nach Durchlauf aller Wiederholungen ein. Folgende Modi sind möglich:&lt;br /&gt;
** automatischer Reset - am Ende des Programms wird alles automatisch zurückgesetzt, alle Graphiken und Anzeigen gelöscht.&lt;br /&gt;
** manueller Reset - am Ende des Programms bleiben alle Anzeigen, Graphiken, etc erhalten und müssen vor Beginn eines neuen Reflowvorgangs händisch durch Klick auf &amp;quot;RESET&amp;quot; zurückgesetzt werden.&lt;br /&gt;
** Benutzermeldung - lässt eine Meldung erscheinen. Alle Anzeigen und Graphiken bleiben erhalten bis der Benutzer diese Meldung bestätigt. Mit Bestätigung dieser Meldung wird ein automatischer Reset vorgenommen.&lt;br /&gt;
&lt;br /&gt;
=== Loggen des Temperaturverlaufes ===&lt;br /&gt;
Es ist möglich jeden Backvorgang in eine CSV-Datei zu loggen. (Software- und PID-Einstellungen). Geloggte CSV-Dateien können eingelesen und im zentralen Temperatur-Zeit-Diagramm begutachtet werden. Ein Ist-Soll-Vergleich ist ebenso möglich wie die direkte Anzeige des Fehlers (&amp;quot;Ist minus Soll&amp;quot;). Dank CSV können die Daten auch mit anderen Programmen (Excel, etc.) weiterverarbeitet werden.&lt;br /&gt;
&lt;br /&gt;
== Ofen / Pizzaofen ==&lt;br /&gt;
=== Leistung und Volumen ===&lt;br /&gt;
* Alls Faustformel wird oft 100W pro Liter Volumen genannt.&lt;br /&gt;
* Ich habe einen sehr preiswerten Ofen gewählt und die &amp;quot;Oberhitze&amp;quot; zusätzlich mit zwei Halogen-Stäben a 300W &amp;quot;verstärkt. Das kostet nicht viel, die Fassung ist für ca. 3 Euro erhältlich, die Halogenstäbe gibt es in jedem Baumarkt. &lt;br /&gt;
* Bezugsquelle Fassung : siehe &amp;quot;Links&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Dämmung ===&lt;br /&gt;
=== Umluft ===&lt;br /&gt;
* Der verwendete Ofen sollte eine Umluftfunktion besitzen, damit sich die Wärme gleichmäßig im Ofen und auf der Leiterplatte verteilen kann.&lt;br /&gt;
&lt;br /&gt;
== FAQ ==&lt;br /&gt;
&lt;br /&gt;
* Q1: Ich habe einen PT100/PT1000 und möchte den anschließen. Geht das?&lt;br /&gt;
** A1: Ja natürlich. Dazu ist aber etwas externe Elektronik notwendig. Sowohl 2 ADC-Pins (mit 3V3 Betriebsspannung als fixe Referenzspannung), als auch die UART und SPI/I2C-Schnittstelle stehen zur freien Verfügung. Für PT100/PT1000 wird für vernünftige Messungen ohnehin eine Verstärkung (meist mit OPV) von Nöten sein. Da der PIC-interne ADC &amp;quot;nur&amp;quot; 10bit Auflösung bietet sollte ein externer 16bit ADC in Betracht gezogen werden um das Potential der PT100/PT1000 auszunutzen.&lt;br /&gt;
*Q2: Ich habe von günstigen Temperaturmessungen mit Dioden gehört. Geht das auch hier?&lt;br /&gt;
**A2: Ja. Die Vorwärtsspannung einer Diode verhält sich linear zur Sperrschichttemperatur. Diese Spannung (bei 25°C einer Si-Diode die bekannten 0,7V) kann mittels OPV verstärkt werden und auf einen Spannungsbereich von 0 ... 3V3 aufgebläht werden. Eine billige Lösung, auf Kosten der Genauigkeit. Doch eine Diode ist laut Datenblatt nur bis 150°C geeignet. Es ist also beim Löten mehr oder weniger Pfusch. Wenn ich schon eine Reflow-Steuerung baue, sollte ich doch nicht an ein paar Euro für eine gescheite Temperaturmessung sparen. Einige Anregungen vom Messgerätehersteller Keithley bzgl. der Halbleiterphysik mit interessanten Formeln [http://www.keithley.de/support/data?asset=50486]. Oder natürlich der Klassiker von Thomas Pfeifer [http://thomaspfeifer.net/backofen_smd_reflow.htm]. Oder ein Beitrag mit LT-Spice Simulation zum Thema [http://www.mikrocontroller.net/topic/270627#2833883].&lt;br /&gt;
* Q: God why ... ?&lt;br /&gt;
** A: Because we can !&lt;br /&gt;
*Q: Ich hab aber noch nie was mit 230V gemacht.&lt;br /&gt;
**A: Dann würde ich an Deiner Stelle dieses Projekt NICHT nachbauen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Verbesserungen Prototyp - Diese haben jedoch keinen Einfluss auf die Funktion der Leiterplatte===&lt;br /&gt;
* Bauteile weiter weg von den Schraublöchern.&lt;br /&gt;
* Dazu Kreis rund um Bohrung auf Bestückdruck.&lt;br /&gt;
* Masseanbindung Quarz.&lt;br /&gt;
* Klemmen weiter weg vom Rand.&lt;br /&gt;
* Klemme und Sicherungshalter weiter auseinander.&lt;br /&gt;
* Bohrungen für Drossel 0,2mm größer machen.&lt;br /&gt;
* Teilenummer für Conrad-USB-Buchse in BOM übernehmen.&lt;br /&gt;
* Stiftleiste P1  weiter weg von P2 und P4.&lt;br /&gt;
* Varistoren näher an Klemmen platzieren.&lt;br /&gt;
* THT-Kondensatoren für Snubber.&lt;br /&gt;
* Ggf. Stiftleistenbelegung für externe Leds so ändern, das keine extra Vorwiderstände notwendig sind.&lt;br /&gt;
* Befestigungsbohrung für Drossel, um diese mit Kabelbinderung oder Schraube fixieren zu können.&lt;br /&gt;
* Pullup-Widerstand bei MCLR doppelt. &lt;br /&gt;
* Power-LED vorsehen.&lt;br /&gt;
* Leiterbahnen etwas weiter weg von den Kühlkörperanschlüssen&lt;br /&gt;
* Designatoren Texte etwas größer machen.&lt;br /&gt;
* Ein vernünftiger GND-Punkt für einen Tastkopf / Messungen / Aligator-Clips vorsehen.&lt;br /&gt;
&lt;br /&gt;
= Errata Projekt =&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:red;&amp;quot;&amp;gt; Triac Symbol in Library falsch, dadurch ist T2 mit T1 vertauscht. Abhilfe für Leiterplattenversion V1.0: T1 und T2 &amp;quot;twisten&amp;quot; und jeweils mit Schrumpfschlauch versehen.( Also Beinchen T1 über kreuz mit Beinchen T2 einlöten...)&amp;lt;/span&amp;gt;&lt;br /&gt;
* Beim MOSFET R39 ist die Masseanbindung falsch. Es bestehen drei Möglichkeiten:&lt;br /&gt;
** 1. 0-R-Brücke für R39 einbauen und auf Strombegrenzung verzichten.&lt;br /&gt;
** 2. Eine Polyfuse mit Bauform 1206 einbauen. &lt;br /&gt;
** 3. Das kleine Leiterbahnstückchen zwischen R38 und R39 unterbrechen und statt dessen die Leiterbahn zwischen R39 und der Klemme mit der Durchkontaktierung bei R38 verbinden.&lt;br /&gt;
* LED-Beschriftung passt nicht ganz (Schaltplan Netlabel OUT1,2,3,4 sind durcheinander gekommen) --&amp;gt; Ist im Prinzip ohne Belang, man muss das nur bei der Software berücksichtigen.&lt;br /&gt;
* Schaltplan UNL2003 fehlerhafte Zuordnung IN5,6,7 &amp;lt;&amp;gt; OUT7,6,5 --&amp;gt; Ist im Prinzip ohne Belang, man muss das nur bei der Software berücksichtigen.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* Diskussion: [http://www.mikrocontroller.net/topic/297217 Diskussion]&lt;br /&gt;
* Software: [http://sourceforge.net/projects/reflowofensteue/ Bei Sourceforge]&lt;br /&gt;
* Dextrel Nulldurchgang: [http://www.dextrel.net/diyzerocrosser.htm Nulldurchgangschaltung]&lt;br /&gt;
* Gehäuse Zeichnung: [http://www.hammondmfg.com/pdf/RM2055L.pdf Großes Gehäuse für Steckdosenmontage]&lt;br /&gt;
* Gehäuse Zeichnung: [http://www.hammondmfg.com/pdf/RM2055M.pdf Kleines Gehäuse, keine Steckdosen]&lt;br /&gt;
* Bezugsquelle [http://www.soselectronic.com/?str=371&amp;amp;artnum=73596&amp;amp;name=hammond-ritec-rm2055l Großes Gehäuse Hammond]&lt;br /&gt;
* Bezugsquelle [http://www.soselectronic.com/?str=371&amp;amp;artnum=73595&amp;amp;name=hammond-ritec-rm2055m Kleines Gehäuse Hammond]&lt;br /&gt;
* Bezugsquelle [http://www.druckerzubehoer.de/shop/product/catid/H-UNIVERSALZUBEHOER_HZB/subcatid/UNIVERSALZUBEHOER_GROUP1_HZB/productid/1727063-390722LA/site/1/lng/de_DE Netzteil Mini USB ]&lt;br /&gt;
* Bezugsquelle [http://www.ebay.de/itm/151037292125?ssPageName=STRK:MEWNX:IT&amp;amp;_trksid=p3984.m1497.l2649 Termoelement Ebay (Typ K für ca. 2Euro)]&lt;br /&gt;
* Bezugsquelle [http://www.artcase-shop.de/index.php?page=search&amp;amp;page_action=query&amp;amp;desc=on&amp;amp;sdesc=on&amp;amp;keywords=pce+105&amp;amp;x=0&amp;amp;y=0 Steckdosen für Schalttafeleinbau:]&lt;br /&gt;
* Bezugsquelle [http://www.schaeffer-ag.de/ Frontplatten]&lt;br /&gt;
* Bezugsquelle [http://www.lichtlieferant.de/catalogsearch/result/?q=r7s+fassung+sockel Vossloh Fassung R7S für Halogenstäbe]&lt;br /&gt;
* Datenblatt Prozessor [http://ww1.microchip.com/downloads/en/DeviceDoc/39632e.pdf PIC18LF2550]&lt;br /&gt;
* Umfangreicher Thread u.A. Leistungsvermögen, Temperaturmessung und Dämmung [http://www.mikrocontroller.net/topic/270627]&lt;br /&gt;
[[Kategorie:PIC-Projekte]]&lt;/div&gt;</summary>
		<author><name>Frankman</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=Reflow_Ofen_Steuerung&amp;diff=80568</id>
		<title>Reflow Ofen Steuerung</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=Reflow_Ofen_Steuerung&amp;diff=80568"/>
		<updated>2014-01-03T10:54:53Z</updated>

		<summary type="html">&lt;p&gt;Frankman: /* MOSFET-Leistungsausgang */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Datei:RFB.jpg|thumb|right|200px|Altium 3D Ansicht]]&lt;br /&gt;
[[Datei:Teilbest2.jpg|750px|teilbestückte Platine]]&lt;br /&gt;
== Einleitung ==&lt;br /&gt;
[[Datei:pcb.png|thumb|right|400px|unbestücktes PCB der Reflow-Ofen-Steuerung]]&lt;br /&gt;
Hier wird eine weitere Reflow-Ofen-Steuerung beschrieben.&lt;br /&gt;
=== Zum Nachbauen ===&lt;br /&gt;
* Spezifikation: [[Datei: Spec Reflow.pdf]]&lt;br /&gt;
* Schaltplan: &lt;br /&gt;
** Minimalversion [[Datei:Schematic Prints Minimal.pdf]]&lt;br /&gt;
** Standardversion [[Datei:Schematic Prints Standard.pdf]]&lt;br /&gt;
** Deluxeversion [[Datei:Schematic Prints Deluxe.pdf]]&lt;br /&gt;
** Debugversion [[Datei:Schematic Prints Debug.pdf]]&lt;br /&gt;
* Gerberdaten: [[Datei:Gerber Reflow.pdf]]&lt;br /&gt;
* Assemblydrawing: [[Datei:Assembly Reflow.pdf]] &lt;br /&gt;
* Altium-Files: [[Datei:Reflow.zip]]&lt;br /&gt;
* Stückliste als CSV: [[Datei:Reflow.csv]]&lt;br /&gt;
* Stückliste als Open Office: [[Datei:Reflow.ods]]&lt;br /&gt;
* PC Programm: TBD&lt;br /&gt;
* Sourcen PC-Programm: TBD&lt;br /&gt;
* PIC Programm (*.hex): [http://sourceforge.net/projects/reflowofensteue/ ]&lt;br /&gt;
* Sourcen Pic-Programm: [http://sourceforge.net/projects/reflowofensteue/ ]&lt;br /&gt;
* Step-File Steckdose:[[Datei:Steckdose.stp]]&lt;br /&gt;
&lt;br /&gt;
=== Motivation ===&lt;br /&gt;
Die Gründe, eine weitere Steuerung zu entwerfen, waren:&lt;br /&gt;
&lt;br /&gt;
* Die Möglichkeit, auch größere Öfen mit 2 Phasen betreiben zu können.&lt;br /&gt;
* Die Steuerung universell zu gestalten. Es sollte möglich sein, diese nicht nur zum Reflow löten zu verwenden....z.B:&lt;br /&gt;
** Temperatursteuerung für Klimakammer (Heizen, Kühlen)&lt;br /&gt;
** Dimmer mit USB&lt;br /&gt;
** Temperaturregler für ein Tisch-Fondue ( Temperatur halten)&lt;br /&gt;
** Drehzahlsteller mit USB&lt;br /&gt;
** Switchpack&lt;br /&gt;
* Die Schaltung sollte in Altium entwickelt werden. (Warum kein Eagle??? Altium User wissen es.... :-)&lt;br /&gt;
* Die Schaltung sollte mit USB ausgestattet sein.&lt;br /&gt;
&lt;br /&gt;
=== Eigenschaften &amp;amp; Spezifikationen ===&lt;br /&gt;
* Temperaturmessung: bis zu 2x &#039;&#039;&#039;Thermoelement&#039;&#039;&#039; (K-Typ) mit MAX6675 (abgekündigt) oder Nachfolger MAX31855 (pin- aber nicht softwarekompatibel)&lt;br /&gt;
* Leistungsstufen: &#039;&#039;&#039;3 voneinander unabhängige&#039;&#039;&#039; Triacs 800V 25A, limitiert auf &#039;&#039;&#039;10A @ 250VAC&#039;&#039;&#039; (z.B. Oberhitze, Unterhitze, Umluft)&lt;br /&gt;
* Nulldurchgangserkennung ermöglicht Wellenpaket-, und Phasenabschnittssteuerung * Galvanische Trennung der Leistungsendstufen&lt;br /&gt;
* 1x MOSFET-Ausgang PWM z.B. für 12V Lüfter, max. &#039;&#039;&#039;55V 3,5A&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;4 feste Programme&#039;&#039;&#039; im EEPROM über 2-Tasterbedienung und LEDs wähl- und ausführbar. &lt;br /&gt;
* &#039;&#039;&#039;PC-unabhängiger Betrieb&#039;&#039;&#039; möglich. &lt;br /&gt;
* Beliebig viele Programme möglich, bei Betrieb am Computer &lt;br /&gt;
* Mini-USB-Buchse zur Steuerung / Programmierung über GUI und zum Entwickeln. - Dafür ist &#039;&#039;&#039;keine Netzspannung&#039;&#039;&#039; erforderlich&lt;br /&gt;
* Günstiges passendes Gehäuse&lt;br /&gt;
* Alle LEDs und Taster auf &#039;&#039;&#039;Stiftleisten&#039;&#039;&#039; herausgeführt, für eigene Gestaltung der Frontblenden&lt;br /&gt;
* PID-Temperaturregler&lt;br /&gt;
* UART, SPI, I2C und 2x ADC auf Stiftleisten herausgeführt, für zukünftige &#039;&#039;&#039;Erweiterungen&#039;&#039;&#039;&lt;br /&gt;
* Versorgung über USB &amp;lt; 100mA, interne Versorgungsspannung 3,3V&lt;br /&gt;
* umfangreiche EMV-gerechte Entstörung für den Bedarfsfall&lt;br /&gt;
&lt;br /&gt;
=== Zusätzliches Benötigtes Material ===&lt;br /&gt;
* Leiterplatte (1 Stück)&lt;br /&gt;
* Gehäuse Hammond Teilenummer: RM2055L (1 Stück)&lt;br /&gt;
* Alternativ:Gehäuse Hammond Teilenummer: RM2055M (Wenn keine Steckdosen angebracht werden sollen)&lt;br /&gt;
* Alternative: Gehäuse Hammond (Hier muss man die Leiterplatte selber befestigen) Teilenummer: 1455T2201 (1 Stück)&lt;br /&gt;
* Einbausteckdosen Teilenummer: PEC 105 (2-3 Stück, je nach Ausbaustufe)&lt;br /&gt;
* PG-Verschraubung (2-3 Stück)&lt;br /&gt;
* Mutter für PG-Verschraubung (2 Stück)&lt;br /&gt;
* Litze blau, mindestens 1,5mm² (ca. 60cm)&lt;br /&gt;
* Litze braun, mindestens 1,5mm² (ca. 60cm) &lt;br /&gt;
* Litze gelb/grün, mindestens 1,5mm² (ca. 60cm)&lt;br /&gt;
* Aderendhülsen  mit Schutzkragen dazu ( 9 Stück für die Steckdosen)&lt;br /&gt;
* Schrauben, um die Leiterplatte zu befestigen (4 Stück)&lt;br /&gt;
* evtl. Abstandsbolzen dazu, falls das alternative Gehäuse verwendet wird (4 Stück)&lt;br /&gt;
* evtl. Muttern dazu, falls das alternative Gehäuse verwendet wird (4 Stück)&lt;br /&gt;
* Schrauben, Senkkopf DIN 7991 oder DIN 965 M4 X 10 um die Steckdosen zu befestigen (12 Stück)&lt;br /&gt;
* Muttern dazu M4 (12 Stück)&lt;br /&gt;
* Federschreiben  dazu DIN 127 M4 (12 Stück)&lt;br /&gt;
* Glimmerscheiben für Triac (2-3 Stück, je nach Ausbaustufe)&lt;br /&gt;
* Isoliernippel für Triacmontage (2-3 Stück, je nach Ausbaustufe)&lt;br /&gt;
* Zylinderkopfschraube M3 X 12 für Triacmontage (2-3 Stück, je nach Ausbaustufe)&lt;br /&gt;
* Mutter M3 für Triacmontage (2-3 Stück, je nach Ausbaustufe)&lt;br /&gt;
* Beilagscheibe M3 für Triacmontage (2-3 Stück, je nach Ausbaustufe)&lt;br /&gt;
* Isolierband für Triacmontage (ca. 300mm)&lt;br /&gt;
* Gummifüße für das Gehäuse (4 Stück)&lt;br /&gt;
&lt;br /&gt;
=== Kühlkörpermontage===&lt;br /&gt;
* Der Kühlköper sollte 38mm hoch sein, so passt er gut in die angegebenen Gehäuse&lt;br /&gt;
* Der Kühlkörper MUSS isoliert montiert werden, also Glimmerscheibe und Isoliernippel einsetzen und NACHMESSEN, ob der Kühlkörper auch wirklich keinen Kontakt zum Triac hat!&lt;br /&gt;
* Da die 230-V-Leiterbahnen nur durch den Stopplack vom Kühlkörper getrennt sind, sollte die Isolation mit zwei Lagen Gewebe- oder Isolierband verstärkt werden. Das Isolierband kann auf die Leiterplatte oder unter den Kühlkörper geklebt werden.&lt;br /&gt;
* Als Bohrungsmaß empfehle ich 20mm über der Leiterplatte.&lt;br /&gt;
* Entweder Bohrung 3,2mm für Durchgangsloch &lt;br /&gt;
* Oder Bohrung 2,5mm mit M3-Gewinde&lt;br /&gt;
&lt;br /&gt;
== Schaltung==&lt;br /&gt;
=== PIC18LF2550 Grundbeschaltung ===&lt;br /&gt;
[[Datei:osc_vs_vcc.png|thumb|right|200px|Taktraten und Versorgungsspannung PIC18F2550 vs. PIC18LF2550, Datenblatt S. 370/438]]&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 3/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Hier kommt ein PIC18&#039;&#039;&#039;L&#039;&#039;&#039;F2550 zum Einsatz. Er verfügt über eine USB-Schnittstelle und ist für Betriebsspannungen von 2 ... 5,5V ausgelegt. Sein Verwandter PIC18F2550 (ohne L) ist nicht für Betriebsspannungen &amp;lt; 4,2V ausgelegt. Dies ist bei USB sowieso nicht immer erfüllt und die Thermoelement-ICs vertragen ohnehin keine 5V, daher wurde die Betriebsspannung auf 3,3V reduziert. Neben Standard-Decoupling (100nF Kerko pro Vcc-Vss-Pärchen) wurde das ICSP-Interface in alt bewährter Pinbelegung (PICKit1,2,3) angebracht. PGD und PGC sind nicht weiter beschaltet, MCRL wird , wie immer als Resetpin verwendet. Der Resetschalter findet sich auf dem Top-Sheet (Schaltplan S. 1/22). Die Taktversorgung erfolgt über einen 24 MHz Quarz (-&amp;gt; USB). Man beachte diesbezüglich rechts stehende Grafik zu Taktraten und Versorgungsspannungen (Vdd bzw. auch Vcc genannt). Auch zu finden im Datenblatt des PICs auf Seite 370.&lt;br /&gt;
&lt;br /&gt;
=== PIC18LF2550 USB Beschaltung ===&lt;br /&gt;
[[Datei:usb_part.png|thumb|right|200px|PIC18(L)F2550&lt;br /&gt;
 Standard &lt;br /&gt;
USB-Beschaltung am PIC]]&lt;br /&gt;
[[Datei:usb_protect.png|thumb|right|200px|USB-Schutzbeschaltung und Mini-USB-Buchse]]&lt;br /&gt;
&lt;br /&gt;
Die Beschaltung der USB-Schnittstelle am PIC ist 1:1 aus dem Datenblatt übernommen. Zum Einsatz kommt eine Mini-USB-Buchse (J1).&lt;br /&gt;
Der Gedanke war: Erstens ein sehr preiswertes, fertiges Netzteil verwenden zu können, (ca. 3,67 € bei druckerzubehoer.de) und zweitens, die Steuerung auch mit dem PC / Laptop versorgen zu können.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 4/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
FER1,2 und C7 filtern den Schirm nach GND. Standardmäßig wird man hier wohl 0-Ohm-Widerstände einsetzen. Falls ein Besuch im EMV-Labor geplant ist, weicht man auf den Ferrit aus. C5 und C6 filtern das Signal zusammen mit der Common-Mode-DrosselL1. Die Drossel kann mit den 0-Ohm-Brücken R8 und R9 überbrückt (gespart) werden. IC2 ist als ESD-Schutz gedacht und kann ebenfalls bei ausgeprägten Kostenbewustsein gespart werden. Die Widerstände R6 und R7 dürfen NICHT bestückt werden. FER1,2, C5, IC2 müssen nicht zwingend bestückt werden. Die Bestückung wurde vorgehalten um im Problemfall einfache Abhilfe schaffen zu können.&lt;br /&gt;
&lt;br /&gt;
=== 3,3V Spannungsversorgung ===&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 2/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Die 3,3V Versorgungsspannung für die gesamte Platine wird aus V_USB mittels des LDO Spannungsreglers TOREX - XC6206P332MR abgeleitet. Günstig, SOT-23, klein, 2x 1µF Kondensatoren benötigt, 3,3V max. 250mA. Der hat auch einen sehr kleinen Ruhestrom.&lt;br /&gt;
&lt;br /&gt;
=== Taster ===&lt;br /&gt;
*Der Resettaster zieht den MCLR-Pin nach GND und löst damit den Reset aus. MCLR  ist mit einem 10k Pullup versehen.&lt;br /&gt;
*Die übrigen beiden Taster ziehen RA4 bzw. RB5 ebenfalls nach GND.&lt;br /&gt;
&lt;br /&gt;
=== LEDs + ULN2003L ===&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 11/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Um alle LEDs auf der Platine (3x Optotriac + 7x Status) ansteuern zu können wurde auf das 7fach Darlington-Array ULN2003L zurückgegriffen. Die PIC-Ausgänge könnten zwar die LEDs direkt steueren. Aber so werden alle Ausgänge einheitlich nach Masse geschaltet. Das verbessert die Testbarkeit der ganzen Platine. ( Mit einem kurzen Masse-Draht kann zur Not der entsprechende Ausgang gesetzt werden, ohne etwas zu zerstören.)&lt;br /&gt;
&lt;br /&gt;
=== MOSFET-Leistungsausgang ===&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 22/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Hier kommt der einfacher N-Kanal MOSFET (LogicLevel) PHT8N06LT zum Einsatz. Er wird über das ULN2003L Array getrieben und ermöglicht den Anschluss eines DC-Verbrauchers mit max. 55V bei 3,5A. Hier könnte beispielsweise ein PC-Lüfter zur Kühlung oder für Umluft angeschlossen und über PWM geregelt/gesteuert werden. Ein Gatewiderstand von 100 Ohm ist zum Schutz des Treibers vorgesehen. Eine 0-Ohm-Brücke ist stattdessen aber auch möglich, wenn man eine höhere Leistung schalten möchte.Die Leiterbahnen sollten die 3A schon hergeben. Der 100 Ohm Widerstand bildet eine Stromquelle. Sobald der Strom durch den MOSFET und den Widerstand 33mA erreicht, sinkt UGS gegen 0 V. Folge: Der Mosfet sperrt ( und bleibt ganz....)&lt;br /&gt;
Es kann hier prinzipiell auch ein anderer Mosfet im SOT223-Gehäuse zum Einsatz kommen. Achten sollte man darauf, das der MOSFET schon bei 3,3V Ugs gut leiten sollte.&lt;br /&gt;
&lt;br /&gt;
=== Nulldurchgangserkennung ===&lt;br /&gt;
[[Datei:zerocross.png|thumb|right|200px|Nulldurchgangserkennung]]&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 5/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Die Nulldurchgangserkennung erfolgt nach einer sehr bekannten - jedoch ausgeklügelten - Schaltung.  [http://www.dextrel.net/diyzerocrosser.htm siehe: Dextrel]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Während einer Halbwelle wird C14 über R33 und R35 bzw. D5 geladen. Währenddessen ist T1 gesperrt. Sobald die Wechselspannung (L1-N über Spannungsteiler (R33+R35) / R34) kleiner ist als die Spannung über C14, steuert T1 durch. Dann entlädt sich C14 über den LED-Vorwiderstand R32. Der durch-steuernde Optokoppler zieht die Sync-Leitung nach GND. (Pullup Sync-Leitung = R31). Dies löst beim PIC auf INT2 einen Interrupt aus. &lt;br /&gt;
&lt;br /&gt;
Dieser Interrupt ermöglicht eine präzise Wellenpaket-, Phasenanschnittsteuerung je nach Bedarf. Das Schalten im Nulldurchgang bei der Wellenpaketsteuerung reduziert EMV-Störungen. Für Phasenanschnitt ist ohnehin eine Nulldurchgangserkennung notwendig. Außerdem liefert sie eine genaue Zeitbasis für alle Programmabläufe.&lt;br /&gt;
&lt;br /&gt;
=== Triac-Ausgänge + Snubber ===&lt;br /&gt;
[[Datei:triac.png|thumb|right|200px|Triac-Ausgangsbeschaltung]]&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 19,20,21/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Die Ansteuerung des eigentlichen Leistungstriacs BTA140-800 erfolgt über den Optotriac IS6005. Der Strom durch Letzteren wird durch R1x limitiert (Vorwiderstand). R2x und R5x limitieren wiederum den Strom durch den Optotriac. Wenn dieser zündet so folgt unmittelbar der &amp;quot;Leistungstriac&amp;quot; der dann die Last schaltet.&lt;br /&gt;
&lt;br /&gt;
S1x ist ein Sicherungshalter um die Lasten einzeln absichern zu können. Wert 10A Mittelträge.&lt;br /&gt;
&lt;br /&gt;
R3x, R4x, C3x bilden ein Snubber-Network, L1X verhindert eine zu schnelle Stromanstiegsgeschwindikeit damit der Triac nicht &amp;quot;von selbst&amp;quot; zündet. Weglassen äußert sich meist in einem fast nicht hörbaren Click. Damit zeigt einem dann der Triac, dass er ab jetzt für immer recht niederohmig geworden ist. Die Regelung der Temperatur braucht dann nicht mehr über den Prozessor erfolgen, sondern nur noch mit dem Ein-/Ausschalter..... :-)&lt;br /&gt;
&lt;br /&gt;
=== Thermoelemente (MAX6675/MAX31855)  ===&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 6,7/22&#039;&#039;&#039;&lt;br /&gt;
Der inzwischen abgekündigte MAX6675 bzw. sein ehrenwerter Nachfolger MAX31855 sind einfach zu handhabende Thermoelement-ICs mit Kaltstellenkompensation. Thermoelemente funktionieren durch das Verschweißen zweier verschiedener Legierungen (beim K-Typ Thermoelemnt Ni und CrNi). Durch den durch die Umgebungstemperatur bedingten Wärmefluss zwischen beiden entsteht ein elektrische Spannung. Diese wird von besagten ICs verstärkt und digitalisiert (ADC). Diese Spannung / Temperatur ist natürlich wieder relativ zur Umgebungstemperatur an der Kaltstelle (Kontaktierung der beiden Drähte mit dem Messinstrument). Daher messen diese ICs auch gleich die Umgebungstemperatur (Kaltstellenkompensation genannt) mit, verrechnen das und geben das Ergebnis auf der SPI-Schnittstelle aus. MAX6675 leistet 12bit also 0,25°C Auflösung (nicht Genauigkeit!) über einen Temperaturbereich von 0°C to +1024°C. Außerdem wird ein nicht/fehlerhaft angeschlossenes Thermoelement erkannt. Der Thermocouple-IC wird an die SPI-Schnittstelle des PICs angeschlossen (hier MSSP genannt). &lt;br /&gt;
&lt;br /&gt;
MAX6675 und MAX31855 scheinen entgegen der Adafruit-Information [http://www.adafruit.com/products/269] doch pinkompatibel zu sein - die Ansteuerung unterscheidet sich jedoch definitiv. (Zitat: &amp;quot;Now uses the MAX31855K instead of the MAX6675, so it can measure a wider temperature measurement range. Please note! the MAX31855 is not pin compatible or drop-in code compatible with the MAX6675. We do have an Arduino library for both chips but you&#039;ll need to adjust any existing MAX6675 designs for the mew MAX31855. The MAX6675 has been discontinued by Maxim.&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Es wurden 2 dieser ICs und damit 2 Temperaturmessstellen vorgesehen. Dies ermöglich die Messung für eine Regelung der Temperatur so wie eine zusätzliche Überwachung kritischer Bauteile (z.B. ICs oder LEDs). Die Minimalbestückung sieht einen MAX6675/MAX31855 vor. Die Auswahl in der Firmware erfolgt über einen der beiden GPIO-Pins RA5 oder RA0 via dem ChipSelect (CS) des MAX6675/MAX31855.&lt;br /&gt;
&lt;br /&gt;
Neben dem MAX6675/MAX31855 wurde ein Decoupling-Kondensator (C8x, Standard 100nF) so wie ein weiterer im Messpfad (C9x) zur Zwecken der Entstörung vorgeshen. C9x 100nF sollte nur bestückt werden wenn Probleme bei der Temperaturmessung entstehen (z.B. unrealstisch stark schwankende Werte).&lt;br /&gt;
&lt;br /&gt;
=== ADC, SPI, UART &amp;amp; I2C Stiftleiste ===&lt;br /&gt;
ADC, SPI, UART und I2C sind zu Zwecken der Kalibrierung / Erweiterung / Einstellung / Debugging auf Stiftleisten herausgeführt:&lt;br /&gt;
Ähnlichkeiten mit dem FTDI-USB-TTL-Kabel bzw. Arduino XXX Bla Bla Bla Schnittstellenkonverter sind natürlich rein zufällig.&lt;br /&gt;
&lt;br /&gt;
Die I2C-Schnittstelle wurde auf eine Stiftleiste geführt, um z.B. einem LM75 o.ä. anschließen zu können. Damit stehen zur Kalibrierung der Thermoelemente genaue Temperaturen zur Verfügung.&lt;br /&gt;
&lt;br /&gt;
Die Stiftleisten haben alle ein Raster von 2,54mm. So können Pin-Header, Wannenstecker oder ähnliches verwendet werden.&lt;br /&gt;
&lt;br /&gt;
Da ja viele Leute eigene Vorstellungen bezüglich der Frontplattengestaltung haben, wurden auch die Taster und LEDs auf Stiftleisten geführt.&lt;br /&gt;
&lt;br /&gt;
=== Kühlkörper ===&lt;br /&gt;
Da die Triacs der Steuerung für bis zu 10A pro Kanal ausgelegt sind, kann man auf die Kühlkörper nicht verzichten. Es fallen bei 10A bis zu 13 Watt Wärme pro Triac ab. Falls mann auf die Kühlkörper doch verzichten möchte, sollte man darauf achten, die Triacs mit dem Kopf nach unten einzubauen. Diese können sich dann bei Überlast ganz von selber auslöten.... :-)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red;&amp;quot;&amp;gt; Die Triacs müssen mit Glimmerscheibe und Isoliernippel -ALSO ISOLIERT ZUM KÜHLKÖRPER- montiert werden.&lt;br /&gt;
Außerdem muss unter dem Kühlkörper ein Stück Isolierband oder FR4 oder Nylon-Scheiben beigelegt werden, um zu verhindern, dass der Stopplack der Leiterplatte beschädigt wird. In diesem Falle hätte man Potential auf dem Kühlkörper.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Gehäuse ===&lt;br /&gt;
Die Leiterplatte wurde für ein Gehäuse von Hammond entwickelt.&lt;br /&gt;
Das Gehäuse ist zwar keine Schönheit, aber doch recht preiswert.&lt;br /&gt;
Typenbezeichnung: RM2055M oder etwas größer RM2055L&lt;br /&gt;
&lt;br /&gt;
== Firmware PIC ==&lt;br /&gt;
Die Entwicklung der Firmware für den PIC18LF2550  erfolgt mit MPLABX und dem C18 Compiler. MPLABX ist kostenlos, der C18 Compiler bis auf die stärkste Optimierungsstufe ebenfalls. Die Quellen für die Firmware sind offengelegt und können von Sourceforge bezogen werden, siehe Links, weiter unten.&lt;br /&gt;
&lt;br /&gt;
=== Programmstruktur- und ablauf ===&lt;br /&gt;
Nach anfänglicher Initialisierung des PIC startet die Statemachine [http://http://www.mikrocontroller.net/articles/Statemachine] [http://http://de.wikipedia.org/wiki/Endlicher_Automat]. Neben ihr findet in der main-Funktion nur noch die Abfrage der beiden Bedientasten statt. Mit dem Tastendruck wird zum Zwecke der Entprellung ein Timer gestartet. Alles Andere (incl. PID-Regelung, Wellenpaket- bzw. Phasenan- und Phasenabschnittssteuerung und USB) ist interruptbasiert.&lt;br /&gt;
=== Reflow-Ofen-Konfiguration ===&lt;br /&gt;
&lt;br /&gt;
=== Taktversorgung, Nulldurchgangserkennung und Zeitbasis ===&lt;br /&gt;
=== USB ===&lt;br /&gt;
=== SPI für MAX6675 ===&lt;br /&gt;
=== SPI für MAX31855 ===&lt;br /&gt;
&lt;br /&gt;
=== Wellenpaketsteuerung ===&lt;br /&gt;
=== Phasenanschnitt ===&lt;br /&gt;
&lt;br /&gt;
=== PWM für MOSFET ===&lt;br /&gt;
=== PIC-Configword ===&lt;br /&gt;
&lt;br /&gt;
=== Zuordnung Outputs ===&lt;br /&gt;
[[Datei:pinning.png|thumb|right|400px|Input/Output-Funktions-Tabelle]]&lt;br /&gt;
&lt;br /&gt;
*In1 = RC2 = PIN13 = ULN5--&amp;gt;12 = OUT1 = PWM &lt;br /&gt;
*In2 = RB3 = PIN24 = ULN6--&amp;gt;11 = OUT2 = TRIAC_A (1) = K5&lt;br /&gt;
*In3 = RB4 = PIN25 = ULN7--&amp;gt;10 = OUT3 = TRIAC_B (2)= K2&lt;br /&gt;
*In4 = RA2 = PIN4  = ULN4--&amp;gt;13 = OUT4 = LED_PRG1 = OPTO D&lt;br /&gt;
*In5 = RC0 = PIN11 = ULN3--&amp;gt;14 = OUT6 = LED_PRG2 = OPTO F&lt;br /&gt;
*In6 = RC1 = PIN12 = ULN2--&amp;gt;15 = OUT7 = LED_PRG3 = OPTO G&lt;br /&gt;
*In7 = RA3 = PIN5  = ULN1--&amp;gt;16 = OUT5 = LED_PRG4 = OPT= E&lt;br /&gt;
&lt;br /&gt;
TRIAC1 ist nahe dem Zerocross&lt;br /&gt;
&lt;br /&gt;
== PC-Software (GUI) ==&lt;br /&gt;
[[Datei:gui_alpha.png|thumb|right|300px|Screenshot der GUI (noch Alpha) für den Reflow-Ofen-Controller]]&lt;br /&gt;
&lt;br /&gt;
Die GUI (englisch Graphical User Interface) ist der Einfachheit halber in VB.net programmiert und momentan noch im Alpha-Stadium. Auch hierfür liegen die Quellen später selbstverständlich offen.&lt;br /&gt;
&lt;br /&gt;
=== Funktionen und Modi ===&lt;br /&gt;
[[Datei:modi.png|thumb|right|400px|Auswahl der beschriebenen Modi durch Klick]]&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Ofen-Profil&amp;quot;&#039;&#039;&#039; - Es wird ein Programm (Temperaturkurve) aus dem EEPROM des Reflow-Ofens ausgeführt. Der Backvorgang kann mit der Software gesteuert (START, STOP, ...) und überwacht werden. Hierzu stehen Temperatur, Temperaturänderung, Heizleistung (Ober- und Unterhitze, Lüfter) so wie die graphische Darstellung im zentralen Diagramm zur Verfügung. Eingriffsmöglichkeiten, wie das Ändern der Temperaturkurve sind nicht vorgesehen. Dies soll ein reiner Überwachungs-Modus sein. Um die Temperaturkurve zu verändern zu können, sollte der Modus &amp;quot;PC-Profil&amp;quot; verwendet werden und die Temperaturkurve aus dem EEPROM importiert werden. Dann kann Selbige auch verändert und anschließend ausgeführt bzw. verändert in den EEPROM zurückgeschrieben werden. Dieser Modus stellt ein Äquivalent zur START/STOP-Tasten-Bedienung an der Platine dar und kann selbstverständlich parallel dazu genutzt werden. Die GUI also als Addon zum Stand-Alone-Betrieb.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;PC-Profil&amp;quot;&#039;&#039;&#039; - Es wird ein Programm (Temperaturkurve) ausgeführt welche zuvor am Computer erstellt / editiert wurde. In diesem Modus gibt der Computer Temperaturwerte vor, welche live über die USB-Schnittstelle zum PIC übertragen werden und mit dem dort integrierten PID-Regler ausgeführt werden. Das ermöglicht eine on-the-fly Veränderung der Temperaturkurve während des Backvorgangs. Temperaturkurven können aus Dateien oder dem EEPROM importiert und auch wieder exportiert werden. CSV-Dateien können ebenfalls importiert und exportiert werden. Die &amp;quot;Eingabe&amp;quot; der Temperaturkurve erfolgt entweder über Import (CSV/EEPROM), per Mausklick auf dem zentralen Diagramm oder im sog. DataGridView. Weiteres siehe Unterpunkt &amp;quot;Eingabe der Temperaturkurve (Reflowprofil)&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;manueller Ablauf&amp;quot;&#039;&#039;&#039; - In diesem Modus wird (im Gegensatz zu den oberen beiden Modi &amp;quot;Ofen-Profil&amp;quot; und &amp;quot;PC-Profil&amp;quot;) keine Temperatur geregelt. Hier wird die Leistung des Ofens in % eingestellt und gesteuert. Der PID-Regler ist nicht in Aktion. Die Temperatur, Temperaturänderung so wie der Temperaturverlauf werden selbstredend angezeigt bzw. im Diagramm dargestellt. Der Modus &amp;quot;manueller Ablauf&amp;quot; fährt ähnlich dem Modus &amp;quot;PC-Profil&amp;quot; die im DataGridView eingetragenen Leistungs-Zeit-Punkte ab. Für jeden Zeitpunkt ist eine Leistung vorgegeben. Die Eingabe erfolgt ähnlich wie unter &amp;quot;Eingabe der Temperaturkurve (Reflowprofil)&amp;quot; beschrieben. Nur eben, dass eine Leistung und keine Temperatur angegeben wird. Die Eingabe der Leistung kann nicht im Zeit-Temperatur-Diagramm erfolgen sondern mittels der Schieberegler oder direkt tabellarisch.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;manueller Modus&amp;quot;&#039;&#039;&#039; - Dieser Modus enthält 2 Submodi&lt;br /&gt;
** &amp;quot;manueller Leistungsmodus&amp;quot; - Auch in diesem Modus wird die Leistung gesteuert. Es wird keine Temperatur geregelt, der PID-Regler für die Temperatur ist nicht in Betrieb. Die Einstellung hier erfolgt über die drei Schieberegler oder über eine numerische Eingabe durch Klick auf die Leistungsangabe unter dem Schieberegler. Durch Klick auf die Texte &amp;quot;TOP&amp;quot;, &amp;quot;BOTTOM&amp;quot;, &amp;quot;FAN&amp;quot; (Oberhitze, Unterhitze, Lüfter) können selbige deaktiviert bzw. aktiviert werden. Auch in diesem Modus wird Temperatur, Temperaturänderung so wie der Temperaturverlauf dargestellt.&lt;br /&gt;
** &amp;quot;manueller Temperaturmodus&amp;quot; - Hier wird die Temperatur wieder mittels des Temperatur-PIDs geregelt. Die Temperatur wird entweder mittels Schieberegler (Ober- und Unterhitze-Regler sind jetzt gekoppelt) oder durch eine numerische Eingabe unterhalb der Schieberegler vorgegeben. Anzeige wie im &amp;quot;manuellen Leistungsmodus&amp;quot;. Der Lüfter kann unabhängig vom PID in seiner Leistung geregelt werden. Ein evtl. durch den Luftstrom verursachter Temperaturabfall wird vom PID selbstverständlich ausgeregelt (aus diesem Grunde ist es ja ein Regler).&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Programmieren&amp;quot;&#039;&#039;&#039; - Hier kann ein neues &#039;&#039;&#039;Temperatur&#039;&#039;&#039;-Programm für den EEPROM-Speicher des Ofens erstellt und editiert werden. Die Eingabemöglichkeiten sind unter &amp;quot;Eingabe der Temperaturkurve (Reflowprofil)&amp;quot; beschrieben. Dieser Modus ist zum reinen Programmieren des Ofens gedacht und ermöglicht keine weitere Steuerung oder Überwachung des Ofens.&lt;br /&gt;
&lt;br /&gt;
=== Eingabe der Temperaturkurve (Reflowprofil) ===&lt;br /&gt;
[[Datei:datagridview.png|thumb|right|400px|tabellarische Anzeige und Editiermöglichkeit der Temperaturkurve]]&lt;br /&gt;
Die Eingabe der Temperaturkurve erfolgt entweder über Import (CSV/EEPROM), per Mausklick auf dem zentralen Diagramm oder im sog. DataGridView (Excel-ähnliche Bedienung in tabellarischer Form). &lt;br /&gt;
&lt;br /&gt;
* CSV-Import + Export&lt;br /&gt;
* EEPROM-Import + Export&lt;br /&gt;
* Im rechts stehenden Screenshotbeispiel wird eine tabellarische Eingabeform mit einem DataGridView gezeigt: Die Temperatur (erster Temperaturpunkt = Punkt 0) von 100°C wird linear über einen Zeitraum von 0-30s verteilt. Bei 30s hat der Ofen die Temperatur von 100°C. Dafür setzt die Regelung die Oberhitze, die Unterhitze ein. Der Lüfter ist deaktiviert. In der Zeit von 30s bis 120s wird die Temperatur nun von 100°C auf 150°C linear angehoben. Von 120s bis 180s Backzeit steigt die Temperatur von 150°C auf 250°C. Von 180s bis 200s wird die Temperatur auf 280°C angehoben. Anschließend wird sie zwischen 200s und 220s auf 280°C gehalten (280°C@200s und 280°C@220s) um dann bis 240s wieder auf 250°C zu fallen. Bis zum Zeitpunkt 300s wird dann die Temperatur 30°C angestrebt. Zusätzlich ist der Lüfter nun aktiviert (soweit der Ofen eine Umluftfunktion besitzt). Bei Punkt 7 sind Ober- und Unterhitze deaktiviert nur noch der Lüfter kühlt. Da hier bei &amp;quot;Zeit[s]&amp;quot; die 0 eingetragen wird der Zustand (hier nur Lüfter an) für einen unendlich langen Zeitraum auf 0 gehalten. Also so lange wie das Programm aktiviert ist wird der Lüfter laufen. Natürlich könnte man hier auch z.B. 100°C und Zeitpunkt 0s eintragen. Dann würde der Ofen bis zum manuellen Beenden des Programms (klick auf STOP-Button oder Drücken des START/STOP-Tasters auf der Platine/Steuerung) 100°C halten.&lt;br /&gt;
* Alle Zellen des DataGridView sind editierbar (zur Veränderung der Temperatur, Zeitpunkt, ...)&lt;br /&gt;
* Direkter Klick auf das zentrale Temperatur-Zeit-Diagramm trägt den Zeitpunkt so wie die Temperatur unter dem Mauszeiger in die Tabelle (das DataGridView) ein. Die ausgewählte Zeile wird beschrieben oder überschrieben. Neue Zeilen (also Temperatur-Zeit-Punkte) können durch klick auf den &amp;quot;Plus-Button&amp;quot; hinzugefügt werden. Ebenso ist das Löschen oder Verschieben einer oder mehrerer Zeile gleichzeitig möglich.&lt;br /&gt;
&lt;br /&gt;
=== Beschreibung der Steuerungsmöglichkeiten ===&lt;br /&gt;
In Abhängigkeit des gewählten Modus bestehen einige Steuerungs-, Einstellungs- und Kontrollmöglichkeiten:&lt;br /&gt;
* &#039;&#039;&#039;Schieberegler&#039;&#039;&#039; für Temperatur od. Leistung (je nach Modus) für Oberhitze, Unterhitze und Lüfter. Je nach Hardwareausführung. &lt;br /&gt;
** Klick auf &amp;quot;TOP&amp;quot;, &amp;quot;BOTTOM&amp;quot; oder &amp;quot;FAN&amp;quot; aktiviert oder deaktiviert die entsprechende Funktion bzw. Hardware.&lt;br /&gt;
** Numerische Eingabe der Werte für die Schieberegler durch Klick auf die Anzeige unterhalb der Schieberegler. Werte können auch im deaktivierten Zustand angegeben werden. Die Übernahme erfolgt durch den &amp;quot;Aktivierungsklick&amp;quot; auf &amp;quot;TOP&amp;quot;, &amp;quot;BOTTOM&amp;quot; oder &amp;quot;FAN&amp;quot;&lt;br /&gt;
* &#039;&#039;&#039;T1, dT1, T2, dT2&#039;&#039;&#039; - Anzeige der gemessenen Temperatur so wie die momentane Temperaturänderung am jeweiligen Sensor. &lt;br /&gt;
* &#039;&#039;&#039;Bedienbuttons&#039;&#039;&#039;&lt;br /&gt;
** Play - Startet das Programm am angegebenen Startpunkt (siehe unten)&lt;br /&gt;
** Pause - Pausiert das Programm - weitere Pauseoptionen siehe unten&lt;br /&gt;
** Stop - Stopt den Programmablauf&lt;br /&gt;
** Vor / Zurück - Springt zwischen Temperaturpunkten hin und her. Dient zum überspringen oder zurückspringen zu gewissen Temperatur-Zeit-Punkten. Ermöglicht z.B. das Überspringen eines Ablaufes der eine lange Preheat- oder Dryphase hat.&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Status&amp;quot;&#039;&#039;&#039; - zeigt den aktuellen Zustand des Programms an (READY, START, WAITING, PAUSE, ...)&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;RESET&amp;quot;&#039;&#039;&#039; - setzt das (begonnene) Programm zurück. Beinhaltet neben dem Programmablauf auch das Zurücksetzen der graphischen Anzeige des Diagramms, etc.&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Startpunkt&amp;quot;&#039;&#039;&#039; - legt den ersten Punkt des Programmablaufes fest. &lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Wiederholungen&amp;quot;&#039;&#039;&#039; - ermöglicht das wiederholte Backen ohne das Programm händisch immer wieder neu starten zu müssen. Die Anzahl der Wiederholungen ist einstellbar (0 für unendlich viele) und es ist eine Wartezeit zwischen den Wiederholungen einstellbar. Alternativ kann eine Meldung nach jedem vollendeten Backvorgang abgegeben werden. Nach Bestätigung dieser wird die nächste Wiederholung ausgeführt.&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Pause&amp;quot;&#039;&#039;&#039; - Pauseneinstellungen. Hier sind Optionen wählbar was passieren soll, falls der Pausebutton betätigt wird:&lt;br /&gt;
** Pausezeit - gibt an wie lange die Pause dauern soll [s], danach fährt das Programm automatisch gemäß des gewählten Pausemodus fort. Für eine Pause ohne automatisches Fortfahren (Countdowntimer) &#039;0&#039; angeben.&lt;br /&gt;
** Pausemodus &amp;quot;aktuelle Temperatur halten, WarmUp, Fortsetzen&amp;quot; - Ofen hält die Temperatur (Zieltemperatur) des Zeitpunktes als der Pausebutton betätigt wurde. WarmUp bedeutet, dass nach dem Beenden des Pausemodus zunächst die Zieltemperatur wieder erreicht werden &#039;&#039;&#039;muss&#039;&#039;&#039; bevor der nächste Punkt angesteuert wird. Klingt paradox, wenn die Temperatur doch so und so gehalten wird, ist aber nicht so. Die Wahrscheinlichkeit ist hoch, dass der Pausemodus benutzt wird um die Ofentüre zu öffnen und Korrekturen an der Platine vorzunehmen. Unter Umständen ist die Heizung des Ofens jedoch nicht in der Lage den dadurch entstehenden Wärmeverlust zu kompensieren. Fährt das Programm dann sofort fort, so könnten evtl. kritische (Hoch-)Punkte des Lötprofils &amp;quot;unterfahren&amp;quot; werden. Dem wirkt WarmUp entgegen.&lt;br /&gt;
** Pausemodus &amp;quot;aktuelle Temperatur halten, Fortsetzen&amp;quot; - siehe oben, nur ohne WarmUp.&lt;br /&gt;
** Pausemodus &amp;quot;definierte Temperatur halten, WarmUp, Fortsetzen&amp;quot; - siehe oben. Statt der aktuellen Zieltemperatur wird jedoch nun im Pausemodus eine einzustellende Pausetemperatur gehalten. Mit WarmUp.&lt;br /&gt;
** Pausemodus &amp;quot;definierte Temperatur halten, Fortsetzen&amp;quot; - siehe oben, nur ohne WarmUp.&lt;br /&gt;
** &amp;quot;Pausetemperatur&amp;quot; - spezielle Temperatur die bei entsprechender Pausemoduswahl für die Dauer der Pause gehalten wird.&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Ende&amp;quot;&#039;&#039;&#039; - gibt an was am Ende eines durchlaufenen Reflow-Programms passieren soll. Ist der Wiederholungsmodus aktiviert, tritt dieses Ereignis erst nach Durchlauf aller Wiederholungen ein. Folgende Modi sind möglich:&lt;br /&gt;
** automatischer Reset - am Ende des Programms wird alles automatisch zurückgesetzt, alle Graphiken und Anzeigen gelöscht.&lt;br /&gt;
** manueller Reset - am Ende des Programms bleiben alle Anzeigen, Graphiken, etc erhalten und müssen vor Beginn eines neuen Reflowvorgangs händisch durch Klick auf &amp;quot;RESET&amp;quot; zurückgesetzt werden.&lt;br /&gt;
** Benutzermeldung - lässt eine Meldung erscheinen. Alle Anzeigen und Graphiken bleiben erhalten bis der Benutzer diese Meldung bestätigt. Mit Bestätigung dieser Meldung wird ein automatischer Reset vorgenommen.&lt;br /&gt;
&lt;br /&gt;
=== Loggen des Temperaturverlaufes ===&lt;br /&gt;
Es ist möglich jeden Backvorgang in eine CSV-Datei zu loggen. (Software- und PID-Einstellungen). Geloggte CSV-Dateien können eingelesen und im zentralen Temperatur-Zeit-Diagramm begutachtet werden. Ein Ist-Soll-Vergleich ist ebenso möglich wie die direkte Anzeige des Fehlers (&amp;quot;Ist minus Soll&amp;quot;). Dank CSV können die Daten auch mit anderen Programmen (Excel, etc.) weiterverarbeitet werden.&lt;br /&gt;
&lt;br /&gt;
== Ofen / Pizzaofen ==&lt;br /&gt;
=== Leistung und Volumen ===&lt;br /&gt;
* Alls Faustformel wird oft 100W pro Liter Volumen genannt.&lt;br /&gt;
* Ich habe einen sehr preiswerten Ofen gewählt und die &amp;quot;Oberhitze&amp;quot; zusätzlich mit zwei Halogen-Stäben a 300W &amp;quot;verstärkt. Das kostet nicht viel, die Fassung ist für ca. 3 Euro erhältlich, die Halogenstäbe gibt es in jedem Baumarkt. &lt;br /&gt;
* Bezugsquelle Fassung : siehe &amp;quot;Links&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Dämmung ===&lt;br /&gt;
=== Umluft ===&lt;br /&gt;
* Der verwendete Ofen sollte eine Umluftfunktion besitzen, damit sich die Wärme gleichmäßig im Ofen und auf der Leiterplatte verteilen kann.&lt;br /&gt;
&lt;br /&gt;
== FAQ ==&lt;br /&gt;
&lt;br /&gt;
* Q1: Ich habe einen PT100/PT1000 und möchte den anschließen. Geht das?&lt;br /&gt;
** A1: Ja natürlich. Dazu ist aber etwas externe Elektronik notwendig. Sowohl 2 ADC-Pins (mit 3V3 Betriebsspannung als fixe Referenzspannung), als auch die UART und SPI/I2C-Schnittstelle stehen zur freien Verfügung. Für PT100/PT1000 wird für vernünftige Messungen ohnehin eine Verstärkung (meist mit OPV) von Nöten sein. Da der PIC-interne ADC &amp;quot;nur&amp;quot; 10bit Auflösung bietet sollte ein externer 16bit ADC in Betracht gezogen werden um das Potential der PT100/PT1000 auszunutzen.&lt;br /&gt;
*Q2: Ich habe von günstigen Temperaturmessungen mit Dioden gehört. Geht das auch hier?&lt;br /&gt;
**A2: Ja. Die Vorwärtsspannung einer Diode verhält sich linear zur Sperrschichttemperatur. Diese Spannung (bei 25°C einer Si-Diode die bekannten 0,7V) kann mittels OPV verstärkt werden und auf einen Spannungsbereich von 0 ... 3V3 aufgebläht werden. Eine billige Lösung, auf Kosten der Genauigkeit. Doch eine Diode ist laut Datenblatt nur bis 150°C geeignet. Es ist also beim Löten mehr oder weniger Pfusch. Wenn ich schon eine Reflow-Steuerung baue, sollte ich doch nicht an ein paar Euro für eine gescheite Temperaturmessung sparen. Einige Anregungen vom Messgerätehersteller Keithley bzgl. der Halbleiterphysik mit interessanten Formeln [http://www.keithley.de/support/data?asset=50486]. Oder natürlich der Klassiker von Thomas Pfeifer [http://thomaspfeifer.net/backofen_smd_reflow.htm]. Oder ein Beitrag mit LT-Spice Simulation zum Thema [http://www.mikrocontroller.net/topic/270627#2833883].&lt;br /&gt;
* Q: God why ... ?&lt;br /&gt;
** A: Because we can !&lt;br /&gt;
*Q: Ich hab aber noch nie was mit 230V gemacht.&lt;br /&gt;
**A: Dann würde ich an Deiner Stelle dieses Projekt NICHT nachbauen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Verbesserungen Prototyp - Diese haben jedoch keinen Einfluss auf die Funktion der Leiterplatte===&lt;br /&gt;
* Bauteile weiter weg von den Schraublöchern.&lt;br /&gt;
* Dazu Kreis rund um Bohrung auf Bestückdruck.&lt;br /&gt;
* Masseanbindung Quarz.&lt;br /&gt;
* Klemmen weiter weg vom Rand.&lt;br /&gt;
* Klemme und Sicherungshalter weiter auseinander.&lt;br /&gt;
* Bohrungen für Drossel 0,2mm größer machen.&lt;br /&gt;
* Teilenummer für Conrad-USB-Buchse in BOM übernehmen.&lt;br /&gt;
* Stiftleiste P1  weiter weg von P2 und P4.&lt;br /&gt;
* Varistoren näher an Klemmen platzieren.&lt;br /&gt;
* THT-Kondensatoren für Snubber.&lt;br /&gt;
* Ggf. Stiftleistenbelegung für externe Leds so ändern, das keine extra Vorwiderstände notwendig sind.&lt;br /&gt;
* Befestigungsbohrung für Drossel, um diese mit Kabelbinderung oder Schraube fixieren zu können.&lt;br /&gt;
* Pullup-Widerstand bei MCLR doppelt. &lt;br /&gt;
* Power-LED vorsehen.&lt;br /&gt;
* Leiterbahnen etwas weiter weg von den Kühlkörperanschlüssen&lt;br /&gt;
* Designatoren Texte etwas größer machen.&lt;br /&gt;
* Ein vernünftiger GND-Punkt für einen Tastkopf / Messungen / Aligator-Clips vorsehen.&lt;br /&gt;
&lt;br /&gt;
= Errata Projekt =&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:red;&amp;quot;&amp;gt; Triac Symbol in Library falsch, dadurch ist T2 mit T1 vertauscht. Abhilfe für Leiterplattenversion V1.0: T1 und T2 &amp;quot;twisten&amp;quot; und jeweils mit Schrumpfschlauch versehen.( Also Beinchen T1 über kreuz mit Beinchen T2 einlöten...)&amp;lt;/span&amp;gt;&lt;br /&gt;
* Beim MOSFET R39 ist die Masseanbindung falsch. Es bestehen drei Möglichkeiten:&lt;br /&gt;
** 1. 0-R-Brücke für R39 einbauen und auf Strombegrenzung verzichten.&lt;br /&gt;
** 2. Eine Polyfuse mit Bauform 1206 einbauen. &lt;br /&gt;
** 3. Das kleine Leiterbahnstückchen zwischen R38 und R39 unterbrechen und statt dessen die Leiterbahn zwischen R39 und der Klemme mit der Durchkontaktierung bei R38 verbinden.&lt;br /&gt;
* LED-Beschriftung passt nicht ganz (Schaltplan Netlabel OUT1,2,3,4 sind durcheinander gekommen) --&amp;gt; Ist im Prinzip ohne Belang, man muss das nur bei der Software berücksichtigen.&lt;br /&gt;
* Schaltplan UNL2003 fehlerhafte Zuordnung IN5,6,7 &amp;lt;&amp;gt; OUT7,6,5 --&amp;gt; Ist im Prinzip ohne Belang, man muss das nur bei der Software berücksichtigen.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* Diskussion: [http://www.mikrocontroller.net/topic/297217 Diskussion]&lt;br /&gt;
* Software: [http://sourceforge.net/projects/reflowofensteue/ Bei Sourceforge]&lt;br /&gt;
* Dextrel Nulldurchgang: [http://www.dextrel.net/diyzerocrosser.htm Nulldurchgangschaltung]&lt;br /&gt;
* Gehäuse Zeichnung: [http://www.hammondmfg.com/pdf/RM2055L.pdf Großes Gehäuse für Steckdosenmontage]&lt;br /&gt;
* Gehäuse Zeichnung: [http://www.hammondmfg.com/pdf/RM2055M.pdf Kleines Gehäuse, keine Steckdosen]&lt;br /&gt;
* Bezugsquelle [http://www.soselectronic.com/?str=371&amp;amp;artnum=73596&amp;amp;name=hammond-ritec-rm2055l Großes Gehäuse Hammond]&lt;br /&gt;
* Bezugsquelle [http://www.soselectronic.com/?str=371&amp;amp;artnum=73595&amp;amp;name=hammond-ritec-rm2055m Kleines Gehäuse Hammond]&lt;br /&gt;
* Bezugsquelle [http://www.druckerzubehoer.de/shop/product/catid/H-UNIVERSALZUBEHOER_HZB/subcatid/UNIVERSALZUBEHOER_GROUP1_HZB/productid/1727063-390722LA/site/1/lng/de_DE Netzteil Mini USB ]&lt;br /&gt;
* Bezugsquelle [http://www.ebay.de/itm/151037292125?ssPageName=STRK:MEWNX:IT&amp;amp;_trksid=p3984.m1497.l2649 Termoelement Ebay (Typ K für ca. 2Euro)]&lt;br /&gt;
* Bezugsquelle [http://www.artcase-shop.de/index.php?page=search&amp;amp;page_action=query&amp;amp;desc=on&amp;amp;sdesc=on&amp;amp;keywords=pce+105&amp;amp;x=0&amp;amp;y=0 Steckdosen für Schalttafeleinbau:]&lt;br /&gt;
* Bezugsquelle [http://www.schaeffer-ag.de/ Frontplatten]&lt;br /&gt;
* Bezugsquelle [http://www.lichtlieferant.de/catalogsearch/result/?q=r7s+fassung+sockel Vossloh Fassung R7S für Halogenstäbe]&lt;br /&gt;
* Datenblatt Prozessor [http://ww1.microchip.com/downloads/en/DeviceDoc/39632e.pdf PIC18LF2550]&lt;br /&gt;
* Umfangreicher Thread u.A. Leistungsvermögen, Temperaturmessung und Dämmung [http://www.mikrocontroller.net/topic/270627]&lt;br /&gt;
[[Kategorie:PIC-Projekte]]&lt;/div&gt;</summary>
		<author><name>Frankman</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=Datei:Reflow.ods&amp;diff=80566</id>
		<title>Datei:Reflow.ods</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=Datei:Reflow.ods&amp;diff=80566"/>
		<updated>2014-01-03T10:51:11Z</updated>

		<summary type="html">&lt;p&gt;Frankman: Frankman lud eine neue Version von „Datei:Reflow.ods“ hoch&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Frankman</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=Reflow_Ofen_Steuerung&amp;diff=76193</id>
		<title>Reflow Ofen Steuerung</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=Reflow_Ofen_Steuerung&amp;diff=76193"/>
		<updated>2013-06-01T13:04:00Z</updated>

		<summary type="html">&lt;p&gt;Frankman: /* Links */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Datei:RFB.jpg]]&lt;br /&gt;
== Einleitung ==&lt;br /&gt;
[[Datei:pcb.png|thumb|right|400px|unbestücktes PCB der Reflow-Ofen-Steuerung]]&lt;br /&gt;
Hier wird eine weitere Reflow-Ofen-Steuerung beschrieben.&lt;br /&gt;
=== Zum Nachbauen ===&lt;br /&gt;
* Spezifikation: [[Datei: Spec Reflow.pdf]]&lt;br /&gt;
* Schaltplan: &lt;br /&gt;
** Minimalversion [[Datei:Schematic Prints Minimal.pdf]]&lt;br /&gt;
** Standardversion [[Datei:Schematic Prints Standard.pdf]]&lt;br /&gt;
** Deluxeversion [[Datei:Schematic Prints Deluxe.pdf]]&lt;br /&gt;
** Debugversion [[Datei:Schematic Prints Debug.pdf]]&lt;br /&gt;
* Gerberdaten: [[Datei:Gerber Reflow.pdf]]&lt;br /&gt;
* Assemblydrawing: [[Datei:Assembly Reflow.pdf]] &lt;br /&gt;
* Altium-Files: [[Datei:Reflow.zip]]&lt;br /&gt;
* Stückliste als CSV: [[Datei:Reflow.csv]]&lt;br /&gt;
* Stückliste als Open Office: [[Datei:Reflow.ods]]&lt;br /&gt;
* PC Programm: TBD&lt;br /&gt;
* Sourcen PC-Programm: TBD&lt;br /&gt;
* PIC Programm (*.hex): TBD&lt;br /&gt;
* Sourcen Pic-Programm: TBD&lt;br /&gt;
* Step-File Steckdose:[[Datei:Steckdose.stp]]&lt;br /&gt;
&lt;br /&gt;
=== Motivation ===&lt;br /&gt;
Die Gründe, eine weitere Steuerung zu entwerfen, waren:&lt;br /&gt;
&lt;br /&gt;
* Die Möglichkeit, auch größere Öfen mit 2 Phasen betreiben zu können.&lt;br /&gt;
* Die Steuerung universell zu gestalten. Es sollte möglich sein, diese nicht nur zum Reflow löten zu verwenden....z.B:&lt;br /&gt;
** Temperatursteuerung für Klimakammer (Heizen, Kühlen)&lt;br /&gt;
** Dimmer mit USB&lt;br /&gt;
** Temperaturregler für ein Tisch-Fondue ( Temperatur halten)&lt;br /&gt;
** Drehzahlsteller mit USB&lt;br /&gt;
** Switchpack&lt;br /&gt;
* Die Schaltung sollte in Altium entwickelt werden. (Warum kein Eagle??? Altium User wissen es.... :-)&lt;br /&gt;
* Die Schaltung sollte mit USB ausgestattet sein.&lt;br /&gt;
&lt;br /&gt;
=== Eigenschaften &amp;amp; Spezifikationen ===&lt;br /&gt;
* Temperaturmessung: bis zu 2x &#039;&#039;&#039;Thermoelement&#039;&#039;&#039; (K-Typ) mit MAX6675 (abgekündigt) oder Nachfolger MAX31855 (pin- aber nicht softwarekompatibel)&lt;br /&gt;
* &#039;&#039;&#039;Leistungsstufen&#039;&#039;&#039;: 3x voneinander unabhängige Triac 800V bei 25A, limitiert auf &#039;&#039;&#039;10A @ 250VAC&#039;&#039;&#039; (z.B. Oberhitze, Unterhitze, Umluft)&lt;br /&gt;
* &#039;&#039;&#039;Nulldurchgangserkennung&#039;&#039;&#039; ermöglicht Wellenpaket-, Phasenan- und abschnittssteuerung, galvanische Trennung selbiger&lt;br /&gt;
* 1x &#039;&#039;&#039; MOSFET-Ausgang&#039;&#039;&#039; PWM z.B. für 12V Lüfter, max. 55V 3,5A&lt;br /&gt;
* &#039;&#039;&#039;feste Programme&#039;&#039;&#039; im EEPROM über 2-Tasterbedienung und LEDs wähl- und ausführbar. &#039;&#039;&#039;PC-unabhängiger Betrieb&#039;&#039;&#039;. Beliebig viele Programme möglich, für die Auswahl stehen 4 benutzer-konfigurierbare LEDs zur Verfügung&lt;br /&gt;
* Betrieb am Computer für mehr Reflowprofile&lt;br /&gt;
* Mini-USB-Buchse zur Steuerung / Programmierung über GUI&lt;br /&gt;
* Günstiges passendes &#039;&#039;&#039;Gehäuse&#039;&#039;&#039;, alle LEDs und Taster auf Stiftleisten herausgeführt&lt;br /&gt;
* PID-Temperaturregler&lt;br /&gt;
* UART, SPI, I2C und 2x ADC auf Stiftleisten herausgeführt (-&amp;gt; Erweiterungen)&lt;br /&gt;
* Versorgung über USB (&amp;lt; 100mA), interne Versorgungsspannung 3,3V&lt;br /&gt;
* umfangreiche EMV-gerechte Entstörung für den Bedarfsfall&lt;br /&gt;
&lt;br /&gt;
== Technische Realisierung==&lt;br /&gt;
=== PIC18LF2550 Grundbeschaltung ===&lt;br /&gt;
[[Datei:osc_vs_vcc.png|thumb|right|200px|Taktraten und Versorgungsspannung PIC18F2550 vs. PIC18LF2550, Datenblatt S. 370/438]]&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 3/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Hier kommt ein PIC18&#039;&#039;&#039;L&#039;&#039;&#039;F2550 zum Einsatz. Er verfügt über eine USB-Schnittstelle und ist für Betriebsspannungen von 2 ... 5,5V ausgelegt. Sein Verwandter PIC18F2550 (ohne L) ist nicht für Betriebsspannungen &amp;lt; 4,2V ausgelegt. Dies ist bei USB sowieso nicht immer erfüllt und die Thermoelement-ICs vertragen ohnehin keine 5V, daher wurde die Betriebsspannung auf 3,3V reduziert. Neben Standard-Decoupling (100nF Kerko pro Vcc-Vss-Pärchen) wurde das ICSP-Interface in alt bewährter Pinbelegung (PICKit1,2,3) angebracht. PGD und PGC sind nicht weiter beschaltet, MCRL wird , wie immer als Resetpin verwendet. Der Resetschalter findet sich auf dem Top-Sheet (Schaltplan S. 1/22). Die Taktversorgung erfolgt über einen 24 MHz Quarz (-&amp;gt; USB). Man beachte diesbezüglich rechts stehende Grafik zu Taktraten und Versorgungsspannungen (Vdd bzw. auch Vcc genannt). Auch zu finden im Datenblatt des PICs auf Seite 370.&lt;br /&gt;
&lt;br /&gt;
=== PIC18LF2550 USB Beschaltung ===&lt;br /&gt;
[[Datei:usb_part.png|thumb|right|200px|PIC18(L)F2550&lt;br /&gt;
 Standard &lt;br /&gt;
USB-Beschaltung am PIC]]&lt;br /&gt;
[[Datei:usb_protect.png|thumb|right|200px|USB-Schutzbeschaltung und Mini-USB-Buchse]]&lt;br /&gt;
&lt;br /&gt;
Die Beschaltung der USB-Schnittstelle am PIC ist 1:1 aus dem Datenblatt übernommen. Zum Einsatz kommt eine Mini-USB-Buchse (J1).&lt;br /&gt;
Der Gedanke war: Erstens ein sehr preiswertes, fertiges Netzteil verwenden zu können, (ca. 3,67 € bei druckerzubehoer.de) und zweitens, die Steuerung auch mit dem PC / Laptop versorgen zu können.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 4/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
FER1,2 und C7 filtern den Schirm nach GND. Standardmäßig wird man hier wohl 0-Ohm-Widerstände einsetzen. Falls ein Besuch im EMV-Labor geplant ist, weicht man auf den Ferrit aus. C5 und C6 filtern das Signal zusammen mit der Common-Mode-DrosselL1. Die Drossel kann mit den 0-Ohm-Brücken R8 und R9 überbrückt (gespart) werden. IC2 ist als ESD-Schutz gedacht und kann ebenfalls bei ausgeprägten Kostenbewustsein gespart werden. Die Widerstände R6 und R7 dürfen NICHT bestückt werden. FER1,2, C5, IC2 müssen nicht zwingend bestückt werden. Die Bestückung wurde vorgehalten um im Problemfall einfache Abhilfe schaffen zu können.&lt;br /&gt;
&lt;br /&gt;
=== 3,3V Spannungsversorgung ===&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 2/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Die 3,3V Versorgungsspannung für die gesamte Platine wird aus V_USB mittels des LDO Spannungsreglers TOREX - XC6206P332MR abgeleitet. Günstig, SOT-23, klein, 2x 1µF Kondensatoren benötigt, 3,3V max. 250mA. Der hat auch einen sehr kleinen Ruhestrom.&lt;br /&gt;
&lt;br /&gt;
=== Taster ===&lt;br /&gt;
*Der Resettaster zieht den MCLR-Pin nach GND und löst damit den Reset aus. MCLR  ist mit einem 10k Pullup versehen.&lt;br /&gt;
*Die übrigen beiden Taster ziehen RA4 bzw. RB5 ebenfalls nach GND.&lt;br /&gt;
&lt;br /&gt;
=== LEDs + ULN2003L ===&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 11/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Um alle LEDs auf der Platine (3x Optotriac + 7x Status) ansteuern zu können wurde auf das 7fach Darlington-Array ULN2003L zurückgegriffen. Es dient desweiteren auch als &amp;quot;MOSFET-Treiber für Arme&amp;quot;. Alle LEDs werden von diesem Transistor-Array nach Masse geschaltet. Dient der Entlastung der PIC-Ausgänge. Und kostet ja auch nicht viel.&lt;br /&gt;
&lt;br /&gt;
=== MOSFET-Leistungsausgang ===&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 22/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Hier kommt der einfacher N-Kanal MOSFET (LogicLevel) PHT8N06LT zum Einsatz. Er wird über das ULN2003L Array getrieben und ermöglicht den Anschluss eines DC-Verbrauchers mit max. 55V bei 3,5A. Hier könnte beispielsweise ein PC-Lüfter zur Kühlung od. Umluft angeschlossen und über PWM geregelt/gesteuert werden. Ein Gatewiderstand von 100 Ohm ist zum Schutz des Treibers vorgesehen. Eine 0-Ohm-Brücke ist stattdessen aber auch möglich, wenn man eine höhere Leistung schalten möchte.Die Leiterbahnen sollten die 3A schon hergeben. Der 100 Ohm Widerstand bildet eine Stromquelle. Sobald der Strom durch den MOSFET und den Widerstand 33mA erreicht, sinkt UGS gegen 0 V. Folge: Der Mosfet sperrt ( und bleibt ganz....)&lt;br /&gt;
Es kann hier prinzipiell auch ein anderer Mosfet im SOT223-Gehäuse zum Einsatz kommen. Achten sollte man darauf, das der MOSFET schon bei 3,3V Ugs gut leiten sollte.&lt;br /&gt;
&lt;br /&gt;
=== Nulldurchgangserkennung ===&lt;br /&gt;
[[Datei:zerocross.png|thumb|right|200px|Nulldurchgangserkennung]]&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 5/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Die Nulldurchgangserkennung erfolgt nach einer sehr bekannten - jedoch ausgeklügelten - Schaltung.  [http://www.dextrel.net/diyzerocrosser.htm]&lt;br /&gt;
&lt;br /&gt;
ACHTUNG: DER IM SCHALTPLAN VERZEICHNETE OPTOKOPPLER und BRÜCKENGLEICHRICHTER VON REICHELT DARF KEINESFALLS VERWENDET WERDEN! Pinbelegung! Bitte den Optokoppler aus der Stückliste nehmen!&lt;br /&gt;
&lt;br /&gt;
Während einer Halbwelle wird C14 über R33 und R35 bzw. D5 geladen. Währenddessen ist T1 gesperrt. Sobald die Wechselspannung (L1-N über Spannungsteiler (R33+R35) / R34) kleiner ist als die Spannung über C14, steuert T1 durch. Dann entlädt sich C14 über den LED-Vorwiderstand R32. Der durch-steuernde Optokoppler zieht die Sync-Leitung nach GND. (Pullup Sync-Leitung = R31). Dies löst beim PIC auf INT2 einen Interrupt aus. &lt;br /&gt;
&lt;br /&gt;
Dieser Interrupt ermöglicht eine präzise Wellenpaket-, Phasenanschnittsteuerung je nach Bedarf. Das Schalten im Nulldurchgang bei der Wellenpaketsteuerung reduziert EMV-Störungen. Für Phasenanschnitt ist prinzipbedingt ohnehin eine Nulldurchgangserkennung notwendig. Außerdem liefert sie eine völlig ausreichend genaue Zeitbasis für alle Programmabläufe.&lt;br /&gt;
&lt;br /&gt;
=== Triac-Ausgänge + Snubber ===&lt;br /&gt;
[[Datei:triac.png|thumb|right|200px|Triac-Ausgangsbeschaltung]]&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 19,20,21/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Die Ansteuerung des eigentlichen Leistungstriacs BTA140-800 erfolgt über den Optotriac IS6005. Der Strom durch Letzteren wird durch R1x limitiert (Vorwiderstand). R2x und R5x limitieren wiederum den Strom durch den Optotriac. Wenn dieser zündet so folgt unmittelbar der &amp;quot;Leistungstriac&amp;quot; der dann die Last schaltet.&lt;br /&gt;
&lt;br /&gt;
S1x ist ein Sicherungshalter um die Lasten einzeln absichern zu können. Wert 10A Mittelträge.&lt;br /&gt;
&lt;br /&gt;
R3x, R4x, C3x bilden ein Snubber-Network, L1X verhindert eine zu schnelle Stromanstiegsgeschwindikeit damit der Triac nicht &amp;quot;von selbst&amp;quot; zündet. Weglassen äußert sich meist in einem fast nicht hörbaren Click. Damit zeigt einem dann der Triac, dass er ab jetzt für immer recht niederohmig geworden ist. Die Regelung der Temperatur braucht dann nicht mehr über den Prozessor erfolgen, sondern nur noch mit dem Ein-/Ausschalter..... :-)&lt;br /&gt;
&lt;br /&gt;
=== Thermoelemente (MAX6675/MAX31855)  ===&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 6,7/22&#039;&#039;&#039;&lt;br /&gt;
Der inzwischen abgekündigte MAX6675 bzw. sein ehrenwerter Nachfolger MAX31855 sind einfach zu handhabende Thermoelement-ICs mit Kaltstellenkompensation. Thermoelemente funktionieren durch das Verschweißen zweier verschiedener Legierungen (beim K-Typ Thermoelemnt Ni und CrNi). Durch den durch die Umgebungstemperatur bedingten Wärmefluss zwischen beiden entsteht ein elektrische Spannung. Diese wird von besagten ICs verstärkt und digitalisiert (ADC). Diese Spannung / Temperatur ist natürlich wieder relativ zur Umgebungstemperatur an der Kaltstelle (Kontaktierung der beiden Drähte mit dem Messinstrument). Daher messen diese ICs auch gleich die Umgebungstemperatur (Kaltstellenkompensation genannt) mit, verrechnen das und geben das Ergebnis auf der SPI-Schnittstelle aus. MAX6675 leistet 12bit also 0,25°C Auflösung (nicht Genauigkeit!) über einen Temperaturbereich von 0°C to +1024°C. Außerdem wird ein nicht/fehlerhaft angeschlossenes Thermoelement erkannt. Der Thermocouple-IC wird an die SPI-Schnittstelle des PICs angeschlossen (hier MSSP genannt). &lt;br /&gt;
&lt;br /&gt;
MAX6675 und MAX31855 scheinen entgegen der Adafruit-Information [http://www.adafruit.com/products/269] doch pinkompatibel zu sein - die Ansteuerung unterscheidet sich jedoch definitiv. (Zitat: &amp;quot;Now uses the MAX31855K instead of the MAX6675, so it can measure a wider temperature measurement range. Please note! the MAX31855 is not pin compatible or drop-in code compatible with the MAX6675. We do have an Arduino library for both chips but you&#039;ll need to adjust any existing MAX6675 designs for the mew MAX31855. The MAX6675 has been discontinued by Maxim.&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Es wurden 2 dieser ICs und damit 2 Temperaturmessstellen vorgesehen. Dies ermöglich die Messung für eine Regelung der Temperatur so wie eine zusätzliche Überwachung kritischer Bauteile (z.B. ICs oder LEDs). Die Minimalbestückung sieht einen MAX6675/MAX31855 vor. Die Auswahl in der Firmware erfolgt über einen der beiden GPIO-Pins RA5 oder RA0 via dem ChipSelect (CS) des MAX6675/MAX31855.&lt;br /&gt;
&lt;br /&gt;
Neben dem MAX6675/MAX31855 wurde ein Decoupling-Kondensator (C8x, Standard 100nF) so wie ein weiterer im Messpfad (C9x) zur Zwecken der Entstörung vorgeshen. C9x 100nF sollte nur bestückt werden wenn Probleme bei der Temperaturmessung entstehen (z.B. unrealstisch stark schwankende Werte).&lt;br /&gt;
&lt;br /&gt;
=== ADC, SPI, UART &amp;amp; I2C Stiftleiste ===&lt;br /&gt;
ADC, SPI, UART und I2C sind zu Zwecken der Kalibrierung / Erweiterung / Einstellung / Debugging auf Stiftleisten herausgeführt:&lt;br /&gt;
Ähnlichkeiten mit dem FTDI-USB-TTL-Kabel bzw. Arduino XXX Bla Bla Bla Schnittstellenkonverter sind natürlich rein zufällig.&lt;br /&gt;
&lt;br /&gt;
Die I2C-Schnittstelle wurde auf eine Stiftleiste geführt, um z.B. einem LM75 o.ä. anschließen zu können. Damit stehen zur Kalibrierung der Thermoelemente genaue Temperaturen zur Verfügung.&lt;br /&gt;
&lt;br /&gt;
Die Stiftleisten haben alle ein Raster von 2,54mm. So können Pin-Header, Wannenstecker oder ähnliches verwendet werden.&lt;br /&gt;
&lt;br /&gt;
Da ja viele Leute eigene Vorstellungen bezüglich der Frontplattengestaltung haben, wurden auch die Taster und LEDs auf Stiftleisten geführt.&lt;br /&gt;
&lt;br /&gt;
=== Kühlkörper ===&lt;br /&gt;
Da die Triacs der Steuerung für bis zu 10A pro Kanal ausgelegt sind, kann man auf die Kühlkörper nicht verzichten. Es fallen bei 10A bis zu 13 Watt Wärme pro Triac ab. Falls mann auf die Kühlkörper doch verzichten möchte, sollte man darauf achten, die Triacs mit dem Kopf nach unten einzubauen. Diese können sich dann bei Überlast ganz von selber auslöten.... :-)&lt;br /&gt;
&lt;br /&gt;
=== Gehäuse ===&lt;br /&gt;
Die Leiterplatte wurde für ein Gehäuse von Hammond entwickelt.&lt;br /&gt;
Das Gehäuse ist zwar keine Schönheit, aber doch recht preiswert.&lt;br /&gt;
Typenbezeichnung: RM2055M&lt;br /&gt;
&lt;br /&gt;
== Firmware PIC ==&lt;br /&gt;
Die Entwicklung der Firmware für den PIC18LF2550  geht mit MPlab 8 respektive dem C18 Compiler von Statten. MPlab ist kostenlos, der C18 Compiler bis auf die stärkste Optimierungsstufe ebenfalls. Die Quellen für die Firmware werden auch offengelegt.&lt;br /&gt;
=== Programmstruktur- und ablauf ===&lt;br /&gt;
Nach anfänglicher Initialisierung des PIC startet die Statemachine [http://http://www.mikrocontroller.net/articles/Statemachine] [http://http://de.wikipedia.org/wiki/Endlicher_Automat]. Neben ihr findet in der main-Funktion nur noch die Abfrage der beiden Bedientasten statt. Mit dem Tastendruck wird zum Zwecke der Entprellung ein Timer gestartet. Alles Andere (incl. PID-Regelung, Wellenpaket- bzw. Phasenan- und Phasenabschnittssteuerung und USB) ist interruptbasiert.&lt;br /&gt;
&lt;br /&gt;
=== Taktversorgung, Nulldurchgangserkennung und Zeitbasis ===&lt;br /&gt;
=== USB ===&lt;br /&gt;
=== SPI für MAX6675 ===&lt;br /&gt;
=== SPI für MAX31855 ===&lt;br /&gt;
&lt;br /&gt;
=== Wellenpaketsteuerung ===&lt;br /&gt;
=== Phasenanschnitt ===&lt;br /&gt;
&lt;br /&gt;
=== PWM für MOSFET ===&lt;br /&gt;
&lt;br /&gt;
== PC-Software (GUI) ==&lt;br /&gt;
[[Datei:gui_alpha.png|thumb|right|300px|Screenshot der GUI (noch Alpha) für den Reflow-Ofen-Controller]]&lt;br /&gt;
&lt;br /&gt;
Die GUI (englisch Graphical User Interface) ist der Einfachheit halber in VB.net programmiert und momentan noch im Alpha-Stadium. Auch hierfür liegen die Quellen später selbstverständlich offen.&lt;br /&gt;
&lt;br /&gt;
=== Funktionen und Modi ===&lt;br /&gt;
[[Datei:modi.png|thumb|right|400px|Auswahl der beschriebenen Modi durch Klick]]&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Ofen-Profil&amp;quot;&#039;&#039;&#039; - Es wird ein Programm (Temperaturkurve) aus dem EEPROM des Reflow-Ofens ausgeführt. Der Backvorgang kann mit der Software gesteuert (START, STOP, ...) und überwacht werden. Hierzu stehen Temperatur, Temperaturänderung, Heizleistung (Ober- und Unterhitze, Lüfter) so wie die graphische Darstellung im zentralen Diagramm zur Verfügung. Eingriffsmöglichkeiten, wie das Ändern der Temperaturkurve sind nicht vorgesehen. Dies soll ein reiner Überwachungs-Modus sein. Um die Temperaturkurve zu verändern zu können, sollte der Modus &amp;quot;PC-Profil&amp;quot; verwendet werden und die Temperaturkurve aus dem EEPROM importiert werden. Dann kann Selbige auch verändert und anschließend ausgeführt bzw. verändert in den EEPROM zurückgeschrieben werden. Dieser Modus stellt ein Äquivalent zur START/STOP-Tasten-Bedienung an der Platine dar und kann selbstverständlich parallel dazu genutzt werden. Die GUI also als Addon zum Stand-Alone-Betrieb.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;PC-Profil&amp;quot;&#039;&#039;&#039; - Es wird ein Programm (Temperaturkurve) ausgeführt welche zuvor am Computer erstellt / editiert wurde. In diesem Modus gibt der Computer Temperaturwerte vor, welche live über die USB-Schnittstelle zum PIC übertragen werden und mit dem dort integrierten PID-Regler ausgeführt werden. Das ermöglicht eine on-the-fly Veränderung der Temperaturkurve während des Backvorgangs. Temperaturkurven können aus Dateien oder dem EEPROM importiert und auch wieder exportiert werden. CSV-Dateien können ebenfalls importiert und exportiert werden. Die &amp;quot;Eingabe&amp;quot; der Temperaturkurve erfolgt entweder über Import (CSV/EEPROM), per Mausklick auf dem zentralen Diagramm oder im sog. DataGridView. Weiteres siehe Unterpunkt &amp;quot;Eingabe der Temperaturkurve (Reflowprofil)&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;manueller Ablauf&amp;quot;&#039;&#039;&#039; - In diesem Modus wird (im Gegensatz zu den oberen beiden Modi &amp;quot;Ofen-Profil&amp;quot; und &amp;quot;PC-Profil&amp;quot;) keine Temperatur geregelt. Hier wird die Leistung des Ofens in % eingestellt und gesteuert. Der PID-Regler ist nicht in Aktion. Die Temperatur, Temperaturänderung so wie der Temperaturverlauf werden selbstredend angezeigt bzw. im Diagramm dargestellt. Der Modus &amp;quot;manueller Ablauf&amp;quot; fährt ähnlich dem Modus &amp;quot;PC-Profil&amp;quot; die im DataGridView eingetragenen Leistungs-Zeit-Punkte ab. Für jeden Zeitpunkt ist eine Leistung vorgegeben. Die Eingabe erfolgt ähnlich wie unter &amp;quot;Eingabe der Temperaturkurve (Reflowprofil)&amp;quot; beschrieben. Nur eben, dass eine Leistung und keine Temperatur angegeben wird. Die Eingabe der Leistung kann nicht im Zeit-Temperatur-Diagramm erfolgen sondern mittels der Schieberegler oder direkt tabellarisch.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;manueller Modus&amp;quot;&#039;&#039;&#039; - Dieser Modus enthält 2 Submodi&lt;br /&gt;
** &amp;quot;manueller Leistungsmodus&amp;quot; - Auch in diesem Modus wird die Leistung gesteuert. Es wird keine Temperatur geregelt, der PID-Regler für die Temperatur ist nicht in Betrieb. Die Einstellung hier erfolgt über die drei Schieberegler oder über eine numerische Eingabe durch Klick auf die Leistungsangabe unter dem Schieberegler. Durch Klick auf die Texte &amp;quot;TOP&amp;quot;, &amp;quot;BOTTOM&amp;quot;, &amp;quot;FAN&amp;quot; (Oberhitze, Unterhitze, Lüfter) können selbige deaktiviert bzw. aktiviert werden. Auch in diesem Modus wird Temperatur, Temperaturänderung so wie der Temperaturverlauf dargestellt.&lt;br /&gt;
** &amp;quot;manueller Temperaturmodus&amp;quot; - Hier wird die Temperatur wieder mittels des Temperatur-PIDs geregelt. Die Temperatur wird entweder mittels Schieberegler (Ober- und Unterhitze-Regler sind jetzt gekoppelt) oder durch eine numerische Eingabe unterhalb der Schieberegler vorgegeben. Anzeige wie im &amp;quot;manuellen Leistungsmodus&amp;quot;. Der Lüfter kann unabhängig vom PID in seiner Leistung geregelt werden. Ein evtl. durch den Luftstrom verursachter Temperaturabfall wird vom PID selbstverständlich ausgeregelt (aus diesem Grunde ist es ja ein Regler).&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Programmieren&amp;quot;&#039;&#039;&#039; - Hier kann ein neues &#039;&#039;&#039;Temperatur&#039;&#039;&#039;-Programm für den EEPROM-Speicher des Ofens erstellt und editiert werden. Die Eingabemöglichkeiten sind unter &amp;quot;Eingabe der Temperaturkurve (Reflowprofil)&amp;quot; beschrieben. Dieser Modus ist zum reinen Programmieren des Ofens gedacht und ermöglicht keine weitere Steuerung oder Überwachung des Ofens.&lt;br /&gt;
&lt;br /&gt;
=== Eingabe der Temperaturkurve (Reflowprofil) ===&lt;br /&gt;
[[Datei:datagridview.png|thumb|right|400px|tabellarische Anzeige und Editiermöglichkeit der Temperaturkurve]]&lt;br /&gt;
Die Eingabe der Temperaturkurve erfolgt entweder über Import (CSV/EEPROM), per Mausklick auf dem zentralen Diagramm oder im sog. DataGridView (Excel-ähnliche Bedienung in tabellarischer Form). &lt;br /&gt;
&lt;br /&gt;
* CSV-Import + Export&lt;br /&gt;
* EEPROM-Import + Export&lt;br /&gt;
* Im rechts stehenden Screenshotbeispiel wird eine tabellarische Eingabeform mit einem DataGridView gezeigt: Die Temperatur (erster Temperaturpunkt = Punkt 0) von 100°C wird linear über einen Zeitraum von 0-30s verteilt. Bei 30s hat der Ofen die Temperatur von 100°C. Dafür setzt die Regelung die Oberhitze, die Unterhitze ein. Der Lüfter ist deaktiviert. In der Zeit von 30s bis 120s wird die Temperatur nun von 100°C auf 150°C linear angehoben. Von 120s bis 180s Backzeit steigt die Temperatur von 150°C auf 250°C. Von 180s bis 200s wird die Temperatur auf 280°C angehoben. Anschließend wird sie zwischen 200s und 220s auf 280°C gehalten (280°C@200s und 280°C@220s) um dann bis 240s wieder auf 250°C zu fallen. Bis zum Zeitpunkt 300s wird dann die Temperatur 30°C angestrebt. Zusätzlich ist der Lüfter nun aktiviert (soweit der Ofen eine Umluftfunktion besitzt). Bei Punkt 7 sind Ober- und Unterhitze deaktiviert nur noch der Lüfter kühlt. Da hier bei &amp;quot;Zeit[s]&amp;quot; die 0 eingetragen wird der Zustand (hier nur Lüfter an) für einen unendlich langen Zeitraum auf 0 gehalten. Also so lange wie das Programm aktiviert ist wird der Lüfter laufen. Natürlich könnte man hier auch z.B. 100°C und Zeitpunkt 0s eintragen. Dann würde der Ofen bis zum manuellen Beenden des Programms (klick auf STOP-Button oder Drücken des START/STOP-Tasters auf der Platine/Steuerung) 100°C halten.&lt;br /&gt;
* Alle Zellen des DataGridView sind editierbar (zur Veränderung der Temperatur, Zeitpunkt, ...)&lt;br /&gt;
* Direkter Klick auf das zentrale Temperatur-Zeit-Diagramm trägt den Zeitpunkt so wie die Temperatur unter dem Mauszeiger in die Tabelle (das DataGridView) ein. Die ausgewählte Zeile wird beschrieben oder überschrieben. Neue Zeilen (also Temperatur-Zeit-Punkte) können durch klick auf den &amp;quot;Plus-Button&amp;quot; hinzugefügt werden. Ebenso ist das Löschen oder Verschieben einer oder mehrerer Zeile gleichzeitig möglich.&lt;br /&gt;
&lt;br /&gt;
=== Beschreibung der Steuerungsmöglichkeiten ===&lt;br /&gt;
In Abhängigkeit des gewählten Modus bestehen einige Steuerungs-, Einstellungs- und Kontrollmöglichkeiten:&lt;br /&gt;
* &#039;&#039;&#039;Schieberegler&#039;&#039;&#039; für Temperatur od. Leistung (je nach Modus) für Oberhitze, Unterhitze und Lüfter. Je nach Hardwareausführung. &lt;br /&gt;
** Klick auf &amp;quot;TOP&amp;quot;, &amp;quot;BOTTOM&amp;quot; oder &amp;quot;FAN&amp;quot; aktiviert oder deaktiviert die entsprechende Funktion bzw. Hardware.&lt;br /&gt;
** Numerische Eingabe der Werte für die Schieberegler durch Klick auf die Anzeige unterhalb der Schieberegler. Werte können auch im deaktivierten Zustand angegeben werden. Die Übernahme erfolgt durch den &amp;quot;Aktivierungsklick&amp;quot; auf &amp;quot;TOP&amp;quot;, &amp;quot;BOTTOM&amp;quot; oder &amp;quot;FAN&amp;quot;&lt;br /&gt;
* &#039;&#039;&#039;T1, dT1, T2, dT2&#039;&#039;&#039; - Anzeige der gemessenen Temperatur so wie die momentane Temperaturänderung am jeweiligen Sensor. &lt;br /&gt;
* &#039;&#039;&#039;Bedienbuttons&#039;&#039;&#039;&lt;br /&gt;
** Play - Startet das Programm am angegebenen Startpunkt (siehe unten)&lt;br /&gt;
** Pause - Pausiert das Programm - weitere Pauseoptionen siehe unten&lt;br /&gt;
** Stop - Stopt den Programmablauf&lt;br /&gt;
** Vor / Zurück - Springt zwischen Temperaturpunkten hin und her. Dient zum überspringen oder zurückspringen zu gewissen Temperatur-Zeit-Punkten. Ermöglicht z.B. das Überspringen eines Ablaufes der eine lange Preheat- oder Dryphase hat.&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Status&amp;quot;&#039;&#039;&#039; - zeigt den aktuellen Zustand des Programms an (READY, START, WAITING, PAUSE, ...)&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;RESET&amp;quot;&#039;&#039;&#039; - setzt das (begonnene) Programm zurück. Beinhaltet neben dem Programmablauf auch das Zurücksetzen der graphischen Anzeige des Diagramms, etc.&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Startpunkt&amp;quot;&#039;&#039;&#039; - legt den ersten Punkt des Programmablaufes fest. &lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Wiederholungen&amp;quot;&#039;&#039;&#039; - ermöglicht das wiederholte Backen ohne das Programm händisch immer wieder neu starten zu müssen. Die Anzahl der Wiederholungen ist einstellbar (0 für unendlich viele) und es ist eine Wartezeit zwischen den Wiederholungen einstellbar. Alternativ kann eine Meldung nach jedem vollendeten Backvorgang abgegeben werden. Nach Bestätigung dieser wird die nächste Wiederholung ausgeführt.&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Pause&amp;quot;&#039;&#039;&#039; - Pauseneinstellungen. Hier sind Optionen wählbar was passieren soll, falls der Pausebutton betätigt wird:&lt;br /&gt;
** Pausezeit - gibt an wie lange die Pause dauern soll [s], danach fährt das Programm automatisch gemäß des gewählten Pausemodus fort. Für eine Pause ohne automatisches Fortfahren (Countdowntimer) &#039;0&#039; angeben.&lt;br /&gt;
** Pausemodus &amp;quot;aktuelle Temperatur halten, WarmUp, Fortsetzen&amp;quot; - Ofen hält die Temperatur (Zieltemperatur) des Zeitpunktes als der Pausebutton betätigt wurde. WarmUp bedeutet, dass nach dem Beenden des Pausemodus zunächst die Zieltemperatur wieder erreicht werden &#039;&#039;&#039;muss&#039;&#039;&#039; bevor der nächste Punkt angesteuert wird. Klingt paradox, wenn die Temperatur doch so und so gehalten wird, ist aber nicht so. Die Wahrscheinlichkeit ist hoch, dass der Pausemodus benutzt wird um die Ofentüre zu öffnen und Korrekturen an der Platine vorzunehmen. Unter Umständen ist die Heizung des Ofens jedoch nicht in der Lage den dadurch entstehenden Wärmeverlust zu kompensieren. Fährt das Programm dann sofort fort, so könnten evtl. kritische (Hoch-)Punkte des Lötprofils &amp;quot;unterfahren&amp;quot; werden. Dem wirkt WarmUp entgegen.&lt;br /&gt;
** Pausemodus &amp;quot;aktuelle Temperatur halten, Fortsetzen&amp;quot; - siehe oben, nur ohne WarmUp.&lt;br /&gt;
** Pausemodus &amp;quot;definierte Temperatur halten, WarmUp, Fortsetzen&amp;quot; - siehe oben. Statt der aktuellen Zieltemperatur wird jedoch nun im Pausemodus eine einzustellende Pausetemperatur gehalten. Mit WarmUp.&lt;br /&gt;
** Pausemodus &amp;quot;definierte Temperatur halten, Fortsetzen&amp;quot; - siehe oben, nur ohne WarmUp.&lt;br /&gt;
** &amp;quot;Pausetemperatur&amp;quot; - spezielle Temperatur die bei entsprechender Pausemoduswahl für die Dauer der Pause gehalten wird.&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Ende&amp;quot;&#039;&#039;&#039; - gibt an was am Ende eines durchlaufenen Reflow-Programms passieren soll. Ist der Wiederholungsmodus aktiviert, tritt dieses Ereignis erst nach Durchlauf aller Wiederholungen ein. Folgende Modi sind möglich:&lt;br /&gt;
** automatischer Reset - am Ende des Programms wird alles automatisch zurückgesetzt, alle Graphiken und Anzeigen gelöscht.&lt;br /&gt;
** manueller Reset - am Ende des Programms bleiben alle Anzeigen, Graphiken, etc erhalten und müssen vor Beginn eines neuen Reflowvorgangs händisch durch Klick auf &amp;quot;RESET&amp;quot; zurückgesetzt werden.&lt;br /&gt;
** Benutzermeldung - lässt eine Meldung erscheinen. Alle Anzeigen und Graphiken bleiben erhalten bis der Benutzer diese Meldung bestätigt. Mit Bestätigung dieser Meldung wird ein automatischer Reset vorgenommen.&lt;br /&gt;
&lt;br /&gt;
=== Loggen des Temperaturverlaufes ===&lt;br /&gt;
Es ist möglich jeden Backvorgang in eine CSV-Datei zu loggen. (Software- und PID-Einstellungen). Geloggte CSV-Dateien können eingelesen und im zentralen Temperatur-Zeit-Diagramm begutachtet werden. Ein Ist-Soll-Vergleich ist ebenso möglich wie die direkte Anzeige des Fehlers (&amp;quot;Ist minus Soll&amp;quot;). Dank CSV können die Daten auch mit anderen Programmen (Excel, etc.) weiterverarbeitet werden.&lt;br /&gt;
&lt;br /&gt;
== Ofen / Pizzaofen ==&lt;br /&gt;
=== Leistung und Volumen ===&lt;br /&gt;
=== Dämmung ===&lt;br /&gt;
=== Umluft ===&lt;br /&gt;
=== Bezugsquellen ===&lt;br /&gt;
=== Diskussionen im Forum ===&lt;br /&gt;
* Umfangreicher Thread u.A. Leistungsvermögen, Temperaturmessung und Dämmung [http://www.mikrocontroller.net/topic/270627]&lt;br /&gt;
&lt;br /&gt;
== FAQ ==&lt;br /&gt;
&lt;br /&gt;
* Q1: Ich habe einen PT100/PT1000 und möchte den anschließen. Geht das?&lt;br /&gt;
** A1: Ja natürlich. Dazu ist aber etwas externe Elektronik notwendig. Sowohl 2 ADC-Pins (mit 3V3 Betriebsspannung als fixe Referenzspannung), als auch die UART und SPI/I2C-Schnittstelle stehen zur freien Verfügung. Für PT100/PT1000 wird für vernünftige Messungen ohnehin eine Verstärkung (meist mit OPV) von Nöten sein. Da der PIC-interne ADC &amp;quot;nur&amp;quot; 10bit Auflösung bietet sollte ein externer 16bit ADC in Betracht gezogen werden um das Potential der PT100/PT1000 auszunutzen.&lt;br /&gt;
*Q2: Ich habe von günstigen Temperaturmessungen mit Dioden gehört. Geht das auch hier?&lt;br /&gt;
**A2: Ja. Die Vorwärtsspannung einer Diode verhält sich linear zur Sperrschichttemperatur. Diese Spannung (bei 25°C einer Si-Diode die bekannten 0,7V) kann mittels OPV verstärkt werden und auf einen Spannungsbereich von 0 ... 3V3 aufgebläht werden. Eine billige Lösung, auf Kosten der Genauigkeit. Doch eine Diode ist laut Datenblatt nur bis 150°C geeignet. Es ist also beim Löten mehr oder weniger Pfusch. Wenn ich schon eine Reflow-Steuerung baue, sollte ich doch nicht an ein paar Euro für eine gescheite Temperaturmessung sparen. Einige Anregungen vom Messgerätehersteller Keithley bzgl. der Halbleiterphysik mit interessanten Formeln [http://www.keithley.de/support/data?asset=50486]. Oder natürlich der Klassiker von Thomas Pfeifer [http://thomaspfeifer.net/backofen_smd_reflow.htm]. Oder ein Beitrag mit LT-Spice Simulation zum Thema [http://www.mikrocontroller.net/topic/270627#2833883].&lt;br /&gt;
* Q: God why ... ?&lt;br /&gt;
** A: Because we can !&lt;br /&gt;
*Q: Ich hab aber noch nie was mit 230V gemacht.&lt;br /&gt;
**A: Dann würde ich an Deiner Stelle dieses Projekt NICHT nachbauen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Verbesserungen Prototyp ===&lt;br /&gt;
* Bauteile weiter weg von Schraublöchern&lt;br /&gt;
* Dazu Kreis rund um Bohrung auf Bestückdruck&lt;br /&gt;
* Masseanbindung Quarz&lt;br /&gt;
* Klemmen weiter weg vom Rand&lt;br /&gt;
* Klemme und Sicherungshalter weiter auseinander, damit Schutzhabe draufpasst&lt;br /&gt;
* Bohrungen für Drossel 0,2mm größer machen&lt;br /&gt;
* Teilenummer für Conrad-USB-Buchse in BOM übernehmen.&lt;br /&gt;
* Stiftleiste P1  weiter weg von P2 und P4&lt;br /&gt;
* Varistoren näher an Klemmen platzieren&lt;br /&gt;
* Bestückvarianten defineren: 1. minimal 2. Standard 3. Externe Leds und Schalter.&lt;br /&gt;
* THT-Kondensatoren für Snubber - extra Footprint?&lt;br /&gt;
* Ggv. Stiftleistenbelegung für externe Leds so ändern, das keine extra Vorwiderstände notwendig sind.&lt;br /&gt;
* Wert der Drossel checken.(BOM Bestellnummer)&lt;br /&gt;
* Befestigungsbohrung für Drossel&lt;br /&gt;
&lt;br /&gt;
=== Errata Projekt ===&lt;br /&gt;
* LED-Beschriftung passt nicht ganz (Schltplan Netlabel OUT1,2,3,4 sind durcheinander gekommen)&lt;br /&gt;
* Schaltplan UNL2003 fehlerhafte Zuordnung IN5,6,7 &amp;lt;&amp;gt; OUT7,6,5&lt;br /&gt;
* Pullup-Widerstand bei MCLR doppelt. &lt;br /&gt;
* Brückengleichrichter / Optokoppler NICHT die im Schaltplan angegebenen Bestellnummern von Reichelt verwenden. BOM-Bauteile und Bestellnummern sind ok.&lt;br /&gt;
* Beim MOSFET R39 ist die Masseanbindung falsch. Es bestehen drei Möglichkeiten:&lt;br /&gt;
** 1. 0-R-Brücke für R39 einbauen und auf Strombegrenzung verzichten.&lt;br /&gt;
** 2. Eine Polyfuse mit Bauform 1206 einbauen. &lt;br /&gt;
** 3. Das kleine Leiterbahnstückchen zwischen R38 und R39 unterbrechen und statt dessen die Leiterbahn zwischen R39 und der Klemme mit der Durchkontaktierung bei R38 verbinden.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* Diskussion [http://www.mikrocontroller.net/topic/297217 Diskussion]&lt;br /&gt;
* Dextrel Nulldurchgang [http://www.dextrel.net/diyzerocrosser.htm Nulldurchgangschaltung]&lt;br /&gt;
* Gehäuse [http://www.hammondmfg.com/pdf/RM2055M.pdf Gehäuse Hammond]&lt;br /&gt;
* Bezugsquelle SOS Elektronik [http://www.soselectronic.com/?str=371&amp;amp;artnum=73595&amp;amp;name=hammond-ritec-rm2055m Gehäuse]&lt;br /&gt;
* Bezugsgquelle [http://www.druckerzubehoer.de/shop/product/catid/H-UNIVERSALZUBEHOER_HZB/subcatid/UNIVERSALZUBEHOER_GROUP1_HZB/productid/1727063-390722LA/site/1/lng/de_DE Mini USB Netzteil]&lt;br /&gt;
* Bezugsquelle Termoelement: Ebay (Typ K für ca. 2Euro)&lt;br /&gt;
* Bezugsquelle Steckdosen für Schalttafeleinbau: [http://www.artcase-shop.de/index.php?page=search&amp;amp;page_action=query&amp;amp;desc=on&amp;amp;sdesc=on&amp;amp;keywords=pce+105&amp;amp;x=0&amp;amp;y=0 Steckdosen]&lt;br /&gt;
* Bezugsquelle [http://www.schaeffer-ag.de/ Frontplatten]&lt;br /&gt;
 &lt;br /&gt;
[[Kategorie:Projekte]]&lt;br /&gt;
[[Kategorie:PIC]]&lt;br /&gt;
[[Kategorie:PIC-Boards]]&lt;br /&gt;
[[Kategorie:Platinen]]&lt;/div&gt;</summary>
		<author><name>Frankman</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=Datei:Steckdose.stp&amp;diff=76192</id>
		<title>Datei:Steckdose.stp</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=Datei:Steckdose.stp&amp;diff=76192"/>
		<updated>2013-06-01T12:56:02Z</updated>

		<summary type="html">&lt;p&gt;Frankman: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Frankman</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=Reflow_Ofen_Steuerung&amp;diff=76121</id>
		<title>Reflow Ofen Steuerung</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=Reflow_Ofen_Steuerung&amp;diff=76121"/>
		<updated>2013-05-29T22:12:00Z</updated>

		<summary type="html">&lt;p&gt;Frankman: /* PIC18LF2550 Grundbeschaltung */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Datei:RFB.jpg]]&lt;br /&gt;
== Einleitung ==&lt;br /&gt;
[[Datei:pcb.png|thumb|right|400px|unbestücktes PCB der Reflow-Ofen-Steuerung]]&lt;br /&gt;
Hier wird eine weitere Reflow-Ofen-Steuerung beschrieben.&lt;br /&gt;
=== Zum Nachbauen ===&lt;br /&gt;
* Spezifikation: [[Datei: Spec Reflow.pdf]]&lt;br /&gt;
* Schaltplan: [[Datei:Reflow.pdf]]&lt;br /&gt;
* Gerberdaten: [[Datei:Gerber Reflow.pdf]]&lt;br /&gt;
* Assemblydrawing: [[Datei:Assembly Reflow.pdf]] &lt;br /&gt;
* Altium-Files: [[Datei:Reflow.zip]]&lt;br /&gt;
* Stückliste als CSV: [[Datei:Reflow.csv]]&lt;br /&gt;
* Stückliste als Open Office: [[Datei:Reflow.ods]]&lt;br /&gt;
* PC Programm: TBD&lt;br /&gt;
* Sourcen PC-Programm: TBD&lt;br /&gt;
* PIC Programm (*.hex): TBD&lt;br /&gt;
* Sourcen Pic-Programm: TBD&lt;br /&gt;
&lt;br /&gt;
=== Motivation ===&lt;br /&gt;
Die Gründe, eine weitere Steuerung zu entwerfen, waren:&lt;br /&gt;
&lt;br /&gt;
# Die Möglichkeit, auch größere Öfen mit 2 Phasen betreiben zu können.&lt;br /&gt;
# Die Steuerung universell zu gestalten. Es sollte möglich sein, diese nicht nur zum Reflow löten zu verwenden....z.B:&lt;br /&gt;
- Temperatursteuerung für Klimakammer (Heizen, Kühlen)&lt;br /&gt;
- Dimmer mit USB&lt;br /&gt;
- Temperaturregler für ein Tisch-Fondue ( Temperatur halten)&lt;br /&gt;
- Drehzahlsteller mit USB&lt;br /&gt;
- Switchpack&lt;br /&gt;
&lt;br /&gt;
# Die Schaltung sollte in Altium entwickelt werden. (Warum kein Eagle??? Altium User wissen es.... :-)&lt;br /&gt;
# Die Schaltung sollte mit USB ausgestattet sein.&lt;br /&gt;
&lt;br /&gt;
=== Eigenschaften &amp;amp; Spezifikationen ===&lt;br /&gt;
* Temperaturmessung: bis zu 2x &#039;&#039;&#039;Thermoelement&#039;&#039;&#039; (K-Typ) mit MAX6675 (abgekündigt) oder Nachfolger MAX31855 (pin- aber nicht softwarekompatibel)&lt;br /&gt;
* &#039;&#039;&#039;Leistungsstufen&#039;&#039;&#039;: 3x voneinander unabhängige Triac 800V bei 25A, limitiert auf &#039;&#039;&#039;10A @ 250VAC&#039;&#039;&#039; (z.B. Oberhitze, Unterhitze, Umluft)&lt;br /&gt;
* &#039;&#039;&#039;Nulldurchgangserkennung&#039;&#039;&#039; ermöglicht Wellenpaket-, Phasenan- und abschnittssteuerung, galvanische Trennung selbiger&lt;br /&gt;
* 1x &#039;&#039;&#039; MOSFET-Ausgang&#039;&#039;&#039; PWM z.B. für 12V Lüfter, max. 55V 3,5A&lt;br /&gt;
* &#039;&#039;&#039;feste Programme&#039;&#039;&#039; im EEPROM über 2-Tasterbedienung und LEDs wähl- und ausführbar. &#039;&#039;&#039;PC-unabhängiger Betrieb&#039;&#039;&#039;. Beliebig viele Programme möglich, für die Auswahl stehen 4 benutzer-konfigurierbare LEDs zur Verfügung&lt;br /&gt;
* Betrieb am Computer für mehr Reflowprofile&lt;br /&gt;
* Mini-USB-Buchse zur Steuerung / Programmierung über GUI&lt;br /&gt;
* Günstiges passendes &#039;&#039;&#039;Gehäuse&#039;&#039;&#039;, alle LEDs und Taster auf Stiftleisten herausgeführt&lt;br /&gt;
* PID-Temperaturregler&lt;br /&gt;
* UART, SPI, I2C und 2x ADC auf Stiftleisten herausgeführt (-&amp;gt; Erweiterungen)&lt;br /&gt;
* Versorgung über USB (&amp;lt; 100mA), interne Versorgungsspannung 3,3V&lt;br /&gt;
* umfangreiche EMV-gerechte Entstörung für den Bedarfsfall&lt;br /&gt;
&lt;br /&gt;
== Technische Realisierung==&lt;br /&gt;
=== PIC18LF2550 Grundbeschaltung ===&lt;br /&gt;
[[Datei:osc_vs_vcc.png|thumb|right|200px|Taktraten und Versorgungsspannung PIC18F2550 vs. PIC18LF2550, Datenblatt S. 370/438]]&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 3/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Hier kommt ein PIC18&#039;&#039;&#039;L&#039;&#039;&#039;F2550 zum Einsatz. Er verfügt über eine USB-Schnittstelle und ist für Betriebsspannungen von 2 ... 5,5V ausgelegt. Sein Verwandter PIC18F2550 (ohne L) ist nicht für Betriebsspannungen &amp;lt; 4,2V ausgelegt. Dies ist bei USB sowieso nicht immer erfüllt und die Thermoelement-ICs vertragen ohnehin keine 5V, daher wurde die Betriebsspannung auf 3,3V reduziert. Neben Standard-Decoupling (100nF Kerko pro Vcc-Vss-Pärchen) wurde das ICSP-Interface in alt bewährter Pinbelegung (PICKit1,2,3) angebracht. PGD und PGC sind nicht weiter beschaltet, MCRL wird , wie immer als Resetpin verwendet. Der Resetschalter findet sich auf dem Top-Sheet (Schaltplan S. 1/22). Die Taktversorgung erfolgt über einen 24 MHz Quarz (-&amp;gt; USB). Man beachte diesbezüglich rechts stehende Grafik zu Taktraten und Versorgungsspannungen (Vdd bzw. auch Vcc genannt). Auch zu finden im Datenblatt des PICs auf Seite 370.&lt;br /&gt;
&lt;br /&gt;
=== PIC18LF2550 USB Beschaltung ===&lt;br /&gt;
[[Datei:usb_part.png|thumb|right|200px|PIC18(L)F2550&lt;br /&gt;
 Standard &lt;br /&gt;
USB-Beschaltung am PIC]]&lt;br /&gt;
[[Datei:usb_protect.png|thumb|right|200px|USB-Schutzbeschaltung und Mini-USB-Buchse]]&lt;br /&gt;
&lt;br /&gt;
Die Beschaltung der USB-Schnittstelle am PIC ist 1:1 aus dem Datenblatt übernommen. Zum Einsatz kommt eine Mini-USB-Buchse (J1).&lt;br /&gt;
Der Gedanke war: Erstens ein sehr preiswertes, fertiges Netzteil verwenden zu können, (ca. 3,67 € bei druckerzubehoer.de) und zweitens, die Steuerung auch mit dem PC / Laptop versorgen zu können.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 4/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
FER1,2 und C7 filtern den Schirm nach GND. Standardmäßig wird man hier wohl 0-Ohm-Widerstände einsetzen. Falls ein Besuch im EMV-Labor geplant ist, weicht man auf den Ferrit aus. C5 und C6 filtern das Signal zusammen mit der Common-Mode-DrosselL1. Die Drossel kann mit den 0-Ohm-Brücken R8 und R9 überbrückt (gespart) werden. IC2 ist als ESD-Schutz gedacht und kann ebenfalls bei ausgeprägten Kostenbewustsein gespart werden. Die Widerstände R6 und R7 dürfen NICHT bestückt werden. FER1,2, C5, IC2 müssen nicht zwingend bestückt werden. Die Bestückung wurde vorgehalten um im Problemfall einfache Abhilfe schaffen zu können.&lt;br /&gt;
&lt;br /&gt;
=== 3,3V Spannungsversorgung ===&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 2/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Die 3,3V Versorgungsspannung für die gesamte Platine wird aus V_USB mittels des LDO Spannungsreglers TOREX - XC6206P332MR abgeleitet. Günstig, SOT-23, klein, 2x 1µF Kondensatoren benötigt, 3,3V max. 250mA. Der hat auch einen sehr kleinen Ruhestrom.&lt;br /&gt;
&lt;br /&gt;
=== Taster ===&lt;br /&gt;
*Der Resettaster zieht den MCLR-Pin nach GND und löst damit den Reset aus. MCLR  ist mit einem 10k Pullup versehen.&lt;br /&gt;
*Die übrigen beiden Taster ziehen RA4 bzw. RB5 ebenfalls nach GND.&lt;br /&gt;
&lt;br /&gt;
=== LEDs + ULN2003L ===&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 11/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Um alle LEDs auf der Platine (3x Optotriac + 7x Status) ansteuern zu können wurde auf das 7fach Darlington-Array ULN2003L zurückgegriffen. Es dient desweiteren auch als &amp;quot;MOSFET-Treiber für Arme&amp;quot;. Alle LEDs werden von diesem Transistor-Array nach Masse geschaltet. Dient der Entlastung der PIC-Ausgänge. Und kostet ja auch nicht viel.&lt;br /&gt;
&lt;br /&gt;
=== MOSFET-Leistungsausgang ===&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 22/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Hier kommt der einfacher N-Kanal MOSFET (LogicLevel) PHT8N06LT zum Einsatz. Er wird über das ULN2003L Array getrieben und ermöglicht den Anschluss eines DC-Verbrauchers mit max. 55V bei 3,5A. Hier könnte beispielsweise ein PC-Lüfter zur Kühlung od. Umluft angeschlossen und über PWM geregelt/gesteuert werden. Ein Gatewiderstand von 100 Ohm ist zum Schutz des Treibers vorgesehen. Eine 0-Ohm-Brücke ist stattdessen aber auch möglich, wenn man eine höhere Leistung schalten möchte.Die Leiterbahnen sollten die 3A schon hergeben. Der 100 Ohm Widerstand bildet eine Stromquelle. Sobald der Strom durch den MOSFET und den Widerstand 33mA erreicht, sinkt UGS gegen 0 V. Folge: Der Mosfet sperrt ( und bleibt ganz....)&lt;br /&gt;
Es kann hier prinzipiell auch ein anderer Mosfet im SOT223-Gehäuse zum Einsatz kommen. Achten sollte man darauf, das der MOSFET schon bei 3,3V Ugs gut leiten sollte.&lt;br /&gt;
&lt;br /&gt;
=== Nulldurchgangserkennung ===&lt;br /&gt;
[[Datei:zerocross.png|thumb|right|200px|Nulldurchgangserkennung]]&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 5/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Die Nulldurchgangserkennung erfolgt nach einer sehr bekannten - jedoch ausgeklügelten - Schaltung.  [http://www.dextrel.net/diyzerocrosser.htm]&lt;br /&gt;
&lt;br /&gt;
ACHTUNG: DER IM SCHALTPLAN VERZEICHNETE OPTOKOPPLER und BRÜCKENGLEICHRICHTER VON REICHELT DARF KEINESFALLS VERWENDET WERDEN! Pinbelegung! Bitte den Optokoppler aus der Stückliste nehmen!&lt;br /&gt;
&lt;br /&gt;
Während einer Halbwelle wird C14 über R33 und R35 bzw. D5 geladen. Währenddessen ist T1 gesperrt. Sobald die Wechselspannung (L1-N über Spannungsteiler (R33+R35) / R34) kleiner ist als die Spannung über C14, steuert T1 durch. Dann entlädt sich C14 über den LED-Vorwiderstand R32. Der durch-steuernde Optokoppler zieht die Sync-Leitung nach GND. (Pullup Sync-Leitung = R31). Dies löst beim PIC auf INT2 einen Interrupt aus. &lt;br /&gt;
&lt;br /&gt;
Dieser Interrupt ermöglicht eine präzise Wellenpaket-, Phasenanschnittsteuerung je nach Bedarf. Das Schalten im Nulldurchgang bei der Wellenpaketsteuerung reduziert EMV-Störungen. Für Phasenanschnitt ist prinzipbedingt ohnehin eine Nulldurchgangserkennung notwendig. Außerdem liefert sie eine völlig ausreichend genaue Zeitbasis für alle Programmabläufe.&lt;br /&gt;
&lt;br /&gt;
=== Triac-Ausgänge + Snubber ===&lt;br /&gt;
[[Datei:triac.png|thumb|right|200px|Triac-Ausgangsbeschaltung]]&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 19,20,21/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Die Ansteuerung des eigentlichen Leistungstriacs BTA140-800 erfolgt über den Optotriac IS6005. Der Strom durch Letzteren wird durch R1x limitiert (Vorwiderstand). R2x und R5x limitieren wiederum den Strom durch den Optotriac. Wenn dieser zündet so folgt unmittelbar der &amp;quot;Leistungstriac&amp;quot; der dann die Last schaltet.&lt;br /&gt;
&lt;br /&gt;
S1x ist ein Sicherungshalter um die Lasten einzeln absichern zu können. Wert 10A Mittelträge.&lt;br /&gt;
&lt;br /&gt;
R3x, R4x, C3x bilden ein Snubber-Network, L1X verhindert eine zu schnelle Stromanstiegsgeschwindikeit damit der Triac nicht &amp;quot;von selbst&amp;quot; zündet. Weglassen äußert sich meist in einem fast nicht hörbaren Click. Damit zeigt einem dann der Triac, dass er ab jetzt für immer recht niederohmig geworden ist. Die Regelung der Temperatur braucht dann nicht mehr über den Prozessor erfolgen, sondern nur noch mit dem Ein-/Ausschalter..... :-)&lt;br /&gt;
&lt;br /&gt;
=== Thermoelemente (MAX6675/MAX31855)  ===&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 6,7/22&#039;&#039;&#039;&lt;br /&gt;
Der inzwischen abgekündigte MAX6675 bzw. sein ehrenwerter Nachfolger MAX31855 sind einfach zu handhabende Thermoelement-ICs mit Kaltstellenkompensation. Thermoelemente funktionieren durch das Verschweißen zweier verschiedener Legierungen (beim K-Typ Thermoelemnt Ni und CrNi). Durch den durch die Umgebungstemperatur bedingten Wärmefluss zwischen beiden entsteht ein elektrische Spannung. Diese wird von besagten ICs verstärkt und digitalisiert (ADC). Diese Spannung / Temperatur ist natürlich wieder relativ zur Umgebungstemperatur an der Kaltstelle (Kontaktierung der beiden Drähte mit dem Messinstrument). Daher messen diese ICs auch gleich die Umgebungstemperatur (Kaltstellenkompensation genannt) mit, verrechnen das und geben das Ergebnis auf der SPI-Schnittstelle aus. MAX6675 leistet 12bit also 0,25°C Auflösung (nicht Genauigkeit!) über einen Temperaturbereich von 0°C to +1024°C. Außerdem wird ein nicht/fehlerhaft angeschlossenes Thermoelement erkannt. Der Thermocouple-IC wird an die SPI-Schnittstelle des PICs angeschlossen (hier MSSP genannt). &lt;br /&gt;
&lt;br /&gt;
MAX6675 und MAX31855 scheinen entgegen der Adafruit-Information [http://www.adafruit.com/products/269] doch pinkompatibel zu sein - die Ansteuerung unterscheidet sich jedoch definitiv. (Zitat: &amp;quot;Now uses the MAX31855K instead of the MAX6675, so it can measure a wider temperature measurement range. Please note! the MAX31855 is not pin compatible or drop-in code compatible with the MAX6675. We do have an Arduino library for both chips but you&#039;ll need to adjust any existing MAX6675 designs for the mew MAX31855. The MAX6675 has been discontinued by Maxim.&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Es wurden 2 dieser ICs und damit 2 Temperaturmessstellen vorgesehen. Dies ermöglich die Messung für eine Regelung der Temperatur so wie eine zusätzliche Überwachung kritischer Bauteile (z.B. ICs oder LEDs). Die Minimalbestückung sieht einen MAX6675/MAX31855 vor. Die Auswahl in der Firmware erfolgt über einen der beiden GPIO-Pins RA5 oder RA0 via dem ChipSelect (CS) des MAX6675/MAX31855.&lt;br /&gt;
&lt;br /&gt;
Neben dem MAX6675/MAX31855 wurde ein Decoupling-Kondensator (C8x, Standard 100nF) so wie ein weiterer im Messpfad (C9x) zur Zwecken der Entstörung vorgeshen. C9x 100nF sollte nur bestückt werden wenn Probleme bei der Temperaturmessung entstehen (z.B. unrealstisch stark schwankende Werte).&lt;br /&gt;
&lt;br /&gt;
=== ADC, SPI, UART &amp;amp; I2C Stiftleiste ===&lt;br /&gt;
ADC, SPI, UART und I2C sind zu Zwecken der Kalibrierung / Erweiterung / Einstellung / Debugging auf Stiftleisten herausgeführt:&lt;br /&gt;
Ähnlichkeiten mit dem FTDI-USB-TTL-Kabel bzw. Arduino XXX Bla Bla Bla Schnittstellenkonverter sind natürlich rein zufällig.&lt;br /&gt;
&lt;br /&gt;
Die I2C-Schnittstelle wurde auf eine Stiftleiste geführt, um z.B. einem LM75 o.ä. anschließen zu können. Damit stehen zur Kalibrierung der Thermoelemente genaue Temperaturen zur Verfügung.&lt;br /&gt;
&lt;br /&gt;
Die Stiftleisten haben alle ein Raster von 2,54mm. So können Pin-Header, Wannenstecker oder ähnliches verwendet werden.&lt;br /&gt;
&lt;br /&gt;
Da ja viele Leute eigene Vorstellungen bezüglich der Frontplattengestaltung haben, wurden auch die Taster und LEDs auf Stiftleisten geführt.&lt;br /&gt;
&lt;br /&gt;
=== Kühlkörper ===&lt;br /&gt;
Da die Triacs der Steuerung für bis zu 10A pro Kanal ausgelegt sind, kann man auf die Kühlkörper nicht verzichten. Es fallen bei 10A bis zu 13 Watt Wärme pro Triac ab. Falls mann auf die Kühlkörper doch verzichten möchte, sollte man darauf achten, die Triacs mit dem Kopf nach unten einzubauen. Diese können sich dann bei Überlast ganz von selber auslöten.... :-)&lt;br /&gt;
&lt;br /&gt;
=== Gehäuse ===&lt;br /&gt;
Die Leiterplatte wurde für ein Gehäuse von Hammond entwickelt.&lt;br /&gt;
Das Gehäuse ist zwar keine Schönheit, aber doch recht preiswert.&lt;br /&gt;
Typenbezeichnung: RM2055M&lt;br /&gt;
&lt;br /&gt;
== Firmware PIC ==&lt;br /&gt;
Die Entwicklung der Firmware für den PIC18LF2550  geht mit MPlab 8 respektive dem C18 Compiler von Statten. MPlab ist kostenlos, der C18 Compiler bis auf die stärkste Optimierungsstufe ebenfalls. Die Quellen für die Firmware werden auch offengelegt.&lt;br /&gt;
=== Programmstruktur- und ablauf ===&lt;br /&gt;
Nach anfänglicher Initialisierung des PIC startet die Statemachine [http://http://www.mikrocontroller.net/articles/Statemachine] [http://http://de.wikipedia.org/wiki/Endlicher_Automat]. Neben ihr findet in der main-Funktion nur noch die Abfrage der beiden Bedientasten statt. Mit dem Tastendruck wird zum Zwecke der Entprellung ein Timer gestartet. Alles Andere (incl. PID-Regelung, Wellenpaket- bzw. Phasenan- und Phasenabschnittssteuerung und USB) ist interruptbasiert.&lt;br /&gt;
&lt;br /&gt;
=== Taktversorgung, Nulldurchgangserkennung und Zeitbasis ===&lt;br /&gt;
=== USB ===&lt;br /&gt;
=== SPI für MAX6675 ===&lt;br /&gt;
=== SPI für MAX31855 ===&lt;br /&gt;
&lt;br /&gt;
=== Wellenpaketsteuerung ===&lt;br /&gt;
=== Phasenanschnitt ===&lt;br /&gt;
&lt;br /&gt;
=== PWM für MOSFET ===&lt;br /&gt;
&lt;br /&gt;
== PC-Software (GUI) ==&lt;br /&gt;
[[Datei:gui_alpha.png|thumb|right|300px|Screenshot der GUI (noch Alpha) für den Reflow-Ofen-Controller]]&lt;br /&gt;
&lt;br /&gt;
Die GUI (englisch Graphical User Interface) ist der Einfachheit halber in VB.net programmiert und momentan noch im Alpha-Stadium. Auch hierfür liegen die Quellen später selbstverständlich offen.&lt;br /&gt;
&lt;br /&gt;
=== Funktionen und Modi ===&lt;br /&gt;
[[Datei:modi.png|thumb|right|400px|Auswahl der beschriebenen Modi durch Klick]]&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Ofen-Profil&amp;quot;&#039;&#039;&#039; - Es wird ein Programm (Temperaturkurve) aus dem EEPROM des Reflow-Ofens ausgeführt. Der Backvorgang kann mit der Software gesteuert (START, STOP, ...) und überwacht werden. Hierzu stehen Temperatur, Temperaturänderung, Heizleistung (Ober- und Unterhitze, Lüfter) so wie die graphische Darstellung im zentralen Diagramm zur Verfügung. Eingriffsmöglichkeiten, wie das Ändern der Temperaturkurve sind nicht vorgesehen. Dies soll ein reiner Überwachungs-Modus sein. Um die Temperaturkurve zu verändern zu können, sollte der Modus &amp;quot;PC-Profil&amp;quot; verwendet werden und die Temperaturkurve aus dem EEPROM importiert werden. Dann kann Selbige auch verändert und anschließend ausgeführt bzw. verändert in den EEPROM zurückgeschrieben werden. Dieser Modus stellt ein Äquivalent zur START/STOP-Tasten-Bedienung an der Platine dar und kann selbstverständlich parallel dazu genutzt werden. Die GUI also als Addon zum Stand-Alone-Betrieb.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;PC-Profil&amp;quot;&#039;&#039;&#039; - Es wird ein Programm (Temperaturkurve) ausgeführt welche zuvor am Computer erstellt / editiert wurde. In diesem Modus gibt der Computer Temperaturwerte vor, welche live über die USB-Schnittstelle zum PIC übertragen werden und mit dem dort integrierten PID-Regler ausgeführt werden. Das ermöglicht eine on-the-fly Veränderung der Temperaturkurve während des Backvorgangs. Temperaturkurven können aus Dateien oder dem EEPROM importiert und auch wieder exportiert werden. CSV-Dateien können ebenfalls importiert und exportiert werden. Die &amp;quot;Eingabe&amp;quot; der Temperaturkurve erfolgt entweder über Import (CSV/EEPROM), per Mausklick auf dem zentralen Diagramm oder im sog. DataGridView. Weiteres siehe Unterpunkt &amp;quot;Eingabe der Temperaturkurve (Reflowprofil)&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;manueller Ablauf&amp;quot;&#039;&#039;&#039; - In diesem Modus wird (im Gegensatz zu den oberen beiden Modi &amp;quot;Ofen-Profil&amp;quot; und &amp;quot;PC-Profil&amp;quot;) keine Temperatur geregelt. Hier wird die Leistung des Ofens in % eingestellt und gesteuert. Der PID-Regler ist nicht in Aktion. Die Temperatur, Temperaturänderung so wie der Temperaturverlauf werden selbstredend angezeigt bzw. im Diagramm dargestellt. Der Modus &amp;quot;manueller Ablauf&amp;quot; fährt ähnlich dem Modus &amp;quot;PC-Profil&amp;quot; die im DataGridView eingetragenen Leistungs-Zeit-Punkte ab. Für jeden Zeitpunkt ist eine Leistung vorgegeben. Die Eingabe erfolgt ähnlich wie unter &amp;quot;Eingabe der Temperaturkurve (Reflowprofil)&amp;quot; beschrieben. Nur eben, dass eine Leistung und keine Temperatur angegeben wird. Die Eingabe der Leistung kann nicht im Zeit-Temperatur-Diagramm erfolgen sondern mittels der Schieberegler oder direkt tabellarisch.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;manueller Modus&amp;quot;&#039;&#039;&#039; - Dieser Modus enthält 2 Submodi&lt;br /&gt;
** &amp;quot;manueller Leistungsmodus&amp;quot; - Auch in diesem Modus wird die Leistung gesteuert. Es wird keine Temperatur geregelt, der PID-Regler für die Temperatur ist nicht in Betrieb. Die Einstellung hier erfolgt über die drei Schieberegler oder über eine numerische Eingabe durch Klick auf die Leistungsangabe unter dem Schieberegler. Durch Klick auf die Texte &amp;quot;TOP&amp;quot;, &amp;quot;BOTTOM&amp;quot;, &amp;quot;FAN&amp;quot; (Oberhitze, Unterhitze, Lüfter) können selbige deaktiviert bzw. aktiviert werden. Auch in diesem Modus wird Temperatur, Temperaturänderung so wie der Temperaturverlauf dargestellt.&lt;br /&gt;
** &amp;quot;manueller Temperaturmodus&amp;quot; - Hier wird die Temperatur wieder mittels des Temperatur-PIDs geregelt. Die Temperatur wird entweder mittels Schieberegler (Ober- und Unterhitze-Regler sind jetzt gekoppelt) oder durch eine numerische Eingabe unterhalb der Schieberegler vorgegeben. Anzeige wie im &amp;quot;manuellen Leistungsmodus&amp;quot;. Der Lüfter kann unabhängig vom PID in seiner Leistung geregelt werden. Ein evtl. durch den Luftstrom verursachter Temperaturabfall wird vom PID selbstverständlich ausgeregelt (aus diesem Grunde ist es ja ein Regler).&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Programmieren&amp;quot;&#039;&#039;&#039; - Hier kann ein neues &#039;&#039;&#039;Temperatur&#039;&#039;&#039;-Programm für den EEPROM-Speicher des Ofens erstellt und editiert werden. Die Eingabemöglichkeiten sind unter &amp;quot;Eingabe der Temperaturkurve (Reflowprofil)&amp;quot; beschrieben. Dieser Modus ist zum reinen Programmieren des Ofens gedacht und ermöglicht keine weitere Steuerung oder Überwachung des Ofens.&lt;br /&gt;
&lt;br /&gt;
=== Eingabe der Temperaturkurve (Reflowprofil) ===&lt;br /&gt;
[[Datei:datagridview.png|thumb|right|400px|tabellarische Anzeige und Editiermöglichkeit der Temperaturkurve]]&lt;br /&gt;
Die Eingabe der Temperaturkurve erfolgt entweder über Import (CSV/EEPROM), per Mausklick auf dem zentralen Diagramm oder im sog. DataGridView (Excel-ähnliche Bedienung in tabellarischer Form). &lt;br /&gt;
&lt;br /&gt;
* CSV-Import + Export&lt;br /&gt;
* EEPROM-Import + Export&lt;br /&gt;
* Im rechts stehenden Screenshotbeispiel wird eine tabellarische Eingabeform mit einem DataGridView gezeigt: Die Temperatur (erster Temperaturpunkt = Punkt 0) von 100°C wird linear über einen Zeitraum von 0-30s verteilt. Bei 30s hat der Ofen die Temperatur von 100°C. Dafür setzt die Regelung die Oberhitze, die Unterhitze ein. Der Lüfter ist deaktiviert. In der Zeit von 30s bis 120s wird die Temperatur nun von 100°C auf 150°C linear angehoben. Von 120s bis 180s Backzeit steigt die Temperatur von 150°C auf 250°C. Von 180s bis 200s wird die Temperatur auf 280°C angehoben. Anschließend wird sie zwischen 200s und 220s auf 280°C gehalten (280°C@200s und 280°C@220s) um dann bis 240s wieder auf 250°C zu fallen. Bis zum Zeitpunkt 300s wird dann die Temperatur 30°C angestrebt. Zusätzlich ist der Lüfter nun aktiviert (soweit der Ofen eine Umluftfunktion besitzt). Bei Punkt 7 sind Ober- und Unterhitze deaktiviert nur noch der Lüfter kühlt. Da hier bei &amp;quot;Zeit[s]&amp;quot; die 0 eingetragen wird der Zustand (hier nur Lüfter an) für einen unendlich langen Zeitraum auf 0 gehalten. Also so lange wie das Programm aktiviert ist wird der Lüfter laufen. Natürlich könnte man hier auch z.B. 100°C und Zeitpunkt 0s eintragen. Dann würde der Ofen bis zum manuellen Beenden des Programms (klick auf STOP-Button oder Drücken des START/STOP-Tasters auf der Platine/Steuerung) 100°C halten.&lt;br /&gt;
* Alle Zellen des DataGridView sind editierbar (zur Veränderung der Temperatur, Zeitpunkt, ...)&lt;br /&gt;
* Direkter Klick auf das zentrale Temperatur-Zeit-Diagramm trägt den Zeitpunkt so wie die Temperatur unter dem Mauszeiger in die Tabelle (das DataGridView) ein. Die ausgewählte Zeile wird beschrieben oder überschrieben. Neue Zeilen (also Temperatur-Zeit-Punkte) können durch klick auf den &amp;quot;Plus-Button&amp;quot; hinzugefügt werden. Ebenso ist das Löschen oder Verschieben einer oder mehrerer Zeile gleichzeitig möglich.&lt;br /&gt;
&lt;br /&gt;
=== Beschreibung der Steuerungsmöglichkeiten ===&lt;br /&gt;
In Abhängigkeit des gewählten Modus bestehen einige Steuerungs-, Einstellungs- und Kontrollmöglichkeiten:&lt;br /&gt;
* &#039;&#039;&#039;Schieberegler&#039;&#039;&#039; für Temperatur od. Leistung (je nach Modus) für Oberhitze, Unterhitze und Lüfter. Je nach Hardwareausführung. &lt;br /&gt;
** Klick auf &amp;quot;TOP&amp;quot;, &amp;quot;BOTTOM&amp;quot; oder &amp;quot;FAN&amp;quot; aktiviert oder deaktiviert die entsprechende Funktion bzw. Hardware.&lt;br /&gt;
** Numerische Eingabe der Werte für die Schieberegler durch Klick auf die Anzeige unterhalb der Schieberegler. Werte können auch im deaktivierten Zustand angegeben werden. Die Übernahme erfolgt durch den &amp;quot;Aktivierungsklick&amp;quot; auf &amp;quot;TOP&amp;quot;, &amp;quot;BOTTOM&amp;quot; oder &amp;quot;FAN&amp;quot;&lt;br /&gt;
* &#039;&#039;&#039;T1, dT1, T2, dT2&#039;&#039;&#039; - Anzeige der gemessenen Temperatur so wie die momentane Temperaturänderung am jeweiligen Sensor. &lt;br /&gt;
* &#039;&#039;&#039;Bedienbuttons&#039;&#039;&#039;&lt;br /&gt;
** Play - Startet das Programm am angegebenen Startpunkt (siehe unten)&lt;br /&gt;
** Pause - Pausiert das Programm - weitere Pauseoptionen siehe unten&lt;br /&gt;
** Stop - Stopt den Programmablauf&lt;br /&gt;
** Vor / Zurück - Springt zwischen Temperaturpunkten hin und her. Dient zum überspringen oder zurückspringen zu gewissen Temperatur-Zeit-Punkten. Ermöglicht z.B. das Überspringen eines Ablaufes der eine lange Preheat- oder Dryphase hat.&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Status&amp;quot;&#039;&#039;&#039; - zeigt den aktuellen Zustand des Programms an (READY, START, WAITING, PAUSE, ...)&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;RESET&amp;quot;&#039;&#039;&#039; - setzt das (begonnene) Programm zurück. Beinhaltet neben dem Programmablauf auch das Zurücksetzen der graphischen Anzeige des Diagramms, etc.&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Startpunkt&amp;quot;&#039;&#039;&#039; - legt den ersten Punkt des Programmablaufes fest. &lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Wiederholungen&amp;quot;&#039;&#039;&#039; - ermöglicht das wiederholte Backen ohne das Programm händisch immer wieder neu starten zu müssen. Die Anzahl der Wiederholungen ist einstellbar (0 für unendlich viele) und es ist eine Wartezeit zwischen den Wiederholungen einstellbar. Alternativ kann eine Meldung nach jedem vollendeten Backvorgang abgegeben werden. Nach Bestätigung dieser wird die nächste Wiederholung ausgeführt.&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Pause&amp;quot;&#039;&#039;&#039; - Pauseneinstellungen. Hier sind Optionen wählbar was passieren soll, falls der Pausebutton betätigt wird:&lt;br /&gt;
** Pausezeit - gibt an wie lange die Pause dauern soll [s], danach fährt das Programm automatisch gemäß des gewählten Pausemodus fort. Für eine Pause ohne automatisches Fortfahren (Countdowntimer) &#039;0&#039; angeben.&lt;br /&gt;
** Pausemodus &amp;quot;aktuelle Temperatur halten, WarmUp, Fortsetzen&amp;quot; - Ofen hält die Temperatur (Zieltemperatur) des Zeitpunktes als der Pausebutton betätigt wurde. WarmUp bedeutet, dass nach dem Beenden des Pausemodus zunächst die Zieltemperatur wieder erreicht werden &#039;&#039;&#039;muss&#039;&#039;&#039; bevor der nächste Punkt angesteuert wird. Klingt paradox, wenn die Temperatur doch so und so gehalten wird, ist aber nicht so. Die Wahrscheinlichkeit ist hoch, dass der Pausemodus benutzt wird um die Ofentüre zu öffnen und Korrekturen an der Platine vorzunehmen. Unter Umständen ist die Heizung des Ofens jedoch nicht in der Lage den dadurch entstehenden Wärmeverlust zu kompensieren. Fährt das Programm dann sofort fort, so könnten evtl. kritische (Hoch-)Punkte des Lötprofils &amp;quot;unterfahren&amp;quot; werden. Dem wirkt WarmUp entgegen.&lt;br /&gt;
** Pausemodus &amp;quot;aktuelle Temperatur halten, Fortsetzen&amp;quot; - siehe oben, nur ohne WarmUp.&lt;br /&gt;
** Pausemodus &amp;quot;definierte Temperatur halten, WarmUp, Fortsetzen&amp;quot; - siehe oben. Statt der aktuellen Zieltemperatur wird jedoch nun im Pausemodus eine einzustellende Pausetemperatur gehalten. Mit WarmUp.&lt;br /&gt;
** Pausemodus &amp;quot;definierte Temperatur halten, Fortsetzen&amp;quot; - siehe oben, nur ohne WarmUp.&lt;br /&gt;
** &amp;quot;Pausetemperatur&amp;quot; - spezielle Temperatur die bei entsprechender Pausemoduswahl für die Dauer der Pause gehalten wird.&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Ende&amp;quot;&#039;&#039;&#039; - gibt an was am Ende eines durchlaufenen Reflow-Programms passieren soll. Ist der Wiederholungsmodus aktiviert, tritt dieses Ereignis erst nach Durchlauf aller Wiederholungen ein. Folgende Modi sind möglich:&lt;br /&gt;
** automatischer Reset - am Ende des Programms wird alles automatisch zurückgesetzt, alle Graphiken und Anzeigen gelöscht.&lt;br /&gt;
** manueller Reset - am Ende des Programms bleiben alle Anzeigen, Graphiken, etc erhalten und müssen vor Beginn eines neuen Reflowvorgangs händisch durch Klick auf &amp;quot;RESET&amp;quot; zurückgesetzt werden.&lt;br /&gt;
** Benutzermeldung - lässt eine Meldung erscheinen. Alle Anzeigen und Graphiken bleiben erhalten bis der Benutzer diese Meldung bestätigt. Mit Bestätigung dieser Meldung wird ein automatischer Reset vorgenommen.&lt;br /&gt;
&lt;br /&gt;
=== Loggen des Temperaturverlaufes ===&lt;br /&gt;
Es ist möglich jeden Backvorgang in eine CSV-Datei zu loggen. (Software- und PID-Einstellungen). Geloggte CSV-Dateien können eingelesen und im zentralen Temperatur-Zeit-Diagramm begutachtet werden. Ein Ist-Soll-Vergleich ist ebenso möglich wie die direkte Anzeige des Fehlers (&amp;quot;Ist minus Soll&amp;quot;). Dank CSV können die Daten auch mit anderen Programmen (Excel, etc.) weiterverarbeitet werden.&lt;br /&gt;
&lt;br /&gt;
== Ofen / Pizzaofen ==&lt;br /&gt;
=== Leistung und Volumen ===&lt;br /&gt;
=== Dämmung ===&lt;br /&gt;
=== Umluft ===&lt;br /&gt;
=== Bezugsquellen ===&lt;br /&gt;
=== Diskussionen im Forum ===&lt;br /&gt;
* Umfangreicher Thread u.A. Leistungsvermögen, Temperaturmessung und Dämmung [http://www.mikrocontroller.net/topic/270627]&lt;br /&gt;
&lt;br /&gt;
== FAQ ==&lt;br /&gt;
&lt;br /&gt;
* Q1: Ich habe einen PT100/PT1000 und möchte den anschließen. Geht das?&lt;br /&gt;
** A1: Ja natürlich. Dazu ist aber etwas externe Elektronik notwendig. Sowohl 2 ADC-Pins (mit 3V3 Betriebsspannung als fixe Referenzspannung), als auch die UART und SPI/I2C-Schnittstelle stehen zur freien Verfügung. Für PT100/PT1000 wird für vernünftige Messungen ohnehin eine Verstärkung (meist mit OPV) von Nöten sein. Da der PIC-interne ADC &amp;quot;nur&amp;quot; 10bit Auflösung bietet sollte ein externer 16bit ADC in Betracht gezogen werden um das Potential der PT100/PT1000 auszunutzen.&lt;br /&gt;
*Q2: Ich habe von günstigen Temperaturmessungen mit Dioden gehört. Geht das auch hier?&lt;br /&gt;
**A2: Ja. Die Vorwärtsspannung einer Diode verhält sich linear zur Sperrschichttemperatur. Diese Spannung (bei 25°C einer Si-Diode die bekannten 0,7V) kann mittels OPV verstärkt werden und auf einen Spannungsbereich von 0 ... 3V3 aufgebläht werden. Eine billige Lösung, auf Kosten der Genauigkeit. Doch eine Diode ist laut Datenblatt nur bis 150°C geeignet. Es ist also beim Löten mehr oder weniger Pfusch. Wenn ich schon eine Reflow-Steuerung baue, sollte ich doch nicht an ein paar Euro für eine gescheite Temperaturmessung sparen. Einige Anregungen vom Messgerätehersteller Keithley bzgl. der Halbleiterphysik mit interessanten Formeln [http://www.keithley.de/support/data?asset=50486]. Oder natürlich der Klassiker von Thomas Pfeifer [http://thomaspfeifer.net/backofen_smd_reflow.htm]. Oder ein Beitrag mit LT-Spice Simulation zum Thema [http://www.mikrocontroller.net/topic/270627#2833883].&lt;br /&gt;
* Q: God why ... ?&lt;br /&gt;
** A: Because we can !&lt;br /&gt;
*Q: Ich hab aber noch nie was mit 230V gemacht.&lt;br /&gt;
**A: Dann würde ich an Deiner Stelle dieses Projekt NICHT nachbauen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Verbesserungen Prototyp ===&lt;br /&gt;
* Bauteile weiter weg von Schraublöchern&lt;br /&gt;
* Dazu Kreis rund um Bohrung auf Bestückdruck&lt;br /&gt;
* Masseanbindung Quarz&lt;br /&gt;
* Klemmen weiter weg vom Rand&lt;br /&gt;
* Klemme und Sicherungshalter weiter auseinander, damit Schutzhabe draufpasst&lt;br /&gt;
* Bohrungen für Drossel 0,2mm größer machen&lt;br /&gt;
* Teilenummer für Conrad-USB-Buchse in BOM übernehmen.&lt;br /&gt;
* Stiftleiste P1  weiter weg von P2 und P4&lt;br /&gt;
* Varistoren näher an Klemmen platzieren&lt;br /&gt;
* Bestückvarianten defineren: 1. minimal 2. Standard 3. Externe Leds und Schalter.&lt;br /&gt;
* THT-Kondensatoren für Snubber - extra Footprint?&lt;br /&gt;
* Ggv. Stiftleistenbelegung für externe Leds so ändern, das keine extra Vorwiderstände notwendig sind.&lt;br /&gt;
* Wert der Drossel checken.(BOM Bestellnummer)&lt;br /&gt;
&lt;br /&gt;
=== Errata Projekt ===&lt;br /&gt;
* LED-Beschriftung passt nicht ganz (Schltplan Netlabel OUT1,2,3,4 sind durcheinander gekommen)&lt;br /&gt;
* Schaltplan UNL2003 fehlerhafte Zuordnung IN5,6,7 &amp;lt;&amp;gt; OUT7,6,5&lt;br /&gt;
* Pullup-Widerstand bei MCLR doppelt. &lt;br /&gt;
* Brückengleichrichter / Optokoppler NICHT die im Schaltplan angegebenen Bestellnummern von Reichelt verwenden. BOM-Bauteile und Bestellnummern sind ok.&lt;br /&gt;
* Beim MOSFET R39 ist die Masseanbindung falsch. Es bestehen drei Möglichkeiten:&lt;br /&gt;
** 1. 0-R-Brücke für R39 einbauen und auf Strombegrenzung verzichten.&lt;br /&gt;
** 2. Eine Polyfuse mit Bauform 1206 einbauen. &lt;br /&gt;
** 3. Das kleine Leiterbahnstückchen zwischen R38 und R39 unterbrechen und statt dessen die Leiterbahn zwischen R39 und der Klemme mit der Durchkontaktierung bei R38 verbinden.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* Diskussion [http://www.mikrocontroller.net/topic/297217 Diskussion]&lt;br /&gt;
* Dextrel Nulldurchgang [http://www.dextrel.net/diyzerocrosser.htm Nulldurchgangschaltung]&lt;br /&gt;
* Gehäuse [http://www.hammondmfg.com/pdf/RM2055M.pdf Gehäuse Hammond]&lt;br /&gt;
* Bezugsquelle SOS Elektronik [http://www.soselectronic.com/?str=371&amp;amp;artnum=73595&amp;amp;name=hammond-ritec-rm2055m Gehäuse]&lt;br /&gt;
* Bezugsgquelle [http://www.druckerzubehoer.de/shop/product/catid/H-UNIVERSALZUBEHOER_HZB/subcatid/UNIVERSALZUBEHOER_GROUP1_HZB/productid/1727063-390722LA/site/1/lng/de_DE Mini USB Netzteil]&lt;br /&gt;
* Bezugsquelle Termoelement: TBD&lt;br /&gt;
* Bezugsquelle Steckdosen für Schalttafeleinbau: [http://www.artcase-shop.de/index.php?page=search&amp;amp;page_action=query&amp;amp;desc=on&amp;amp;sdesc=on&amp;amp;keywords=pce+105&amp;amp;x=0&amp;amp;y=0 Steckdosen]&lt;br /&gt;
* Bezugsquelle [http://www.schaeffer-ag.de/ Frontplatten]&lt;br /&gt;
 &lt;br /&gt;
[[Kategorie:Projekte]]&lt;br /&gt;
[[Kategorie:PIC]]&lt;br /&gt;
[[Kategorie:PIC-Boards]]&lt;br /&gt;
[[Kategorie:Platinen]]&lt;/div&gt;</summary>
		<author><name>Frankman</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=Reflow_Ofen_Steuerung&amp;diff=76120</id>
		<title>Reflow Ofen Steuerung</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=Reflow_Ofen_Steuerung&amp;diff=76120"/>
		<updated>2013-05-29T22:09:36Z</updated>

		<summary type="html">&lt;p&gt;Frankman: /* PIC18LF2550 Grundbeschaltung */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Datei:RFB.jpg]]&lt;br /&gt;
== Einleitung ==&lt;br /&gt;
[[Datei:pcb.png|thumb|right|400px|unbestücktes PCB der Reflow-Ofen-Steuerung]]&lt;br /&gt;
Hier wird eine weitere Reflow-Ofen-Steuerung beschrieben.&lt;br /&gt;
=== Zum Nachbauen ===&lt;br /&gt;
* Spezifikation: [[Datei: Spec Reflow.pdf]]&lt;br /&gt;
* Schaltplan: [[Datei:Reflow.pdf]]&lt;br /&gt;
* Gerberdaten: [[Datei:Gerber Reflow.pdf]]&lt;br /&gt;
* Assemblydrawing: [[Datei:Assembly Reflow.pdf]] &lt;br /&gt;
* Altium-Files: [[Datei:Reflow.zip]]&lt;br /&gt;
* Stückliste als CSV: [[Datei:Reflow.csv]]&lt;br /&gt;
* Stückliste als Open Office: [[Datei:Reflow.ods]]&lt;br /&gt;
* PC Programm: TBD&lt;br /&gt;
* Sourcen PC-Programm: TBD&lt;br /&gt;
* PIC Programm (*.hex): TBD&lt;br /&gt;
* Sourcen Pic-Programm: TBD&lt;br /&gt;
&lt;br /&gt;
=== Motivation ===&lt;br /&gt;
Die Gründe, eine weitere Steuerung zu entwerfen, waren:&lt;br /&gt;
&lt;br /&gt;
# Die Möglichkeit, auch größere Öfen mit 2 Phasen betreiben zu können.&lt;br /&gt;
# Die Steuerung universell zu gestalten. Es sollte möglich sein, diese nicht nur zum Reflow löten zu verwenden....z.B:&lt;br /&gt;
- Temperatursteuerung für Klimakammer (Heizen, Kühlen)&lt;br /&gt;
- Dimmer mit USB&lt;br /&gt;
- Temperaturregler für ein Tisch-Fondue ( Temperatur halten)&lt;br /&gt;
- Drehzahlsteller mit USB&lt;br /&gt;
- Switchpack&lt;br /&gt;
&lt;br /&gt;
# Die Schaltung sollte in Altium entwickelt werden. (Warum kein Eagle??? Altium User wissen es.... :-)&lt;br /&gt;
# Die Schaltung sollte mit USB ausgestattet sein.&lt;br /&gt;
&lt;br /&gt;
=== Eigenschaften &amp;amp; Spezifikationen ===&lt;br /&gt;
* Temperaturmessung: bis zu 2x &#039;&#039;&#039;Thermoelement&#039;&#039;&#039; (K-Typ) mit MAX6675 (abgekündigt) oder Nachfolger MAX31855 (pin- aber nicht softwarekompatibel)&lt;br /&gt;
* &#039;&#039;&#039;Leistungsstufen&#039;&#039;&#039;: 3x voneinander unabhängige Triac 800V bei 25A, limitiert auf &#039;&#039;&#039;10A @ 250VAC&#039;&#039;&#039; (z.B. Oberhitze, Unterhitze, Umluft)&lt;br /&gt;
* &#039;&#039;&#039;Nulldurchgangserkennung&#039;&#039;&#039; ermöglicht Wellenpaket-, Phasenan- und abschnittssteuerung, galvanische Trennung selbiger&lt;br /&gt;
* 1x &#039;&#039;&#039; MOSFET-Ausgang&#039;&#039;&#039; PWM z.B. für 12V Lüfter, max. 55V 3,5A&lt;br /&gt;
* &#039;&#039;&#039;feste Programme&#039;&#039;&#039; im EEPROM über 2-Tasterbedienung und LEDs wähl- und ausführbar. &#039;&#039;&#039;PC-unabhängiger Betrieb&#039;&#039;&#039;. Beliebig viele Programme möglich, für die Auswahl stehen 4 benutzer-konfigurierbare LEDs zur Verfügung&lt;br /&gt;
* Betrieb am Computer für mehr Reflowprofile&lt;br /&gt;
* Mini-USB-Buchse zur Steuerung / Programmierung über GUI&lt;br /&gt;
* Günstiges passendes &#039;&#039;&#039;Gehäuse&#039;&#039;&#039;, alle LEDs und Taster auf Stiftleisten herausgeführt&lt;br /&gt;
* PID-Temperaturregler&lt;br /&gt;
* UART, SPI, I2C und 2x ADC auf Stiftleisten herausgeführt (-&amp;gt; Erweiterungen)&lt;br /&gt;
* Versorgung über USB (&amp;lt; 100mA), interne Versorgungsspannung 3,3V&lt;br /&gt;
* umfangreiche EMV-gerechte Entstörung für den Bedarfsfall&lt;br /&gt;
&lt;br /&gt;
== Technische Realisierung==&lt;br /&gt;
=== PIC18LF2550 Grundbeschaltung ===&lt;br /&gt;
[[Datei:osc_vs_vcc.png|thumb|right|200px|Taktraten und Versorgungsspannung PIC18F2550 vs. PIC18LF2550, Datenblatt S. 370/438]]&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 3/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Hier kommt ein PIC18&#039;&#039;&#039;L&#039;&#039;&#039;F2550 zum Einsatz. Er verfügt über eine USB-Schnittstelle und ist für Betriebsspannungen von 2 ... 5,5V ausgelegt. Sein Verwandter PIC18F2550 (ohne L) ist nicht für Betriebsspannungen &amp;lt; 4,2V ausgelegt. Dies ist bei USB sowiesor nicht immer erfüllt und die Thermoelement ICs vertragen ohnehin keine 5V, daher wurde die Betriebsspannung auf 3,3V reduziert. Neben Standard-Decoupling (100nF Kerko pro Vcc-Vss-Pärchen) wurde das ICSP-Interface in alt bewährter Pinbelegung (PICKit1,2,3) angebracht. PGD und PGC sind nicht weiter beschaltet, MCRL wird in Standardbeschaltung als Resetpin verwendet. Der Resetschalter findet sich auf dem Top-Sheet (Schaltplan S. 1/22). Die Taktversorgung erfolgt zwingend über einen 24 MHz Quarz (-&amp;gt; USB). Man beachte diesbezüglich rechts stehende Grafik zu Taktraten und Versorgungsspannungen (Vdd bzw. auch Vcc genannt). Auch zu finden im Datenblatt des PICs auf Seite 370.&lt;br /&gt;
&lt;br /&gt;
=== PIC18LF2550 USB Beschaltung ===&lt;br /&gt;
[[Datei:usb_part.png|thumb|right|200px|PIC18(L)F2550&lt;br /&gt;
 Standard &lt;br /&gt;
USB-Beschaltung am PIC]]&lt;br /&gt;
[[Datei:usb_protect.png|thumb|right|200px|USB-Schutzbeschaltung und Mini-USB-Buchse]]&lt;br /&gt;
&lt;br /&gt;
Die Beschaltung der USB-Schnittstelle am PIC ist 1:1 aus dem Datenblatt übernommen. Zum Einsatz kommt eine Mini-USB-Buchse (J1).&lt;br /&gt;
Der Gedanke war: Erstens ein sehr preiswertes, fertiges Netzteil verwenden zu können, (ca. 3,67 € bei druckerzubehoer.de) und zweitens, die Steuerung auch mit dem PC / Laptop versorgen zu können.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 4/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
FER1,2 und C7 filtern den Schirm nach GND. Standardmäßig wird man hier wohl 0-Ohm-Widerstände einsetzen. Falls ein Besuch im EMV-Labor geplant ist, weicht man auf den Ferrit aus. C5 und C6 filtern das Signal zusammen mit der Common-Mode-DrosselL1. Die Drossel kann mit den 0-Ohm-Brücken R8 und R9 überbrückt (gespart) werden. IC2 ist als ESD-Schutz gedacht und kann ebenfalls bei ausgeprägten Kostenbewustsein gespart werden. Die Widerstände R6 und R7 dürfen NICHT bestückt werden. FER1,2, C5, IC2 müssen nicht zwingend bestückt werden. Die Bestückung wurde vorgehalten um im Problemfall einfache Abhilfe schaffen zu können.&lt;br /&gt;
&lt;br /&gt;
=== 3,3V Spannungsversorgung ===&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 2/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Die 3,3V Versorgungsspannung für die gesamte Platine wird aus V_USB mittels des LDO Spannungsreglers TOREX - XC6206P332MR abgeleitet. Günstig, SOT-23, klein, 2x 1µF Kondensatoren benötigt, 3,3V max. 250mA. Der hat auch einen sehr kleinen Ruhestrom.&lt;br /&gt;
&lt;br /&gt;
=== Taster ===&lt;br /&gt;
*Der Resettaster zieht den MCLR-Pin nach GND und löst damit den Reset aus. MCLR  ist mit einem 10k Pullup versehen.&lt;br /&gt;
*Die übrigen beiden Taster ziehen RA4 bzw. RB5 ebenfalls nach GND.&lt;br /&gt;
&lt;br /&gt;
=== LEDs + ULN2003L ===&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 11/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Um alle LEDs auf der Platine (3x Optotriac + 7x Status) ansteuern zu können wurde auf das 7fach Darlington-Array ULN2003L zurückgegriffen. Es dient desweiteren auch als &amp;quot;MOSFET-Treiber für Arme&amp;quot;. Alle LEDs werden von diesem Transistor-Array nach Masse geschaltet. Dient der Entlastung der PIC-Ausgänge. Und kostet ja auch nicht viel.&lt;br /&gt;
&lt;br /&gt;
=== MOSFET-Leistungsausgang ===&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 22/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Hier kommt der einfacher N-Kanal MOSFET (LogicLevel) PHT8N06LT zum Einsatz. Er wird über das ULN2003L Array getrieben und ermöglicht den Anschluss eines DC-Verbrauchers mit max. 55V bei 3,5A. Hier könnte beispielsweise ein PC-Lüfter zur Kühlung od. Umluft angeschlossen und über PWM geregelt/gesteuert werden. Ein Gatewiderstand von 100 Ohm ist zum Schutz des Treibers vorgesehen. Eine 0-Ohm-Brücke ist stattdessen aber auch möglich, wenn man eine höhere Leistung schalten möchte.Die Leiterbahnen sollten die 3A schon hergeben. Der 100 Ohm Widerstand bildet eine Stromquelle. Sobald der Strom durch den MOSFET und den Widerstand 33mA erreicht, sinkt UGS gegen 0 V. Folge: Der Mosfet sperrt ( und bleibt ganz....)&lt;br /&gt;
Es kann hier prinzipiell auch ein anderer Mosfet im SOT223-Gehäuse zum Einsatz kommen. Achten sollte man darauf, das der MOSFET schon bei 3,3V Ugs gut leiten sollte.&lt;br /&gt;
&lt;br /&gt;
=== Nulldurchgangserkennung ===&lt;br /&gt;
[[Datei:zerocross.png|thumb|right|200px|Nulldurchgangserkennung]]&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 5/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Die Nulldurchgangserkennung erfolgt nach einer sehr bekannten - jedoch ausgeklügelten - Schaltung.  [http://www.dextrel.net/diyzerocrosser.htm]&lt;br /&gt;
&lt;br /&gt;
ACHTUNG: DER IM SCHALTPLAN VERZEICHNETE OPTOKOPPLER und BRÜCKENGLEICHRICHTER VON REICHELT DARF KEINESFALLS VERWENDET WERDEN! Pinbelegung! Bitte den Optokoppler aus der Stückliste nehmen!&lt;br /&gt;
&lt;br /&gt;
Während einer Halbwelle wird C14 über R33 und R35 bzw. D5 geladen. Währenddessen ist T1 gesperrt. Sobald die Wechselspannung (L1-N über Spannungsteiler (R33+R35) / R34) kleiner ist als die Spannung über C14, steuert T1 durch. Dann entlädt sich C14 über den LED-Vorwiderstand R32. Der durch-steuernde Optokoppler zieht die Sync-Leitung nach GND. (Pullup Sync-Leitung = R31). Dies löst beim PIC auf INT2 einen Interrupt aus. &lt;br /&gt;
&lt;br /&gt;
Dieser Interrupt ermöglicht eine präzise Wellenpaket-, Phasenanschnittsteuerung je nach Bedarf. Das Schalten im Nulldurchgang bei der Wellenpaketsteuerung reduziert EMV-Störungen. Für Phasenanschnitt ist prinzipbedingt ohnehin eine Nulldurchgangserkennung notwendig. Außerdem liefert sie eine völlig ausreichend genaue Zeitbasis für alle Programmabläufe.&lt;br /&gt;
&lt;br /&gt;
=== Triac-Ausgänge + Snubber ===&lt;br /&gt;
[[Datei:triac.png|thumb|right|200px|Triac-Ausgangsbeschaltung]]&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 19,20,21/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Die Ansteuerung des eigentlichen Leistungstriacs BTA140-800 erfolgt über den Optotriac IS6005. Der Strom durch Letzteren wird durch R1x limitiert (Vorwiderstand). R2x und R5x limitieren wiederum den Strom durch den Optotriac. Wenn dieser zündet so folgt unmittelbar der &amp;quot;Leistungstriac&amp;quot; der dann die Last schaltet.&lt;br /&gt;
&lt;br /&gt;
S1x ist ein Sicherungshalter um die Lasten einzeln absichern zu können. Wert 10A Mittelträge.&lt;br /&gt;
&lt;br /&gt;
R3x, R4x, C3x bilden ein Snubber-Network, L1X verhindert eine zu schnelle Stromanstiegsgeschwindikeit damit der Triac nicht &amp;quot;von selbst&amp;quot; zündet. Weglassen äußert sich meist in einem fast nicht hörbaren Click. Damit zeigt einem dann der Triac, dass er ab jetzt für immer recht niederohmig geworden ist. Die Regelung der Temperatur braucht dann nicht mehr über den Prozessor erfolgen, sondern nur noch mit dem Ein-/Ausschalter..... :-)&lt;br /&gt;
&lt;br /&gt;
=== Thermoelemente (MAX6675/MAX31855)  ===&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 6,7/22&#039;&#039;&#039;&lt;br /&gt;
Der inzwischen abgekündigte MAX6675 bzw. sein ehrenwerter Nachfolger MAX31855 sind einfach zu handhabende Thermoelement-ICs mit Kaltstellenkompensation. Thermoelemente funktionieren durch das Verschweißen zweier verschiedener Legierungen (beim K-Typ Thermoelemnt Ni und CrNi). Durch den durch die Umgebungstemperatur bedingten Wärmefluss zwischen beiden entsteht ein elektrische Spannung. Diese wird von besagten ICs verstärkt und digitalisiert (ADC). Diese Spannung / Temperatur ist natürlich wieder relativ zur Umgebungstemperatur an der Kaltstelle (Kontaktierung der beiden Drähte mit dem Messinstrument). Daher messen diese ICs auch gleich die Umgebungstemperatur (Kaltstellenkompensation genannt) mit, verrechnen das und geben das Ergebnis auf der SPI-Schnittstelle aus. MAX6675 leistet 12bit also 0,25°C Auflösung (nicht Genauigkeit!) über einen Temperaturbereich von 0°C to +1024°C. Außerdem wird ein nicht/fehlerhaft angeschlossenes Thermoelement erkannt. Der Thermocouple-IC wird an die SPI-Schnittstelle des PICs angeschlossen (hier MSSP genannt). &lt;br /&gt;
&lt;br /&gt;
MAX6675 und MAX31855 scheinen entgegen der Adafruit-Information [http://www.adafruit.com/products/269] doch pinkompatibel zu sein - die Ansteuerung unterscheidet sich jedoch definitiv. (Zitat: &amp;quot;Now uses the MAX31855K instead of the MAX6675, so it can measure a wider temperature measurement range. Please note! the MAX31855 is not pin compatible or drop-in code compatible with the MAX6675. We do have an Arduino library for both chips but you&#039;ll need to adjust any existing MAX6675 designs for the mew MAX31855. The MAX6675 has been discontinued by Maxim.&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Es wurden 2 dieser ICs und damit 2 Temperaturmessstellen vorgesehen. Dies ermöglich die Messung für eine Regelung der Temperatur so wie eine zusätzliche Überwachung kritischer Bauteile (z.B. ICs oder LEDs). Die Minimalbestückung sieht einen MAX6675/MAX31855 vor. Die Auswahl in der Firmware erfolgt über einen der beiden GPIO-Pins RA5 oder RA0 via dem ChipSelect (CS) des MAX6675/MAX31855.&lt;br /&gt;
&lt;br /&gt;
Neben dem MAX6675/MAX31855 wurde ein Decoupling-Kondensator (C8x, Standard 100nF) so wie ein weiterer im Messpfad (C9x) zur Zwecken der Entstörung vorgeshen. C9x 100nF sollte nur bestückt werden wenn Probleme bei der Temperaturmessung entstehen (z.B. unrealstisch stark schwankende Werte).&lt;br /&gt;
&lt;br /&gt;
=== ADC, SPI, UART &amp;amp; I2C Stiftleiste ===&lt;br /&gt;
ADC, SPI, UART und I2C sind zu Zwecken der Kalibrierung / Erweiterung / Einstellung / Debugging auf Stiftleisten herausgeführt:&lt;br /&gt;
Ähnlichkeiten mit dem FTDI-USB-TTL-Kabel bzw. Arduino XXX Bla Bla Bla Schnittstellenkonverter sind natürlich rein zufällig.&lt;br /&gt;
&lt;br /&gt;
Die I2C-Schnittstelle wurde auf eine Stiftleiste geführt, um z.B. einem LM75 o.ä. anschließen zu können. Damit stehen zur Kalibrierung der Thermoelemente genaue Temperaturen zur Verfügung.&lt;br /&gt;
&lt;br /&gt;
Die Stiftleisten haben alle ein Raster von 2,54mm. So können Pin-Header, Wannenstecker oder ähnliches verwendet werden.&lt;br /&gt;
&lt;br /&gt;
Da ja viele Leute eigene Vorstellungen bezüglich der Frontplattengestaltung haben, wurden auch die Taster und LEDs auf Stiftleisten geführt.&lt;br /&gt;
&lt;br /&gt;
=== Kühlkörper ===&lt;br /&gt;
Da die Triacs der Steuerung für bis zu 10A pro Kanal ausgelegt sind, kann man auf die Kühlkörper nicht verzichten. Es fallen bei 10A bis zu 13 Watt Wärme pro Triac ab. Falls mann auf die Kühlkörper doch verzichten möchte, sollte man darauf achten, die Triacs mit dem Kopf nach unten einzubauen. Diese können sich dann bei Überlast ganz von selber auslöten.... :-)&lt;br /&gt;
&lt;br /&gt;
=== Gehäuse ===&lt;br /&gt;
Die Leiterplatte wurde für ein Gehäuse von Hammond entwickelt.&lt;br /&gt;
Das Gehäuse ist zwar keine Schönheit, aber doch recht preiswert.&lt;br /&gt;
Typenbezeichnung: RM2055M&lt;br /&gt;
&lt;br /&gt;
== Firmware PIC ==&lt;br /&gt;
Die Entwicklung der Firmware für den PIC18LF2550  geht mit MPlab 8 respektive dem C18 Compiler von Statten. MPlab ist kostenlos, der C18 Compiler bis auf die stärkste Optimierungsstufe ebenfalls. Die Quellen für die Firmware werden auch offengelegt.&lt;br /&gt;
=== Programmstruktur- und ablauf ===&lt;br /&gt;
Nach anfänglicher Initialisierung des PIC startet die Statemachine [http://http://www.mikrocontroller.net/articles/Statemachine] [http://http://de.wikipedia.org/wiki/Endlicher_Automat]. Neben ihr findet in der main-Funktion nur noch die Abfrage der beiden Bedientasten statt. Mit dem Tastendruck wird zum Zwecke der Entprellung ein Timer gestartet. Alles Andere (incl. PID-Regelung, Wellenpaket- bzw. Phasenan- und Phasenabschnittssteuerung und USB) ist interruptbasiert.&lt;br /&gt;
&lt;br /&gt;
=== Taktversorgung, Nulldurchgangserkennung und Zeitbasis ===&lt;br /&gt;
=== USB ===&lt;br /&gt;
=== SPI für MAX6675 ===&lt;br /&gt;
=== SPI für MAX31855 ===&lt;br /&gt;
&lt;br /&gt;
=== Wellenpaketsteuerung ===&lt;br /&gt;
=== Phasenanschnitt ===&lt;br /&gt;
&lt;br /&gt;
=== PWM für MOSFET ===&lt;br /&gt;
&lt;br /&gt;
== PC-Software (GUI) ==&lt;br /&gt;
[[Datei:gui_alpha.png|thumb|right|300px|Screenshot der GUI (noch Alpha) für den Reflow-Ofen-Controller]]&lt;br /&gt;
&lt;br /&gt;
Die GUI (englisch Graphical User Interface) ist der Einfachheit halber in VB.net programmiert und momentan noch im Alpha-Stadium. Auch hierfür liegen die Quellen später selbstverständlich offen.&lt;br /&gt;
&lt;br /&gt;
=== Funktionen und Modi ===&lt;br /&gt;
[[Datei:modi.png|thumb|right|400px|Auswahl der beschriebenen Modi durch Klick]]&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Ofen-Profil&amp;quot;&#039;&#039;&#039; - Es wird ein Programm (Temperaturkurve) aus dem EEPROM des Reflow-Ofens ausgeführt. Der Backvorgang kann mit der Software gesteuert (START, STOP, ...) und überwacht werden. Hierzu stehen Temperatur, Temperaturänderung, Heizleistung (Ober- und Unterhitze, Lüfter) so wie die graphische Darstellung im zentralen Diagramm zur Verfügung. Eingriffsmöglichkeiten, wie das Ändern der Temperaturkurve sind nicht vorgesehen. Dies soll ein reiner Überwachungs-Modus sein. Um die Temperaturkurve zu verändern zu können, sollte der Modus &amp;quot;PC-Profil&amp;quot; verwendet werden und die Temperaturkurve aus dem EEPROM importiert werden. Dann kann Selbige auch verändert und anschließend ausgeführt bzw. verändert in den EEPROM zurückgeschrieben werden. Dieser Modus stellt ein Äquivalent zur START/STOP-Tasten-Bedienung an der Platine dar und kann selbstverständlich parallel dazu genutzt werden. Die GUI also als Addon zum Stand-Alone-Betrieb.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;PC-Profil&amp;quot;&#039;&#039;&#039; - Es wird ein Programm (Temperaturkurve) ausgeführt welche zuvor am Computer erstellt / editiert wurde. In diesem Modus gibt der Computer Temperaturwerte vor, welche live über die USB-Schnittstelle zum PIC übertragen werden und mit dem dort integrierten PID-Regler ausgeführt werden. Das ermöglicht eine on-the-fly Veränderung der Temperaturkurve während des Backvorgangs. Temperaturkurven können aus Dateien oder dem EEPROM importiert und auch wieder exportiert werden. CSV-Dateien können ebenfalls importiert und exportiert werden. Die &amp;quot;Eingabe&amp;quot; der Temperaturkurve erfolgt entweder über Import (CSV/EEPROM), per Mausklick auf dem zentralen Diagramm oder im sog. DataGridView. Weiteres siehe Unterpunkt &amp;quot;Eingabe der Temperaturkurve (Reflowprofil)&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;manueller Ablauf&amp;quot;&#039;&#039;&#039; - In diesem Modus wird (im Gegensatz zu den oberen beiden Modi &amp;quot;Ofen-Profil&amp;quot; und &amp;quot;PC-Profil&amp;quot;) keine Temperatur geregelt. Hier wird die Leistung des Ofens in % eingestellt und gesteuert. Der PID-Regler ist nicht in Aktion. Die Temperatur, Temperaturänderung so wie der Temperaturverlauf werden selbstredend angezeigt bzw. im Diagramm dargestellt. Der Modus &amp;quot;manueller Ablauf&amp;quot; fährt ähnlich dem Modus &amp;quot;PC-Profil&amp;quot; die im DataGridView eingetragenen Leistungs-Zeit-Punkte ab. Für jeden Zeitpunkt ist eine Leistung vorgegeben. Die Eingabe erfolgt ähnlich wie unter &amp;quot;Eingabe der Temperaturkurve (Reflowprofil)&amp;quot; beschrieben. Nur eben, dass eine Leistung und keine Temperatur angegeben wird. Die Eingabe der Leistung kann nicht im Zeit-Temperatur-Diagramm erfolgen sondern mittels der Schieberegler oder direkt tabellarisch.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;manueller Modus&amp;quot;&#039;&#039;&#039; - Dieser Modus enthält 2 Submodi&lt;br /&gt;
** &amp;quot;manueller Leistungsmodus&amp;quot; - Auch in diesem Modus wird die Leistung gesteuert. Es wird keine Temperatur geregelt, der PID-Regler für die Temperatur ist nicht in Betrieb. Die Einstellung hier erfolgt über die drei Schieberegler oder über eine numerische Eingabe durch Klick auf die Leistungsangabe unter dem Schieberegler. Durch Klick auf die Texte &amp;quot;TOP&amp;quot;, &amp;quot;BOTTOM&amp;quot;, &amp;quot;FAN&amp;quot; (Oberhitze, Unterhitze, Lüfter) können selbige deaktiviert bzw. aktiviert werden. Auch in diesem Modus wird Temperatur, Temperaturänderung so wie der Temperaturverlauf dargestellt.&lt;br /&gt;
** &amp;quot;manueller Temperaturmodus&amp;quot; - Hier wird die Temperatur wieder mittels des Temperatur-PIDs geregelt. Die Temperatur wird entweder mittels Schieberegler (Ober- und Unterhitze-Regler sind jetzt gekoppelt) oder durch eine numerische Eingabe unterhalb der Schieberegler vorgegeben. Anzeige wie im &amp;quot;manuellen Leistungsmodus&amp;quot;. Der Lüfter kann unabhängig vom PID in seiner Leistung geregelt werden. Ein evtl. durch den Luftstrom verursachter Temperaturabfall wird vom PID selbstverständlich ausgeregelt (aus diesem Grunde ist es ja ein Regler).&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Programmieren&amp;quot;&#039;&#039;&#039; - Hier kann ein neues &#039;&#039;&#039;Temperatur&#039;&#039;&#039;-Programm für den EEPROM-Speicher des Ofens erstellt und editiert werden. Die Eingabemöglichkeiten sind unter &amp;quot;Eingabe der Temperaturkurve (Reflowprofil)&amp;quot; beschrieben. Dieser Modus ist zum reinen Programmieren des Ofens gedacht und ermöglicht keine weitere Steuerung oder Überwachung des Ofens.&lt;br /&gt;
&lt;br /&gt;
=== Eingabe der Temperaturkurve (Reflowprofil) ===&lt;br /&gt;
[[Datei:datagridview.png|thumb|right|400px|tabellarische Anzeige und Editiermöglichkeit der Temperaturkurve]]&lt;br /&gt;
Die Eingabe der Temperaturkurve erfolgt entweder über Import (CSV/EEPROM), per Mausklick auf dem zentralen Diagramm oder im sog. DataGridView (Excel-ähnliche Bedienung in tabellarischer Form). &lt;br /&gt;
&lt;br /&gt;
* CSV-Import + Export&lt;br /&gt;
* EEPROM-Import + Export&lt;br /&gt;
* Im rechts stehenden Screenshotbeispiel wird eine tabellarische Eingabeform mit einem DataGridView gezeigt: Die Temperatur (erster Temperaturpunkt = Punkt 0) von 100°C wird linear über einen Zeitraum von 0-30s verteilt. Bei 30s hat der Ofen die Temperatur von 100°C. Dafür setzt die Regelung die Oberhitze, die Unterhitze ein. Der Lüfter ist deaktiviert. In der Zeit von 30s bis 120s wird die Temperatur nun von 100°C auf 150°C linear angehoben. Von 120s bis 180s Backzeit steigt die Temperatur von 150°C auf 250°C. Von 180s bis 200s wird die Temperatur auf 280°C angehoben. Anschließend wird sie zwischen 200s und 220s auf 280°C gehalten (280°C@200s und 280°C@220s) um dann bis 240s wieder auf 250°C zu fallen. Bis zum Zeitpunkt 300s wird dann die Temperatur 30°C angestrebt. Zusätzlich ist der Lüfter nun aktiviert (soweit der Ofen eine Umluftfunktion besitzt). Bei Punkt 7 sind Ober- und Unterhitze deaktiviert nur noch der Lüfter kühlt. Da hier bei &amp;quot;Zeit[s]&amp;quot; die 0 eingetragen wird der Zustand (hier nur Lüfter an) für einen unendlich langen Zeitraum auf 0 gehalten. Also so lange wie das Programm aktiviert ist wird der Lüfter laufen. Natürlich könnte man hier auch z.B. 100°C und Zeitpunkt 0s eintragen. Dann würde der Ofen bis zum manuellen Beenden des Programms (klick auf STOP-Button oder Drücken des START/STOP-Tasters auf der Platine/Steuerung) 100°C halten.&lt;br /&gt;
* Alle Zellen des DataGridView sind editierbar (zur Veränderung der Temperatur, Zeitpunkt, ...)&lt;br /&gt;
* Direkter Klick auf das zentrale Temperatur-Zeit-Diagramm trägt den Zeitpunkt so wie die Temperatur unter dem Mauszeiger in die Tabelle (das DataGridView) ein. Die ausgewählte Zeile wird beschrieben oder überschrieben. Neue Zeilen (also Temperatur-Zeit-Punkte) können durch klick auf den &amp;quot;Plus-Button&amp;quot; hinzugefügt werden. Ebenso ist das Löschen oder Verschieben einer oder mehrerer Zeile gleichzeitig möglich.&lt;br /&gt;
&lt;br /&gt;
=== Beschreibung der Steuerungsmöglichkeiten ===&lt;br /&gt;
In Abhängigkeit des gewählten Modus bestehen einige Steuerungs-, Einstellungs- und Kontrollmöglichkeiten:&lt;br /&gt;
* &#039;&#039;&#039;Schieberegler&#039;&#039;&#039; für Temperatur od. Leistung (je nach Modus) für Oberhitze, Unterhitze und Lüfter. Je nach Hardwareausführung. &lt;br /&gt;
** Klick auf &amp;quot;TOP&amp;quot;, &amp;quot;BOTTOM&amp;quot; oder &amp;quot;FAN&amp;quot; aktiviert oder deaktiviert die entsprechende Funktion bzw. Hardware.&lt;br /&gt;
** Numerische Eingabe der Werte für die Schieberegler durch Klick auf die Anzeige unterhalb der Schieberegler. Werte können auch im deaktivierten Zustand angegeben werden. Die Übernahme erfolgt durch den &amp;quot;Aktivierungsklick&amp;quot; auf &amp;quot;TOP&amp;quot;, &amp;quot;BOTTOM&amp;quot; oder &amp;quot;FAN&amp;quot;&lt;br /&gt;
* &#039;&#039;&#039;T1, dT1, T2, dT2&#039;&#039;&#039; - Anzeige der gemessenen Temperatur so wie die momentane Temperaturänderung am jeweiligen Sensor. &lt;br /&gt;
* &#039;&#039;&#039;Bedienbuttons&#039;&#039;&#039;&lt;br /&gt;
** Play - Startet das Programm am angegebenen Startpunkt (siehe unten)&lt;br /&gt;
** Pause - Pausiert das Programm - weitere Pauseoptionen siehe unten&lt;br /&gt;
** Stop - Stopt den Programmablauf&lt;br /&gt;
** Vor / Zurück - Springt zwischen Temperaturpunkten hin und her. Dient zum überspringen oder zurückspringen zu gewissen Temperatur-Zeit-Punkten. Ermöglicht z.B. das Überspringen eines Ablaufes der eine lange Preheat- oder Dryphase hat.&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Status&amp;quot;&#039;&#039;&#039; - zeigt den aktuellen Zustand des Programms an (READY, START, WAITING, PAUSE, ...)&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;RESET&amp;quot;&#039;&#039;&#039; - setzt das (begonnene) Programm zurück. Beinhaltet neben dem Programmablauf auch das Zurücksetzen der graphischen Anzeige des Diagramms, etc.&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Startpunkt&amp;quot;&#039;&#039;&#039; - legt den ersten Punkt des Programmablaufes fest. &lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Wiederholungen&amp;quot;&#039;&#039;&#039; - ermöglicht das wiederholte Backen ohne das Programm händisch immer wieder neu starten zu müssen. Die Anzahl der Wiederholungen ist einstellbar (0 für unendlich viele) und es ist eine Wartezeit zwischen den Wiederholungen einstellbar. Alternativ kann eine Meldung nach jedem vollendeten Backvorgang abgegeben werden. Nach Bestätigung dieser wird die nächste Wiederholung ausgeführt.&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Pause&amp;quot;&#039;&#039;&#039; - Pauseneinstellungen. Hier sind Optionen wählbar was passieren soll, falls der Pausebutton betätigt wird:&lt;br /&gt;
** Pausezeit - gibt an wie lange die Pause dauern soll [s], danach fährt das Programm automatisch gemäß des gewählten Pausemodus fort. Für eine Pause ohne automatisches Fortfahren (Countdowntimer) &#039;0&#039; angeben.&lt;br /&gt;
** Pausemodus &amp;quot;aktuelle Temperatur halten, WarmUp, Fortsetzen&amp;quot; - Ofen hält die Temperatur (Zieltemperatur) des Zeitpunktes als der Pausebutton betätigt wurde. WarmUp bedeutet, dass nach dem Beenden des Pausemodus zunächst die Zieltemperatur wieder erreicht werden &#039;&#039;&#039;muss&#039;&#039;&#039; bevor der nächste Punkt angesteuert wird. Klingt paradox, wenn die Temperatur doch so und so gehalten wird, ist aber nicht so. Die Wahrscheinlichkeit ist hoch, dass der Pausemodus benutzt wird um die Ofentüre zu öffnen und Korrekturen an der Platine vorzunehmen. Unter Umständen ist die Heizung des Ofens jedoch nicht in der Lage den dadurch entstehenden Wärmeverlust zu kompensieren. Fährt das Programm dann sofort fort, so könnten evtl. kritische (Hoch-)Punkte des Lötprofils &amp;quot;unterfahren&amp;quot; werden. Dem wirkt WarmUp entgegen.&lt;br /&gt;
** Pausemodus &amp;quot;aktuelle Temperatur halten, Fortsetzen&amp;quot; - siehe oben, nur ohne WarmUp.&lt;br /&gt;
** Pausemodus &amp;quot;definierte Temperatur halten, WarmUp, Fortsetzen&amp;quot; - siehe oben. Statt der aktuellen Zieltemperatur wird jedoch nun im Pausemodus eine einzustellende Pausetemperatur gehalten. Mit WarmUp.&lt;br /&gt;
** Pausemodus &amp;quot;definierte Temperatur halten, Fortsetzen&amp;quot; - siehe oben, nur ohne WarmUp.&lt;br /&gt;
** &amp;quot;Pausetemperatur&amp;quot; - spezielle Temperatur die bei entsprechender Pausemoduswahl für die Dauer der Pause gehalten wird.&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Ende&amp;quot;&#039;&#039;&#039; - gibt an was am Ende eines durchlaufenen Reflow-Programms passieren soll. Ist der Wiederholungsmodus aktiviert, tritt dieses Ereignis erst nach Durchlauf aller Wiederholungen ein. Folgende Modi sind möglich:&lt;br /&gt;
** automatischer Reset - am Ende des Programms wird alles automatisch zurückgesetzt, alle Graphiken und Anzeigen gelöscht.&lt;br /&gt;
** manueller Reset - am Ende des Programms bleiben alle Anzeigen, Graphiken, etc erhalten und müssen vor Beginn eines neuen Reflowvorgangs händisch durch Klick auf &amp;quot;RESET&amp;quot; zurückgesetzt werden.&lt;br /&gt;
** Benutzermeldung - lässt eine Meldung erscheinen. Alle Anzeigen und Graphiken bleiben erhalten bis der Benutzer diese Meldung bestätigt. Mit Bestätigung dieser Meldung wird ein automatischer Reset vorgenommen.&lt;br /&gt;
&lt;br /&gt;
=== Loggen des Temperaturverlaufes ===&lt;br /&gt;
Es ist möglich jeden Backvorgang in eine CSV-Datei zu loggen. (Software- und PID-Einstellungen). Geloggte CSV-Dateien können eingelesen und im zentralen Temperatur-Zeit-Diagramm begutachtet werden. Ein Ist-Soll-Vergleich ist ebenso möglich wie die direkte Anzeige des Fehlers (&amp;quot;Ist minus Soll&amp;quot;). Dank CSV können die Daten auch mit anderen Programmen (Excel, etc.) weiterverarbeitet werden.&lt;br /&gt;
&lt;br /&gt;
== Ofen / Pizzaofen ==&lt;br /&gt;
=== Leistung und Volumen ===&lt;br /&gt;
=== Dämmung ===&lt;br /&gt;
=== Umluft ===&lt;br /&gt;
=== Bezugsquellen ===&lt;br /&gt;
=== Diskussionen im Forum ===&lt;br /&gt;
* Umfangreicher Thread u.A. Leistungsvermögen, Temperaturmessung und Dämmung [http://www.mikrocontroller.net/topic/270627]&lt;br /&gt;
&lt;br /&gt;
== FAQ ==&lt;br /&gt;
&lt;br /&gt;
* Q1: Ich habe einen PT100/PT1000 und möchte den anschließen. Geht das?&lt;br /&gt;
** A1: Ja natürlich. Dazu ist aber etwas externe Elektronik notwendig. Sowohl 2 ADC-Pins (mit 3V3 Betriebsspannung als fixe Referenzspannung), als auch die UART und SPI/I2C-Schnittstelle stehen zur freien Verfügung. Für PT100/PT1000 wird für vernünftige Messungen ohnehin eine Verstärkung (meist mit OPV) von Nöten sein. Da der PIC-interne ADC &amp;quot;nur&amp;quot; 10bit Auflösung bietet sollte ein externer 16bit ADC in Betracht gezogen werden um das Potential der PT100/PT1000 auszunutzen.&lt;br /&gt;
*Q2: Ich habe von günstigen Temperaturmessungen mit Dioden gehört. Geht das auch hier?&lt;br /&gt;
**A2: Ja. Die Vorwärtsspannung einer Diode verhält sich linear zur Sperrschichttemperatur. Diese Spannung (bei 25°C einer Si-Diode die bekannten 0,7V) kann mittels OPV verstärkt werden und auf einen Spannungsbereich von 0 ... 3V3 aufgebläht werden. Eine billige Lösung, auf Kosten der Genauigkeit. Doch eine Diode ist laut Datenblatt nur bis 150°C geeignet. Es ist also beim Löten mehr oder weniger Pfusch. Wenn ich schon eine Reflow-Steuerung baue, sollte ich doch nicht an ein paar Euro für eine gescheite Temperaturmessung sparen. Einige Anregungen vom Messgerätehersteller Keithley bzgl. der Halbleiterphysik mit interessanten Formeln [http://www.keithley.de/support/data?asset=50486]. Oder natürlich der Klassiker von Thomas Pfeifer [http://thomaspfeifer.net/backofen_smd_reflow.htm]. Oder ein Beitrag mit LT-Spice Simulation zum Thema [http://www.mikrocontroller.net/topic/270627#2833883].&lt;br /&gt;
* Q: God why ... ?&lt;br /&gt;
** A: Because we can !&lt;br /&gt;
*Q: Ich hab aber noch nie was mit 230V gemacht.&lt;br /&gt;
**A: Dann würde ich an Deiner Stelle dieses Projekt NICHT nachbauen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Verbesserungen Prototyp ===&lt;br /&gt;
* Bauteile weiter weg von Schraublöchern&lt;br /&gt;
* Dazu Kreis rund um Bohrung auf Bestückdruck&lt;br /&gt;
* Masseanbindung Quarz&lt;br /&gt;
* Klemmen weiter weg vom Rand&lt;br /&gt;
* Klemme und Sicherungshalter weiter auseinander, damit Schutzhabe draufpasst&lt;br /&gt;
* Bohrungen für Drossel 0,2mm größer machen&lt;br /&gt;
* Teilenummer für Conrad-USB-Buchse in BOM übernehmen.&lt;br /&gt;
* Stiftleiste P1  weiter weg von P2 und P4&lt;br /&gt;
* Varistoren näher an Klemmen platzieren&lt;br /&gt;
* Bestückvarianten defineren: 1. minimal 2. Standard 3. Externe Leds und Schalter.&lt;br /&gt;
* THT-Kondensatoren für Snubber - extra Footprint?&lt;br /&gt;
* Ggv. Stiftleistenbelegung für externe Leds so ändern, das keine extra Vorwiderstände notwendig sind.&lt;br /&gt;
* Wert der Drossel checken.(BOM Bestellnummer)&lt;br /&gt;
&lt;br /&gt;
=== Errata Projekt ===&lt;br /&gt;
* LED-Beschriftung passt nicht ganz (Schltplan Netlabel OUT1,2,3,4 sind durcheinander gekommen)&lt;br /&gt;
* Schaltplan UNL2003 fehlerhafte Zuordnung IN5,6,7 &amp;lt;&amp;gt; OUT7,6,5&lt;br /&gt;
* Pullup-Widerstand bei MCLR doppelt. &lt;br /&gt;
* Brückengleichrichter / Optokoppler NICHT die im Schaltplan angegebenen Bestellnummern von Reichelt verwenden. BOM-Bauteile und Bestellnummern sind ok.&lt;br /&gt;
* Beim MOSFET R39 ist die Masseanbindung falsch. Es bestehen drei Möglichkeiten:&lt;br /&gt;
** 1. 0-R-Brücke für R39 einbauen und auf Strombegrenzung verzichten.&lt;br /&gt;
** 2. Eine Polyfuse mit Bauform 1206 einbauen. &lt;br /&gt;
** 3. Das kleine Leiterbahnstückchen zwischen R38 und R39 unterbrechen und statt dessen die Leiterbahn zwischen R39 und der Klemme mit der Durchkontaktierung bei R38 verbinden.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* Diskussion [http://www.mikrocontroller.net/topic/297217 Diskussion]&lt;br /&gt;
* Dextrel Nulldurchgang [http://www.dextrel.net/diyzerocrosser.htm Nulldurchgangschaltung]&lt;br /&gt;
* Gehäuse [http://www.hammondmfg.com/pdf/RM2055M.pdf Gehäuse Hammond]&lt;br /&gt;
* Bezugsquelle SOS Elektronik [http://www.soselectronic.com/?str=371&amp;amp;artnum=73595&amp;amp;name=hammond-ritec-rm2055m Gehäuse]&lt;br /&gt;
* Bezugsgquelle [http://www.druckerzubehoer.de/shop/product/catid/H-UNIVERSALZUBEHOER_HZB/subcatid/UNIVERSALZUBEHOER_GROUP1_HZB/productid/1727063-390722LA/site/1/lng/de_DE Mini USB Netzteil]&lt;br /&gt;
* Bezugsquelle Termoelement: TBD&lt;br /&gt;
* Bezugsquelle Steckdosen für Schalttafeleinbau: [http://www.artcase-shop.de/index.php?page=search&amp;amp;page_action=query&amp;amp;desc=on&amp;amp;sdesc=on&amp;amp;keywords=pce+105&amp;amp;x=0&amp;amp;y=0 Steckdosen]&lt;br /&gt;
* Bezugsquelle [http://www.schaeffer-ag.de/ Frontplatten]&lt;br /&gt;
 &lt;br /&gt;
[[Kategorie:Projekte]]&lt;br /&gt;
[[Kategorie:PIC]]&lt;br /&gt;
[[Kategorie:PIC-Boards]]&lt;br /&gt;
[[Kategorie:Platinen]]&lt;/div&gt;</summary>
		<author><name>Frankman</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=Reflow_Ofen_Steuerung&amp;diff=76119</id>
		<title>Reflow Ofen Steuerung</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=Reflow_Ofen_Steuerung&amp;diff=76119"/>
		<updated>2013-05-29T22:08:17Z</updated>

		<summary type="html">&lt;p&gt;Frankman: /* FAQ */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Datei:RFB.jpg]]&lt;br /&gt;
== Einleitung ==&lt;br /&gt;
[[Datei:pcb.png|thumb|right|400px|unbestücktes PCB der Reflow-Ofen-Steuerung]]&lt;br /&gt;
Hier wird eine weitere Reflow-Ofen-Steuerung beschrieben.&lt;br /&gt;
=== Zum Nachbauen ===&lt;br /&gt;
* Spezifikation: [[Datei: Spec Reflow.pdf]]&lt;br /&gt;
* Schaltplan: [[Datei:Reflow.pdf]]&lt;br /&gt;
* Gerberdaten: [[Datei:Gerber Reflow.pdf]]&lt;br /&gt;
* Assemblydrawing: [[Datei:Assembly Reflow.pdf]] &lt;br /&gt;
* Altium-Files: [[Datei:Reflow.zip]]&lt;br /&gt;
* Stückliste als CSV: [[Datei:Reflow.csv]]&lt;br /&gt;
* Stückliste als Open Office: [[Datei:Reflow.ods]]&lt;br /&gt;
* PC Programm: TBD&lt;br /&gt;
* Sourcen PC-Programm: TBD&lt;br /&gt;
* PIC Programm (*.hex): TBD&lt;br /&gt;
* Sourcen Pic-Programm: TBD&lt;br /&gt;
&lt;br /&gt;
=== Motivation ===&lt;br /&gt;
Die Gründe, eine weitere Steuerung zu entwerfen, waren:&lt;br /&gt;
&lt;br /&gt;
# Die Möglichkeit, auch größere Öfen mit 2 Phasen betreiben zu können.&lt;br /&gt;
# Die Steuerung universell zu gestalten. Es sollte möglich sein, diese nicht nur zum Reflow löten zu verwenden....z.B:&lt;br /&gt;
- Temperatursteuerung für Klimakammer (Heizen, Kühlen)&lt;br /&gt;
- Dimmer mit USB&lt;br /&gt;
- Temperaturregler für ein Tisch-Fondue ( Temperatur halten)&lt;br /&gt;
- Drehzahlsteller mit USB&lt;br /&gt;
- Switchpack&lt;br /&gt;
&lt;br /&gt;
# Die Schaltung sollte in Altium entwickelt werden. (Warum kein Eagle??? Altium User wissen es.... :-)&lt;br /&gt;
# Die Schaltung sollte mit USB ausgestattet sein.&lt;br /&gt;
&lt;br /&gt;
=== Eigenschaften &amp;amp; Spezifikationen ===&lt;br /&gt;
* Temperaturmessung: bis zu 2x &#039;&#039;&#039;Thermoelement&#039;&#039;&#039; (K-Typ) mit MAX6675 (abgekündigt) oder Nachfolger MAX31855 (pin- aber nicht softwarekompatibel)&lt;br /&gt;
* &#039;&#039;&#039;Leistungsstufen&#039;&#039;&#039;: 3x voneinander unabhängige Triac 800V bei 25A, limitiert auf &#039;&#039;&#039;10A @ 250VAC&#039;&#039;&#039; (z.B. Oberhitze, Unterhitze, Umluft)&lt;br /&gt;
* &#039;&#039;&#039;Nulldurchgangserkennung&#039;&#039;&#039; ermöglicht Wellenpaket-, Phasenan- und abschnittssteuerung, galvanische Trennung selbiger&lt;br /&gt;
* 1x &#039;&#039;&#039; MOSFET-Ausgang&#039;&#039;&#039; PWM z.B. für 12V Lüfter, max. 55V 3,5A&lt;br /&gt;
* &#039;&#039;&#039;feste Programme&#039;&#039;&#039; im EEPROM über 2-Tasterbedienung und LEDs wähl- und ausführbar. &#039;&#039;&#039;PC-unabhängiger Betrieb&#039;&#039;&#039;. Beliebig viele Programme möglich, für die Auswahl stehen 4 benutzer-konfigurierbare LEDs zur Verfügung&lt;br /&gt;
* Betrieb am Computer für mehr Reflowprofile&lt;br /&gt;
* Mini-USB-Buchse zur Steuerung / Programmierung über GUI&lt;br /&gt;
* Günstiges passendes &#039;&#039;&#039;Gehäuse&#039;&#039;&#039;, alle LEDs und Taster auf Stiftleisten herausgeführt&lt;br /&gt;
* PID-Temperaturregler&lt;br /&gt;
* UART, SPI, I2C und 2x ADC auf Stiftleisten herausgeführt (-&amp;gt; Erweiterungen)&lt;br /&gt;
* Versorgung über USB (&amp;lt; 100mA), interne Versorgungsspannung 3,3V&lt;br /&gt;
* umfangreiche EMV-gerechte Entstörung für den Bedarfsfall&lt;br /&gt;
&lt;br /&gt;
== Technische Realisierung==&lt;br /&gt;
=== PIC18LF2550 Grundbeschaltung ===&lt;br /&gt;
[[Datei:osc_vs_vcc.png|thumb|right|200px|Taktraten und Versorgungsspannung PIC18LF2550 vs. PIC18LF2550, Datenblatt S. 370/438]]&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 3/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Hier kommt ein PIC18&#039;&#039;&#039;L&#039;&#039;&#039;F2550 zum Einsatz. Er verfügt über eine USB-Schnittstelle und ist für Betriebsspannungen von 2 ... 5,5V ausgelegt. Sein Verwandter PIC18F2550 (ohne L) ist nicht für Betriebsspannungen &amp;lt; 4,2V ausgelegt. Dies ist bei USB sowiesor nicht immer erfüllt und die Thermoelement ICs vertragen ohnehin keine 5V, daher wurde die Betriebsspannung auf 3,3V reduziert. Neben Standard-Decoupling (100nF Kerko pro Vcc-Vss-Pärchen) wurde das ICSP-Interface in alt bewährter Pinbelegung (PICKit1,2,3) angebracht. PGD und PGC sind nicht weiter beschaltet, MCRL wird in Standardbeschaltung als Resetpin verwendet. Der Resetschalter findet sich auf dem Top-Sheet (Schaltplan S. 1/22). Die Taktversorgung erfolgt zwingend über einen 24 MHz Quarz (-&amp;gt; USB). Man beachte diesbezüglich rechts stehende Grafik zu Taktraten und Versorgungsspannungen (Vdd bzw. auch Vcc genannt). Auch zu finden im Datenblatt des PICs auf Seite 370.&lt;br /&gt;
&lt;br /&gt;
=== PIC18LF2550 USB Beschaltung ===&lt;br /&gt;
[[Datei:usb_part.png|thumb|right|200px|PIC18(L)F2550&lt;br /&gt;
 Standard &lt;br /&gt;
USB-Beschaltung am PIC]]&lt;br /&gt;
[[Datei:usb_protect.png|thumb|right|200px|USB-Schutzbeschaltung und Mini-USB-Buchse]]&lt;br /&gt;
&lt;br /&gt;
Die Beschaltung der USB-Schnittstelle am PIC ist 1:1 aus dem Datenblatt übernommen. Zum Einsatz kommt eine Mini-USB-Buchse (J1).&lt;br /&gt;
Der Gedanke war: Erstens ein sehr preiswertes, fertiges Netzteil verwenden zu können, (ca. 3,67 € bei druckerzubehoer.de) und zweitens, die Steuerung auch mit dem PC / Laptop versorgen zu können.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 4/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
FER1,2 und C7 filtern den Schirm nach GND. Standardmäßig wird man hier wohl 0-Ohm-Widerstände einsetzen. Falls ein Besuch im EMV-Labor geplant ist, weicht man auf den Ferrit aus. C5 und C6 filtern das Signal zusammen mit der Common-Mode-DrosselL1. Die Drossel kann mit den 0-Ohm-Brücken R8 und R9 überbrückt (gespart) werden. IC2 ist als ESD-Schutz gedacht und kann ebenfalls bei ausgeprägten Kostenbewustsein gespart werden. Die Widerstände R6 und R7 dürfen NICHT bestückt werden. FER1,2, C5, IC2 müssen nicht zwingend bestückt werden. Die Bestückung wurde vorgehalten um im Problemfall einfache Abhilfe schaffen zu können.&lt;br /&gt;
&lt;br /&gt;
=== 3,3V Spannungsversorgung ===&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 2/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Die 3,3V Versorgungsspannung für die gesamte Platine wird aus V_USB mittels des LDO Spannungsreglers TOREX - XC6206P332MR abgeleitet. Günstig, SOT-23, klein, 2x 1µF Kondensatoren benötigt, 3,3V max. 250mA. Der hat auch einen sehr kleinen Ruhestrom.&lt;br /&gt;
&lt;br /&gt;
=== Taster ===&lt;br /&gt;
*Der Resettaster zieht den MCLR-Pin nach GND und löst damit den Reset aus. MCLR  ist mit einem 10k Pullup versehen.&lt;br /&gt;
*Die übrigen beiden Taster ziehen RA4 bzw. RB5 ebenfalls nach GND.&lt;br /&gt;
&lt;br /&gt;
=== LEDs + ULN2003L ===&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 11/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Um alle LEDs auf der Platine (3x Optotriac + 7x Status) ansteuern zu können wurde auf das 7fach Darlington-Array ULN2003L zurückgegriffen. Es dient desweiteren auch als &amp;quot;MOSFET-Treiber für Arme&amp;quot;. Alle LEDs werden von diesem Transistor-Array nach Masse geschaltet. Dient der Entlastung der PIC-Ausgänge. Und kostet ja auch nicht viel.&lt;br /&gt;
&lt;br /&gt;
=== MOSFET-Leistungsausgang ===&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 22/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Hier kommt der einfacher N-Kanal MOSFET (LogicLevel) PHT8N06LT zum Einsatz. Er wird über das ULN2003L Array getrieben und ermöglicht den Anschluss eines DC-Verbrauchers mit max. 55V bei 3,5A. Hier könnte beispielsweise ein PC-Lüfter zur Kühlung od. Umluft angeschlossen und über PWM geregelt/gesteuert werden. Ein Gatewiderstand von 100 Ohm ist zum Schutz des Treibers vorgesehen. Eine 0-Ohm-Brücke ist stattdessen aber auch möglich, wenn man eine höhere Leistung schalten möchte.Die Leiterbahnen sollten die 3A schon hergeben. Der 100 Ohm Widerstand bildet eine Stromquelle. Sobald der Strom durch den MOSFET und den Widerstand 33mA erreicht, sinkt UGS gegen 0 V. Folge: Der Mosfet sperrt ( und bleibt ganz....)&lt;br /&gt;
Es kann hier prinzipiell auch ein anderer Mosfet im SOT223-Gehäuse zum Einsatz kommen. Achten sollte man darauf, das der MOSFET schon bei 3,3V Ugs gut leiten sollte.&lt;br /&gt;
&lt;br /&gt;
=== Nulldurchgangserkennung ===&lt;br /&gt;
[[Datei:zerocross.png|thumb|right|200px|Nulldurchgangserkennung]]&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 5/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Die Nulldurchgangserkennung erfolgt nach einer sehr bekannten - jedoch ausgeklügelten - Schaltung.  [http://www.dextrel.net/diyzerocrosser.htm]&lt;br /&gt;
&lt;br /&gt;
ACHTUNG: DER IM SCHALTPLAN VERZEICHNETE OPTOKOPPLER und BRÜCKENGLEICHRICHTER VON REICHELT DARF KEINESFALLS VERWENDET WERDEN! Pinbelegung! Bitte den Optokoppler aus der Stückliste nehmen!&lt;br /&gt;
&lt;br /&gt;
Während einer Halbwelle wird C14 über R33 und R35 bzw. D5 geladen. Währenddessen ist T1 gesperrt. Sobald die Wechselspannung (L1-N über Spannungsteiler (R33+R35) / R34) kleiner ist als die Spannung über C14, steuert T1 durch. Dann entlädt sich C14 über den LED-Vorwiderstand R32. Der durch-steuernde Optokoppler zieht die Sync-Leitung nach GND. (Pullup Sync-Leitung = R31). Dies löst beim PIC auf INT2 einen Interrupt aus. &lt;br /&gt;
&lt;br /&gt;
Dieser Interrupt ermöglicht eine präzise Wellenpaket-, Phasenanschnittsteuerung je nach Bedarf. Das Schalten im Nulldurchgang bei der Wellenpaketsteuerung reduziert EMV-Störungen. Für Phasenanschnitt ist prinzipbedingt ohnehin eine Nulldurchgangserkennung notwendig. Außerdem liefert sie eine völlig ausreichend genaue Zeitbasis für alle Programmabläufe.&lt;br /&gt;
&lt;br /&gt;
=== Triac-Ausgänge + Snubber ===&lt;br /&gt;
[[Datei:triac.png|thumb|right|200px|Triac-Ausgangsbeschaltung]]&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 19,20,21/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Die Ansteuerung des eigentlichen Leistungstriacs BTA140-800 erfolgt über den Optotriac IS6005. Der Strom durch Letzteren wird durch R1x limitiert (Vorwiderstand). R2x und R5x limitieren wiederum den Strom durch den Optotriac. Wenn dieser zündet so folgt unmittelbar der &amp;quot;Leistungstriac&amp;quot; der dann die Last schaltet.&lt;br /&gt;
&lt;br /&gt;
S1x ist ein Sicherungshalter um die Lasten einzeln absichern zu können. Wert 10A Mittelträge.&lt;br /&gt;
&lt;br /&gt;
R3x, R4x, C3x bilden ein Snubber-Network, L1X verhindert eine zu schnelle Stromanstiegsgeschwindikeit damit der Triac nicht &amp;quot;von selbst&amp;quot; zündet. Weglassen äußert sich meist in einem fast nicht hörbaren Click. Damit zeigt einem dann der Triac, dass er ab jetzt für immer recht niederohmig geworden ist. Die Regelung der Temperatur braucht dann nicht mehr über den Prozessor erfolgen, sondern nur noch mit dem Ein-/Ausschalter..... :-)&lt;br /&gt;
&lt;br /&gt;
=== Thermoelemente (MAX6675/MAX31855)  ===&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 6,7/22&#039;&#039;&#039;&lt;br /&gt;
Der inzwischen abgekündigte MAX6675 bzw. sein ehrenwerter Nachfolger MAX31855 sind einfach zu handhabende Thermoelement-ICs mit Kaltstellenkompensation. Thermoelemente funktionieren durch das Verschweißen zweier verschiedener Legierungen (beim K-Typ Thermoelemnt Ni und CrNi). Durch den durch die Umgebungstemperatur bedingten Wärmefluss zwischen beiden entsteht ein elektrische Spannung. Diese wird von besagten ICs verstärkt und digitalisiert (ADC). Diese Spannung / Temperatur ist natürlich wieder relativ zur Umgebungstemperatur an der Kaltstelle (Kontaktierung der beiden Drähte mit dem Messinstrument). Daher messen diese ICs auch gleich die Umgebungstemperatur (Kaltstellenkompensation genannt) mit, verrechnen das und geben das Ergebnis auf der SPI-Schnittstelle aus. MAX6675 leistet 12bit also 0,25°C Auflösung (nicht Genauigkeit!) über einen Temperaturbereich von 0°C to +1024°C. Außerdem wird ein nicht/fehlerhaft angeschlossenes Thermoelement erkannt. Der Thermocouple-IC wird an die SPI-Schnittstelle des PICs angeschlossen (hier MSSP genannt). &lt;br /&gt;
&lt;br /&gt;
MAX6675 und MAX31855 scheinen entgegen der Adafruit-Information [http://www.adafruit.com/products/269] doch pinkompatibel zu sein - die Ansteuerung unterscheidet sich jedoch definitiv. (Zitat: &amp;quot;Now uses the MAX31855K instead of the MAX6675, so it can measure a wider temperature measurement range. Please note! the MAX31855 is not pin compatible or drop-in code compatible with the MAX6675. We do have an Arduino library for both chips but you&#039;ll need to adjust any existing MAX6675 designs for the mew MAX31855. The MAX6675 has been discontinued by Maxim.&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Es wurden 2 dieser ICs und damit 2 Temperaturmessstellen vorgesehen. Dies ermöglich die Messung für eine Regelung der Temperatur so wie eine zusätzliche Überwachung kritischer Bauteile (z.B. ICs oder LEDs). Die Minimalbestückung sieht einen MAX6675/MAX31855 vor. Die Auswahl in der Firmware erfolgt über einen der beiden GPIO-Pins RA5 oder RA0 via dem ChipSelect (CS) des MAX6675/MAX31855.&lt;br /&gt;
&lt;br /&gt;
Neben dem MAX6675/MAX31855 wurde ein Decoupling-Kondensator (C8x, Standard 100nF) so wie ein weiterer im Messpfad (C9x) zur Zwecken der Entstörung vorgeshen. C9x 100nF sollte nur bestückt werden wenn Probleme bei der Temperaturmessung entstehen (z.B. unrealstisch stark schwankende Werte).&lt;br /&gt;
&lt;br /&gt;
=== ADC, SPI, UART &amp;amp; I2C Stiftleiste ===&lt;br /&gt;
ADC, SPI, UART und I2C sind zu Zwecken der Kalibrierung / Erweiterung / Einstellung / Debugging auf Stiftleisten herausgeführt:&lt;br /&gt;
Ähnlichkeiten mit dem FTDI-USB-TTL-Kabel bzw. Arduino XXX Bla Bla Bla Schnittstellenkonverter sind natürlich rein zufällig.&lt;br /&gt;
&lt;br /&gt;
Die I2C-Schnittstelle wurde auf eine Stiftleiste geführt, um z.B. einem LM75 o.ä. anschließen zu können. Damit stehen zur Kalibrierung der Thermoelemente genaue Temperaturen zur Verfügung.&lt;br /&gt;
&lt;br /&gt;
Die Stiftleisten haben alle ein Raster von 2,54mm. So können Pin-Header, Wannenstecker oder ähnliches verwendet werden.&lt;br /&gt;
&lt;br /&gt;
Da ja viele Leute eigene Vorstellungen bezüglich der Frontplattengestaltung haben, wurden auch die Taster und LEDs auf Stiftleisten geführt.&lt;br /&gt;
&lt;br /&gt;
=== Kühlkörper ===&lt;br /&gt;
Da die Triacs der Steuerung für bis zu 10A pro Kanal ausgelegt sind, kann man auf die Kühlkörper nicht verzichten. Es fallen bei 10A bis zu 13 Watt Wärme pro Triac ab. Falls mann auf die Kühlkörper doch verzichten möchte, sollte man darauf achten, die Triacs mit dem Kopf nach unten einzubauen. Diese können sich dann bei Überlast ganz von selber auslöten.... :-)&lt;br /&gt;
&lt;br /&gt;
=== Gehäuse ===&lt;br /&gt;
Die Leiterplatte wurde für ein Gehäuse von Hammond entwickelt.&lt;br /&gt;
Das Gehäuse ist zwar keine Schönheit, aber doch recht preiswert.&lt;br /&gt;
Typenbezeichnung: RM2055M&lt;br /&gt;
&lt;br /&gt;
== Firmware PIC ==&lt;br /&gt;
Die Entwicklung der Firmware für den PIC18LF2550  geht mit MPlab 8 respektive dem C18 Compiler von Statten. MPlab ist kostenlos, der C18 Compiler bis auf die stärkste Optimierungsstufe ebenfalls. Die Quellen für die Firmware werden auch offengelegt.&lt;br /&gt;
=== Programmstruktur- und ablauf ===&lt;br /&gt;
Nach anfänglicher Initialisierung des PIC startet die Statemachine [http://http://www.mikrocontroller.net/articles/Statemachine] [http://http://de.wikipedia.org/wiki/Endlicher_Automat]. Neben ihr findet in der main-Funktion nur noch die Abfrage der beiden Bedientasten statt. Mit dem Tastendruck wird zum Zwecke der Entprellung ein Timer gestartet. Alles Andere (incl. PID-Regelung, Wellenpaket- bzw. Phasenan- und Phasenabschnittssteuerung und USB) ist interruptbasiert.&lt;br /&gt;
&lt;br /&gt;
=== Taktversorgung, Nulldurchgangserkennung und Zeitbasis ===&lt;br /&gt;
=== USB ===&lt;br /&gt;
=== SPI für MAX6675 ===&lt;br /&gt;
=== SPI für MAX31855 ===&lt;br /&gt;
&lt;br /&gt;
=== Wellenpaketsteuerung ===&lt;br /&gt;
=== Phasenanschnitt ===&lt;br /&gt;
&lt;br /&gt;
=== PWM für MOSFET ===&lt;br /&gt;
&lt;br /&gt;
== PC-Software (GUI) ==&lt;br /&gt;
[[Datei:gui_alpha.png|thumb|right|300px|Screenshot der GUI (noch Alpha) für den Reflow-Ofen-Controller]]&lt;br /&gt;
&lt;br /&gt;
Die GUI (englisch Graphical User Interface) ist der Einfachheit halber in VB.net programmiert und momentan noch im Alpha-Stadium. Auch hierfür liegen die Quellen später selbstverständlich offen.&lt;br /&gt;
&lt;br /&gt;
=== Funktionen und Modi ===&lt;br /&gt;
[[Datei:modi.png|thumb|right|400px|Auswahl der beschriebenen Modi durch Klick]]&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Ofen-Profil&amp;quot;&#039;&#039;&#039; - Es wird ein Programm (Temperaturkurve) aus dem EEPROM des Reflow-Ofens ausgeführt. Der Backvorgang kann mit der Software gesteuert (START, STOP, ...) und überwacht werden. Hierzu stehen Temperatur, Temperaturänderung, Heizleistung (Ober- und Unterhitze, Lüfter) so wie die graphische Darstellung im zentralen Diagramm zur Verfügung. Eingriffsmöglichkeiten, wie das Ändern der Temperaturkurve sind nicht vorgesehen. Dies soll ein reiner Überwachungs-Modus sein. Um die Temperaturkurve zu verändern zu können, sollte der Modus &amp;quot;PC-Profil&amp;quot; verwendet werden und die Temperaturkurve aus dem EEPROM importiert werden. Dann kann Selbige auch verändert und anschließend ausgeführt bzw. verändert in den EEPROM zurückgeschrieben werden. Dieser Modus stellt ein Äquivalent zur START/STOP-Tasten-Bedienung an der Platine dar und kann selbstverständlich parallel dazu genutzt werden. Die GUI also als Addon zum Stand-Alone-Betrieb.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;PC-Profil&amp;quot;&#039;&#039;&#039; - Es wird ein Programm (Temperaturkurve) ausgeführt welche zuvor am Computer erstellt / editiert wurde. In diesem Modus gibt der Computer Temperaturwerte vor, welche live über die USB-Schnittstelle zum PIC übertragen werden und mit dem dort integrierten PID-Regler ausgeführt werden. Das ermöglicht eine on-the-fly Veränderung der Temperaturkurve während des Backvorgangs. Temperaturkurven können aus Dateien oder dem EEPROM importiert und auch wieder exportiert werden. CSV-Dateien können ebenfalls importiert und exportiert werden. Die &amp;quot;Eingabe&amp;quot; der Temperaturkurve erfolgt entweder über Import (CSV/EEPROM), per Mausklick auf dem zentralen Diagramm oder im sog. DataGridView. Weiteres siehe Unterpunkt &amp;quot;Eingabe der Temperaturkurve (Reflowprofil)&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;manueller Ablauf&amp;quot;&#039;&#039;&#039; - In diesem Modus wird (im Gegensatz zu den oberen beiden Modi &amp;quot;Ofen-Profil&amp;quot; und &amp;quot;PC-Profil&amp;quot;) keine Temperatur geregelt. Hier wird die Leistung des Ofens in % eingestellt und gesteuert. Der PID-Regler ist nicht in Aktion. Die Temperatur, Temperaturänderung so wie der Temperaturverlauf werden selbstredend angezeigt bzw. im Diagramm dargestellt. Der Modus &amp;quot;manueller Ablauf&amp;quot; fährt ähnlich dem Modus &amp;quot;PC-Profil&amp;quot; die im DataGridView eingetragenen Leistungs-Zeit-Punkte ab. Für jeden Zeitpunkt ist eine Leistung vorgegeben. Die Eingabe erfolgt ähnlich wie unter &amp;quot;Eingabe der Temperaturkurve (Reflowprofil)&amp;quot; beschrieben. Nur eben, dass eine Leistung und keine Temperatur angegeben wird. Die Eingabe der Leistung kann nicht im Zeit-Temperatur-Diagramm erfolgen sondern mittels der Schieberegler oder direkt tabellarisch.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;manueller Modus&amp;quot;&#039;&#039;&#039; - Dieser Modus enthält 2 Submodi&lt;br /&gt;
** &amp;quot;manueller Leistungsmodus&amp;quot; - Auch in diesem Modus wird die Leistung gesteuert. Es wird keine Temperatur geregelt, der PID-Regler für die Temperatur ist nicht in Betrieb. Die Einstellung hier erfolgt über die drei Schieberegler oder über eine numerische Eingabe durch Klick auf die Leistungsangabe unter dem Schieberegler. Durch Klick auf die Texte &amp;quot;TOP&amp;quot;, &amp;quot;BOTTOM&amp;quot;, &amp;quot;FAN&amp;quot; (Oberhitze, Unterhitze, Lüfter) können selbige deaktiviert bzw. aktiviert werden. Auch in diesem Modus wird Temperatur, Temperaturänderung so wie der Temperaturverlauf dargestellt.&lt;br /&gt;
** &amp;quot;manueller Temperaturmodus&amp;quot; - Hier wird die Temperatur wieder mittels des Temperatur-PIDs geregelt. Die Temperatur wird entweder mittels Schieberegler (Ober- und Unterhitze-Regler sind jetzt gekoppelt) oder durch eine numerische Eingabe unterhalb der Schieberegler vorgegeben. Anzeige wie im &amp;quot;manuellen Leistungsmodus&amp;quot;. Der Lüfter kann unabhängig vom PID in seiner Leistung geregelt werden. Ein evtl. durch den Luftstrom verursachter Temperaturabfall wird vom PID selbstverständlich ausgeregelt (aus diesem Grunde ist es ja ein Regler).&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Programmieren&amp;quot;&#039;&#039;&#039; - Hier kann ein neues &#039;&#039;&#039;Temperatur&#039;&#039;&#039;-Programm für den EEPROM-Speicher des Ofens erstellt und editiert werden. Die Eingabemöglichkeiten sind unter &amp;quot;Eingabe der Temperaturkurve (Reflowprofil)&amp;quot; beschrieben. Dieser Modus ist zum reinen Programmieren des Ofens gedacht und ermöglicht keine weitere Steuerung oder Überwachung des Ofens.&lt;br /&gt;
&lt;br /&gt;
=== Eingabe der Temperaturkurve (Reflowprofil) ===&lt;br /&gt;
[[Datei:datagridview.png|thumb|right|400px|tabellarische Anzeige und Editiermöglichkeit der Temperaturkurve]]&lt;br /&gt;
Die Eingabe der Temperaturkurve erfolgt entweder über Import (CSV/EEPROM), per Mausklick auf dem zentralen Diagramm oder im sog. DataGridView (Excel-ähnliche Bedienung in tabellarischer Form). &lt;br /&gt;
&lt;br /&gt;
* CSV-Import + Export&lt;br /&gt;
* EEPROM-Import + Export&lt;br /&gt;
* Im rechts stehenden Screenshotbeispiel wird eine tabellarische Eingabeform mit einem DataGridView gezeigt: Die Temperatur (erster Temperaturpunkt = Punkt 0) von 100°C wird linear über einen Zeitraum von 0-30s verteilt. Bei 30s hat der Ofen die Temperatur von 100°C. Dafür setzt die Regelung die Oberhitze, die Unterhitze ein. Der Lüfter ist deaktiviert. In der Zeit von 30s bis 120s wird die Temperatur nun von 100°C auf 150°C linear angehoben. Von 120s bis 180s Backzeit steigt die Temperatur von 150°C auf 250°C. Von 180s bis 200s wird die Temperatur auf 280°C angehoben. Anschließend wird sie zwischen 200s und 220s auf 280°C gehalten (280°C@200s und 280°C@220s) um dann bis 240s wieder auf 250°C zu fallen. Bis zum Zeitpunkt 300s wird dann die Temperatur 30°C angestrebt. Zusätzlich ist der Lüfter nun aktiviert (soweit der Ofen eine Umluftfunktion besitzt). Bei Punkt 7 sind Ober- und Unterhitze deaktiviert nur noch der Lüfter kühlt. Da hier bei &amp;quot;Zeit[s]&amp;quot; die 0 eingetragen wird der Zustand (hier nur Lüfter an) für einen unendlich langen Zeitraum auf 0 gehalten. Also so lange wie das Programm aktiviert ist wird der Lüfter laufen. Natürlich könnte man hier auch z.B. 100°C und Zeitpunkt 0s eintragen. Dann würde der Ofen bis zum manuellen Beenden des Programms (klick auf STOP-Button oder Drücken des START/STOP-Tasters auf der Platine/Steuerung) 100°C halten.&lt;br /&gt;
* Alle Zellen des DataGridView sind editierbar (zur Veränderung der Temperatur, Zeitpunkt, ...)&lt;br /&gt;
* Direkter Klick auf das zentrale Temperatur-Zeit-Diagramm trägt den Zeitpunkt so wie die Temperatur unter dem Mauszeiger in die Tabelle (das DataGridView) ein. Die ausgewählte Zeile wird beschrieben oder überschrieben. Neue Zeilen (also Temperatur-Zeit-Punkte) können durch klick auf den &amp;quot;Plus-Button&amp;quot; hinzugefügt werden. Ebenso ist das Löschen oder Verschieben einer oder mehrerer Zeile gleichzeitig möglich.&lt;br /&gt;
&lt;br /&gt;
=== Beschreibung der Steuerungsmöglichkeiten ===&lt;br /&gt;
In Abhängigkeit des gewählten Modus bestehen einige Steuerungs-, Einstellungs- und Kontrollmöglichkeiten:&lt;br /&gt;
* &#039;&#039;&#039;Schieberegler&#039;&#039;&#039; für Temperatur od. Leistung (je nach Modus) für Oberhitze, Unterhitze und Lüfter. Je nach Hardwareausführung. &lt;br /&gt;
** Klick auf &amp;quot;TOP&amp;quot;, &amp;quot;BOTTOM&amp;quot; oder &amp;quot;FAN&amp;quot; aktiviert oder deaktiviert die entsprechende Funktion bzw. Hardware.&lt;br /&gt;
** Numerische Eingabe der Werte für die Schieberegler durch Klick auf die Anzeige unterhalb der Schieberegler. Werte können auch im deaktivierten Zustand angegeben werden. Die Übernahme erfolgt durch den &amp;quot;Aktivierungsklick&amp;quot; auf &amp;quot;TOP&amp;quot;, &amp;quot;BOTTOM&amp;quot; oder &amp;quot;FAN&amp;quot;&lt;br /&gt;
* &#039;&#039;&#039;T1, dT1, T2, dT2&#039;&#039;&#039; - Anzeige der gemessenen Temperatur so wie die momentane Temperaturänderung am jeweiligen Sensor. &lt;br /&gt;
* &#039;&#039;&#039;Bedienbuttons&#039;&#039;&#039;&lt;br /&gt;
** Play - Startet das Programm am angegebenen Startpunkt (siehe unten)&lt;br /&gt;
** Pause - Pausiert das Programm - weitere Pauseoptionen siehe unten&lt;br /&gt;
** Stop - Stopt den Programmablauf&lt;br /&gt;
** Vor / Zurück - Springt zwischen Temperaturpunkten hin und her. Dient zum überspringen oder zurückspringen zu gewissen Temperatur-Zeit-Punkten. Ermöglicht z.B. das Überspringen eines Ablaufes der eine lange Preheat- oder Dryphase hat.&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Status&amp;quot;&#039;&#039;&#039; - zeigt den aktuellen Zustand des Programms an (READY, START, WAITING, PAUSE, ...)&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;RESET&amp;quot;&#039;&#039;&#039; - setzt das (begonnene) Programm zurück. Beinhaltet neben dem Programmablauf auch das Zurücksetzen der graphischen Anzeige des Diagramms, etc.&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Startpunkt&amp;quot;&#039;&#039;&#039; - legt den ersten Punkt des Programmablaufes fest. &lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Wiederholungen&amp;quot;&#039;&#039;&#039; - ermöglicht das wiederholte Backen ohne das Programm händisch immer wieder neu starten zu müssen. Die Anzahl der Wiederholungen ist einstellbar (0 für unendlich viele) und es ist eine Wartezeit zwischen den Wiederholungen einstellbar. Alternativ kann eine Meldung nach jedem vollendeten Backvorgang abgegeben werden. Nach Bestätigung dieser wird die nächste Wiederholung ausgeführt.&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Pause&amp;quot;&#039;&#039;&#039; - Pauseneinstellungen. Hier sind Optionen wählbar was passieren soll, falls der Pausebutton betätigt wird:&lt;br /&gt;
** Pausezeit - gibt an wie lange die Pause dauern soll [s], danach fährt das Programm automatisch gemäß des gewählten Pausemodus fort. Für eine Pause ohne automatisches Fortfahren (Countdowntimer) &#039;0&#039; angeben.&lt;br /&gt;
** Pausemodus &amp;quot;aktuelle Temperatur halten, WarmUp, Fortsetzen&amp;quot; - Ofen hält die Temperatur (Zieltemperatur) des Zeitpunktes als der Pausebutton betätigt wurde. WarmUp bedeutet, dass nach dem Beenden des Pausemodus zunächst die Zieltemperatur wieder erreicht werden &#039;&#039;&#039;muss&#039;&#039;&#039; bevor der nächste Punkt angesteuert wird. Klingt paradox, wenn die Temperatur doch so und so gehalten wird, ist aber nicht so. Die Wahrscheinlichkeit ist hoch, dass der Pausemodus benutzt wird um die Ofentüre zu öffnen und Korrekturen an der Platine vorzunehmen. Unter Umständen ist die Heizung des Ofens jedoch nicht in der Lage den dadurch entstehenden Wärmeverlust zu kompensieren. Fährt das Programm dann sofort fort, so könnten evtl. kritische (Hoch-)Punkte des Lötprofils &amp;quot;unterfahren&amp;quot; werden. Dem wirkt WarmUp entgegen.&lt;br /&gt;
** Pausemodus &amp;quot;aktuelle Temperatur halten, Fortsetzen&amp;quot; - siehe oben, nur ohne WarmUp.&lt;br /&gt;
** Pausemodus &amp;quot;definierte Temperatur halten, WarmUp, Fortsetzen&amp;quot; - siehe oben. Statt der aktuellen Zieltemperatur wird jedoch nun im Pausemodus eine einzustellende Pausetemperatur gehalten. Mit WarmUp.&lt;br /&gt;
** Pausemodus &amp;quot;definierte Temperatur halten, Fortsetzen&amp;quot; - siehe oben, nur ohne WarmUp.&lt;br /&gt;
** &amp;quot;Pausetemperatur&amp;quot; - spezielle Temperatur die bei entsprechender Pausemoduswahl für die Dauer der Pause gehalten wird.&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Ende&amp;quot;&#039;&#039;&#039; - gibt an was am Ende eines durchlaufenen Reflow-Programms passieren soll. Ist der Wiederholungsmodus aktiviert, tritt dieses Ereignis erst nach Durchlauf aller Wiederholungen ein. Folgende Modi sind möglich:&lt;br /&gt;
** automatischer Reset - am Ende des Programms wird alles automatisch zurückgesetzt, alle Graphiken und Anzeigen gelöscht.&lt;br /&gt;
** manueller Reset - am Ende des Programms bleiben alle Anzeigen, Graphiken, etc erhalten und müssen vor Beginn eines neuen Reflowvorgangs händisch durch Klick auf &amp;quot;RESET&amp;quot; zurückgesetzt werden.&lt;br /&gt;
** Benutzermeldung - lässt eine Meldung erscheinen. Alle Anzeigen und Graphiken bleiben erhalten bis der Benutzer diese Meldung bestätigt. Mit Bestätigung dieser Meldung wird ein automatischer Reset vorgenommen.&lt;br /&gt;
&lt;br /&gt;
=== Loggen des Temperaturverlaufes ===&lt;br /&gt;
Es ist möglich jeden Backvorgang in eine CSV-Datei zu loggen. (Software- und PID-Einstellungen). Geloggte CSV-Dateien können eingelesen und im zentralen Temperatur-Zeit-Diagramm begutachtet werden. Ein Ist-Soll-Vergleich ist ebenso möglich wie die direkte Anzeige des Fehlers (&amp;quot;Ist minus Soll&amp;quot;). Dank CSV können die Daten auch mit anderen Programmen (Excel, etc.) weiterverarbeitet werden.&lt;br /&gt;
&lt;br /&gt;
== Ofen / Pizzaofen ==&lt;br /&gt;
=== Leistung und Volumen ===&lt;br /&gt;
=== Dämmung ===&lt;br /&gt;
=== Umluft ===&lt;br /&gt;
=== Bezugsquellen ===&lt;br /&gt;
=== Diskussionen im Forum ===&lt;br /&gt;
* Umfangreicher Thread u.A. Leistungsvermögen, Temperaturmessung und Dämmung [http://www.mikrocontroller.net/topic/270627]&lt;br /&gt;
&lt;br /&gt;
== FAQ ==&lt;br /&gt;
&lt;br /&gt;
* Q1: Ich habe einen PT100/PT1000 und möchte den anschließen. Geht das?&lt;br /&gt;
** A1: Ja natürlich. Dazu ist aber etwas externe Elektronik notwendig. Sowohl 2 ADC-Pins (mit 3V3 Betriebsspannung als fixe Referenzspannung), als auch die UART und SPI/I2C-Schnittstelle stehen zur freien Verfügung. Für PT100/PT1000 wird für vernünftige Messungen ohnehin eine Verstärkung (meist mit OPV) von Nöten sein. Da der PIC-interne ADC &amp;quot;nur&amp;quot; 10bit Auflösung bietet sollte ein externer 16bit ADC in Betracht gezogen werden um das Potential der PT100/PT1000 auszunutzen.&lt;br /&gt;
*Q2: Ich habe von günstigen Temperaturmessungen mit Dioden gehört. Geht das auch hier?&lt;br /&gt;
**A2: Ja. Die Vorwärtsspannung einer Diode verhält sich linear zur Sperrschichttemperatur. Diese Spannung (bei 25°C einer Si-Diode die bekannten 0,7V) kann mittels OPV verstärkt werden und auf einen Spannungsbereich von 0 ... 3V3 aufgebläht werden. Eine billige Lösung, auf Kosten der Genauigkeit. Doch eine Diode ist laut Datenblatt nur bis 150°C geeignet. Es ist also beim Löten mehr oder weniger Pfusch. Wenn ich schon eine Reflow-Steuerung baue, sollte ich doch nicht an ein paar Euro für eine gescheite Temperaturmessung sparen. Einige Anregungen vom Messgerätehersteller Keithley bzgl. der Halbleiterphysik mit interessanten Formeln [http://www.keithley.de/support/data?asset=50486]. Oder natürlich der Klassiker von Thomas Pfeifer [http://thomaspfeifer.net/backofen_smd_reflow.htm]. Oder ein Beitrag mit LT-Spice Simulation zum Thema [http://www.mikrocontroller.net/topic/270627#2833883].&lt;br /&gt;
* Q: God why ... ?&lt;br /&gt;
** A: Because we can !&lt;br /&gt;
*Q: Ich hab aber noch nie was mit 230V gemacht.&lt;br /&gt;
**A: Dann würde ich an Deiner Stelle dieses Projekt NICHT nachbauen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Verbesserungen Prototyp ===&lt;br /&gt;
* Bauteile weiter weg von Schraublöchern&lt;br /&gt;
* Dazu Kreis rund um Bohrung auf Bestückdruck&lt;br /&gt;
* Masseanbindung Quarz&lt;br /&gt;
* Klemmen weiter weg vom Rand&lt;br /&gt;
* Klemme und Sicherungshalter weiter auseinander, damit Schutzhabe draufpasst&lt;br /&gt;
* Bohrungen für Drossel 0,2mm größer machen&lt;br /&gt;
* Teilenummer für Conrad-USB-Buchse in BOM übernehmen.&lt;br /&gt;
* Stiftleiste P1  weiter weg von P2 und P4&lt;br /&gt;
* Varistoren näher an Klemmen platzieren&lt;br /&gt;
* Bestückvarianten defineren: 1. minimal 2. Standard 3. Externe Leds und Schalter.&lt;br /&gt;
* THT-Kondensatoren für Snubber - extra Footprint?&lt;br /&gt;
* Ggv. Stiftleistenbelegung für externe Leds so ändern, das keine extra Vorwiderstände notwendig sind.&lt;br /&gt;
* Wert der Drossel checken.(BOM Bestellnummer)&lt;br /&gt;
&lt;br /&gt;
=== Errata Projekt ===&lt;br /&gt;
* LED-Beschriftung passt nicht ganz (Schltplan Netlabel OUT1,2,3,4 sind durcheinander gekommen)&lt;br /&gt;
* Schaltplan UNL2003 fehlerhafte Zuordnung IN5,6,7 &amp;lt;&amp;gt; OUT7,6,5&lt;br /&gt;
* Pullup-Widerstand bei MCLR doppelt. &lt;br /&gt;
* Brückengleichrichter / Optokoppler NICHT die im Schaltplan angegebenen Bestellnummern von Reichelt verwenden. BOM-Bauteile und Bestellnummern sind ok.&lt;br /&gt;
* Beim MOSFET R39 ist die Masseanbindung falsch. Es bestehen drei Möglichkeiten:&lt;br /&gt;
** 1. 0-R-Brücke für R39 einbauen und auf Strombegrenzung verzichten.&lt;br /&gt;
** 2. Eine Polyfuse mit Bauform 1206 einbauen. &lt;br /&gt;
** 3. Das kleine Leiterbahnstückchen zwischen R38 und R39 unterbrechen und statt dessen die Leiterbahn zwischen R39 und der Klemme mit der Durchkontaktierung bei R38 verbinden.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* Diskussion [http://www.mikrocontroller.net/topic/297217 Diskussion]&lt;br /&gt;
* Dextrel Nulldurchgang [http://www.dextrel.net/diyzerocrosser.htm Nulldurchgangschaltung]&lt;br /&gt;
* Gehäuse [http://www.hammondmfg.com/pdf/RM2055M.pdf Gehäuse Hammond]&lt;br /&gt;
* Bezugsquelle SOS Elektronik [http://www.soselectronic.com/?str=371&amp;amp;artnum=73595&amp;amp;name=hammond-ritec-rm2055m Gehäuse]&lt;br /&gt;
* Bezugsgquelle [http://www.druckerzubehoer.de/shop/product/catid/H-UNIVERSALZUBEHOER_HZB/subcatid/UNIVERSALZUBEHOER_GROUP1_HZB/productid/1727063-390722LA/site/1/lng/de_DE Mini USB Netzteil]&lt;br /&gt;
* Bezugsquelle Termoelement: TBD&lt;br /&gt;
* Bezugsquelle Steckdosen für Schalttafeleinbau: [http://www.artcase-shop.de/index.php?page=search&amp;amp;page_action=query&amp;amp;desc=on&amp;amp;sdesc=on&amp;amp;keywords=pce+105&amp;amp;x=0&amp;amp;y=0 Steckdosen]&lt;br /&gt;
* Bezugsquelle [http://www.schaeffer-ag.de/ Frontplatten]&lt;br /&gt;
 &lt;br /&gt;
[[Kategorie:Projekte]]&lt;br /&gt;
[[Kategorie:PIC]]&lt;br /&gt;
[[Kategorie:PIC-Boards]]&lt;br /&gt;
[[Kategorie:Platinen]]&lt;/div&gt;</summary>
		<author><name>Frankman</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=Reflow_Ofen_Steuerung&amp;diff=76118</id>
		<title>Reflow Ofen Steuerung</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=Reflow_Ofen_Steuerung&amp;diff=76118"/>
		<updated>2013-05-29T22:04:02Z</updated>

		<summary type="html">&lt;p&gt;Frankman: /* Links */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Datei:RFB.jpg]]&lt;br /&gt;
== Einleitung ==&lt;br /&gt;
[[Datei:pcb.png|thumb|right|400px|unbestücktes PCB der Reflow-Ofen-Steuerung]]&lt;br /&gt;
Hier wird eine weitere Reflow-Ofen-Steuerung beschrieben.&lt;br /&gt;
=== Zum Nachbauen ===&lt;br /&gt;
* Spezifikation: [[Datei: Spec Reflow.pdf]]&lt;br /&gt;
* Schaltplan: [[Datei:Reflow.pdf]]&lt;br /&gt;
* Gerberdaten: [[Datei:Gerber Reflow.pdf]]&lt;br /&gt;
* Assemblydrawing: [[Datei:Assembly Reflow.pdf]] &lt;br /&gt;
* Altium-Files: [[Datei:Reflow.zip]]&lt;br /&gt;
* Stückliste als CSV: [[Datei:Reflow.csv]]&lt;br /&gt;
* Stückliste als Open Office: [[Datei:Reflow.ods]]&lt;br /&gt;
* PC Programm: TBD&lt;br /&gt;
* Sourcen PC-Programm: TBD&lt;br /&gt;
* PIC Programm (*.hex): TBD&lt;br /&gt;
* Sourcen Pic-Programm: TBD&lt;br /&gt;
&lt;br /&gt;
=== Motivation ===&lt;br /&gt;
Die Gründe, eine weitere Steuerung zu entwerfen, waren:&lt;br /&gt;
&lt;br /&gt;
# Die Möglichkeit, auch größere Öfen mit 2 Phasen betreiben zu können.&lt;br /&gt;
# Die Steuerung universell zu gestalten. Es sollte möglich sein, diese nicht nur zum Reflow löten zu verwenden....z.B:&lt;br /&gt;
- Temperatursteuerung für Klimakammer (Heizen, Kühlen)&lt;br /&gt;
- Dimmer mit USB&lt;br /&gt;
- Temperaturregler für ein Tisch-Fondue ( Temperatur halten)&lt;br /&gt;
- Drehzahlsteller mit USB&lt;br /&gt;
- Switchpack&lt;br /&gt;
&lt;br /&gt;
# Die Schaltung sollte in Altium entwickelt werden. (Warum kein Eagle??? Altium User wissen es.... :-)&lt;br /&gt;
# Die Schaltung sollte mit USB ausgestattet sein.&lt;br /&gt;
&lt;br /&gt;
=== Eigenschaften &amp;amp; Spezifikationen ===&lt;br /&gt;
* Temperaturmessung: bis zu 2x &#039;&#039;&#039;Thermoelement&#039;&#039;&#039; (K-Typ) mit MAX6675 (abgekündigt) oder Nachfolger MAX31855 (pin- aber nicht softwarekompatibel)&lt;br /&gt;
* &#039;&#039;&#039;Leistungsstufen&#039;&#039;&#039;: 3x voneinander unabhängige Triac 800V bei 25A, limitiert auf &#039;&#039;&#039;10A @ 250VAC&#039;&#039;&#039; (z.B. Oberhitze, Unterhitze, Umluft)&lt;br /&gt;
* &#039;&#039;&#039;Nulldurchgangserkennung&#039;&#039;&#039; ermöglicht Wellenpaket-, Phasenan- und abschnittssteuerung, galvanische Trennung selbiger&lt;br /&gt;
* 1x &#039;&#039;&#039; MOSFET-Ausgang&#039;&#039;&#039; PWM z.B. für 12V Lüfter, max. 55V 3,5A&lt;br /&gt;
* &#039;&#039;&#039;feste Programme&#039;&#039;&#039; im EEPROM über 2-Tasterbedienung und LEDs wähl- und ausführbar. &#039;&#039;&#039;PC-unabhängiger Betrieb&#039;&#039;&#039;. Beliebig viele Programme möglich, für die Auswahl stehen 4 benutzer-konfigurierbare LEDs zur Verfügung&lt;br /&gt;
* Betrieb am Computer für mehr Reflowprofile&lt;br /&gt;
* Mini-USB-Buchse zur Steuerung / Programmierung über GUI&lt;br /&gt;
* Günstiges passendes &#039;&#039;&#039;Gehäuse&#039;&#039;&#039;, alle LEDs und Taster auf Stiftleisten herausgeführt&lt;br /&gt;
* PID-Temperaturregler&lt;br /&gt;
* UART, SPI, I2C und 2x ADC auf Stiftleisten herausgeführt (-&amp;gt; Erweiterungen)&lt;br /&gt;
* Versorgung über USB (&amp;lt; 100mA), interne Versorgungsspannung 3,3V&lt;br /&gt;
* umfangreiche EMV-gerechte Entstörung für den Bedarfsfall&lt;br /&gt;
&lt;br /&gt;
== Technische Realisierung==&lt;br /&gt;
=== PIC18LF2550 Grundbeschaltung ===&lt;br /&gt;
[[Datei:osc_vs_vcc.png|thumb|right|200px|Taktraten und Versorgungsspannung PIC18LF2550 vs. PIC18LF2550, Datenblatt S. 370/438]]&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 3/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Hier kommt ein PIC18&#039;&#039;&#039;L&#039;&#039;&#039;F2550 zum Einsatz. Er verfügt über eine USB-Schnittstelle und ist für Betriebsspannungen von 2 ... 5,5V ausgelegt. Sein Verwandter PIC18F2550 (ohne L) ist nicht für Betriebsspannungen &amp;lt; 4,2V ausgelegt. Dies ist bei USB sowiesor nicht immer erfüllt und die Thermoelement ICs vertragen ohnehin keine 5V, daher wurde die Betriebsspannung auf 3,3V reduziert. Neben Standard-Decoupling (100nF Kerko pro Vcc-Vss-Pärchen) wurde das ICSP-Interface in alt bewährter Pinbelegung (PICKit1,2,3) angebracht. PGD und PGC sind nicht weiter beschaltet, MCRL wird in Standardbeschaltung als Resetpin verwendet. Der Resetschalter findet sich auf dem Top-Sheet (Schaltplan S. 1/22). Die Taktversorgung erfolgt zwingend über einen 24 MHz Quarz (-&amp;gt; USB). Man beachte diesbezüglich rechts stehende Grafik zu Taktraten und Versorgungsspannungen (Vdd bzw. auch Vcc genannt). Auch zu finden im Datenblatt des PICs auf Seite 370.&lt;br /&gt;
&lt;br /&gt;
=== PIC18LF2550 USB Beschaltung ===&lt;br /&gt;
[[Datei:usb_part.png|thumb|right|200px|PIC18(L)F2550&lt;br /&gt;
 Standard &lt;br /&gt;
USB-Beschaltung am PIC]]&lt;br /&gt;
[[Datei:usb_protect.png|thumb|right|200px|USB-Schutzbeschaltung und Mini-USB-Buchse]]&lt;br /&gt;
&lt;br /&gt;
Die Beschaltung der USB-Schnittstelle am PIC ist 1:1 aus dem Datenblatt übernommen. Zum Einsatz kommt eine Mini-USB-Buchse (J1).&lt;br /&gt;
Der Gedanke war: Erstens ein sehr preiswertes, fertiges Netzteil verwenden zu können, (ca. 3,67 € bei druckerzubehoer.de) und zweitens, die Steuerung auch mit dem PC / Laptop versorgen zu können.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 4/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
FER1,2 und C7 filtern den Schirm nach GND. Standardmäßig wird man hier wohl 0-Ohm-Widerstände einsetzen. Falls ein Besuch im EMV-Labor geplant ist, weicht man auf den Ferrit aus. C5 und C6 filtern das Signal zusammen mit der Common-Mode-DrosselL1. Die Drossel kann mit den 0-Ohm-Brücken R8 und R9 überbrückt (gespart) werden. IC2 ist als ESD-Schutz gedacht und kann ebenfalls bei ausgeprägten Kostenbewustsein gespart werden. Die Widerstände R6 und R7 dürfen NICHT bestückt werden. FER1,2, C5, IC2 müssen nicht zwingend bestückt werden. Die Bestückung wurde vorgehalten um im Problemfall einfache Abhilfe schaffen zu können.&lt;br /&gt;
&lt;br /&gt;
=== 3,3V Spannungsversorgung ===&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 2/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Die 3,3V Versorgungsspannung für die gesamte Platine wird aus V_USB mittels des LDO Spannungsreglers TOREX - XC6206P332MR abgeleitet. Günstig, SOT-23, klein, 2x 1µF Kondensatoren benötigt, 3,3V max. 250mA. Der hat auch einen sehr kleinen Ruhestrom.&lt;br /&gt;
&lt;br /&gt;
=== Taster ===&lt;br /&gt;
*Der Resettaster zieht den MCLR-Pin nach GND und löst damit den Reset aus. MCLR  ist mit einem 10k Pullup versehen.&lt;br /&gt;
*Die übrigen beiden Taster ziehen RA4 bzw. RB5 ebenfalls nach GND.&lt;br /&gt;
&lt;br /&gt;
=== LEDs + ULN2003L ===&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 11/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Um alle LEDs auf der Platine (3x Optotriac + 7x Status) ansteuern zu können wurde auf das 7fach Darlington-Array ULN2003L zurückgegriffen. Es dient desweiteren auch als &amp;quot;MOSFET-Treiber für Arme&amp;quot;. Alle LEDs werden von diesem Transistor-Array nach Masse geschaltet. Dient der Entlastung der PIC-Ausgänge. Und kostet ja auch nicht viel.&lt;br /&gt;
&lt;br /&gt;
=== MOSFET-Leistungsausgang ===&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 22/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Hier kommt der einfacher N-Kanal MOSFET (LogicLevel) PHT8N06LT zum Einsatz. Er wird über das ULN2003L Array getrieben und ermöglicht den Anschluss eines DC-Verbrauchers mit max. 55V bei 3,5A. Hier könnte beispielsweise ein PC-Lüfter zur Kühlung od. Umluft angeschlossen und über PWM geregelt/gesteuert werden. Ein Gatewiderstand von 100 Ohm ist zum Schutz des Treibers vorgesehen. Eine 0-Ohm-Brücke ist stattdessen aber auch möglich, wenn man eine höhere Leistung schalten möchte.Die Leiterbahnen sollten die 3A schon hergeben. Der 100 Ohm Widerstand bildet eine Stromquelle. Sobald der Strom durch den MOSFET und den Widerstand 33mA erreicht, sinkt UGS gegen 0 V. Folge: Der Mosfet sperrt ( und bleibt ganz....)&lt;br /&gt;
Es kann hier prinzipiell auch ein anderer Mosfet im SOT223-Gehäuse zum Einsatz kommen. Achten sollte man darauf, das der MOSFET schon bei 3,3V Ugs gut leiten sollte.&lt;br /&gt;
&lt;br /&gt;
=== Nulldurchgangserkennung ===&lt;br /&gt;
[[Datei:zerocross.png|thumb|right|200px|Nulldurchgangserkennung]]&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 5/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Die Nulldurchgangserkennung erfolgt nach einer sehr bekannten - jedoch ausgeklügelten - Schaltung.  [http://www.dextrel.net/diyzerocrosser.htm]&lt;br /&gt;
&lt;br /&gt;
ACHTUNG: DER IM SCHALTPLAN VERZEICHNETE OPTOKOPPLER und BRÜCKENGLEICHRICHTER VON REICHELT DARF KEINESFALLS VERWENDET WERDEN! Pinbelegung! Bitte den Optokoppler aus der Stückliste nehmen!&lt;br /&gt;
&lt;br /&gt;
Während einer Halbwelle wird C14 über R33 und R35 bzw. D5 geladen. Währenddessen ist T1 gesperrt. Sobald die Wechselspannung (L1-N über Spannungsteiler (R33+R35) / R34) kleiner ist als die Spannung über C14, steuert T1 durch. Dann entlädt sich C14 über den LED-Vorwiderstand R32. Der durch-steuernde Optokoppler zieht die Sync-Leitung nach GND. (Pullup Sync-Leitung = R31). Dies löst beim PIC auf INT2 einen Interrupt aus. &lt;br /&gt;
&lt;br /&gt;
Dieser Interrupt ermöglicht eine präzise Wellenpaket-, Phasenanschnittsteuerung je nach Bedarf. Das Schalten im Nulldurchgang bei der Wellenpaketsteuerung reduziert EMV-Störungen. Für Phasenanschnitt ist prinzipbedingt ohnehin eine Nulldurchgangserkennung notwendig. Außerdem liefert sie eine völlig ausreichend genaue Zeitbasis für alle Programmabläufe.&lt;br /&gt;
&lt;br /&gt;
=== Triac-Ausgänge + Snubber ===&lt;br /&gt;
[[Datei:triac.png|thumb|right|200px|Triac-Ausgangsbeschaltung]]&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 19,20,21/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Die Ansteuerung des eigentlichen Leistungstriacs BTA140-800 erfolgt über den Optotriac IS6005. Der Strom durch Letzteren wird durch R1x limitiert (Vorwiderstand). R2x und R5x limitieren wiederum den Strom durch den Optotriac. Wenn dieser zündet so folgt unmittelbar der &amp;quot;Leistungstriac&amp;quot; der dann die Last schaltet.&lt;br /&gt;
&lt;br /&gt;
S1x ist ein Sicherungshalter um die Lasten einzeln absichern zu können. Wert 10A Mittelträge.&lt;br /&gt;
&lt;br /&gt;
R3x, R4x, C3x bilden ein Snubber-Network, L1X verhindert eine zu schnelle Stromanstiegsgeschwindikeit damit der Triac nicht &amp;quot;von selbst&amp;quot; zündet. Weglassen äußert sich meist in einem fast nicht hörbaren Click. Damit zeigt einem dann der Triac, dass er ab jetzt für immer recht niederohmig geworden ist. Die Regelung der Temperatur braucht dann nicht mehr über den Prozessor erfolgen, sondern nur noch mit dem Ein-/Ausschalter..... :-)&lt;br /&gt;
&lt;br /&gt;
=== Thermoelemente (MAX6675/MAX31855)  ===&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 6,7/22&#039;&#039;&#039;&lt;br /&gt;
Der inzwischen abgekündigte MAX6675 bzw. sein ehrenwerter Nachfolger MAX31855 sind einfach zu handhabende Thermoelement-ICs mit Kaltstellenkompensation. Thermoelemente funktionieren durch das Verschweißen zweier verschiedener Legierungen (beim K-Typ Thermoelemnt Ni und CrNi). Durch den durch die Umgebungstemperatur bedingten Wärmefluss zwischen beiden entsteht ein elektrische Spannung. Diese wird von besagten ICs verstärkt und digitalisiert (ADC). Diese Spannung / Temperatur ist natürlich wieder relativ zur Umgebungstemperatur an der Kaltstelle (Kontaktierung der beiden Drähte mit dem Messinstrument). Daher messen diese ICs auch gleich die Umgebungstemperatur (Kaltstellenkompensation genannt) mit, verrechnen das und geben das Ergebnis auf der SPI-Schnittstelle aus. MAX6675 leistet 12bit also 0,25°C Auflösung (nicht Genauigkeit!) über einen Temperaturbereich von 0°C to +1024°C. Außerdem wird ein nicht/fehlerhaft angeschlossenes Thermoelement erkannt. Der Thermocouple-IC wird an die SPI-Schnittstelle des PICs angeschlossen (hier MSSP genannt). &lt;br /&gt;
&lt;br /&gt;
MAX6675 und MAX31855 scheinen entgegen der Adafruit-Information [http://www.adafruit.com/products/269] doch pinkompatibel zu sein - die Ansteuerung unterscheidet sich jedoch definitiv. (Zitat: &amp;quot;Now uses the MAX31855K instead of the MAX6675, so it can measure a wider temperature measurement range. Please note! the MAX31855 is not pin compatible or drop-in code compatible with the MAX6675. We do have an Arduino library for both chips but you&#039;ll need to adjust any existing MAX6675 designs for the mew MAX31855. The MAX6675 has been discontinued by Maxim.&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Es wurden 2 dieser ICs und damit 2 Temperaturmessstellen vorgesehen. Dies ermöglich die Messung für eine Regelung der Temperatur so wie eine zusätzliche Überwachung kritischer Bauteile (z.B. ICs oder LEDs). Die Minimalbestückung sieht einen MAX6675/MAX31855 vor. Die Auswahl in der Firmware erfolgt über einen der beiden GPIO-Pins RA5 oder RA0 via dem ChipSelect (CS) des MAX6675/MAX31855.&lt;br /&gt;
&lt;br /&gt;
Neben dem MAX6675/MAX31855 wurde ein Decoupling-Kondensator (C8x, Standard 100nF) so wie ein weiterer im Messpfad (C9x) zur Zwecken der Entstörung vorgeshen. C9x 100nF sollte nur bestückt werden wenn Probleme bei der Temperaturmessung entstehen (z.B. unrealstisch stark schwankende Werte).&lt;br /&gt;
&lt;br /&gt;
=== ADC, SPI, UART &amp;amp; I2C Stiftleiste ===&lt;br /&gt;
ADC, SPI, UART und I2C sind zu Zwecken der Kalibrierung / Erweiterung / Einstellung / Debugging auf Stiftleisten herausgeführt:&lt;br /&gt;
Ähnlichkeiten mit dem FTDI-USB-TTL-Kabel bzw. Arduino XXX Bla Bla Bla Schnittstellenkonverter sind natürlich rein zufällig.&lt;br /&gt;
&lt;br /&gt;
Die I2C-Schnittstelle wurde auf eine Stiftleiste geführt, um z.B. einem LM75 o.ä. anschließen zu können. Damit stehen zur Kalibrierung der Thermoelemente genaue Temperaturen zur Verfügung.&lt;br /&gt;
&lt;br /&gt;
Die Stiftleisten haben alle ein Raster von 2,54mm. So können Pin-Header, Wannenstecker oder ähnliches verwendet werden.&lt;br /&gt;
&lt;br /&gt;
Da ja viele Leute eigene Vorstellungen bezüglich der Frontplattengestaltung haben, wurden auch die Taster und LEDs auf Stiftleisten geführt.&lt;br /&gt;
&lt;br /&gt;
=== Kühlkörper ===&lt;br /&gt;
Da die Triacs der Steuerung für bis zu 10A pro Kanal ausgelegt sind, kann man auf die Kühlkörper nicht verzichten. Es fallen bei 10A bis zu 13 Watt Wärme pro Triac ab. Falls mann auf die Kühlkörper doch verzichten möchte, sollte man darauf achten, die Triacs mit dem Kopf nach unten einzubauen. Diese können sich dann bei Überlast ganz von selber auslöten.... :-)&lt;br /&gt;
&lt;br /&gt;
=== Gehäuse ===&lt;br /&gt;
Die Leiterplatte wurde für ein Gehäuse von Hammond entwickelt.&lt;br /&gt;
Das Gehäuse ist zwar keine Schönheit, aber doch recht preiswert.&lt;br /&gt;
Typenbezeichnung: RM2055M&lt;br /&gt;
&lt;br /&gt;
== Firmware PIC ==&lt;br /&gt;
Die Entwicklung der Firmware für den PIC18LF2550  geht mit MPlab 8 respektive dem C18 Compiler von Statten. MPlab ist kostenlos, der C18 Compiler bis auf die stärkste Optimierungsstufe ebenfalls. Die Quellen für die Firmware werden auch offengelegt.&lt;br /&gt;
=== Programmstruktur- und ablauf ===&lt;br /&gt;
Nach anfänglicher Initialisierung des PIC startet die Statemachine [http://http://www.mikrocontroller.net/articles/Statemachine] [http://http://de.wikipedia.org/wiki/Endlicher_Automat]. Neben ihr findet in der main-Funktion nur noch die Abfrage der beiden Bedientasten statt. Mit dem Tastendruck wird zum Zwecke der Entprellung ein Timer gestartet. Alles Andere (incl. PID-Regelung, Wellenpaket- bzw. Phasenan- und Phasenabschnittssteuerung und USB) ist interruptbasiert.&lt;br /&gt;
&lt;br /&gt;
=== Taktversorgung, Nulldurchgangserkennung und Zeitbasis ===&lt;br /&gt;
=== USB ===&lt;br /&gt;
=== SPI für MAX6675 ===&lt;br /&gt;
=== SPI für MAX31855 ===&lt;br /&gt;
&lt;br /&gt;
=== Wellenpaketsteuerung ===&lt;br /&gt;
=== Phasenanschnitt ===&lt;br /&gt;
&lt;br /&gt;
=== PWM für MOSFET ===&lt;br /&gt;
&lt;br /&gt;
== PC-Software (GUI) ==&lt;br /&gt;
[[Datei:gui_alpha.png|thumb|right|300px|Screenshot der GUI (noch Alpha) für den Reflow-Ofen-Controller]]&lt;br /&gt;
&lt;br /&gt;
Die GUI (englisch Graphical User Interface) ist der Einfachheit halber in VB.net programmiert und momentan noch im Alpha-Stadium. Auch hierfür liegen die Quellen später selbstverständlich offen.&lt;br /&gt;
&lt;br /&gt;
=== Funktionen und Modi ===&lt;br /&gt;
[[Datei:modi.png|thumb|right|400px|Auswahl der beschriebenen Modi durch Klick]]&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Ofen-Profil&amp;quot;&#039;&#039;&#039; - Es wird ein Programm (Temperaturkurve) aus dem EEPROM des Reflow-Ofens ausgeführt. Der Backvorgang kann mit der Software gesteuert (START, STOP, ...) und überwacht werden. Hierzu stehen Temperatur, Temperaturänderung, Heizleistung (Ober- und Unterhitze, Lüfter) so wie die graphische Darstellung im zentralen Diagramm zur Verfügung. Eingriffsmöglichkeiten, wie das Ändern der Temperaturkurve sind nicht vorgesehen. Dies soll ein reiner Überwachungs-Modus sein. Um die Temperaturkurve zu verändern zu können, sollte der Modus &amp;quot;PC-Profil&amp;quot; verwendet werden und die Temperaturkurve aus dem EEPROM importiert werden. Dann kann Selbige auch verändert und anschließend ausgeführt bzw. verändert in den EEPROM zurückgeschrieben werden. Dieser Modus stellt ein Äquivalent zur START/STOP-Tasten-Bedienung an der Platine dar und kann selbstverständlich parallel dazu genutzt werden. Die GUI also als Addon zum Stand-Alone-Betrieb.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;PC-Profil&amp;quot;&#039;&#039;&#039; - Es wird ein Programm (Temperaturkurve) ausgeführt welche zuvor am Computer erstellt / editiert wurde. In diesem Modus gibt der Computer Temperaturwerte vor, welche live über die USB-Schnittstelle zum PIC übertragen werden und mit dem dort integrierten PID-Regler ausgeführt werden. Das ermöglicht eine on-the-fly Veränderung der Temperaturkurve während des Backvorgangs. Temperaturkurven können aus Dateien oder dem EEPROM importiert und auch wieder exportiert werden. CSV-Dateien können ebenfalls importiert und exportiert werden. Die &amp;quot;Eingabe&amp;quot; der Temperaturkurve erfolgt entweder über Import (CSV/EEPROM), per Mausklick auf dem zentralen Diagramm oder im sog. DataGridView. Weiteres siehe Unterpunkt &amp;quot;Eingabe der Temperaturkurve (Reflowprofil)&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;manueller Ablauf&amp;quot;&#039;&#039;&#039; - In diesem Modus wird (im Gegensatz zu den oberen beiden Modi &amp;quot;Ofen-Profil&amp;quot; und &amp;quot;PC-Profil&amp;quot;) keine Temperatur geregelt. Hier wird die Leistung des Ofens in % eingestellt und gesteuert. Der PID-Regler ist nicht in Aktion. Die Temperatur, Temperaturänderung so wie der Temperaturverlauf werden selbstredend angezeigt bzw. im Diagramm dargestellt. Der Modus &amp;quot;manueller Ablauf&amp;quot; fährt ähnlich dem Modus &amp;quot;PC-Profil&amp;quot; die im DataGridView eingetragenen Leistungs-Zeit-Punkte ab. Für jeden Zeitpunkt ist eine Leistung vorgegeben. Die Eingabe erfolgt ähnlich wie unter &amp;quot;Eingabe der Temperaturkurve (Reflowprofil)&amp;quot; beschrieben. Nur eben, dass eine Leistung und keine Temperatur angegeben wird. Die Eingabe der Leistung kann nicht im Zeit-Temperatur-Diagramm erfolgen sondern mittels der Schieberegler oder direkt tabellarisch.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;manueller Modus&amp;quot;&#039;&#039;&#039; - Dieser Modus enthält 2 Submodi&lt;br /&gt;
** &amp;quot;manueller Leistungsmodus&amp;quot; - Auch in diesem Modus wird die Leistung gesteuert. Es wird keine Temperatur geregelt, der PID-Regler für die Temperatur ist nicht in Betrieb. Die Einstellung hier erfolgt über die drei Schieberegler oder über eine numerische Eingabe durch Klick auf die Leistungsangabe unter dem Schieberegler. Durch Klick auf die Texte &amp;quot;TOP&amp;quot;, &amp;quot;BOTTOM&amp;quot;, &amp;quot;FAN&amp;quot; (Oberhitze, Unterhitze, Lüfter) können selbige deaktiviert bzw. aktiviert werden. Auch in diesem Modus wird Temperatur, Temperaturänderung so wie der Temperaturverlauf dargestellt.&lt;br /&gt;
** &amp;quot;manueller Temperaturmodus&amp;quot; - Hier wird die Temperatur wieder mittels des Temperatur-PIDs geregelt. Die Temperatur wird entweder mittels Schieberegler (Ober- und Unterhitze-Regler sind jetzt gekoppelt) oder durch eine numerische Eingabe unterhalb der Schieberegler vorgegeben. Anzeige wie im &amp;quot;manuellen Leistungsmodus&amp;quot;. Der Lüfter kann unabhängig vom PID in seiner Leistung geregelt werden. Ein evtl. durch den Luftstrom verursachter Temperaturabfall wird vom PID selbstverständlich ausgeregelt (aus diesem Grunde ist es ja ein Regler).&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Programmieren&amp;quot;&#039;&#039;&#039; - Hier kann ein neues &#039;&#039;&#039;Temperatur&#039;&#039;&#039;-Programm für den EEPROM-Speicher des Ofens erstellt und editiert werden. Die Eingabemöglichkeiten sind unter &amp;quot;Eingabe der Temperaturkurve (Reflowprofil)&amp;quot; beschrieben. Dieser Modus ist zum reinen Programmieren des Ofens gedacht und ermöglicht keine weitere Steuerung oder Überwachung des Ofens.&lt;br /&gt;
&lt;br /&gt;
=== Eingabe der Temperaturkurve (Reflowprofil) ===&lt;br /&gt;
[[Datei:datagridview.png|thumb|right|400px|tabellarische Anzeige und Editiermöglichkeit der Temperaturkurve]]&lt;br /&gt;
Die Eingabe der Temperaturkurve erfolgt entweder über Import (CSV/EEPROM), per Mausklick auf dem zentralen Diagramm oder im sog. DataGridView (Excel-ähnliche Bedienung in tabellarischer Form). &lt;br /&gt;
&lt;br /&gt;
* CSV-Import + Export&lt;br /&gt;
* EEPROM-Import + Export&lt;br /&gt;
* Im rechts stehenden Screenshotbeispiel wird eine tabellarische Eingabeform mit einem DataGridView gezeigt: Die Temperatur (erster Temperaturpunkt = Punkt 0) von 100°C wird linear über einen Zeitraum von 0-30s verteilt. Bei 30s hat der Ofen die Temperatur von 100°C. Dafür setzt die Regelung die Oberhitze, die Unterhitze ein. Der Lüfter ist deaktiviert. In der Zeit von 30s bis 120s wird die Temperatur nun von 100°C auf 150°C linear angehoben. Von 120s bis 180s Backzeit steigt die Temperatur von 150°C auf 250°C. Von 180s bis 200s wird die Temperatur auf 280°C angehoben. Anschließend wird sie zwischen 200s und 220s auf 280°C gehalten (280°C@200s und 280°C@220s) um dann bis 240s wieder auf 250°C zu fallen. Bis zum Zeitpunkt 300s wird dann die Temperatur 30°C angestrebt. Zusätzlich ist der Lüfter nun aktiviert (soweit der Ofen eine Umluftfunktion besitzt). Bei Punkt 7 sind Ober- und Unterhitze deaktiviert nur noch der Lüfter kühlt. Da hier bei &amp;quot;Zeit[s]&amp;quot; die 0 eingetragen wird der Zustand (hier nur Lüfter an) für einen unendlich langen Zeitraum auf 0 gehalten. Also so lange wie das Programm aktiviert ist wird der Lüfter laufen. Natürlich könnte man hier auch z.B. 100°C und Zeitpunkt 0s eintragen. Dann würde der Ofen bis zum manuellen Beenden des Programms (klick auf STOP-Button oder Drücken des START/STOP-Tasters auf der Platine/Steuerung) 100°C halten.&lt;br /&gt;
* Alle Zellen des DataGridView sind editierbar (zur Veränderung der Temperatur, Zeitpunkt, ...)&lt;br /&gt;
* Direkter Klick auf das zentrale Temperatur-Zeit-Diagramm trägt den Zeitpunkt so wie die Temperatur unter dem Mauszeiger in die Tabelle (das DataGridView) ein. Die ausgewählte Zeile wird beschrieben oder überschrieben. Neue Zeilen (also Temperatur-Zeit-Punkte) können durch klick auf den &amp;quot;Plus-Button&amp;quot; hinzugefügt werden. Ebenso ist das Löschen oder Verschieben einer oder mehrerer Zeile gleichzeitig möglich.&lt;br /&gt;
&lt;br /&gt;
=== Beschreibung der Steuerungsmöglichkeiten ===&lt;br /&gt;
In Abhängigkeit des gewählten Modus bestehen einige Steuerungs-, Einstellungs- und Kontrollmöglichkeiten:&lt;br /&gt;
* &#039;&#039;&#039;Schieberegler&#039;&#039;&#039; für Temperatur od. Leistung (je nach Modus) für Oberhitze, Unterhitze und Lüfter. Je nach Hardwareausführung. &lt;br /&gt;
** Klick auf &amp;quot;TOP&amp;quot;, &amp;quot;BOTTOM&amp;quot; oder &amp;quot;FAN&amp;quot; aktiviert oder deaktiviert die entsprechende Funktion bzw. Hardware.&lt;br /&gt;
** Numerische Eingabe der Werte für die Schieberegler durch Klick auf die Anzeige unterhalb der Schieberegler. Werte können auch im deaktivierten Zustand angegeben werden. Die Übernahme erfolgt durch den &amp;quot;Aktivierungsklick&amp;quot; auf &amp;quot;TOP&amp;quot;, &amp;quot;BOTTOM&amp;quot; oder &amp;quot;FAN&amp;quot;&lt;br /&gt;
* &#039;&#039;&#039;T1, dT1, T2, dT2&#039;&#039;&#039; - Anzeige der gemessenen Temperatur so wie die momentane Temperaturänderung am jeweiligen Sensor. &lt;br /&gt;
* &#039;&#039;&#039;Bedienbuttons&#039;&#039;&#039;&lt;br /&gt;
** Play - Startet das Programm am angegebenen Startpunkt (siehe unten)&lt;br /&gt;
** Pause - Pausiert das Programm - weitere Pauseoptionen siehe unten&lt;br /&gt;
** Stop - Stopt den Programmablauf&lt;br /&gt;
** Vor / Zurück - Springt zwischen Temperaturpunkten hin und her. Dient zum überspringen oder zurückspringen zu gewissen Temperatur-Zeit-Punkten. Ermöglicht z.B. das Überspringen eines Ablaufes der eine lange Preheat- oder Dryphase hat.&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Status&amp;quot;&#039;&#039;&#039; - zeigt den aktuellen Zustand des Programms an (READY, START, WAITING, PAUSE, ...)&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;RESET&amp;quot;&#039;&#039;&#039; - setzt das (begonnene) Programm zurück. Beinhaltet neben dem Programmablauf auch das Zurücksetzen der graphischen Anzeige des Diagramms, etc.&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Startpunkt&amp;quot;&#039;&#039;&#039; - legt den ersten Punkt des Programmablaufes fest. &lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Wiederholungen&amp;quot;&#039;&#039;&#039; - ermöglicht das wiederholte Backen ohne das Programm händisch immer wieder neu starten zu müssen. Die Anzahl der Wiederholungen ist einstellbar (0 für unendlich viele) und es ist eine Wartezeit zwischen den Wiederholungen einstellbar. Alternativ kann eine Meldung nach jedem vollendeten Backvorgang abgegeben werden. Nach Bestätigung dieser wird die nächste Wiederholung ausgeführt.&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Pause&amp;quot;&#039;&#039;&#039; - Pauseneinstellungen. Hier sind Optionen wählbar was passieren soll, falls der Pausebutton betätigt wird:&lt;br /&gt;
** Pausezeit - gibt an wie lange die Pause dauern soll [s], danach fährt das Programm automatisch gemäß des gewählten Pausemodus fort. Für eine Pause ohne automatisches Fortfahren (Countdowntimer) &#039;0&#039; angeben.&lt;br /&gt;
** Pausemodus &amp;quot;aktuelle Temperatur halten, WarmUp, Fortsetzen&amp;quot; - Ofen hält die Temperatur (Zieltemperatur) des Zeitpunktes als der Pausebutton betätigt wurde. WarmUp bedeutet, dass nach dem Beenden des Pausemodus zunächst die Zieltemperatur wieder erreicht werden &#039;&#039;&#039;muss&#039;&#039;&#039; bevor der nächste Punkt angesteuert wird. Klingt paradox, wenn die Temperatur doch so und so gehalten wird, ist aber nicht so. Die Wahrscheinlichkeit ist hoch, dass der Pausemodus benutzt wird um die Ofentüre zu öffnen und Korrekturen an der Platine vorzunehmen. Unter Umständen ist die Heizung des Ofens jedoch nicht in der Lage den dadurch entstehenden Wärmeverlust zu kompensieren. Fährt das Programm dann sofort fort, so könnten evtl. kritische (Hoch-)Punkte des Lötprofils &amp;quot;unterfahren&amp;quot; werden. Dem wirkt WarmUp entgegen.&lt;br /&gt;
** Pausemodus &amp;quot;aktuelle Temperatur halten, Fortsetzen&amp;quot; - siehe oben, nur ohne WarmUp.&lt;br /&gt;
** Pausemodus &amp;quot;definierte Temperatur halten, WarmUp, Fortsetzen&amp;quot; - siehe oben. Statt der aktuellen Zieltemperatur wird jedoch nun im Pausemodus eine einzustellende Pausetemperatur gehalten. Mit WarmUp.&lt;br /&gt;
** Pausemodus &amp;quot;definierte Temperatur halten, Fortsetzen&amp;quot; - siehe oben, nur ohne WarmUp.&lt;br /&gt;
** &amp;quot;Pausetemperatur&amp;quot; - spezielle Temperatur die bei entsprechender Pausemoduswahl für die Dauer der Pause gehalten wird.&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Ende&amp;quot;&#039;&#039;&#039; - gibt an was am Ende eines durchlaufenen Reflow-Programms passieren soll. Ist der Wiederholungsmodus aktiviert, tritt dieses Ereignis erst nach Durchlauf aller Wiederholungen ein. Folgende Modi sind möglich:&lt;br /&gt;
** automatischer Reset - am Ende des Programms wird alles automatisch zurückgesetzt, alle Graphiken und Anzeigen gelöscht.&lt;br /&gt;
** manueller Reset - am Ende des Programms bleiben alle Anzeigen, Graphiken, etc erhalten und müssen vor Beginn eines neuen Reflowvorgangs händisch durch Klick auf &amp;quot;RESET&amp;quot; zurückgesetzt werden.&lt;br /&gt;
** Benutzermeldung - lässt eine Meldung erscheinen. Alle Anzeigen und Graphiken bleiben erhalten bis der Benutzer diese Meldung bestätigt. Mit Bestätigung dieser Meldung wird ein automatischer Reset vorgenommen.&lt;br /&gt;
&lt;br /&gt;
=== Loggen des Temperaturverlaufes ===&lt;br /&gt;
Es ist möglich jeden Backvorgang in eine CSV-Datei zu loggen. (Software- und PID-Einstellungen). Geloggte CSV-Dateien können eingelesen und im zentralen Temperatur-Zeit-Diagramm begutachtet werden. Ein Ist-Soll-Vergleich ist ebenso möglich wie die direkte Anzeige des Fehlers (&amp;quot;Ist minus Soll&amp;quot;). Dank CSV können die Daten auch mit anderen Programmen (Excel, etc.) weiterverarbeitet werden.&lt;br /&gt;
&lt;br /&gt;
== Ofen / Pizzaofen ==&lt;br /&gt;
=== Leistung und Volumen ===&lt;br /&gt;
=== Dämmung ===&lt;br /&gt;
=== Umluft ===&lt;br /&gt;
=== Bezugsquellen ===&lt;br /&gt;
=== Diskussionen im Forum ===&lt;br /&gt;
* Umfangreicher Thread u.A. Leistungsvermögen, Temperaturmessung und Dämmung [http://www.mikrocontroller.net/topic/270627]&lt;br /&gt;
&lt;br /&gt;
== FAQ ==&lt;br /&gt;
&lt;br /&gt;
* Q1: Ich habe einen PT100/PT1000 und möchte den anschließen. Geht das?&lt;br /&gt;
** A1: Ja natürlich. Dazu ist aber etwas externe Elektronik notwendig. Sowohl 2 ADC-Pins (mit 3V3 Betriebsspannung als fixe Referenzspannung), als auch die UART und SPI/I2C-Schnittstelle stehen zur freien Verfügung. Für PT100/PT1000 wird für vernünftige Messungen ohnehin eine Verstärkung (meist mit OPV) von Nöten sein. Da der PIC-interne ADC &amp;quot;nur&amp;quot; 10bit Auflösung bietet sollte ein externer 16bit ADC in Betracht gezogen werden um das Potential der PT100/PT1000 auszunutzen.&lt;br /&gt;
*Q2: Ich habe von günstigen Temperaturmessungen mit Dioden gehört. Geht das auch hier?&lt;br /&gt;
**A2: Ja. Die Vorwärtsspannung einer Diode verhält sich linear zur Sperrschichttemperatur. Diese Spannung (bei 25°C einer Si-Diode die bekannten 0,7V) kann mittels OPV verstärkt werden und auf einen Spannungsbereich von 0 ... 3V3 aufgebläht werden. Eine billige Lösung, auf Kosten der Genauigkeit. Doch eine Diode ist laut Datenblatt nur bis 150°C geeignet. Es ist also beim Löten mehr oder weniger Pfusch. Wenn ich schon eine Reflow-Steuerung baue, sollte ich doch nicht an ein paar Euro für eine gescheite Temperaturmessung sparen. Einige Anregungen vom Messgerätehersteller Keithley bzgl. der Halbleiterphysik mit interessanten Formeln [http://www.keithley.de/support/data?asset=50486]. Oder natürlich der Klassiker von Thomas Pfeifer [http://thomaspfeifer.net/backofen_smd_reflow.htm]. Oder ein Beitrag mit LT-Spice Simulation zum Thema [http://www.mikrocontroller.net/topic/270627#2833883].&lt;br /&gt;
* Q: God why ... ?&lt;br /&gt;
** A: Because we can !&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Verbesserungen Prototyp ===&lt;br /&gt;
* Bauteile weiter weg von Schraublöchern&lt;br /&gt;
* Dazu Kreis rund um Bohrung auf Bestückdruck&lt;br /&gt;
* Masseanbindung Quarz&lt;br /&gt;
* Klemmen weiter weg vom Rand&lt;br /&gt;
* Klemme und Sicherungshalter weiter auseinander, damit Schutzhabe draufpasst&lt;br /&gt;
* Bohrungen für Drossel 0,2mm größer machen&lt;br /&gt;
* Teilenummer für Conrad-USB-Buchse in BOM übernehmen.&lt;br /&gt;
* Stiftleiste P1  weiter weg von P2 und P4&lt;br /&gt;
* Varistoren näher an Klemmen platzieren&lt;br /&gt;
* Bestückvarianten defineren: 1. minimal 2. Standard 3. Externe Leds und Schalter.&lt;br /&gt;
* THT-Kondensatoren für Snubber - extra Footprint?&lt;br /&gt;
* Ggv. Stiftleistenbelegung für externe Leds so ändern, das keine extra Vorwiderstände notwendig sind.&lt;br /&gt;
* Wert der Drossel checken.(BOM Bestellnummer)&lt;br /&gt;
&lt;br /&gt;
=== Errata Projekt ===&lt;br /&gt;
* LED-Beschriftung passt nicht ganz (Schltplan Netlabel OUT1,2,3,4 sind durcheinander gekommen)&lt;br /&gt;
* Schaltplan UNL2003 fehlerhafte Zuordnung IN5,6,7 &amp;lt;&amp;gt; OUT7,6,5&lt;br /&gt;
* Pullup-Widerstand bei MCLR doppelt. &lt;br /&gt;
* Brückengleichrichter / Optokoppler NICHT die im Schaltplan angegebenen Bestellnummern von Reichelt verwenden. BOM-Bauteile und Bestellnummern sind ok.&lt;br /&gt;
* Beim MOSFET R39 ist die Masseanbindung falsch. Es bestehen drei Möglichkeiten:&lt;br /&gt;
** 1. 0-R-Brücke für R39 einbauen und auf Strombegrenzung verzichten.&lt;br /&gt;
** 2. Eine Polyfuse mit Bauform 1206 einbauen. &lt;br /&gt;
** 3. Das kleine Leiterbahnstückchen zwischen R38 und R39 unterbrechen und statt dessen die Leiterbahn zwischen R39 und der Klemme mit der Durchkontaktierung bei R38 verbinden.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* Diskussion [http://www.mikrocontroller.net/topic/297217 Diskussion]&lt;br /&gt;
* Dextrel Nulldurchgang [http://www.dextrel.net/diyzerocrosser.htm Nulldurchgangschaltung]&lt;br /&gt;
* Gehäuse [http://www.hammondmfg.com/pdf/RM2055M.pdf Gehäuse Hammond]&lt;br /&gt;
* Bezugsquelle SOS Elektronik [http://www.soselectronic.com/?str=371&amp;amp;artnum=73595&amp;amp;name=hammond-ritec-rm2055m Gehäuse]&lt;br /&gt;
* Bezugsgquelle [http://www.druckerzubehoer.de/shop/product/catid/H-UNIVERSALZUBEHOER_HZB/subcatid/UNIVERSALZUBEHOER_GROUP1_HZB/productid/1727063-390722LA/site/1/lng/de_DE Mini USB Netzteil]&lt;br /&gt;
* Bezugsquelle Termoelement: TBD&lt;br /&gt;
* Bezugsquelle Steckdosen für Schalttafeleinbau: [http://www.artcase-shop.de/index.php?page=search&amp;amp;page_action=query&amp;amp;desc=on&amp;amp;sdesc=on&amp;amp;keywords=pce+105&amp;amp;x=0&amp;amp;y=0 Steckdosen]&lt;br /&gt;
* Bezugsquelle [http://www.schaeffer-ag.de/ Frontplatten]&lt;br /&gt;
 &lt;br /&gt;
[[Kategorie:Projekte]]&lt;br /&gt;
[[Kategorie:PIC]]&lt;br /&gt;
[[Kategorie:PIC-Boards]]&lt;br /&gt;
[[Kategorie:Platinen]]&lt;/div&gt;</summary>
		<author><name>Frankman</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=Reflow_Ofen_Steuerung&amp;diff=76117</id>
		<title>Reflow Ofen Steuerung</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=Reflow_Ofen_Steuerung&amp;diff=76117"/>
		<updated>2013-05-29T22:01:44Z</updated>

		<summary type="html">&lt;p&gt;Frankman: /* Errata Projekt */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Datei:RFB.jpg]]&lt;br /&gt;
== Einleitung ==&lt;br /&gt;
[[Datei:pcb.png|thumb|right|400px|unbestücktes PCB der Reflow-Ofen-Steuerung]]&lt;br /&gt;
Hier wird eine weitere Reflow-Ofen-Steuerung beschrieben.&lt;br /&gt;
=== Zum Nachbauen ===&lt;br /&gt;
* Spezifikation: [[Datei: Spec Reflow.pdf]]&lt;br /&gt;
* Schaltplan: [[Datei:Reflow.pdf]]&lt;br /&gt;
* Gerberdaten: [[Datei:Gerber Reflow.pdf]]&lt;br /&gt;
* Assemblydrawing: [[Datei:Assembly Reflow.pdf]] &lt;br /&gt;
* Altium-Files: [[Datei:Reflow.zip]]&lt;br /&gt;
* Stückliste als CSV: [[Datei:Reflow.csv]]&lt;br /&gt;
* Stückliste als Open Office: [[Datei:Reflow.ods]]&lt;br /&gt;
* PC Programm: TBD&lt;br /&gt;
* Sourcen PC-Programm: TBD&lt;br /&gt;
* PIC Programm (*.hex): TBD&lt;br /&gt;
* Sourcen Pic-Programm: TBD&lt;br /&gt;
&lt;br /&gt;
=== Motivation ===&lt;br /&gt;
Die Gründe, eine weitere Steuerung zu entwerfen, waren:&lt;br /&gt;
&lt;br /&gt;
# Die Möglichkeit, auch größere Öfen mit 2 Phasen betreiben zu können.&lt;br /&gt;
# Die Steuerung universell zu gestalten. Es sollte möglich sein, diese nicht nur zum Reflow löten zu verwenden....z.B:&lt;br /&gt;
- Temperatursteuerung für Klimakammer (Heizen, Kühlen)&lt;br /&gt;
- Dimmer mit USB&lt;br /&gt;
- Temperaturregler für ein Tisch-Fondue ( Temperatur halten)&lt;br /&gt;
- Drehzahlsteller mit USB&lt;br /&gt;
- Switchpack&lt;br /&gt;
&lt;br /&gt;
# Die Schaltung sollte in Altium entwickelt werden. (Warum kein Eagle??? Altium User wissen es.... :-)&lt;br /&gt;
# Die Schaltung sollte mit USB ausgestattet sein.&lt;br /&gt;
&lt;br /&gt;
=== Eigenschaften &amp;amp; Spezifikationen ===&lt;br /&gt;
* Temperaturmessung: bis zu 2x &#039;&#039;&#039;Thermoelement&#039;&#039;&#039; (K-Typ) mit MAX6675 (abgekündigt) oder Nachfolger MAX31855 (pin- aber nicht softwarekompatibel)&lt;br /&gt;
* &#039;&#039;&#039;Leistungsstufen&#039;&#039;&#039;: 3x voneinander unabhängige Triac 800V bei 25A, limitiert auf &#039;&#039;&#039;10A @ 250VAC&#039;&#039;&#039; (z.B. Oberhitze, Unterhitze, Umluft)&lt;br /&gt;
* &#039;&#039;&#039;Nulldurchgangserkennung&#039;&#039;&#039; ermöglicht Wellenpaket-, Phasenan- und abschnittssteuerung, galvanische Trennung selbiger&lt;br /&gt;
* 1x &#039;&#039;&#039; MOSFET-Ausgang&#039;&#039;&#039; PWM z.B. für 12V Lüfter, max. 55V 3,5A&lt;br /&gt;
* &#039;&#039;&#039;feste Programme&#039;&#039;&#039; im EEPROM über 2-Tasterbedienung und LEDs wähl- und ausführbar. &#039;&#039;&#039;PC-unabhängiger Betrieb&#039;&#039;&#039;. Beliebig viele Programme möglich, für die Auswahl stehen 4 benutzer-konfigurierbare LEDs zur Verfügung&lt;br /&gt;
* Betrieb am Computer für mehr Reflowprofile&lt;br /&gt;
* Mini-USB-Buchse zur Steuerung / Programmierung über GUI&lt;br /&gt;
* Günstiges passendes &#039;&#039;&#039;Gehäuse&#039;&#039;&#039;, alle LEDs und Taster auf Stiftleisten herausgeführt&lt;br /&gt;
* PID-Temperaturregler&lt;br /&gt;
* UART, SPI, I2C und 2x ADC auf Stiftleisten herausgeführt (-&amp;gt; Erweiterungen)&lt;br /&gt;
* Versorgung über USB (&amp;lt; 100mA), interne Versorgungsspannung 3,3V&lt;br /&gt;
* umfangreiche EMV-gerechte Entstörung für den Bedarfsfall&lt;br /&gt;
&lt;br /&gt;
== Technische Realisierung==&lt;br /&gt;
=== PIC18LF2550 Grundbeschaltung ===&lt;br /&gt;
[[Datei:osc_vs_vcc.png|thumb|right|200px|Taktraten und Versorgungsspannung PIC18LF2550 vs. PIC18LF2550, Datenblatt S. 370/438]]&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 3/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Hier kommt ein PIC18&#039;&#039;&#039;L&#039;&#039;&#039;F2550 zum Einsatz. Er verfügt über eine USB-Schnittstelle und ist für Betriebsspannungen von 2 ... 5,5V ausgelegt. Sein Verwandter PIC18F2550 (ohne L) ist nicht für Betriebsspannungen &amp;lt; 4,2V ausgelegt. Dies ist bei USB sowiesor nicht immer erfüllt und die Thermoelement ICs vertragen ohnehin keine 5V, daher wurde die Betriebsspannung auf 3,3V reduziert. Neben Standard-Decoupling (100nF Kerko pro Vcc-Vss-Pärchen) wurde das ICSP-Interface in alt bewährter Pinbelegung (PICKit1,2,3) angebracht. PGD und PGC sind nicht weiter beschaltet, MCRL wird in Standardbeschaltung als Resetpin verwendet. Der Resetschalter findet sich auf dem Top-Sheet (Schaltplan S. 1/22). Die Taktversorgung erfolgt zwingend über einen 24 MHz Quarz (-&amp;gt; USB). Man beachte diesbezüglich rechts stehende Grafik zu Taktraten und Versorgungsspannungen (Vdd bzw. auch Vcc genannt). Auch zu finden im Datenblatt des PICs auf Seite 370.&lt;br /&gt;
&lt;br /&gt;
=== PIC18LF2550 USB Beschaltung ===&lt;br /&gt;
[[Datei:usb_part.png|thumb|right|200px|PIC18(L)F2550&lt;br /&gt;
 Standard &lt;br /&gt;
USB-Beschaltung am PIC]]&lt;br /&gt;
[[Datei:usb_protect.png|thumb|right|200px|USB-Schutzbeschaltung und Mini-USB-Buchse]]&lt;br /&gt;
&lt;br /&gt;
Die Beschaltung der USB-Schnittstelle am PIC ist 1:1 aus dem Datenblatt übernommen. Zum Einsatz kommt eine Mini-USB-Buchse (J1).&lt;br /&gt;
Der Gedanke war: Erstens ein sehr preiswertes, fertiges Netzteil verwenden zu können, (ca. 3,67 € bei druckerzubehoer.de) und zweitens, die Steuerung auch mit dem PC / Laptop versorgen zu können.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 4/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
FER1,2 und C7 filtern den Schirm nach GND. Standardmäßig wird man hier wohl 0-Ohm-Widerstände einsetzen. Falls ein Besuch im EMV-Labor geplant ist, weicht man auf den Ferrit aus. C5 und C6 filtern das Signal zusammen mit der Common-Mode-DrosselL1. Die Drossel kann mit den 0-Ohm-Brücken R8 und R9 überbrückt (gespart) werden. IC2 ist als ESD-Schutz gedacht und kann ebenfalls bei ausgeprägten Kostenbewustsein gespart werden. Die Widerstände R6 und R7 dürfen NICHT bestückt werden. FER1,2, C5, IC2 müssen nicht zwingend bestückt werden. Die Bestückung wurde vorgehalten um im Problemfall einfache Abhilfe schaffen zu können.&lt;br /&gt;
&lt;br /&gt;
=== 3,3V Spannungsversorgung ===&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 2/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Die 3,3V Versorgungsspannung für die gesamte Platine wird aus V_USB mittels des LDO Spannungsreglers TOREX - XC6206P332MR abgeleitet. Günstig, SOT-23, klein, 2x 1µF Kondensatoren benötigt, 3,3V max. 250mA. Der hat auch einen sehr kleinen Ruhestrom.&lt;br /&gt;
&lt;br /&gt;
=== Taster ===&lt;br /&gt;
*Der Resettaster zieht den MCLR-Pin nach GND und löst damit den Reset aus. MCLR  ist mit einem 10k Pullup versehen.&lt;br /&gt;
*Die übrigen beiden Taster ziehen RA4 bzw. RB5 ebenfalls nach GND.&lt;br /&gt;
&lt;br /&gt;
=== LEDs + ULN2003L ===&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 11/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Um alle LEDs auf der Platine (3x Optotriac + 7x Status) ansteuern zu können wurde auf das 7fach Darlington-Array ULN2003L zurückgegriffen. Es dient desweiteren auch als &amp;quot;MOSFET-Treiber für Arme&amp;quot;. Alle LEDs werden von diesem Transistor-Array nach Masse geschaltet. Dient der Entlastung der PIC-Ausgänge. Und kostet ja auch nicht viel.&lt;br /&gt;
&lt;br /&gt;
=== MOSFET-Leistungsausgang ===&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 22/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Hier kommt der einfacher N-Kanal MOSFET (LogicLevel) PHT8N06LT zum Einsatz. Er wird über das ULN2003L Array getrieben und ermöglicht den Anschluss eines DC-Verbrauchers mit max. 55V bei 3,5A. Hier könnte beispielsweise ein PC-Lüfter zur Kühlung od. Umluft angeschlossen und über PWM geregelt/gesteuert werden. Ein Gatewiderstand von 100 Ohm ist zum Schutz des Treibers vorgesehen. Eine 0-Ohm-Brücke ist stattdessen aber auch möglich, wenn man eine höhere Leistung schalten möchte.Die Leiterbahnen sollten die 3A schon hergeben. Der 100 Ohm Widerstand bildet eine Stromquelle. Sobald der Strom durch den MOSFET und den Widerstand 33mA erreicht, sinkt UGS gegen 0 V. Folge: Der Mosfet sperrt ( und bleibt ganz....)&lt;br /&gt;
Es kann hier prinzipiell auch ein anderer Mosfet im SOT223-Gehäuse zum Einsatz kommen. Achten sollte man darauf, das der MOSFET schon bei 3,3V Ugs gut leiten sollte.&lt;br /&gt;
&lt;br /&gt;
=== Nulldurchgangserkennung ===&lt;br /&gt;
[[Datei:zerocross.png|thumb|right|200px|Nulldurchgangserkennung]]&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 5/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Die Nulldurchgangserkennung erfolgt nach einer sehr bekannten - jedoch ausgeklügelten - Schaltung.  [http://www.dextrel.net/diyzerocrosser.htm]&lt;br /&gt;
&lt;br /&gt;
ACHTUNG: DER IM SCHALTPLAN VERZEICHNETE OPTOKOPPLER und BRÜCKENGLEICHRICHTER VON REICHELT DARF KEINESFALLS VERWENDET WERDEN! Pinbelegung! Bitte den Optokoppler aus der Stückliste nehmen!&lt;br /&gt;
&lt;br /&gt;
Während einer Halbwelle wird C14 über R33 und R35 bzw. D5 geladen. Währenddessen ist T1 gesperrt. Sobald die Wechselspannung (L1-N über Spannungsteiler (R33+R35) / R34) kleiner ist als die Spannung über C14, steuert T1 durch. Dann entlädt sich C14 über den LED-Vorwiderstand R32. Der durch-steuernde Optokoppler zieht die Sync-Leitung nach GND. (Pullup Sync-Leitung = R31). Dies löst beim PIC auf INT2 einen Interrupt aus. &lt;br /&gt;
&lt;br /&gt;
Dieser Interrupt ermöglicht eine präzise Wellenpaket-, Phasenanschnittsteuerung je nach Bedarf. Das Schalten im Nulldurchgang bei der Wellenpaketsteuerung reduziert EMV-Störungen. Für Phasenanschnitt ist prinzipbedingt ohnehin eine Nulldurchgangserkennung notwendig. Außerdem liefert sie eine völlig ausreichend genaue Zeitbasis für alle Programmabläufe.&lt;br /&gt;
&lt;br /&gt;
=== Triac-Ausgänge + Snubber ===&lt;br /&gt;
[[Datei:triac.png|thumb|right|200px|Triac-Ausgangsbeschaltung]]&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 19,20,21/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Die Ansteuerung des eigentlichen Leistungstriacs BTA140-800 erfolgt über den Optotriac IS6005. Der Strom durch Letzteren wird durch R1x limitiert (Vorwiderstand). R2x und R5x limitieren wiederum den Strom durch den Optotriac. Wenn dieser zündet so folgt unmittelbar der &amp;quot;Leistungstriac&amp;quot; der dann die Last schaltet.&lt;br /&gt;
&lt;br /&gt;
S1x ist ein Sicherungshalter um die Lasten einzeln absichern zu können. Wert 10A Mittelträge.&lt;br /&gt;
&lt;br /&gt;
R3x, R4x, C3x bilden ein Snubber-Network, L1X verhindert eine zu schnelle Stromanstiegsgeschwindikeit damit der Triac nicht &amp;quot;von selbst&amp;quot; zündet. Weglassen äußert sich meist in einem fast nicht hörbaren Click. Damit zeigt einem dann der Triac, dass er ab jetzt für immer recht niederohmig geworden ist. Die Regelung der Temperatur braucht dann nicht mehr über den Prozessor erfolgen, sondern nur noch mit dem Ein-/Ausschalter..... :-)&lt;br /&gt;
&lt;br /&gt;
=== Thermoelemente (MAX6675/MAX31855)  ===&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 6,7/22&#039;&#039;&#039;&lt;br /&gt;
Der inzwischen abgekündigte MAX6675 bzw. sein ehrenwerter Nachfolger MAX31855 sind einfach zu handhabende Thermoelement-ICs mit Kaltstellenkompensation. Thermoelemente funktionieren durch das Verschweißen zweier verschiedener Legierungen (beim K-Typ Thermoelemnt Ni und CrNi). Durch den durch die Umgebungstemperatur bedingten Wärmefluss zwischen beiden entsteht ein elektrische Spannung. Diese wird von besagten ICs verstärkt und digitalisiert (ADC). Diese Spannung / Temperatur ist natürlich wieder relativ zur Umgebungstemperatur an der Kaltstelle (Kontaktierung der beiden Drähte mit dem Messinstrument). Daher messen diese ICs auch gleich die Umgebungstemperatur (Kaltstellenkompensation genannt) mit, verrechnen das und geben das Ergebnis auf der SPI-Schnittstelle aus. MAX6675 leistet 12bit also 0,25°C Auflösung (nicht Genauigkeit!) über einen Temperaturbereich von 0°C to +1024°C. Außerdem wird ein nicht/fehlerhaft angeschlossenes Thermoelement erkannt. Der Thermocouple-IC wird an die SPI-Schnittstelle des PICs angeschlossen (hier MSSP genannt). &lt;br /&gt;
&lt;br /&gt;
MAX6675 und MAX31855 scheinen entgegen der Adafruit-Information [http://www.adafruit.com/products/269] doch pinkompatibel zu sein - die Ansteuerung unterscheidet sich jedoch definitiv. (Zitat: &amp;quot;Now uses the MAX31855K instead of the MAX6675, so it can measure a wider temperature measurement range. Please note! the MAX31855 is not pin compatible or drop-in code compatible with the MAX6675. We do have an Arduino library for both chips but you&#039;ll need to adjust any existing MAX6675 designs for the mew MAX31855. The MAX6675 has been discontinued by Maxim.&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Es wurden 2 dieser ICs und damit 2 Temperaturmessstellen vorgesehen. Dies ermöglich die Messung für eine Regelung der Temperatur so wie eine zusätzliche Überwachung kritischer Bauteile (z.B. ICs oder LEDs). Die Minimalbestückung sieht einen MAX6675/MAX31855 vor. Die Auswahl in der Firmware erfolgt über einen der beiden GPIO-Pins RA5 oder RA0 via dem ChipSelect (CS) des MAX6675/MAX31855.&lt;br /&gt;
&lt;br /&gt;
Neben dem MAX6675/MAX31855 wurde ein Decoupling-Kondensator (C8x, Standard 100nF) so wie ein weiterer im Messpfad (C9x) zur Zwecken der Entstörung vorgeshen. C9x 100nF sollte nur bestückt werden wenn Probleme bei der Temperaturmessung entstehen (z.B. unrealstisch stark schwankende Werte).&lt;br /&gt;
&lt;br /&gt;
=== ADC, SPI, UART &amp;amp; I2C Stiftleiste ===&lt;br /&gt;
ADC, SPI, UART und I2C sind zu Zwecken der Kalibrierung / Erweiterung / Einstellung / Debugging auf Stiftleisten herausgeführt:&lt;br /&gt;
Ähnlichkeiten mit dem FTDI-USB-TTL-Kabel bzw. Arduino XXX Bla Bla Bla Schnittstellenkonverter sind natürlich rein zufällig.&lt;br /&gt;
&lt;br /&gt;
Die I2C-Schnittstelle wurde auf eine Stiftleiste geführt, um z.B. einem LM75 o.ä. anschließen zu können. Damit stehen zur Kalibrierung der Thermoelemente genaue Temperaturen zur Verfügung.&lt;br /&gt;
&lt;br /&gt;
Die Stiftleisten haben alle ein Raster von 2,54mm. So können Pin-Header, Wannenstecker oder ähnliches verwendet werden.&lt;br /&gt;
&lt;br /&gt;
Da ja viele Leute eigene Vorstellungen bezüglich der Frontplattengestaltung haben, wurden auch die Taster und LEDs auf Stiftleisten geführt.&lt;br /&gt;
&lt;br /&gt;
=== Kühlkörper ===&lt;br /&gt;
Da die Triacs der Steuerung für bis zu 10A pro Kanal ausgelegt sind, kann man auf die Kühlkörper nicht verzichten. Es fallen bei 10A bis zu 13 Watt Wärme pro Triac ab. Falls mann auf die Kühlkörper doch verzichten möchte, sollte man darauf achten, die Triacs mit dem Kopf nach unten einzubauen. Diese können sich dann bei Überlast ganz von selber auslöten.... :-)&lt;br /&gt;
&lt;br /&gt;
=== Gehäuse ===&lt;br /&gt;
Die Leiterplatte wurde für ein Gehäuse von Hammond entwickelt.&lt;br /&gt;
Das Gehäuse ist zwar keine Schönheit, aber doch recht preiswert.&lt;br /&gt;
Typenbezeichnung: RM2055M&lt;br /&gt;
&lt;br /&gt;
== Firmware PIC ==&lt;br /&gt;
Die Entwicklung der Firmware für den PIC18LF2550  geht mit MPlab 8 respektive dem C18 Compiler von Statten. MPlab ist kostenlos, der C18 Compiler bis auf die stärkste Optimierungsstufe ebenfalls. Die Quellen für die Firmware werden auch offengelegt.&lt;br /&gt;
=== Programmstruktur- und ablauf ===&lt;br /&gt;
Nach anfänglicher Initialisierung des PIC startet die Statemachine [http://http://www.mikrocontroller.net/articles/Statemachine] [http://http://de.wikipedia.org/wiki/Endlicher_Automat]. Neben ihr findet in der main-Funktion nur noch die Abfrage der beiden Bedientasten statt. Mit dem Tastendruck wird zum Zwecke der Entprellung ein Timer gestartet. Alles Andere (incl. PID-Regelung, Wellenpaket- bzw. Phasenan- und Phasenabschnittssteuerung und USB) ist interruptbasiert.&lt;br /&gt;
&lt;br /&gt;
=== Taktversorgung, Nulldurchgangserkennung und Zeitbasis ===&lt;br /&gt;
=== USB ===&lt;br /&gt;
=== SPI für MAX6675 ===&lt;br /&gt;
=== SPI für MAX31855 ===&lt;br /&gt;
&lt;br /&gt;
=== Wellenpaketsteuerung ===&lt;br /&gt;
=== Phasenanschnitt ===&lt;br /&gt;
&lt;br /&gt;
=== PWM für MOSFET ===&lt;br /&gt;
&lt;br /&gt;
== PC-Software (GUI) ==&lt;br /&gt;
[[Datei:gui_alpha.png|thumb|right|300px|Screenshot der GUI (noch Alpha) für den Reflow-Ofen-Controller]]&lt;br /&gt;
&lt;br /&gt;
Die GUI (englisch Graphical User Interface) ist der Einfachheit halber in VB.net programmiert und momentan noch im Alpha-Stadium. Auch hierfür liegen die Quellen später selbstverständlich offen.&lt;br /&gt;
&lt;br /&gt;
=== Funktionen und Modi ===&lt;br /&gt;
[[Datei:modi.png|thumb|right|400px|Auswahl der beschriebenen Modi durch Klick]]&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Ofen-Profil&amp;quot;&#039;&#039;&#039; - Es wird ein Programm (Temperaturkurve) aus dem EEPROM des Reflow-Ofens ausgeführt. Der Backvorgang kann mit der Software gesteuert (START, STOP, ...) und überwacht werden. Hierzu stehen Temperatur, Temperaturänderung, Heizleistung (Ober- und Unterhitze, Lüfter) so wie die graphische Darstellung im zentralen Diagramm zur Verfügung. Eingriffsmöglichkeiten, wie das Ändern der Temperaturkurve sind nicht vorgesehen. Dies soll ein reiner Überwachungs-Modus sein. Um die Temperaturkurve zu verändern zu können, sollte der Modus &amp;quot;PC-Profil&amp;quot; verwendet werden und die Temperaturkurve aus dem EEPROM importiert werden. Dann kann Selbige auch verändert und anschließend ausgeführt bzw. verändert in den EEPROM zurückgeschrieben werden. Dieser Modus stellt ein Äquivalent zur START/STOP-Tasten-Bedienung an der Platine dar und kann selbstverständlich parallel dazu genutzt werden. Die GUI also als Addon zum Stand-Alone-Betrieb.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;PC-Profil&amp;quot;&#039;&#039;&#039; - Es wird ein Programm (Temperaturkurve) ausgeführt welche zuvor am Computer erstellt / editiert wurde. In diesem Modus gibt der Computer Temperaturwerte vor, welche live über die USB-Schnittstelle zum PIC übertragen werden und mit dem dort integrierten PID-Regler ausgeführt werden. Das ermöglicht eine on-the-fly Veränderung der Temperaturkurve während des Backvorgangs. Temperaturkurven können aus Dateien oder dem EEPROM importiert und auch wieder exportiert werden. CSV-Dateien können ebenfalls importiert und exportiert werden. Die &amp;quot;Eingabe&amp;quot; der Temperaturkurve erfolgt entweder über Import (CSV/EEPROM), per Mausklick auf dem zentralen Diagramm oder im sog. DataGridView. Weiteres siehe Unterpunkt &amp;quot;Eingabe der Temperaturkurve (Reflowprofil)&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;manueller Ablauf&amp;quot;&#039;&#039;&#039; - In diesem Modus wird (im Gegensatz zu den oberen beiden Modi &amp;quot;Ofen-Profil&amp;quot; und &amp;quot;PC-Profil&amp;quot;) keine Temperatur geregelt. Hier wird die Leistung des Ofens in % eingestellt und gesteuert. Der PID-Regler ist nicht in Aktion. Die Temperatur, Temperaturänderung so wie der Temperaturverlauf werden selbstredend angezeigt bzw. im Diagramm dargestellt. Der Modus &amp;quot;manueller Ablauf&amp;quot; fährt ähnlich dem Modus &amp;quot;PC-Profil&amp;quot; die im DataGridView eingetragenen Leistungs-Zeit-Punkte ab. Für jeden Zeitpunkt ist eine Leistung vorgegeben. Die Eingabe erfolgt ähnlich wie unter &amp;quot;Eingabe der Temperaturkurve (Reflowprofil)&amp;quot; beschrieben. Nur eben, dass eine Leistung und keine Temperatur angegeben wird. Die Eingabe der Leistung kann nicht im Zeit-Temperatur-Diagramm erfolgen sondern mittels der Schieberegler oder direkt tabellarisch.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;manueller Modus&amp;quot;&#039;&#039;&#039; - Dieser Modus enthält 2 Submodi&lt;br /&gt;
** &amp;quot;manueller Leistungsmodus&amp;quot; - Auch in diesem Modus wird die Leistung gesteuert. Es wird keine Temperatur geregelt, der PID-Regler für die Temperatur ist nicht in Betrieb. Die Einstellung hier erfolgt über die drei Schieberegler oder über eine numerische Eingabe durch Klick auf die Leistungsangabe unter dem Schieberegler. Durch Klick auf die Texte &amp;quot;TOP&amp;quot;, &amp;quot;BOTTOM&amp;quot;, &amp;quot;FAN&amp;quot; (Oberhitze, Unterhitze, Lüfter) können selbige deaktiviert bzw. aktiviert werden. Auch in diesem Modus wird Temperatur, Temperaturänderung so wie der Temperaturverlauf dargestellt.&lt;br /&gt;
** &amp;quot;manueller Temperaturmodus&amp;quot; - Hier wird die Temperatur wieder mittels des Temperatur-PIDs geregelt. Die Temperatur wird entweder mittels Schieberegler (Ober- und Unterhitze-Regler sind jetzt gekoppelt) oder durch eine numerische Eingabe unterhalb der Schieberegler vorgegeben. Anzeige wie im &amp;quot;manuellen Leistungsmodus&amp;quot;. Der Lüfter kann unabhängig vom PID in seiner Leistung geregelt werden. Ein evtl. durch den Luftstrom verursachter Temperaturabfall wird vom PID selbstverständlich ausgeregelt (aus diesem Grunde ist es ja ein Regler).&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Programmieren&amp;quot;&#039;&#039;&#039; - Hier kann ein neues &#039;&#039;&#039;Temperatur&#039;&#039;&#039;-Programm für den EEPROM-Speicher des Ofens erstellt und editiert werden. Die Eingabemöglichkeiten sind unter &amp;quot;Eingabe der Temperaturkurve (Reflowprofil)&amp;quot; beschrieben. Dieser Modus ist zum reinen Programmieren des Ofens gedacht und ermöglicht keine weitere Steuerung oder Überwachung des Ofens.&lt;br /&gt;
&lt;br /&gt;
=== Eingabe der Temperaturkurve (Reflowprofil) ===&lt;br /&gt;
[[Datei:datagridview.png|thumb|right|400px|tabellarische Anzeige und Editiermöglichkeit der Temperaturkurve]]&lt;br /&gt;
Die Eingabe der Temperaturkurve erfolgt entweder über Import (CSV/EEPROM), per Mausklick auf dem zentralen Diagramm oder im sog. DataGridView (Excel-ähnliche Bedienung in tabellarischer Form). &lt;br /&gt;
&lt;br /&gt;
* CSV-Import + Export&lt;br /&gt;
* EEPROM-Import + Export&lt;br /&gt;
* Im rechts stehenden Screenshotbeispiel wird eine tabellarische Eingabeform mit einem DataGridView gezeigt: Die Temperatur (erster Temperaturpunkt = Punkt 0) von 100°C wird linear über einen Zeitraum von 0-30s verteilt. Bei 30s hat der Ofen die Temperatur von 100°C. Dafür setzt die Regelung die Oberhitze, die Unterhitze ein. Der Lüfter ist deaktiviert. In der Zeit von 30s bis 120s wird die Temperatur nun von 100°C auf 150°C linear angehoben. Von 120s bis 180s Backzeit steigt die Temperatur von 150°C auf 250°C. Von 180s bis 200s wird die Temperatur auf 280°C angehoben. Anschließend wird sie zwischen 200s und 220s auf 280°C gehalten (280°C@200s und 280°C@220s) um dann bis 240s wieder auf 250°C zu fallen. Bis zum Zeitpunkt 300s wird dann die Temperatur 30°C angestrebt. Zusätzlich ist der Lüfter nun aktiviert (soweit der Ofen eine Umluftfunktion besitzt). Bei Punkt 7 sind Ober- und Unterhitze deaktiviert nur noch der Lüfter kühlt. Da hier bei &amp;quot;Zeit[s]&amp;quot; die 0 eingetragen wird der Zustand (hier nur Lüfter an) für einen unendlich langen Zeitraum auf 0 gehalten. Also so lange wie das Programm aktiviert ist wird der Lüfter laufen. Natürlich könnte man hier auch z.B. 100°C und Zeitpunkt 0s eintragen. Dann würde der Ofen bis zum manuellen Beenden des Programms (klick auf STOP-Button oder Drücken des START/STOP-Tasters auf der Platine/Steuerung) 100°C halten.&lt;br /&gt;
* Alle Zellen des DataGridView sind editierbar (zur Veränderung der Temperatur, Zeitpunkt, ...)&lt;br /&gt;
* Direkter Klick auf das zentrale Temperatur-Zeit-Diagramm trägt den Zeitpunkt so wie die Temperatur unter dem Mauszeiger in die Tabelle (das DataGridView) ein. Die ausgewählte Zeile wird beschrieben oder überschrieben. Neue Zeilen (also Temperatur-Zeit-Punkte) können durch klick auf den &amp;quot;Plus-Button&amp;quot; hinzugefügt werden. Ebenso ist das Löschen oder Verschieben einer oder mehrerer Zeile gleichzeitig möglich.&lt;br /&gt;
&lt;br /&gt;
=== Beschreibung der Steuerungsmöglichkeiten ===&lt;br /&gt;
In Abhängigkeit des gewählten Modus bestehen einige Steuerungs-, Einstellungs- und Kontrollmöglichkeiten:&lt;br /&gt;
* &#039;&#039;&#039;Schieberegler&#039;&#039;&#039; für Temperatur od. Leistung (je nach Modus) für Oberhitze, Unterhitze und Lüfter. Je nach Hardwareausführung. &lt;br /&gt;
** Klick auf &amp;quot;TOP&amp;quot;, &amp;quot;BOTTOM&amp;quot; oder &amp;quot;FAN&amp;quot; aktiviert oder deaktiviert die entsprechende Funktion bzw. Hardware.&lt;br /&gt;
** Numerische Eingabe der Werte für die Schieberegler durch Klick auf die Anzeige unterhalb der Schieberegler. Werte können auch im deaktivierten Zustand angegeben werden. Die Übernahme erfolgt durch den &amp;quot;Aktivierungsklick&amp;quot; auf &amp;quot;TOP&amp;quot;, &amp;quot;BOTTOM&amp;quot; oder &amp;quot;FAN&amp;quot;&lt;br /&gt;
* &#039;&#039;&#039;T1, dT1, T2, dT2&#039;&#039;&#039; - Anzeige der gemessenen Temperatur so wie die momentane Temperaturänderung am jeweiligen Sensor. &lt;br /&gt;
* &#039;&#039;&#039;Bedienbuttons&#039;&#039;&#039;&lt;br /&gt;
** Play - Startet das Programm am angegebenen Startpunkt (siehe unten)&lt;br /&gt;
** Pause - Pausiert das Programm - weitere Pauseoptionen siehe unten&lt;br /&gt;
** Stop - Stopt den Programmablauf&lt;br /&gt;
** Vor / Zurück - Springt zwischen Temperaturpunkten hin und her. Dient zum überspringen oder zurückspringen zu gewissen Temperatur-Zeit-Punkten. Ermöglicht z.B. das Überspringen eines Ablaufes der eine lange Preheat- oder Dryphase hat.&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Status&amp;quot;&#039;&#039;&#039; - zeigt den aktuellen Zustand des Programms an (READY, START, WAITING, PAUSE, ...)&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;RESET&amp;quot;&#039;&#039;&#039; - setzt das (begonnene) Programm zurück. Beinhaltet neben dem Programmablauf auch das Zurücksetzen der graphischen Anzeige des Diagramms, etc.&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Startpunkt&amp;quot;&#039;&#039;&#039; - legt den ersten Punkt des Programmablaufes fest. &lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Wiederholungen&amp;quot;&#039;&#039;&#039; - ermöglicht das wiederholte Backen ohne das Programm händisch immer wieder neu starten zu müssen. Die Anzahl der Wiederholungen ist einstellbar (0 für unendlich viele) und es ist eine Wartezeit zwischen den Wiederholungen einstellbar. Alternativ kann eine Meldung nach jedem vollendeten Backvorgang abgegeben werden. Nach Bestätigung dieser wird die nächste Wiederholung ausgeführt.&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Pause&amp;quot;&#039;&#039;&#039; - Pauseneinstellungen. Hier sind Optionen wählbar was passieren soll, falls der Pausebutton betätigt wird:&lt;br /&gt;
** Pausezeit - gibt an wie lange die Pause dauern soll [s], danach fährt das Programm automatisch gemäß des gewählten Pausemodus fort. Für eine Pause ohne automatisches Fortfahren (Countdowntimer) &#039;0&#039; angeben.&lt;br /&gt;
** Pausemodus &amp;quot;aktuelle Temperatur halten, WarmUp, Fortsetzen&amp;quot; - Ofen hält die Temperatur (Zieltemperatur) des Zeitpunktes als der Pausebutton betätigt wurde. WarmUp bedeutet, dass nach dem Beenden des Pausemodus zunächst die Zieltemperatur wieder erreicht werden &#039;&#039;&#039;muss&#039;&#039;&#039; bevor der nächste Punkt angesteuert wird. Klingt paradox, wenn die Temperatur doch so und so gehalten wird, ist aber nicht so. Die Wahrscheinlichkeit ist hoch, dass der Pausemodus benutzt wird um die Ofentüre zu öffnen und Korrekturen an der Platine vorzunehmen. Unter Umständen ist die Heizung des Ofens jedoch nicht in der Lage den dadurch entstehenden Wärmeverlust zu kompensieren. Fährt das Programm dann sofort fort, so könnten evtl. kritische (Hoch-)Punkte des Lötprofils &amp;quot;unterfahren&amp;quot; werden. Dem wirkt WarmUp entgegen.&lt;br /&gt;
** Pausemodus &amp;quot;aktuelle Temperatur halten, Fortsetzen&amp;quot; - siehe oben, nur ohne WarmUp.&lt;br /&gt;
** Pausemodus &amp;quot;definierte Temperatur halten, WarmUp, Fortsetzen&amp;quot; - siehe oben. Statt der aktuellen Zieltemperatur wird jedoch nun im Pausemodus eine einzustellende Pausetemperatur gehalten. Mit WarmUp.&lt;br /&gt;
** Pausemodus &amp;quot;definierte Temperatur halten, Fortsetzen&amp;quot; - siehe oben, nur ohne WarmUp.&lt;br /&gt;
** &amp;quot;Pausetemperatur&amp;quot; - spezielle Temperatur die bei entsprechender Pausemoduswahl für die Dauer der Pause gehalten wird.&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Ende&amp;quot;&#039;&#039;&#039; - gibt an was am Ende eines durchlaufenen Reflow-Programms passieren soll. Ist der Wiederholungsmodus aktiviert, tritt dieses Ereignis erst nach Durchlauf aller Wiederholungen ein. Folgende Modi sind möglich:&lt;br /&gt;
** automatischer Reset - am Ende des Programms wird alles automatisch zurückgesetzt, alle Graphiken und Anzeigen gelöscht.&lt;br /&gt;
** manueller Reset - am Ende des Programms bleiben alle Anzeigen, Graphiken, etc erhalten und müssen vor Beginn eines neuen Reflowvorgangs händisch durch Klick auf &amp;quot;RESET&amp;quot; zurückgesetzt werden.&lt;br /&gt;
** Benutzermeldung - lässt eine Meldung erscheinen. Alle Anzeigen und Graphiken bleiben erhalten bis der Benutzer diese Meldung bestätigt. Mit Bestätigung dieser Meldung wird ein automatischer Reset vorgenommen.&lt;br /&gt;
&lt;br /&gt;
=== Loggen des Temperaturverlaufes ===&lt;br /&gt;
Es ist möglich jeden Backvorgang in eine CSV-Datei zu loggen. (Software- und PID-Einstellungen). Geloggte CSV-Dateien können eingelesen und im zentralen Temperatur-Zeit-Diagramm begutachtet werden. Ein Ist-Soll-Vergleich ist ebenso möglich wie die direkte Anzeige des Fehlers (&amp;quot;Ist minus Soll&amp;quot;). Dank CSV können die Daten auch mit anderen Programmen (Excel, etc.) weiterverarbeitet werden.&lt;br /&gt;
&lt;br /&gt;
== Ofen / Pizzaofen ==&lt;br /&gt;
=== Leistung und Volumen ===&lt;br /&gt;
=== Dämmung ===&lt;br /&gt;
=== Umluft ===&lt;br /&gt;
=== Bezugsquellen ===&lt;br /&gt;
=== Diskussionen im Forum ===&lt;br /&gt;
* Umfangreicher Thread u.A. Leistungsvermögen, Temperaturmessung und Dämmung [http://www.mikrocontroller.net/topic/270627]&lt;br /&gt;
&lt;br /&gt;
== FAQ ==&lt;br /&gt;
&lt;br /&gt;
* Q1: Ich habe einen PT100/PT1000 und möchte den anschließen. Geht das?&lt;br /&gt;
** A1: Ja natürlich. Dazu ist aber etwas externe Elektronik notwendig. Sowohl 2 ADC-Pins (mit 3V3 Betriebsspannung als fixe Referenzspannung), als auch die UART und SPI/I2C-Schnittstelle stehen zur freien Verfügung. Für PT100/PT1000 wird für vernünftige Messungen ohnehin eine Verstärkung (meist mit OPV) von Nöten sein. Da der PIC-interne ADC &amp;quot;nur&amp;quot; 10bit Auflösung bietet sollte ein externer 16bit ADC in Betracht gezogen werden um das Potential der PT100/PT1000 auszunutzen.&lt;br /&gt;
*Q2: Ich habe von günstigen Temperaturmessungen mit Dioden gehört. Geht das auch hier?&lt;br /&gt;
**A2: Ja. Die Vorwärtsspannung einer Diode verhält sich linear zur Sperrschichttemperatur. Diese Spannung (bei 25°C einer Si-Diode die bekannten 0,7V) kann mittels OPV verstärkt werden und auf einen Spannungsbereich von 0 ... 3V3 aufgebläht werden. Eine billige Lösung, auf Kosten der Genauigkeit. Doch eine Diode ist laut Datenblatt nur bis 150°C geeignet. Es ist also beim Löten mehr oder weniger Pfusch. Wenn ich schon eine Reflow-Steuerung baue, sollte ich doch nicht an ein paar Euro für eine gescheite Temperaturmessung sparen. Einige Anregungen vom Messgerätehersteller Keithley bzgl. der Halbleiterphysik mit interessanten Formeln [http://www.keithley.de/support/data?asset=50486]. Oder natürlich der Klassiker von Thomas Pfeifer [http://thomaspfeifer.net/backofen_smd_reflow.htm]. Oder ein Beitrag mit LT-Spice Simulation zum Thema [http://www.mikrocontroller.net/topic/270627#2833883].&lt;br /&gt;
* Q: God why ... ?&lt;br /&gt;
** A: Because we can !&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Verbesserungen Prototyp ===&lt;br /&gt;
* Bauteile weiter weg von Schraublöchern&lt;br /&gt;
* Dazu Kreis rund um Bohrung auf Bestückdruck&lt;br /&gt;
* Masseanbindung Quarz&lt;br /&gt;
* Klemmen weiter weg vom Rand&lt;br /&gt;
* Klemme und Sicherungshalter weiter auseinander, damit Schutzhabe draufpasst&lt;br /&gt;
* Bohrungen für Drossel 0,2mm größer machen&lt;br /&gt;
* Teilenummer für Conrad-USB-Buchse in BOM übernehmen.&lt;br /&gt;
* Stiftleiste P1  weiter weg von P2 und P4&lt;br /&gt;
* Varistoren näher an Klemmen platzieren&lt;br /&gt;
* Bestückvarianten defineren: 1. minimal 2. Standard 3. Externe Leds und Schalter.&lt;br /&gt;
* THT-Kondensatoren für Snubber - extra Footprint?&lt;br /&gt;
* Ggv. Stiftleistenbelegung für externe Leds so ändern, das keine extra Vorwiderstände notwendig sind.&lt;br /&gt;
* Wert der Drossel checken.(BOM Bestellnummer)&lt;br /&gt;
&lt;br /&gt;
=== Errata Projekt ===&lt;br /&gt;
* LED-Beschriftung passt nicht ganz (Schltplan Netlabel OUT1,2,3,4 sind durcheinander gekommen)&lt;br /&gt;
* Schaltplan UNL2003 fehlerhafte Zuordnung IN5,6,7 &amp;lt;&amp;gt; OUT7,6,5&lt;br /&gt;
* Pullup-Widerstand bei MCLR doppelt. &lt;br /&gt;
* Brückengleichrichter / Optokoppler NICHT die im Schaltplan angegebenen Bestellnummern von Reichelt verwenden. BOM-Bauteile und Bestellnummern sind ok.&lt;br /&gt;
* Beim MOSFET R39 ist die Masseanbindung falsch. Es bestehen drei Möglichkeiten:&lt;br /&gt;
** 1. 0-R-Brücke für R39 einbauen und auf Strombegrenzung verzichten.&lt;br /&gt;
** 2. Eine Polyfuse mit Bauform 1206 einbauen. &lt;br /&gt;
** 3. Das kleine Leiterbahnstückchen zwischen R38 und R39 unterbrechen und statt dessen die Leiterbahn zwischen R39 und der Klemme mit der Durchkontaktierung bei R38 verbinden.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* Diskussion [http://www.mikrocontroller.net/topic/297217 Diskussion]&lt;br /&gt;
* Dextrel Nulldurchgang [http://www.dextrel.net/diyzerocrosser.htm Nulldurchgangschaltung]&lt;br /&gt;
* Gehäuse [http://www.hammondmfg.com/pdf/RM2015M.pdf Gehäuse Hammond]&lt;br /&gt;
* Bezugsquelle SOS Elektronik [http://www.soselectronic.com/?str=371&amp;amp;artnum=73595&amp;amp;name=hammond-ritec-rm2055m Gehäuse]&lt;br /&gt;
* Bezugsgquelle [http://www.druckerzubehoer.de/shop/product/catid/H-UNIVERSALZUBEHOER_HZB/subcatid/UNIVERSALZUBEHOER_GROUP1_HZB/productid/1727063-390722LA/site/1/lng/de_DE Mini USB Netzteil]&lt;br /&gt;
* Bezugsquelle Termoelement: TBD&lt;br /&gt;
* Bezugsquelle Steckdosen für Schalttafeleinbau: [http://www.artcase-shop.de/index.php?page=search&amp;amp;page_action=query&amp;amp;desc=on&amp;amp;sdesc=on&amp;amp;keywords=pce+105&amp;amp;x=0&amp;amp;y=0 Steckdosen]&lt;br /&gt;
* Bezugsquelle [http://www.schaeffer-ag.de/ Frontplatten]&lt;br /&gt;
 &lt;br /&gt;
[[Kategorie:Projekte]]&lt;br /&gt;
[[Kategorie:PIC]]&lt;br /&gt;
[[Kategorie:PIC-Boards]]&lt;br /&gt;
[[Kategorie:Platinen]]&lt;/div&gt;</summary>
		<author><name>Frankman</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=Reflow_Ofen_Steuerung&amp;diff=76116</id>
		<title>Reflow Ofen Steuerung</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=Reflow_Ofen_Steuerung&amp;diff=76116"/>
		<updated>2013-05-29T22:00:30Z</updated>

		<summary type="html">&lt;p&gt;Frankman: /* Taster */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Datei:RFB.jpg]]&lt;br /&gt;
== Einleitung ==&lt;br /&gt;
[[Datei:pcb.png|thumb|right|400px|unbestücktes PCB der Reflow-Ofen-Steuerung]]&lt;br /&gt;
Hier wird eine weitere Reflow-Ofen-Steuerung beschrieben.&lt;br /&gt;
=== Zum Nachbauen ===&lt;br /&gt;
* Spezifikation: [[Datei: Spec Reflow.pdf]]&lt;br /&gt;
* Schaltplan: [[Datei:Reflow.pdf]]&lt;br /&gt;
* Gerberdaten: [[Datei:Gerber Reflow.pdf]]&lt;br /&gt;
* Assemblydrawing: [[Datei:Assembly Reflow.pdf]] &lt;br /&gt;
* Altium-Files: [[Datei:Reflow.zip]]&lt;br /&gt;
* Stückliste als CSV: [[Datei:Reflow.csv]]&lt;br /&gt;
* Stückliste als Open Office: [[Datei:Reflow.ods]]&lt;br /&gt;
* PC Programm: TBD&lt;br /&gt;
* Sourcen PC-Programm: TBD&lt;br /&gt;
* PIC Programm (*.hex): TBD&lt;br /&gt;
* Sourcen Pic-Programm: TBD&lt;br /&gt;
&lt;br /&gt;
=== Motivation ===&lt;br /&gt;
Die Gründe, eine weitere Steuerung zu entwerfen, waren:&lt;br /&gt;
&lt;br /&gt;
# Die Möglichkeit, auch größere Öfen mit 2 Phasen betreiben zu können.&lt;br /&gt;
# Die Steuerung universell zu gestalten. Es sollte möglich sein, diese nicht nur zum Reflow löten zu verwenden....z.B:&lt;br /&gt;
- Temperatursteuerung für Klimakammer (Heizen, Kühlen)&lt;br /&gt;
- Dimmer mit USB&lt;br /&gt;
- Temperaturregler für ein Tisch-Fondue ( Temperatur halten)&lt;br /&gt;
- Drehzahlsteller mit USB&lt;br /&gt;
- Switchpack&lt;br /&gt;
&lt;br /&gt;
# Die Schaltung sollte in Altium entwickelt werden. (Warum kein Eagle??? Altium User wissen es.... :-)&lt;br /&gt;
# Die Schaltung sollte mit USB ausgestattet sein.&lt;br /&gt;
&lt;br /&gt;
=== Eigenschaften &amp;amp; Spezifikationen ===&lt;br /&gt;
* Temperaturmessung: bis zu 2x &#039;&#039;&#039;Thermoelement&#039;&#039;&#039; (K-Typ) mit MAX6675 (abgekündigt) oder Nachfolger MAX31855 (pin- aber nicht softwarekompatibel)&lt;br /&gt;
* &#039;&#039;&#039;Leistungsstufen&#039;&#039;&#039;: 3x voneinander unabhängige Triac 800V bei 25A, limitiert auf &#039;&#039;&#039;10A @ 250VAC&#039;&#039;&#039; (z.B. Oberhitze, Unterhitze, Umluft)&lt;br /&gt;
* &#039;&#039;&#039;Nulldurchgangserkennung&#039;&#039;&#039; ermöglicht Wellenpaket-, Phasenan- und abschnittssteuerung, galvanische Trennung selbiger&lt;br /&gt;
* 1x &#039;&#039;&#039; MOSFET-Ausgang&#039;&#039;&#039; PWM z.B. für 12V Lüfter, max. 55V 3,5A&lt;br /&gt;
* &#039;&#039;&#039;feste Programme&#039;&#039;&#039; im EEPROM über 2-Tasterbedienung und LEDs wähl- und ausführbar. &#039;&#039;&#039;PC-unabhängiger Betrieb&#039;&#039;&#039;. Beliebig viele Programme möglich, für die Auswahl stehen 4 benutzer-konfigurierbare LEDs zur Verfügung&lt;br /&gt;
* Betrieb am Computer für mehr Reflowprofile&lt;br /&gt;
* Mini-USB-Buchse zur Steuerung / Programmierung über GUI&lt;br /&gt;
* Günstiges passendes &#039;&#039;&#039;Gehäuse&#039;&#039;&#039;, alle LEDs und Taster auf Stiftleisten herausgeführt&lt;br /&gt;
* PID-Temperaturregler&lt;br /&gt;
* UART, SPI, I2C und 2x ADC auf Stiftleisten herausgeführt (-&amp;gt; Erweiterungen)&lt;br /&gt;
* Versorgung über USB (&amp;lt; 100mA), interne Versorgungsspannung 3,3V&lt;br /&gt;
* umfangreiche EMV-gerechte Entstörung für den Bedarfsfall&lt;br /&gt;
&lt;br /&gt;
== Technische Realisierung==&lt;br /&gt;
=== PIC18LF2550 Grundbeschaltung ===&lt;br /&gt;
[[Datei:osc_vs_vcc.png|thumb|right|200px|Taktraten und Versorgungsspannung PIC18LF2550 vs. PIC18LF2550, Datenblatt S. 370/438]]&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 3/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Hier kommt ein PIC18&#039;&#039;&#039;L&#039;&#039;&#039;F2550 zum Einsatz. Er verfügt über eine USB-Schnittstelle und ist für Betriebsspannungen von 2 ... 5,5V ausgelegt. Sein Verwandter PIC18F2550 (ohne L) ist nicht für Betriebsspannungen &amp;lt; 4,2V ausgelegt. Dies ist bei USB sowiesor nicht immer erfüllt und die Thermoelement ICs vertragen ohnehin keine 5V, daher wurde die Betriebsspannung auf 3,3V reduziert. Neben Standard-Decoupling (100nF Kerko pro Vcc-Vss-Pärchen) wurde das ICSP-Interface in alt bewährter Pinbelegung (PICKit1,2,3) angebracht. PGD und PGC sind nicht weiter beschaltet, MCRL wird in Standardbeschaltung als Resetpin verwendet. Der Resetschalter findet sich auf dem Top-Sheet (Schaltplan S. 1/22). Die Taktversorgung erfolgt zwingend über einen 24 MHz Quarz (-&amp;gt; USB). Man beachte diesbezüglich rechts stehende Grafik zu Taktraten und Versorgungsspannungen (Vdd bzw. auch Vcc genannt). Auch zu finden im Datenblatt des PICs auf Seite 370.&lt;br /&gt;
&lt;br /&gt;
=== PIC18LF2550 USB Beschaltung ===&lt;br /&gt;
[[Datei:usb_part.png|thumb|right|200px|PIC18(L)F2550&lt;br /&gt;
 Standard &lt;br /&gt;
USB-Beschaltung am PIC]]&lt;br /&gt;
[[Datei:usb_protect.png|thumb|right|200px|USB-Schutzbeschaltung und Mini-USB-Buchse]]&lt;br /&gt;
&lt;br /&gt;
Die Beschaltung der USB-Schnittstelle am PIC ist 1:1 aus dem Datenblatt übernommen. Zum Einsatz kommt eine Mini-USB-Buchse (J1).&lt;br /&gt;
Der Gedanke war: Erstens ein sehr preiswertes, fertiges Netzteil verwenden zu können, (ca. 3,67 € bei druckerzubehoer.de) und zweitens, die Steuerung auch mit dem PC / Laptop versorgen zu können.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 4/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
FER1,2 und C7 filtern den Schirm nach GND. Standardmäßig wird man hier wohl 0-Ohm-Widerstände einsetzen. Falls ein Besuch im EMV-Labor geplant ist, weicht man auf den Ferrit aus. C5 und C6 filtern das Signal zusammen mit der Common-Mode-DrosselL1. Die Drossel kann mit den 0-Ohm-Brücken R8 und R9 überbrückt (gespart) werden. IC2 ist als ESD-Schutz gedacht und kann ebenfalls bei ausgeprägten Kostenbewustsein gespart werden. Die Widerstände R6 und R7 dürfen NICHT bestückt werden. FER1,2, C5, IC2 müssen nicht zwingend bestückt werden. Die Bestückung wurde vorgehalten um im Problemfall einfache Abhilfe schaffen zu können.&lt;br /&gt;
&lt;br /&gt;
=== 3,3V Spannungsversorgung ===&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 2/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Die 3,3V Versorgungsspannung für die gesamte Platine wird aus V_USB mittels des LDO Spannungsreglers TOREX - XC6206P332MR abgeleitet. Günstig, SOT-23, klein, 2x 1µF Kondensatoren benötigt, 3,3V max. 250mA. Der hat auch einen sehr kleinen Ruhestrom.&lt;br /&gt;
&lt;br /&gt;
=== Taster ===&lt;br /&gt;
*Der Resettaster zieht den MCLR-Pin nach GND und löst damit den Reset aus. MCLR  ist mit einem 10k Pullup versehen.&lt;br /&gt;
*Die übrigen beiden Taster ziehen RA4 bzw. RB5 ebenfalls nach GND.&lt;br /&gt;
&lt;br /&gt;
=== LEDs + ULN2003L ===&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 11/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Um alle LEDs auf der Platine (3x Optotriac + 7x Status) ansteuern zu können wurde auf das 7fach Darlington-Array ULN2003L zurückgegriffen. Es dient desweiteren auch als &amp;quot;MOSFET-Treiber für Arme&amp;quot;. Alle LEDs werden von diesem Transistor-Array nach Masse geschaltet. Dient der Entlastung der PIC-Ausgänge. Und kostet ja auch nicht viel.&lt;br /&gt;
&lt;br /&gt;
=== MOSFET-Leistungsausgang ===&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 22/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Hier kommt der einfacher N-Kanal MOSFET (LogicLevel) PHT8N06LT zum Einsatz. Er wird über das ULN2003L Array getrieben und ermöglicht den Anschluss eines DC-Verbrauchers mit max. 55V bei 3,5A. Hier könnte beispielsweise ein PC-Lüfter zur Kühlung od. Umluft angeschlossen und über PWM geregelt/gesteuert werden. Ein Gatewiderstand von 100 Ohm ist zum Schutz des Treibers vorgesehen. Eine 0-Ohm-Brücke ist stattdessen aber auch möglich, wenn man eine höhere Leistung schalten möchte.Die Leiterbahnen sollten die 3A schon hergeben. Der 100 Ohm Widerstand bildet eine Stromquelle. Sobald der Strom durch den MOSFET und den Widerstand 33mA erreicht, sinkt UGS gegen 0 V. Folge: Der Mosfet sperrt ( und bleibt ganz....)&lt;br /&gt;
Es kann hier prinzipiell auch ein anderer Mosfet im SOT223-Gehäuse zum Einsatz kommen. Achten sollte man darauf, das der MOSFET schon bei 3,3V Ugs gut leiten sollte.&lt;br /&gt;
&lt;br /&gt;
=== Nulldurchgangserkennung ===&lt;br /&gt;
[[Datei:zerocross.png|thumb|right|200px|Nulldurchgangserkennung]]&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 5/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Die Nulldurchgangserkennung erfolgt nach einer sehr bekannten - jedoch ausgeklügelten - Schaltung.  [http://www.dextrel.net/diyzerocrosser.htm]&lt;br /&gt;
&lt;br /&gt;
ACHTUNG: DER IM SCHALTPLAN VERZEICHNETE OPTOKOPPLER und BRÜCKENGLEICHRICHTER VON REICHELT DARF KEINESFALLS VERWENDET WERDEN! Pinbelegung! Bitte den Optokoppler aus der Stückliste nehmen!&lt;br /&gt;
&lt;br /&gt;
Während einer Halbwelle wird C14 über R33 und R35 bzw. D5 geladen. Währenddessen ist T1 gesperrt. Sobald die Wechselspannung (L1-N über Spannungsteiler (R33+R35) / R34) kleiner ist als die Spannung über C14, steuert T1 durch. Dann entlädt sich C14 über den LED-Vorwiderstand R32. Der durch-steuernde Optokoppler zieht die Sync-Leitung nach GND. (Pullup Sync-Leitung = R31). Dies löst beim PIC auf INT2 einen Interrupt aus. &lt;br /&gt;
&lt;br /&gt;
Dieser Interrupt ermöglicht eine präzise Wellenpaket-, Phasenanschnittsteuerung je nach Bedarf. Das Schalten im Nulldurchgang bei der Wellenpaketsteuerung reduziert EMV-Störungen. Für Phasenanschnitt ist prinzipbedingt ohnehin eine Nulldurchgangserkennung notwendig. Außerdem liefert sie eine völlig ausreichend genaue Zeitbasis für alle Programmabläufe.&lt;br /&gt;
&lt;br /&gt;
=== Triac-Ausgänge + Snubber ===&lt;br /&gt;
[[Datei:triac.png|thumb|right|200px|Triac-Ausgangsbeschaltung]]&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 19,20,21/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Die Ansteuerung des eigentlichen Leistungstriacs BTA140-800 erfolgt über den Optotriac IS6005. Der Strom durch Letzteren wird durch R1x limitiert (Vorwiderstand). R2x und R5x limitieren wiederum den Strom durch den Optotriac. Wenn dieser zündet so folgt unmittelbar der &amp;quot;Leistungstriac&amp;quot; der dann die Last schaltet.&lt;br /&gt;
&lt;br /&gt;
S1x ist ein Sicherungshalter um die Lasten einzeln absichern zu können. Wert 10A Mittelträge.&lt;br /&gt;
&lt;br /&gt;
R3x, R4x, C3x bilden ein Snubber-Network, L1X verhindert eine zu schnelle Stromanstiegsgeschwindikeit damit der Triac nicht &amp;quot;von selbst&amp;quot; zündet. Weglassen äußert sich meist in einem fast nicht hörbaren Click. Damit zeigt einem dann der Triac, dass er ab jetzt für immer recht niederohmig geworden ist. Die Regelung der Temperatur braucht dann nicht mehr über den Prozessor erfolgen, sondern nur noch mit dem Ein-/Ausschalter..... :-)&lt;br /&gt;
&lt;br /&gt;
=== Thermoelemente (MAX6675/MAX31855)  ===&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 6,7/22&#039;&#039;&#039;&lt;br /&gt;
Der inzwischen abgekündigte MAX6675 bzw. sein ehrenwerter Nachfolger MAX31855 sind einfach zu handhabende Thermoelement-ICs mit Kaltstellenkompensation. Thermoelemente funktionieren durch das Verschweißen zweier verschiedener Legierungen (beim K-Typ Thermoelemnt Ni und CrNi). Durch den durch die Umgebungstemperatur bedingten Wärmefluss zwischen beiden entsteht ein elektrische Spannung. Diese wird von besagten ICs verstärkt und digitalisiert (ADC). Diese Spannung / Temperatur ist natürlich wieder relativ zur Umgebungstemperatur an der Kaltstelle (Kontaktierung der beiden Drähte mit dem Messinstrument). Daher messen diese ICs auch gleich die Umgebungstemperatur (Kaltstellenkompensation genannt) mit, verrechnen das und geben das Ergebnis auf der SPI-Schnittstelle aus. MAX6675 leistet 12bit also 0,25°C Auflösung (nicht Genauigkeit!) über einen Temperaturbereich von 0°C to +1024°C. Außerdem wird ein nicht/fehlerhaft angeschlossenes Thermoelement erkannt. Der Thermocouple-IC wird an die SPI-Schnittstelle des PICs angeschlossen (hier MSSP genannt). &lt;br /&gt;
&lt;br /&gt;
MAX6675 und MAX31855 scheinen entgegen der Adafruit-Information [http://www.adafruit.com/products/269] doch pinkompatibel zu sein - die Ansteuerung unterscheidet sich jedoch definitiv. (Zitat: &amp;quot;Now uses the MAX31855K instead of the MAX6675, so it can measure a wider temperature measurement range. Please note! the MAX31855 is not pin compatible or drop-in code compatible with the MAX6675. We do have an Arduino library for both chips but you&#039;ll need to adjust any existing MAX6675 designs for the mew MAX31855. The MAX6675 has been discontinued by Maxim.&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Es wurden 2 dieser ICs und damit 2 Temperaturmessstellen vorgesehen. Dies ermöglich die Messung für eine Regelung der Temperatur so wie eine zusätzliche Überwachung kritischer Bauteile (z.B. ICs oder LEDs). Die Minimalbestückung sieht einen MAX6675/MAX31855 vor. Die Auswahl in der Firmware erfolgt über einen der beiden GPIO-Pins RA5 oder RA0 via dem ChipSelect (CS) des MAX6675/MAX31855.&lt;br /&gt;
&lt;br /&gt;
Neben dem MAX6675/MAX31855 wurde ein Decoupling-Kondensator (C8x, Standard 100nF) so wie ein weiterer im Messpfad (C9x) zur Zwecken der Entstörung vorgeshen. C9x 100nF sollte nur bestückt werden wenn Probleme bei der Temperaturmessung entstehen (z.B. unrealstisch stark schwankende Werte).&lt;br /&gt;
&lt;br /&gt;
=== ADC, SPI, UART &amp;amp; I2C Stiftleiste ===&lt;br /&gt;
ADC, SPI, UART und I2C sind zu Zwecken der Kalibrierung / Erweiterung / Einstellung / Debugging auf Stiftleisten herausgeführt:&lt;br /&gt;
Ähnlichkeiten mit dem FTDI-USB-TTL-Kabel bzw. Arduino XXX Bla Bla Bla Schnittstellenkonverter sind natürlich rein zufällig.&lt;br /&gt;
&lt;br /&gt;
Die I2C-Schnittstelle wurde auf eine Stiftleiste geführt, um z.B. einem LM75 o.ä. anschließen zu können. Damit stehen zur Kalibrierung der Thermoelemente genaue Temperaturen zur Verfügung.&lt;br /&gt;
&lt;br /&gt;
Die Stiftleisten haben alle ein Raster von 2,54mm. So können Pin-Header, Wannenstecker oder ähnliches verwendet werden.&lt;br /&gt;
&lt;br /&gt;
Da ja viele Leute eigene Vorstellungen bezüglich der Frontplattengestaltung haben, wurden auch die Taster und LEDs auf Stiftleisten geführt.&lt;br /&gt;
&lt;br /&gt;
=== Kühlkörper ===&lt;br /&gt;
Da die Triacs der Steuerung für bis zu 10A pro Kanal ausgelegt sind, kann man auf die Kühlkörper nicht verzichten. Es fallen bei 10A bis zu 13 Watt Wärme pro Triac ab. Falls mann auf die Kühlkörper doch verzichten möchte, sollte man darauf achten, die Triacs mit dem Kopf nach unten einzubauen. Diese können sich dann bei Überlast ganz von selber auslöten.... :-)&lt;br /&gt;
&lt;br /&gt;
=== Gehäuse ===&lt;br /&gt;
Die Leiterplatte wurde für ein Gehäuse von Hammond entwickelt.&lt;br /&gt;
Das Gehäuse ist zwar keine Schönheit, aber doch recht preiswert.&lt;br /&gt;
Typenbezeichnung: RM2055M&lt;br /&gt;
&lt;br /&gt;
== Firmware PIC ==&lt;br /&gt;
Die Entwicklung der Firmware für den PIC18LF2550  geht mit MPlab 8 respektive dem C18 Compiler von Statten. MPlab ist kostenlos, der C18 Compiler bis auf die stärkste Optimierungsstufe ebenfalls. Die Quellen für die Firmware werden auch offengelegt.&lt;br /&gt;
=== Programmstruktur- und ablauf ===&lt;br /&gt;
Nach anfänglicher Initialisierung des PIC startet die Statemachine [http://http://www.mikrocontroller.net/articles/Statemachine] [http://http://de.wikipedia.org/wiki/Endlicher_Automat]. Neben ihr findet in der main-Funktion nur noch die Abfrage der beiden Bedientasten statt. Mit dem Tastendruck wird zum Zwecke der Entprellung ein Timer gestartet. Alles Andere (incl. PID-Regelung, Wellenpaket- bzw. Phasenan- und Phasenabschnittssteuerung und USB) ist interruptbasiert.&lt;br /&gt;
&lt;br /&gt;
=== Taktversorgung, Nulldurchgangserkennung und Zeitbasis ===&lt;br /&gt;
=== USB ===&lt;br /&gt;
=== SPI für MAX6675 ===&lt;br /&gt;
=== SPI für MAX31855 ===&lt;br /&gt;
&lt;br /&gt;
=== Wellenpaketsteuerung ===&lt;br /&gt;
=== Phasenanschnitt ===&lt;br /&gt;
&lt;br /&gt;
=== PWM für MOSFET ===&lt;br /&gt;
&lt;br /&gt;
== PC-Software (GUI) ==&lt;br /&gt;
[[Datei:gui_alpha.png|thumb|right|300px|Screenshot der GUI (noch Alpha) für den Reflow-Ofen-Controller]]&lt;br /&gt;
&lt;br /&gt;
Die GUI (englisch Graphical User Interface) ist der Einfachheit halber in VB.net programmiert und momentan noch im Alpha-Stadium. Auch hierfür liegen die Quellen später selbstverständlich offen.&lt;br /&gt;
&lt;br /&gt;
=== Funktionen und Modi ===&lt;br /&gt;
[[Datei:modi.png|thumb|right|400px|Auswahl der beschriebenen Modi durch Klick]]&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Ofen-Profil&amp;quot;&#039;&#039;&#039; - Es wird ein Programm (Temperaturkurve) aus dem EEPROM des Reflow-Ofens ausgeführt. Der Backvorgang kann mit der Software gesteuert (START, STOP, ...) und überwacht werden. Hierzu stehen Temperatur, Temperaturänderung, Heizleistung (Ober- und Unterhitze, Lüfter) so wie die graphische Darstellung im zentralen Diagramm zur Verfügung. Eingriffsmöglichkeiten, wie das Ändern der Temperaturkurve sind nicht vorgesehen. Dies soll ein reiner Überwachungs-Modus sein. Um die Temperaturkurve zu verändern zu können, sollte der Modus &amp;quot;PC-Profil&amp;quot; verwendet werden und die Temperaturkurve aus dem EEPROM importiert werden. Dann kann Selbige auch verändert und anschließend ausgeführt bzw. verändert in den EEPROM zurückgeschrieben werden. Dieser Modus stellt ein Äquivalent zur START/STOP-Tasten-Bedienung an der Platine dar und kann selbstverständlich parallel dazu genutzt werden. Die GUI also als Addon zum Stand-Alone-Betrieb.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;PC-Profil&amp;quot;&#039;&#039;&#039; - Es wird ein Programm (Temperaturkurve) ausgeführt welche zuvor am Computer erstellt / editiert wurde. In diesem Modus gibt der Computer Temperaturwerte vor, welche live über die USB-Schnittstelle zum PIC übertragen werden und mit dem dort integrierten PID-Regler ausgeführt werden. Das ermöglicht eine on-the-fly Veränderung der Temperaturkurve während des Backvorgangs. Temperaturkurven können aus Dateien oder dem EEPROM importiert und auch wieder exportiert werden. CSV-Dateien können ebenfalls importiert und exportiert werden. Die &amp;quot;Eingabe&amp;quot; der Temperaturkurve erfolgt entweder über Import (CSV/EEPROM), per Mausklick auf dem zentralen Diagramm oder im sog. DataGridView. Weiteres siehe Unterpunkt &amp;quot;Eingabe der Temperaturkurve (Reflowprofil)&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;manueller Ablauf&amp;quot;&#039;&#039;&#039; - In diesem Modus wird (im Gegensatz zu den oberen beiden Modi &amp;quot;Ofen-Profil&amp;quot; und &amp;quot;PC-Profil&amp;quot;) keine Temperatur geregelt. Hier wird die Leistung des Ofens in % eingestellt und gesteuert. Der PID-Regler ist nicht in Aktion. Die Temperatur, Temperaturänderung so wie der Temperaturverlauf werden selbstredend angezeigt bzw. im Diagramm dargestellt. Der Modus &amp;quot;manueller Ablauf&amp;quot; fährt ähnlich dem Modus &amp;quot;PC-Profil&amp;quot; die im DataGridView eingetragenen Leistungs-Zeit-Punkte ab. Für jeden Zeitpunkt ist eine Leistung vorgegeben. Die Eingabe erfolgt ähnlich wie unter &amp;quot;Eingabe der Temperaturkurve (Reflowprofil)&amp;quot; beschrieben. Nur eben, dass eine Leistung und keine Temperatur angegeben wird. Die Eingabe der Leistung kann nicht im Zeit-Temperatur-Diagramm erfolgen sondern mittels der Schieberegler oder direkt tabellarisch.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;manueller Modus&amp;quot;&#039;&#039;&#039; - Dieser Modus enthält 2 Submodi&lt;br /&gt;
** &amp;quot;manueller Leistungsmodus&amp;quot; - Auch in diesem Modus wird die Leistung gesteuert. Es wird keine Temperatur geregelt, der PID-Regler für die Temperatur ist nicht in Betrieb. Die Einstellung hier erfolgt über die drei Schieberegler oder über eine numerische Eingabe durch Klick auf die Leistungsangabe unter dem Schieberegler. Durch Klick auf die Texte &amp;quot;TOP&amp;quot;, &amp;quot;BOTTOM&amp;quot;, &amp;quot;FAN&amp;quot; (Oberhitze, Unterhitze, Lüfter) können selbige deaktiviert bzw. aktiviert werden. Auch in diesem Modus wird Temperatur, Temperaturänderung so wie der Temperaturverlauf dargestellt.&lt;br /&gt;
** &amp;quot;manueller Temperaturmodus&amp;quot; - Hier wird die Temperatur wieder mittels des Temperatur-PIDs geregelt. Die Temperatur wird entweder mittels Schieberegler (Ober- und Unterhitze-Regler sind jetzt gekoppelt) oder durch eine numerische Eingabe unterhalb der Schieberegler vorgegeben. Anzeige wie im &amp;quot;manuellen Leistungsmodus&amp;quot;. Der Lüfter kann unabhängig vom PID in seiner Leistung geregelt werden. Ein evtl. durch den Luftstrom verursachter Temperaturabfall wird vom PID selbstverständlich ausgeregelt (aus diesem Grunde ist es ja ein Regler).&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Programmieren&amp;quot;&#039;&#039;&#039; - Hier kann ein neues &#039;&#039;&#039;Temperatur&#039;&#039;&#039;-Programm für den EEPROM-Speicher des Ofens erstellt und editiert werden. Die Eingabemöglichkeiten sind unter &amp;quot;Eingabe der Temperaturkurve (Reflowprofil)&amp;quot; beschrieben. Dieser Modus ist zum reinen Programmieren des Ofens gedacht und ermöglicht keine weitere Steuerung oder Überwachung des Ofens.&lt;br /&gt;
&lt;br /&gt;
=== Eingabe der Temperaturkurve (Reflowprofil) ===&lt;br /&gt;
[[Datei:datagridview.png|thumb|right|400px|tabellarische Anzeige und Editiermöglichkeit der Temperaturkurve]]&lt;br /&gt;
Die Eingabe der Temperaturkurve erfolgt entweder über Import (CSV/EEPROM), per Mausklick auf dem zentralen Diagramm oder im sog. DataGridView (Excel-ähnliche Bedienung in tabellarischer Form). &lt;br /&gt;
&lt;br /&gt;
* CSV-Import + Export&lt;br /&gt;
* EEPROM-Import + Export&lt;br /&gt;
* Im rechts stehenden Screenshotbeispiel wird eine tabellarische Eingabeform mit einem DataGridView gezeigt: Die Temperatur (erster Temperaturpunkt = Punkt 0) von 100°C wird linear über einen Zeitraum von 0-30s verteilt. Bei 30s hat der Ofen die Temperatur von 100°C. Dafür setzt die Regelung die Oberhitze, die Unterhitze ein. Der Lüfter ist deaktiviert. In der Zeit von 30s bis 120s wird die Temperatur nun von 100°C auf 150°C linear angehoben. Von 120s bis 180s Backzeit steigt die Temperatur von 150°C auf 250°C. Von 180s bis 200s wird die Temperatur auf 280°C angehoben. Anschließend wird sie zwischen 200s und 220s auf 280°C gehalten (280°C@200s und 280°C@220s) um dann bis 240s wieder auf 250°C zu fallen. Bis zum Zeitpunkt 300s wird dann die Temperatur 30°C angestrebt. Zusätzlich ist der Lüfter nun aktiviert (soweit der Ofen eine Umluftfunktion besitzt). Bei Punkt 7 sind Ober- und Unterhitze deaktiviert nur noch der Lüfter kühlt. Da hier bei &amp;quot;Zeit[s]&amp;quot; die 0 eingetragen wird der Zustand (hier nur Lüfter an) für einen unendlich langen Zeitraum auf 0 gehalten. Also so lange wie das Programm aktiviert ist wird der Lüfter laufen. Natürlich könnte man hier auch z.B. 100°C und Zeitpunkt 0s eintragen. Dann würde der Ofen bis zum manuellen Beenden des Programms (klick auf STOP-Button oder Drücken des START/STOP-Tasters auf der Platine/Steuerung) 100°C halten.&lt;br /&gt;
* Alle Zellen des DataGridView sind editierbar (zur Veränderung der Temperatur, Zeitpunkt, ...)&lt;br /&gt;
* Direkter Klick auf das zentrale Temperatur-Zeit-Diagramm trägt den Zeitpunkt so wie die Temperatur unter dem Mauszeiger in die Tabelle (das DataGridView) ein. Die ausgewählte Zeile wird beschrieben oder überschrieben. Neue Zeilen (also Temperatur-Zeit-Punkte) können durch klick auf den &amp;quot;Plus-Button&amp;quot; hinzugefügt werden. Ebenso ist das Löschen oder Verschieben einer oder mehrerer Zeile gleichzeitig möglich.&lt;br /&gt;
&lt;br /&gt;
=== Beschreibung der Steuerungsmöglichkeiten ===&lt;br /&gt;
In Abhängigkeit des gewählten Modus bestehen einige Steuerungs-, Einstellungs- und Kontrollmöglichkeiten:&lt;br /&gt;
* &#039;&#039;&#039;Schieberegler&#039;&#039;&#039; für Temperatur od. Leistung (je nach Modus) für Oberhitze, Unterhitze und Lüfter. Je nach Hardwareausführung. &lt;br /&gt;
** Klick auf &amp;quot;TOP&amp;quot;, &amp;quot;BOTTOM&amp;quot; oder &amp;quot;FAN&amp;quot; aktiviert oder deaktiviert die entsprechende Funktion bzw. Hardware.&lt;br /&gt;
** Numerische Eingabe der Werte für die Schieberegler durch Klick auf die Anzeige unterhalb der Schieberegler. Werte können auch im deaktivierten Zustand angegeben werden. Die Übernahme erfolgt durch den &amp;quot;Aktivierungsklick&amp;quot; auf &amp;quot;TOP&amp;quot;, &amp;quot;BOTTOM&amp;quot; oder &amp;quot;FAN&amp;quot;&lt;br /&gt;
* &#039;&#039;&#039;T1, dT1, T2, dT2&#039;&#039;&#039; - Anzeige der gemessenen Temperatur so wie die momentane Temperaturänderung am jeweiligen Sensor. &lt;br /&gt;
* &#039;&#039;&#039;Bedienbuttons&#039;&#039;&#039;&lt;br /&gt;
** Play - Startet das Programm am angegebenen Startpunkt (siehe unten)&lt;br /&gt;
** Pause - Pausiert das Programm - weitere Pauseoptionen siehe unten&lt;br /&gt;
** Stop - Stopt den Programmablauf&lt;br /&gt;
** Vor / Zurück - Springt zwischen Temperaturpunkten hin und her. Dient zum überspringen oder zurückspringen zu gewissen Temperatur-Zeit-Punkten. Ermöglicht z.B. das Überspringen eines Ablaufes der eine lange Preheat- oder Dryphase hat.&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Status&amp;quot;&#039;&#039;&#039; - zeigt den aktuellen Zustand des Programms an (READY, START, WAITING, PAUSE, ...)&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;RESET&amp;quot;&#039;&#039;&#039; - setzt das (begonnene) Programm zurück. Beinhaltet neben dem Programmablauf auch das Zurücksetzen der graphischen Anzeige des Diagramms, etc.&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Startpunkt&amp;quot;&#039;&#039;&#039; - legt den ersten Punkt des Programmablaufes fest. &lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Wiederholungen&amp;quot;&#039;&#039;&#039; - ermöglicht das wiederholte Backen ohne das Programm händisch immer wieder neu starten zu müssen. Die Anzahl der Wiederholungen ist einstellbar (0 für unendlich viele) und es ist eine Wartezeit zwischen den Wiederholungen einstellbar. Alternativ kann eine Meldung nach jedem vollendeten Backvorgang abgegeben werden. Nach Bestätigung dieser wird die nächste Wiederholung ausgeführt.&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Pause&amp;quot;&#039;&#039;&#039; - Pauseneinstellungen. Hier sind Optionen wählbar was passieren soll, falls der Pausebutton betätigt wird:&lt;br /&gt;
** Pausezeit - gibt an wie lange die Pause dauern soll [s], danach fährt das Programm automatisch gemäß des gewählten Pausemodus fort. Für eine Pause ohne automatisches Fortfahren (Countdowntimer) &#039;0&#039; angeben.&lt;br /&gt;
** Pausemodus &amp;quot;aktuelle Temperatur halten, WarmUp, Fortsetzen&amp;quot; - Ofen hält die Temperatur (Zieltemperatur) des Zeitpunktes als der Pausebutton betätigt wurde. WarmUp bedeutet, dass nach dem Beenden des Pausemodus zunächst die Zieltemperatur wieder erreicht werden &#039;&#039;&#039;muss&#039;&#039;&#039; bevor der nächste Punkt angesteuert wird. Klingt paradox, wenn die Temperatur doch so und so gehalten wird, ist aber nicht so. Die Wahrscheinlichkeit ist hoch, dass der Pausemodus benutzt wird um die Ofentüre zu öffnen und Korrekturen an der Platine vorzunehmen. Unter Umständen ist die Heizung des Ofens jedoch nicht in der Lage den dadurch entstehenden Wärmeverlust zu kompensieren. Fährt das Programm dann sofort fort, so könnten evtl. kritische (Hoch-)Punkte des Lötprofils &amp;quot;unterfahren&amp;quot; werden. Dem wirkt WarmUp entgegen.&lt;br /&gt;
** Pausemodus &amp;quot;aktuelle Temperatur halten, Fortsetzen&amp;quot; - siehe oben, nur ohne WarmUp.&lt;br /&gt;
** Pausemodus &amp;quot;definierte Temperatur halten, WarmUp, Fortsetzen&amp;quot; - siehe oben. Statt der aktuellen Zieltemperatur wird jedoch nun im Pausemodus eine einzustellende Pausetemperatur gehalten. Mit WarmUp.&lt;br /&gt;
** Pausemodus &amp;quot;definierte Temperatur halten, Fortsetzen&amp;quot; - siehe oben, nur ohne WarmUp.&lt;br /&gt;
** &amp;quot;Pausetemperatur&amp;quot; - spezielle Temperatur die bei entsprechender Pausemoduswahl für die Dauer der Pause gehalten wird.&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Ende&amp;quot;&#039;&#039;&#039; - gibt an was am Ende eines durchlaufenen Reflow-Programms passieren soll. Ist der Wiederholungsmodus aktiviert, tritt dieses Ereignis erst nach Durchlauf aller Wiederholungen ein. Folgende Modi sind möglich:&lt;br /&gt;
** automatischer Reset - am Ende des Programms wird alles automatisch zurückgesetzt, alle Graphiken und Anzeigen gelöscht.&lt;br /&gt;
** manueller Reset - am Ende des Programms bleiben alle Anzeigen, Graphiken, etc erhalten und müssen vor Beginn eines neuen Reflowvorgangs händisch durch Klick auf &amp;quot;RESET&amp;quot; zurückgesetzt werden.&lt;br /&gt;
** Benutzermeldung - lässt eine Meldung erscheinen. Alle Anzeigen und Graphiken bleiben erhalten bis der Benutzer diese Meldung bestätigt. Mit Bestätigung dieser Meldung wird ein automatischer Reset vorgenommen.&lt;br /&gt;
&lt;br /&gt;
=== Loggen des Temperaturverlaufes ===&lt;br /&gt;
Es ist möglich jeden Backvorgang in eine CSV-Datei zu loggen. (Software- und PID-Einstellungen). Geloggte CSV-Dateien können eingelesen und im zentralen Temperatur-Zeit-Diagramm begutachtet werden. Ein Ist-Soll-Vergleich ist ebenso möglich wie die direkte Anzeige des Fehlers (&amp;quot;Ist minus Soll&amp;quot;). Dank CSV können die Daten auch mit anderen Programmen (Excel, etc.) weiterverarbeitet werden.&lt;br /&gt;
&lt;br /&gt;
== Ofen / Pizzaofen ==&lt;br /&gt;
=== Leistung und Volumen ===&lt;br /&gt;
=== Dämmung ===&lt;br /&gt;
=== Umluft ===&lt;br /&gt;
=== Bezugsquellen ===&lt;br /&gt;
=== Diskussionen im Forum ===&lt;br /&gt;
* Umfangreicher Thread u.A. Leistungsvermögen, Temperaturmessung und Dämmung [http://www.mikrocontroller.net/topic/270627]&lt;br /&gt;
&lt;br /&gt;
== FAQ ==&lt;br /&gt;
&lt;br /&gt;
* Q1: Ich habe einen PT100/PT1000 und möchte den anschließen. Geht das?&lt;br /&gt;
** A1: Ja natürlich. Dazu ist aber etwas externe Elektronik notwendig. Sowohl 2 ADC-Pins (mit 3V3 Betriebsspannung als fixe Referenzspannung), als auch die UART und SPI/I2C-Schnittstelle stehen zur freien Verfügung. Für PT100/PT1000 wird für vernünftige Messungen ohnehin eine Verstärkung (meist mit OPV) von Nöten sein. Da der PIC-interne ADC &amp;quot;nur&amp;quot; 10bit Auflösung bietet sollte ein externer 16bit ADC in Betracht gezogen werden um das Potential der PT100/PT1000 auszunutzen.&lt;br /&gt;
*Q2: Ich habe von günstigen Temperaturmessungen mit Dioden gehört. Geht das auch hier?&lt;br /&gt;
**A2: Ja. Die Vorwärtsspannung einer Diode verhält sich linear zur Sperrschichttemperatur. Diese Spannung (bei 25°C einer Si-Diode die bekannten 0,7V) kann mittels OPV verstärkt werden und auf einen Spannungsbereich von 0 ... 3V3 aufgebläht werden. Eine billige Lösung, auf Kosten der Genauigkeit. Doch eine Diode ist laut Datenblatt nur bis 150°C geeignet. Es ist also beim Löten mehr oder weniger Pfusch. Wenn ich schon eine Reflow-Steuerung baue, sollte ich doch nicht an ein paar Euro für eine gescheite Temperaturmessung sparen. Einige Anregungen vom Messgerätehersteller Keithley bzgl. der Halbleiterphysik mit interessanten Formeln [http://www.keithley.de/support/data?asset=50486]. Oder natürlich der Klassiker von Thomas Pfeifer [http://thomaspfeifer.net/backofen_smd_reflow.htm]. Oder ein Beitrag mit LT-Spice Simulation zum Thema [http://www.mikrocontroller.net/topic/270627#2833883].&lt;br /&gt;
* Q: God why ... ?&lt;br /&gt;
** A: Because we can !&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Verbesserungen Prototyp ===&lt;br /&gt;
* Bauteile weiter weg von Schraublöchern&lt;br /&gt;
* Dazu Kreis rund um Bohrung auf Bestückdruck&lt;br /&gt;
* Masseanbindung Quarz&lt;br /&gt;
* Klemmen weiter weg vom Rand&lt;br /&gt;
* Klemme und Sicherungshalter weiter auseinander, damit Schutzhabe draufpasst&lt;br /&gt;
* Bohrungen für Drossel 0,2mm größer machen&lt;br /&gt;
* Teilenummer für Conrad-USB-Buchse in BOM übernehmen.&lt;br /&gt;
* Stiftleiste P1  weiter weg von P2 und P4&lt;br /&gt;
* Varistoren näher an Klemmen platzieren&lt;br /&gt;
* Bestückvarianten defineren: 1. minimal 2. Standard 3. Externe Leds und Schalter.&lt;br /&gt;
* THT-Kondensatoren für Snubber - extra Footprint?&lt;br /&gt;
* Ggv. Stiftleistenbelegung für externe Leds so ändern, das keine extra Vorwiderstände notwendig sind.&lt;br /&gt;
* Wert der Drossel checken.(BOM Bestellnummer)&lt;br /&gt;
&lt;br /&gt;
=== Errata Projekt ===&lt;br /&gt;
* LED-Beschriftung passt nicht ganz (Schltplan Netlabel OUT1,2,3,4 sind durcheinander gekommen)&lt;br /&gt;
* Schaltplan UNL2003 fehlerhafte Zuordnung IN5,6,7 &amp;lt;&amp;gt; OUT7,6,5&lt;br /&gt;
* Brückengleichrichter / Optokoppler NICHT die im Schaltplan angegebenen Bestellnummern von Reichelt verwenden. BOM-Bauteile und Bestellnummern sind ok.&lt;br /&gt;
* Beim MOSFET R39 ist die Masseanbindung falsch. Es bestehen drei Möglichkeiten:&lt;br /&gt;
** 1. 0-R-Brücke für R39 einbauen und auf Strombegrenzung verzichten.&lt;br /&gt;
** 2. Eine Polyfuse mit Bauform 1206 einbauen. &lt;br /&gt;
** 3. Das kleine Leiterbahnstückchen zwischen R38 und R39 unterbrechen und statt dessen die Leiterbahn zwischen R39 und der Klemme mit der Durchkontaktierung bei R38 verbinden.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* Diskussion [http://www.mikrocontroller.net/topic/297217 Diskussion]&lt;br /&gt;
* Dextrel Nulldurchgang [http://www.dextrel.net/diyzerocrosser.htm Nulldurchgangschaltung]&lt;br /&gt;
* Gehäuse [http://www.hammondmfg.com/pdf/RM2015M.pdf Gehäuse Hammond]&lt;br /&gt;
* Bezugsquelle SOS Elektronik [http://www.soselectronic.com/?str=371&amp;amp;artnum=73595&amp;amp;name=hammond-ritec-rm2055m Gehäuse]&lt;br /&gt;
* Bezugsgquelle [http://www.druckerzubehoer.de/shop/product/catid/H-UNIVERSALZUBEHOER_HZB/subcatid/UNIVERSALZUBEHOER_GROUP1_HZB/productid/1727063-390722LA/site/1/lng/de_DE Mini USB Netzteil]&lt;br /&gt;
* Bezugsquelle Termoelement: TBD&lt;br /&gt;
* Bezugsquelle Steckdosen für Schalttafeleinbau: [http://www.artcase-shop.de/index.php?page=search&amp;amp;page_action=query&amp;amp;desc=on&amp;amp;sdesc=on&amp;amp;keywords=pce+105&amp;amp;x=0&amp;amp;y=0 Steckdosen]&lt;br /&gt;
* Bezugsquelle [http://www.schaeffer-ag.de/ Frontplatten]&lt;br /&gt;
 &lt;br /&gt;
[[Kategorie:Projekte]]&lt;br /&gt;
[[Kategorie:PIC]]&lt;br /&gt;
[[Kategorie:PIC-Boards]]&lt;br /&gt;
[[Kategorie:Platinen]]&lt;/div&gt;</summary>
		<author><name>Frankman</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=Reflow_Ofen_Steuerung&amp;diff=76114</id>
		<title>Reflow Ofen Steuerung</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=Reflow_Ofen_Steuerung&amp;diff=76114"/>
		<updated>2013-05-29T21:59:32Z</updated>

		<summary type="html">&lt;p&gt;Frankman: /* Motivation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Datei:RFB.jpg]]&lt;br /&gt;
== Einleitung ==&lt;br /&gt;
[[Datei:pcb.png|thumb|right|400px|unbestücktes PCB der Reflow-Ofen-Steuerung]]&lt;br /&gt;
Hier wird eine weitere Reflow-Ofen-Steuerung beschrieben.&lt;br /&gt;
=== Zum Nachbauen ===&lt;br /&gt;
* Spezifikation: [[Datei: Spec Reflow.pdf]]&lt;br /&gt;
* Schaltplan: [[Datei:Reflow.pdf]]&lt;br /&gt;
* Gerberdaten: [[Datei:Gerber Reflow.pdf]]&lt;br /&gt;
* Assemblydrawing: [[Datei:Assembly Reflow.pdf]] &lt;br /&gt;
* Altium-Files: [[Datei:Reflow.zip]]&lt;br /&gt;
* Stückliste als CSV: [[Datei:Reflow.csv]]&lt;br /&gt;
* Stückliste als Open Office: [[Datei:Reflow.ods]]&lt;br /&gt;
* PC Programm: TBD&lt;br /&gt;
* Sourcen PC-Programm: TBD&lt;br /&gt;
* PIC Programm (*.hex): TBD&lt;br /&gt;
* Sourcen Pic-Programm: TBD&lt;br /&gt;
&lt;br /&gt;
=== Motivation ===&lt;br /&gt;
Die Gründe, eine weitere Steuerung zu entwerfen, waren:&lt;br /&gt;
&lt;br /&gt;
# Die Möglichkeit, auch größere Öfen mit 2 Phasen betreiben zu können.&lt;br /&gt;
# Die Steuerung universell zu gestalten. Es sollte möglich sein, diese nicht nur zum Reflow löten zu verwenden....z.B:&lt;br /&gt;
- Temperatursteuerung für Klimakammer (Heizen, Kühlen)&lt;br /&gt;
- Dimmer mit USB&lt;br /&gt;
- Temperaturregler für ein Tisch-Fondue ( Temperatur halten)&lt;br /&gt;
- Drehzahlsteller mit USB&lt;br /&gt;
- Switchpack&lt;br /&gt;
&lt;br /&gt;
# Die Schaltung sollte in Altium entwickelt werden. (Warum kein Eagle??? Altium User wissen es.... :-)&lt;br /&gt;
# Die Schaltung sollte mit USB ausgestattet sein.&lt;br /&gt;
&lt;br /&gt;
=== Eigenschaften &amp;amp; Spezifikationen ===&lt;br /&gt;
* Temperaturmessung: bis zu 2x &#039;&#039;&#039;Thermoelement&#039;&#039;&#039; (K-Typ) mit MAX6675 (abgekündigt) oder Nachfolger MAX31855 (pin- aber nicht softwarekompatibel)&lt;br /&gt;
* &#039;&#039;&#039;Leistungsstufen&#039;&#039;&#039;: 3x voneinander unabhängige Triac 800V bei 25A, limitiert auf &#039;&#039;&#039;10A @ 250VAC&#039;&#039;&#039; (z.B. Oberhitze, Unterhitze, Umluft)&lt;br /&gt;
* &#039;&#039;&#039;Nulldurchgangserkennung&#039;&#039;&#039; ermöglicht Wellenpaket-, Phasenan- und abschnittssteuerung, galvanische Trennung selbiger&lt;br /&gt;
* 1x &#039;&#039;&#039; MOSFET-Ausgang&#039;&#039;&#039; PWM z.B. für 12V Lüfter, max. 55V 3,5A&lt;br /&gt;
* &#039;&#039;&#039;feste Programme&#039;&#039;&#039; im EEPROM über 2-Tasterbedienung und LEDs wähl- und ausführbar. &#039;&#039;&#039;PC-unabhängiger Betrieb&#039;&#039;&#039;. Beliebig viele Programme möglich, für die Auswahl stehen 4 benutzer-konfigurierbare LEDs zur Verfügung&lt;br /&gt;
* Betrieb am Computer für mehr Reflowprofile&lt;br /&gt;
* Mini-USB-Buchse zur Steuerung / Programmierung über GUI&lt;br /&gt;
* Günstiges passendes &#039;&#039;&#039;Gehäuse&#039;&#039;&#039;, alle LEDs und Taster auf Stiftleisten herausgeführt&lt;br /&gt;
* PID-Temperaturregler&lt;br /&gt;
* UART, SPI, I2C und 2x ADC auf Stiftleisten herausgeführt (-&amp;gt; Erweiterungen)&lt;br /&gt;
* Versorgung über USB (&amp;lt; 100mA), interne Versorgungsspannung 3,3V&lt;br /&gt;
* umfangreiche EMV-gerechte Entstörung für den Bedarfsfall&lt;br /&gt;
&lt;br /&gt;
== Technische Realisierung==&lt;br /&gt;
=== PIC18LF2550 Grundbeschaltung ===&lt;br /&gt;
[[Datei:osc_vs_vcc.png|thumb|right|200px|Taktraten und Versorgungsspannung PIC18LF2550 vs. PIC18LF2550, Datenblatt S. 370/438]]&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 3/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Hier kommt ein PIC18&#039;&#039;&#039;L&#039;&#039;&#039;F2550 zum Einsatz. Er verfügt über eine USB-Schnittstelle und ist für Betriebsspannungen von 2 ... 5,5V ausgelegt. Sein Verwandter PIC18F2550 (ohne L) ist nicht für Betriebsspannungen &amp;lt; 4,2V ausgelegt. Dies ist bei USB sowiesor nicht immer erfüllt und die Thermoelement ICs vertragen ohnehin keine 5V, daher wurde die Betriebsspannung auf 3,3V reduziert. Neben Standard-Decoupling (100nF Kerko pro Vcc-Vss-Pärchen) wurde das ICSP-Interface in alt bewährter Pinbelegung (PICKit1,2,3) angebracht. PGD und PGC sind nicht weiter beschaltet, MCRL wird in Standardbeschaltung als Resetpin verwendet. Der Resetschalter findet sich auf dem Top-Sheet (Schaltplan S. 1/22). Die Taktversorgung erfolgt zwingend über einen 24 MHz Quarz (-&amp;gt; USB). Man beachte diesbezüglich rechts stehende Grafik zu Taktraten und Versorgungsspannungen (Vdd bzw. auch Vcc genannt). Auch zu finden im Datenblatt des PICs auf Seite 370.&lt;br /&gt;
&lt;br /&gt;
=== PIC18LF2550 USB Beschaltung ===&lt;br /&gt;
[[Datei:usb_part.png|thumb|right|200px|PIC18(L)F2550&lt;br /&gt;
 Standard &lt;br /&gt;
USB-Beschaltung am PIC]]&lt;br /&gt;
[[Datei:usb_protect.png|thumb|right|200px|USB-Schutzbeschaltung und Mini-USB-Buchse]]&lt;br /&gt;
&lt;br /&gt;
Die Beschaltung der USB-Schnittstelle am PIC ist 1:1 aus dem Datenblatt übernommen. Zum Einsatz kommt eine Mini-USB-Buchse (J1).&lt;br /&gt;
Der Gedanke war: Erstens ein sehr preiswertes, fertiges Netzteil verwenden zu können, (ca. 3,67 € bei druckerzubehoer.de) und zweitens, die Steuerung auch mit dem PC / Laptop versorgen zu können.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 4/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
FER1,2 und C7 filtern den Schirm nach GND. Standardmäßig wird man hier wohl 0-Ohm-Widerstände einsetzen. Falls ein Besuch im EMV-Labor geplant ist, weicht man auf den Ferrit aus. C5 und C6 filtern das Signal zusammen mit der Common-Mode-DrosselL1. Die Drossel kann mit den 0-Ohm-Brücken R8 und R9 überbrückt (gespart) werden. IC2 ist als ESD-Schutz gedacht und kann ebenfalls bei ausgeprägten Kostenbewustsein gespart werden. Die Widerstände R6 und R7 dürfen NICHT bestückt werden. FER1,2, C5, IC2 müssen nicht zwingend bestückt werden. Die Bestückung wurde vorgehalten um im Problemfall einfache Abhilfe schaffen zu können.&lt;br /&gt;
&lt;br /&gt;
=== 3,3V Spannungsversorgung ===&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 2/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Die 3,3V Versorgungsspannung für die gesamte Platine wird aus V_USB mittels des LDO Spannungsreglers TOREX - XC6206P332MR abgeleitet. Günstig, SOT-23, klein, 2x 1µF Kondensatoren benötigt, 3,3V max. 250mA. Der hat auch einen sehr kleinen Ruhestrom.&lt;br /&gt;
&lt;br /&gt;
=== Taster ===&lt;br /&gt;
*Der Resettaster zieht den MCLR-Pin nach GND und löst damit den Reset aus. MCLR ist gem. der Standardbeschaltung mit einem 10k Pullup versehen.&lt;br /&gt;
*Die übrigen beiden Taster ziehen RA4 bzw. RB5 ebenfalls nach GND.&lt;br /&gt;
&lt;br /&gt;
=== LEDs + ULN2003L ===&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 11/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Um alle LEDs auf der Platine (3x Optotriac + 7x Status) ansteuern zu können wurde auf das 7fach Darlington-Array ULN2003L zurückgegriffen. Es dient desweiteren auch als &amp;quot;MOSFET-Treiber für Arme&amp;quot;. Alle LEDs werden von diesem Transistor-Array nach Masse geschaltet. Dient der Entlastung der PIC-Ausgänge. Und kostet ja auch nicht viel.&lt;br /&gt;
&lt;br /&gt;
=== MOSFET-Leistungsausgang ===&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 22/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Hier kommt der einfacher N-Kanal MOSFET (LogicLevel) PHT8N06LT zum Einsatz. Er wird über das ULN2003L Array getrieben und ermöglicht den Anschluss eines DC-Verbrauchers mit max. 55V bei 3,5A. Hier könnte beispielsweise ein PC-Lüfter zur Kühlung od. Umluft angeschlossen und über PWM geregelt/gesteuert werden. Ein Gatewiderstand von 100 Ohm ist zum Schutz des Treibers vorgesehen. Eine 0-Ohm-Brücke ist stattdessen aber auch möglich, wenn man eine höhere Leistung schalten möchte.Die Leiterbahnen sollten die 3A schon hergeben. Der 100 Ohm Widerstand bildet eine Stromquelle. Sobald der Strom durch den MOSFET und den Widerstand 33mA erreicht, sinkt UGS gegen 0 V. Folge: Der Mosfet sperrt ( und bleibt ganz....)&lt;br /&gt;
Es kann hier prinzipiell auch ein anderer Mosfet im SOT223-Gehäuse zum Einsatz kommen. Achten sollte man darauf, das der MOSFET schon bei 3,3V Ugs gut leiten sollte.&lt;br /&gt;
&lt;br /&gt;
=== Nulldurchgangserkennung ===&lt;br /&gt;
[[Datei:zerocross.png|thumb|right|200px|Nulldurchgangserkennung]]&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 5/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Die Nulldurchgangserkennung erfolgt nach einer sehr bekannten - jedoch ausgeklügelten - Schaltung.  [http://www.dextrel.net/diyzerocrosser.htm]&lt;br /&gt;
&lt;br /&gt;
ACHTUNG: DER IM SCHALTPLAN VERZEICHNETE OPTOKOPPLER und BRÜCKENGLEICHRICHTER VON REICHELT DARF KEINESFALLS VERWENDET WERDEN! Pinbelegung! Bitte den Optokoppler aus der Stückliste nehmen!&lt;br /&gt;
&lt;br /&gt;
Während einer Halbwelle wird C14 über R33 und R35 bzw. D5 geladen. Währenddessen ist T1 gesperrt. Sobald die Wechselspannung (L1-N über Spannungsteiler (R33+R35) / R34) kleiner ist als die Spannung über C14, steuert T1 durch. Dann entlädt sich C14 über den LED-Vorwiderstand R32. Der durch-steuernde Optokoppler zieht die Sync-Leitung nach GND. (Pullup Sync-Leitung = R31). Dies löst beim PIC auf INT2 einen Interrupt aus. &lt;br /&gt;
&lt;br /&gt;
Dieser Interrupt ermöglicht eine präzise Wellenpaket-, Phasenanschnittsteuerung je nach Bedarf. Das Schalten im Nulldurchgang bei der Wellenpaketsteuerung reduziert EMV-Störungen. Für Phasenanschnitt ist prinzipbedingt ohnehin eine Nulldurchgangserkennung notwendig. Außerdem liefert sie eine völlig ausreichend genaue Zeitbasis für alle Programmabläufe.&lt;br /&gt;
&lt;br /&gt;
=== Triac-Ausgänge + Snubber ===&lt;br /&gt;
[[Datei:triac.png|thumb|right|200px|Triac-Ausgangsbeschaltung]]&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 19,20,21/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Die Ansteuerung des eigentlichen Leistungstriacs BTA140-800 erfolgt über den Optotriac IS6005. Der Strom durch Letzteren wird durch R1x limitiert (Vorwiderstand). R2x und R5x limitieren wiederum den Strom durch den Optotriac. Wenn dieser zündet so folgt unmittelbar der &amp;quot;Leistungstriac&amp;quot; der dann die Last schaltet.&lt;br /&gt;
&lt;br /&gt;
S1x ist ein Sicherungshalter um die Lasten einzeln absichern zu können. Wert 10A Mittelträge.&lt;br /&gt;
&lt;br /&gt;
R3x, R4x, C3x bilden ein Snubber-Network, L1X verhindert eine zu schnelle Stromanstiegsgeschwindikeit damit der Triac nicht &amp;quot;von selbst&amp;quot; zündet. Weglassen äußert sich meist in einem fast nicht hörbaren Click. Damit zeigt einem dann der Triac, dass er ab jetzt für immer recht niederohmig geworden ist. Die Regelung der Temperatur braucht dann nicht mehr über den Prozessor erfolgen, sondern nur noch mit dem Ein-/Ausschalter..... :-)&lt;br /&gt;
&lt;br /&gt;
=== Thermoelemente (MAX6675/MAX31855)  ===&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 6,7/22&#039;&#039;&#039;&lt;br /&gt;
Der inzwischen abgekündigte MAX6675 bzw. sein ehrenwerter Nachfolger MAX31855 sind einfach zu handhabende Thermoelement-ICs mit Kaltstellenkompensation. Thermoelemente funktionieren durch das Verschweißen zweier verschiedener Legierungen (beim K-Typ Thermoelemnt Ni und CrNi). Durch den durch die Umgebungstemperatur bedingten Wärmefluss zwischen beiden entsteht ein elektrische Spannung. Diese wird von besagten ICs verstärkt und digitalisiert (ADC). Diese Spannung / Temperatur ist natürlich wieder relativ zur Umgebungstemperatur an der Kaltstelle (Kontaktierung der beiden Drähte mit dem Messinstrument). Daher messen diese ICs auch gleich die Umgebungstemperatur (Kaltstellenkompensation genannt) mit, verrechnen das und geben das Ergebnis auf der SPI-Schnittstelle aus. MAX6675 leistet 12bit also 0,25°C Auflösung (nicht Genauigkeit!) über einen Temperaturbereich von 0°C to +1024°C. Außerdem wird ein nicht/fehlerhaft angeschlossenes Thermoelement erkannt. Der Thermocouple-IC wird an die SPI-Schnittstelle des PICs angeschlossen (hier MSSP genannt). &lt;br /&gt;
&lt;br /&gt;
MAX6675 und MAX31855 scheinen entgegen der Adafruit-Information [http://www.adafruit.com/products/269] doch pinkompatibel zu sein - die Ansteuerung unterscheidet sich jedoch definitiv. (Zitat: &amp;quot;Now uses the MAX31855K instead of the MAX6675, so it can measure a wider temperature measurement range. Please note! the MAX31855 is not pin compatible or drop-in code compatible with the MAX6675. We do have an Arduino library for both chips but you&#039;ll need to adjust any existing MAX6675 designs for the mew MAX31855. The MAX6675 has been discontinued by Maxim.&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Es wurden 2 dieser ICs und damit 2 Temperaturmessstellen vorgesehen. Dies ermöglich die Messung für eine Regelung der Temperatur so wie eine zusätzliche Überwachung kritischer Bauteile (z.B. ICs oder LEDs). Die Minimalbestückung sieht einen MAX6675/MAX31855 vor. Die Auswahl in der Firmware erfolgt über einen der beiden GPIO-Pins RA5 oder RA0 via dem ChipSelect (CS) des MAX6675/MAX31855.&lt;br /&gt;
&lt;br /&gt;
Neben dem MAX6675/MAX31855 wurde ein Decoupling-Kondensator (C8x, Standard 100nF) so wie ein weiterer im Messpfad (C9x) zur Zwecken der Entstörung vorgeshen. C9x 100nF sollte nur bestückt werden wenn Probleme bei der Temperaturmessung entstehen (z.B. unrealstisch stark schwankende Werte).&lt;br /&gt;
&lt;br /&gt;
=== ADC, SPI, UART &amp;amp; I2C Stiftleiste ===&lt;br /&gt;
ADC, SPI, UART und I2C sind zu Zwecken der Kalibrierung / Erweiterung / Einstellung / Debugging auf Stiftleisten herausgeführt:&lt;br /&gt;
Ähnlichkeiten mit dem FTDI-USB-TTL-Kabel bzw. Arduino XXX Bla Bla Bla Schnittstellenkonverter sind natürlich rein zufällig.&lt;br /&gt;
&lt;br /&gt;
Die I2C-Schnittstelle wurde auf eine Stiftleiste geführt, um z.B. einem LM75 o.ä. anschließen zu können. Damit stehen zur Kalibrierung der Thermoelemente genaue Temperaturen zur Verfügung.&lt;br /&gt;
&lt;br /&gt;
Die Stiftleisten haben alle ein Raster von 2,54mm. So können Pin-Header, Wannenstecker oder ähnliches verwendet werden.&lt;br /&gt;
&lt;br /&gt;
Da ja viele Leute eigene Vorstellungen bezüglich der Frontplattengestaltung haben, wurden auch die Taster und LEDs auf Stiftleisten geführt.&lt;br /&gt;
&lt;br /&gt;
=== Kühlkörper ===&lt;br /&gt;
Da die Triacs der Steuerung für bis zu 10A pro Kanal ausgelegt sind, kann man auf die Kühlkörper nicht verzichten. Es fallen bei 10A bis zu 13 Watt Wärme pro Triac ab. Falls mann auf die Kühlkörper doch verzichten möchte, sollte man darauf achten, die Triacs mit dem Kopf nach unten einzubauen. Diese können sich dann bei Überlast ganz von selber auslöten.... :-)&lt;br /&gt;
&lt;br /&gt;
=== Gehäuse ===&lt;br /&gt;
Die Leiterplatte wurde für ein Gehäuse von Hammond entwickelt.&lt;br /&gt;
Das Gehäuse ist zwar keine Schönheit, aber doch recht preiswert.&lt;br /&gt;
Typenbezeichnung: RM2055M&lt;br /&gt;
&lt;br /&gt;
== Firmware PIC ==&lt;br /&gt;
Die Entwicklung der Firmware für den PIC18LF2550  geht mit MPlab 8 respektive dem C18 Compiler von Statten. MPlab ist kostenlos, der C18 Compiler bis auf die stärkste Optimierungsstufe ebenfalls. Die Quellen für die Firmware werden auch offengelegt.&lt;br /&gt;
=== Programmstruktur- und ablauf ===&lt;br /&gt;
Nach anfänglicher Initialisierung des PIC startet die Statemachine [http://http://www.mikrocontroller.net/articles/Statemachine] [http://http://de.wikipedia.org/wiki/Endlicher_Automat]. Neben ihr findet in der main-Funktion nur noch die Abfrage der beiden Bedientasten statt. Mit dem Tastendruck wird zum Zwecke der Entprellung ein Timer gestartet. Alles Andere (incl. PID-Regelung, Wellenpaket- bzw. Phasenan- und Phasenabschnittssteuerung und USB) ist interruptbasiert.&lt;br /&gt;
&lt;br /&gt;
=== Taktversorgung, Nulldurchgangserkennung und Zeitbasis ===&lt;br /&gt;
=== USB ===&lt;br /&gt;
=== SPI für MAX6675 ===&lt;br /&gt;
=== SPI für MAX31855 ===&lt;br /&gt;
&lt;br /&gt;
=== Wellenpaketsteuerung ===&lt;br /&gt;
=== Phasenanschnitt ===&lt;br /&gt;
&lt;br /&gt;
=== PWM für MOSFET ===&lt;br /&gt;
&lt;br /&gt;
== PC-Software (GUI) ==&lt;br /&gt;
[[Datei:gui_alpha.png|thumb|right|300px|Screenshot der GUI (noch Alpha) für den Reflow-Ofen-Controller]]&lt;br /&gt;
&lt;br /&gt;
Die GUI (englisch Graphical User Interface) ist der Einfachheit halber in VB.net programmiert und momentan noch im Alpha-Stadium. Auch hierfür liegen die Quellen später selbstverständlich offen.&lt;br /&gt;
&lt;br /&gt;
=== Funktionen und Modi ===&lt;br /&gt;
[[Datei:modi.png|thumb|right|400px|Auswahl der beschriebenen Modi durch Klick]]&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Ofen-Profil&amp;quot;&#039;&#039;&#039; - Es wird ein Programm (Temperaturkurve) aus dem EEPROM des Reflow-Ofens ausgeführt. Der Backvorgang kann mit der Software gesteuert (START, STOP, ...) und überwacht werden. Hierzu stehen Temperatur, Temperaturänderung, Heizleistung (Ober- und Unterhitze, Lüfter) so wie die graphische Darstellung im zentralen Diagramm zur Verfügung. Eingriffsmöglichkeiten, wie das Ändern der Temperaturkurve sind nicht vorgesehen. Dies soll ein reiner Überwachungs-Modus sein. Um die Temperaturkurve zu verändern zu können, sollte der Modus &amp;quot;PC-Profil&amp;quot; verwendet werden und die Temperaturkurve aus dem EEPROM importiert werden. Dann kann Selbige auch verändert und anschließend ausgeführt bzw. verändert in den EEPROM zurückgeschrieben werden. Dieser Modus stellt ein Äquivalent zur START/STOP-Tasten-Bedienung an der Platine dar und kann selbstverständlich parallel dazu genutzt werden. Die GUI also als Addon zum Stand-Alone-Betrieb.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;PC-Profil&amp;quot;&#039;&#039;&#039; - Es wird ein Programm (Temperaturkurve) ausgeführt welche zuvor am Computer erstellt / editiert wurde. In diesem Modus gibt der Computer Temperaturwerte vor, welche live über die USB-Schnittstelle zum PIC übertragen werden und mit dem dort integrierten PID-Regler ausgeführt werden. Das ermöglicht eine on-the-fly Veränderung der Temperaturkurve während des Backvorgangs. Temperaturkurven können aus Dateien oder dem EEPROM importiert und auch wieder exportiert werden. CSV-Dateien können ebenfalls importiert und exportiert werden. Die &amp;quot;Eingabe&amp;quot; der Temperaturkurve erfolgt entweder über Import (CSV/EEPROM), per Mausklick auf dem zentralen Diagramm oder im sog. DataGridView. Weiteres siehe Unterpunkt &amp;quot;Eingabe der Temperaturkurve (Reflowprofil)&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;manueller Ablauf&amp;quot;&#039;&#039;&#039; - In diesem Modus wird (im Gegensatz zu den oberen beiden Modi &amp;quot;Ofen-Profil&amp;quot; und &amp;quot;PC-Profil&amp;quot;) keine Temperatur geregelt. Hier wird die Leistung des Ofens in % eingestellt und gesteuert. Der PID-Regler ist nicht in Aktion. Die Temperatur, Temperaturänderung so wie der Temperaturverlauf werden selbstredend angezeigt bzw. im Diagramm dargestellt. Der Modus &amp;quot;manueller Ablauf&amp;quot; fährt ähnlich dem Modus &amp;quot;PC-Profil&amp;quot; die im DataGridView eingetragenen Leistungs-Zeit-Punkte ab. Für jeden Zeitpunkt ist eine Leistung vorgegeben. Die Eingabe erfolgt ähnlich wie unter &amp;quot;Eingabe der Temperaturkurve (Reflowprofil)&amp;quot; beschrieben. Nur eben, dass eine Leistung und keine Temperatur angegeben wird. Die Eingabe der Leistung kann nicht im Zeit-Temperatur-Diagramm erfolgen sondern mittels der Schieberegler oder direkt tabellarisch.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;manueller Modus&amp;quot;&#039;&#039;&#039; - Dieser Modus enthält 2 Submodi&lt;br /&gt;
** &amp;quot;manueller Leistungsmodus&amp;quot; - Auch in diesem Modus wird die Leistung gesteuert. Es wird keine Temperatur geregelt, der PID-Regler für die Temperatur ist nicht in Betrieb. Die Einstellung hier erfolgt über die drei Schieberegler oder über eine numerische Eingabe durch Klick auf die Leistungsangabe unter dem Schieberegler. Durch Klick auf die Texte &amp;quot;TOP&amp;quot;, &amp;quot;BOTTOM&amp;quot;, &amp;quot;FAN&amp;quot; (Oberhitze, Unterhitze, Lüfter) können selbige deaktiviert bzw. aktiviert werden. Auch in diesem Modus wird Temperatur, Temperaturänderung so wie der Temperaturverlauf dargestellt.&lt;br /&gt;
** &amp;quot;manueller Temperaturmodus&amp;quot; - Hier wird die Temperatur wieder mittels des Temperatur-PIDs geregelt. Die Temperatur wird entweder mittels Schieberegler (Ober- und Unterhitze-Regler sind jetzt gekoppelt) oder durch eine numerische Eingabe unterhalb der Schieberegler vorgegeben. Anzeige wie im &amp;quot;manuellen Leistungsmodus&amp;quot;. Der Lüfter kann unabhängig vom PID in seiner Leistung geregelt werden. Ein evtl. durch den Luftstrom verursachter Temperaturabfall wird vom PID selbstverständlich ausgeregelt (aus diesem Grunde ist es ja ein Regler).&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Programmieren&amp;quot;&#039;&#039;&#039; - Hier kann ein neues &#039;&#039;&#039;Temperatur&#039;&#039;&#039;-Programm für den EEPROM-Speicher des Ofens erstellt und editiert werden. Die Eingabemöglichkeiten sind unter &amp;quot;Eingabe der Temperaturkurve (Reflowprofil)&amp;quot; beschrieben. Dieser Modus ist zum reinen Programmieren des Ofens gedacht und ermöglicht keine weitere Steuerung oder Überwachung des Ofens.&lt;br /&gt;
&lt;br /&gt;
=== Eingabe der Temperaturkurve (Reflowprofil) ===&lt;br /&gt;
[[Datei:datagridview.png|thumb|right|400px|tabellarische Anzeige und Editiermöglichkeit der Temperaturkurve]]&lt;br /&gt;
Die Eingabe der Temperaturkurve erfolgt entweder über Import (CSV/EEPROM), per Mausklick auf dem zentralen Diagramm oder im sog. DataGridView (Excel-ähnliche Bedienung in tabellarischer Form). &lt;br /&gt;
&lt;br /&gt;
* CSV-Import + Export&lt;br /&gt;
* EEPROM-Import + Export&lt;br /&gt;
* Im rechts stehenden Screenshotbeispiel wird eine tabellarische Eingabeform mit einem DataGridView gezeigt: Die Temperatur (erster Temperaturpunkt = Punkt 0) von 100°C wird linear über einen Zeitraum von 0-30s verteilt. Bei 30s hat der Ofen die Temperatur von 100°C. Dafür setzt die Regelung die Oberhitze, die Unterhitze ein. Der Lüfter ist deaktiviert. In der Zeit von 30s bis 120s wird die Temperatur nun von 100°C auf 150°C linear angehoben. Von 120s bis 180s Backzeit steigt die Temperatur von 150°C auf 250°C. Von 180s bis 200s wird die Temperatur auf 280°C angehoben. Anschließend wird sie zwischen 200s und 220s auf 280°C gehalten (280°C@200s und 280°C@220s) um dann bis 240s wieder auf 250°C zu fallen. Bis zum Zeitpunkt 300s wird dann die Temperatur 30°C angestrebt. Zusätzlich ist der Lüfter nun aktiviert (soweit der Ofen eine Umluftfunktion besitzt). Bei Punkt 7 sind Ober- und Unterhitze deaktiviert nur noch der Lüfter kühlt. Da hier bei &amp;quot;Zeit[s]&amp;quot; die 0 eingetragen wird der Zustand (hier nur Lüfter an) für einen unendlich langen Zeitraum auf 0 gehalten. Also so lange wie das Programm aktiviert ist wird der Lüfter laufen. Natürlich könnte man hier auch z.B. 100°C und Zeitpunkt 0s eintragen. Dann würde der Ofen bis zum manuellen Beenden des Programms (klick auf STOP-Button oder Drücken des START/STOP-Tasters auf der Platine/Steuerung) 100°C halten.&lt;br /&gt;
* Alle Zellen des DataGridView sind editierbar (zur Veränderung der Temperatur, Zeitpunkt, ...)&lt;br /&gt;
* Direkter Klick auf das zentrale Temperatur-Zeit-Diagramm trägt den Zeitpunkt so wie die Temperatur unter dem Mauszeiger in die Tabelle (das DataGridView) ein. Die ausgewählte Zeile wird beschrieben oder überschrieben. Neue Zeilen (also Temperatur-Zeit-Punkte) können durch klick auf den &amp;quot;Plus-Button&amp;quot; hinzugefügt werden. Ebenso ist das Löschen oder Verschieben einer oder mehrerer Zeile gleichzeitig möglich.&lt;br /&gt;
&lt;br /&gt;
=== Beschreibung der Steuerungsmöglichkeiten ===&lt;br /&gt;
In Abhängigkeit des gewählten Modus bestehen einige Steuerungs-, Einstellungs- und Kontrollmöglichkeiten:&lt;br /&gt;
* &#039;&#039;&#039;Schieberegler&#039;&#039;&#039; für Temperatur od. Leistung (je nach Modus) für Oberhitze, Unterhitze und Lüfter. Je nach Hardwareausführung. &lt;br /&gt;
** Klick auf &amp;quot;TOP&amp;quot;, &amp;quot;BOTTOM&amp;quot; oder &amp;quot;FAN&amp;quot; aktiviert oder deaktiviert die entsprechende Funktion bzw. Hardware.&lt;br /&gt;
** Numerische Eingabe der Werte für die Schieberegler durch Klick auf die Anzeige unterhalb der Schieberegler. Werte können auch im deaktivierten Zustand angegeben werden. Die Übernahme erfolgt durch den &amp;quot;Aktivierungsklick&amp;quot; auf &amp;quot;TOP&amp;quot;, &amp;quot;BOTTOM&amp;quot; oder &amp;quot;FAN&amp;quot;&lt;br /&gt;
* &#039;&#039;&#039;T1, dT1, T2, dT2&#039;&#039;&#039; - Anzeige der gemessenen Temperatur so wie die momentane Temperaturänderung am jeweiligen Sensor. &lt;br /&gt;
* &#039;&#039;&#039;Bedienbuttons&#039;&#039;&#039;&lt;br /&gt;
** Play - Startet das Programm am angegebenen Startpunkt (siehe unten)&lt;br /&gt;
** Pause - Pausiert das Programm - weitere Pauseoptionen siehe unten&lt;br /&gt;
** Stop - Stopt den Programmablauf&lt;br /&gt;
** Vor / Zurück - Springt zwischen Temperaturpunkten hin und her. Dient zum überspringen oder zurückspringen zu gewissen Temperatur-Zeit-Punkten. Ermöglicht z.B. das Überspringen eines Ablaufes der eine lange Preheat- oder Dryphase hat.&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Status&amp;quot;&#039;&#039;&#039; - zeigt den aktuellen Zustand des Programms an (READY, START, WAITING, PAUSE, ...)&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;RESET&amp;quot;&#039;&#039;&#039; - setzt das (begonnene) Programm zurück. Beinhaltet neben dem Programmablauf auch das Zurücksetzen der graphischen Anzeige des Diagramms, etc.&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Startpunkt&amp;quot;&#039;&#039;&#039; - legt den ersten Punkt des Programmablaufes fest. &lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Wiederholungen&amp;quot;&#039;&#039;&#039; - ermöglicht das wiederholte Backen ohne das Programm händisch immer wieder neu starten zu müssen. Die Anzahl der Wiederholungen ist einstellbar (0 für unendlich viele) und es ist eine Wartezeit zwischen den Wiederholungen einstellbar. Alternativ kann eine Meldung nach jedem vollendeten Backvorgang abgegeben werden. Nach Bestätigung dieser wird die nächste Wiederholung ausgeführt.&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Pause&amp;quot;&#039;&#039;&#039; - Pauseneinstellungen. Hier sind Optionen wählbar was passieren soll, falls der Pausebutton betätigt wird:&lt;br /&gt;
** Pausezeit - gibt an wie lange die Pause dauern soll [s], danach fährt das Programm automatisch gemäß des gewählten Pausemodus fort. Für eine Pause ohne automatisches Fortfahren (Countdowntimer) &#039;0&#039; angeben.&lt;br /&gt;
** Pausemodus &amp;quot;aktuelle Temperatur halten, WarmUp, Fortsetzen&amp;quot; - Ofen hält die Temperatur (Zieltemperatur) des Zeitpunktes als der Pausebutton betätigt wurde. WarmUp bedeutet, dass nach dem Beenden des Pausemodus zunächst die Zieltemperatur wieder erreicht werden &#039;&#039;&#039;muss&#039;&#039;&#039; bevor der nächste Punkt angesteuert wird. Klingt paradox, wenn die Temperatur doch so und so gehalten wird, ist aber nicht so. Die Wahrscheinlichkeit ist hoch, dass der Pausemodus benutzt wird um die Ofentüre zu öffnen und Korrekturen an der Platine vorzunehmen. Unter Umständen ist die Heizung des Ofens jedoch nicht in der Lage den dadurch entstehenden Wärmeverlust zu kompensieren. Fährt das Programm dann sofort fort, so könnten evtl. kritische (Hoch-)Punkte des Lötprofils &amp;quot;unterfahren&amp;quot; werden. Dem wirkt WarmUp entgegen.&lt;br /&gt;
** Pausemodus &amp;quot;aktuelle Temperatur halten, Fortsetzen&amp;quot; - siehe oben, nur ohne WarmUp.&lt;br /&gt;
** Pausemodus &amp;quot;definierte Temperatur halten, WarmUp, Fortsetzen&amp;quot; - siehe oben. Statt der aktuellen Zieltemperatur wird jedoch nun im Pausemodus eine einzustellende Pausetemperatur gehalten. Mit WarmUp.&lt;br /&gt;
** Pausemodus &amp;quot;definierte Temperatur halten, Fortsetzen&amp;quot; - siehe oben, nur ohne WarmUp.&lt;br /&gt;
** &amp;quot;Pausetemperatur&amp;quot; - spezielle Temperatur die bei entsprechender Pausemoduswahl für die Dauer der Pause gehalten wird.&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Ende&amp;quot;&#039;&#039;&#039; - gibt an was am Ende eines durchlaufenen Reflow-Programms passieren soll. Ist der Wiederholungsmodus aktiviert, tritt dieses Ereignis erst nach Durchlauf aller Wiederholungen ein. Folgende Modi sind möglich:&lt;br /&gt;
** automatischer Reset - am Ende des Programms wird alles automatisch zurückgesetzt, alle Graphiken und Anzeigen gelöscht.&lt;br /&gt;
** manueller Reset - am Ende des Programms bleiben alle Anzeigen, Graphiken, etc erhalten und müssen vor Beginn eines neuen Reflowvorgangs händisch durch Klick auf &amp;quot;RESET&amp;quot; zurückgesetzt werden.&lt;br /&gt;
** Benutzermeldung - lässt eine Meldung erscheinen. Alle Anzeigen und Graphiken bleiben erhalten bis der Benutzer diese Meldung bestätigt. Mit Bestätigung dieser Meldung wird ein automatischer Reset vorgenommen.&lt;br /&gt;
&lt;br /&gt;
=== Loggen des Temperaturverlaufes ===&lt;br /&gt;
Es ist möglich jeden Backvorgang in eine CSV-Datei zu loggen. (Software- und PID-Einstellungen). Geloggte CSV-Dateien können eingelesen und im zentralen Temperatur-Zeit-Diagramm begutachtet werden. Ein Ist-Soll-Vergleich ist ebenso möglich wie die direkte Anzeige des Fehlers (&amp;quot;Ist minus Soll&amp;quot;). Dank CSV können die Daten auch mit anderen Programmen (Excel, etc.) weiterverarbeitet werden.&lt;br /&gt;
&lt;br /&gt;
== Ofen / Pizzaofen ==&lt;br /&gt;
=== Leistung und Volumen ===&lt;br /&gt;
=== Dämmung ===&lt;br /&gt;
=== Umluft ===&lt;br /&gt;
=== Bezugsquellen ===&lt;br /&gt;
=== Diskussionen im Forum ===&lt;br /&gt;
* Umfangreicher Thread u.A. Leistungsvermögen, Temperaturmessung und Dämmung [http://www.mikrocontroller.net/topic/270627]&lt;br /&gt;
&lt;br /&gt;
== FAQ ==&lt;br /&gt;
&lt;br /&gt;
* Q1: Ich habe einen PT100/PT1000 und möchte den anschließen. Geht das?&lt;br /&gt;
** A1: Ja natürlich. Dazu ist aber etwas externe Elektronik notwendig. Sowohl 2 ADC-Pins (mit 3V3 Betriebsspannung als fixe Referenzspannung), als auch die UART und SPI/I2C-Schnittstelle stehen zur freien Verfügung. Für PT100/PT1000 wird für vernünftige Messungen ohnehin eine Verstärkung (meist mit OPV) von Nöten sein. Da der PIC-interne ADC &amp;quot;nur&amp;quot; 10bit Auflösung bietet sollte ein externer 16bit ADC in Betracht gezogen werden um das Potential der PT100/PT1000 auszunutzen.&lt;br /&gt;
*Q2: Ich habe von günstigen Temperaturmessungen mit Dioden gehört. Geht das auch hier?&lt;br /&gt;
**A2: Ja. Die Vorwärtsspannung einer Diode verhält sich linear zur Sperrschichttemperatur. Diese Spannung (bei 25°C einer Si-Diode die bekannten 0,7V) kann mittels OPV verstärkt werden und auf einen Spannungsbereich von 0 ... 3V3 aufgebläht werden. Eine billige Lösung, auf Kosten der Genauigkeit. Doch eine Diode ist laut Datenblatt nur bis 150°C geeignet. Es ist also beim Löten mehr oder weniger Pfusch. Wenn ich schon eine Reflow-Steuerung baue, sollte ich doch nicht an ein paar Euro für eine gescheite Temperaturmessung sparen. Einige Anregungen vom Messgerätehersteller Keithley bzgl. der Halbleiterphysik mit interessanten Formeln [http://www.keithley.de/support/data?asset=50486]. Oder natürlich der Klassiker von Thomas Pfeifer [http://thomaspfeifer.net/backofen_smd_reflow.htm]. Oder ein Beitrag mit LT-Spice Simulation zum Thema [http://www.mikrocontroller.net/topic/270627#2833883].&lt;br /&gt;
* Q: God why ... ?&lt;br /&gt;
** A: Because we can !&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Verbesserungen Prototyp ===&lt;br /&gt;
* Bauteile weiter weg von Schraublöchern&lt;br /&gt;
* Dazu Kreis rund um Bohrung auf Bestückdruck&lt;br /&gt;
* Masseanbindung Quarz&lt;br /&gt;
* Klemmen weiter weg vom Rand&lt;br /&gt;
* Klemme und Sicherungshalter weiter auseinander, damit Schutzhabe draufpasst&lt;br /&gt;
* Bohrungen für Drossel 0,2mm größer machen&lt;br /&gt;
* Teilenummer für Conrad-USB-Buchse in BOM übernehmen.&lt;br /&gt;
* Stiftleiste P1  weiter weg von P2 und P4&lt;br /&gt;
* Varistoren näher an Klemmen platzieren&lt;br /&gt;
* Bestückvarianten defineren: 1. minimal 2. Standard 3. Externe Leds und Schalter.&lt;br /&gt;
* THT-Kondensatoren für Snubber - extra Footprint?&lt;br /&gt;
* Ggv. Stiftleistenbelegung für externe Leds so ändern, das keine extra Vorwiderstände notwendig sind.&lt;br /&gt;
* Wert der Drossel checken.(BOM Bestellnummer)&lt;br /&gt;
&lt;br /&gt;
=== Errata Projekt ===&lt;br /&gt;
* LED-Beschriftung passt nicht ganz (Schltplan Netlabel OUT1,2,3,4 sind durcheinander gekommen)&lt;br /&gt;
* Schaltplan UNL2003 fehlerhafte Zuordnung IN5,6,7 &amp;lt;&amp;gt; OUT7,6,5&lt;br /&gt;
* Brückengleichrichter / Optokoppler NICHT die im Schaltplan angegebenen Bestellnummern von Reichelt verwenden. BOM-Bauteile und Bestellnummern sind ok.&lt;br /&gt;
* Beim MOSFET R39 ist die Masseanbindung falsch. Es bestehen drei Möglichkeiten:&lt;br /&gt;
** 1. 0-R-Brücke für R39 einbauen und auf Strombegrenzung verzichten.&lt;br /&gt;
** 2. Eine Polyfuse mit Bauform 1206 einbauen. &lt;br /&gt;
** 3. Das kleine Leiterbahnstückchen zwischen R38 und R39 unterbrechen und statt dessen die Leiterbahn zwischen R39 und der Klemme mit der Durchkontaktierung bei R38 verbinden.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* Diskussion [http://www.mikrocontroller.net/topic/297217 Diskussion]&lt;br /&gt;
* Dextrel Nulldurchgang [http://www.dextrel.net/diyzerocrosser.htm Nulldurchgangschaltung]&lt;br /&gt;
* Gehäuse [http://www.hammondmfg.com/pdf/RM2015M.pdf Gehäuse Hammond]&lt;br /&gt;
* Bezugsquelle SOS Elektronik [http://www.soselectronic.com/?str=371&amp;amp;artnum=73595&amp;amp;name=hammond-ritec-rm2055m Gehäuse]&lt;br /&gt;
* Bezugsgquelle [http://www.druckerzubehoer.de/shop/product/catid/H-UNIVERSALZUBEHOER_HZB/subcatid/UNIVERSALZUBEHOER_GROUP1_HZB/productid/1727063-390722LA/site/1/lng/de_DE Mini USB Netzteil]&lt;br /&gt;
* Bezugsquelle Termoelement: TBD&lt;br /&gt;
* Bezugsquelle Steckdosen für Schalttafeleinbau: [http://www.artcase-shop.de/index.php?page=search&amp;amp;page_action=query&amp;amp;desc=on&amp;amp;sdesc=on&amp;amp;keywords=pce+105&amp;amp;x=0&amp;amp;y=0 Steckdosen]&lt;br /&gt;
* Bezugsquelle [http://www.schaeffer-ag.de/ Frontplatten]&lt;br /&gt;
 &lt;br /&gt;
[[Kategorie:Projekte]]&lt;br /&gt;
[[Kategorie:PIC]]&lt;br /&gt;
[[Kategorie:PIC-Boards]]&lt;br /&gt;
[[Kategorie:Platinen]]&lt;/div&gt;</summary>
		<author><name>Frankman</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=Reflow_Ofen_Steuerung&amp;diff=76113</id>
		<title>Reflow Ofen Steuerung</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=Reflow_Ofen_Steuerung&amp;diff=76113"/>
		<updated>2013-05-29T21:58:27Z</updated>

		<summary type="html">&lt;p&gt;Frankman: /* Motivation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Datei:RFB.jpg]]&lt;br /&gt;
== Einleitung ==&lt;br /&gt;
[[Datei:pcb.png|thumb|right|400px|unbestücktes PCB der Reflow-Ofen-Steuerung]]&lt;br /&gt;
Hier wird eine weitere Reflow-Ofen-Steuerung beschrieben.&lt;br /&gt;
=== Zum Nachbauen ===&lt;br /&gt;
* Spezifikation: [[Datei: Spec Reflow.pdf]]&lt;br /&gt;
* Schaltplan: [[Datei:Reflow.pdf]]&lt;br /&gt;
* Gerberdaten: [[Datei:Gerber Reflow.pdf]]&lt;br /&gt;
* Assemblydrawing: [[Datei:Assembly Reflow.pdf]] &lt;br /&gt;
* Altium-Files: [[Datei:Reflow.zip]]&lt;br /&gt;
* Stückliste als CSV: [[Datei:Reflow.csv]]&lt;br /&gt;
* Stückliste als Open Office: [[Datei:Reflow.ods]]&lt;br /&gt;
* PC Programm: TBD&lt;br /&gt;
* Sourcen PC-Programm: TBD&lt;br /&gt;
* PIC Programm (*.hex): TBD&lt;br /&gt;
* Sourcen Pic-Programm: TBD&lt;br /&gt;
&lt;br /&gt;
=== Motivation ===&lt;br /&gt;
Die Gründe, eine weitere Steuerung zu entwerfen, waren:&lt;br /&gt;
&lt;br /&gt;
# Die Möglichkeit, auch größere Öfen mit 2 Phasen betreiben zu können.&lt;br /&gt;
# Die Steuerung universell zu gestalten. Es sollte möglich sein, diese nicht nur zum Reflow löten zu verwenden....z.B:&lt;br /&gt;
## Temperatursteuerung für Klimakammer (Heizen, Kühlen)&lt;br /&gt;
## Dimmer mit USB&lt;br /&gt;
## Temperaturregler für ein Tisch-Fondue ( Temperatur halten)&lt;br /&gt;
## Drehzahlsteller mit USB&lt;br /&gt;
## Switchpack&lt;br /&gt;
&lt;br /&gt;
# Die Schaltung sollte in Altium entwickelt werden. (Warum kein Eagle??? Altium User wissen es.... :-)&lt;br /&gt;
# Die Schaltung sollte mit USB ausgestattet sein.&lt;br /&gt;
&lt;br /&gt;
=== Eigenschaften &amp;amp; Spezifikationen ===&lt;br /&gt;
* Temperaturmessung: bis zu 2x &#039;&#039;&#039;Thermoelement&#039;&#039;&#039; (K-Typ) mit MAX6675 (abgekündigt) oder Nachfolger MAX31855 (pin- aber nicht softwarekompatibel)&lt;br /&gt;
* &#039;&#039;&#039;Leistungsstufen&#039;&#039;&#039;: 3x voneinander unabhängige Triac 800V bei 25A, limitiert auf &#039;&#039;&#039;10A @ 250VAC&#039;&#039;&#039; (z.B. Oberhitze, Unterhitze, Umluft)&lt;br /&gt;
* &#039;&#039;&#039;Nulldurchgangserkennung&#039;&#039;&#039; ermöglicht Wellenpaket-, Phasenan- und abschnittssteuerung, galvanische Trennung selbiger&lt;br /&gt;
* 1x &#039;&#039;&#039; MOSFET-Ausgang&#039;&#039;&#039; PWM z.B. für 12V Lüfter, max. 55V 3,5A&lt;br /&gt;
* &#039;&#039;&#039;feste Programme&#039;&#039;&#039; im EEPROM über 2-Tasterbedienung und LEDs wähl- und ausführbar. &#039;&#039;&#039;PC-unabhängiger Betrieb&#039;&#039;&#039;. Beliebig viele Programme möglich, für die Auswahl stehen 4 benutzer-konfigurierbare LEDs zur Verfügung&lt;br /&gt;
* Betrieb am Computer für mehr Reflowprofile&lt;br /&gt;
* Mini-USB-Buchse zur Steuerung / Programmierung über GUI&lt;br /&gt;
* Günstiges passendes &#039;&#039;&#039;Gehäuse&#039;&#039;&#039;, alle LEDs und Taster auf Stiftleisten herausgeführt&lt;br /&gt;
* PID-Temperaturregler&lt;br /&gt;
* UART, SPI, I2C und 2x ADC auf Stiftleisten herausgeführt (-&amp;gt; Erweiterungen)&lt;br /&gt;
* Versorgung über USB (&amp;lt; 100mA), interne Versorgungsspannung 3,3V&lt;br /&gt;
* umfangreiche EMV-gerechte Entstörung für den Bedarfsfall&lt;br /&gt;
&lt;br /&gt;
== Technische Realisierung==&lt;br /&gt;
=== PIC18LF2550 Grundbeschaltung ===&lt;br /&gt;
[[Datei:osc_vs_vcc.png|thumb|right|200px|Taktraten und Versorgungsspannung PIC18LF2550 vs. PIC18LF2550, Datenblatt S. 370/438]]&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 3/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Hier kommt ein PIC18&#039;&#039;&#039;L&#039;&#039;&#039;F2550 zum Einsatz. Er verfügt über eine USB-Schnittstelle und ist für Betriebsspannungen von 2 ... 5,5V ausgelegt. Sein Verwandter PIC18F2550 (ohne L) ist nicht für Betriebsspannungen &amp;lt; 4,2V ausgelegt. Dies ist bei USB sowiesor nicht immer erfüllt und die Thermoelement ICs vertragen ohnehin keine 5V, daher wurde die Betriebsspannung auf 3,3V reduziert. Neben Standard-Decoupling (100nF Kerko pro Vcc-Vss-Pärchen) wurde das ICSP-Interface in alt bewährter Pinbelegung (PICKit1,2,3) angebracht. PGD und PGC sind nicht weiter beschaltet, MCRL wird in Standardbeschaltung als Resetpin verwendet. Der Resetschalter findet sich auf dem Top-Sheet (Schaltplan S. 1/22). Die Taktversorgung erfolgt zwingend über einen 24 MHz Quarz (-&amp;gt; USB). Man beachte diesbezüglich rechts stehende Grafik zu Taktraten und Versorgungsspannungen (Vdd bzw. auch Vcc genannt). Auch zu finden im Datenblatt des PICs auf Seite 370.&lt;br /&gt;
&lt;br /&gt;
=== PIC18LF2550 USB Beschaltung ===&lt;br /&gt;
[[Datei:usb_part.png|thumb|right|200px|PIC18(L)F2550&lt;br /&gt;
 Standard &lt;br /&gt;
USB-Beschaltung am PIC]]&lt;br /&gt;
[[Datei:usb_protect.png|thumb|right|200px|USB-Schutzbeschaltung und Mini-USB-Buchse]]&lt;br /&gt;
&lt;br /&gt;
Die Beschaltung der USB-Schnittstelle am PIC ist 1:1 aus dem Datenblatt übernommen. Zum Einsatz kommt eine Mini-USB-Buchse (J1).&lt;br /&gt;
Der Gedanke war: Erstens ein sehr preiswertes, fertiges Netzteil verwenden zu können, (ca. 3,67 € bei druckerzubehoer.de) und zweitens, die Steuerung auch mit dem PC / Laptop versorgen zu können.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 4/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
FER1,2 und C7 filtern den Schirm nach GND. Standardmäßig wird man hier wohl 0-Ohm-Widerstände einsetzen. Falls ein Besuch im EMV-Labor geplant ist, weicht man auf den Ferrit aus. C5 und C6 filtern das Signal zusammen mit der Common-Mode-DrosselL1. Die Drossel kann mit den 0-Ohm-Brücken R8 und R9 überbrückt (gespart) werden. IC2 ist als ESD-Schutz gedacht und kann ebenfalls bei ausgeprägten Kostenbewustsein gespart werden. Die Widerstände R6 und R7 dürfen NICHT bestückt werden. FER1,2, C5, IC2 müssen nicht zwingend bestückt werden. Die Bestückung wurde vorgehalten um im Problemfall einfache Abhilfe schaffen zu können.&lt;br /&gt;
&lt;br /&gt;
=== 3,3V Spannungsversorgung ===&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 2/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Die 3,3V Versorgungsspannung für die gesamte Platine wird aus V_USB mittels des LDO Spannungsreglers TOREX - XC6206P332MR abgeleitet. Günstig, SOT-23, klein, 2x 1µF Kondensatoren benötigt, 3,3V max. 250mA. Der hat auch einen sehr kleinen Ruhestrom.&lt;br /&gt;
&lt;br /&gt;
=== Taster ===&lt;br /&gt;
*Der Resettaster zieht den MCLR-Pin nach GND und löst damit den Reset aus. MCLR ist gem. der Standardbeschaltung mit einem 10k Pullup versehen.&lt;br /&gt;
*Die übrigen beiden Taster ziehen RA4 bzw. RB5 ebenfalls nach GND.&lt;br /&gt;
&lt;br /&gt;
=== LEDs + ULN2003L ===&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 11/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Um alle LEDs auf der Platine (3x Optotriac + 7x Status) ansteuern zu können wurde auf das 7fach Darlington-Array ULN2003L zurückgegriffen. Es dient desweiteren auch als &amp;quot;MOSFET-Treiber für Arme&amp;quot;. Alle LEDs werden von diesem Transistor-Array nach Masse geschaltet. Dient der Entlastung der PIC-Ausgänge. Und kostet ja auch nicht viel.&lt;br /&gt;
&lt;br /&gt;
=== MOSFET-Leistungsausgang ===&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 22/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Hier kommt der einfacher N-Kanal MOSFET (LogicLevel) PHT8N06LT zum Einsatz. Er wird über das ULN2003L Array getrieben und ermöglicht den Anschluss eines DC-Verbrauchers mit max. 55V bei 3,5A. Hier könnte beispielsweise ein PC-Lüfter zur Kühlung od. Umluft angeschlossen und über PWM geregelt/gesteuert werden. Ein Gatewiderstand von 100 Ohm ist zum Schutz des Treibers vorgesehen. Eine 0-Ohm-Brücke ist stattdessen aber auch möglich, wenn man eine höhere Leistung schalten möchte.Die Leiterbahnen sollten die 3A schon hergeben. Der 100 Ohm Widerstand bildet eine Stromquelle. Sobald der Strom durch den MOSFET und den Widerstand 33mA erreicht, sinkt UGS gegen 0 V. Folge: Der Mosfet sperrt ( und bleibt ganz....)&lt;br /&gt;
Es kann hier prinzipiell auch ein anderer Mosfet im SOT223-Gehäuse zum Einsatz kommen. Achten sollte man darauf, das der MOSFET schon bei 3,3V Ugs gut leiten sollte.&lt;br /&gt;
&lt;br /&gt;
=== Nulldurchgangserkennung ===&lt;br /&gt;
[[Datei:zerocross.png|thumb|right|200px|Nulldurchgangserkennung]]&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 5/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Die Nulldurchgangserkennung erfolgt nach einer sehr bekannten - jedoch ausgeklügelten - Schaltung.  [http://www.dextrel.net/diyzerocrosser.htm]&lt;br /&gt;
&lt;br /&gt;
ACHTUNG: DER IM SCHALTPLAN VERZEICHNETE OPTOKOPPLER und BRÜCKENGLEICHRICHTER VON REICHELT DARF KEINESFALLS VERWENDET WERDEN! Pinbelegung! Bitte den Optokoppler aus der Stückliste nehmen!&lt;br /&gt;
&lt;br /&gt;
Während einer Halbwelle wird C14 über R33 und R35 bzw. D5 geladen. Währenddessen ist T1 gesperrt. Sobald die Wechselspannung (L1-N über Spannungsteiler (R33+R35) / R34) kleiner ist als die Spannung über C14, steuert T1 durch. Dann entlädt sich C14 über den LED-Vorwiderstand R32. Der durch-steuernde Optokoppler zieht die Sync-Leitung nach GND. (Pullup Sync-Leitung = R31). Dies löst beim PIC auf INT2 einen Interrupt aus. &lt;br /&gt;
&lt;br /&gt;
Dieser Interrupt ermöglicht eine präzise Wellenpaket-, Phasenanschnittsteuerung je nach Bedarf. Das Schalten im Nulldurchgang bei der Wellenpaketsteuerung reduziert EMV-Störungen. Für Phasenanschnitt ist prinzipbedingt ohnehin eine Nulldurchgangserkennung notwendig. Außerdem liefert sie eine völlig ausreichend genaue Zeitbasis für alle Programmabläufe.&lt;br /&gt;
&lt;br /&gt;
=== Triac-Ausgänge + Snubber ===&lt;br /&gt;
[[Datei:triac.png|thumb|right|200px|Triac-Ausgangsbeschaltung]]&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 19,20,21/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Die Ansteuerung des eigentlichen Leistungstriacs BTA140-800 erfolgt über den Optotriac IS6005. Der Strom durch Letzteren wird durch R1x limitiert (Vorwiderstand). R2x und R5x limitieren wiederum den Strom durch den Optotriac. Wenn dieser zündet so folgt unmittelbar der &amp;quot;Leistungstriac&amp;quot; der dann die Last schaltet.&lt;br /&gt;
&lt;br /&gt;
S1x ist ein Sicherungshalter um die Lasten einzeln absichern zu können. Wert 10A Mittelträge.&lt;br /&gt;
&lt;br /&gt;
R3x, R4x, C3x bilden ein Snubber-Network, L1X verhindert eine zu schnelle Stromanstiegsgeschwindikeit damit der Triac nicht &amp;quot;von selbst&amp;quot; zündet. Weglassen äußert sich meist in einem fast nicht hörbaren Click. Damit zeigt einem dann der Triac, dass er ab jetzt für immer recht niederohmig geworden ist. Die Regelung der Temperatur braucht dann nicht mehr über den Prozessor erfolgen, sondern nur noch mit dem Ein-/Ausschalter..... :-)&lt;br /&gt;
&lt;br /&gt;
=== Thermoelemente (MAX6675/MAX31855)  ===&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 6,7/22&#039;&#039;&#039;&lt;br /&gt;
Der inzwischen abgekündigte MAX6675 bzw. sein ehrenwerter Nachfolger MAX31855 sind einfach zu handhabende Thermoelement-ICs mit Kaltstellenkompensation. Thermoelemente funktionieren durch das Verschweißen zweier verschiedener Legierungen (beim K-Typ Thermoelemnt Ni und CrNi). Durch den durch die Umgebungstemperatur bedingten Wärmefluss zwischen beiden entsteht ein elektrische Spannung. Diese wird von besagten ICs verstärkt und digitalisiert (ADC). Diese Spannung / Temperatur ist natürlich wieder relativ zur Umgebungstemperatur an der Kaltstelle (Kontaktierung der beiden Drähte mit dem Messinstrument). Daher messen diese ICs auch gleich die Umgebungstemperatur (Kaltstellenkompensation genannt) mit, verrechnen das und geben das Ergebnis auf der SPI-Schnittstelle aus. MAX6675 leistet 12bit also 0,25°C Auflösung (nicht Genauigkeit!) über einen Temperaturbereich von 0°C to +1024°C. Außerdem wird ein nicht/fehlerhaft angeschlossenes Thermoelement erkannt. Der Thermocouple-IC wird an die SPI-Schnittstelle des PICs angeschlossen (hier MSSP genannt). &lt;br /&gt;
&lt;br /&gt;
MAX6675 und MAX31855 scheinen entgegen der Adafruit-Information [http://www.adafruit.com/products/269] doch pinkompatibel zu sein - die Ansteuerung unterscheidet sich jedoch definitiv. (Zitat: &amp;quot;Now uses the MAX31855K instead of the MAX6675, so it can measure a wider temperature measurement range. Please note! the MAX31855 is not pin compatible or drop-in code compatible with the MAX6675. We do have an Arduino library for both chips but you&#039;ll need to adjust any existing MAX6675 designs for the mew MAX31855. The MAX6675 has been discontinued by Maxim.&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Es wurden 2 dieser ICs und damit 2 Temperaturmessstellen vorgesehen. Dies ermöglich die Messung für eine Regelung der Temperatur so wie eine zusätzliche Überwachung kritischer Bauteile (z.B. ICs oder LEDs). Die Minimalbestückung sieht einen MAX6675/MAX31855 vor. Die Auswahl in der Firmware erfolgt über einen der beiden GPIO-Pins RA5 oder RA0 via dem ChipSelect (CS) des MAX6675/MAX31855.&lt;br /&gt;
&lt;br /&gt;
Neben dem MAX6675/MAX31855 wurde ein Decoupling-Kondensator (C8x, Standard 100nF) so wie ein weiterer im Messpfad (C9x) zur Zwecken der Entstörung vorgeshen. C9x 100nF sollte nur bestückt werden wenn Probleme bei der Temperaturmessung entstehen (z.B. unrealstisch stark schwankende Werte).&lt;br /&gt;
&lt;br /&gt;
=== ADC, SPI, UART &amp;amp; I2C Stiftleiste ===&lt;br /&gt;
ADC, SPI, UART und I2C sind zu Zwecken der Kalibrierung / Erweiterung / Einstellung / Debugging auf Stiftleisten herausgeführt:&lt;br /&gt;
Ähnlichkeiten mit dem FTDI-USB-TTL-Kabel bzw. Arduino XXX Bla Bla Bla Schnittstellenkonverter sind natürlich rein zufällig.&lt;br /&gt;
&lt;br /&gt;
Die I2C-Schnittstelle wurde auf eine Stiftleiste geführt, um z.B. einem LM75 o.ä. anschließen zu können. Damit stehen zur Kalibrierung der Thermoelemente genaue Temperaturen zur Verfügung.&lt;br /&gt;
&lt;br /&gt;
Die Stiftleisten haben alle ein Raster von 2,54mm. So können Pin-Header, Wannenstecker oder ähnliches verwendet werden.&lt;br /&gt;
&lt;br /&gt;
Da ja viele Leute eigene Vorstellungen bezüglich der Frontplattengestaltung haben, wurden auch die Taster und LEDs auf Stiftleisten geführt.&lt;br /&gt;
&lt;br /&gt;
=== Kühlkörper ===&lt;br /&gt;
Da die Triacs der Steuerung für bis zu 10A pro Kanal ausgelegt sind, kann man auf die Kühlkörper nicht verzichten. Es fallen bei 10A bis zu 13 Watt Wärme pro Triac ab. Falls mann auf die Kühlkörper doch verzichten möchte, sollte man darauf achten, die Triacs mit dem Kopf nach unten einzubauen. Diese können sich dann bei Überlast ganz von selber auslöten.... :-)&lt;br /&gt;
&lt;br /&gt;
=== Gehäuse ===&lt;br /&gt;
Die Leiterplatte wurde für ein Gehäuse von Hammond entwickelt.&lt;br /&gt;
Das Gehäuse ist zwar keine Schönheit, aber doch recht preiswert.&lt;br /&gt;
Typenbezeichnung: RM2055M&lt;br /&gt;
&lt;br /&gt;
== Firmware PIC ==&lt;br /&gt;
Die Entwicklung der Firmware für den PIC18LF2550  geht mit MPlab 8 respektive dem C18 Compiler von Statten. MPlab ist kostenlos, der C18 Compiler bis auf die stärkste Optimierungsstufe ebenfalls. Die Quellen für die Firmware werden auch offengelegt.&lt;br /&gt;
=== Programmstruktur- und ablauf ===&lt;br /&gt;
Nach anfänglicher Initialisierung des PIC startet die Statemachine [http://http://www.mikrocontroller.net/articles/Statemachine] [http://http://de.wikipedia.org/wiki/Endlicher_Automat]. Neben ihr findet in der main-Funktion nur noch die Abfrage der beiden Bedientasten statt. Mit dem Tastendruck wird zum Zwecke der Entprellung ein Timer gestartet. Alles Andere (incl. PID-Regelung, Wellenpaket- bzw. Phasenan- und Phasenabschnittssteuerung und USB) ist interruptbasiert.&lt;br /&gt;
&lt;br /&gt;
=== Taktversorgung, Nulldurchgangserkennung und Zeitbasis ===&lt;br /&gt;
=== USB ===&lt;br /&gt;
=== SPI für MAX6675 ===&lt;br /&gt;
=== SPI für MAX31855 ===&lt;br /&gt;
&lt;br /&gt;
=== Wellenpaketsteuerung ===&lt;br /&gt;
=== Phasenanschnitt ===&lt;br /&gt;
&lt;br /&gt;
=== PWM für MOSFET ===&lt;br /&gt;
&lt;br /&gt;
== PC-Software (GUI) ==&lt;br /&gt;
[[Datei:gui_alpha.png|thumb|right|300px|Screenshot der GUI (noch Alpha) für den Reflow-Ofen-Controller]]&lt;br /&gt;
&lt;br /&gt;
Die GUI (englisch Graphical User Interface) ist der Einfachheit halber in VB.net programmiert und momentan noch im Alpha-Stadium. Auch hierfür liegen die Quellen später selbstverständlich offen.&lt;br /&gt;
&lt;br /&gt;
=== Funktionen und Modi ===&lt;br /&gt;
[[Datei:modi.png|thumb|right|400px|Auswahl der beschriebenen Modi durch Klick]]&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Ofen-Profil&amp;quot;&#039;&#039;&#039; - Es wird ein Programm (Temperaturkurve) aus dem EEPROM des Reflow-Ofens ausgeführt. Der Backvorgang kann mit der Software gesteuert (START, STOP, ...) und überwacht werden. Hierzu stehen Temperatur, Temperaturänderung, Heizleistung (Ober- und Unterhitze, Lüfter) so wie die graphische Darstellung im zentralen Diagramm zur Verfügung. Eingriffsmöglichkeiten, wie das Ändern der Temperaturkurve sind nicht vorgesehen. Dies soll ein reiner Überwachungs-Modus sein. Um die Temperaturkurve zu verändern zu können, sollte der Modus &amp;quot;PC-Profil&amp;quot; verwendet werden und die Temperaturkurve aus dem EEPROM importiert werden. Dann kann Selbige auch verändert und anschließend ausgeführt bzw. verändert in den EEPROM zurückgeschrieben werden. Dieser Modus stellt ein Äquivalent zur START/STOP-Tasten-Bedienung an der Platine dar und kann selbstverständlich parallel dazu genutzt werden. Die GUI also als Addon zum Stand-Alone-Betrieb.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;PC-Profil&amp;quot;&#039;&#039;&#039; - Es wird ein Programm (Temperaturkurve) ausgeführt welche zuvor am Computer erstellt / editiert wurde. In diesem Modus gibt der Computer Temperaturwerte vor, welche live über die USB-Schnittstelle zum PIC übertragen werden und mit dem dort integrierten PID-Regler ausgeführt werden. Das ermöglicht eine on-the-fly Veränderung der Temperaturkurve während des Backvorgangs. Temperaturkurven können aus Dateien oder dem EEPROM importiert und auch wieder exportiert werden. CSV-Dateien können ebenfalls importiert und exportiert werden. Die &amp;quot;Eingabe&amp;quot; der Temperaturkurve erfolgt entweder über Import (CSV/EEPROM), per Mausklick auf dem zentralen Diagramm oder im sog. DataGridView. Weiteres siehe Unterpunkt &amp;quot;Eingabe der Temperaturkurve (Reflowprofil)&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;manueller Ablauf&amp;quot;&#039;&#039;&#039; - In diesem Modus wird (im Gegensatz zu den oberen beiden Modi &amp;quot;Ofen-Profil&amp;quot; und &amp;quot;PC-Profil&amp;quot;) keine Temperatur geregelt. Hier wird die Leistung des Ofens in % eingestellt und gesteuert. Der PID-Regler ist nicht in Aktion. Die Temperatur, Temperaturänderung so wie der Temperaturverlauf werden selbstredend angezeigt bzw. im Diagramm dargestellt. Der Modus &amp;quot;manueller Ablauf&amp;quot; fährt ähnlich dem Modus &amp;quot;PC-Profil&amp;quot; die im DataGridView eingetragenen Leistungs-Zeit-Punkte ab. Für jeden Zeitpunkt ist eine Leistung vorgegeben. Die Eingabe erfolgt ähnlich wie unter &amp;quot;Eingabe der Temperaturkurve (Reflowprofil)&amp;quot; beschrieben. Nur eben, dass eine Leistung und keine Temperatur angegeben wird. Die Eingabe der Leistung kann nicht im Zeit-Temperatur-Diagramm erfolgen sondern mittels der Schieberegler oder direkt tabellarisch.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;manueller Modus&amp;quot;&#039;&#039;&#039; - Dieser Modus enthält 2 Submodi&lt;br /&gt;
** &amp;quot;manueller Leistungsmodus&amp;quot; - Auch in diesem Modus wird die Leistung gesteuert. Es wird keine Temperatur geregelt, der PID-Regler für die Temperatur ist nicht in Betrieb. Die Einstellung hier erfolgt über die drei Schieberegler oder über eine numerische Eingabe durch Klick auf die Leistungsangabe unter dem Schieberegler. Durch Klick auf die Texte &amp;quot;TOP&amp;quot;, &amp;quot;BOTTOM&amp;quot;, &amp;quot;FAN&amp;quot; (Oberhitze, Unterhitze, Lüfter) können selbige deaktiviert bzw. aktiviert werden. Auch in diesem Modus wird Temperatur, Temperaturänderung so wie der Temperaturverlauf dargestellt.&lt;br /&gt;
** &amp;quot;manueller Temperaturmodus&amp;quot; - Hier wird die Temperatur wieder mittels des Temperatur-PIDs geregelt. Die Temperatur wird entweder mittels Schieberegler (Ober- und Unterhitze-Regler sind jetzt gekoppelt) oder durch eine numerische Eingabe unterhalb der Schieberegler vorgegeben. Anzeige wie im &amp;quot;manuellen Leistungsmodus&amp;quot;. Der Lüfter kann unabhängig vom PID in seiner Leistung geregelt werden. Ein evtl. durch den Luftstrom verursachter Temperaturabfall wird vom PID selbstverständlich ausgeregelt (aus diesem Grunde ist es ja ein Regler).&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Programmieren&amp;quot;&#039;&#039;&#039; - Hier kann ein neues &#039;&#039;&#039;Temperatur&#039;&#039;&#039;-Programm für den EEPROM-Speicher des Ofens erstellt und editiert werden. Die Eingabemöglichkeiten sind unter &amp;quot;Eingabe der Temperaturkurve (Reflowprofil)&amp;quot; beschrieben. Dieser Modus ist zum reinen Programmieren des Ofens gedacht und ermöglicht keine weitere Steuerung oder Überwachung des Ofens.&lt;br /&gt;
&lt;br /&gt;
=== Eingabe der Temperaturkurve (Reflowprofil) ===&lt;br /&gt;
[[Datei:datagridview.png|thumb|right|400px|tabellarische Anzeige und Editiermöglichkeit der Temperaturkurve]]&lt;br /&gt;
Die Eingabe der Temperaturkurve erfolgt entweder über Import (CSV/EEPROM), per Mausklick auf dem zentralen Diagramm oder im sog. DataGridView (Excel-ähnliche Bedienung in tabellarischer Form). &lt;br /&gt;
&lt;br /&gt;
* CSV-Import + Export&lt;br /&gt;
* EEPROM-Import + Export&lt;br /&gt;
* Im rechts stehenden Screenshotbeispiel wird eine tabellarische Eingabeform mit einem DataGridView gezeigt: Die Temperatur (erster Temperaturpunkt = Punkt 0) von 100°C wird linear über einen Zeitraum von 0-30s verteilt. Bei 30s hat der Ofen die Temperatur von 100°C. Dafür setzt die Regelung die Oberhitze, die Unterhitze ein. Der Lüfter ist deaktiviert. In der Zeit von 30s bis 120s wird die Temperatur nun von 100°C auf 150°C linear angehoben. Von 120s bis 180s Backzeit steigt die Temperatur von 150°C auf 250°C. Von 180s bis 200s wird die Temperatur auf 280°C angehoben. Anschließend wird sie zwischen 200s und 220s auf 280°C gehalten (280°C@200s und 280°C@220s) um dann bis 240s wieder auf 250°C zu fallen. Bis zum Zeitpunkt 300s wird dann die Temperatur 30°C angestrebt. Zusätzlich ist der Lüfter nun aktiviert (soweit der Ofen eine Umluftfunktion besitzt). Bei Punkt 7 sind Ober- und Unterhitze deaktiviert nur noch der Lüfter kühlt. Da hier bei &amp;quot;Zeit[s]&amp;quot; die 0 eingetragen wird der Zustand (hier nur Lüfter an) für einen unendlich langen Zeitraum auf 0 gehalten. Also so lange wie das Programm aktiviert ist wird der Lüfter laufen. Natürlich könnte man hier auch z.B. 100°C und Zeitpunkt 0s eintragen. Dann würde der Ofen bis zum manuellen Beenden des Programms (klick auf STOP-Button oder Drücken des START/STOP-Tasters auf der Platine/Steuerung) 100°C halten.&lt;br /&gt;
* Alle Zellen des DataGridView sind editierbar (zur Veränderung der Temperatur, Zeitpunkt, ...)&lt;br /&gt;
* Direkter Klick auf das zentrale Temperatur-Zeit-Diagramm trägt den Zeitpunkt so wie die Temperatur unter dem Mauszeiger in die Tabelle (das DataGridView) ein. Die ausgewählte Zeile wird beschrieben oder überschrieben. Neue Zeilen (also Temperatur-Zeit-Punkte) können durch klick auf den &amp;quot;Plus-Button&amp;quot; hinzugefügt werden. Ebenso ist das Löschen oder Verschieben einer oder mehrerer Zeile gleichzeitig möglich.&lt;br /&gt;
&lt;br /&gt;
=== Beschreibung der Steuerungsmöglichkeiten ===&lt;br /&gt;
In Abhängigkeit des gewählten Modus bestehen einige Steuerungs-, Einstellungs- und Kontrollmöglichkeiten:&lt;br /&gt;
* &#039;&#039;&#039;Schieberegler&#039;&#039;&#039; für Temperatur od. Leistung (je nach Modus) für Oberhitze, Unterhitze und Lüfter. Je nach Hardwareausführung. &lt;br /&gt;
** Klick auf &amp;quot;TOP&amp;quot;, &amp;quot;BOTTOM&amp;quot; oder &amp;quot;FAN&amp;quot; aktiviert oder deaktiviert die entsprechende Funktion bzw. Hardware.&lt;br /&gt;
** Numerische Eingabe der Werte für die Schieberegler durch Klick auf die Anzeige unterhalb der Schieberegler. Werte können auch im deaktivierten Zustand angegeben werden. Die Übernahme erfolgt durch den &amp;quot;Aktivierungsklick&amp;quot; auf &amp;quot;TOP&amp;quot;, &amp;quot;BOTTOM&amp;quot; oder &amp;quot;FAN&amp;quot;&lt;br /&gt;
* &#039;&#039;&#039;T1, dT1, T2, dT2&#039;&#039;&#039; - Anzeige der gemessenen Temperatur so wie die momentane Temperaturänderung am jeweiligen Sensor. &lt;br /&gt;
* &#039;&#039;&#039;Bedienbuttons&#039;&#039;&#039;&lt;br /&gt;
** Play - Startet das Programm am angegebenen Startpunkt (siehe unten)&lt;br /&gt;
** Pause - Pausiert das Programm - weitere Pauseoptionen siehe unten&lt;br /&gt;
** Stop - Stopt den Programmablauf&lt;br /&gt;
** Vor / Zurück - Springt zwischen Temperaturpunkten hin und her. Dient zum überspringen oder zurückspringen zu gewissen Temperatur-Zeit-Punkten. Ermöglicht z.B. das Überspringen eines Ablaufes der eine lange Preheat- oder Dryphase hat.&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Status&amp;quot;&#039;&#039;&#039; - zeigt den aktuellen Zustand des Programms an (READY, START, WAITING, PAUSE, ...)&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;RESET&amp;quot;&#039;&#039;&#039; - setzt das (begonnene) Programm zurück. Beinhaltet neben dem Programmablauf auch das Zurücksetzen der graphischen Anzeige des Diagramms, etc.&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Startpunkt&amp;quot;&#039;&#039;&#039; - legt den ersten Punkt des Programmablaufes fest. &lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Wiederholungen&amp;quot;&#039;&#039;&#039; - ermöglicht das wiederholte Backen ohne das Programm händisch immer wieder neu starten zu müssen. Die Anzahl der Wiederholungen ist einstellbar (0 für unendlich viele) und es ist eine Wartezeit zwischen den Wiederholungen einstellbar. Alternativ kann eine Meldung nach jedem vollendeten Backvorgang abgegeben werden. Nach Bestätigung dieser wird die nächste Wiederholung ausgeführt.&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Pause&amp;quot;&#039;&#039;&#039; - Pauseneinstellungen. Hier sind Optionen wählbar was passieren soll, falls der Pausebutton betätigt wird:&lt;br /&gt;
** Pausezeit - gibt an wie lange die Pause dauern soll [s], danach fährt das Programm automatisch gemäß des gewählten Pausemodus fort. Für eine Pause ohne automatisches Fortfahren (Countdowntimer) &#039;0&#039; angeben.&lt;br /&gt;
** Pausemodus &amp;quot;aktuelle Temperatur halten, WarmUp, Fortsetzen&amp;quot; - Ofen hält die Temperatur (Zieltemperatur) des Zeitpunktes als der Pausebutton betätigt wurde. WarmUp bedeutet, dass nach dem Beenden des Pausemodus zunächst die Zieltemperatur wieder erreicht werden &#039;&#039;&#039;muss&#039;&#039;&#039; bevor der nächste Punkt angesteuert wird. Klingt paradox, wenn die Temperatur doch so und so gehalten wird, ist aber nicht so. Die Wahrscheinlichkeit ist hoch, dass der Pausemodus benutzt wird um die Ofentüre zu öffnen und Korrekturen an der Platine vorzunehmen. Unter Umständen ist die Heizung des Ofens jedoch nicht in der Lage den dadurch entstehenden Wärmeverlust zu kompensieren. Fährt das Programm dann sofort fort, so könnten evtl. kritische (Hoch-)Punkte des Lötprofils &amp;quot;unterfahren&amp;quot; werden. Dem wirkt WarmUp entgegen.&lt;br /&gt;
** Pausemodus &amp;quot;aktuelle Temperatur halten, Fortsetzen&amp;quot; - siehe oben, nur ohne WarmUp.&lt;br /&gt;
** Pausemodus &amp;quot;definierte Temperatur halten, WarmUp, Fortsetzen&amp;quot; - siehe oben. Statt der aktuellen Zieltemperatur wird jedoch nun im Pausemodus eine einzustellende Pausetemperatur gehalten. Mit WarmUp.&lt;br /&gt;
** Pausemodus &amp;quot;definierte Temperatur halten, Fortsetzen&amp;quot; - siehe oben, nur ohne WarmUp.&lt;br /&gt;
** &amp;quot;Pausetemperatur&amp;quot; - spezielle Temperatur die bei entsprechender Pausemoduswahl für die Dauer der Pause gehalten wird.&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Ende&amp;quot;&#039;&#039;&#039; - gibt an was am Ende eines durchlaufenen Reflow-Programms passieren soll. Ist der Wiederholungsmodus aktiviert, tritt dieses Ereignis erst nach Durchlauf aller Wiederholungen ein. Folgende Modi sind möglich:&lt;br /&gt;
** automatischer Reset - am Ende des Programms wird alles automatisch zurückgesetzt, alle Graphiken und Anzeigen gelöscht.&lt;br /&gt;
** manueller Reset - am Ende des Programms bleiben alle Anzeigen, Graphiken, etc erhalten und müssen vor Beginn eines neuen Reflowvorgangs händisch durch Klick auf &amp;quot;RESET&amp;quot; zurückgesetzt werden.&lt;br /&gt;
** Benutzermeldung - lässt eine Meldung erscheinen. Alle Anzeigen und Graphiken bleiben erhalten bis der Benutzer diese Meldung bestätigt. Mit Bestätigung dieser Meldung wird ein automatischer Reset vorgenommen.&lt;br /&gt;
&lt;br /&gt;
=== Loggen des Temperaturverlaufes ===&lt;br /&gt;
Es ist möglich jeden Backvorgang in eine CSV-Datei zu loggen. (Software- und PID-Einstellungen). Geloggte CSV-Dateien können eingelesen und im zentralen Temperatur-Zeit-Diagramm begutachtet werden. Ein Ist-Soll-Vergleich ist ebenso möglich wie die direkte Anzeige des Fehlers (&amp;quot;Ist minus Soll&amp;quot;). Dank CSV können die Daten auch mit anderen Programmen (Excel, etc.) weiterverarbeitet werden.&lt;br /&gt;
&lt;br /&gt;
== Ofen / Pizzaofen ==&lt;br /&gt;
=== Leistung und Volumen ===&lt;br /&gt;
=== Dämmung ===&lt;br /&gt;
=== Umluft ===&lt;br /&gt;
=== Bezugsquellen ===&lt;br /&gt;
=== Diskussionen im Forum ===&lt;br /&gt;
* Umfangreicher Thread u.A. Leistungsvermögen, Temperaturmessung und Dämmung [http://www.mikrocontroller.net/topic/270627]&lt;br /&gt;
&lt;br /&gt;
== FAQ ==&lt;br /&gt;
&lt;br /&gt;
* Q1: Ich habe einen PT100/PT1000 und möchte den anschließen. Geht das?&lt;br /&gt;
** A1: Ja natürlich. Dazu ist aber etwas externe Elektronik notwendig. Sowohl 2 ADC-Pins (mit 3V3 Betriebsspannung als fixe Referenzspannung), als auch die UART und SPI/I2C-Schnittstelle stehen zur freien Verfügung. Für PT100/PT1000 wird für vernünftige Messungen ohnehin eine Verstärkung (meist mit OPV) von Nöten sein. Da der PIC-interne ADC &amp;quot;nur&amp;quot; 10bit Auflösung bietet sollte ein externer 16bit ADC in Betracht gezogen werden um das Potential der PT100/PT1000 auszunutzen.&lt;br /&gt;
*Q2: Ich habe von günstigen Temperaturmessungen mit Dioden gehört. Geht das auch hier?&lt;br /&gt;
**A2: Ja. Die Vorwärtsspannung einer Diode verhält sich linear zur Sperrschichttemperatur. Diese Spannung (bei 25°C einer Si-Diode die bekannten 0,7V) kann mittels OPV verstärkt werden und auf einen Spannungsbereich von 0 ... 3V3 aufgebläht werden. Eine billige Lösung, auf Kosten der Genauigkeit. Doch eine Diode ist laut Datenblatt nur bis 150°C geeignet. Es ist also beim Löten mehr oder weniger Pfusch. Wenn ich schon eine Reflow-Steuerung baue, sollte ich doch nicht an ein paar Euro für eine gescheite Temperaturmessung sparen. Einige Anregungen vom Messgerätehersteller Keithley bzgl. der Halbleiterphysik mit interessanten Formeln [http://www.keithley.de/support/data?asset=50486]. Oder natürlich der Klassiker von Thomas Pfeifer [http://thomaspfeifer.net/backofen_smd_reflow.htm]. Oder ein Beitrag mit LT-Spice Simulation zum Thema [http://www.mikrocontroller.net/topic/270627#2833883].&lt;br /&gt;
* Q: God why ... ?&lt;br /&gt;
** A: Because we can !&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Verbesserungen Prototyp ===&lt;br /&gt;
* Bauteile weiter weg von Schraublöchern&lt;br /&gt;
* Dazu Kreis rund um Bohrung auf Bestückdruck&lt;br /&gt;
* Masseanbindung Quarz&lt;br /&gt;
* Klemmen weiter weg vom Rand&lt;br /&gt;
* Klemme und Sicherungshalter weiter auseinander, damit Schutzhabe draufpasst&lt;br /&gt;
* Bohrungen für Drossel 0,2mm größer machen&lt;br /&gt;
* Teilenummer für Conrad-USB-Buchse in BOM übernehmen.&lt;br /&gt;
* Stiftleiste P1  weiter weg von P2 und P4&lt;br /&gt;
* Varistoren näher an Klemmen platzieren&lt;br /&gt;
* Bestückvarianten defineren: 1. minimal 2. Standard 3. Externe Leds und Schalter.&lt;br /&gt;
* THT-Kondensatoren für Snubber - extra Footprint?&lt;br /&gt;
* Ggv. Stiftleistenbelegung für externe Leds so ändern, das keine extra Vorwiderstände notwendig sind.&lt;br /&gt;
* Wert der Drossel checken.(BOM Bestellnummer)&lt;br /&gt;
&lt;br /&gt;
=== Errata Projekt ===&lt;br /&gt;
* LED-Beschriftung passt nicht ganz (Schltplan Netlabel OUT1,2,3,4 sind durcheinander gekommen)&lt;br /&gt;
* Schaltplan UNL2003 fehlerhafte Zuordnung IN5,6,7 &amp;lt;&amp;gt; OUT7,6,5&lt;br /&gt;
* Brückengleichrichter / Optokoppler NICHT die im Schaltplan angegebenen Bestellnummern von Reichelt verwenden. BOM-Bauteile und Bestellnummern sind ok.&lt;br /&gt;
* Beim MOSFET R39 ist die Masseanbindung falsch. Es bestehen drei Möglichkeiten:&lt;br /&gt;
** 1. 0-R-Brücke für R39 einbauen und auf Strombegrenzung verzichten.&lt;br /&gt;
** 2. Eine Polyfuse mit Bauform 1206 einbauen. &lt;br /&gt;
** 3. Das kleine Leiterbahnstückchen zwischen R38 und R39 unterbrechen und statt dessen die Leiterbahn zwischen R39 und der Klemme mit der Durchkontaktierung bei R38 verbinden.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* Diskussion [http://www.mikrocontroller.net/topic/297217 Diskussion]&lt;br /&gt;
* Dextrel Nulldurchgang [http://www.dextrel.net/diyzerocrosser.htm Nulldurchgangschaltung]&lt;br /&gt;
* Gehäuse [http://www.hammondmfg.com/pdf/RM2015M.pdf Gehäuse Hammond]&lt;br /&gt;
* Bezugsquelle SOS Elektronik [http://www.soselectronic.com/?str=371&amp;amp;artnum=73595&amp;amp;name=hammond-ritec-rm2055m Gehäuse]&lt;br /&gt;
* Bezugsgquelle [http://www.druckerzubehoer.de/shop/product/catid/H-UNIVERSALZUBEHOER_HZB/subcatid/UNIVERSALZUBEHOER_GROUP1_HZB/productid/1727063-390722LA/site/1/lng/de_DE Mini USB Netzteil]&lt;br /&gt;
* Bezugsquelle Termoelement: TBD&lt;br /&gt;
* Bezugsquelle Steckdosen für Schalttafeleinbau: [http://www.artcase-shop.de/index.php?page=search&amp;amp;page_action=query&amp;amp;desc=on&amp;amp;sdesc=on&amp;amp;keywords=pce+105&amp;amp;x=0&amp;amp;y=0 Steckdosen]&lt;br /&gt;
* Bezugsquelle [http://www.schaeffer-ag.de/ Frontplatten]&lt;br /&gt;
 &lt;br /&gt;
[[Kategorie:Projekte]]&lt;br /&gt;
[[Kategorie:PIC]]&lt;br /&gt;
[[Kategorie:PIC-Boards]]&lt;br /&gt;
[[Kategorie:Platinen]]&lt;/div&gt;</summary>
		<author><name>Frankman</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=Reflow_Ofen_Steuerung&amp;diff=76112</id>
		<title>Reflow Ofen Steuerung</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=Reflow_Ofen_Steuerung&amp;diff=76112"/>
		<updated>2013-05-29T21:57:31Z</updated>

		<summary type="html">&lt;p&gt;Frankman: /* Motivation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Datei:RFB.jpg]]&lt;br /&gt;
== Einleitung ==&lt;br /&gt;
[[Datei:pcb.png|thumb|right|400px|unbestücktes PCB der Reflow-Ofen-Steuerung]]&lt;br /&gt;
Hier wird eine weitere Reflow-Ofen-Steuerung beschrieben.&lt;br /&gt;
=== Zum Nachbauen ===&lt;br /&gt;
* Spezifikation: [[Datei: Spec Reflow.pdf]]&lt;br /&gt;
* Schaltplan: [[Datei:Reflow.pdf]]&lt;br /&gt;
* Gerberdaten: [[Datei:Gerber Reflow.pdf]]&lt;br /&gt;
* Assemblydrawing: [[Datei:Assembly Reflow.pdf]] &lt;br /&gt;
* Altium-Files: [[Datei:Reflow.zip]]&lt;br /&gt;
* Stückliste als CSV: [[Datei:Reflow.csv]]&lt;br /&gt;
* Stückliste als Open Office: [[Datei:Reflow.ods]]&lt;br /&gt;
* PC Programm: TBD&lt;br /&gt;
* Sourcen PC-Programm: TBD&lt;br /&gt;
* PIC Programm (*.hex): TBD&lt;br /&gt;
* Sourcen Pic-Programm: TBD&lt;br /&gt;
&lt;br /&gt;
=== Motivation ===&lt;br /&gt;
Die Gründe, eine weitere Steuerung zu entwerfen, waren:&lt;br /&gt;
&lt;br /&gt;
# Die Möglichkeit, auch größere Öfen mit 2 Phasen betreiben zu können.&lt;br /&gt;
# Die Steuerung universell zu gestalten. Es sollte möglich sein, diese nicht nur zum Reflow löten zu verwenden....z.B:&lt;br /&gt;
** Temperatursteuerung für Klimakammer (Heizen, Kühlen)&lt;br /&gt;
** Dimmer mit USB&lt;br /&gt;
** Temperaturregler für ein Tisch-Fondue ( Temperatur halten)&lt;br /&gt;
** Drehzahlsteller mit USB&lt;br /&gt;
** Switchpack&lt;br /&gt;
&lt;br /&gt;
# Die Schaltung sollte in Altium entwickelt werden. (Warum kein Eagle??? Altium User wissen es.... :-)&lt;br /&gt;
# Die Schaltung sollte mit USB ausgestattet sein.&lt;br /&gt;
&lt;br /&gt;
=== Eigenschaften &amp;amp; Spezifikationen ===&lt;br /&gt;
* Temperaturmessung: bis zu 2x &#039;&#039;&#039;Thermoelement&#039;&#039;&#039; (K-Typ) mit MAX6675 (abgekündigt) oder Nachfolger MAX31855 (pin- aber nicht softwarekompatibel)&lt;br /&gt;
* &#039;&#039;&#039;Leistungsstufen&#039;&#039;&#039;: 3x voneinander unabhängige Triac 800V bei 25A, limitiert auf &#039;&#039;&#039;10A @ 250VAC&#039;&#039;&#039; (z.B. Oberhitze, Unterhitze, Umluft)&lt;br /&gt;
* &#039;&#039;&#039;Nulldurchgangserkennung&#039;&#039;&#039; ermöglicht Wellenpaket-, Phasenan- und abschnittssteuerung, galvanische Trennung selbiger&lt;br /&gt;
* 1x &#039;&#039;&#039; MOSFET-Ausgang&#039;&#039;&#039; PWM z.B. für 12V Lüfter, max. 55V 3,5A&lt;br /&gt;
* &#039;&#039;&#039;feste Programme&#039;&#039;&#039; im EEPROM über 2-Tasterbedienung und LEDs wähl- und ausführbar. &#039;&#039;&#039;PC-unabhängiger Betrieb&#039;&#039;&#039;. Beliebig viele Programme möglich, für die Auswahl stehen 4 benutzer-konfigurierbare LEDs zur Verfügung&lt;br /&gt;
* Betrieb am Computer für mehr Reflowprofile&lt;br /&gt;
* Mini-USB-Buchse zur Steuerung / Programmierung über GUI&lt;br /&gt;
* Günstiges passendes &#039;&#039;&#039;Gehäuse&#039;&#039;&#039;, alle LEDs und Taster auf Stiftleisten herausgeführt&lt;br /&gt;
* PID-Temperaturregler&lt;br /&gt;
* UART, SPI, I2C und 2x ADC auf Stiftleisten herausgeführt (-&amp;gt; Erweiterungen)&lt;br /&gt;
* Versorgung über USB (&amp;lt; 100mA), interne Versorgungsspannung 3,3V&lt;br /&gt;
* umfangreiche EMV-gerechte Entstörung für den Bedarfsfall&lt;br /&gt;
&lt;br /&gt;
== Technische Realisierung==&lt;br /&gt;
=== PIC18LF2550 Grundbeschaltung ===&lt;br /&gt;
[[Datei:osc_vs_vcc.png|thumb|right|200px|Taktraten und Versorgungsspannung PIC18LF2550 vs. PIC18LF2550, Datenblatt S. 370/438]]&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 3/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Hier kommt ein PIC18&#039;&#039;&#039;L&#039;&#039;&#039;F2550 zum Einsatz. Er verfügt über eine USB-Schnittstelle und ist für Betriebsspannungen von 2 ... 5,5V ausgelegt. Sein Verwandter PIC18F2550 (ohne L) ist nicht für Betriebsspannungen &amp;lt; 4,2V ausgelegt. Dies ist bei USB sowiesor nicht immer erfüllt und die Thermoelement ICs vertragen ohnehin keine 5V, daher wurde die Betriebsspannung auf 3,3V reduziert. Neben Standard-Decoupling (100nF Kerko pro Vcc-Vss-Pärchen) wurde das ICSP-Interface in alt bewährter Pinbelegung (PICKit1,2,3) angebracht. PGD und PGC sind nicht weiter beschaltet, MCRL wird in Standardbeschaltung als Resetpin verwendet. Der Resetschalter findet sich auf dem Top-Sheet (Schaltplan S. 1/22). Die Taktversorgung erfolgt zwingend über einen 24 MHz Quarz (-&amp;gt; USB). Man beachte diesbezüglich rechts stehende Grafik zu Taktraten und Versorgungsspannungen (Vdd bzw. auch Vcc genannt). Auch zu finden im Datenblatt des PICs auf Seite 370.&lt;br /&gt;
&lt;br /&gt;
=== PIC18LF2550 USB Beschaltung ===&lt;br /&gt;
[[Datei:usb_part.png|thumb|right|200px|PIC18(L)F2550&lt;br /&gt;
 Standard &lt;br /&gt;
USB-Beschaltung am PIC]]&lt;br /&gt;
[[Datei:usb_protect.png|thumb|right|200px|USB-Schutzbeschaltung und Mini-USB-Buchse]]&lt;br /&gt;
&lt;br /&gt;
Die Beschaltung der USB-Schnittstelle am PIC ist 1:1 aus dem Datenblatt übernommen. Zum Einsatz kommt eine Mini-USB-Buchse (J1).&lt;br /&gt;
Der Gedanke war: Erstens ein sehr preiswertes, fertiges Netzteil verwenden zu können, (ca. 3,67 € bei druckerzubehoer.de) und zweitens, die Steuerung auch mit dem PC / Laptop versorgen zu können.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 4/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
FER1,2 und C7 filtern den Schirm nach GND. Standardmäßig wird man hier wohl 0-Ohm-Widerstände einsetzen. Falls ein Besuch im EMV-Labor geplant ist, weicht man auf den Ferrit aus. C5 und C6 filtern das Signal zusammen mit der Common-Mode-DrosselL1. Die Drossel kann mit den 0-Ohm-Brücken R8 und R9 überbrückt (gespart) werden. IC2 ist als ESD-Schutz gedacht und kann ebenfalls bei ausgeprägten Kostenbewustsein gespart werden. Die Widerstände R6 und R7 dürfen NICHT bestückt werden. FER1,2, C5, IC2 müssen nicht zwingend bestückt werden. Die Bestückung wurde vorgehalten um im Problemfall einfache Abhilfe schaffen zu können.&lt;br /&gt;
&lt;br /&gt;
=== 3,3V Spannungsversorgung ===&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 2/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Die 3,3V Versorgungsspannung für die gesamte Platine wird aus V_USB mittels des LDO Spannungsreglers TOREX - XC6206P332MR abgeleitet. Günstig, SOT-23, klein, 2x 1µF Kondensatoren benötigt, 3,3V max. 250mA. Der hat auch einen sehr kleinen Ruhestrom.&lt;br /&gt;
&lt;br /&gt;
=== Taster ===&lt;br /&gt;
*Der Resettaster zieht den MCLR-Pin nach GND und löst damit den Reset aus. MCLR ist gem. der Standardbeschaltung mit einem 10k Pullup versehen.&lt;br /&gt;
*Die übrigen beiden Taster ziehen RA4 bzw. RB5 ebenfalls nach GND.&lt;br /&gt;
&lt;br /&gt;
=== LEDs + ULN2003L ===&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 11/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Um alle LEDs auf der Platine (3x Optotriac + 7x Status) ansteuern zu können wurde auf das 7fach Darlington-Array ULN2003L zurückgegriffen. Es dient desweiteren auch als &amp;quot;MOSFET-Treiber für Arme&amp;quot;. Alle LEDs werden von diesem Transistor-Array nach Masse geschaltet. Dient der Entlastung der PIC-Ausgänge. Und kostet ja auch nicht viel.&lt;br /&gt;
&lt;br /&gt;
=== MOSFET-Leistungsausgang ===&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 22/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Hier kommt der einfacher N-Kanal MOSFET (LogicLevel) PHT8N06LT zum Einsatz. Er wird über das ULN2003L Array getrieben und ermöglicht den Anschluss eines DC-Verbrauchers mit max. 55V bei 3,5A. Hier könnte beispielsweise ein PC-Lüfter zur Kühlung od. Umluft angeschlossen und über PWM geregelt/gesteuert werden. Ein Gatewiderstand von 100 Ohm ist zum Schutz des Treibers vorgesehen. Eine 0-Ohm-Brücke ist stattdessen aber auch möglich, wenn man eine höhere Leistung schalten möchte.Die Leiterbahnen sollten die 3A schon hergeben. Der 100 Ohm Widerstand bildet eine Stromquelle. Sobald der Strom durch den MOSFET und den Widerstand 33mA erreicht, sinkt UGS gegen 0 V. Folge: Der Mosfet sperrt ( und bleibt ganz....)&lt;br /&gt;
Es kann hier prinzipiell auch ein anderer Mosfet im SOT223-Gehäuse zum Einsatz kommen. Achten sollte man darauf, das der MOSFET schon bei 3,3V Ugs gut leiten sollte.&lt;br /&gt;
&lt;br /&gt;
=== Nulldurchgangserkennung ===&lt;br /&gt;
[[Datei:zerocross.png|thumb|right|200px|Nulldurchgangserkennung]]&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 5/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Die Nulldurchgangserkennung erfolgt nach einer sehr bekannten - jedoch ausgeklügelten - Schaltung.  [http://www.dextrel.net/diyzerocrosser.htm]&lt;br /&gt;
&lt;br /&gt;
ACHTUNG: DER IM SCHALTPLAN VERZEICHNETE OPTOKOPPLER und BRÜCKENGLEICHRICHTER VON REICHELT DARF KEINESFALLS VERWENDET WERDEN! Pinbelegung! Bitte den Optokoppler aus der Stückliste nehmen!&lt;br /&gt;
&lt;br /&gt;
Während einer Halbwelle wird C14 über R33 und R35 bzw. D5 geladen. Währenddessen ist T1 gesperrt. Sobald die Wechselspannung (L1-N über Spannungsteiler (R33+R35) / R34) kleiner ist als die Spannung über C14, steuert T1 durch. Dann entlädt sich C14 über den LED-Vorwiderstand R32. Der durch-steuernde Optokoppler zieht die Sync-Leitung nach GND. (Pullup Sync-Leitung = R31). Dies löst beim PIC auf INT2 einen Interrupt aus. &lt;br /&gt;
&lt;br /&gt;
Dieser Interrupt ermöglicht eine präzise Wellenpaket-, Phasenanschnittsteuerung je nach Bedarf. Das Schalten im Nulldurchgang bei der Wellenpaketsteuerung reduziert EMV-Störungen. Für Phasenanschnitt ist prinzipbedingt ohnehin eine Nulldurchgangserkennung notwendig. Außerdem liefert sie eine völlig ausreichend genaue Zeitbasis für alle Programmabläufe.&lt;br /&gt;
&lt;br /&gt;
=== Triac-Ausgänge + Snubber ===&lt;br /&gt;
[[Datei:triac.png|thumb|right|200px|Triac-Ausgangsbeschaltung]]&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 19,20,21/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Die Ansteuerung des eigentlichen Leistungstriacs BTA140-800 erfolgt über den Optotriac IS6005. Der Strom durch Letzteren wird durch R1x limitiert (Vorwiderstand). R2x und R5x limitieren wiederum den Strom durch den Optotriac. Wenn dieser zündet so folgt unmittelbar der &amp;quot;Leistungstriac&amp;quot; der dann die Last schaltet.&lt;br /&gt;
&lt;br /&gt;
S1x ist ein Sicherungshalter um die Lasten einzeln absichern zu können. Wert 10A Mittelträge.&lt;br /&gt;
&lt;br /&gt;
R3x, R4x, C3x bilden ein Snubber-Network, L1X verhindert eine zu schnelle Stromanstiegsgeschwindikeit damit der Triac nicht &amp;quot;von selbst&amp;quot; zündet. Weglassen äußert sich meist in einem fast nicht hörbaren Click. Damit zeigt einem dann der Triac, dass er ab jetzt für immer recht niederohmig geworden ist. Die Regelung der Temperatur braucht dann nicht mehr über den Prozessor erfolgen, sondern nur noch mit dem Ein-/Ausschalter..... :-)&lt;br /&gt;
&lt;br /&gt;
=== Thermoelemente (MAX6675/MAX31855)  ===&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 6,7/22&#039;&#039;&#039;&lt;br /&gt;
Der inzwischen abgekündigte MAX6675 bzw. sein ehrenwerter Nachfolger MAX31855 sind einfach zu handhabende Thermoelement-ICs mit Kaltstellenkompensation. Thermoelemente funktionieren durch das Verschweißen zweier verschiedener Legierungen (beim K-Typ Thermoelemnt Ni und CrNi). Durch den durch die Umgebungstemperatur bedingten Wärmefluss zwischen beiden entsteht ein elektrische Spannung. Diese wird von besagten ICs verstärkt und digitalisiert (ADC). Diese Spannung / Temperatur ist natürlich wieder relativ zur Umgebungstemperatur an der Kaltstelle (Kontaktierung der beiden Drähte mit dem Messinstrument). Daher messen diese ICs auch gleich die Umgebungstemperatur (Kaltstellenkompensation genannt) mit, verrechnen das und geben das Ergebnis auf der SPI-Schnittstelle aus. MAX6675 leistet 12bit also 0,25°C Auflösung (nicht Genauigkeit!) über einen Temperaturbereich von 0°C to +1024°C. Außerdem wird ein nicht/fehlerhaft angeschlossenes Thermoelement erkannt. Der Thermocouple-IC wird an die SPI-Schnittstelle des PICs angeschlossen (hier MSSP genannt). &lt;br /&gt;
&lt;br /&gt;
MAX6675 und MAX31855 scheinen entgegen der Adafruit-Information [http://www.adafruit.com/products/269] doch pinkompatibel zu sein - die Ansteuerung unterscheidet sich jedoch definitiv. (Zitat: &amp;quot;Now uses the MAX31855K instead of the MAX6675, so it can measure a wider temperature measurement range. Please note! the MAX31855 is not pin compatible or drop-in code compatible with the MAX6675. We do have an Arduino library for both chips but you&#039;ll need to adjust any existing MAX6675 designs for the mew MAX31855. The MAX6675 has been discontinued by Maxim.&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Es wurden 2 dieser ICs und damit 2 Temperaturmessstellen vorgesehen. Dies ermöglich die Messung für eine Regelung der Temperatur so wie eine zusätzliche Überwachung kritischer Bauteile (z.B. ICs oder LEDs). Die Minimalbestückung sieht einen MAX6675/MAX31855 vor. Die Auswahl in der Firmware erfolgt über einen der beiden GPIO-Pins RA5 oder RA0 via dem ChipSelect (CS) des MAX6675/MAX31855.&lt;br /&gt;
&lt;br /&gt;
Neben dem MAX6675/MAX31855 wurde ein Decoupling-Kondensator (C8x, Standard 100nF) so wie ein weiterer im Messpfad (C9x) zur Zwecken der Entstörung vorgeshen. C9x 100nF sollte nur bestückt werden wenn Probleme bei der Temperaturmessung entstehen (z.B. unrealstisch stark schwankende Werte).&lt;br /&gt;
&lt;br /&gt;
=== ADC, SPI, UART &amp;amp; I2C Stiftleiste ===&lt;br /&gt;
ADC, SPI, UART und I2C sind zu Zwecken der Kalibrierung / Erweiterung / Einstellung / Debugging auf Stiftleisten herausgeführt:&lt;br /&gt;
Ähnlichkeiten mit dem FTDI-USB-TTL-Kabel bzw. Arduino XXX Bla Bla Bla Schnittstellenkonverter sind natürlich rein zufällig.&lt;br /&gt;
&lt;br /&gt;
Die I2C-Schnittstelle wurde auf eine Stiftleiste geführt, um z.B. einem LM75 o.ä. anschließen zu können. Damit stehen zur Kalibrierung der Thermoelemente genaue Temperaturen zur Verfügung.&lt;br /&gt;
&lt;br /&gt;
Die Stiftleisten haben alle ein Raster von 2,54mm. So können Pin-Header, Wannenstecker oder ähnliches verwendet werden.&lt;br /&gt;
&lt;br /&gt;
Da ja viele Leute eigene Vorstellungen bezüglich der Frontplattengestaltung haben, wurden auch die Taster und LEDs auf Stiftleisten geführt.&lt;br /&gt;
&lt;br /&gt;
=== Kühlkörper ===&lt;br /&gt;
Da die Triacs der Steuerung für bis zu 10A pro Kanal ausgelegt sind, kann man auf die Kühlkörper nicht verzichten. Es fallen bei 10A bis zu 13 Watt Wärme pro Triac ab. Falls mann auf die Kühlkörper doch verzichten möchte, sollte man darauf achten, die Triacs mit dem Kopf nach unten einzubauen. Diese können sich dann bei Überlast ganz von selber auslöten.... :-)&lt;br /&gt;
&lt;br /&gt;
=== Gehäuse ===&lt;br /&gt;
Die Leiterplatte wurde für ein Gehäuse von Hammond entwickelt.&lt;br /&gt;
Das Gehäuse ist zwar keine Schönheit, aber doch recht preiswert.&lt;br /&gt;
Typenbezeichnung: RM2055M&lt;br /&gt;
&lt;br /&gt;
== Firmware PIC ==&lt;br /&gt;
Die Entwicklung der Firmware für den PIC18LF2550  geht mit MPlab 8 respektive dem C18 Compiler von Statten. MPlab ist kostenlos, der C18 Compiler bis auf die stärkste Optimierungsstufe ebenfalls. Die Quellen für die Firmware werden auch offengelegt.&lt;br /&gt;
=== Programmstruktur- und ablauf ===&lt;br /&gt;
Nach anfänglicher Initialisierung des PIC startet die Statemachine [http://http://www.mikrocontroller.net/articles/Statemachine] [http://http://de.wikipedia.org/wiki/Endlicher_Automat]. Neben ihr findet in der main-Funktion nur noch die Abfrage der beiden Bedientasten statt. Mit dem Tastendruck wird zum Zwecke der Entprellung ein Timer gestartet. Alles Andere (incl. PID-Regelung, Wellenpaket- bzw. Phasenan- und Phasenabschnittssteuerung und USB) ist interruptbasiert.&lt;br /&gt;
&lt;br /&gt;
=== Taktversorgung, Nulldurchgangserkennung und Zeitbasis ===&lt;br /&gt;
=== USB ===&lt;br /&gt;
=== SPI für MAX6675 ===&lt;br /&gt;
=== SPI für MAX31855 ===&lt;br /&gt;
&lt;br /&gt;
=== Wellenpaketsteuerung ===&lt;br /&gt;
=== Phasenanschnitt ===&lt;br /&gt;
&lt;br /&gt;
=== PWM für MOSFET ===&lt;br /&gt;
&lt;br /&gt;
== PC-Software (GUI) ==&lt;br /&gt;
[[Datei:gui_alpha.png|thumb|right|300px|Screenshot der GUI (noch Alpha) für den Reflow-Ofen-Controller]]&lt;br /&gt;
&lt;br /&gt;
Die GUI (englisch Graphical User Interface) ist der Einfachheit halber in VB.net programmiert und momentan noch im Alpha-Stadium. Auch hierfür liegen die Quellen später selbstverständlich offen.&lt;br /&gt;
&lt;br /&gt;
=== Funktionen und Modi ===&lt;br /&gt;
[[Datei:modi.png|thumb|right|400px|Auswahl der beschriebenen Modi durch Klick]]&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Ofen-Profil&amp;quot;&#039;&#039;&#039; - Es wird ein Programm (Temperaturkurve) aus dem EEPROM des Reflow-Ofens ausgeführt. Der Backvorgang kann mit der Software gesteuert (START, STOP, ...) und überwacht werden. Hierzu stehen Temperatur, Temperaturänderung, Heizleistung (Ober- und Unterhitze, Lüfter) so wie die graphische Darstellung im zentralen Diagramm zur Verfügung. Eingriffsmöglichkeiten, wie das Ändern der Temperaturkurve sind nicht vorgesehen. Dies soll ein reiner Überwachungs-Modus sein. Um die Temperaturkurve zu verändern zu können, sollte der Modus &amp;quot;PC-Profil&amp;quot; verwendet werden und die Temperaturkurve aus dem EEPROM importiert werden. Dann kann Selbige auch verändert und anschließend ausgeführt bzw. verändert in den EEPROM zurückgeschrieben werden. Dieser Modus stellt ein Äquivalent zur START/STOP-Tasten-Bedienung an der Platine dar und kann selbstverständlich parallel dazu genutzt werden. Die GUI also als Addon zum Stand-Alone-Betrieb.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;PC-Profil&amp;quot;&#039;&#039;&#039; - Es wird ein Programm (Temperaturkurve) ausgeführt welche zuvor am Computer erstellt / editiert wurde. In diesem Modus gibt der Computer Temperaturwerte vor, welche live über die USB-Schnittstelle zum PIC übertragen werden und mit dem dort integrierten PID-Regler ausgeführt werden. Das ermöglicht eine on-the-fly Veränderung der Temperaturkurve während des Backvorgangs. Temperaturkurven können aus Dateien oder dem EEPROM importiert und auch wieder exportiert werden. CSV-Dateien können ebenfalls importiert und exportiert werden. Die &amp;quot;Eingabe&amp;quot; der Temperaturkurve erfolgt entweder über Import (CSV/EEPROM), per Mausklick auf dem zentralen Diagramm oder im sog. DataGridView. Weiteres siehe Unterpunkt &amp;quot;Eingabe der Temperaturkurve (Reflowprofil)&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;manueller Ablauf&amp;quot;&#039;&#039;&#039; - In diesem Modus wird (im Gegensatz zu den oberen beiden Modi &amp;quot;Ofen-Profil&amp;quot; und &amp;quot;PC-Profil&amp;quot;) keine Temperatur geregelt. Hier wird die Leistung des Ofens in % eingestellt und gesteuert. Der PID-Regler ist nicht in Aktion. Die Temperatur, Temperaturänderung so wie der Temperaturverlauf werden selbstredend angezeigt bzw. im Diagramm dargestellt. Der Modus &amp;quot;manueller Ablauf&amp;quot; fährt ähnlich dem Modus &amp;quot;PC-Profil&amp;quot; die im DataGridView eingetragenen Leistungs-Zeit-Punkte ab. Für jeden Zeitpunkt ist eine Leistung vorgegeben. Die Eingabe erfolgt ähnlich wie unter &amp;quot;Eingabe der Temperaturkurve (Reflowprofil)&amp;quot; beschrieben. Nur eben, dass eine Leistung und keine Temperatur angegeben wird. Die Eingabe der Leistung kann nicht im Zeit-Temperatur-Diagramm erfolgen sondern mittels der Schieberegler oder direkt tabellarisch.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;manueller Modus&amp;quot;&#039;&#039;&#039; - Dieser Modus enthält 2 Submodi&lt;br /&gt;
** &amp;quot;manueller Leistungsmodus&amp;quot; - Auch in diesem Modus wird die Leistung gesteuert. Es wird keine Temperatur geregelt, der PID-Regler für die Temperatur ist nicht in Betrieb. Die Einstellung hier erfolgt über die drei Schieberegler oder über eine numerische Eingabe durch Klick auf die Leistungsangabe unter dem Schieberegler. Durch Klick auf die Texte &amp;quot;TOP&amp;quot;, &amp;quot;BOTTOM&amp;quot;, &amp;quot;FAN&amp;quot; (Oberhitze, Unterhitze, Lüfter) können selbige deaktiviert bzw. aktiviert werden. Auch in diesem Modus wird Temperatur, Temperaturänderung so wie der Temperaturverlauf dargestellt.&lt;br /&gt;
** &amp;quot;manueller Temperaturmodus&amp;quot; - Hier wird die Temperatur wieder mittels des Temperatur-PIDs geregelt. Die Temperatur wird entweder mittels Schieberegler (Ober- und Unterhitze-Regler sind jetzt gekoppelt) oder durch eine numerische Eingabe unterhalb der Schieberegler vorgegeben. Anzeige wie im &amp;quot;manuellen Leistungsmodus&amp;quot;. Der Lüfter kann unabhängig vom PID in seiner Leistung geregelt werden. Ein evtl. durch den Luftstrom verursachter Temperaturabfall wird vom PID selbstverständlich ausgeregelt (aus diesem Grunde ist es ja ein Regler).&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Programmieren&amp;quot;&#039;&#039;&#039; - Hier kann ein neues &#039;&#039;&#039;Temperatur&#039;&#039;&#039;-Programm für den EEPROM-Speicher des Ofens erstellt und editiert werden. Die Eingabemöglichkeiten sind unter &amp;quot;Eingabe der Temperaturkurve (Reflowprofil)&amp;quot; beschrieben. Dieser Modus ist zum reinen Programmieren des Ofens gedacht und ermöglicht keine weitere Steuerung oder Überwachung des Ofens.&lt;br /&gt;
&lt;br /&gt;
=== Eingabe der Temperaturkurve (Reflowprofil) ===&lt;br /&gt;
[[Datei:datagridview.png|thumb|right|400px|tabellarische Anzeige und Editiermöglichkeit der Temperaturkurve]]&lt;br /&gt;
Die Eingabe der Temperaturkurve erfolgt entweder über Import (CSV/EEPROM), per Mausklick auf dem zentralen Diagramm oder im sog. DataGridView (Excel-ähnliche Bedienung in tabellarischer Form). &lt;br /&gt;
&lt;br /&gt;
* CSV-Import + Export&lt;br /&gt;
* EEPROM-Import + Export&lt;br /&gt;
* Im rechts stehenden Screenshotbeispiel wird eine tabellarische Eingabeform mit einem DataGridView gezeigt: Die Temperatur (erster Temperaturpunkt = Punkt 0) von 100°C wird linear über einen Zeitraum von 0-30s verteilt. Bei 30s hat der Ofen die Temperatur von 100°C. Dafür setzt die Regelung die Oberhitze, die Unterhitze ein. Der Lüfter ist deaktiviert. In der Zeit von 30s bis 120s wird die Temperatur nun von 100°C auf 150°C linear angehoben. Von 120s bis 180s Backzeit steigt die Temperatur von 150°C auf 250°C. Von 180s bis 200s wird die Temperatur auf 280°C angehoben. Anschließend wird sie zwischen 200s und 220s auf 280°C gehalten (280°C@200s und 280°C@220s) um dann bis 240s wieder auf 250°C zu fallen. Bis zum Zeitpunkt 300s wird dann die Temperatur 30°C angestrebt. Zusätzlich ist der Lüfter nun aktiviert (soweit der Ofen eine Umluftfunktion besitzt). Bei Punkt 7 sind Ober- und Unterhitze deaktiviert nur noch der Lüfter kühlt. Da hier bei &amp;quot;Zeit[s]&amp;quot; die 0 eingetragen wird der Zustand (hier nur Lüfter an) für einen unendlich langen Zeitraum auf 0 gehalten. Also so lange wie das Programm aktiviert ist wird der Lüfter laufen. Natürlich könnte man hier auch z.B. 100°C und Zeitpunkt 0s eintragen. Dann würde der Ofen bis zum manuellen Beenden des Programms (klick auf STOP-Button oder Drücken des START/STOP-Tasters auf der Platine/Steuerung) 100°C halten.&lt;br /&gt;
* Alle Zellen des DataGridView sind editierbar (zur Veränderung der Temperatur, Zeitpunkt, ...)&lt;br /&gt;
* Direkter Klick auf das zentrale Temperatur-Zeit-Diagramm trägt den Zeitpunkt so wie die Temperatur unter dem Mauszeiger in die Tabelle (das DataGridView) ein. Die ausgewählte Zeile wird beschrieben oder überschrieben. Neue Zeilen (also Temperatur-Zeit-Punkte) können durch klick auf den &amp;quot;Plus-Button&amp;quot; hinzugefügt werden. Ebenso ist das Löschen oder Verschieben einer oder mehrerer Zeile gleichzeitig möglich.&lt;br /&gt;
&lt;br /&gt;
=== Beschreibung der Steuerungsmöglichkeiten ===&lt;br /&gt;
In Abhängigkeit des gewählten Modus bestehen einige Steuerungs-, Einstellungs- und Kontrollmöglichkeiten:&lt;br /&gt;
* &#039;&#039;&#039;Schieberegler&#039;&#039;&#039; für Temperatur od. Leistung (je nach Modus) für Oberhitze, Unterhitze und Lüfter. Je nach Hardwareausführung. &lt;br /&gt;
** Klick auf &amp;quot;TOP&amp;quot;, &amp;quot;BOTTOM&amp;quot; oder &amp;quot;FAN&amp;quot; aktiviert oder deaktiviert die entsprechende Funktion bzw. Hardware.&lt;br /&gt;
** Numerische Eingabe der Werte für die Schieberegler durch Klick auf die Anzeige unterhalb der Schieberegler. Werte können auch im deaktivierten Zustand angegeben werden. Die Übernahme erfolgt durch den &amp;quot;Aktivierungsklick&amp;quot; auf &amp;quot;TOP&amp;quot;, &amp;quot;BOTTOM&amp;quot; oder &amp;quot;FAN&amp;quot;&lt;br /&gt;
* &#039;&#039;&#039;T1, dT1, T2, dT2&#039;&#039;&#039; - Anzeige der gemessenen Temperatur so wie die momentane Temperaturänderung am jeweiligen Sensor. &lt;br /&gt;
* &#039;&#039;&#039;Bedienbuttons&#039;&#039;&#039;&lt;br /&gt;
** Play - Startet das Programm am angegebenen Startpunkt (siehe unten)&lt;br /&gt;
** Pause - Pausiert das Programm - weitere Pauseoptionen siehe unten&lt;br /&gt;
** Stop - Stopt den Programmablauf&lt;br /&gt;
** Vor / Zurück - Springt zwischen Temperaturpunkten hin und her. Dient zum überspringen oder zurückspringen zu gewissen Temperatur-Zeit-Punkten. Ermöglicht z.B. das Überspringen eines Ablaufes der eine lange Preheat- oder Dryphase hat.&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Status&amp;quot;&#039;&#039;&#039; - zeigt den aktuellen Zustand des Programms an (READY, START, WAITING, PAUSE, ...)&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;RESET&amp;quot;&#039;&#039;&#039; - setzt das (begonnene) Programm zurück. Beinhaltet neben dem Programmablauf auch das Zurücksetzen der graphischen Anzeige des Diagramms, etc.&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Startpunkt&amp;quot;&#039;&#039;&#039; - legt den ersten Punkt des Programmablaufes fest. &lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Wiederholungen&amp;quot;&#039;&#039;&#039; - ermöglicht das wiederholte Backen ohne das Programm händisch immer wieder neu starten zu müssen. Die Anzahl der Wiederholungen ist einstellbar (0 für unendlich viele) und es ist eine Wartezeit zwischen den Wiederholungen einstellbar. Alternativ kann eine Meldung nach jedem vollendeten Backvorgang abgegeben werden. Nach Bestätigung dieser wird die nächste Wiederholung ausgeführt.&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Pause&amp;quot;&#039;&#039;&#039; - Pauseneinstellungen. Hier sind Optionen wählbar was passieren soll, falls der Pausebutton betätigt wird:&lt;br /&gt;
** Pausezeit - gibt an wie lange die Pause dauern soll [s], danach fährt das Programm automatisch gemäß des gewählten Pausemodus fort. Für eine Pause ohne automatisches Fortfahren (Countdowntimer) &#039;0&#039; angeben.&lt;br /&gt;
** Pausemodus &amp;quot;aktuelle Temperatur halten, WarmUp, Fortsetzen&amp;quot; - Ofen hält die Temperatur (Zieltemperatur) des Zeitpunktes als der Pausebutton betätigt wurde. WarmUp bedeutet, dass nach dem Beenden des Pausemodus zunächst die Zieltemperatur wieder erreicht werden &#039;&#039;&#039;muss&#039;&#039;&#039; bevor der nächste Punkt angesteuert wird. Klingt paradox, wenn die Temperatur doch so und so gehalten wird, ist aber nicht so. Die Wahrscheinlichkeit ist hoch, dass der Pausemodus benutzt wird um die Ofentüre zu öffnen und Korrekturen an der Platine vorzunehmen. Unter Umständen ist die Heizung des Ofens jedoch nicht in der Lage den dadurch entstehenden Wärmeverlust zu kompensieren. Fährt das Programm dann sofort fort, so könnten evtl. kritische (Hoch-)Punkte des Lötprofils &amp;quot;unterfahren&amp;quot; werden. Dem wirkt WarmUp entgegen.&lt;br /&gt;
** Pausemodus &amp;quot;aktuelle Temperatur halten, Fortsetzen&amp;quot; - siehe oben, nur ohne WarmUp.&lt;br /&gt;
** Pausemodus &amp;quot;definierte Temperatur halten, WarmUp, Fortsetzen&amp;quot; - siehe oben. Statt der aktuellen Zieltemperatur wird jedoch nun im Pausemodus eine einzustellende Pausetemperatur gehalten. Mit WarmUp.&lt;br /&gt;
** Pausemodus &amp;quot;definierte Temperatur halten, Fortsetzen&amp;quot; - siehe oben, nur ohne WarmUp.&lt;br /&gt;
** &amp;quot;Pausetemperatur&amp;quot; - spezielle Temperatur die bei entsprechender Pausemoduswahl für die Dauer der Pause gehalten wird.&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Ende&amp;quot;&#039;&#039;&#039; - gibt an was am Ende eines durchlaufenen Reflow-Programms passieren soll. Ist der Wiederholungsmodus aktiviert, tritt dieses Ereignis erst nach Durchlauf aller Wiederholungen ein. Folgende Modi sind möglich:&lt;br /&gt;
** automatischer Reset - am Ende des Programms wird alles automatisch zurückgesetzt, alle Graphiken und Anzeigen gelöscht.&lt;br /&gt;
** manueller Reset - am Ende des Programms bleiben alle Anzeigen, Graphiken, etc erhalten und müssen vor Beginn eines neuen Reflowvorgangs händisch durch Klick auf &amp;quot;RESET&amp;quot; zurückgesetzt werden.&lt;br /&gt;
** Benutzermeldung - lässt eine Meldung erscheinen. Alle Anzeigen und Graphiken bleiben erhalten bis der Benutzer diese Meldung bestätigt. Mit Bestätigung dieser Meldung wird ein automatischer Reset vorgenommen.&lt;br /&gt;
&lt;br /&gt;
=== Loggen des Temperaturverlaufes ===&lt;br /&gt;
Es ist möglich jeden Backvorgang in eine CSV-Datei zu loggen. (Software- und PID-Einstellungen). Geloggte CSV-Dateien können eingelesen und im zentralen Temperatur-Zeit-Diagramm begutachtet werden. Ein Ist-Soll-Vergleich ist ebenso möglich wie die direkte Anzeige des Fehlers (&amp;quot;Ist minus Soll&amp;quot;). Dank CSV können die Daten auch mit anderen Programmen (Excel, etc.) weiterverarbeitet werden.&lt;br /&gt;
&lt;br /&gt;
== Ofen / Pizzaofen ==&lt;br /&gt;
=== Leistung und Volumen ===&lt;br /&gt;
=== Dämmung ===&lt;br /&gt;
=== Umluft ===&lt;br /&gt;
=== Bezugsquellen ===&lt;br /&gt;
=== Diskussionen im Forum ===&lt;br /&gt;
* Umfangreicher Thread u.A. Leistungsvermögen, Temperaturmessung und Dämmung [http://www.mikrocontroller.net/topic/270627]&lt;br /&gt;
&lt;br /&gt;
== FAQ ==&lt;br /&gt;
&lt;br /&gt;
* Q1: Ich habe einen PT100/PT1000 und möchte den anschließen. Geht das?&lt;br /&gt;
** A1: Ja natürlich. Dazu ist aber etwas externe Elektronik notwendig. Sowohl 2 ADC-Pins (mit 3V3 Betriebsspannung als fixe Referenzspannung), als auch die UART und SPI/I2C-Schnittstelle stehen zur freien Verfügung. Für PT100/PT1000 wird für vernünftige Messungen ohnehin eine Verstärkung (meist mit OPV) von Nöten sein. Da der PIC-interne ADC &amp;quot;nur&amp;quot; 10bit Auflösung bietet sollte ein externer 16bit ADC in Betracht gezogen werden um das Potential der PT100/PT1000 auszunutzen.&lt;br /&gt;
*Q2: Ich habe von günstigen Temperaturmessungen mit Dioden gehört. Geht das auch hier?&lt;br /&gt;
**A2: Ja. Die Vorwärtsspannung einer Diode verhält sich linear zur Sperrschichttemperatur. Diese Spannung (bei 25°C einer Si-Diode die bekannten 0,7V) kann mittels OPV verstärkt werden und auf einen Spannungsbereich von 0 ... 3V3 aufgebläht werden. Eine billige Lösung, auf Kosten der Genauigkeit. Doch eine Diode ist laut Datenblatt nur bis 150°C geeignet. Es ist also beim Löten mehr oder weniger Pfusch. Wenn ich schon eine Reflow-Steuerung baue, sollte ich doch nicht an ein paar Euro für eine gescheite Temperaturmessung sparen. Einige Anregungen vom Messgerätehersteller Keithley bzgl. der Halbleiterphysik mit interessanten Formeln [http://www.keithley.de/support/data?asset=50486]. Oder natürlich der Klassiker von Thomas Pfeifer [http://thomaspfeifer.net/backofen_smd_reflow.htm]. Oder ein Beitrag mit LT-Spice Simulation zum Thema [http://www.mikrocontroller.net/topic/270627#2833883].&lt;br /&gt;
* Q: God why ... ?&lt;br /&gt;
** A: Because we can !&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Verbesserungen Prototyp ===&lt;br /&gt;
* Bauteile weiter weg von Schraublöchern&lt;br /&gt;
* Dazu Kreis rund um Bohrung auf Bestückdruck&lt;br /&gt;
* Masseanbindung Quarz&lt;br /&gt;
* Klemmen weiter weg vom Rand&lt;br /&gt;
* Klemme und Sicherungshalter weiter auseinander, damit Schutzhabe draufpasst&lt;br /&gt;
* Bohrungen für Drossel 0,2mm größer machen&lt;br /&gt;
* Teilenummer für Conrad-USB-Buchse in BOM übernehmen.&lt;br /&gt;
* Stiftleiste P1  weiter weg von P2 und P4&lt;br /&gt;
* Varistoren näher an Klemmen platzieren&lt;br /&gt;
* Bestückvarianten defineren: 1. minimal 2. Standard 3. Externe Leds und Schalter.&lt;br /&gt;
* THT-Kondensatoren für Snubber - extra Footprint?&lt;br /&gt;
* Ggv. Stiftleistenbelegung für externe Leds so ändern, das keine extra Vorwiderstände notwendig sind.&lt;br /&gt;
* Wert der Drossel checken.(BOM Bestellnummer)&lt;br /&gt;
&lt;br /&gt;
=== Errata Projekt ===&lt;br /&gt;
* LED-Beschriftung passt nicht ganz (Schltplan Netlabel OUT1,2,3,4 sind durcheinander gekommen)&lt;br /&gt;
* Schaltplan UNL2003 fehlerhafte Zuordnung IN5,6,7 &amp;lt;&amp;gt; OUT7,6,5&lt;br /&gt;
* Brückengleichrichter / Optokoppler NICHT die im Schaltplan angegebenen Bestellnummern von Reichelt verwenden. BOM-Bauteile und Bestellnummern sind ok.&lt;br /&gt;
* Beim MOSFET R39 ist die Masseanbindung falsch. Es bestehen drei Möglichkeiten:&lt;br /&gt;
** 1. 0-R-Brücke für R39 einbauen und auf Strombegrenzung verzichten.&lt;br /&gt;
** 2. Eine Polyfuse mit Bauform 1206 einbauen. &lt;br /&gt;
** 3. Das kleine Leiterbahnstückchen zwischen R38 und R39 unterbrechen und statt dessen die Leiterbahn zwischen R39 und der Klemme mit der Durchkontaktierung bei R38 verbinden.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* Diskussion [http://www.mikrocontroller.net/topic/297217 Diskussion]&lt;br /&gt;
* Dextrel Nulldurchgang [http://www.dextrel.net/diyzerocrosser.htm Nulldurchgangschaltung]&lt;br /&gt;
* Gehäuse [http://www.hammondmfg.com/pdf/RM2015M.pdf Gehäuse Hammond]&lt;br /&gt;
* Bezugsquelle SOS Elektronik [http://www.soselectronic.com/?str=371&amp;amp;artnum=73595&amp;amp;name=hammond-ritec-rm2055m Gehäuse]&lt;br /&gt;
* Bezugsgquelle [http://www.druckerzubehoer.de/shop/product/catid/H-UNIVERSALZUBEHOER_HZB/subcatid/UNIVERSALZUBEHOER_GROUP1_HZB/productid/1727063-390722LA/site/1/lng/de_DE Mini USB Netzteil]&lt;br /&gt;
* Bezugsquelle Termoelement: TBD&lt;br /&gt;
* Bezugsquelle Steckdosen für Schalttafeleinbau: [http://www.artcase-shop.de/index.php?page=search&amp;amp;page_action=query&amp;amp;desc=on&amp;amp;sdesc=on&amp;amp;keywords=pce+105&amp;amp;x=0&amp;amp;y=0 Steckdosen]&lt;br /&gt;
* Bezugsquelle [http://www.schaeffer-ag.de/ Frontplatten]&lt;br /&gt;
 &lt;br /&gt;
[[Kategorie:Projekte]]&lt;br /&gt;
[[Kategorie:PIC]]&lt;br /&gt;
[[Kategorie:PIC-Boards]]&lt;br /&gt;
[[Kategorie:Platinen]]&lt;/div&gt;</summary>
		<author><name>Frankman</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=Reflow_Ofen_Steuerung&amp;diff=76111</id>
		<title>Reflow Ofen Steuerung</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=Reflow_Ofen_Steuerung&amp;diff=76111"/>
		<updated>2013-05-29T21:46:35Z</updated>

		<summary type="html">&lt;p&gt;Frankman: /* Links */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Datei:RFB.jpg]]&lt;br /&gt;
== Einleitung ==&lt;br /&gt;
[[Datei:pcb.png|thumb|right|400px|unbestücktes PCB der Reflow-Ofen-Steuerung]]&lt;br /&gt;
Hier wird eine weitere Reflow-Ofen-Steuerung beschrieben.&lt;br /&gt;
=== Zum Nachbauen ===&lt;br /&gt;
* Spezifikation: [[Datei: Spec Reflow.pdf]]&lt;br /&gt;
* Schaltplan: [[Datei:Reflow.pdf]]&lt;br /&gt;
* Gerberdaten: [[Datei:Gerber Reflow.pdf]]&lt;br /&gt;
* Assemblydrawing: [[Datei:Assembly Reflow.pdf]] &lt;br /&gt;
* Altium-Files: [[Datei:Reflow.zip]]&lt;br /&gt;
* Stückliste als CSV: [[Datei:Reflow.csv]]&lt;br /&gt;
* Stückliste als Open Office: [[Datei:Reflow.ods]]&lt;br /&gt;
* PC Programm: TBD&lt;br /&gt;
* Sourcen PC-Programm: TBD&lt;br /&gt;
* PIC Programm (*.hex): TBD&lt;br /&gt;
* Sourcen Pic-Programm: TBD&lt;br /&gt;
&lt;br /&gt;
=== Motivation ===&lt;br /&gt;
Die Gründe, eine weitere Steuerung zu entwerfen, waren:&lt;br /&gt;
&lt;br /&gt;
# Die Möglichkeit, auch größere Öfen mit 2 Phasen betreiben zu können.&lt;br /&gt;
# Die Steuerung universell zu gestalten. Es sollte möglich sein, diese nicht nur zum Reflow löten zu verwenden.&lt;br /&gt;
# Die Schaltung sollte in Altium entwickelt werden. (Warum kein Eagle??? Altium User wissen es.... :-)&lt;br /&gt;
# Die Schaltung sollte mit USB ausgestattet sein.&lt;br /&gt;
=== Eigenschaften &amp;amp; Spezifikationen ===&lt;br /&gt;
* Temperaturmessung: bis zu 2x &#039;&#039;&#039;Thermoelement&#039;&#039;&#039; (K-Typ) mit MAX6675 (abgekündigt) oder Nachfolger MAX31855 (pin- aber nicht softwarekompatibel)&lt;br /&gt;
* &#039;&#039;&#039;Leistungsstufen&#039;&#039;&#039;: 3x voneinander unabhängige Triac 800V bei 25A, limitiert auf &#039;&#039;&#039;10A @ 250VAC&#039;&#039;&#039; (z.B. Oberhitze, Unterhitze, Umluft)&lt;br /&gt;
* &#039;&#039;&#039;Nulldurchgangserkennung&#039;&#039;&#039; ermöglicht Wellenpaket-, Phasenan- und abschnittssteuerung, galvanische Trennung selbiger&lt;br /&gt;
* 1x &#039;&#039;&#039; MOSFET-Ausgang&#039;&#039;&#039; PWM z.B. für 12V Lüfter, max. 55V 3,5A&lt;br /&gt;
* &#039;&#039;&#039;feste Programme&#039;&#039;&#039; im EEPROM über 2-Tasterbedienung und LEDs wähl- und ausführbar. &#039;&#039;&#039;PC-unabhängiger Betrieb&#039;&#039;&#039;. Beliebig viele Programme möglich, für die Auswahl stehen 4 benutzer-konfigurierbare LEDs zur Verfügung&lt;br /&gt;
* Betrieb am Computer für mehr Reflowprofile&lt;br /&gt;
* Mini-USB-Buchse zur Steuerung / Programmierung über GUI&lt;br /&gt;
* Günstiges passendes &#039;&#039;&#039;Gehäuse&#039;&#039;&#039;, alle LEDs und Taster auf Stiftleisten herausgeführt&lt;br /&gt;
* PID-Temperaturregler&lt;br /&gt;
* UART, SPI, I2C und 2x ADC auf Stiftleisten herausgeführt (-&amp;gt; Erweiterungen)&lt;br /&gt;
* Versorgung über USB (&amp;lt; 100mA), interne Versorgungsspannung 3,3V&lt;br /&gt;
* umfangreiche EMV-gerechte Entstörung für den Bedarfsfall&lt;br /&gt;
&lt;br /&gt;
== Technische Realisierung==&lt;br /&gt;
=== PIC18LF2550 Grundbeschaltung ===&lt;br /&gt;
[[Datei:osc_vs_vcc.png|thumb|right|200px|Taktraten und Versorgungsspannung PIC18LF2550 vs. PIC18LF2550, Datenblatt S. 370/438]]&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 3/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Hier kommt ein PIC18&#039;&#039;&#039;L&#039;&#039;&#039;F2550 zum Einsatz. Er verfügt über eine USB-Schnittstelle und ist für Betriebsspannungen von 2 ... 5,5V ausgelegt. Sein Verwandter PIC18F2550 (ohne L) ist nicht für Betriebsspannungen &amp;lt; 4,2V ausgelegt. Dies ist bei USB sowiesor nicht immer erfüllt und die Thermoelement ICs vertragen ohnehin keine 5V, daher wurde die Betriebsspannung auf 3,3V reduziert. Neben Standard-Decoupling (100nF Kerko pro Vcc-Vss-Pärchen) wurde das ICSP-Interface in alt bewährter Pinbelegung (PICKit1,2,3) angebracht. PGD und PGC sind nicht weiter beschaltet, MCRL wird in Standardbeschaltung als Resetpin verwendet. Der Resetschalter findet sich auf dem Top-Sheet (Schaltplan S. 1/22). Die Taktversorgung erfolgt zwingend über einen 24 MHz Quarz (-&amp;gt; USB). Man beachte diesbezüglich rechts stehende Grafik zu Taktraten und Versorgungsspannungen (Vdd bzw. auch Vcc genannt). Auch zu finden im Datenblatt des PICs auf Seite 370.&lt;br /&gt;
&lt;br /&gt;
=== PIC18LF2550 USB Beschaltung ===&lt;br /&gt;
[[Datei:usb_part.png|thumb|right|200px|PIC18(L)F2550&lt;br /&gt;
 Standard &lt;br /&gt;
USB-Beschaltung am PIC]]&lt;br /&gt;
[[Datei:usb_protect.png|thumb|right|200px|USB-Schutzbeschaltung und Mini-USB-Buchse]]&lt;br /&gt;
&lt;br /&gt;
Die Beschaltung der USB-Schnittstelle am PIC ist 1:1 aus dem Datenblatt übernommen. Zum Einsatz kommt eine Mini-USB-Buchse (J1).&lt;br /&gt;
Der Gedanke war: Erstens ein sehr preiswertes, fertiges Netzteil verwenden zu können, (ca. 3,67 € bei druckerzubehoer.de) und zweitens, die Steuerung auch mit dem PC / Laptop versorgen zu können.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 4/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
FER1,2 und C7 filtern den Schirm nach GND. Standardmäßig wird man hier wohl 0-Ohm-Widerstände einsetzen. Falls ein Besuch im EMV-Labor geplant ist, weicht man auf den Ferrit aus. C5 und C6 filtern das Signal zusammen mit der Common-Mode-DrosselL1. Die Drossel kann mit den 0-Ohm-Brücken R8 und R9 überbrückt (gespart) werden. IC2 ist als ESD-Schutz gedacht und kann ebenfalls bei ausgeprägten Kostenbewustsein gespart werden. Die Widerstände R6 und R7 dürfen NICHT bestückt werden. FER1,2, C5, IC2 müssen nicht zwingend bestückt werden. Die Bestückung wurde vorgehalten um im Problemfall einfache Abhilfe schaffen zu können.&lt;br /&gt;
&lt;br /&gt;
=== 3,3V Spannungsversorgung ===&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 2/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Die 3,3V Versorgungsspannung für die gesamte Platine wird aus V_USB mittels des LDO Spannungsreglers TOREX - XC6206P332MR abgeleitet. Günstig, SOT-23, klein, 2x 1µF Kondensatoren benötigt, 3,3V max. 250mA. Der hat auch einen sehr kleinen Ruhestrom.&lt;br /&gt;
&lt;br /&gt;
=== Taster ===&lt;br /&gt;
*Der Resettaster zieht den MCLR-Pin nach GND und löst damit den Reset aus. MCLR ist gem. der Standardbeschaltung mit einem 10k Pullup versehen.&lt;br /&gt;
*Die übrigen beiden Taster ziehen RA4 bzw. RB5 ebenfalls nach GND.&lt;br /&gt;
&lt;br /&gt;
=== LEDs + ULN2003L ===&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 11/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Um alle LEDs auf der Platine (3x Optotriac + 7x Status) ansteuern zu können wurde auf das 7fach Darlington-Array ULN2003L zurückgegriffen. Es dient desweiteren auch als &amp;quot;MOSFET-Treiber für Arme&amp;quot;. Alle LEDs werden von diesem Transistor-Array nach Masse geschaltet. Dient der Entlastung der PIC-Ausgänge. Und kostet ja auch nicht viel.&lt;br /&gt;
&lt;br /&gt;
=== MOSFET-Leistungsausgang ===&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 22/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Hier kommt der einfacher N-Kanal MOSFET (LogicLevel) PHT8N06LT zum Einsatz. Er wird über das ULN2003L Array getrieben und ermöglicht den Anschluss eines DC-Verbrauchers mit max. 55V bei 3,5A. Hier könnte beispielsweise ein PC-Lüfter zur Kühlung od. Umluft angeschlossen und über PWM geregelt/gesteuert werden. Ein Gatewiderstand von 100 Ohm ist zum Schutz des Treibers vorgesehen. Eine 0-Ohm-Brücke ist stattdessen aber auch möglich, wenn man eine höhere Leistung schalten möchte.Die Leiterbahnen sollten die 3A schon hergeben. Der 100 Ohm Widerstand bildet eine Stromquelle. Sobald der Strom durch den MOSFET und den Widerstand 33mA erreicht, sinkt UGS gegen 0 V. Folge: Der Mosfet sperrt ( und bleibt ganz....)&lt;br /&gt;
Es kann hier prinzipiell auch ein anderer Mosfet im SOT223-Gehäuse zum Einsatz kommen. Achten sollte man darauf, das der MOSFET schon bei 3,3V Ugs gut leiten sollte.&lt;br /&gt;
&lt;br /&gt;
=== Nulldurchgangserkennung ===&lt;br /&gt;
[[Datei:zerocross.png|thumb|right|200px|Nulldurchgangserkennung]]&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 5/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Die Nulldurchgangserkennung erfolgt nach einer sehr bekannten - jedoch ausgeklügelten - Schaltung.  [http://www.dextrel.net/diyzerocrosser.htm]&lt;br /&gt;
&lt;br /&gt;
ACHTUNG: DER IM SCHALTPLAN VERZEICHNETE OPTOKOPPLER und BRÜCKENGLEICHRICHTER VON REICHELT DARF KEINESFALLS VERWENDET WERDEN! Pinbelegung! Bitte den Optokoppler aus der Stückliste nehmen!&lt;br /&gt;
&lt;br /&gt;
Während einer Halbwelle wird C14 über R33 und R35 bzw. D5 geladen. Währenddessen ist T1 gesperrt. Sobald die Wechselspannung (L1-N über Spannungsteiler (R33+R35) / R34) kleiner ist als die Spannung über C14, steuert T1 durch. Dann entlädt sich C14 über den LED-Vorwiderstand R32. Der durch-steuernde Optokoppler zieht die Sync-Leitung nach GND. (Pullup Sync-Leitung = R31). Dies löst beim PIC auf INT2 einen Interrupt aus. &lt;br /&gt;
&lt;br /&gt;
Dieser Interrupt ermöglicht eine präzise Wellenpaket-, Phasenanschnittsteuerung je nach Bedarf. Das Schalten im Nulldurchgang bei der Wellenpaketsteuerung reduziert EMV-Störungen. Für Phasenanschnitt ist prinzipbedingt ohnehin eine Nulldurchgangserkennung notwendig. Außerdem liefert sie eine völlig ausreichend genaue Zeitbasis für alle Programmabläufe.&lt;br /&gt;
&lt;br /&gt;
=== Triac-Ausgänge + Snubber ===&lt;br /&gt;
[[Datei:triac.png|thumb|right|200px|Triac-Ausgangsbeschaltung]]&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 19,20,21/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Die Ansteuerung des eigentlichen Leistungstriacs BTA140-800 erfolgt über den Optotriac IS6005. Der Strom durch Letzteren wird durch R1x limitiert (Vorwiderstand). R2x und R5x limitieren wiederum den Strom durch den Optotriac. Wenn dieser zündet so folgt unmittelbar der &amp;quot;Leistungstriac&amp;quot; der dann die Last schaltet.&lt;br /&gt;
&lt;br /&gt;
S1x ist ein Sicherungshalter um die Lasten einzeln absichern zu können. Wert 10A Mittelträge.&lt;br /&gt;
&lt;br /&gt;
R3x, R4x, C3x bilden ein Snubber-Network, L1X verhindert eine zu schnelle Stromanstiegsgeschwindikeit damit der Triac nicht &amp;quot;von selbst&amp;quot; zündet. Weglassen äußert sich meist in einem fast nicht hörbaren Click. Damit zeigt einem dann der Triac, dass er ab jetzt für immer recht niederohmig geworden ist. Die Regelung der Temperatur braucht dann nicht mehr über den Prozessor erfolgen, sondern nur noch mit dem Ein-/Ausschalter..... :-)&lt;br /&gt;
&lt;br /&gt;
=== Thermoelemente (MAX6675/MAX31855)  ===&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 6,7/22&#039;&#039;&#039;&lt;br /&gt;
Der inzwischen abgekündigte MAX6675 bzw. sein ehrenwerter Nachfolger MAX31855 sind einfach zu handhabende Thermoelement-ICs mit Kaltstellenkompensation. Thermoelemente funktionieren durch das Verschweißen zweier verschiedener Legierungen (beim K-Typ Thermoelemnt Ni und CrNi). Durch den durch die Umgebungstemperatur bedingten Wärmefluss zwischen beiden entsteht ein elektrische Spannung. Diese wird von besagten ICs verstärkt und digitalisiert (ADC). Diese Spannung / Temperatur ist natürlich wieder relativ zur Umgebungstemperatur an der Kaltstelle (Kontaktierung der beiden Drähte mit dem Messinstrument). Daher messen diese ICs auch gleich die Umgebungstemperatur (Kaltstellenkompensation genannt) mit, verrechnen das und geben das Ergebnis auf der SPI-Schnittstelle aus. MAX6675 leistet 12bit also 0,25°C Auflösung (nicht Genauigkeit!) über einen Temperaturbereich von 0°C to +1024°C. Außerdem wird ein nicht/fehlerhaft angeschlossenes Thermoelement erkannt. Der Thermocouple-IC wird an die SPI-Schnittstelle des PICs angeschlossen (hier MSSP genannt). &lt;br /&gt;
&lt;br /&gt;
MAX6675 und MAX31855 scheinen entgegen der Adafruit-Information [http://www.adafruit.com/products/269] doch pinkompatibel zu sein - die Ansteuerung unterscheidet sich jedoch definitiv. (Zitat: &amp;quot;Now uses the MAX31855K instead of the MAX6675, so it can measure a wider temperature measurement range. Please note! the MAX31855 is not pin compatible or drop-in code compatible with the MAX6675. We do have an Arduino library for both chips but you&#039;ll need to adjust any existing MAX6675 designs for the mew MAX31855. The MAX6675 has been discontinued by Maxim.&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Es wurden 2 dieser ICs und damit 2 Temperaturmessstellen vorgesehen. Dies ermöglich die Messung für eine Regelung der Temperatur so wie eine zusätzliche Überwachung kritischer Bauteile (z.B. ICs oder LEDs). Die Minimalbestückung sieht einen MAX6675/MAX31855 vor. Die Auswahl in der Firmware erfolgt über einen der beiden GPIO-Pins RA5 oder RA0 via dem ChipSelect (CS) des MAX6675/MAX31855.&lt;br /&gt;
&lt;br /&gt;
Neben dem MAX6675/MAX31855 wurde ein Decoupling-Kondensator (C8x, Standard 100nF) so wie ein weiterer im Messpfad (C9x) zur Zwecken der Entstörung vorgeshen. C9x 100nF sollte nur bestückt werden wenn Probleme bei der Temperaturmessung entstehen (z.B. unrealstisch stark schwankende Werte).&lt;br /&gt;
&lt;br /&gt;
=== ADC, SPI, UART &amp;amp; I2C Stiftleiste ===&lt;br /&gt;
ADC, SPI, UART und I2C sind zu Zwecken der Kalibrierung / Erweiterung / Einstellung / Debugging auf Stiftleisten herausgeführt:&lt;br /&gt;
Ähnlichkeiten mit dem FTDI-USB-TTL-Kabel bzw. Arduino XXX Bla Bla Bla Schnittstellenkonverter sind natürlich rein zufällig.&lt;br /&gt;
&lt;br /&gt;
Die I2C-Schnittstelle wurde auf eine Stiftleiste geführt, um z.B. einem LM75 o.ä. anschließen zu können. Damit stehen zur Kalibrierung der Thermoelemente genaue Temperaturen zur Verfügung.&lt;br /&gt;
&lt;br /&gt;
Die Stiftleisten haben alle ein Raster von 2,54mm. So können Pin-Header, Wannenstecker oder ähnliches verwendet werden.&lt;br /&gt;
&lt;br /&gt;
Da ja viele Leute eigene Vorstellungen bezüglich der Frontplattengestaltung haben, wurden auch die Taster und LEDs auf Stiftleisten geführt.&lt;br /&gt;
&lt;br /&gt;
=== Kühlkörper ===&lt;br /&gt;
Da die Triacs der Steuerung für bis zu 10A pro Kanal ausgelegt sind, kann man auf die Kühlkörper nicht verzichten. Es fallen bei 10A bis zu 13 Watt Wärme pro Triac ab. Falls mann auf die Kühlkörper doch verzichten möchte, sollte man darauf achten, die Triacs mit dem Kopf nach unten einzubauen. Diese können sich dann bei Überlast ganz von selber auslöten.... :-)&lt;br /&gt;
&lt;br /&gt;
=== Gehäuse ===&lt;br /&gt;
Die Leiterplatte wurde für ein Gehäuse von Hammond entwickelt.&lt;br /&gt;
Das Gehäuse ist zwar keine Schönheit, aber doch recht preiswert.&lt;br /&gt;
Typenbezeichnung: RM2055M&lt;br /&gt;
&lt;br /&gt;
== Firmware PIC ==&lt;br /&gt;
Die Entwicklung der Firmware für den PIC18LF2550  geht mit MPlab 8 respektive dem C18 Compiler von Statten. MPlab ist kostenlos, der C18 Compiler bis auf die stärkste Optimierungsstufe ebenfalls. Die Quellen für die Firmware werden auch offengelegt.&lt;br /&gt;
=== Programmstruktur- und ablauf ===&lt;br /&gt;
Nach anfänglicher Initialisierung des PIC startet die Statemachine [http://http://www.mikrocontroller.net/articles/Statemachine] [http://http://de.wikipedia.org/wiki/Endlicher_Automat]. Neben ihr findet in der main-Funktion nur noch die Abfrage der beiden Bedientasten statt. Mit dem Tastendruck wird zum Zwecke der Entprellung ein Timer gestartet. Alles Andere (incl. PID-Regelung, Wellenpaket- bzw. Phasenan- und Phasenabschnittssteuerung und USB) ist interruptbasiert.&lt;br /&gt;
&lt;br /&gt;
=== Taktversorgung, Nulldurchgangserkennung und Zeitbasis ===&lt;br /&gt;
=== USB ===&lt;br /&gt;
=== SPI für MAX6675 ===&lt;br /&gt;
=== SPI für MAX31855 ===&lt;br /&gt;
&lt;br /&gt;
=== Wellenpaketsteuerung ===&lt;br /&gt;
=== Phasenanschnitt ===&lt;br /&gt;
&lt;br /&gt;
=== PWM für MOSFET ===&lt;br /&gt;
&lt;br /&gt;
== PC-Software (GUI) ==&lt;br /&gt;
[[Datei:gui_alpha.png|thumb|right|300px|Screenshot der GUI (noch Alpha) für den Reflow-Ofen-Controller]]&lt;br /&gt;
&lt;br /&gt;
Die GUI (englisch Graphical User Interface) ist der Einfachheit halber in VB.net programmiert und momentan noch im Alpha-Stadium. Auch hierfür liegen die Quellen später selbstverständlich offen.&lt;br /&gt;
&lt;br /&gt;
=== Funktionen und Modi ===&lt;br /&gt;
[[Datei:modi.png|thumb|right|400px|Auswahl der beschriebenen Modi durch Klick]]&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Ofen-Profil&amp;quot;&#039;&#039;&#039; - Es wird ein Programm (Temperaturkurve) aus dem EEPROM des Reflow-Ofens ausgeführt. Der Backvorgang kann mit der Software gesteuert (START, STOP, ...) und überwacht werden. Hierzu stehen Temperatur, Temperaturänderung, Heizleistung (Ober- und Unterhitze, Lüfter) so wie die graphische Darstellung im zentralen Diagramm zur Verfügung. Eingriffsmöglichkeiten, wie das Ändern der Temperaturkurve sind nicht vorgesehen. Dies soll ein reiner Überwachungs-Modus sein. Um die Temperaturkurve zu verändern zu können, sollte der Modus &amp;quot;PC-Profil&amp;quot; verwendet werden und die Temperaturkurve aus dem EEPROM importiert werden. Dann kann Selbige auch verändert und anschließend ausgeführt bzw. verändert in den EEPROM zurückgeschrieben werden. Dieser Modus stellt ein Äquivalent zur START/STOP-Tasten-Bedienung an der Platine dar und kann selbstverständlich parallel dazu genutzt werden. Die GUI also als Addon zum Stand-Alone-Betrieb.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;PC-Profil&amp;quot;&#039;&#039;&#039; - Es wird ein Programm (Temperaturkurve) ausgeführt welche zuvor am Computer erstellt / editiert wurde. In diesem Modus gibt der Computer Temperaturwerte vor, welche live über die USB-Schnittstelle zum PIC übertragen werden und mit dem dort integrierten PID-Regler ausgeführt werden. Das ermöglicht eine on-the-fly Veränderung der Temperaturkurve während des Backvorgangs. Temperaturkurven können aus Dateien oder dem EEPROM importiert und auch wieder exportiert werden. CSV-Dateien können ebenfalls importiert und exportiert werden. Die &amp;quot;Eingabe&amp;quot; der Temperaturkurve erfolgt entweder über Import (CSV/EEPROM), per Mausklick auf dem zentralen Diagramm oder im sog. DataGridView. Weiteres siehe Unterpunkt &amp;quot;Eingabe der Temperaturkurve (Reflowprofil)&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;manueller Ablauf&amp;quot;&#039;&#039;&#039; - In diesem Modus wird (im Gegensatz zu den oberen beiden Modi &amp;quot;Ofen-Profil&amp;quot; und &amp;quot;PC-Profil&amp;quot;) keine Temperatur geregelt. Hier wird die Leistung des Ofens in % eingestellt und gesteuert. Der PID-Regler ist nicht in Aktion. Die Temperatur, Temperaturänderung so wie der Temperaturverlauf werden selbstredend angezeigt bzw. im Diagramm dargestellt. Der Modus &amp;quot;manueller Ablauf&amp;quot; fährt ähnlich dem Modus &amp;quot;PC-Profil&amp;quot; die im DataGridView eingetragenen Leistungs-Zeit-Punkte ab. Für jeden Zeitpunkt ist eine Leistung vorgegeben. Die Eingabe erfolgt ähnlich wie unter &amp;quot;Eingabe der Temperaturkurve (Reflowprofil)&amp;quot; beschrieben. Nur eben, dass eine Leistung und keine Temperatur angegeben wird. Die Eingabe der Leistung kann nicht im Zeit-Temperatur-Diagramm erfolgen sondern mittels der Schieberegler oder direkt tabellarisch.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;manueller Modus&amp;quot;&#039;&#039;&#039; - Dieser Modus enthält 2 Submodi&lt;br /&gt;
** &amp;quot;manueller Leistungsmodus&amp;quot; - Auch in diesem Modus wird die Leistung gesteuert. Es wird keine Temperatur geregelt, der PID-Regler für die Temperatur ist nicht in Betrieb. Die Einstellung hier erfolgt über die drei Schieberegler oder über eine numerische Eingabe durch Klick auf die Leistungsangabe unter dem Schieberegler. Durch Klick auf die Texte &amp;quot;TOP&amp;quot;, &amp;quot;BOTTOM&amp;quot;, &amp;quot;FAN&amp;quot; (Oberhitze, Unterhitze, Lüfter) können selbige deaktiviert bzw. aktiviert werden. Auch in diesem Modus wird Temperatur, Temperaturänderung so wie der Temperaturverlauf dargestellt.&lt;br /&gt;
** &amp;quot;manueller Temperaturmodus&amp;quot; - Hier wird die Temperatur wieder mittels des Temperatur-PIDs geregelt. Die Temperatur wird entweder mittels Schieberegler (Ober- und Unterhitze-Regler sind jetzt gekoppelt) oder durch eine numerische Eingabe unterhalb der Schieberegler vorgegeben. Anzeige wie im &amp;quot;manuellen Leistungsmodus&amp;quot;. Der Lüfter kann unabhängig vom PID in seiner Leistung geregelt werden. Ein evtl. durch den Luftstrom verursachter Temperaturabfall wird vom PID selbstverständlich ausgeregelt (aus diesem Grunde ist es ja ein Regler).&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Programmieren&amp;quot;&#039;&#039;&#039; - Hier kann ein neues &#039;&#039;&#039;Temperatur&#039;&#039;&#039;-Programm für den EEPROM-Speicher des Ofens erstellt und editiert werden. Die Eingabemöglichkeiten sind unter &amp;quot;Eingabe der Temperaturkurve (Reflowprofil)&amp;quot; beschrieben. Dieser Modus ist zum reinen Programmieren des Ofens gedacht und ermöglicht keine weitere Steuerung oder Überwachung des Ofens.&lt;br /&gt;
&lt;br /&gt;
=== Eingabe der Temperaturkurve (Reflowprofil) ===&lt;br /&gt;
[[Datei:datagridview.png|thumb|right|400px|tabellarische Anzeige und Editiermöglichkeit der Temperaturkurve]]&lt;br /&gt;
Die Eingabe der Temperaturkurve erfolgt entweder über Import (CSV/EEPROM), per Mausklick auf dem zentralen Diagramm oder im sog. DataGridView (Excel-ähnliche Bedienung in tabellarischer Form). &lt;br /&gt;
&lt;br /&gt;
* CSV-Import + Export&lt;br /&gt;
* EEPROM-Import + Export&lt;br /&gt;
* Im rechts stehenden Screenshotbeispiel wird eine tabellarische Eingabeform mit einem DataGridView gezeigt: Die Temperatur (erster Temperaturpunkt = Punkt 0) von 100°C wird linear über einen Zeitraum von 0-30s verteilt. Bei 30s hat der Ofen die Temperatur von 100°C. Dafür setzt die Regelung die Oberhitze, die Unterhitze ein. Der Lüfter ist deaktiviert. In der Zeit von 30s bis 120s wird die Temperatur nun von 100°C auf 150°C linear angehoben. Von 120s bis 180s Backzeit steigt die Temperatur von 150°C auf 250°C. Von 180s bis 200s wird die Temperatur auf 280°C angehoben. Anschließend wird sie zwischen 200s und 220s auf 280°C gehalten (280°C@200s und 280°C@220s) um dann bis 240s wieder auf 250°C zu fallen. Bis zum Zeitpunkt 300s wird dann die Temperatur 30°C angestrebt. Zusätzlich ist der Lüfter nun aktiviert (soweit der Ofen eine Umluftfunktion besitzt). Bei Punkt 7 sind Ober- und Unterhitze deaktiviert nur noch der Lüfter kühlt. Da hier bei &amp;quot;Zeit[s]&amp;quot; die 0 eingetragen wird der Zustand (hier nur Lüfter an) für einen unendlich langen Zeitraum auf 0 gehalten. Also so lange wie das Programm aktiviert ist wird der Lüfter laufen. Natürlich könnte man hier auch z.B. 100°C und Zeitpunkt 0s eintragen. Dann würde der Ofen bis zum manuellen Beenden des Programms (klick auf STOP-Button oder Drücken des START/STOP-Tasters auf der Platine/Steuerung) 100°C halten.&lt;br /&gt;
* Alle Zellen des DataGridView sind editierbar (zur Veränderung der Temperatur, Zeitpunkt, ...)&lt;br /&gt;
* Direkter Klick auf das zentrale Temperatur-Zeit-Diagramm trägt den Zeitpunkt so wie die Temperatur unter dem Mauszeiger in die Tabelle (das DataGridView) ein. Die ausgewählte Zeile wird beschrieben oder überschrieben. Neue Zeilen (also Temperatur-Zeit-Punkte) können durch klick auf den &amp;quot;Plus-Button&amp;quot; hinzugefügt werden. Ebenso ist das Löschen oder Verschieben einer oder mehrerer Zeile gleichzeitig möglich.&lt;br /&gt;
&lt;br /&gt;
=== Beschreibung der Steuerungsmöglichkeiten ===&lt;br /&gt;
In Abhängigkeit des gewählten Modus bestehen einige Steuerungs-, Einstellungs- und Kontrollmöglichkeiten:&lt;br /&gt;
* &#039;&#039;&#039;Schieberegler&#039;&#039;&#039; für Temperatur od. Leistung (je nach Modus) für Oberhitze, Unterhitze und Lüfter. Je nach Hardwareausführung. &lt;br /&gt;
** Klick auf &amp;quot;TOP&amp;quot;, &amp;quot;BOTTOM&amp;quot; oder &amp;quot;FAN&amp;quot; aktiviert oder deaktiviert die entsprechende Funktion bzw. Hardware.&lt;br /&gt;
** Numerische Eingabe der Werte für die Schieberegler durch Klick auf die Anzeige unterhalb der Schieberegler. Werte können auch im deaktivierten Zustand angegeben werden. Die Übernahme erfolgt durch den &amp;quot;Aktivierungsklick&amp;quot; auf &amp;quot;TOP&amp;quot;, &amp;quot;BOTTOM&amp;quot; oder &amp;quot;FAN&amp;quot;&lt;br /&gt;
* &#039;&#039;&#039;T1, dT1, T2, dT2&#039;&#039;&#039; - Anzeige der gemessenen Temperatur so wie die momentane Temperaturänderung am jeweiligen Sensor. &lt;br /&gt;
* &#039;&#039;&#039;Bedienbuttons&#039;&#039;&#039;&lt;br /&gt;
** Play - Startet das Programm am angegebenen Startpunkt (siehe unten)&lt;br /&gt;
** Pause - Pausiert das Programm - weitere Pauseoptionen siehe unten&lt;br /&gt;
** Stop - Stopt den Programmablauf&lt;br /&gt;
** Vor / Zurück - Springt zwischen Temperaturpunkten hin und her. Dient zum überspringen oder zurückspringen zu gewissen Temperatur-Zeit-Punkten. Ermöglicht z.B. das Überspringen eines Ablaufes der eine lange Preheat- oder Dryphase hat.&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Status&amp;quot;&#039;&#039;&#039; - zeigt den aktuellen Zustand des Programms an (READY, START, WAITING, PAUSE, ...)&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;RESET&amp;quot;&#039;&#039;&#039; - setzt das (begonnene) Programm zurück. Beinhaltet neben dem Programmablauf auch das Zurücksetzen der graphischen Anzeige des Diagramms, etc.&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Startpunkt&amp;quot;&#039;&#039;&#039; - legt den ersten Punkt des Programmablaufes fest. &lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Wiederholungen&amp;quot;&#039;&#039;&#039; - ermöglicht das wiederholte Backen ohne das Programm händisch immer wieder neu starten zu müssen. Die Anzahl der Wiederholungen ist einstellbar (0 für unendlich viele) und es ist eine Wartezeit zwischen den Wiederholungen einstellbar. Alternativ kann eine Meldung nach jedem vollendeten Backvorgang abgegeben werden. Nach Bestätigung dieser wird die nächste Wiederholung ausgeführt.&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Pause&amp;quot;&#039;&#039;&#039; - Pauseneinstellungen. Hier sind Optionen wählbar was passieren soll, falls der Pausebutton betätigt wird:&lt;br /&gt;
** Pausezeit - gibt an wie lange die Pause dauern soll [s], danach fährt das Programm automatisch gemäß des gewählten Pausemodus fort. Für eine Pause ohne automatisches Fortfahren (Countdowntimer) &#039;0&#039; angeben.&lt;br /&gt;
** Pausemodus &amp;quot;aktuelle Temperatur halten, WarmUp, Fortsetzen&amp;quot; - Ofen hält die Temperatur (Zieltemperatur) des Zeitpunktes als der Pausebutton betätigt wurde. WarmUp bedeutet, dass nach dem Beenden des Pausemodus zunächst die Zieltemperatur wieder erreicht werden &#039;&#039;&#039;muss&#039;&#039;&#039; bevor der nächste Punkt angesteuert wird. Klingt paradox, wenn die Temperatur doch so und so gehalten wird, ist aber nicht so. Die Wahrscheinlichkeit ist hoch, dass der Pausemodus benutzt wird um die Ofentüre zu öffnen und Korrekturen an der Platine vorzunehmen. Unter Umständen ist die Heizung des Ofens jedoch nicht in der Lage den dadurch entstehenden Wärmeverlust zu kompensieren. Fährt das Programm dann sofort fort, so könnten evtl. kritische (Hoch-)Punkte des Lötprofils &amp;quot;unterfahren&amp;quot; werden. Dem wirkt WarmUp entgegen.&lt;br /&gt;
** Pausemodus &amp;quot;aktuelle Temperatur halten, Fortsetzen&amp;quot; - siehe oben, nur ohne WarmUp.&lt;br /&gt;
** Pausemodus &amp;quot;definierte Temperatur halten, WarmUp, Fortsetzen&amp;quot; - siehe oben. Statt der aktuellen Zieltemperatur wird jedoch nun im Pausemodus eine einzustellende Pausetemperatur gehalten. Mit WarmUp.&lt;br /&gt;
** Pausemodus &amp;quot;definierte Temperatur halten, Fortsetzen&amp;quot; - siehe oben, nur ohne WarmUp.&lt;br /&gt;
** &amp;quot;Pausetemperatur&amp;quot; - spezielle Temperatur die bei entsprechender Pausemoduswahl für die Dauer der Pause gehalten wird.&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Ende&amp;quot;&#039;&#039;&#039; - gibt an was am Ende eines durchlaufenen Reflow-Programms passieren soll. Ist der Wiederholungsmodus aktiviert, tritt dieses Ereignis erst nach Durchlauf aller Wiederholungen ein. Folgende Modi sind möglich:&lt;br /&gt;
** automatischer Reset - am Ende des Programms wird alles automatisch zurückgesetzt, alle Graphiken und Anzeigen gelöscht.&lt;br /&gt;
** manueller Reset - am Ende des Programms bleiben alle Anzeigen, Graphiken, etc erhalten und müssen vor Beginn eines neuen Reflowvorgangs händisch durch Klick auf &amp;quot;RESET&amp;quot; zurückgesetzt werden.&lt;br /&gt;
** Benutzermeldung - lässt eine Meldung erscheinen. Alle Anzeigen und Graphiken bleiben erhalten bis der Benutzer diese Meldung bestätigt. Mit Bestätigung dieser Meldung wird ein automatischer Reset vorgenommen.&lt;br /&gt;
&lt;br /&gt;
=== Loggen des Temperaturverlaufes ===&lt;br /&gt;
Es ist möglich jeden Backvorgang in eine CSV-Datei zu loggen. (Software- und PID-Einstellungen). Geloggte CSV-Dateien können eingelesen und im zentralen Temperatur-Zeit-Diagramm begutachtet werden. Ein Ist-Soll-Vergleich ist ebenso möglich wie die direkte Anzeige des Fehlers (&amp;quot;Ist minus Soll&amp;quot;). Dank CSV können die Daten auch mit anderen Programmen (Excel, etc.) weiterverarbeitet werden.&lt;br /&gt;
&lt;br /&gt;
== Ofen / Pizzaofen ==&lt;br /&gt;
=== Leistung und Volumen ===&lt;br /&gt;
=== Dämmung ===&lt;br /&gt;
=== Umluft ===&lt;br /&gt;
=== Bezugsquellen ===&lt;br /&gt;
=== Diskussionen im Forum ===&lt;br /&gt;
* Umfangreicher Thread u.A. Leistungsvermögen, Temperaturmessung und Dämmung [http://www.mikrocontroller.net/topic/270627]&lt;br /&gt;
&lt;br /&gt;
== FAQ ==&lt;br /&gt;
&lt;br /&gt;
* Q1: Ich habe einen PT100/PT1000 und möchte den anschließen. Geht das?&lt;br /&gt;
** A1: Ja natürlich. Dazu ist aber etwas externe Elektronik notwendig. Sowohl 2 ADC-Pins (mit 3V3 Betriebsspannung als fixe Referenzspannung), als auch die UART und SPI/I2C-Schnittstelle stehen zur freien Verfügung. Für PT100/PT1000 wird für vernünftige Messungen ohnehin eine Verstärkung (meist mit OPV) von Nöten sein. Da der PIC-interne ADC &amp;quot;nur&amp;quot; 10bit Auflösung bietet sollte ein externer 16bit ADC in Betracht gezogen werden um das Potential der PT100/PT1000 auszunutzen.&lt;br /&gt;
*Q2: Ich habe von günstigen Temperaturmessungen mit Dioden gehört. Geht das auch hier?&lt;br /&gt;
**A2: Ja. Die Vorwärtsspannung einer Diode verhält sich linear zur Sperrschichttemperatur. Diese Spannung (bei 25°C einer Si-Diode die bekannten 0,7V) kann mittels OPV verstärkt werden und auf einen Spannungsbereich von 0 ... 3V3 aufgebläht werden. Eine billige Lösung, auf Kosten der Genauigkeit. Doch eine Diode ist laut Datenblatt nur bis 150°C geeignet. Es ist also beim Löten mehr oder weniger Pfusch. Wenn ich schon eine Reflow-Steuerung baue, sollte ich doch nicht an ein paar Euro für eine gescheite Temperaturmessung sparen. Einige Anregungen vom Messgerätehersteller Keithley bzgl. der Halbleiterphysik mit interessanten Formeln [http://www.keithley.de/support/data?asset=50486]. Oder natürlich der Klassiker von Thomas Pfeifer [http://thomaspfeifer.net/backofen_smd_reflow.htm]. Oder ein Beitrag mit LT-Spice Simulation zum Thema [http://www.mikrocontroller.net/topic/270627#2833883].&lt;br /&gt;
* Q: God why ... ?&lt;br /&gt;
** A: Because we can !&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Verbesserungen Prototyp ===&lt;br /&gt;
* Bauteile weiter weg von Schraublöchern&lt;br /&gt;
* Dazu Kreis rund um Bohrung auf Bestückdruck&lt;br /&gt;
* Masseanbindung Quarz&lt;br /&gt;
* Klemmen weiter weg vom Rand&lt;br /&gt;
* Klemme und Sicherungshalter weiter auseinander, damit Schutzhabe draufpasst&lt;br /&gt;
* Bohrungen für Drossel 0,2mm größer machen&lt;br /&gt;
* Teilenummer für Conrad-USB-Buchse in BOM übernehmen.&lt;br /&gt;
* Stiftleiste P1  weiter weg von P2 und P4&lt;br /&gt;
* Varistoren näher an Klemmen platzieren&lt;br /&gt;
* Bestückvarianten defineren: 1. minimal 2. Standard 3. Externe Leds und Schalter.&lt;br /&gt;
* THT-Kondensatoren für Snubber - extra Footprint?&lt;br /&gt;
* Ggv. Stiftleistenbelegung für externe Leds so ändern, das keine extra Vorwiderstände notwendig sind.&lt;br /&gt;
* Wert der Drossel checken.(BOM Bestellnummer)&lt;br /&gt;
&lt;br /&gt;
=== Errata Projekt ===&lt;br /&gt;
* LED-Beschriftung passt nicht ganz (Schltplan Netlabel OUT1,2,3,4 sind durcheinander gekommen)&lt;br /&gt;
* Schaltplan UNL2003 fehlerhafte Zuordnung IN5,6,7 &amp;lt;&amp;gt; OUT7,6,5&lt;br /&gt;
* Brückengleichrichter / Optokoppler NICHT die im Schaltplan angegebenen Bestellnummern von Reichelt verwenden. BOM-Bauteile und Bestellnummern sind ok.&lt;br /&gt;
* Beim MOSFET R39 ist die Masseanbindung falsch. Es bestehen drei Möglichkeiten:&lt;br /&gt;
** 1. 0-R-Brücke für R39 einbauen und auf Strombegrenzung verzichten.&lt;br /&gt;
** 2. Eine Polyfuse mit Bauform 1206 einbauen. &lt;br /&gt;
** 3. Das kleine Leiterbahnstückchen zwischen R38 und R39 unterbrechen und statt dessen die Leiterbahn zwischen R39 und der Klemme mit der Durchkontaktierung bei R38 verbinden.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* Diskussion [http://www.mikrocontroller.net/topic/297217 Diskussion]&lt;br /&gt;
* Dextrel Nulldurchgang [http://www.dextrel.net/diyzerocrosser.htm Nulldurchgangschaltung]&lt;br /&gt;
* Gehäuse [http://www.hammondmfg.com/pdf/RM2015M.pdf Gehäuse Hammond]&lt;br /&gt;
* Bezugsquelle SOS Elektronik [http://www.soselectronic.com/?str=371&amp;amp;artnum=73595&amp;amp;name=hammond-ritec-rm2055m Gehäuse]&lt;br /&gt;
* Bezugsgquelle [http://www.druckerzubehoer.de/shop/product/catid/H-UNIVERSALZUBEHOER_HZB/subcatid/UNIVERSALZUBEHOER_GROUP1_HZB/productid/1727063-390722LA/site/1/lng/de_DE Mini USB Netzteil]&lt;br /&gt;
* Bezugsquelle Termoelement: TBD&lt;br /&gt;
* Bezugsquelle Steckdosen für Schalttafeleinbau: [http://www.artcase-shop.de/index.php?page=search&amp;amp;page_action=query&amp;amp;desc=on&amp;amp;sdesc=on&amp;amp;keywords=pce+105&amp;amp;x=0&amp;amp;y=0 Steckdosen]&lt;br /&gt;
* Bezugsquelle [http://www.schaeffer-ag.de/ Frontplatten]&lt;br /&gt;
 &lt;br /&gt;
[[Kategorie:Projekte]]&lt;br /&gt;
[[Kategorie:PIC]]&lt;br /&gt;
[[Kategorie:PIC-Boards]]&lt;br /&gt;
[[Kategorie:Platinen]]&lt;/div&gt;</summary>
		<author><name>Frankman</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=Reflow_Ofen_Steuerung&amp;diff=76110</id>
		<title>Reflow Ofen Steuerung</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=Reflow_Ofen_Steuerung&amp;diff=76110"/>
		<updated>2013-05-29T21:28:37Z</updated>

		<summary type="html">&lt;p&gt;Frankman: /* Links */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Datei:RFB.jpg]]&lt;br /&gt;
== Einleitung ==&lt;br /&gt;
[[Datei:pcb.png|thumb|right|400px|unbestücktes PCB der Reflow-Ofen-Steuerung]]&lt;br /&gt;
Hier wird eine weitere Reflow-Ofen-Steuerung beschrieben.&lt;br /&gt;
=== Zum Nachbauen ===&lt;br /&gt;
* Spezifikation: [[Datei: Spec Reflow.pdf]]&lt;br /&gt;
* Schaltplan: [[Datei:Reflow.pdf]]&lt;br /&gt;
* Gerberdaten: [[Datei:Gerber Reflow.pdf]]&lt;br /&gt;
* Assemblydrawing: [[Datei:Assembly Reflow.pdf]] &lt;br /&gt;
* Altium-Files: [[Datei:Reflow.zip]]&lt;br /&gt;
* Stückliste als CSV: [[Datei:Reflow.csv]]&lt;br /&gt;
* Stückliste als Open Office: [[Datei:Reflow.ods]]&lt;br /&gt;
* PC Programm: TBD&lt;br /&gt;
* Sourcen PC-Programm: TBD&lt;br /&gt;
* PIC Programm (*.hex): TBD&lt;br /&gt;
* Sourcen Pic-Programm: TBD&lt;br /&gt;
&lt;br /&gt;
=== Motivation ===&lt;br /&gt;
Die Gründe, eine weitere Steuerung zu entwerfen, waren:&lt;br /&gt;
&lt;br /&gt;
# Die Möglichkeit, auch größere Öfen mit 2 Phasen betreiben zu können.&lt;br /&gt;
# Die Steuerung universell zu gestalten. Es sollte möglich sein, diese nicht nur zum Reflow löten zu verwenden.&lt;br /&gt;
# Die Schaltung sollte in Altium entwickelt werden. (Warum kein Eagle??? Altium User wissen es.... :-)&lt;br /&gt;
# Die Schaltung sollte mit USB ausgestattet sein.&lt;br /&gt;
=== Eigenschaften &amp;amp; Spezifikationen ===&lt;br /&gt;
* Temperaturmessung: bis zu 2x &#039;&#039;&#039;Thermoelement&#039;&#039;&#039; (K-Typ) mit MAX6675 (abgekündigt) oder Nachfolger MAX31855 (pin- aber nicht softwarekompatibel)&lt;br /&gt;
* &#039;&#039;&#039;Leistungsstufen&#039;&#039;&#039;: 3x voneinander unabhängige Triac 800V bei 25A, limitiert auf &#039;&#039;&#039;10A @ 250VAC&#039;&#039;&#039; (z.B. Oberhitze, Unterhitze, Umluft)&lt;br /&gt;
* &#039;&#039;&#039;Nulldurchgangserkennung&#039;&#039;&#039; ermöglicht Wellenpaket-, Phasenan- und abschnittssteuerung, galvanische Trennung selbiger&lt;br /&gt;
* 1x &#039;&#039;&#039; MOSFET-Ausgang&#039;&#039;&#039; PWM z.B. für 12V Lüfter, max. 55V 3,5A&lt;br /&gt;
* &#039;&#039;&#039;feste Programme&#039;&#039;&#039; im EEPROM über 2-Tasterbedienung und LEDs wähl- und ausführbar. &#039;&#039;&#039;PC-unabhängiger Betrieb&#039;&#039;&#039;. Beliebig viele Programme möglich, für die Auswahl stehen 4 benutzer-konfigurierbare LEDs zur Verfügung&lt;br /&gt;
* Betrieb am Computer für mehr Reflowprofile&lt;br /&gt;
* Mini-USB-Buchse zur Steuerung / Programmierung über GUI&lt;br /&gt;
* Günstiges passendes &#039;&#039;&#039;Gehäuse&#039;&#039;&#039;, alle LEDs und Taster auf Stiftleisten herausgeführt&lt;br /&gt;
* PID-Temperaturregler&lt;br /&gt;
* UART, SPI, I2C und 2x ADC auf Stiftleisten herausgeführt (-&amp;gt; Erweiterungen)&lt;br /&gt;
* Versorgung über USB (&amp;lt; 100mA), interne Versorgungsspannung 3,3V&lt;br /&gt;
* umfangreiche EMV-gerechte Entstörung für den Bedarfsfall&lt;br /&gt;
&lt;br /&gt;
== Technische Realisierung==&lt;br /&gt;
=== PIC18LF2550 Grundbeschaltung ===&lt;br /&gt;
[[Datei:osc_vs_vcc.png|thumb|right|200px|Taktraten und Versorgungsspannung PIC18LF2550 vs. PIC18LF2550, Datenblatt S. 370/438]]&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 3/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Hier kommt ein PIC18&#039;&#039;&#039;L&#039;&#039;&#039;F2550 zum Einsatz. Er verfügt über eine USB-Schnittstelle und ist für Betriebsspannungen von 2 ... 5,5V ausgelegt. Sein Verwandter PIC18F2550 (ohne L) ist nicht für Betriebsspannungen &amp;lt; 4,2V ausgelegt. Dies ist bei USB sowiesor nicht immer erfüllt und die Thermoelement ICs vertragen ohnehin keine 5V, daher wurde die Betriebsspannung auf 3,3V reduziert. Neben Standard-Decoupling (100nF Kerko pro Vcc-Vss-Pärchen) wurde das ICSP-Interface in alt bewährter Pinbelegung (PICKit1,2,3) angebracht. PGD und PGC sind nicht weiter beschaltet, MCRL wird in Standardbeschaltung als Resetpin verwendet. Der Resetschalter findet sich auf dem Top-Sheet (Schaltplan S. 1/22). Die Taktversorgung erfolgt zwingend über einen 24 MHz Quarz (-&amp;gt; USB). Man beachte diesbezüglich rechts stehende Grafik zu Taktraten und Versorgungsspannungen (Vdd bzw. auch Vcc genannt). Auch zu finden im Datenblatt des PICs auf Seite 370.&lt;br /&gt;
&lt;br /&gt;
=== PIC18LF2550 USB Beschaltung ===&lt;br /&gt;
[[Datei:usb_part.png|thumb|right|200px|PIC18(L)F2550&lt;br /&gt;
 Standard &lt;br /&gt;
USB-Beschaltung am PIC]]&lt;br /&gt;
[[Datei:usb_protect.png|thumb|right|200px|USB-Schutzbeschaltung und Mini-USB-Buchse]]&lt;br /&gt;
&lt;br /&gt;
Die Beschaltung der USB-Schnittstelle am PIC ist 1:1 aus dem Datenblatt übernommen. Zum Einsatz kommt eine Mini-USB-Buchse (J1).&lt;br /&gt;
Der Gedanke war: Erstens ein sehr preiswertes, fertiges Netzteil verwenden zu können, (ca. 3,67 € bei druckerzubehoer.de) und zweitens, die Steuerung auch mit dem PC / Laptop versorgen zu können.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 4/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
FER1,2 und C7 filtern den Schirm nach GND. Standardmäßig wird man hier wohl 0-Ohm-Widerstände einsetzen. Falls ein Besuch im EMV-Labor geplant ist, weicht man auf den Ferrit aus. C5 und C6 filtern das Signal zusammen mit der Common-Mode-DrosselL1. Die Drossel kann mit den 0-Ohm-Brücken R8 und R9 überbrückt (gespart) werden. IC2 ist als ESD-Schutz gedacht und kann ebenfalls bei ausgeprägten Kostenbewustsein gespart werden. Die Widerstände R6 und R7 dürfen NICHT bestückt werden. FER1,2, C5, IC2 müssen nicht zwingend bestückt werden. Die Bestückung wurde vorgehalten um im Problemfall einfache Abhilfe schaffen zu können.&lt;br /&gt;
&lt;br /&gt;
=== 3,3V Spannungsversorgung ===&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 2/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Die 3,3V Versorgungsspannung für die gesamte Platine wird aus V_USB mittels des LDO Spannungsreglers TOREX - XC6206P332MR abgeleitet. Günstig, SOT-23, klein, 2x 1µF Kondensatoren benötigt, 3,3V max. 250mA. Der hat auch einen sehr kleinen Ruhestrom.&lt;br /&gt;
&lt;br /&gt;
=== Taster ===&lt;br /&gt;
*Der Resettaster zieht den MCLR-Pin nach GND und löst damit den Reset aus. MCLR ist gem. der Standardbeschaltung mit einem 10k Pullup versehen.&lt;br /&gt;
*Die übrigen beiden Taster ziehen RA4 bzw. RB5 ebenfalls nach GND.&lt;br /&gt;
&lt;br /&gt;
=== LEDs + ULN2003L ===&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 11/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Um alle LEDs auf der Platine (3x Optotriac + 7x Status) ansteuern zu können wurde auf das 7fach Darlington-Array ULN2003L zurückgegriffen. Es dient desweiteren auch als &amp;quot;MOSFET-Treiber für Arme&amp;quot;. Alle LEDs werden von diesem Transistor-Array nach Masse geschaltet. Dient der Entlastung der PIC-Ausgänge. Und kostet ja auch nicht viel.&lt;br /&gt;
&lt;br /&gt;
=== MOSFET-Leistungsausgang ===&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 22/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Hier kommt der einfacher N-Kanal MOSFET (LogicLevel) PHT8N06LT zum Einsatz. Er wird über das ULN2003L Array getrieben und ermöglicht den Anschluss eines DC-Verbrauchers mit max. 55V bei 3,5A. Hier könnte beispielsweise ein PC-Lüfter zur Kühlung od. Umluft angeschlossen und über PWM geregelt/gesteuert werden. Ein Gatewiderstand von 100 Ohm ist zum Schutz des Treibers vorgesehen. Eine 0-Ohm-Brücke ist stattdessen aber auch möglich, wenn man eine höhere Leistung schalten möchte.Die Leiterbahnen sollten die 3A schon hergeben. Der 100 Ohm Widerstand bildet eine Stromquelle. Sobald der Strom durch den MOSFET und den Widerstand 33mA erreicht, sinkt UGS gegen 0 V. Folge: Der Mosfet sperrt ( und bleibt ganz....)&lt;br /&gt;
Es kann hier prinzipiell auch ein anderer Mosfet im SOT223-Gehäuse zum Einsatz kommen. Achten sollte man darauf, das der MOSFET schon bei 3,3V Ugs gut leiten sollte.&lt;br /&gt;
&lt;br /&gt;
=== Nulldurchgangserkennung ===&lt;br /&gt;
[[Datei:zerocross.png|thumb|right|200px|Nulldurchgangserkennung]]&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 5/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Die Nulldurchgangserkennung erfolgt nach einer sehr bekannten - jedoch ausgeklügelten - Schaltung.  [http://www.dextrel.net/diyzerocrosser.htm]&lt;br /&gt;
&lt;br /&gt;
ACHTUNG: DER IM SCHALTPLAN VERZEICHNETE OPTOKOPPLER und BRÜCKENGLEICHRICHTER VON REICHELT DARF KEINESFALLS VERWENDET WERDEN! Pinbelegung! Bitte den Optokoppler aus der Stückliste nehmen!&lt;br /&gt;
&lt;br /&gt;
Während einer Halbwelle wird C14 über R33 und R35 bzw. D5 geladen. Währenddessen ist T1 gesperrt. Sobald die Wechselspannung (L1-N über Spannungsteiler (R33+R35) / R34) kleiner ist als die Spannung über C14, steuert T1 durch. Dann entlädt sich C14 über den LED-Vorwiderstand R32. Der durch-steuernde Optokoppler zieht die Sync-Leitung nach GND. (Pullup Sync-Leitung = R31). Dies löst beim PIC auf INT2 einen Interrupt aus. &lt;br /&gt;
&lt;br /&gt;
Dieser Interrupt ermöglicht eine präzise Wellenpaket-, Phasenanschnittsteuerung je nach Bedarf. Das Schalten im Nulldurchgang bei der Wellenpaketsteuerung reduziert EMV-Störungen. Für Phasenanschnitt ist prinzipbedingt ohnehin eine Nulldurchgangserkennung notwendig. Außerdem liefert sie eine völlig ausreichend genaue Zeitbasis für alle Programmabläufe.&lt;br /&gt;
&lt;br /&gt;
=== Triac-Ausgänge + Snubber ===&lt;br /&gt;
[[Datei:triac.png|thumb|right|200px|Triac-Ausgangsbeschaltung]]&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 19,20,21/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Die Ansteuerung des eigentlichen Leistungstriacs BTA140-800 erfolgt über den Optotriac IS6005. Der Strom durch Letzteren wird durch R1x limitiert (Vorwiderstand). R2x und R5x limitieren wiederum den Strom durch den Optotriac. Wenn dieser zündet so folgt unmittelbar der &amp;quot;Leistungstriac&amp;quot; der dann die Last schaltet.&lt;br /&gt;
&lt;br /&gt;
S1x ist ein Sicherungshalter um die Lasten einzeln absichern zu können. Wert 10A Mittelträge.&lt;br /&gt;
&lt;br /&gt;
R3x, R4x, C3x bilden ein Snubber-Network, L1X verhindert eine zu schnelle Stromanstiegsgeschwindikeit damit der Triac nicht &amp;quot;von selbst&amp;quot; zündet. Weglassen äußert sich meist in einem fast nicht hörbaren Click. Damit zeigt einem dann der Triac, dass er ab jetzt für immer recht niederohmig geworden ist. Die Regelung der Temperatur braucht dann nicht mehr über den Prozessor erfolgen, sondern nur noch mit dem Ein-/Ausschalter..... :-)&lt;br /&gt;
&lt;br /&gt;
=== Thermoelemente (MAX6675/MAX31855)  ===&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 6,7/22&#039;&#039;&#039;&lt;br /&gt;
Der inzwischen abgekündigte MAX6675 bzw. sein ehrenwerter Nachfolger MAX31855 sind einfach zu handhabende Thermoelement-ICs mit Kaltstellenkompensation. Thermoelemente funktionieren durch das Verschweißen zweier verschiedener Legierungen (beim K-Typ Thermoelemnt Ni und CrNi). Durch den durch die Umgebungstemperatur bedingten Wärmefluss zwischen beiden entsteht ein elektrische Spannung. Diese wird von besagten ICs verstärkt und digitalisiert (ADC). Diese Spannung / Temperatur ist natürlich wieder relativ zur Umgebungstemperatur an der Kaltstelle (Kontaktierung der beiden Drähte mit dem Messinstrument). Daher messen diese ICs auch gleich die Umgebungstemperatur (Kaltstellenkompensation genannt) mit, verrechnen das und geben das Ergebnis auf der SPI-Schnittstelle aus. MAX6675 leistet 12bit also 0,25°C Auflösung (nicht Genauigkeit!) über einen Temperaturbereich von 0°C to +1024°C. Außerdem wird ein nicht/fehlerhaft angeschlossenes Thermoelement erkannt. Der Thermocouple-IC wird an die SPI-Schnittstelle des PICs angeschlossen (hier MSSP genannt). &lt;br /&gt;
&lt;br /&gt;
MAX6675 und MAX31855 scheinen entgegen der Adafruit-Information [http://www.adafruit.com/products/269] doch pinkompatibel zu sein - die Ansteuerung unterscheidet sich jedoch definitiv. (Zitat: &amp;quot;Now uses the MAX31855K instead of the MAX6675, so it can measure a wider temperature measurement range. Please note! the MAX31855 is not pin compatible or drop-in code compatible with the MAX6675. We do have an Arduino library for both chips but you&#039;ll need to adjust any existing MAX6675 designs for the mew MAX31855. The MAX6675 has been discontinued by Maxim.&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Es wurden 2 dieser ICs und damit 2 Temperaturmessstellen vorgesehen. Dies ermöglich die Messung für eine Regelung der Temperatur so wie eine zusätzliche Überwachung kritischer Bauteile (z.B. ICs oder LEDs). Die Minimalbestückung sieht einen MAX6675/MAX31855 vor. Die Auswahl in der Firmware erfolgt über einen der beiden GPIO-Pins RA5 oder RA0 via dem ChipSelect (CS) des MAX6675/MAX31855.&lt;br /&gt;
&lt;br /&gt;
Neben dem MAX6675/MAX31855 wurde ein Decoupling-Kondensator (C8x, Standard 100nF) so wie ein weiterer im Messpfad (C9x) zur Zwecken der Entstörung vorgeshen. C9x 100nF sollte nur bestückt werden wenn Probleme bei der Temperaturmessung entstehen (z.B. unrealstisch stark schwankende Werte).&lt;br /&gt;
&lt;br /&gt;
=== ADC, SPI, UART &amp;amp; I2C Stiftleiste ===&lt;br /&gt;
ADC, SPI, UART und I2C sind zu Zwecken der Kalibrierung / Erweiterung / Einstellung / Debugging auf Stiftleisten herausgeführt:&lt;br /&gt;
Ähnlichkeiten mit dem FTDI-USB-TTL-Kabel bzw. Arduino XXX Bla Bla Bla Schnittstellenkonverter sind natürlich rein zufällig.&lt;br /&gt;
&lt;br /&gt;
Die I2C-Schnittstelle wurde auf eine Stiftleiste geführt, um z.B. einem LM75 o.ä. anschließen zu können. Damit stehen zur Kalibrierung der Thermoelemente genaue Temperaturen zur Verfügung.&lt;br /&gt;
&lt;br /&gt;
Die Stiftleisten haben alle ein Raster von 2,54mm. So können Pin-Header, Wannenstecker oder ähnliches verwendet werden.&lt;br /&gt;
&lt;br /&gt;
Da ja viele Leute eigene Vorstellungen bezüglich der Frontplattengestaltung haben, wurden auch die Taster und LEDs auf Stiftleisten geführt.&lt;br /&gt;
&lt;br /&gt;
=== Kühlkörper ===&lt;br /&gt;
Da die Triacs der Steuerung für bis zu 10A pro Kanal ausgelegt sind, kann man auf die Kühlkörper nicht verzichten. Es fallen bei 10A bis zu 13 Watt Wärme pro Triac ab. Falls mann auf die Kühlkörper doch verzichten möchte, sollte man darauf achten, die Triacs mit dem Kopf nach unten einzubauen. Diese können sich dann bei Überlast ganz von selber auslöten.... :-)&lt;br /&gt;
&lt;br /&gt;
=== Gehäuse ===&lt;br /&gt;
Die Leiterplatte wurde für ein Gehäuse von Hammond entwickelt.&lt;br /&gt;
Das Gehäuse ist zwar keine Schönheit, aber doch recht preiswert.&lt;br /&gt;
Typenbezeichnung: RM2055M&lt;br /&gt;
&lt;br /&gt;
== Firmware PIC ==&lt;br /&gt;
Die Entwicklung der Firmware für den PIC18LF2550  geht mit MPlab 8 respektive dem C18 Compiler von Statten. MPlab ist kostenlos, der C18 Compiler bis auf die stärkste Optimierungsstufe ebenfalls. Die Quellen für die Firmware werden auch offengelegt.&lt;br /&gt;
=== Programmstruktur- und ablauf ===&lt;br /&gt;
Nach anfänglicher Initialisierung des PIC startet die Statemachine [http://http://www.mikrocontroller.net/articles/Statemachine] [http://http://de.wikipedia.org/wiki/Endlicher_Automat]. Neben ihr findet in der main-Funktion nur noch die Abfrage der beiden Bedientasten statt. Mit dem Tastendruck wird zum Zwecke der Entprellung ein Timer gestartet. Alles Andere (incl. PID-Regelung, Wellenpaket- bzw. Phasenan- und Phasenabschnittssteuerung und USB) ist interruptbasiert.&lt;br /&gt;
&lt;br /&gt;
=== Taktversorgung, Nulldurchgangserkennung und Zeitbasis ===&lt;br /&gt;
=== USB ===&lt;br /&gt;
=== SPI für MAX6675 ===&lt;br /&gt;
=== SPI für MAX31855 ===&lt;br /&gt;
&lt;br /&gt;
=== Wellenpaketsteuerung ===&lt;br /&gt;
=== Phasenanschnitt ===&lt;br /&gt;
&lt;br /&gt;
=== PWM für MOSFET ===&lt;br /&gt;
&lt;br /&gt;
== PC-Software (GUI) ==&lt;br /&gt;
[[Datei:gui_alpha.png|thumb|right|300px|Screenshot der GUI (noch Alpha) für den Reflow-Ofen-Controller]]&lt;br /&gt;
&lt;br /&gt;
Die GUI (englisch Graphical User Interface) ist der Einfachheit halber in VB.net programmiert und momentan noch im Alpha-Stadium. Auch hierfür liegen die Quellen später selbstverständlich offen.&lt;br /&gt;
&lt;br /&gt;
=== Funktionen und Modi ===&lt;br /&gt;
[[Datei:modi.png|thumb|right|400px|Auswahl der beschriebenen Modi durch Klick]]&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Ofen-Profil&amp;quot;&#039;&#039;&#039; - Es wird ein Programm (Temperaturkurve) aus dem EEPROM des Reflow-Ofens ausgeführt. Der Backvorgang kann mit der Software gesteuert (START, STOP, ...) und überwacht werden. Hierzu stehen Temperatur, Temperaturänderung, Heizleistung (Ober- und Unterhitze, Lüfter) so wie die graphische Darstellung im zentralen Diagramm zur Verfügung. Eingriffsmöglichkeiten, wie das Ändern der Temperaturkurve sind nicht vorgesehen. Dies soll ein reiner Überwachungs-Modus sein. Um die Temperaturkurve zu verändern zu können, sollte der Modus &amp;quot;PC-Profil&amp;quot; verwendet werden und die Temperaturkurve aus dem EEPROM importiert werden. Dann kann Selbige auch verändert und anschließend ausgeführt bzw. verändert in den EEPROM zurückgeschrieben werden. Dieser Modus stellt ein Äquivalent zur START/STOP-Tasten-Bedienung an der Platine dar und kann selbstverständlich parallel dazu genutzt werden. Die GUI also als Addon zum Stand-Alone-Betrieb.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;PC-Profil&amp;quot;&#039;&#039;&#039; - Es wird ein Programm (Temperaturkurve) ausgeführt welche zuvor am Computer erstellt / editiert wurde. In diesem Modus gibt der Computer Temperaturwerte vor, welche live über die USB-Schnittstelle zum PIC übertragen werden und mit dem dort integrierten PID-Regler ausgeführt werden. Das ermöglicht eine on-the-fly Veränderung der Temperaturkurve während des Backvorgangs. Temperaturkurven können aus Dateien oder dem EEPROM importiert und auch wieder exportiert werden. CSV-Dateien können ebenfalls importiert und exportiert werden. Die &amp;quot;Eingabe&amp;quot; der Temperaturkurve erfolgt entweder über Import (CSV/EEPROM), per Mausklick auf dem zentralen Diagramm oder im sog. DataGridView. Weiteres siehe Unterpunkt &amp;quot;Eingabe der Temperaturkurve (Reflowprofil)&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;manueller Ablauf&amp;quot;&#039;&#039;&#039; - In diesem Modus wird (im Gegensatz zu den oberen beiden Modi &amp;quot;Ofen-Profil&amp;quot; und &amp;quot;PC-Profil&amp;quot;) keine Temperatur geregelt. Hier wird die Leistung des Ofens in % eingestellt und gesteuert. Der PID-Regler ist nicht in Aktion. Die Temperatur, Temperaturänderung so wie der Temperaturverlauf werden selbstredend angezeigt bzw. im Diagramm dargestellt. Der Modus &amp;quot;manueller Ablauf&amp;quot; fährt ähnlich dem Modus &amp;quot;PC-Profil&amp;quot; die im DataGridView eingetragenen Leistungs-Zeit-Punkte ab. Für jeden Zeitpunkt ist eine Leistung vorgegeben. Die Eingabe erfolgt ähnlich wie unter &amp;quot;Eingabe der Temperaturkurve (Reflowprofil)&amp;quot; beschrieben. Nur eben, dass eine Leistung und keine Temperatur angegeben wird. Die Eingabe der Leistung kann nicht im Zeit-Temperatur-Diagramm erfolgen sondern mittels der Schieberegler oder direkt tabellarisch.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;manueller Modus&amp;quot;&#039;&#039;&#039; - Dieser Modus enthält 2 Submodi&lt;br /&gt;
** &amp;quot;manueller Leistungsmodus&amp;quot; - Auch in diesem Modus wird die Leistung gesteuert. Es wird keine Temperatur geregelt, der PID-Regler für die Temperatur ist nicht in Betrieb. Die Einstellung hier erfolgt über die drei Schieberegler oder über eine numerische Eingabe durch Klick auf die Leistungsangabe unter dem Schieberegler. Durch Klick auf die Texte &amp;quot;TOP&amp;quot;, &amp;quot;BOTTOM&amp;quot;, &amp;quot;FAN&amp;quot; (Oberhitze, Unterhitze, Lüfter) können selbige deaktiviert bzw. aktiviert werden. Auch in diesem Modus wird Temperatur, Temperaturänderung so wie der Temperaturverlauf dargestellt.&lt;br /&gt;
** &amp;quot;manueller Temperaturmodus&amp;quot; - Hier wird die Temperatur wieder mittels des Temperatur-PIDs geregelt. Die Temperatur wird entweder mittels Schieberegler (Ober- und Unterhitze-Regler sind jetzt gekoppelt) oder durch eine numerische Eingabe unterhalb der Schieberegler vorgegeben. Anzeige wie im &amp;quot;manuellen Leistungsmodus&amp;quot;. Der Lüfter kann unabhängig vom PID in seiner Leistung geregelt werden. Ein evtl. durch den Luftstrom verursachter Temperaturabfall wird vom PID selbstverständlich ausgeregelt (aus diesem Grunde ist es ja ein Regler).&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Programmieren&amp;quot;&#039;&#039;&#039; - Hier kann ein neues &#039;&#039;&#039;Temperatur&#039;&#039;&#039;-Programm für den EEPROM-Speicher des Ofens erstellt und editiert werden. Die Eingabemöglichkeiten sind unter &amp;quot;Eingabe der Temperaturkurve (Reflowprofil)&amp;quot; beschrieben. Dieser Modus ist zum reinen Programmieren des Ofens gedacht und ermöglicht keine weitere Steuerung oder Überwachung des Ofens.&lt;br /&gt;
&lt;br /&gt;
=== Eingabe der Temperaturkurve (Reflowprofil) ===&lt;br /&gt;
[[Datei:datagridview.png|thumb|right|400px|tabellarische Anzeige und Editiermöglichkeit der Temperaturkurve]]&lt;br /&gt;
Die Eingabe der Temperaturkurve erfolgt entweder über Import (CSV/EEPROM), per Mausklick auf dem zentralen Diagramm oder im sog. DataGridView (Excel-ähnliche Bedienung in tabellarischer Form). &lt;br /&gt;
&lt;br /&gt;
* CSV-Import + Export&lt;br /&gt;
* EEPROM-Import + Export&lt;br /&gt;
* Im rechts stehenden Screenshotbeispiel wird eine tabellarische Eingabeform mit einem DataGridView gezeigt: Die Temperatur (erster Temperaturpunkt = Punkt 0) von 100°C wird linear über einen Zeitraum von 0-30s verteilt. Bei 30s hat der Ofen die Temperatur von 100°C. Dafür setzt die Regelung die Oberhitze, die Unterhitze ein. Der Lüfter ist deaktiviert. In der Zeit von 30s bis 120s wird die Temperatur nun von 100°C auf 150°C linear angehoben. Von 120s bis 180s Backzeit steigt die Temperatur von 150°C auf 250°C. Von 180s bis 200s wird die Temperatur auf 280°C angehoben. Anschließend wird sie zwischen 200s und 220s auf 280°C gehalten (280°C@200s und 280°C@220s) um dann bis 240s wieder auf 250°C zu fallen. Bis zum Zeitpunkt 300s wird dann die Temperatur 30°C angestrebt. Zusätzlich ist der Lüfter nun aktiviert (soweit der Ofen eine Umluftfunktion besitzt). Bei Punkt 7 sind Ober- und Unterhitze deaktiviert nur noch der Lüfter kühlt. Da hier bei &amp;quot;Zeit[s]&amp;quot; die 0 eingetragen wird der Zustand (hier nur Lüfter an) für einen unendlich langen Zeitraum auf 0 gehalten. Also so lange wie das Programm aktiviert ist wird der Lüfter laufen. Natürlich könnte man hier auch z.B. 100°C und Zeitpunkt 0s eintragen. Dann würde der Ofen bis zum manuellen Beenden des Programms (klick auf STOP-Button oder Drücken des START/STOP-Tasters auf der Platine/Steuerung) 100°C halten.&lt;br /&gt;
* Alle Zellen des DataGridView sind editierbar (zur Veränderung der Temperatur, Zeitpunkt, ...)&lt;br /&gt;
* Direkter Klick auf das zentrale Temperatur-Zeit-Diagramm trägt den Zeitpunkt so wie die Temperatur unter dem Mauszeiger in die Tabelle (das DataGridView) ein. Die ausgewählte Zeile wird beschrieben oder überschrieben. Neue Zeilen (also Temperatur-Zeit-Punkte) können durch klick auf den &amp;quot;Plus-Button&amp;quot; hinzugefügt werden. Ebenso ist das Löschen oder Verschieben einer oder mehrerer Zeile gleichzeitig möglich.&lt;br /&gt;
&lt;br /&gt;
=== Beschreibung der Steuerungsmöglichkeiten ===&lt;br /&gt;
In Abhängigkeit des gewählten Modus bestehen einige Steuerungs-, Einstellungs- und Kontrollmöglichkeiten:&lt;br /&gt;
* &#039;&#039;&#039;Schieberegler&#039;&#039;&#039; für Temperatur od. Leistung (je nach Modus) für Oberhitze, Unterhitze und Lüfter. Je nach Hardwareausführung. &lt;br /&gt;
** Klick auf &amp;quot;TOP&amp;quot;, &amp;quot;BOTTOM&amp;quot; oder &amp;quot;FAN&amp;quot; aktiviert oder deaktiviert die entsprechende Funktion bzw. Hardware.&lt;br /&gt;
** Numerische Eingabe der Werte für die Schieberegler durch Klick auf die Anzeige unterhalb der Schieberegler. Werte können auch im deaktivierten Zustand angegeben werden. Die Übernahme erfolgt durch den &amp;quot;Aktivierungsklick&amp;quot; auf &amp;quot;TOP&amp;quot;, &amp;quot;BOTTOM&amp;quot; oder &amp;quot;FAN&amp;quot;&lt;br /&gt;
* &#039;&#039;&#039;T1, dT1, T2, dT2&#039;&#039;&#039; - Anzeige der gemessenen Temperatur so wie die momentane Temperaturänderung am jeweiligen Sensor. &lt;br /&gt;
* &#039;&#039;&#039;Bedienbuttons&#039;&#039;&#039;&lt;br /&gt;
** Play - Startet das Programm am angegebenen Startpunkt (siehe unten)&lt;br /&gt;
** Pause - Pausiert das Programm - weitere Pauseoptionen siehe unten&lt;br /&gt;
** Stop - Stopt den Programmablauf&lt;br /&gt;
** Vor / Zurück - Springt zwischen Temperaturpunkten hin und her. Dient zum überspringen oder zurückspringen zu gewissen Temperatur-Zeit-Punkten. Ermöglicht z.B. das Überspringen eines Ablaufes der eine lange Preheat- oder Dryphase hat.&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Status&amp;quot;&#039;&#039;&#039; - zeigt den aktuellen Zustand des Programms an (READY, START, WAITING, PAUSE, ...)&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;RESET&amp;quot;&#039;&#039;&#039; - setzt das (begonnene) Programm zurück. Beinhaltet neben dem Programmablauf auch das Zurücksetzen der graphischen Anzeige des Diagramms, etc.&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Startpunkt&amp;quot;&#039;&#039;&#039; - legt den ersten Punkt des Programmablaufes fest. &lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Wiederholungen&amp;quot;&#039;&#039;&#039; - ermöglicht das wiederholte Backen ohne das Programm händisch immer wieder neu starten zu müssen. Die Anzahl der Wiederholungen ist einstellbar (0 für unendlich viele) und es ist eine Wartezeit zwischen den Wiederholungen einstellbar. Alternativ kann eine Meldung nach jedem vollendeten Backvorgang abgegeben werden. Nach Bestätigung dieser wird die nächste Wiederholung ausgeführt.&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Pause&amp;quot;&#039;&#039;&#039; - Pauseneinstellungen. Hier sind Optionen wählbar was passieren soll, falls der Pausebutton betätigt wird:&lt;br /&gt;
** Pausezeit - gibt an wie lange die Pause dauern soll [s], danach fährt das Programm automatisch gemäß des gewählten Pausemodus fort. Für eine Pause ohne automatisches Fortfahren (Countdowntimer) &#039;0&#039; angeben.&lt;br /&gt;
** Pausemodus &amp;quot;aktuelle Temperatur halten, WarmUp, Fortsetzen&amp;quot; - Ofen hält die Temperatur (Zieltemperatur) des Zeitpunktes als der Pausebutton betätigt wurde. WarmUp bedeutet, dass nach dem Beenden des Pausemodus zunächst die Zieltemperatur wieder erreicht werden &#039;&#039;&#039;muss&#039;&#039;&#039; bevor der nächste Punkt angesteuert wird. Klingt paradox, wenn die Temperatur doch so und so gehalten wird, ist aber nicht so. Die Wahrscheinlichkeit ist hoch, dass der Pausemodus benutzt wird um die Ofentüre zu öffnen und Korrekturen an der Platine vorzunehmen. Unter Umständen ist die Heizung des Ofens jedoch nicht in der Lage den dadurch entstehenden Wärmeverlust zu kompensieren. Fährt das Programm dann sofort fort, so könnten evtl. kritische (Hoch-)Punkte des Lötprofils &amp;quot;unterfahren&amp;quot; werden. Dem wirkt WarmUp entgegen.&lt;br /&gt;
** Pausemodus &amp;quot;aktuelle Temperatur halten, Fortsetzen&amp;quot; - siehe oben, nur ohne WarmUp.&lt;br /&gt;
** Pausemodus &amp;quot;definierte Temperatur halten, WarmUp, Fortsetzen&amp;quot; - siehe oben. Statt der aktuellen Zieltemperatur wird jedoch nun im Pausemodus eine einzustellende Pausetemperatur gehalten. Mit WarmUp.&lt;br /&gt;
** Pausemodus &amp;quot;definierte Temperatur halten, Fortsetzen&amp;quot; - siehe oben, nur ohne WarmUp.&lt;br /&gt;
** &amp;quot;Pausetemperatur&amp;quot; - spezielle Temperatur die bei entsprechender Pausemoduswahl für die Dauer der Pause gehalten wird.&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Ende&amp;quot;&#039;&#039;&#039; - gibt an was am Ende eines durchlaufenen Reflow-Programms passieren soll. Ist der Wiederholungsmodus aktiviert, tritt dieses Ereignis erst nach Durchlauf aller Wiederholungen ein. Folgende Modi sind möglich:&lt;br /&gt;
** automatischer Reset - am Ende des Programms wird alles automatisch zurückgesetzt, alle Graphiken und Anzeigen gelöscht.&lt;br /&gt;
** manueller Reset - am Ende des Programms bleiben alle Anzeigen, Graphiken, etc erhalten und müssen vor Beginn eines neuen Reflowvorgangs händisch durch Klick auf &amp;quot;RESET&amp;quot; zurückgesetzt werden.&lt;br /&gt;
** Benutzermeldung - lässt eine Meldung erscheinen. Alle Anzeigen und Graphiken bleiben erhalten bis der Benutzer diese Meldung bestätigt. Mit Bestätigung dieser Meldung wird ein automatischer Reset vorgenommen.&lt;br /&gt;
&lt;br /&gt;
=== Loggen des Temperaturverlaufes ===&lt;br /&gt;
Es ist möglich jeden Backvorgang in eine CSV-Datei zu loggen. (Software- und PID-Einstellungen). Geloggte CSV-Dateien können eingelesen und im zentralen Temperatur-Zeit-Diagramm begutachtet werden. Ein Ist-Soll-Vergleich ist ebenso möglich wie die direkte Anzeige des Fehlers (&amp;quot;Ist minus Soll&amp;quot;). Dank CSV können die Daten auch mit anderen Programmen (Excel, etc.) weiterverarbeitet werden.&lt;br /&gt;
&lt;br /&gt;
== Ofen / Pizzaofen ==&lt;br /&gt;
=== Leistung und Volumen ===&lt;br /&gt;
=== Dämmung ===&lt;br /&gt;
=== Umluft ===&lt;br /&gt;
=== Bezugsquellen ===&lt;br /&gt;
=== Diskussionen im Forum ===&lt;br /&gt;
* Umfangreicher Thread u.A. Leistungsvermögen, Temperaturmessung und Dämmung [http://www.mikrocontroller.net/topic/270627]&lt;br /&gt;
&lt;br /&gt;
== FAQ ==&lt;br /&gt;
&lt;br /&gt;
* Q1: Ich habe einen PT100/PT1000 und möchte den anschließen. Geht das?&lt;br /&gt;
** A1: Ja natürlich. Dazu ist aber etwas externe Elektronik notwendig. Sowohl 2 ADC-Pins (mit 3V3 Betriebsspannung als fixe Referenzspannung), als auch die UART und SPI/I2C-Schnittstelle stehen zur freien Verfügung. Für PT100/PT1000 wird für vernünftige Messungen ohnehin eine Verstärkung (meist mit OPV) von Nöten sein. Da der PIC-interne ADC &amp;quot;nur&amp;quot; 10bit Auflösung bietet sollte ein externer 16bit ADC in Betracht gezogen werden um das Potential der PT100/PT1000 auszunutzen.&lt;br /&gt;
*Q2: Ich habe von günstigen Temperaturmessungen mit Dioden gehört. Geht das auch hier?&lt;br /&gt;
**A2: Ja. Die Vorwärtsspannung einer Diode verhält sich linear zur Sperrschichttemperatur. Diese Spannung (bei 25°C einer Si-Diode die bekannten 0,7V) kann mittels OPV verstärkt werden und auf einen Spannungsbereich von 0 ... 3V3 aufgebläht werden. Eine billige Lösung, auf Kosten der Genauigkeit. Doch eine Diode ist laut Datenblatt nur bis 150°C geeignet. Es ist also beim Löten mehr oder weniger Pfusch. Wenn ich schon eine Reflow-Steuerung baue, sollte ich doch nicht an ein paar Euro für eine gescheite Temperaturmessung sparen. Einige Anregungen vom Messgerätehersteller Keithley bzgl. der Halbleiterphysik mit interessanten Formeln [http://www.keithley.de/support/data?asset=50486]. Oder natürlich der Klassiker von Thomas Pfeifer [http://thomaspfeifer.net/backofen_smd_reflow.htm]. Oder ein Beitrag mit LT-Spice Simulation zum Thema [http://www.mikrocontroller.net/topic/270627#2833883].&lt;br /&gt;
* Q: God why ... ?&lt;br /&gt;
** A: Because we can !&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Verbesserungen Prototyp ===&lt;br /&gt;
* Bauteile weiter weg von Schraublöchern&lt;br /&gt;
* Dazu Kreis rund um Bohrung auf Bestückdruck&lt;br /&gt;
* Masseanbindung Quarz&lt;br /&gt;
* Klemmen weiter weg vom Rand&lt;br /&gt;
* Klemme und Sicherungshalter weiter auseinander, damit Schutzhabe draufpasst&lt;br /&gt;
* Bohrungen für Drossel 0,2mm größer machen&lt;br /&gt;
* Teilenummer für Conrad-USB-Buchse in BOM übernehmen.&lt;br /&gt;
* Stiftleiste P1  weiter weg von P2 und P4&lt;br /&gt;
* Varistoren näher an Klemmen platzieren&lt;br /&gt;
* Bestückvarianten defineren: 1. minimal 2. Standard 3. Externe Leds und Schalter.&lt;br /&gt;
* THT-Kondensatoren für Snubber - extra Footprint?&lt;br /&gt;
* Ggv. Stiftleistenbelegung für externe Leds so ändern, das keine extra Vorwiderstände notwendig sind.&lt;br /&gt;
* Wert der Drossel checken.(BOM Bestellnummer)&lt;br /&gt;
&lt;br /&gt;
=== Errata Projekt ===&lt;br /&gt;
* LED-Beschriftung passt nicht ganz (Schltplan Netlabel OUT1,2,3,4 sind durcheinander gekommen)&lt;br /&gt;
* Schaltplan UNL2003 fehlerhafte Zuordnung IN5,6,7 &amp;lt;&amp;gt; OUT7,6,5&lt;br /&gt;
* Brückengleichrichter / Optokoppler NICHT die im Schaltplan angegebenen Bestellnummern von Reichelt verwenden. BOM-Bauteile und Bestellnummern sind ok.&lt;br /&gt;
* Beim MOSFET R39 ist die Masseanbindung falsch. Es bestehen drei Möglichkeiten:&lt;br /&gt;
** 1. 0-R-Brücke für R39 einbauen und auf Strombegrenzung verzichten.&lt;br /&gt;
** 2. Eine Polyfuse mit Bauform 1206 einbauen. &lt;br /&gt;
** 3. Das kleine Leiterbahnstückchen zwischen R38 und R39 unterbrechen und statt dessen die Leiterbahn zwischen R39 und der Klemme mit der Durchkontaktierung bei R38 verbinden.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* Diskussion [http://www.mikrocontroller.net/topic/297217 Diskussion]&lt;br /&gt;
* Dextrel Nulldurchgang [http://www.dextrel.net/diyzerocrosser.htm Nulldurchgangschaltung]&lt;br /&gt;
* Gehäuse [http://www.hammondmfg.com/pdf/RM2015M.pdf Gehäuse Hammond]&lt;br /&gt;
* Bezugsquelle SOS Elektronik [http://www.soselectronic.com/?str=371&amp;amp;artnum=73595&amp;amp;name=hammond-ritec-rm2055m Gehäuse]&lt;br /&gt;
* Bezugsgquelle [http://www.druckerzubehoer.de/shop/product/catid/H-UNIVERSALZUBEHOER_HZB/subcatid/UNIVERSALZUBEHOER_GROUP1_HZB/productid/1727063-390722LA/site/1/lng/de_DE Mini USB Netzteil]&lt;br /&gt;
* Bezugsquelle Termoelement: TBD&lt;br /&gt;
* Bezugsquelle Steckdosen für Schalttafeleinbau: TBD&lt;br /&gt;
* Bezugsquelle [http://www.schaeffer-ag.de/ Frontplatten]&lt;br /&gt;
 &lt;br /&gt;
[[Kategorie:Projekte]]&lt;br /&gt;
[[Kategorie:PIC]]&lt;br /&gt;
[[Kategorie:PIC-Boards]]&lt;br /&gt;
[[Kategorie:Platinen]]&lt;/div&gt;</summary>
		<author><name>Frankman</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=Reflow_Ofen_Steuerung&amp;diff=76109</id>
		<title>Reflow Ofen Steuerung</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=Reflow_Ofen_Steuerung&amp;diff=76109"/>
		<updated>2013-05-29T21:25:22Z</updated>

		<summary type="html">&lt;p&gt;Frankman: /* Verbesserungen Prototyp */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Datei:RFB.jpg]]&lt;br /&gt;
== Einleitung ==&lt;br /&gt;
[[Datei:pcb.png|thumb|right|400px|unbestücktes PCB der Reflow-Ofen-Steuerung]]&lt;br /&gt;
Hier wird eine weitere Reflow-Ofen-Steuerung beschrieben.&lt;br /&gt;
=== Zum Nachbauen ===&lt;br /&gt;
* Spezifikation: [[Datei: Spec Reflow.pdf]]&lt;br /&gt;
* Schaltplan: [[Datei:Reflow.pdf]]&lt;br /&gt;
* Gerberdaten: [[Datei:Gerber Reflow.pdf]]&lt;br /&gt;
* Assemblydrawing: [[Datei:Assembly Reflow.pdf]] &lt;br /&gt;
* Altium-Files: [[Datei:Reflow.zip]]&lt;br /&gt;
* Stückliste als CSV: [[Datei:Reflow.csv]]&lt;br /&gt;
* Stückliste als Open Office: [[Datei:Reflow.ods]]&lt;br /&gt;
* PC Programm: TBD&lt;br /&gt;
* Sourcen PC-Programm: TBD&lt;br /&gt;
* PIC Programm (*.hex): TBD&lt;br /&gt;
* Sourcen Pic-Programm: TBD&lt;br /&gt;
&lt;br /&gt;
=== Motivation ===&lt;br /&gt;
Die Gründe, eine weitere Steuerung zu entwerfen, waren:&lt;br /&gt;
&lt;br /&gt;
# Die Möglichkeit, auch größere Öfen mit 2 Phasen betreiben zu können.&lt;br /&gt;
# Die Steuerung universell zu gestalten. Es sollte möglich sein, diese nicht nur zum Reflow löten zu verwenden.&lt;br /&gt;
# Die Schaltung sollte in Altium entwickelt werden. (Warum kein Eagle??? Altium User wissen es.... :-)&lt;br /&gt;
# Die Schaltung sollte mit USB ausgestattet sein.&lt;br /&gt;
=== Eigenschaften &amp;amp; Spezifikationen ===&lt;br /&gt;
* Temperaturmessung: bis zu 2x &#039;&#039;&#039;Thermoelement&#039;&#039;&#039; (K-Typ) mit MAX6675 (abgekündigt) oder Nachfolger MAX31855 (pin- aber nicht softwarekompatibel)&lt;br /&gt;
* &#039;&#039;&#039;Leistungsstufen&#039;&#039;&#039;: 3x voneinander unabhängige Triac 800V bei 25A, limitiert auf &#039;&#039;&#039;10A @ 250VAC&#039;&#039;&#039; (z.B. Oberhitze, Unterhitze, Umluft)&lt;br /&gt;
* &#039;&#039;&#039;Nulldurchgangserkennung&#039;&#039;&#039; ermöglicht Wellenpaket-, Phasenan- und abschnittssteuerung, galvanische Trennung selbiger&lt;br /&gt;
* 1x &#039;&#039;&#039; MOSFET-Ausgang&#039;&#039;&#039; PWM z.B. für 12V Lüfter, max. 55V 3,5A&lt;br /&gt;
* &#039;&#039;&#039;feste Programme&#039;&#039;&#039; im EEPROM über 2-Tasterbedienung und LEDs wähl- und ausführbar. &#039;&#039;&#039;PC-unabhängiger Betrieb&#039;&#039;&#039;. Beliebig viele Programme möglich, für die Auswahl stehen 4 benutzer-konfigurierbare LEDs zur Verfügung&lt;br /&gt;
* Betrieb am Computer für mehr Reflowprofile&lt;br /&gt;
* Mini-USB-Buchse zur Steuerung / Programmierung über GUI&lt;br /&gt;
* Günstiges passendes &#039;&#039;&#039;Gehäuse&#039;&#039;&#039;, alle LEDs und Taster auf Stiftleisten herausgeführt&lt;br /&gt;
* PID-Temperaturregler&lt;br /&gt;
* UART, SPI, I2C und 2x ADC auf Stiftleisten herausgeführt (-&amp;gt; Erweiterungen)&lt;br /&gt;
* Versorgung über USB (&amp;lt; 100mA), interne Versorgungsspannung 3,3V&lt;br /&gt;
* umfangreiche EMV-gerechte Entstörung für den Bedarfsfall&lt;br /&gt;
&lt;br /&gt;
== Technische Realisierung==&lt;br /&gt;
=== PIC18LF2550 Grundbeschaltung ===&lt;br /&gt;
[[Datei:osc_vs_vcc.png|thumb|right|200px|Taktraten und Versorgungsspannung PIC18LF2550 vs. PIC18LF2550, Datenblatt S. 370/438]]&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 3/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Hier kommt ein PIC18&#039;&#039;&#039;L&#039;&#039;&#039;F2550 zum Einsatz. Er verfügt über eine USB-Schnittstelle und ist für Betriebsspannungen von 2 ... 5,5V ausgelegt. Sein Verwandter PIC18F2550 (ohne L) ist nicht für Betriebsspannungen &amp;lt; 4,2V ausgelegt. Dies ist bei USB sowiesor nicht immer erfüllt und die Thermoelement ICs vertragen ohnehin keine 5V, daher wurde die Betriebsspannung auf 3,3V reduziert. Neben Standard-Decoupling (100nF Kerko pro Vcc-Vss-Pärchen) wurde das ICSP-Interface in alt bewährter Pinbelegung (PICKit1,2,3) angebracht. PGD und PGC sind nicht weiter beschaltet, MCRL wird in Standardbeschaltung als Resetpin verwendet. Der Resetschalter findet sich auf dem Top-Sheet (Schaltplan S. 1/22). Die Taktversorgung erfolgt zwingend über einen 24 MHz Quarz (-&amp;gt; USB). Man beachte diesbezüglich rechts stehende Grafik zu Taktraten und Versorgungsspannungen (Vdd bzw. auch Vcc genannt). Auch zu finden im Datenblatt des PICs auf Seite 370.&lt;br /&gt;
&lt;br /&gt;
=== PIC18LF2550 USB Beschaltung ===&lt;br /&gt;
[[Datei:usb_part.png|thumb|right|200px|PIC18(L)F2550&lt;br /&gt;
 Standard &lt;br /&gt;
USB-Beschaltung am PIC]]&lt;br /&gt;
[[Datei:usb_protect.png|thumb|right|200px|USB-Schutzbeschaltung und Mini-USB-Buchse]]&lt;br /&gt;
&lt;br /&gt;
Die Beschaltung der USB-Schnittstelle am PIC ist 1:1 aus dem Datenblatt übernommen. Zum Einsatz kommt eine Mini-USB-Buchse (J1).&lt;br /&gt;
Der Gedanke war: Erstens ein sehr preiswertes, fertiges Netzteil verwenden zu können, (ca. 3,67 € bei druckerzubehoer.de) und zweitens, die Steuerung auch mit dem PC / Laptop versorgen zu können.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 4/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
FER1,2 und C7 filtern den Schirm nach GND. Standardmäßig wird man hier wohl 0-Ohm-Widerstände einsetzen. Falls ein Besuch im EMV-Labor geplant ist, weicht man auf den Ferrit aus. C5 und C6 filtern das Signal zusammen mit der Common-Mode-DrosselL1. Die Drossel kann mit den 0-Ohm-Brücken R8 und R9 überbrückt (gespart) werden. IC2 ist als ESD-Schutz gedacht und kann ebenfalls bei ausgeprägten Kostenbewustsein gespart werden. Die Widerstände R6 und R7 dürfen NICHT bestückt werden. FER1,2, C5, IC2 müssen nicht zwingend bestückt werden. Die Bestückung wurde vorgehalten um im Problemfall einfache Abhilfe schaffen zu können.&lt;br /&gt;
&lt;br /&gt;
=== 3,3V Spannungsversorgung ===&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 2/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Die 3,3V Versorgungsspannung für die gesamte Platine wird aus V_USB mittels des LDO Spannungsreglers TOREX - XC6206P332MR abgeleitet. Günstig, SOT-23, klein, 2x 1µF Kondensatoren benötigt, 3,3V max. 250mA. Der hat auch einen sehr kleinen Ruhestrom.&lt;br /&gt;
&lt;br /&gt;
=== Taster ===&lt;br /&gt;
*Der Resettaster zieht den MCLR-Pin nach GND und löst damit den Reset aus. MCLR ist gem. der Standardbeschaltung mit einem 10k Pullup versehen.&lt;br /&gt;
*Die übrigen beiden Taster ziehen RA4 bzw. RB5 ebenfalls nach GND.&lt;br /&gt;
&lt;br /&gt;
=== LEDs + ULN2003L ===&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 11/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Um alle LEDs auf der Platine (3x Optotriac + 7x Status) ansteuern zu können wurde auf das 7fach Darlington-Array ULN2003L zurückgegriffen. Es dient desweiteren auch als &amp;quot;MOSFET-Treiber für Arme&amp;quot;. Alle LEDs werden von diesem Transistor-Array nach Masse geschaltet. Dient der Entlastung der PIC-Ausgänge. Und kostet ja auch nicht viel.&lt;br /&gt;
&lt;br /&gt;
=== MOSFET-Leistungsausgang ===&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 22/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Hier kommt der einfacher N-Kanal MOSFET (LogicLevel) PHT8N06LT zum Einsatz. Er wird über das ULN2003L Array getrieben und ermöglicht den Anschluss eines DC-Verbrauchers mit max. 55V bei 3,5A. Hier könnte beispielsweise ein PC-Lüfter zur Kühlung od. Umluft angeschlossen und über PWM geregelt/gesteuert werden. Ein Gatewiderstand von 100 Ohm ist zum Schutz des Treibers vorgesehen. Eine 0-Ohm-Brücke ist stattdessen aber auch möglich, wenn man eine höhere Leistung schalten möchte.Die Leiterbahnen sollten die 3A schon hergeben. Der 100 Ohm Widerstand bildet eine Stromquelle. Sobald der Strom durch den MOSFET und den Widerstand 33mA erreicht, sinkt UGS gegen 0 V. Folge: Der Mosfet sperrt ( und bleibt ganz....)&lt;br /&gt;
Es kann hier prinzipiell auch ein anderer Mosfet im SOT223-Gehäuse zum Einsatz kommen. Achten sollte man darauf, das der MOSFET schon bei 3,3V Ugs gut leiten sollte.&lt;br /&gt;
&lt;br /&gt;
=== Nulldurchgangserkennung ===&lt;br /&gt;
[[Datei:zerocross.png|thumb|right|200px|Nulldurchgangserkennung]]&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 5/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Die Nulldurchgangserkennung erfolgt nach einer sehr bekannten - jedoch ausgeklügelten - Schaltung.  [http://www.dextrel.net/diyzerocrosser.htm]&lt;br /&gt;
&lt;br /&gt;
ACHTUNG: DER IM SCHALTPLAN VERZEICHNETE OPTOKOPPLER und BRÜCKENGLEICHRICHTER VON REICHELT DARF KEINESFALLS VERWENDET WERDEN! Pinbelegung! Bitte den Optokoppler aus der Stückliste nehmen!&lt;br /&gt;
&lt;br /&gt;
Während einer Halbwelle wird C14 über R33 und R35 bzw. D5 geladen. Währenddessen ist T1 gesperrt. Sobald die Wechselspannung (L1-N über Spannungsteiler (R33+R35) / R34) kleiner ist als die Spannung über C14, steuert T1 durch. Dann entlädt sich C14 über den LED-Vorwiderstand R32. Der durch-steuernde Optokoppler zieht die Sync-Leitung nach GND. (Pullup Sync-Leitung = R31). Dies löst beim PIC auf INT2 einen Interrupt aus. &lt;br /&gt;
&lt;br /&gt;
Dieser Interrupt ermöglicht eine präzise Wellenpaket-, Phasenanschnittsteuerung je nach Bedarf. Das Schalten im Nulldurchgang bei der Wellenpaketsteuerung reduziert EMV-Störungen. Für Phasenanschnitt ist prinzipbedingt ohnehin eine Nulldurchgangserkennung notwendig. Außerdem liefert sie eine völlig ausreichend genaue Zeitbasis für alle Programmabläufe.&lt;br /&gt;
&lt;br /&gt;
=== Triac-Ausgänge + Snubber ===&lt;br /&gt;
[[Datei:triac.png|thumb|right|200px|Triac-Ausgangsbeschaltung]]&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 19,20,21/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Die Ansteuerung des eigentlichen Leistungstriacs BTA140-800 erfolgt über den Optotriac IS6005. Der Strom durch Letzteren wird durch R1x limitiert (Vorwiderstand). R2x und R5x limitieren wiederum den Strom durch den Optotriac. Wenn dieser zündet so folgt unmittelbar der &amp;quot;Leistungstriac&amp;quot; der dann die Last schaltet.&lt;br /&gt;
&lt;br /&gt;
S1x ist ein Sicherungshalter um die Lasten einzeln absichern zu können. Wert 10A Mittelträge.&lt;br /&gt;
&lt;br /&gt;
R3x, R4x, C3x bilden ein Snubber-Network, L1X verhindert eine zu schnelle Stromanstiegsgeschwindikeit damit der Triac nicht &amp;quot;von selbst&amp;quot; zündet. Weglassen äußert sich meist in einem fast nicht hörbaren Click. Damit zeigt einem dann der Triac, dass er ab jetzt für immer recht niederohmig geworden ist. Die Regelung der Temperatur braucht dann nicht mehr über den Prozessor erfolgen, sondern nur noch mit dem Ein-/Ausschalter..... :-)&lt;br /&gt;
&lt;br /&gt;
=== Thermoelemente (MAX6675/MAX31855)  ===&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 6,7/22&#039;&#039;&#039;&lt;br /&gt;
Der inzwischen abgekündigte MAX6675 bzw. sein ehrenwerter Nachfolger MAX31855 sind einfach zu handhabende Thermoelement-ICs mit Kaltstellenkompensation. Thermoelemente funktionieren durch das Verschweißen zweier verschiedener Legierungen (beim K-Typ Thermoelemnt Ni und CrNi). Durch den durch die Umgebungstemperatur bedingten Wärmefluss zwischen beiden entsteht ein elektrische Spannung. Diese wird von besagten ICs verstärkt und digitalisiert (ADC). Diese Spannung / Temperatur ist natürlich wieder relativ zur Umgebungstemperatur an der Kaltstelle (Kontaktierung der beiden Drähte mit dem Messinstrument). Daher messen diese ICs auch gleich die Umgebungstemperatur (Kaltstellenkompensation genannt) mit, verrechnen das und geben das Ergebnis auf der SPI-Schnittstelle aus. MAX6675 leistet 12bit also 0,25°C Auflösung (nicht Genauigkeit!) über einen Temperaturbereich von 0°C to +1024°C. Außerdem wird ein nicht/fehlerhaft angeschlossenes Thermoelement erkannt. Der Thermocouple-IC wird an die SPI-Schnittstelle des PICs angeschlossen (hier MSSP genannt). &lt;br /&gt;
&lt;br /&gt;
MAX6675 und MAX31855 scheinen entgegen der Adafruit-Information [http://www.adafruit.com/products/269] doch pinkompatibel zu sein - die Ansteuerung unterscheidet sich jedoch definitiv. (Zitat: &amp;quot;Now uses the MAX31855K instead of the MAX6675, so it can measure a wider temperature measurement range. Please note! the MAX31855 is not pin compatible or drop-in code compatible with the MAX6675. We do have an Arduino library for both chips but you&#039;ll need to adjust any existing MAX6675 designs for the mew MAX31855. The MAX6675 has been discontinued by Maxim.&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Es wurden 2 dieser ICs und damit 2 Temperaturmessstellen vorgesehen. Dies ermöglich die Messung für eine Regelung der Temperatur so wie eine zusätzliche Überwachung kritischer Bauteile (z.B. ICs oder LEDs). Die Minimalbestückung sieht einen MAX6675/MAX31855 vor. Die Auswahl in der Firmware erfolgt über einen der beiden GPIO-Pins RA5 oder RA0 via dem ChipSelect (CS) des MAX6675/MAX31855.&lt;br /&gt;
&lt;br /&gt;
Neben dem MAX6675/MAX31855 wurde ein Decoupling-Kondensator (C8x, Standard 100nF) so wie ein weiterer im Messpfad (C9x) zur Zwecken der Entstörung vorgeshen. C9x 100nF sollte nur bestückt werden wenn Probleme bei der Temperaturmessung entstehen (z.B. unrealstisch stark schwankende Werte).&lt;br /&gt;
&lt;br /&gt;
=== ADC, SPI, UART &amp;amp; I2C Stiftleiste ===&lt;br /&gt;
ADC, SPI, UART und I2C sind zu Zwecken der Kalibrierung / Erweiterung / Einstellung / Debugging auf Stiftleisten herausgeführt:&lt;br /&gt;
Ähnlichkeiten mit dem FTDI-USB-TTL-Kabel bzw. Arduino XXX Bla Bla Bla Schnittstellenkonverter sind natürlich rein zufällig.&lt;br /&gt;
&lt;br /&gt;
Die I2C-Schnittstelle wurde auf eine Stiftleiste geführt, um z.B. einem LM75 o.ä. anschließen zu können. Damit stehen zur Kalibrierung der Thermoelemente genaue Temperaturen zur Verfügung.&lt;br /&gt;
&lt;br /&gt;
Die Stiftleisten haben alle ein Raster von 2,54mm. So können Pin-Header, Wannenstecker oder ähnliches verwendet werden.&lt;br /&gt;
&lt;br /&gt;
Da ja viele Leute eigene Vorstellungen bezüglich der Frontplattengestaltung haben, wurden auch die Taster und LEDs auf Stiftleisten geführt.&lt;br /&gt;
&lt;br /&gt;
=== Kühlkörper ===&lt;br /&gt;
Da die Triacs der Steuerung für bis zu 10A pro Kanal ausgelegt sind, kann man auf die Kühlkörper nicht verzichten. Es fallen bei 10A bis zu 13 Watt Wärme pro Triac ab. Falls mann auf die Kühlkörper doch verzichten möchte, sollte man darauf achten, die Triacs mit dem Kopf nach unten einzubauen. Diese können sich dann bei Überlast ganz von selber auslöten.... :-)&lt;br /&gt;
&lt;br /&gt;
=== Gehäuse ===&lt;br /&gt;
Die Leiterplatte wurde für ein Gehäuse von Hammond entwickelt.&lt;br /&gt;
Das Gehäuse ist zwar keine Schönheit, aber doch recht preiswert.&lt;br /&gt;
Typenbezeichnung: RM2055M&lt;br /&gt;
&lt;br /&gt;
== Firmware PIC ==&lt;br /&gt;
Die Entwicklung der Firmware für den PIC18LF2550  geht mit MPlab 8 respektive dem C18 Compiler von Statten. MPlab ist kostenlos, der C18 Compiler bis auf die stärkste Optimierungsstufe ebenfalls. Die Quellen für die Firmware werden auch offengelegt.&lt;br /&gt;
=== Programmstruktur- und ablauf ===&lt;br /&gt;
Nach anfänglicher Initialisierung des PIC startet die Statemachine [http://http://www.mikrocontroller.net/articles/Statemachine] [http://http://de.wikipedia.org/wiki/Endlicher_Automat]. Neben ihr findet in der main-Funktion nur noch die Abfrage der beiden Bedientasten statt. Mit dem Tastendruck wird zum Zwecke der Entprellung ein Timer gestartet. Alles Andere (incl. PID-Regelung, Wellenpaket- bzw. Phasenan- und Phasenabschnittssteuerung und USB) ist interruptbasiert.&lt;br /&gt;
&lt;br /&gt;
=== Taktversorgung, Nulldurchgangserkennung und Zeitbasis ===&lt;br /&gt;
=== USB ===&lt;br /&gt;
=== SPI für MAX6675 ===&lt;br /&gt;
=== SPI für MAX31855 ===&lt;br /&gt;
&lt;br /&gt;
=== Wellenpaketsteuerung ===&lt;br /&gt;
=== Phasenanschnitt ===&lt;br /&gt;
&lt;br /&gt;
=== PWM für MOSFET ===&lt;br /&gt;
&lt;br /&gt;
== PC-Software (GUI) ==&lt;br /&gt;
[[Datei:gui_alpha.png|thumb|right|300px|Screenshot der GUI (noch Alpha) für den Reflow-Ofen-Controller]]&lt;br /&gt;
&lt;br /&gt;
Die GUI (englisch Graphical User Interface) ist der Einfachheit halber in VB.net programmiert und momentan noch im Alpha-Stadium. Auch hierfür liegen die Quellen später selbstverständlich offen.&lt;br /&gt;
&lt;br /&gt;
=== Funktionen und Modi ===&lt;br /&gt;
[[Datei:modi.png|thumb|right|400px|Auswahl der beschriebenen Modi durch Klick]]&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Ofen-Profil&amp;quot;&#039;&#039;&#039; - Es wird ein Programm (Temperaturkurve) aus dem EEPROM des Reflow-Ofens ausgeführt. Der Backvorgang kann mit der Software gesteuert (START, STOP, ...) und überwacht werden. Hierzu stehen Temperatur, Temperaturänderung, Heizleistung (Ober- und Unterhitze, Lüfter) so wie die graphische Darstellung im zentralen Diagramm zur Verfügung. Eingriffsmöglichkeiten, wie das Ändern der Temperaturkurve sind nicht vorgesehen. Dies soll ein reiner Überwachungs-Modus sein. Um die Temperaturkurve zu verändern zu können, sollte der Modus &amp;quot;PC-Profil&amp;quot; verwendet werden und die Temperaturkurve aus dem EEPROM importiert werden. Dann kann Selbige auch verändert und anschließend ausgeführt bzw. verändert in den EEPROM zurückgeschrieben werden. Dieser Modus stellt ein Äquivalent zur START/STOP-Tasten-Bedienung an der Platine dar und kann selbstverständlich parallel dazu genutzt werden. Die GUI also als Addon zum Stand-Alone-Betrieb.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;PC-Profil&amp;quot;&#039;&#039;&#039; - Es wird ein Programm (Temperaturkurve) ausgeführt welche zuvor am Computer erstellt / editiert wurde. In diesem Modus gibt der Computer Temperaturwerte vor, welche live über die USB-Schnittstelle zum PIC übertragen werden und mit dem dort integrierten PID-Regler ausgeführt werden. Das ermöglicht eine on-the-fly Veränderung der Temperaturkurve während des Backvorgangs. Temperaturkurven können aus Dateien oder dem EEPROM importiert und auch wieder exportiert werden. CSV-Dateien können ebenfalls importiert und exportiert werden. Die &amp;quot;Eingabe&amp;quot; der Temperaturkurve erfolgt entweder über Import (CSV/EEPROM), per Mausklick auf dem zentralen Diagramm oder im sog. DataGridView. Weiteres siehe Unterpunkt &amp;quot;Eingabe der Temperaturkurve (Reflowprofil)&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;manueller Ablauf&amp;quot;&#039;&#039;&#039; - In diesem Modus wird (im Gegensatz zu den oberen beiden Modi &amp;quot;Ofen-Profil&amp;quot; und &amp;quot;PC-Profil&amp;quot;) keine Temperatur geregelt. Hier wird die Leistung des Ofens in % eingestellt und gesteuert. Der PID-Regler ist nicht in Aktion. Die Temperatur, Temperaturänderung so wie der Temperaturverlauf werden selbstredend angezeigt bzw. im Diagramm dargestellt. Der Modus &amp;quot;manueller Ablauf&amp;quot; fährt ähnlich dem Modus &amp;quot;PC-Profil&amp;quot; die im DataGridView eingetragenen Leistungs-Zeit-Punkte ab. Für jeden Zeitpunkt ist eine Leistung vorgegeben. Die Eingabe erfolgt ähnlich wie unter &amp;quot;Eingabe der Temperaturkurve (Reflowprofil)&amp;quot; beschrieben. Nur eben, dass eine Leistung und keine Temperatur angegeben wird. Die Eingabe der Leistung kann nicht im Zeit-Temperatur-Diagramm erfolgen sondern mittels der Schieberegler oder direkt tabellarisch.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;manueller Modus&amp;quot;&#039;&#039;&#039; - Dieser Modus enthält 2 Submodi&lt;br /&gt;
** &amp;quot;manueller Leistungsmodus&amp;quot; - Auch in diesem Modus wird die Leistung gesteuert. Es wird keine Temperatur geregelt, der PID-Regler für die Temperatur ist nicht in Betrieb. Die Einstellung hier erfolgt über die drei Schieberegler oder über eine numerische Eingabe durch Klick auf die Leistungsangabe unter dem Schieberegler. Durch Klick auf die Texte &amp;quot;TOP&amp;quot;, &amp;quot;BOTTOM&amp;quot;, &amp;quot;FAN&amp;quot; (Oberhitze, Unterhitze, Lüfter) können selbige deaktiviert bzw. aktiviert werden. Auch in diesem Modus wird Temperatur, Temperaturänderung so wie der Temperaturverlauf dargestellt.&lt;br /&gt;
** &amp;quot;manueller Temperaturmodus&amp;quot; - Hier wird die Temperatur wieder mittels des Temperatur-PIDs geregelt. Die Temperatur wird entweder mittels Schieberegler (Ober- und Unterhitze-Regler sind jetzt gekoppelt) oder durch eine numerische Eingabe unterhalb der Schieberegler vorgegeben. Anzeige wie im &amp;quot;manuellen Leistungsmodus&amp;quot;. Der Lüfter kann unabhängig vom PID in seiner Leistung geregelt werden. Ein evtl. durch den Luftstrom verursachter Temperaturabfall wird vom PID selbstverständlich ausgeregelt (aus diesem Grunde ist es ja ein Regler).&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Programmieren&amp;quot;&#039;&#039;&#039; - Hier kann ein neues &#039;&#039;&#039;Temperatur&#039;&#039;&#039;-Programm für den EEPROM-Speicher des Ofens erstellt und editiert werden. Die Eingabemöglichkeiten sind unter &amp;quot;Eingabe der Temperaturkurve (Reflowprofil)&amp;quot; beschrieben. Dieser Modus ist zum reinen Programmieren des Ofens gedacht und ermöglicht keine weitere Steuerung oder Überwachung des Ofens.&lt;br /&gt;
&lt;br /&gt;
=== Eingabe der Temperaturkurve (Reflowprofil) ===&lt;br /&gt;
[[Datei:datagridview.png|thumb|right|400px|tabellarische Anzeige und Editiermöglichkeit der Temperaturkurve]]&lt;br /&gt;
Die Eingabe der Temperaturkurve erfolgt entweder über Import (CSV/EEPROM), per Mausklick auf dem zentralen Diagramm oder im sog. DataGridView (Excel-ähnliche Bedienung in tabellarischer Form). &lt;br /&gt;
&lt;br /&gt;
* CSV-Import + Export&lt;br /&gt;
* EEPROM-Import + Export&lt;br /&gt;
* Im rechts stehenden Screenshotbeispiel wird eine tabellarische Eingabeform mit einem DataGridView gezeigt: Die Temperatur (erster Temperaturpunkt = Punkt 0) von 100°C wird linear über einen Zeitraum von 0-30s verteilt. Bei 30s hat der Ofen die Temperatur von 100°C. Dafür setzt die Regelung die Oberhitze, die Unterhitze ein. Der Lüfter ist deaktiviert. In der Zeit von 30s bis 120s wird die Temperatur nun von 100°C auf 150°C linear angehoben. Von 120s bis 180s Backzeit steigt die Temperatur von 150°C auf 250°C. Von 180s bis 200s wird die Temperatur auf 280°C angehoben. Anschließend wird sie zwischen 200s und 220s auf 280°C gehalten (280°C@200s und 280°C@220s) um dann bis 240s wieder auf 250°C zu fallen. Bis zum Zeitpunkt 300s wird dann die Temperatur 30°C angestrebt. Zusätzlich ist der Lüfter nun aktiviert (soweit der Ofen eine Umluftfunktion besitzt). Bei Punkt 7 sind Ober- und Unterhitze deaktiviert nur noch der Lüfter kühlt. Da hier bei &amp;quot;Zeit[s]&amp;quot; die 0 eingetragen wird der Zustand (hier nur Lüfter an) für einen unendlich langen Zeitraum auf 0 gehalten. Also so lange wie das Programm aktiviert ist wird der Lüfter laufen. Natürlich könnte man hier auch z.B. 100°C und Zeitpunkt 0s eintragen. Dann würde der Ofen bis zum manuellen Beenden des Programms (klick auf STOP-Button oder Drücken des START/STOP-Tasters auf der Platine/Steuerung) 100°C halten.&lt;br /&gt;
* Alle Zellen des DataGridView sind editierbar (zur Veränderung der Temperatur, Zeitpunkt, ...)&lt;br /&gt;
* Direkter Klick auf das zentrale Temperatur-Zeit-Diagramm trägt den Zeitpunkt so wie die Temperatur unter dem Mauszeiger in die Tabelle (das DataGridView) ein. Die ausgewählte Zeile wird beschrieben oder überschrieben. Neue Zeilen (also Temperatur-Zeit-Punkte) können durch klick auf den &amp;quot;Plus-Button&amp;quot; hinzugefügt werden. Ebenso ist das Löschen oder Verschieben einer oder mehrerer Zeile gleichzeitig möglich.&lt;br /&gt;
&lt;br /&gt;
=== Beschreibung der Steuerungsmöglichkeiten ===&lt;br /&gt;
In Abhängigkeit des gewählten Modus bestehen einige Steuerungs-, Einstellungs- und Kontrollmöglichkeiten:&lt;br /&gt;
* &#039;&#039;&#039;Schieberegler&#039;&#039;&#039; für Temperatur od. Leistung (je nach Modus) für Oberhitze, Unterhitze und Lüfter. Je nach Hardwareausführung. &lt;br /&gt;
** Klick auf &amp;quot;TOP&amp;quot;, &amp;quot;BOTTOM&amp;quot; oder &amp;quot;FAN&amp;quot; aktiviert oder deaktiviert die entsprechende Funktion bzw. Hardware.&lt;br /&gt;
** Numerische Eingabe der Werte für die Schieberegler durch Klick auf die Anzeige unterhalb der Schieberegler. Werte können auch im deaktivierten Zustand angegeben werden. Die Übernahme erfolgt durch den &amp;quot;Aktivierungsklick&amp;quot; auf &amp;quot;TOP&amp;quot;, &amp;quot;BOTTOM&amp;quot; oder &amp;quot;FAN&amp;quot;&lt;br /&gt;
* &#039;&#039;&#039;T1, dT1, T2, dT2&#039;&#039;&#039; - Anzeige der gemessenen Temperatur so wie die momentane Temperaturänderung am jeweiligen Sensor. &lt;br /&gt;
* &#039;&#039;&#039;Bedienbuttons&#039;&#039;&#039;&lt;br /&gt;
** Play - Startet das Programm am angegebenen Startpunkt (siehe unten)&lt;br /&gt;
** Pause - Pausiert das Programm - weitere Pauseoptionen siehe unten&lt;br /&gt;
** Stop - Stopt den Programmablauf&lt;br /&gt;
** Vor / Zurück - Springt zwischen Temperaturpunkten hin und her. Dient zum überspringen oder zurückspringen zu gewissen Temperatur-Zeit-Punkten. Ermöglicht z.B. das Überspringen eines Ablaufes der eine lange Preheat- oder Dryphase hat.&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Status&amp;quot;&#039;&#039;&#039; - zeigt den aktuellen Zustand des Programms an (READY, START, WAITING, PAUSE, ...)&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;RESET&amp;quot;&#039;&#039;&#039; - setzt das (begonnene) Programm zurück. Beinhaltet neben dem Programmablauf auch das Zurücksetzen der graphischen Anzeige des Diagramms, etc.&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Startpunkt&amp;quot;&#039;&#039;&#039; - legt den ersten Punkt des Programmablaufes fest. &lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Wiederholungen&amp;quot;&#039;&#039;&#039; - ermöglicht das wiederholte Backen ohne das Programm händisch immer wieder neu starten zu müssen. Die Anzahl der Wiederholungen ist einstellbar (0 für unendlich viele) und es ist eine Wartezeit zwischen den Wiederholungen einstellbar. Alternativ kann eine Meldung nach jedem vollendeten Backvorgang abgegeben werden. Nach Bestätigung dieser wird die nächste Wiederholung ausgeführt.&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Pause&amp;quot;&#039;&#039;&#039; - Pauseneinstellungen. Hier sind Optionen wählbar was passieren soll, falls der Pausebutton betätigt wird:&lt;br /&gt;
** Pausezeit - gibt an wie lange die Pause dauern soll [s], danach fährt das Programm automatisch gemäß des gewählten Pausemodus fort. Für eine Pause ohne automatisches Fortfahren (Countdowntimer) &#039;0&#039; angeben.&lt;br /&gt;
** Pausemodus &amp;quot;aktuelle Temperatur halten, WarmUp, Fortsetzen&amp;quot; - Ofen hält die Temperatur (Zieltemperatur) des Zeitpunktes als der Pausebutton betätigt wurde. WarmUp bedeutet, dass nach dem Beenden des Pausemodus zunächst die Zieltemperatur wieder erreicht werden &#039;&#039;&#039;muss&#039;&#039;&#039; bevor der nächste Punkt angesteuert wird. Klingt paradox, wenn die Temperatur doch so und so gehalten wird, ist aber nicht so. Die Wahrscheinlichkeit ist hoch, dass der Pausemodus benutzt wird um die Ofentüre zu öffnen und Korrekturen an der Platine vorzunehmen. Unter Umständen ist die Heizung des Ofens jedoch nicht in der Lage den dadurch entstehenden Wärmeverlust zu kompensieren. Fährt das Programm dann sofort fort, so könnten evtl. kritische (Hoch-)Punkte des Lötprofils &amp;quot;unterfahren&amp;quot; werden. Dem wirkt WarmUp entgegen.&lt;br /&gt;
** Pausemodus &amp;quot;aktuelle Temperatur halten, Fortsetzen&amp;quot; - siehe oben, nur ohne WarmUp.&lt;br /&gt;
** Pausemodus &amp;quot;definierte Temperatur halten, WarmUp, Fortsetzen&amp;quot; - siehe oben. Statt der aktuellen Zieltemperatur wird jedoch nun im Pausemodus eine einzustellende Pausetemperatur gehalten. Mit WarmUp.&lt;br /&gt;
** Pausemodus &amp;quot;definierte Temperatur halten, Fortsetzen&amp;quot; - siehe oben, nur ohne WarmUp.&lt;br /&gt;
** &amp;quot;Pausetemperatur&amp;quot; - spezielle Temperatur die bei entsprechender Pausemoduswahl für die Dauer der Pause gehalten wird.&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Ende&amp;quot;&#039;&#039;&#039; - gibt an was am Ende eines durchlaufenen Reflow-Programms passieren soll. Ist der Wiederholungsmodus aktiviert, tritt dieses Ereignis erst nach Durchlauf aller Wiederholungen ein. Folgende Modi sind möglich:&lt;br /&gt;
** automatischer Reset - am Ende des Programms wird alles automatisch zurückgesetzt, alle Graphiken und Anzeigen gelöscht.&lt;br /&gt;
** manueller Reset - am Ende des Programms bleiben alle Anzeigen, Graphiken, etc erhalten und müssen vor Beginn eines neuen Reflowvorgangs händisch durch Klick auf &amp;quot;RESET&amp;quot; zurückgesetzt werden.&lt;br /&gt;
** Benutzermeldung - lässt eine Meldung erscheinen. Alle Anzeigen und Graphiken bleiben erhalten bis der Benutzer diese Meldung bestätigt. Mit Bestätigung dieser Meldung wird ein automatischer Reset vorgenommen.&lt;br /&gt;
&lt;br /&gt;
=== Loggen des Temperaturverlaufes ===&lt;br /&gt;
Es ist möglich jeden Backvorgang in eine CSV-Datei zu loggen. (Software- und PID-Einstellungen). Geloggte CSV-Dateien können eingelesen und im zentralen Temperatur-Zeit-Diagramm begutachtet werden. Ein Ist-Soll-Vergleich ist ebenso möglich wie die direkte Anzeige des Fehlers (&amp;quot;Ist minus Soll&amp;quot;). Dank CSV können die Daten auch mit anderen Programmen (Excel, etc.) weiterverarbeitet werden.&lt;br /&gt;
&lt;br /&gt;
== Ofen / Pizzaofen ==&lt;br /&gt;
=== Leistung und Volumen ===&lt;br /&gt;
=== Dämmung ===&lt;br /&gt;
=== Umluft ===&lt;br /&gt;
=== Bezugsquellen ===&lt;br /&gt;
=== Diskussionen im Forum ===&lt;br /&gt;
* Umfangreicher Thread u.A. Leistungsvermögen, Temperaturmessung und Dämmung [http://www.mikrocontroller.net/topic/270627]&lt;br /&gt;
&lt;br /&gt;
== FAQ ==&lt;br /&gt;
&lt;br /&gt;
* Q1: Ich habe einen PT100/PT1000 und möchte den anschließen. Geht das?&lt;br /&gt;
** A1: Ja natürlich. Dazu ist aber etwas externe Elektronik notwendig. Sowohl 2 ADC-Pins (mit 3V3 Betriebsspannung als fixe Referenzspannung), als auch die UART und SPI/I2C-Schnittstelle stehen zur freien Verfügung. Für PT100/PT1000 wird für vernünftige Messungen ohnehin eine Verstärkung (meist mit OPV) von Nöten sein. Da der PIC-interne ADC &amp;quot;nur&amp;quot; 10bit Auflösung bietet sollte ein externer 16bit ADC in Betracht gezogen werden um das Potential der PT100/PT1000 auszunutzen.&lt;br /&gt;
*Q2: Ich habe von günstigen Temperaturmessungen mit Dioden gehört. Geht das auch hier?&lt;br /&gt;
**A2: Ja. Die Vorwärtsspannung einer Diode verhält sich linear zur Sperrschichttemperatur. Diese Spannung (bei 25°C einer Si-Diode die bekannten 0,7V) kann mittels OPV verstärkt werden und auf einen Spannungsbereich von 0 ... 3V3 aufgebläht werden. Eine billige Lösung, auf Kosten der Genauigkeit. Doch eine Diode ist laut Datenblatt nur bis 150°C geeignet. Es ist also beim Löten mehr oder weniger Pfusch. Wenn ich schon eine Reflow-Steuerung baue, sollte ich doch nicht an ein paar Euro für eine gescheite Temperaturmessung sparen. Einige Anregungen vom Messgerätehersteller Keithley bzgl. der Halbleiterphysik mit interessanten Formeln [http://www.keithley.de/support/data?asset=50486]. Oder natürlich der Klassiker von Thomas Pfeifer [http://thomaspfeifer.net/backofen_smd_reflow.htm]. Oder ein Beitrag mit LT-Spice Simulation zum Thema [http://www.mikrocontroller.net/topic/270627#2833883].&lt;br /&gt;
* Q: God why ... ?&lt;br /&gt;
** A: Because we can !&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Verbesserungen Prototyp ===&lt;br /&gt;
* Bauteile weiter weg von Schraublöchern&lt;br /&gt;
* Dazu Kreis rund um Bohrung auf Bestückdruck&lt;br /&gt;
* Masseanbindung Quarz&lt;br /&gt;
* Klemmen weiter weg vom Rand&lt;br /&gt;
* Klemme und Sicherungshalter weiter auseinander, damit Schutzhabe draufpasst&lt;br /&gt;
* Bohrungen für Drossel 0,2mm größer machen&lt;br /&gt;
* Teilenummer für Conrad-USB-Buchse in BOM übernehmen.&lt;br /&gt;
* Stiftleiste P1  weiter weg von P2 und P4&lt;br /&gt;
* Varistoren näher an Klemmen platzieren&lt;br /&gt;
* Bestückvarianten defineren: 1. minimal 2. Standard 3. Externe Leds und Schalter.&lt;br /&gt;
* THT-Kondensatoren für Snubber - extra Footprint?&lt;br /&gt;
* Ggv. Stiftleistenbelegung für externe Leds so ändern, das keine extra Vorwiderstände notwendig sind.&lt;br /&gt;
* Wert der Drossel checken.(BOM Bestellnummer)&lt;br /&gt;
&lt;br /&gt;
=== Errata Projekt ===&lt;br /&gt;
* LED-Beschriftung passt nicht ganz (Schltplan Netlabel OUT1,2,3,4 sind durcheinander gekommen)&lt;br /&gt;
* Schaltplan UNL2003 fehlerhafte Zuordnung IN5,6,7 &amp;lt;&amp;gt; OUT7,6,5&lt;br /&gt;
* Brückengleichrichter / Optokoppler NICHT die im Schaltplan angegebenen Bestellnummern von Reichelt verwenden. BOM-Bauteile und Bestellnummern sind ok.&lt;br /&gt;
* Beim MOSFET R39 ist die Masseanbindung falsch. Es bestehen drei Möglichkeiten:&lt;br /&gt;
** 1. 0-R-Brücke für R39 einbauen und auf Strombegrenzung verzichten.&lt;br /&gt;
** 2. Eine Polyfuse mit Bauform 1206 einbauen. &lt;br /&gt;
** 3. Das kleine Leiterbahnstückchen zwischen R38 und R39 unterbrechen und statt dessen die Leiterbahn zwischen R39 und der Klemme mit der Durchkontaktierung bei R38 verbinden.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* Diskussion [http://www.mikrocontroller.net/topic/297217 Diskussion]&lt;br /&gt;
* Dextrel Nulldurchgang [http://www.dextrel.net/diyzerocrosser.htm Nulldurchgangschaltung]&lt;br /&gt;
* Gehäuse [http://www.hammondmfg.com/pdf/RM2015M.pdf Gehäuse Hammond]&lt;br /&gt;
* Bezugsquelle SOS Elektronik [http://www.soselectronic.com/?str=371&amp;amp;artnum=73595&amp;amp;name=hammond-ritec-rm2055m Gehäuse]&lt;br /&gt;
* Bezugsgquelle [http://www.druckerzubehoer.de/shop/product/catid/H-UNIVERSALZUBEHOER_HZB/subcatid/UNIVERSALZUBEHOER_GROUP1_HZB/productid/1727063-390722LA/site/1/lng/de_DE Mini USB Netzteil]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Projekte]]&lt;br /&gt;
[[Kategorie:PIC]]&lt;br /&gt;
[[Kategorie:PIC-Boards]]&lt;br /&gt;
[[Kategorie:Platinen]]&lt;/div&gt;</summary>
		<author><name>Frankman</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=Reflow_Ofen_Steuerung&amp;diff=76108</id>
		<title>Reflow Ofen Steuerung</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=Reflow_Ofen_Steuerung&amp;diff=76108"/>
		<updated>2013-05-29T21:24:14Z</updated>

		<summary type="html">&lt;p&gt;Frankman: /* Links */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Datei:RFB.jpg]]&lt;br /&gt;
== Einleitung ==&lt;br /&gt;
[[Datei:pcb.png|thumb|right|400px|unbestücktes PCB der Reflow-Ofen-Steuerung]]&lt;br /&gt;
Hier wird eine weitere Reflow-Ofen-Steuerung beschrieben.&lt;br /&gt;
=== Zum Nachbauen ===&lt;br /&gt;
* Spezifikation: [[Datei: Spec Reflow.pdf]]&lt;br /&gt;
* Schaltplan: [[Datei:Reflow.pdf]]&lt;br /&gt;
* Gerberdaten: [[Datei:Gerber Reflow.pdf]]&lt;br /&gt;
* Assemblydrawing: [[Datei:Assembly Reflow.pdf]] &lt;br /&gt;
* Altium-Files: [[Datei:Reflow.zip]]&lt;br /&gt;
* Stückliste als CSV: [[Datei:Reflow.csv]]&lt;br /&gt;
* Stückliste als Open Office: [[Datei:Reflow.ods]]&lt;br /&gt;
* PC Programm: TBD&lt;br /&gt;
* Sourcen PC-Programm: TBD&lt;br /&gt;
* PIC Programm (*.hex): TBD&lt;br /&gt;
* Sourcen Pic-Programm: TBD&lt;br /&gt;
&lt;br /&gt;
=== Motivation ===&lt;br /&gt;
Die Gründe, eine weitere Steuerung zu entwerfen, waren:&lt;br /&gt;
&lt;br /&gt;
# Die Möglichkeit, auch größere Öfen mit 2 Phasen betreiben zu können.&lt;br /&gt;
# Die Steuerung universell zu gestalten. Es sollte möglich sein, diese nicht nur zum Reflow löten zu verwenden.&lt;br /&gt;
# Die Schaltung sollte in Altium entwickelt werden. (Warum kein Eagle??? Altium User wissen es.... :-)&lt;br /&gt;
# Die Schaltung sollte mit USB ausgestattet sein.&lt;br /&gt;
=== Eigenschaften &amp;amp; Spezifikationen ===&lt;br /&gt;
* Temperaturmessung: bis zu 2x &#039;&#039;&#039;Thermoelement&#039;&#039;&#039; (K-Typ) mit MAX6675 (abgekündigt) oder Nachfolger MAX31855 (pin- aber nicht softwarekompatibel)&lt;br /&gt;
* &#039;&#039;&#039;Leistungsstufen&#039;&#039;&#039;: 3x voneinander unabhängige Triac 800V bei 25A, limitiert auf &#039;&#039;&#039;10A @ 250VAC&#039;&#039;&#039; (z.B. Oberhitze, Unterhitze, Umluft)&lt;br /&gt;
* &#039;&#039;&#039;Nulldurchgangserkennung&#039;&#039;&#039; ermöglicht Wellenpaket-, Phasenan- und abschnittssteuerung, galvanische Trennung selbiger&lt;br /&gt;
* 1x &#039;&#039;&#039; MOSFET-Ausgang&#039;&#039;&#039; PWM z.B. für 12V Lüfter, max. 55V 3,5A&lt;br /&gt;
* &#039;&#039;&#039;feste Programme&#039;&#039;&#039; im EEPROM über 2-Tasterbedienung und LEDs wähl- und ausführbar. &#039;&#039;&#039;PC-unabhängiger Betrieb&#039;&#039;&#039;. Beliebig viele Programme möglich, für die Auswahl stehen 4 benutzer-konfigurierbare LEDs zur Verfügung&lt;br /&gt;
* Betrieb am Computer für mehr Reflowprofile&lt;br /&gt;
* Mini-USB-Buchse zur Steuerung / Programmierung über GUI&lt;br /&gt;
* Günstiges passendes &#039;&#039;&#039;Gehäuse&#039;&#039;&#039;, alle LEDs und Taster auf Stiftleisten herausgeführt&lt;br /&gt;
* PID-Temperaturregler&lt;br /&gt;
* UART, SPI, I2C und 2x ADC auf Stiftleisten herausgeführt (-&amp;gt; Erweiterungen)&lt;br /&gt;
* Versorgung über USB (&amp;lt; 100mA), interne Versorgungsspannung 3,3V&lt;br /&gt;
* umfangreiche EMV-gerechte Entstörung für den Bedarfsfall&lt;br /&gt;
&lt;br /&gt;
== Technische Realisierung==&lt;br /&gt;
=== PIC18LF2550 Grundbeschaltung ===&lt;br /&gt;
[[Datei:osc_vs_vcc.png|thumb|right|200px|Taktraten und Versorgungsspannung PIC18LF2550 vs. PIC18LF2550, Datenblatt S. 370/438]]&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 3/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Hier kommt ein PIC18&#039;&#039;&#039;L&#039;&#039;&#039;F2550 zum Einsatz. Er verfügt über eine USB-Schnittstelle und ist für Betriebsspannungen von 2 ... 5,5V ausgelegt. Sein Verwandter PIC18F2550 (ohne L) ist nicht für Betriebsspannungen &amp;lt; 4,2V ausgelegt. Dies ist bei USB sowiesor nicht immer erfüllt und die Thermoelement ICs vertragen ohnehin keine 5V, daher wurde die Betriebsspannung auf 3,3V reduziert. Neben Standard-Decoupling (100nF Kerko pro Vcc-Vss-Pärchen) wurde das ICSP-Interface in alt bewährter Pinbelegung (PICKit1,2,3) angebracht. PGD und PGC sind nicht weiter beschaltet, MCRL wird in Standardbeschaltung als Resetpin verwendet. Der Resetschalter findet sich auf dem Top-Sheet (Schaltplan S. 1/22). Die Taktversorgung erfolgt zwingend über einen 24 MHz Quarz (-&amp;gt; USB). Man beachte diesbezüglich rechts stehende Grafik zu Taktraten und Versorgungsspannungen (Vdd bzw. auch Vcc genannt). Auch zu finden im Datenblatt des PICs auf Seite 370.&lt;br /&gt;
&lt;br /&gt;
=== PIC18LF2550 USB Beschaltung ===&lt;br /&gt;
[[Datei:usb_part.png|thumb|right|200px|PIC18(L)F2550&lt;br /&gt;
 Standard &lt;br /&gt;
USB-Beschaltung am PIC]]&lt;br /&gt;
[[Datei:usb_protect.png|thumb|right|200px|USB-Schutzbeschaltung und Mini-USB-Buchse]]&lt;br /&gt;
&lt;br /&gt;
Die Beschaltung der USB-Schnittstelle am PIC ist 1:1 aus dem Datenblatt übernommen. Zum Einsatz kommt eine Mini-USB-Buchse (J1).&lt;br /&gt;
Der Gedanke war: Erstens ein sehr preiswertes, fertiges Netzteil verwenden zu können, (ca. 3,67 € bei druckerzubehoer.de) und zweitens, die Steuerung auch mit dem PC / Laptop versorgen zu können.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 4/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
FER1,2 und C7 filtern den Schirm nach GND. Standardmäßig wird man hier wohl 0-Ohm-Widerstände einsetzen. Falls ein Besuch im EMV-Labor geplant ist, weicht man auf den Ferrit aus. C5 und C6 filtern das Signal zusammen mit der Common-Mode-DrosselL1. Die Drossel kann mit den 0-Ohm-Brücken R8 und R9 überbrückt (gespart) werden. IC2 ist als ESD-Schutz gedacht und kann ebenfalls bei ausgeprägten Kostenbewustsein gespart werden. Die Widerstände R6 und R7 dürfen NICHT bestückt werden. FER1,2, C5, IC2 müssen nicht zwingend bestückt werden. Die Bestückung wurde vorgehalten um im Problemfall einfache Abhilfe schaffen zu können.&lt;br /&gt;
&lt;br /&gt;
=== 3,3V Spannungsversorgung ===&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 2/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Die 3,3V Versorgungsspannung für die gesamte Platine wird aus V_USB mittels des LDO Spannungsreglers TOREX - XC6206P332MR abgeleitet. Günstig, SOT-23, klein, 2x 1µF Kondensatoren benötigt, 3,3V max. 250mA. Der hat auch einen sehr kleinen Ruhestrom.&lt;br /&gt;
&lt;br /&gt;
=== Taster ===&lt;br /&gt;
*Der Resettaster zieht den MCLR-Pin nach GND und löst damit den Reset aus. MCLR ist gem. der Standardbeschaltung mit einem 10k Pullup versehen.&lt;br /&gt;
*Die übrigen beiden Taster ziehen RA4 bzw. RB5 ebenfalls nach GND.&lt;br /&gt;
&lt;br /&gt;
=== LEDs + ULN2003L ===&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 11/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Um alle LEDs auf der Platine (3x Optotriac + 7x Status) ansteuern zu können wurde auf das 7fach Darlington-Array ULN2003L zurückgegriffen. Es dient desweiteren auch als &amp;quot;MOSFET-Treiber für Arme&amp;quot;. Alle LEDs werden von diesem Transistor-Array nach Masse geschaltet. Dient der Entlastung der PIC-Ausgänge. Und kostet ja auch nicht viel.&lt;br /&gt;
&lt;br /&gt;
=== MOSFET-Leistungsausgang ===&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 22/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Hier kommt der einfacher N-Kanal MOSFET (LogicLevel) PHT8N06LT zum Einsatz. Er wird über das ULN2003L Array getrieben und ermöglicht den Anschluss eines DC-Verbrauchers mit max. 55V bei 3,5A. Hier könnte beispielsweise ein PC-Lüfter zur Kühlung od. Umluft angeschlossen und über PWM geregelt/gesteuert werden. Ein Gatewiderstand von 100 Ohm ist zum Schutz des Treibers vorgesehen. Eine 0-Ohm-Brücke ist stattdessen aber auch möglich, wenn man eine höhere Leistung schalten möchte.Die Leiterbahnen sollten die 3A schon hergeben. Der 100 Ohm Widerstand bildet eine Stromquelle. Sobald der Strom durch den MOSFET und den Widerstand 33mA erreicht, sinkt UGS gegen 0 V. Folge: Der Mosfet sperrt ( und bleibt ganz....)&lt;br /&gt;
Es kann hier prinzipiell auch ein anderer Mosfet im SOT223-Gehäuse zum Einsatz kommen. Achten sollte man darauf, das der MOSFET schon bei 3,3V Ugs gut leiten sollte.&lt;br /&gt;
&lt;br /&gt;
=== Nulldurchgangserkennung ===&lt;br /&gt;
[[Datei:zerocross.png|thumb|right|200px|Nulldurchgangserkennung]]&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 5/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Die Nulldurchgangserkennung erfolgt nach einer sehr bekannten - jedoch ausgeklügelten - Schaltung.  [http://www.dextrel.net/diyzerocrosser.htm]&lt;br /&gt;
&lt;br /&gt;
ACHTUNG: DER IM SCHALTPLAN VERZEICHNETE OPTOKOPPLER und BRÜCKENGLEICHRICHTER VON REICHELT DARF KEINESFALLS VERWENDET WERDEN! Pinbelegung! Bitte den Optokoppler aus der Stückliste nehmen!&lt;br /&gt;
&lt;br /&gt;
Während einer Halbwelle wird C14 über R33 und R35 bzw. D5 geladen. Währenddessen ist T1 gesperrt. Sobald die Wechselspannung (L1-N über Spannungsteiler (R33+R35) / R34) kleiner ist als die Spannung über C14, steuert T1 durch. Dann entlädt sich C14 über den LED-Vorwiderstand R32. Der durch-steuernde Optokoppler zieht die Sync-Leitung nach GND. (Pullup Sync-Leitung = R31). Dies löst beim PIC auf INT2 einen Interrupt aus. &lt;br /&gt;
&lt;br /&gt;
Dieser Interrupt ermöglicht eine präzise Wellenpaket-, Phasenanschnittsteuerung je nach Bedarf. Das Schalten im Nulldurchgang bei der Wellenpaketsteuerung reduziert EMV-Störungen. Für Phasenanschnitt ist prinzipbedingt ohnehin eine Nulldurchgangserkennung notwendig. Außerdem liefert sie eine völlig ausreichend genaue Zeitbasis für alle Programmabläufe.&lt;br /&gt;
&lt;br /&gt;
=== Triac-Ausgänge + Snubber ===&lt;br /&gt;
[[Datei:triac.png|thumb|right|200px|Triac-Ausgangsbeschaltung]]&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 19,20,21/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Die Ansteuerung des eigentlichen Leistungstriacs BTA140-800 erfolgt über den Optotriac IS6005. Der Strom durch Letzteren wird durch R1x limitiert (Vorwiderstand). R2x und R5x limitieren wiederum den Strom durch den Optotriac. Wenn dieser zündet so folgt unmittelbar der &amp;quot;Leistungstriac&amp;quot; der dann die Last schaltet.&lt;br /&gt;
&lt;br /&gt;
S1x ist ein Sicherungshalter um die Lasten einzeln absichern zu können. Wert 10A Mittelträge.&lt;br /&gt;
&lt;br /&gt;
R3x, R4x, C3x bilden ein Snubber-Network, L1X verhindert eine zu schnelle Stromanstiegsgeschwindikeit damit der Triac nicht &amp;quot;von selbst&amp;quot; zündet. Weglassen äußert sich meist in einem fast nicht hörbaren Click. Damit zeigt einem dann der Triac, dass er ab jetzt für immer recht niederohmig geworden ist. Die Regelung der Temperatur braucht dann nicht mehr über den Prozessor erfolgen, sondern nur noch mit dem Ein-/Ausschalter..... :-)&lt;br /&gt;
&lt;br /&gt;
=== Thermoelemente (MAX6675/MAX31855)  ===&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 6,7/22&#039;&#039;&#039;&lt;br /&gt;
Der inzwischen abgekündigte MAX6675 bzw. sein ehrenwerter Nachfolger MAX31855 sind einfach zu handhabende Thermoelement-ICs mit Kaltstellenkompensation. Thermoelemente funktionieren durch das Verschweißen zweier verschiedener Legierungen (beim K-Typ Thermoelemnt Ni und CrNi). Durch den durch die Umgebungstemperatur bedingten Wärmefluss zwischen beiden entsteht ein elektrische Spannung. Diese wird von besagten ICs verstärkt und digitalisiert (ADC). Diese Spannung / Temperatur ist natürlich wieder relativ zur Umgebungstemperatur an der Kaltstelle (Kontaktierung der beiden Drähte mit dem Messinstrument). Daher messen diese ICs auch gleich die Umgebungstemperatur (Kaltstellenkompensation genannt) mit, verrechnen das und geben das Ergebnis auf der SPI-Schnittstelle aus. MAX6675 leistet 12bit also 0,25°C Auflösung (nicht Genauigkeit!) über einen Temperaturbereich von 0°C to +1024°C. Außerdem wird ein nicht/fehlerhaft angeschlossenes Thermoelement erkannt. Der Thermocouple-IC wird an die SPI-Schnittstelle des PICs angeschlossen (hier MSSP genannt). &lt;br /&gt;
&lt;br /&gt;
MAX6675 und MAX31855 scheinen entgegen der Adafruit-Information [http://www.adafruit.com/products/269] doch pinkompatibel zu sein - die Ansteuerung unterscheidet sich jedoch definitiv. (Zitat: &amp;quot;Now uses the MAX31855K instead of the MAX6675, so it can measure a wider temperature measurement range. Please note! the MAX31855 is not pin compatible or drop-in code compatible with the MAX6675. We do have an Arduino library for both chips but you&#039;ll need to adjust any existing MAX6675 designs for the mew MAX31855. The MAX6675 has been discontinued by Maxim.&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Es wurden 2 dieser ICs und damit 2 Temperaturmessstellen vorgesehen. Dies ermöglich die Messung für eine Regelung der Temperatur so wie eine zusätzliche Überwachung kritischer Bauteile (z.B. ICs oder LEDs). Die Minimalbestückung sieht einen MAX6675/MAX31855 vor. Die Auswahl in der Firmware erfolgt über einen der beiden GPIO-Pins RA5 oder RA0 via dem ChipSelect (CS) des MAX6675/MAX31855.&lt;br /&gt;
&lt;br /&gt;
Neben dem MAX6675/MAX31855 wurde ein Decoupling-Kondensator (C8x, Standard 100nF) so wie ein weiterer im Messpfad (C9x) zur Zwecken der Entstörung vorgeshen. C9x 100nF sollte nur bestückt werden wenn Probleme bei der Temperaturmessung entstehen (z.B. unrealstisch stark schwankende Werte).&lt;br /&gt;
&lt;br /&gt;
=== ADC, SPI, UART &amp;amp; I2C Stiftleiste ===&lt;br /&gt;
ADC, SPI, UART und I2C sind zu Zwecken der Kalibrierung / Erweiterung / Einstellung / Debugging auf Stiftleisten herausgeführt:&lt;br /&gt;
Ähnlichkeiten mit dem FTDI-USB-TTL-Kabel bzw. Arduino XXX Bla Bla Bla Schnittstellenkonverter sind natürlich rein zufällig.&lt;br /&gt;
&lt;br /&gt;
Die I2C-Schnittstelle wurde auf eine Stiftleiste geführt, um z.B. einem LM75 o.ä. anschließen zu können. Damit stehen zur Kalibrierung der Thermoelemente genaue Temperaturen zur Verfügung.&lt;br /&gt;
&lt;br /&gt;
Die Stiftleisten haben alle ein Raster von 2,54mm. So können Pin-Header, Wannenstecker oder ähnliches verwendet werden.&lt;br /&gt;
&lt;br /&gt;
Da ja viele Leute eigene Vorstellungen bezüglich der Frontplattengestaltung haben, wurden auch die Taster und LEDs auf Stiftleisten geführt.&lt;br /&gt;
&lt;br /&gt;
=== Kühlkörper ===&lt;br /&gt;
Da die Triacs der Steuerung für bis zu 10A pro Kanal ausgelegt sind, kann man auf die Kühlkörper nicht verzichten. Es fallen bei 10A bis zu 13 Watt Wärme pro Triac ab. Falls mann auf die Kühlkörper doch verzichten möchte, sollte man darauf achten, die Triacs mit dem Kopf nach unten einzubauen. Diese können sich dann bei Überlast ganz von selber auslöten.... :-)&lt;br /&gt;
&lt;br /&gt;
=== Gehäuse ===&lt;br /&gt;
Die Leiterplatte wurde für ein Gehäuse von Hammond entwickelt.&lt;br /&gt;
Das Gehäuse ist zwar keine Schönheit, aber doch recht preiswert.&lt;br /&gt;
Typenbezeichnung: RM2055M&lt;br /&gt;
&lt;br /&gt;
== Firmware PIC ==&lt;br /&gt;
Die Entwicklung der Firmware für den PIC18LF2550  geht mit MPlab 8 respektive dem C18 Compiler von Statten. MPlab ist kostenlos, der C18 Compiler bis auf die stärkste Optimierungsstufe ebenfalls. Die Quellen für die Firmware werden auch offengelegt.&lt;br /&gt;
=== Programmstruktur- und ablauf ===&lt;br /&gt;
Nach anfänglicher Initialisierung des PIC startet die Statemachine [http://http://www.mikrocontroller.net/articles/Statemachine] [http://http://de.wikipedia.org/wiki/Endlicher_Automat]. Neben ihr findet in der main-Funktion nur noch die Abfrage der beiden Bedientasten statt. Mit dem Tastendruck wird zum Zwecke der Entprellung ein Timer gestartet. Alles Andere (incl. PID-Regelung, Wellenpaket- bzw. Phasenan- und Phasenabschnittssteuerung und USB) ist interruptbasiert.&lt;br /&gt;
&lt;br /&gt;
=== Taktversorgung, Nulldurchgangserkennung und Zeitbasis ===&lt;br /&gt;
=== USB ===&lt;br /&gt;
=== SPI für MAX6675 ===&lt;br /&gt;
=== SPI für MAX31855 ===&lt;br /&gt;
&lt;br /&gt;
=== Wellenpaketsteuerung ===&lt;br /&gt;
=== Phasenanschnitt ===&lt;br /&gt;
&lt;br /&gt;
=== PWM für MOSFET ===&lt;br /&gt;
&lt;br /&gt;
== PC-Software (GUI) ==&lt;br /&gt;
[[Datei:gui_alpha.png|thumb|right|300px|Screenshot der GUI (noch Alpha) für den Reflow-Ofen-Controller]]&lt;br /&gt;
&lt;br /&gt;
Die GUI (englisch Graphical User Interface) ist der Einfachheit halber in VB.net programmiert und momentan noch im Alpha-Stadium. Auch hierfür liegen die Quellen später selbstverständlich offen.&lt;br /&gt;
&lt;br /&gt;
=== Funktionen und Modi ===&lt;br /&gt;
[[Datei:modi.png|thumb|right|400px|Auswahl der beschriebenen Modi durch Klick]]&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Ofen-Profil&amp;quot;&#039;&#039;&#039; - Es wird ein Programm (Temperaturkurve) aus dem EEPROM des Reflow-Ofens ausgeführt. Der Backvorgang kann mit der Software gesteuert (START, STOP, ...) und überwacht werden. Hierzu stehen Temperatur, Temperaturänderung, Heizleistung (Ober- und Unterhitze, Lüfter) so wie die graphische Darstellung im zentralen Diagramm zur Verfügung. Eingriffsmöglichkeiten, wie das Ändern der Temperaturkurve sind nicht vorgesehen. Dies soll ein reiner Überwachungs-Modus sein. Um die Temperaturkurve zu verändern zu können, sollte der Modus &amp;quot;PC-Profil&amp;quot; verwendet werden und die Temperaturkurve aus dem EEPROM importiert werden. Dann kann Selbige auch verändert und anschließend ausgeführt bzw. verändert in den EEPROM zurückgeschrieben werden. Dieser Modus stellt ein Äquivalent zur START/STOP-Tasten-Bedienung an der Platine dar und kann selbstverständlich parallel dazu genutzt werden. Die GUI also als Addon zum Stand-Alone-Betrieb.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;PC-Profil&amp;quot;&#039;&#039;&#039; - Es wird ein Programm (Temperaturkurve) ausgeführt welche zuvor am Computer erstellt / editiert wurde. In diesem Modus gibt der Computer Temperaturwerte vor, welche live über die USB-Schnittstelle zum PIC übertragen werden und mit dem dort integrierten PID-Regler ausgeführt werden. Das ermöglicht eine on-the-fly Veränderung der Temperaturkurve während des Backvorgangs. Temperaturkurven können aus Dateien oder dem EEPROM importiert und auch wieder exportiert werden. CSV-Dateien können ebenfalls importiert und exportiert werden. Die &amp;quot;Eingabe&amp;quot; der Temperaturkurve erfolgt entweder über Import (CSV/EEPROM), per Mausklick auf dem zentralen Diagramm oder im sog. DataGridView. Weiteres siehe Unterpunkt &amp;quot;Eingabe der Temperaturkurve (Reflowprofil)&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;manueller Ablauf&amp;quot;&#039;&#039;&#039; - In diesem Modus wird (im Gegensatz zu den oberen beiden Modi &amp;quot;Ofen-Profil&amp;quot; und &amp;quot;PC-Profil&amp;quot;) keine Temperatur geregelt. Hier wird die Leistung des Ofens in % eingestellt und gesteuert. Der PID-Regler ist nicht in Aktion. Die Temperatur, Temperaturänderung so wie der Temperaturverlauf werden selbstredend angezeigt bzw. im Diagramm dargestellt. Der Modus &amp;quot;manueller Ablauf&amp;quot; fährt ähnlich dem Modus &amp;quot;PC-Profil&amp;quot; die im DataGridView eingetragenen Leistungs-Zeit-Punkte ab. Für jeden Zeitpunkt ist eine Leistung vorgegeben. Die Eingabe erfolgt ähnlich wie unter &amp;quot;Eingabe der Temperaturkurve (Reflowprofil)&amp;quot; beschrieben. Nur eben, dass eine Leistung und keine Temperatur angegeben wird. Die Eingabe der Leistung kann nicht im Zeit-Temperatur-Diagramm erfolgen sondern mittels der Schieberegler oder direkt tabellarisch.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;manueller Modus&amp;quot;&#039;&#039;&#039; - Dieser Modus enthält 2 Submodi&lt;br /&gt;
** &amp;quot;manueller Leistungsmodus&amp;quot; - Auch in diesem Modus wird die Leistung gesteuert. Es wird keine Temperatur geregelt, der PID-Regler für die Temperatur ist nicht in Betrieb. Die Einstellung hier erfolgt über die drei Schieberegler oder über eine numerische Eingabe durch Klick auf die Leistungsangabe unter dem Schieberegler. Durch Klick auf die Texte &amp;quot;TOP&amp;quot;, &amp;quot;BOTTOM&amp;quot;, &amp;quot;FAN&amp;quot; (Oberhitze, Unterhitze, Lüfter) können selbige deaktiviert bzw. aktiviert werden. Auch in diesem Modus wird Temperatur, Temperaturänderung so wie der Temperaturverlauf dargestellt.&lt;br /&gt;
** &amp;quot;manueller Temperaturmodus&amp;quot; - Hier wird die Temperatur wieder mittels des Temperatur-PIDs geregelt. Die Temperatur wird entweder mittels Schieberegler (Ober- und Unterhitze-Regler sind jetzt gekoppelt) oder durch eine numerische Eingabe unterhalb der Schieberegler vorgegeben. Anzeige wie im &amp;quot;manuellen Leistungsmodus&amp;quot;. Der Lüfter kann unabhängig vom PID in seiner Leistung geregelt werden. Ein evtl. durch den Luftstrom verursachter Temperaturabfall wird vom PID selbstverständlich ausgeregelt (aus diesem Grunde ist es ja ein Regler).&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Programmieren&amp;quot;&#039;&#039;&#039; - Hier kann ein neues &#039;&#039;&#039;Temperatur&#039;&#039;&#039;-Programm für den EEPROM-Speicher des Ofens erstellt und editiert werden. Die Eingabemöglichkeiten sind unter &amp;quot;Eingabe der Temperaturkurve (Reflowprofil)&amp;quot; beschrieben. Dieser Modus ist zum reinen Programmieren des Ofens gedacht und ermöglicht keine weitere Steuerung oder Überwachung des Ofens.&lt;br /&gt;
&lt;br /&gt;
=== Eingabe der Temperaturkurve (Reflowprofil) ===&lt;br /&gt;
[[Datei:datagridview.png|thumb|right|400px|tabellarische Anzeige und Editiermöglichkeit der Temperaturkurve]]&lt;br /&gt;
Die Eingabe der Temperaturkurve erfolgt entweder über Import (CSV/EEPROM), per Mausklick auf dem zentralen Diagramm oder im sog. DataGridView (Excel-ähnliche Bedienung in tabellarischer Form). &lt;br /&gt;
&lt;br /&gt;
* CSV-Import + Export&lt;br /&gt;
* EEPROM-Import + Export&lt;br /&gt;
* Im rechts stehenden Screenshotbeispiel wird eine tabellarische Eingabeform mit einem DataGridView gezeigt: Die Temperatur (erster Temperaturpunkt = Punkt 0) von 100°C wird linear über einen Zeitraum von 0-30s verteilt. Bei 30s hat der Ofen die Temperatur von 100°C. Dafür setzt die Regelung die Oberhitze, die Unterhitze ein. Der Lüfter ist deaktiviert. In der Zeit von 30s bis 120s wird die Temperatur nun von 100°C auf 150°C linear angehoben. Von 120s bis 180s Backzeit steigt die Temperatur von 150°C auf 250°C. Von 180s bis 200s wird die Temperatur auf 280°C angehoben. Anschließend wird sie zwischen 200s und 220s auf 280°C gehalten (280°C@200s und 280°C@220s) um dann bis 240s wieder auf 250°C zu fallen. Bis zum Zeitpunkt 300s wird dann die Temperatur 30°C angestrebt. Zusätzlich ist der Lüfter nun aktiviert (soweit der Ofen eine Umluftfunktion besitzt). Bei Punkt 7 sind Ober- und Unterhitze deaktiviert nur noch der Lüfter kühlt. Da hier bei &amp;quot;Zeit[s]&amp;quot; die 0 eingetragen wird der Zustand (hier nur Lüfter an) für einen unendlich langen Zeitraum auf 0 gehalten. Also so lange wie das Programm aktiviert ist wird der Lüfter laufen. Natürlich könnte man hier auch z.B. 100°C und Zeitpunkt 0s eintragen. Dann würde der Ofen bis zum manuellen Beenden des Programms (klick auf STOP-Button oder Drücken des START/STOP-Tasters auf der Platine/Steuerung) 100°C halten.&lt;br /&gt;
* Alle Zellen des DataGridView sind editierbar (zur Veränderung der Temperatur, Zeitpunkt, ...)&lt;br /&gt;
* Direkter Klick auf das zentrale Temperatur-Zeit-Diagramm trägt den Zeitpunkt so wie die Temperatur unter dem Mauszeiger in die Tabelle (das DataGridView) ein. Die ausgewählte Zeile wird beschrieben oder überschrieben. Neue Zeilen (also Temperatur-Zeit-Punkte) können durch klick auf den &amp;quot;Plus-Button&amp;quot; hinzugefügt werden. Ebenso ist das Löschen oder Verschieben einer oder mehrerer Zeile gleichzeitig möglich.&lt;br /&gt;
&lt;br /&gt;
=== Beschreibung der Steuerungsmöglichkeiten ===&lt;br /&gt;
In Abhängigkeit des gewählten Modus bestehen einige Steuerungs-, Einstellungs- und Kontrollmöglichkeiten:&lt;br /&gt;
* &#039;&#039;&#039;Schieberegler&#039;&#039;&#039; für Temperatur od. Leistung (je nach Modus) für Oberhitze, Unterhitze und Lüfter. Je nach Hardwareausführung. &lt;br /&gt;
** Klick auf &amp;quot;TOP&amp;quot;, &amp;quot;BOTTOM&amp;quot; oder &amp;quot;FAN&amp;quot; aktiviert oder deaktiviert die entsprechende Funktion bzw. Hardware.&lt;br /&gt;
** Numerische Eingabe der Werte für die Schieberegler durch Klick auf die Anzeige unterhalb der Schieberegler. Werte können auch im deaktivierten Zustand angegeben werden. Die Übernahme erfolgt durch den &amp;quot;Aktivierungsklick&amp;quot; auf &amp;quot;TOP&amp;quot;, &amp;quot;BOTTOM&amp;quot; oder &amp;quot;FAN&amp;quot;&lt;br /&gt;
* &#039;&#039;&#039;T1, dT1, T2, dT2&#039;&#039;&#039; - Anzeige der gemessenen Temperatur so wie die momentane Temperaturänderung am jeweiligen Sensor. &lt;br /&gt;
* &#039;&#039;&#039;Bedienbuttons&#039;&#039;&#039;&lt;br /&gt;
** Play - Startet das Programm am angegebenen Startpunkt (siehe unten)&lt;br /&gt;
** Pause - Pausiert das Programm - weitere Pauseoptionen siehe unten&lt;br /&gt;
** Stop - Stopt den Programmablauf&lt;br /&gt;
** Vor / Zurück - Springt zwischen Temperaturpunkten hin und her. Dient zum überspringen oder zurückspringen zu gewissen Temperatur-Zeit-Punkten. Ermöglicht z.B. das Überspringen eines Ablaufes der eine lange Preheat- oder Dryphase hat.&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Status&amp;quot;&#039;&#039;&#039; - zeigt den aktuellen Zustand des Programms an (READY, START, WAITING, PAUSE, ...)&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;RESET&amp;quot;&#039;&#039;&#039; - setzt das (begonnene) Programm zurück. Beinhaltet neben dem Programmablauf auch das Zurücksetzen der graphischen Anzeige des Diagramms, etc.&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Startpunkt&amp;quot;&#039;&#039;&#039; - legt den ersten Punkt des Programmablaufes fest. &lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Wiederholungen&amp;quot;&#039;&#039;&#039; - ermöglicht das wiederholte Backen ohne das Programm händisch immer wieder neu starten zu müssen. Die Anzahl der Wiederholungen ist einstellbar (0 für unendlich viele) und es ist eine Wartezeit zwischen den Wiederholungen einstellbar. Alternativ kann eine Meldung nach jedem vollendeten Backvorgang abgegeben werden. Nach Bestätigung dieser wird die nächste Wiederholung ausgeführt.&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Pause&amp;quot;&#039;&#039;&#039; - Pauseneinstellungen. Hier sind Optionen wählbar was passieren soll, falls der Pausebutton betätigt wird:&lt;br /&gt;
** Pausezeit - gibt an wie lange die Pause dauern soll [s], danach fährt das Programm automatisch gemäß des gewählten Pausemodus fort. Für eine Pause ohne automatisches Fortfahren (Countdowntimer) &#039;0&#039; angeben.&lt;br /&gt;
** Pausemodus &amp;quot;aktuelle Temperatur halten, WarmUp, Fortsetzen&amp;quot; - Ofen hält die Temperatur (Zieltemperatur) des Zeitpunktes als der Pausebutton betätigt wurde. WarmUp bedeutet, dass nach dem Beenden des Pausemodus zunächst die Zieltemperatur wieder erreicht werden &#039;&#039;&#039;muss&#039;&#039;&#039; bevor der nächste Punkt angesteuert wird. Klingt paradox, wenn die Temperatur doch so und so gehalten wird, ist aber nicht so. Die Wahrscheinlichkeit ist hoch, dass der Pausemodus benutzt wird um die Ofentüre zu öffnen und Korrekturen an der Platine vorzunehmen. Unter Umständen ist die Heizung des Ofens jedoch nicht in der Lage den dadurch entstehenden Wärmeverlust zu kompensieren. Fährt das Programm dann sofort fort, so könnten evtl. kritische (Hoch-)Punkte des Lötprofils &amp;quot;unterfahren&amp;quot; werden. Dem wirkt WarmUp entgegen.&lt;br /&gt;
** Pausemodus &amp;quot;aktuelle Temperatur halten, Fortsetzen&amp;quot; - siehe oben, nur ohne WarmUp.&lt;br /&gt;
** Pausemodus &amp;quot;definierte Temperatur halten, WarmUp, Fortsetzen&amp;quot; - siehe oben. Statt der aktuellen Zieltemperatur wird jedoch nun im Pausemodus eine einzustellende Pausetemperatur gehalten. Mit WarmUp.&lt;br /&gt;
** Pausemodus &amp;quot;definierte Temperatur halten, Fortsetzen&amp;quot; - siehe oben, nur ohne WarmUp.&lt;br /&gt;
** &amp;quot;Pausetemperatur&amp;quot; - spezielle Temperatur die bei entsprechender Pausemoduswahl für die Dauer der Pause gehalten wird.&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Ende&amp;quot;&#039;&#039;&#039; - gibt an was am Ende eines durchlaufenen Reflow-Programms passieren soll. Ist der Wiederholungsmodus aktiviert, tritt dieses Ereignis erst nach Durchlauf aller Wiederholungen ein. Folgende Modi sind möglich:&lt;br /&gt;
** automatischer Reset - am Ende des Programms wird alles automatisch zurückgesetzt, alle Graphiken und Anzeigen gelöscht.&lt;br /&gt;
** manueller Reset - am Ende des Programms bleiben alle Anzeigen, Graphiken, etc erhalten und müssen vor Beginn eines neuen Reflowvorgangs händisch durch Klick auf &amp;quot;RESET&amp;quot; zurückgesetzt werden.&lt;br /&gt;
** Benutzermeldung - lässt eine Meldung erscheinen. Alle Anzeigen und Graphiken bleiben erhalten bis der Benutzer diese Meldung bestätigt. Mit Bestätigung dieser Meldung wird ein automatischer Reset vorgenommen.&lt;br /&gt;
&lt;br /&gt;
=== Loggen des Temperaturverlaufes ===&lt;br /&gt;
Es ist möglich jeden Backvorgang in eine CSV-Datei zu loggen. (Software- und PID-Einstellungen). Geloggte CSV-Dateien können eingelesen und im zentralen Temperatur-Zeit-Diagramm begutachtet werden. Ein Ist-Soll-Vergleich ist ebenso möglich wie die direkte Anzeige des Fehlers (&amp;quot;Ist minus Soll&amp;quot;). Dank CSV können die Daten auch mit anderen Programmen (Excel, etc.) weiterverarbeitet werden.&lt;br /&gt;
&lt;br /&gt;
== Ofen / Pizzaofen ==&lt;br /&gt;
=== Leistung und Volumen ===&lt;br /&gt;
=== Dämmung ===&lt;br /&gt;
=== Umluft ===&lt;br /&gt;
=== Bezugsquellen ===&lt;br /&gt;
=== Diskussionen im Forum ===&lt;br /&gt;
* Umfangreicher Thread u.A. Leistungsvermögen, Temperaturmessung und Dämmung [http://www.mikrocontroller.net/topic/270627]&lt;br /&gt;
&lt;br /&gt;
== FAQ ==&lt;br /&gt;
&lt;br /&gt;
* Q1: Ich habe einen PT100/PT1000 und möchte den anschließen. Geht das?&lt;br /&gt;
** A1: Ja natürlich. Dazu ist aber etwas externe Elektronik notwendig. Sowohl 2 ADC-Pins (mit 3V3 Betriebsspannung als fixe Referenzspannung), als auch die UART und SPI/I2C-Schnittstelle stehen zur freien Verfügung. Für PT100/PT1000 wird für vernünftige Messungen ohnehin eine Verstärkung (meist mit OPV) von Nöten sein. Da der PIC-interne ADC &amp;quot;nur&amp;quot; 10bit Auflösung bietet sollte ein externer 16bit ADC in Betracht gezogen werden um das Potential der PT100/PT1000 auszunutzen.&lt;br /&gt;
*Q2: Ich habe von günstigen Temperaturmessungen mit Dioden gehört. Geht das auch hier?&lt;br /&gt;
**A2: Ja. Die Vorwärtsspannung einer Diode verhält sich linear zur Sperrschichttemperatur. Diese Spannung (bei 25°C einer Si-Diode die bekannten 0,7V) kann mittels OPV verstärkt werden und auf einen Spannungsbereich von 0 ... 3V3 aufgebläht werden. Eine billige Lösung, auf Kosten der Genauigkeit. Doch eine Diode ist laut Datenblatt nur bis 150°C geeignet. Es ist also beim Löten mehr oder weniger Pfusch. Wenn ich schon eine Reflow-Steuerung baue, sollte ich doch nicht an ein paar Euro für eine gescheite Temperaturmessung sparen. Einige Anregungen vom Messgerätehersteller Keithley bzgl. der Halbleiterphysik mit interessanten Formeln [http://www.keithley.de/support/data?asset=50486]. Oder natürlich der Klassiker von Thomas Pfeifer [http://thomaspfeifer.net/backofen_smd_reflow.htm]. Oder ein Beitrag mit LT-Spice Simulation zum Thema [http://www.mikrocontroller.net/topic/270627#2833883].&lt;br /&gt;
* Q: God why ... ?&lt;br /&gt;
** A: Because we can !&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Verbesserungen Prototyp ===&lt;br /&gt;
* Bauteile weiter weg von Schraublöchern&lt;br /&gt;
* Dazu Kreis rund um Bohrung auf Bestückdruck&lt;br /&gt;
* Masseanbindung Quarz&lt;br /&gt;
* Klemmen weiter weg vom Rand&lt;br /&gt;
* Klemme und Sicherungshalter weiter auseinander, damit Schutzhabe draufpasst&lt;br /&gt;
* Bohrungen für Drossel 0,2mm größer machen&lt;br /&gt;
* Teilenummer für Conrad-USB-Buchse in BOM übernehmen.&lt;br /&gt;
* Stiftleiste P1  weiter weg von P2 und P4&lt;br /&gt;
* Varistoren näher an Klemmen platzieren&lt;br /&gt;
* Bestückvarianten defineren: 1. minimal 2. Standard 3. Externe Leds und Schalter.&lt;br /&gt;
* THT-Kondensatoren für Snubber - extra Footprint?&lt;br /&gt;
* Ggv. Stiftleistenbelegung für externe Leds so ändern, das keine extra Vorwiderstände notwendig sind.&lt;br /&gt;
&lt;br /&gt;
=== Errata Projekt ===&lt;br /&gt;
* LED-Beschriftung passt nicht ganz (Schltplan Netlabel OUT1,2,3,4 sind durcheinander gekommen)&lt;br /&gt;
* Schaltplan UNL2003 fehlerhafte Zuordnung IN5,6,7 &amp;lt;&amp;gt; OUT7,6,5&lt;br /&gt;
* Brückengleichrichter / Optokoppler NICHT die im Schaltplan angegebenen Bestellnummern von Reichelt verwenden. BOM-Bauteile und Bestellnummern sind ok.&lt;br /&gt;
* Beim MOSFET R39 ist die Masseanbindung falsch. Es bestehen drei Möglichkeiten:&lt;br /&gt;
** 1. 0-R-Brücke für R39 einbauen und auf Strombegrenzung verzichten.&lt;br /&gt;
** 2. Eine Polyfuse mit Bauform 1206 einbauen. &lt;br /&gt;
** 3. Das kleine Leiterbahnstückchen zwischen R38 und R39 unterbrechen und statt dessen die Leiterbahn zwischen R39 und der Klemme mit der Durchkontaktierung bei R38 verbinden.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* Diskussion [http://www.mikrocontroller.net/topic/297217 Diskussion]&lt;br /&gt;
* Dextrel Nulldurchgang [http://www.dextrel.net/diyzerocrosser.htm Nulldurchgangschaltung]&lt;br /&gt;
* Gehäuse [http://www.hammondmfg.com/pdf/RM2015M.pdf Gehäuse Hammond]&lt;br /&gt;
* Bezugsquelle SOS Elektronik [http://www.soselectronic.com/?str=371&amp;amp;artnum=73595&amp;amp;name=hammond-ritec-rm2055m Gehäuse]&lt;br /&gt;
* Bezugsgquelle [http://www.druckerzubehoer.de/shop/product/catid/H-UNIVERSALZUBEHOER_HZB/subcatid/UNIVERSALZUBEHOER_GROUP1_HZB/productid/1727063-390722LA/site/1/lng/de_DE Mini USB Netzteil]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Projekte]]&lt;br /&gt;
[[Kategorie:PIC]]&lt;br /&gt;
[[Kategorie:PIC-Boards]]&lt;br /&gt;
[[Kategorie:Platinen]]&lt;/div&gt;</summary>
		<author><name>Frankman</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=Reflow_Ofen_Steuerung&amp;diff=76107</id>
		<title>Reflow Ofen Steuerung</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=Reflow_Ofen_Steuerung&amp;diff=76107"/>
		<updated>2013-05-29T21:23:28Z</updated>

		<summary type="html">&lt;p&gt;Frankman: /* Verbesserungen Prototyp */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Datei:RFB.jpg]]&lt;br /&gt;
== Einleitung ==&lt;br /&gt;
[[Datei:pcb.png|thumb|right|400px|unbestücktes PCB der Reflow-Ofen-Steuerung]]&lt;br /&gt;
Hier wird eine weitere Reflow-Ofen-Steuerung beschrieben.&lt;br /&gt;
=== Zum Nachbauen ===&lt;br /&gt;
* Spezifikation: [[Datei: Spec Reflow.pdf]]&lt;br /&gt;
* Schaltplan: [[Datei:Reflow.pdf]]&lt;br /&gt;
* Gerberdaten: [[Datei:Gerber Reflow.pdf]]&lt;br /&gt;
* Assemblydrawing: [[Datei:Assembly Reflow.pdf]] &lt;br /&gt;
* Altium-Files: [[Datei:Reflow.zip]]&lt;br /&gt;
* Stückliste als CSV: [[Datei:Reflow.csv]]&lt;br /&gt;
* Stückliste als Open Office: [[Datei:Reflow.ods]]&lt;br /&gt;
* PC Programm: TBD&lt;br /&gt;
* Sourcen PC-Programm: TBD&lt;br /&gt;
* PIC Programm (*.hex): TBD&lt;br /&gt;
* Sourcen Pic-Programm: TBD&lt;br /&gt;
&lt;br /&gt;
=== Motivation ===&lt;br /&gt;
Die Gründe, eine weitere Steuerung zu entwerfen, waren:&lt;br /&gt;
&lt;br /&gt;
# Die Möglichkeit, auch größere Öfen mit 2 Phasen betreiben zu können.&lt;br /&gt;
# Die Steuerung universell zu gestalten. Es sollte möglich sein, diese nicht nur zum Reflow löten zu verwenden.&lt;br /&gt;
# Die Schaltung sollte in Altium entwickelt werden. (Warum kein Eagle??? Altium User wissen es.... :-)&lt;br /&gt;
# Die Schaltung sollte mit USB ausgestattet sein.&lt;br /&gt;
=== Eigenschaften &amp;amp; Spezifikationen ===&lt;br /&gt;
* Temperaturmessung: bis zu 2x &#039;&#039;&#039;Thermoelement&#039;&#039;&#039; (K-Typ) mit MAX6675 (abgekündigt) oder Nachfolger MAX31855 (pin- aber nicht softwarekompatibel)&lt;br /&gt;
* &#039;&#039;&#039;Leistungsstufen&#039;&#039;&#039;: 3x voneinander unabhängige Triac 800V bei 25A, limitiert auf &#039;&#039;&#039;10A @ 250VAC&#039;&#039;&#039; (z.B. Oberhitze, Unterhitze, Umluft)&lt;br /&gt;
* &#039;&#039;&#039;Nulldurchgangserkennung&#039;&#039;&#039; ermöglicht Wellenpaket-, Phasenan- und abschnittssteuerung, galvanische Trennung selbiger&lt;br /&gt;
* 1x &#039;&#039;&#039; MOSFET-Ausgang&#039;&#039;&#039; PWM z.B. für 12V Lüfter, max. 55V 3,5A&lt;br /&gt;
* &#039;&#039;&#039;feste Programme&#039;&#039;&#039; im EEPROM über 2-Tasterbedienung und LEDs wähl- und ausführbar. &#039;&#039;&#039;PC-unabhängiger Betrieb&#039;&#039;&#039;. Beliebig viele Programme möglich, für die Auswahl stehen 4 benutzer-konfigurierbare LEDs zur Verfügung&lt;br /&gt;
* Betrieb am Computer für mehr Reflowprofile&lt;br /&gt;
* Mini-USB-Buchse zur Steuerung / Programmierung über GUI&lt;br /&gt;
* Günstiges passendes &#039;&#039;&#039;Gehäuse&#039;&#039;&#039;, alle LEDs und Taster auf Stiftleisten herausgeführt&lt;br /&gt;
* PID-Temperaturregler&lt;br /&gt;
* UART, SPI, I2C und 2x ADC auf Stiftleisten herausgeführt (-&amp;gt; Erweiterungen)&lt;br /&gt;
* Versorgung über USB (&amp;lt; 100mA), interne Versorgungsspannung 3,3V&lt;br /&gt;
* umfangreiche EMV-gerechte Entstörung für den Bedarfsfall&lt;br /&gt;
&lt;br /&gt;
== Technische Realisierung==&lt;br /&gt;
=== PIC18LF2550 Grundbeschaltung ===&lt;br /&gt;
[[Datei:osc_vs_vcc.png|thumb|right|200px|Taktraten und Versorgungsspannung PIC18LF2550 vs. PIC18LF2550, Datenblatt S. 370/438]]&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 3/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Hier kommt ein PIC18&#039;&#039;&#039;L&#039;&#039;&#039;F2550 zum Einsatz. Er verfügt über eine USB-Schnittstelle und ist für Betriebsspannungen von 2 ... 5,5V ausgelegt. Sein Verwandter PIC18F2550 (ohne L) ist nicht für Betriebsspannungen &amp;lt; 4,2V ausgelegt. Dies ist bei USB sowiesor nicht immer erfüllt und die Thermoelement ICs vertragen ohnehin keine 5V, daher wurde die Betriebsspannung auf 3,3V reduziert. Neben Standard-Decoupling (100nF Kerko pro Vcc-Vss-Pärchen) wurde das ICSP-Interface in alt bewährter Pinbelegung (PICKit1,2,3) angebracht. PGD und PGC sind nicht weiter beschaltet, MCRL wird in Standardbeschaltung als Resetpin verwendet. Der Resetschalter findet sich auf dem Top-Sheet (Schaltplan S. 1/22). Die Taktversorgung erfolgt zwingend über einen 24 MHz Quarz (-&amp;gt; USB). Man beachte diesbezüglich rechts stehende Grafik zu Taktraten und Versorgungsspannungen (Vdd bzw. auch Vcc genannt). Auch zu finden im Datenblatt des PICs auf Seite 370.&lt;br /&gt;
&lt;br /&gt;
=== PIC18LF2550 USB Beschaltung ===&lt;br /&gt;
[[Datei:usb_part.png|thumb|right|200px|PIC18(L)F2550&lt;br /&gt;
 Standard &lt;br /&gt;
USB-Beschaltung am PIC]]&lt;br /&gt;
[[Datei:usb_protect.png|thumb|right|200px|USB-Schutzbeschaltung und Mini-USB-Buchse]]&lt;br /&gt;
&lt;br /&gt;
Die Beschaltung der USB-Schnittstelle am PIC ist 1:1 aus dem Datenblatt übernommen. Zum Einsatz kommt eine Mini-USB-Buchse (J1).&lt;br /&gt;
Der Gedanke war: Erstens ein sehr preiswertes, fertiges Netzteil verwenden zu können, (ca. 3,67 € bei druckerzubehoer.de) und zweitens, die Steuerung auch mit dem PC / Laptop versorgen zu können.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 4/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
FER1,2 und C7 filtern den Schirm nach GND. Standardmäßig wird man hier wohl 0-Ohm-Widerstände einsetzen. Falls ein Besuch im EMV-Labor geplant ist, weicht man auf den Ferrit aus. C5 und C6 filtern das Signal zusammen mit der Common-Mode-DrosselL1. Die Drossel kann mit den 0-Ohm-Brücken R8 und R9 überbrückt (gespart) werden. IC2 ist als ESD-Schutz gedacht und kann ebenfalls bei ausgeprägten Kostenbewustsein gespart werden. Die Widerstände R6 und R7 dürfen NICHT bestückt werden. FER1,2, C5, IC2 müssen nicht zwingend bestückt werden. Die Bestückung wurde vorgehalten um im Problemfall einfache Abhilfe schaffen zu können.&lt;br /&gt;
&lt;br /&gt;
=== 3,3V Spannungsversorgung ===&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 2/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Die 3,3V Versorgungsspannung für die gesamte Platine wird aus V_USB mittels des LDO Spannungsreglers TOREX - XC6206P332MR abgeleitet. Günstig, SOT-23, klein, 2x 1µF Kondensatoren benötigt, 3,3V max. 250mA. Der hat auch einen sehr kleinen Ruhestrom.&lt;br /&gt;
&lt;br /&gt;
=== Taster ===&lt;br /&gt;
*Der Resettaster zieht den MCLR-Pin nach GND und löst damit den Reset aus. MCLR ist gem. der Standardbeschaltung mit einem 10k Pullup versehen.&lt;br /&gt;
*Die übrigen beiden Taster ziehen RA4 bzw. RB5 ebenfalls nach GND.&lt;br /&gt;
&lt;br /&gt;
=== LEDs + ULN2003L ===&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 11/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Um alle LEDs auf der Platine (3x Optotriac + 7x Status) ansteuern zu können wurde auf das 7fach Darlington-Array ULN2003L zurückgegriffen. Es dient desweiteren auch als &amp;quot;MOSFET-Treiber für Arme&amp;quot;. Alle LEDs werden von diesem Transistor-Array nach Masse geschaltet. Dient der Entlastung der PIC-Ausgänge. Und kostet ja auch nicht viel.&lt;br /&gt;
&lt;br /&gt;
=== MOSFET-Leistungsausgang ===&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 22/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Hier kommt der einfacher N-Kanal MOSFET (LogicLevel) PHT8N06LT zum Einsatz. Er wird über das ULN2003L Array getrieben und ermöglicht den Anschluss eines DC-Verbrauchers mit max. 55V bei 3,5A. Hier könnte beispielsweise ein PC-Lüfter zur Kühlung od. Umluft angeschlossen und über PWM geregelt/gesteuert werden. Ein Gatewiderstand von 100 Ohm ist zum Schutz des Treibers vorgesehen. Eine 0-Ohm-Brücke ist stattdessen aber auch möglich, wenn man eine höhere Leistung schalten möchte.Die Leiterbahnen sollten die 3A schon hergeben. Der 100 Ohm Widerstand bildet eine Stromquelle. Sobald der Strom durch den MOSFET und den Widerstand 33mA erreicht, sinkt UGS gegen 0 V. Folge: Der Mosfet sperrt ( und bleibt ganz....)&lt;br /&gt;
Es kann hier prinzipiell auch ein anderer Mosfet im SOT223-Gehäuse zum Einsatz kommen. Achten sollte man darauf, das der MOSFET schon bei 3,3V Ugs gut leiten sollte.&lt;br /&gt;
&lt;br /&gt;
=== Nulldurchgangserkennung ===&lt;br /&gt;
[[Datei:zerocross.png|thumb|right|200px|Nulldurchgangserkennung]]&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 5/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Die Nulldurchgangserkennung erfolgt nach einer sehr bekannten - jedoch ausgeklügelten - Schaltung.  [http://www.dextrel.net/diyzerocrosser.htm]&lt;br /&gt;
&lt;br /&gt;
ACHTUNG: DER IM SCHALTPLAN VERZEICHNETE OPTOKOPPLER und BRÜCKENGLEICHRICHTER VON REICHELT DARF KEINESFALLS VERWENDET WERDEN! Pinbelegung! Bitte den Optokoppler aus der Stückliste nehmen!&lt;br /&gt;
&lt;br /&gt;
Während einer Halbwelle wird C14 über R33 und R35 bzw. D5 geladen. Währenddessen ist T1 gesperrt. Sobald die Wechselspannung (L1-N über Spannungsteiler (R33+R35) / R34) kleiner ist als die Spannung über C14, steuert T1 durch. Dann entlädt sich C14 über den LED-Vorwiderstand R32. Der durch-steuernde Optokoppler zieht die Sync-Leitung nach GND. (Pullup Sync-Leitung = R31). Dies löst beim PIC auf INT2 einen Interrupt aus. &lt;br /&gt;
&lt;br /&gt;
Dieser Interrupt ermöglicht eine präzise Wellenpaket-, Phasenanschnittsteuerung je nach Bedarf. Das Schalten im Nulldurchgang bei der Wellenpaketsteuerung reduziert EMV-Störungen. Für Phasenanschnitt ist prinzipbedingt ohnehin eine Nulldurchgangserkennung notwendig. Außerdem liefert sie eine völlig ausreichend genaue Zeitbasis für alle Programmabläufe.&lt;br /&gt;
&lt;br /&gt;
=== Triac-Ausgänge + Snubber ===&lt;br /&gt;
[[Datei:triac.png|thumb|right|200px|Triac-Ausgangsbeschaltung]]&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 19,20,21/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Die Ansteuerung des eigentlichen Leistungstriacs BTA140-800 erfolgt über den Optotriac IS6005. Der Strom durch Letzteren wird durch R1x limitiert (Vorwiderstand). R2x und R5x limitieren wiederum den Strom durch den Optotriac. Wenn dieser zündet so folgt unmittelbar der &amp;quot;Leistungstriac&amp;quot; der dann die Last schaltet.&lt;br /&gt;
&lt;br /&gt;
S1x ist ein Sicherungshalter um die Lasten einzeln absichern zu können. Wert 10A Mittelträge.&lt;br /&gt;
&lt;br /&gt;
R3x, R4x, C3x bilden ein Snubber-Network, L1X verhindert eine zu schnelle Stromanstiegsgeschwindikeit damit der Triac nicht &amp;quot;von selbst&amp;quot; zündet. Weglassen äußert sich meist in einem fast nicht hörbaren Click. Damit zeigt einem dann der Triac, dass er ab jetzt für immer recht niederohmig geworden ist. Die Regelung der Temperatur braucht dann nicht mehr über den Prozessor erfolgen, sondern nur noch mit dem Ein-/Ausschalter..... :-)&lt;br /&gt;
&lt;br /&gt;
=== Thermoelemente (MAX6675/MAX31855)  ===&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 6,7/22&#039;&#039;&#039;&lt;br /&gt;
Der inzwischen abgekündigte MAX6675 bzw. sein ehrenwerter Nachfolger MAX31855 sind einfach zu handhabende Thermoelement-ICs mit Kaltstellenkompensation. Thermoelemente funktionieren durch das Verschweißen zweier verschiedener Legierungen (beim K-Typ Thermoelemnt Ni und CrNi). Durch den durch die Umgebungstemperatur bedingten Wärmefluss zwischen beiden entsteht ein elektrische Spannung. Diese wird von besagten ICs verstärkt und digitalisiert (ADC). Diese Spannung / Temperatur ist natürlich wieder relativ zur Umgebungstemperatur an der Kaltstelle (Kontaktierung der beiden Drähte mit dem Messinstrument). Daher messen diese ICs auch gleich die Umgebungstemperatur (Kaltstellenkompensation genannt) mit, verrechnen das und geben das Ergebnis auf der SPI-Schnittstelle aus. MAX6675 leistet 12bit also 0,25°C Auflösung (nicht Genauigkeit!) über einen Temperaturbereich von 0°C to +1024°C. Außerdem wird ein nicht/fehlerhaft angeschlossenes Thermoelement erkannt. Der Thermocouple-IC wird an die SPI-Schnittstelle des PICs angeschlossen (hier MSSP genannt). &lt;br /&gt;
&lt;br /&gt;
MAX6675 und MAX31855 scheinen entgegen der Adafruit-Information [http://www.adafruit.com/products/269] doch pinkompatibel zu sein - die Ansteuerung unterscheidet sich jedoch definitiv. (Zitat: &amp;quot;Now uses the MAX31855K instead of the MAX6675, so it can measure a wider temperature measurement range. Please note! the MAX31855 is not pin compatible or drop-in code compatible with the MAX6675. We do have an Arduino library for both chips but you&#039;ll need to adjust any existing MAX6675 designs for the mew MAX31855. The MAX6675 has been discontinued by Maxim.&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Es wurden 2 dieser ICs und damit 2 Temperaturmessstellen vorgesehen. Dies ermöglich die Messung für eine Regelung der Temperatur so wie eine zusätzliche Überwachung kritischer Bauteile (z.B. ICs oder LEDs). Die Minimalbestückung sieht einen MAX6675/MAX31855 vor. Die Auswahl in der Firmware erfolgt über einen der beiden GPIO-Pins RA5 oder RA0 via dem ChipSelect (CS) des MAX6675/MAX31855.&lt;br /&gt;
&lt;br /&gt;
Neben dem MAX6675/MAX31855 wurde ein Decoupling-Kondensator (C8x, Standard 100nF) so wie ein weiterer im Messpfad (C9x) zur Zwecken der Entstörung vorgeshen. C9x 100nF sollte nur bestückt werden wenn Probleme bei der Temperaturmessung entstehen (z.B. unrealstisch stark schwankende Werte).&lt;br /&gt;
&lt;br /&gt;
=== ADC, SPI, UART &amp;amp; I2C Stiftleiste ===&lt;br /&gt;
ADC, SPI, UART und I2C sind zu Zwecken der Kalibrierung / Erweiterung / Einstellung / Debugging auf Stiftleisten herausgeführt:&lt;br /&gt;
Ähnlichkeiten mit dem FTDI-USB-TTL-Kabel bzw. Arduino XXX Bla Bla Bla Schnittstellenkonverter sind natürlich rein zufällig.&lt;br /&gt;
&lt;br /&gt;
Die I2C-Schnittstelle wurde auf eine Stiftleiste geführt, um z.B. einem LM75 o.ä. anschließen zu können. Damit stehen zur Kalibrierung der Thermoelemente genaue Temperaturen zur Verfügung.&lt;br /&gt;
&lt;br /&gt;
Die Stiftleisten haben alle ein Raster von 2,54mm. So können Pin-Header, Wannenstecker oder ähnliches verwendet werden.&lt;br /&gt;
&lt;br /&gt;
Da ja viele Leute eigene Vorstellungen bezüglich der Frontplattengestaltung haben, wurden auch die Taster und LEDs auf Stiftleisten geführt.&lt;br /&gt;
&lt;br /&gt;
=== Kühlkörper ===&lt;br /&gt;
Da die Triacs der Steuerung für bis zu 10A pro Kanal ausgelegt sind, kann man auf die Kühlkörper nicht verzichten. Es fallen bei 10A bis zu 13 Watt Wärme pro Triac ab. Falls mann auf die Kühlkörper doch verzichten möchte, sollte man darauf achten, die Triacs mit dem Kopf nach unten einzubauen. Diese können sich dann bei Überlast ganz von selber auslöten.... :-)&lt;br /&gt;
&lt;br /&gt;
=== Gehäuse ===&lt;br /&gt;
Die Leiterplatte wurde für ein Gehäuse von Hammond entwickelt.&lt;br /&gt;
Das Gehäuse ist zwar keine Schönheit, aber doch recht preiswert.&lt;br /&gt;
Typenbezeichnung: RM2055M&lt;br /&gt;
&lt;br /&gt;
== Firmware PIC ==&lt;br /&gt;
Die Entwicklung der Firmware für den PIC18LF2550  geht mit MPlab 8 respektive dem C18 Compiler von Statten. MPlab ist kostenlos, der C18 Compiler bis auf die stärkste Optimierungsstufe ebenfalls. Die Quellen für die Firmware werden auch offengelegt.&lt;br /&gt;
=== Programmstruktur- und ablauf ===&lt;br /&gt;
Nach anfänglicher Initialisierung des PIC startet die Statemachine [http://http://www.mikrocontroller.net/articles/Statemachine] [http://http://de.wikipedia.org/wiki/Endlicher_Automat]. Neben ihr findet in der main-Funktion nur noch die Abfrage der beiden Bedientasten statt. Mit dem Tastendruck wird zum Zwecke der Entprellung ein Timer gestartet. Alles Andere (incl. PID-Regelung, Wellenpaket- bzw. Phasenan- und Phasenabschnittssteuerung und USB) ist interruptbasiert.&lt;br /&gt;
&lt;br /&gt;
=== Taktversorgung, Nulldurchgangserkennung und Zeitbasis ===&lt;br /&gt;
=== USB ===&lt;br /&gt;
=== SPI für MAX6675 ===&lt;br /&gt;
=== SPI für MAX31855 ===&lt;br /&gt;
&lt;br /&gt;
=== Wellenpaketsteuerung ===&lt;br /&gt;
=== Phasenanschnitt ===&lt;br /&gt;
&lt;br /&gt;
=== PWM für MOSFET ===&lt;br /&gt;
&lt;br /&gt;
== PC-Software (GUI) ==&lt;br /&gt;
[[Datei:gui_alpha.png|thumb|right|300px|Screenshot der GUI (noch Alpha) für den Reflow-Ofen-Controller]]&lt;br /&gt;
&lt;br /&gt;
Die GUI (englisch Graphical User Interface) ist der Einfachheit halber in VB.net programmiert und momentan noch im Alpha-Stadium. Auch hierfür liegen die Quellen später selbstverständlich offen.&lt;br /&gt;
&lt;br /&gt;
=== Funktionen und Modi ===&lt;br /&gt;
[[Datei:modi.png|thumb|right|400px|Auswahl der beschriebenen Modi durch Klick]]&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Ofen-Profil&amp;quot;&#039;&#039;&#039; - Es wird ein Programm (Temperaturkurve) aus dem EEPROM des Reflow-Ofens ausgeführt. Der Backvorgang kann mit der Software gesteuert (START, STOP, ...) und überwacht werden. Hierzu stehen Temperatur, Temperaturänderung, Heizleistung (Ober- und Unterhitze, Lüfter) so wie die graphische Darstellung im zentralen Diagramm zur Verfügung. Eingriffsmöglichkeiten, wie das Ändern der Temperaturkurve sind nicht vorgesehen. Dies soll ein reiner Überwachungs-Modus sein. Um die Temperaturkurve zu verändern zu können, sollte der Modus &amp;quot;PC-Profil&amp;quot; verwendet werden und die Temperaturkurve aus dem EEPROM importiert werden. Dann kann Selbige auch verändert und anschließend ausgeführt bzw. verändert in den EEPROM zurückgeschrieben werden. Dieser Modus stellt ein Äquivalent zur START/STOP-Tasten-Bedienung an der Platine dar und kann selbstverständlich parallel dazu genutzt werden. Die GUI also als Addon zum Stand-Alone-Betrieb.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;PC-Profil&amp;quot;&#039;&#039;&#039; - Es wird ein Programm (Temperaturkurve) ausgeführt welche zuvor am Computer erstellt / editiert wurde. In diesem Modus gibt der Computer Temperaturwerte vor, welche live über die USB-Schnittstelle zum PIC übertragen werden und mit dem dort integrierten PID-Regler ausgeführt werden. Das ermöglicht eine on-the-fly Veränderung der Temperaturkurve während des Backvorgangs. Temperaturkurven können aus Dateien oder dem EEPROM importiert und auch wieder exportiert werden. CSV-Dateien können ebenfalls importiert und exportiert werden. Die &amp;quot;Eingabe&amp;quot; der Temperaturkurve erfolgt entweder über Import (CSV/EEPROM), per Mausklick auf dem zentralen Diagramm oder im sog. DataGridView. Weiteres siehe Unterpunkt &amp;quot;Eingabe der Temperaturkurve (Reflowprofil)&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;manueller Ablauf&amp;quot;&#039;&#039;&#039; - In diesem Modus wird (im Gegensatz zu den oberen beiden Modi &amp;quot;Ofen-Profil&amp;quot; und &amp;quot;PC-Profil&amp;quot;) keine Temperatur geregelt. Hier wird die Leistung des Ofens in % eingestellt und gesteuert. Der PID-Regler ist nicht in Aktion. Die Temperatur, Temperaturänderung so wie der Temperaturverlauf werden selbstredend angezeigt bzw. im Diagramm dargestellt. Der Modus &amp;quot;manueller Ablauf&amp;quot; fährt ähnlich dem Modus &amp;quot;PC-Profil&amp;quot; die im DataGridView eingetragenen Leistungs-Zeit-Punkte ab. Für jeden Zeitpunkt ist eine Leistung vorgegeben. Die Eingabe erfolgt ähnlich wie unter &amp;quot;Eingabe der Temperaturkurve (Reflowprofil)&amp;quot; beschrieben. Nur eben, dass eine Leistung und keine Temperatur angegeben wird. Die Eingabe der Leistung kann nicht im Zeit-Temperatur-Diagramm erfolgen sondern mittels der Schieberegler oder direkt tabellarisch.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;manueller Modus&amp;quot;&#039;&#039;&#039; - Dieser Modus enthält 2 Submodi&lt;br /&gt;
** &amp;quot;manueller Leistungsmodus&amp;quot; - Auch in diesem Modus wird die Leistung gesteuert. Es wird keine Temperatur geregelt, der PID-Regler für die Temperatur ist nicht in Betrieb. Die Einstellung hier erfolgt über die drei Schieberegler oder über eine numerische Eingabe durch Klick auf die Leistungsangabe unter dem Schieberegler. Durch Klick auf die Texte &amp;quot;TOP&amp;quot;, &amp;quot;BOTTOM&amp;quot;, &amp;quot;FAN&amp;quot; (Oberhitze, Unterhitze, Lüfter) können selbige deaktiviert bzw. aktiviert werden. Auch in diesem Modus wird Temperatur, Temperaturänderung so wie der Temperaturverlauf dargestellt.&lt;br /&gt;
** &amp;quot;manueller Temperaturmodus&amp;quot; - Hier wird die Temperatur wieder mittels des Temperatur-PIDs geregelt. Die Temperatur wird entweder mittels Schieberegler (Ober- und Unterhitze-Regler sind jetzt gekoppelt) oder durch eine numerische Eingabe unterhalb der Schieberegler vorgegeben. Anzeige wie im &amp;quot;manuellen Leistungsmodus&amp;quot;. Der Lüfter kann unabhängig vom PID in seiner Leistung geregelt werden. Ein evtl. durch den Luftstrom verursachter Temperaturabfall wird vom PID selbstverständlich ausgeregelt (aus diesem Grunde ist es ja ein Regler).&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Programmieren&amp;quot;&#039;&#039;&#039; - Hier kann ein neues &#039;&#039;&#039;Temperatur&#039;&#039;&#039;-Programm für den EEPROM-Speicher des Ofens erstellt und editiert werden. Die Eingabemöglichkeiten sind unter &amp;quot;Eingabe der Temperaturkurve (Reflowprofil)&amp;quot; beschrieben. Dieser Modus ist zum reinen Programmieren des Ofens gedacht und ermöglicht keine weitere Steuerung oder Überwachung des Ofens.&lt;br /&gt;
&lt;br /&gt;
=== Eingabe der Temperaturkurve (Reflowprofil) ===&lt;br /&gt;
[[Datei:datagridview.png|thumb|right|400px|tabellarische Anzeige und Editiermöglichkeit der Temperaturkurve]]&lt;br /&gt;
Die Eingabe der Temperaturkurve erfolgt entweder über Import (CSV/EEPROM), per Mausklick auf dem zentralen Diagramm oder im sog. DataGridView (Excel-ähnliche Bedienung in tabellarischer Form). &lt;br /&gt;
&lt;br /&gt;
* CSV-Import + Export&lt;br /&gt;
* EEPROM-Import + Export&lt;br /&gt;
* Im rechts stehenden Screenshotbeispiel wird eine tabellarische Eingabeform mit einem DataGridView gezeigt: Die Temperatur (erster Temperaturpunkt = Punkt 0) von 100°C wird linear über einen Zeitraum von 0-30s verteilt. Bei 30s hat der Ofen die Temperatur von 100°C. Dafür setzt die Regelung die Oberhitze, die Unterhitze ein. Der Lüfter ist deaktiviert. In der Zeit von 30s bis 120s wird die Temperatur nun von 100°C auf 150°C linear angehoben. Von 120s bis 180s Backzeit steigt die Temperatur von 150°C auf 250°C. Von 180s bis 200s wird die Temperatur auf 280°C angehoben. Anschließend wird sie zwischen 200s und 220s auf 280°C gehalten (280°C@200s und 280°C@220s) um dann bis 240s wieder auf 250°C zu fallen. Bis zum Zeitpunkt 300s wird dann die Temperatur 30°C angestrebt. Zusätzlich ist der Lüfter nun aktiviert (soweit der Ofen eine Umluftfunktion besitzt). Bei Punkt 7 sind Ober- und Unterhitze deaktiviert nur noch der Lüfter kühlt. Da hier bei &amp;quot;Zeit[s]&amp;quot; die 0 eingetragen wird der Zustand (hier nur Lüfter an) für einen unendlich langen Zeitraum auf 0 gehalten. Also so lange wie das Programm aktiviert ist wird der Lüfter laufen. Natürlich könnte man hier auch z.B. 100°C und Zeitpunkt 0s eintragen. Dann würde der Ofen bis zum manuellen Beenden des Programms (klick auf STOP-Button oder Drücken des START/STOP-Tasters auf der Platine/Steuerung) 100°C halten.&lt;br /&gt;
* Alle Zellen des DataGridView sind editierbar (zur Veränderung der Temperatur, Zeitpunkt, ...)&lt;br /&gt;
* Direkter Klick auf das zentrale Temperatur-Zeit-Diagramm trägt den Zeitpunkt so wie die Temperatur unter dem Mauszeiger in die Tabelle (das DataGridView) ein. Die ausgewählte Zeile wird beschrieben oder überschrieben. Neue Zeilen (also Temperatur-Zeit-Punkte) können durch klick auf den &amp;quot;Plus-Button&amp;quot; hinzugefügt werden. Ebenso ist das Löschen oder Verschieben einer oder mehrerer Zeile gleichzeitig möglich.&lt;br /&gt;
&lt;br /&gt;
=== Beschreibung der Steuerungsmöglichkeiten ===&lt;br /&gt;
In Abhängigkeit des gewählten Modus bestehen einige Steuerungs-, Einstellungs- und Kontrollmöglichkeiten:&lt;br /&gt;
* &#039;&#039;&#039;Schieberegler&#039;&#039;&#039; für Temperatur od. Leistung (je nach Modus) für Oberhitze, Unterhitze und Lüfter. Je nach Hardwareausführung. &lt;br /&gt;
** Klick auf &amp;quot;TOP&amp;quot;, &amp;quot;BOTTOM&amp;quot; oder &amp;quot;FAN&amp;quot; aktiviert oder deaktiviert die entsprechende Funktion bzw. Hardware.&lt;br /&gt;
** Numerische Eingabe der Werte für die Schieberegler durch Klick auf die Anzeige unterhalb der Schieberegler. Werte können auch im deaktivierten Zustand angegeben werden. Die Übernahme erfolgt durch den &amp;quot;Aktivierungsklick&amp;quot; auf &amp;quot;TOP&amp;quot;, &amp;quot;BOTTOM&amp;quot; oder &amp;quot;FAN&amp;quot;&lt;br /&gt;
* &#039;&#039;&#039;T1, dT1, T2, dT2&#039;&#039;&#039; - Anzeige der gemessenen Temperatur so wie die momentane Temperaturänderung am jeweiligen Sensor. &lt;br /&gt;
* &#039;&#039;&#039;Bedienbuttons&#039;&#039;&#039;&lt;br /&gt;
** Play - Startet das Programm am angegebenen Startpunkt (siehe unten)&lt;br /&gt;
** Pause - Pausiert das Programm - weitere Pauseoptionen siehe unten&lt;br /&gt;
** Stop - Stopt den Programmablauf&lt;br /&gt;
** Vor / Zurück - Springt zwischen Temperaturpunkten hin und her. Dient zum überspringen oder zurückspringen zu gewissen Temperatur-Zeit-Punkten. Ermöglicht z.B. das Überspringen eines Ablaufes der eine lange Preheat- oder Dryphase hat.&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Status&amp;quot;&#039;&#039;&#039; - zeigt den aktuellen Zustand des Programms an (READY, START, WAITING, PAUSE, ...)&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;RESET&amp;quot;&#039;&#039;&#039; - setzt das (begonnene) Programm zurück. Beinhaltet neben dem Programmablauf auch das Zurücksetzen der graphischen Anzeige des Diagramms, etc.&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Startpunkt&amp;quot;&#039;&#039;&#039; - legt den ersten Punkt des Programmablaufes fest. &lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Wiederholungen&amp;quot;&#039;&#039;&#039; - ermöglicht das wiederholte Backen ohne das Programm händisch immer wieder neu starten zu müssen. Die Anzahl der Wiederholungen ist einstellbar (0 für unendlich viele) und es ist eine Wartezeit zwischen den Wiederholungen einstellbar. Alternativ kann eine Meldung nach jedem vollendeten Backvorgang abgegeben werden. Nach Bestätigung dieser wird die nächste Wiederholung ausgeführt.&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Pause&amp;quot;&#039;&#039;&#039; - Pauseneinstellungen. Hier sind Optionen wählbar was passieren soll, falls der Pausebutton betätigt wird:&lt;br /&gt;
** Pausezeit - gibt an wie lange die Pause dauern soll [s], danach fährt das Programm automatisch gemäß des gewählten Pausemodus fort. Für eine Pause ohne automatisches Fortfahren (Countdowntimer) &#039;0&#039; angeben.&lt;br /&gt;
** Pausemodus &amp;quot;aktuelle Temperatur halten, WarmUp, Fortsetzen&amp;quot; - Ofen hält die Temperatur (Zieltemperatur) des Zeitpunktes als der Pausebutton betätigt wurde. WarmUp bedeutet, dass nach dem Beenden des Pausemodus zunächst die Zieltemperatur wieder erreicht werden &#039;&#039;&#039;muss&#039;&#039;&#039; bevor der nächste Punkt angesteuert wird. Klingt paradox, wenn die Temperatur doch so und so gehalten wird, ist aber nicht so. Die Wahrscheinlichkeit ist hoch, dass der Pausemodus benutzt wird um die Ofentüre zu öffnen und Korrekturen an der Platine vorzunehmen. Unter Umständen ist die Heizung des Ofens jedoch nicht in der Lage den dadurch entstehenden Wärmeverlust zu kompensieren. Fährt das Programm dann sofort fort, so könnten evtl. kritische (Hoch-)Punkte des Lötprofils &amp;quot;unterfahren&amp;quot; werden. Dem wirkt WarmUp entgegen.&lt;br /&gt;
** Pausemodus &amp;quot;aktuelle Temperatur halten, Fortsetzen&amp;quot; - siehe oben, nur ohne WarmUp.&lt;br /&gt;
** Pausemodus &amp;quot;definierte Temperatur halten, WarmUp, Fortsetzen&amp;quot; - siehe oben. Statt der aktuellen Zieltemperatur wird jedoch nun im Pausemodus eine einzustellende Pausetemperatur gehalten. Mit WarmUp.&lt;br /&gt;
** Pausemodus &amp;quot;definierte Temperatur halten, Fortsetzen&amp;quot; - siehe oben, nur ohne WarmUp.&lt;br /&gt;
** &amp;quot;Pausetemperatur&amp;quot; - spezielle Temperatur die bei entsprechender Pausemoduswahl für die Dauer der Pause gehalten wird.&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Ende&amp;quot;&#039;&#039;&#039; - gibt an was am Ende eines durchlaufenen Reflow-Programms passieren soll. Ist der Wiederholungsmodus aktiviert, tritt dieses Ereignis erst nach Durchlauf aller Wiederholungen ein. Folgende Modi sind möglich:&lt;br /&gt;
** automatischer Reset - am Ende des Programms wird alles automatisch zurückgesetzt, alle Graphiken und Anzeigen gelöscht.&lt;br /&gt;
** manueller Reset - am Ende des Programms bleiben alle Anzeigen, Graphiken, etc erhalten und müssen vor Beginn eines neuen Reflowvorgangs händisch durch Klick auf &amp;quot;RESET&amp;quot; zurückgesetzt werden.&lt;br /&gt;
** Benutzermeldung - lässt eine Meldung erscheinen. Alle Anzeigen und Graphiken bleiben erhalten bis der Benutzer diese Meldung bestätigt. Mit Bestätigung dieser Meldung wird ein automatischer Reset vorgenommen.&lt;br /&gt;
&lt;br /&gt;
=== Loggen des Temperaturverlaufes ===&lt;br /&gt;
Es ist möglich jeden Backvorgang in eine CSV-Datei zu loggen. (Software- und PID-Einstellungen). Geloggte CSV-Dateien können eingelesen und im zentralen Temperatur-Zeit-Diagramm begutachtet werden. Ein Ist-Soll-Vergleich ist ebenso möglich wie die direkte Anzeige des Fehlers (&amp;quot;Ist minus Soll&amp;quot;). Dank CSV können die Daten auch mit anderen Programmen (Excel, etc.) weiterverarbeitet werden.&lt;br /&gt;
&lt;br /&gt;
== Ofen / Pizzaofen ==&lt;br /&gt;
=== Leistung und Volumen ===&lt;br /&gt;
=== Dämmung ===&lt;br /&gt;
=== Umluft ===&lt;br /&gt;
=== Bezugsquellen ===&lt;br /&gt;
=== Diskussionen im Forum ===&lt;br /&gt;
* Umfangreicher Thread u.A. Leistungsvermögen, Temperaturmessung und Dämmung [http://www.mikrocontroller.net/topic/270627]&lt;br /&gt;
&lt;br /&gt;
== FAQ ==&lt;br /&gt;
&lt;br /&gt;
* Q1: Ich habe einen PT100/PT1000 und möchte den anschließen. Geht das?&lt;br /&gt;
** A1: Ja natürlich. Dazu ist aber etwas externe Elektronik notwendig. Sowohl 2 ADC-Pins (mit 3V3 Betriebsspannung als fixe Referenzspannung), als auch die UART und SPI/I2C-Schnittstelle stehen zur freien Verfügung. Für PT100/PT1000 wird für vernünftige Messungen ohnehin eine Verstärkung (meist mit OPV) von Nöten sein. Da der PIC-interne ADC &amp;quot;nur&amp;quot; 10bit Auflösung bietet sollte ein externer 16bit ADC in Betracht gezogen werden um das Potential der PT100/PT1000 auszunutzen.&lt;br /&gt;
*Q2: Ich habe von günstigen Temperaturmessungen mit Dioden gehört. Geht das auch hier?&lt;br /&gt;
**A2: Ja. Die Vorwärtsspannung einer Diode verhält sich linear zur Sperrschichttemperatur. Diese Spannung (bei 25°C einer Si-Diode die bekannten 0,7V) kann mittels OPV verstärkt werden und auf einen Spannungsbereich von 0 ... 3V3 aufgebläht werden. Eine billige Lösung, auf Kosten der Genauigkeit. Doch eine Diode ist laut Datenblatt nur bis 150°C geeignet. Es ist also beim Löten mehr oder weniger Pfusch. Wenn ich schon eine Reflow-Steuerung baue, sollte ich doch nicht an ein paar Euro für eine gescheite Temperaturmessung sparen. Einige Anregungen vom Messgerätehersteller Keithley bzgl. der Halbleiterphysik mit interessanten Formeln [http://www.keithley.de/support/data?asset=50486]. Oder natürlich der Klassiker von Thomas Pfeifer [http://thomaspfeifer.net/backofen_smd_reflow.htm]. Oder ein Beitrag mit LT-Spice Simulation zum Thema [http://www.mikrocontroller.net/topic/270627#2833883].&lt;br /&gt;
* Q: God why ... ?&lt;br /&gt;
** A: Because we can !&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Verbesserungen Prototyp ===&lt;br /&gt;
* Bauteile weiter weg von Schraublöchern&lt;br /&gt;
* Dazu Kreis rund um Bohrung auf Bestückdruck&lt;br /&gt;
* Masseanbindung Quarz&lt;br /&gt;
* Klemmen weiter weg vom Rand&lt;br /&gt;
* Klemme und Sicherungshalter weiter auseinander, damit Schutzhabe draufpasst&lt;br /&gt;
* Bohrungen für Drossel 0,2mm größer machen&lt;br /&gt;
* Teilenummer für Conrad-USB-Buchse in BOM übernehmen.&lt;br /&gt;
* Stiftleiste P1  weiter weg von P2 und P4&lt;br /&gt;
* Varistoren näher an Klemmen platzieren&lt;br /&gt;
* Bestückvarianten defineren: 1. minimal 2. Standard 3. Externe Leds und Schalter.&lt;br /&gt;
* THT-Kondensatoren für Snubber - extra Footprint?&lt;br /&gt;
* Ggv. Stiftleistenbelegung für externe Leds so ändern, das keine extra Vorwiderstände notwendig sind.&lt;br /&gt;
&lt;br /&gt;
=== Errata Projekt ===&lt;br /&gt;
* LED-Beschriftung passt nicht ganz (Schltplan Netlabel OUT1,2,3,4 sind durcheinander gekommen)&lt;br /&gt;
* Schaltplan UNL2003 fehlerhafte Zuordnung IN5,6,7 &amp;lt;&amp;gt; OUT7,6,5&lt;br /&gt;
* Brückengleichrichter / Optokoppler NICHT die im Schaltplan angegebenen Bestellnummern von Reichelt verwenden. BOM-Bauteile und Bestellnummern sind ok.&lt;br /&gt;
* Beim MOSFET R39 ist die Masseanbindung falsch. Es bestehen drei Möglichkeiten:&lt;br /&gt;
** 1. 0-R-Brücke für R39 einbauen und auf Strombegrenzung verzichten.&lt;br /&gt;
** 2. Eine Polyfuse mit Bauform 1206 einbauen. &lt;br /&gt;
** 3. Das kleine Leiterbahnstückchen zwischen R38 und R39 unterbrechen und statt dessen die Leiterbahn zwischen R39 und der Klemme mit der Durchkontaktierung bei R38 verbinden.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* Diskussion [http://www.mikrocontroller.net/topic/297217 Diskussion]&lt;br /&gt;
* Dextrel Nulldurchgang [http://www.dextrel.net/diyzerocrosser.htm Nulldurchgangschaltung]&lt;br /&gt;
* Gehäuse [http://www.hammondmfg.com/pdf/RM2015M.pdf Gehäuse Hammond]&lt;br /&gt;
* Bezugsquelle SOS Elektronik [http://www.soselectronic.com/?str=371&amp;amp;artnum=73595&amp;amp;name=hammond-ritec-rm2055m]&lt;br /&gt;
* Bezugsgquelle [http://www.druckerzubehoer.de/shop/product/catid/H-UNIVERSALZUBEHOER_HZB/subcatid/UNIVERSALZUBEHOER_GROUP1_HZB/productid/1727063-390722LA/site/1/lng/de_DE Mini USB Netzteil]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Projekte]]&lt;br /&gt;
[[Kategorie:PIC]]&lt;br /&gt;
[[Kategorie:PIC-Boards]]&lt;br /&gt;
[[Kategorie:Platinen]]&lt;/div&gt;</summary>
		<author><name>Frankman</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=Reflow_Ofen_Steuerung&amp;diff=76105</id>
		<title>Reflow Ofen Steuerung</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=Reflow_Ofen_Steuerung&amp;diff=76105"/>
		<updated>2013-05-29T21:19:03Z</updated>

		<summary type="html">&lt;p&gt;Frankman: /* Phasenanschnitt, Phasenabschnitt */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Datei:RFB.jpg]]&lt;br /&gt;
== Einleitung ==&lt;br /&gt;
[[Datei:pcb.png|thumb|right|400px|unbestücktes PCB der Reflow-Ofen-Steuerung]]&lt;br /&gt;
Hier wird eine weitere Reflow-Ofen-Steuerung beschrieben.&lt;br /&gt;
=== Zum Nachbauen ===&lt;br /&gt;
* Spezifikation: [[Datei: Spec Reflow.pdf]]&lt;br /&gt;
* Schaltplan: [[Datei:Reflow.pdf]]&lt;br /&gt;
* Gerberdaten: [[Datei:Gerber Reflow.pdf]]&lt;br /&gt;
* Assemblydrawing: [[Datei:Assembly Reflow.pdf]] &lt;br /&gt;
* Altium-Files: [[Datei:Reflow.zip]]&lt;br /&gt;
* Stückliste als CSV: [[Datei:Reflow.csv]]&lt;br /&gt;
* Stückliste als Open Office: [[Datei:Reflow.ods]]&lt;br /&gt;
* PC Programm: TBD&lt;br /&gt;
* Sourcen PC-Programm: TBD&lt;br /&gt;
* PIC Programm (*.hex): TBD&lt;br /&gt;
* Sourcen Pic-Programm: TBD&lt;br /&gt;
&lt;br /&gt;
=== Motivation ===&lt;br /&gt;
Die Gründe, eine weitere Steuerung zu entwerfen, waren:&lt;br /&gt;
&lt;br /&gt;
# Die Möglichkeit, auch größere Öfen mit 2 Phasen betreiben zu können.&lt;br /&gt;
# Die Steuerung universell zu gestalten. Es sollte möglich sein, diese nicht nur zum Reflow löten zu verwenden.&lt;br /&gt;
# Die Schaltung sollte in Altium entwickelt werden. (Warum kein Eagle??? Altium User wissen es.... :-)&lt;br /&gt;
# Die Schaltung sollte mit USB ausgestattet sein.&lt;br /&gt;
=== Eigenschaften &amp;amp; Spezifikationen ===&lt;br /&gt;
* Temperaturmessung: bis zu 2x &#039;&#039;&#039;Thermoelement&#039;&#039;&#039; (K-Typ) mit MAX6675 (abgekündigt) oder Nachfolger MAX31855 (pin- aber nicht softwarekompatibel)&lt;br /&gt;
* &#039;&#039;&#039;Leistungsstufen&#039;&#039;&#039;: 3x voneinander unabhängige Triac 800V bei 25A, limitiert auf &#039;&#039;&#039;10A @ 250VAC&#039;&#039;&#039; (z.B. Oberhitze, Unterhitze, Umluft)&lt;br /&gt;
* &#039;&#039;&#039;Nulldurchgangserkennung&#039;&#039;&#039; ermöglicht Wellenpaket-, Phasenan- und abschnittssteuerung, galvanische Trennung selbiger&lt;br /&gt;
* 1x &#039;&#039;&#039; MOSFET-Ausgang&#039;&#039;&#039; PWM z.B. für 12V Lüfter, max. 55V 3,5A&lt;br /&gt;
* &#039;&#039;&#039;feste Programme&#039;&#039;&#039; im EEPROM über 2-Tasterbedienung und LEDs wähl- und ausführbar. &#039;&#039;&#039;PC-unabhängiger Betrieb&#039;&#039;&#039;. Beliebig viele Programme möglich, für die Auswahl stehen 4 benutzer-konfigurierbare LEDs zur Verfügung&lt;br /&gt;
* Betrieb am Computer für mehr Reflowprofile&lt;br /&gt;
* Mini-USB-Buchse zur Steuerung / Programmierung über GUI&lt;br /&gt;
* Günstiges passendes &#039;&#039;&#039;Gehäuse&#039;&#039;&#039;, alle LEDs und Taster auf Stiftleisten herausgeführt&lt;br /&gt;
* PID-Temperaturregler&lt;br /&gt;
* UART, SPI, I2C und 2x ADC auf Stiftleisten herausgeführt (-&amp;gt; Erweiterungen)&lt;br /&gt;
* Versorgung über USB (&amp;lt; 100mA), interne Versorgungsspannung 3,3V&lt;br /&gt;
* umfangreiche EMV-gerechte Entstörung für den Bedarfsfall&lt;br /&gt;
&lt;br /&gt;
== Technische Realisierung==&lt;br /&gt;
=== PIC18LF2550 Grundbeschaltung ===&lt;br /&gt;
[[Datei:osc_vs_vcc.png|thumb|right|200px|Taktraten und Versorgungsspannung PIC18LF2550 vs. PIC18LF2550, Datenblatt S. 370/438]]&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 3/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Hier kommt ein PIC18&#039;&#039;&#039;L&#039;&#039;&#039;F2550 zum Einsatz. Er verfügt über eine USB-Schnittstelle und ist für Betriebsspannungen von 2 ... 5,5V ausgelegt. Sein Verwandter PIC18F2550 (ohne L) ist nicht für Betriebsspannungen &amp;lt; 4,2V ausgelegt. Dies ist bei USB sowiesor nicht immer erfüllt und die Thermoelement ICs vertragen ohnehin keine 5V, daher wurde die Betriebsspannung auf 3,3V reduziert. Neben Standard-Decoupling (100nF Kerko pro Vcc-Vss-Pärchen) wurde das ICSP-Interface in alt bewährter Pinbelegung (PICKit1,2,3) angebracht. PGD und PGC sind nicht weiter beschaltet, MCRL wird in Standardbeschaltung als Resetpin verwendet. Der Resetschalter findet sich auf dem Top-Sheet (Schaltplan S. 1/22). Die Taktversorgung erfolgt zwingend über einen 24 MHz Quarz (-&amp;gt; USB). Man beachte diesbezüglich rechts stehende Grafik zu Taktraten und Versorgungsspannungen (Vdd bzw. auch Vcc genannt). Auch zu finden im Datenblatt des PICs auf Seite 370.&lt;br /&gt;
&lt;br /&gt;
=== PIC18LF2550 USB Beschaltung ===&lt;br /&gt;
[[Datei:usb_part.png|thumb|right|200px|PIC18(L)F2550&lt;br /&gt;
 Standard &lt;br /&gt;
USB-Beschaltung am PIC]]&lt;br /&gt;
[[Datei:usb_protect.png|thumb|right|200px|USB-Schutzbeschaltung und Mini-USB-Buchse]]&lt;br /&gt;
&lt;br /&gt;
Die Beschaltung der USB-Schnittstelle am PIC ist 1:1 aus dem Datenblatt übernommen. Zum Einsatz kommt eine Mini-USB-Buchse (J1).&lt;br /&gt;
Der Gedanke war: Erstens ein sehr preiswertes, fertiges Netzteil verwenden zu können, (ca. 3,67 € bei druckerzubehoer.de) und zweitens, die Steuerung auch mit dem PC / Laptop versorgen zu können.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 4/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
FER1,2 und C7 filtern den Schirm nach GND. Standardmäßig wird man hier wohl 0-Ohm-Widerstände einsetzen. Falls ein Besuch im EMV-Labor geplant ist, weicht man auf den Ferrit aus. C5 und C6 filtern das Signal zusammen mit der Common-Mode-DrosselL1. Die Drossel kann mit den 0-Ohm-Brücken R8 und R9 überbrückt (gespart) werden. IC2 ist als ESD-Schutz gedacht und kann ebenfalls bei ausgeprägten Kostenbewustsein gespart werden. Die Widerstände R6 und R7 dürfen NICHT bestückt werden. FER1,2, C5, IC2 müssen nicht zwingend bestückt werden. Die Bestückung wurde vorgehalten um im Problemfall einfache Abhilfe schaffen zu können.&lt;br /&gt;
&lt;br /&gt;
=== 3,3V Spannungsversorgung ===&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 2/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Die 3,3V Versorgungsspannung für die gesamte Platine wird aus V_USB mittels des LDO Spannungsreglers TOREX - XC6206P332MR abgeleitet. Günstig, SOT-23, klein, 2x 1µF Kondensatoren benötigt, 3,3V max. 250mA. Der hat auch einen sehr kleinen Ruhestrom.&lt;br /&gt;
&lt;br /&gt;
=== Taster ===&lt;br /&gt;
*Der Resettaster zieht den MCLR-Pin nach GND und löst damit den Reset aus. MCLR ist gem. der Standardbeschaltung mit einem 10k Pullup versehen.&lt;br /&gt;
*Die übrigen beiden Taster ziehen RA4 bzw. RB5 ebenfalls nach GND.&lt;br /&gt;
&lt;br /&gt;
=== LEDs + ULN2003L ===&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 11/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Um alle LEDs auf der Platine (3x Optotriac + 7x Status) ansteuern zu können wurde auf das 7fach Darlington-Array ULN2003L zurückgegriffen. Es dient desweiteren auch als &amp;quot;MOSFET-Treiber für Arme&amp;quot;. Alle LEDs werden von diesem Transistor-Array nach Masse geschaltet. Dient der Entlastung der PIC-Ausgänge. Und kostet ja auch nicht viel.&lt;br /&gt;
&lt;br /&gt;
=== MOSFET-Leistungsausgang ===&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 22/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Hier kommt der einfacher N-Kanal MOSFET (LogicLevel) PHT8N06LT zum Einsatz. Er wird über das ULN2003L Array getrieben und ermöglicht den Anschluss eines DC-Verbrauchers mit max. 55V bei 3,5A. Hier könnte beispielsweise ein PC-Lüfter zur Kühlung od. Umluft angeschlossen und über PWM geregelt/gesteuert werden. Ein Gatewiderstand von 100 Ohm ist zum Schutz des Treibers vorgesehen. Eine 0-Ohm-Brücke ist stattdessen aber auch möglich, wenn man eine höhere Leistung schalten möchte.Die Leiterbahnen sollten die 3A schon hergeben. Der 100 Ohm Widerstand bildet eine Stromquelle. Sobald der Strom durch den MOSFET und den Widerstand 33mA erreicht, sinkt UGS gegen 0 V. Folge: Der Mosfet sperrt ( und bleibt ganz....)&lt;br /&gt;
Es kann hier prinzipiell auch ein anderer Mosfet im SOT223-Gehäuse zum Einsatz kommen. Achten sollte man darauf, das der MOSFET schon bei 3,3V Ugs gut leiten sollte.&lt;br /&gt;
&lt;br /&gt;
=== Nulldurchgangserkennung ===&lt;br /&gt;
[[Datei:zerocross.png|thumb|right|200px|Nulldurchgangserkennung]]&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 5/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Die Nulldurchgangserkennung erfolgt nach einer sehr bekannten - jedoch ausgeklügelten - Schaltung.  [http://www.dextrel.net/diyzerocrosser.htm]&lt;br /&gt;
&lt;br /&gt;
ACHTUNG: DER IM SCHALTPLAN VERZEICHNETE OPTOKOPPLER und BRÜCKENGLEICHRICHTER VON REICHELT DARF KEINESFALLS VERWENDET WERDEN! Pinbelegung! Bitte den Optokoppler aus der Stückliste nehmen!&lt;br /&gt;
&lt;br /&gt;
Während einer Halbwelle wird C14 über R33 und R35 bzw. D5 geladen. Währenddessen ist T1 gesperrt. Sobald die Wechselspannung (L1-N über Spannungsteiler (R33+R35) / R34) kleiner ist als die Spannung über C14, steuert T1 durch. Dann entlädt sich C14 über den LED-Vorwiderstand R32. Der durch-steuernde Optokoppler zieht die Sync-Leitung nach GND. (Pullup Sync-Leitung = R31). Dies löst beim PIC auf INT2 einen Interrupt aus. &lt;br /&gt;
&lt;br /&gt;
Dieser Interrupt ermöglicht eine präzise Wellenpaket-, Phasenanschnittsteuerung je nach Bedarf. Das Schalten im Nulldurchgang bei der Wellenpaketsteuerung reduziert EMV-Störungen. Für Phasenanschnitt ist prinzipbedingt ohnehin eine Nulldurchgangserkennung notwendig. Außerdem liefert sie eine völlig ausreichend genaue Zeitbasis für alle Programmabläufe.&lt;br /&gt;
&lt;br /&gt;
=== Triac-Ausgänge + Snubber ===&lt;br /&gt;
[[Datei:triac.png|thumb|right|200px|Triac-Ausgangsbeschaltung]]&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 19,20,21/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Die Ansteuerung des eigentlichen Leistungstriacs BTA140-800 erfolgt über den Optotriac IS6005. Der Strom durch Letzteren wird durch R1x limitiert (Vorwiderstand). R2x und R5x limitieren wiederum den Strom durch den Optotriac. Wenn dieser zündet so folgt unmittelbar der &amp;quot;Leistungstriac&amp;quot; der dann die Last schaltet.&lt;br /&gt;
&lt;br /&gt;
S1x ist ein Sicherungshalter um die Lasten einzeln absichern zu können. Wert 10A Mittelträge.&lt;br /&gt;
&lt;br /&gt;
R3x, R4x, C3x bilden ein Snubber-Network, L1X verhindert eine zu schnelle Stromanstiegsgeschwindikeit damit der Triac nicht &amp;quot;von selbst&amp;quot; zündet. Weglassen äußert sich meist in einem fast nicht hörbaren Click. Damit zeigt einem dann der Triac, dass er ab jetzt für immer recht niederohmig geworden ist. Die Regelung der Temperatur braucht dann nicht mehr über den Prozessor erfolgen, sondern nur noch mit dem Ein-/Ausschalter..... :-)&lt;br /&gt;
&lt;br /&gt;
=== Thermoelemente (MAX6675/MAX31855)  ===&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 6,7/22&#039;&#039;&#039;&lt;br /&gt;
Der inzwischen abgekündigte MAX6675 bzw. sein ehrenwerter Nachfolger MAX31855 sind einfach zu handhabende Thermoelement-ICs mit Kaltstellenkompensation. Thermoelemente funktionieren durch das Verschweißen zweier verschiedener Legierungen (beim K-Typ Thermoelemnt Ni und CrNi). Durch den durch die Umgebungstemperatur bedingten Wärmefluss zwischen beiden entsteht ein elektrische Spannung. Diese wird von besagten ICs verstärkt und digitalisiert (ADC). Diese Spannung / Temperatur ist natürlich wieder relativ zur Umgebungstemperatur an der Kaltstelle (Kontaktierung der beiden Drähte mit dem Messinstrument). Daher messen diese ICs auch gleich die Umgebungstemperatur (Kaltstellenkompensation genannt) mit, verrechnen das und geben das Ergebnis auf der SPI-Schnittstelle aus. MAX6675 leistet 12bit also 0,25°C Auflösung (nicht Genauigkeit!) über einen Temperaturbereich von 0°C to +1024°C. Außerdem wird ein nicht/fehlerhaft angeschlossenes Thermoelement erkannt. Der Thermocouple-IC wird an die SPI-Schnittstelle des PICs angeschlossen (hier MSSP genannt). &lt;br /&gt;
&lt;br /&gt;
MAX6675 und MAX31855 scheinen entgegen der Adafruit-Information [http://www.adafruit.com/products/269] doch pinkompatibel zu sein - die Ansteuerung unterscheidet sich jedoch definitiv. (Zitat: &amp;quot;Now uses the MAX31855K instead of the MAX6675, so it can measure a wider temperature measurement range. Please note! the MAX31855 is not pin compatible or drop-in code compatible with the MAX6675. We do have an Arduino library for both chips but you&#039;ll need to adjust any existing MAX6675 designs for the mew MAX31855. The MAX6675 has been discontinued by Maxim.&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Es wurden 2 dieser ICs und damit 2 Temperaturmessstellen vorgesehen. Dies ermöglich die Messung für eine Regelung der Temperatur so wie eine zusätzliche Überwachung kritischer Bauteile (z.B. ICs oder LEDs). Die Minimalbestückung sieht einen MAX6675/MAX31855 vor. Die Auswahl in der Firmware erfolgt über einen der beiden GPIO-Pins RA5 oder RA0 via dem ChipSelect (CS) des MAX6675/MAX31855.&lt;br /&gt;
&lt;br /&gt;
Neben dem MAX6675/MAX31855 wurde ein Decoupling-Kondensator (C8x, Standard 100nF) so wie ein weiterer im Messpfad (C9x) zur Zwecken der Entstörung vorgeshen. C9x 100nF sollte nur bestückt werden wenn Probleme bei der Temperaturmessung entstehen (z.B. unrealstisch stark schwankende Werte).&lt;br /&gt;
&lt;br /&gt;
=== ADC, SPI, UART &amp;amp; I2C Stiftleiste ===&lt;br /&gt;
ADC, SPI, UART und I2C sind zu Zwecken der Kalibrierung / Erweiterung / Einstellung / Debugging auf Stiftleisten herausgeführt:&lt;br /&gt;
Ähnlichkeiten mit dem FTDI-USB-TTL-Kabel bzw. Arduino XXX Bla Bla Bla Schnittstellenkonverter sind natürlich rein zufällig.&lt;br /&gt;
&lt;br /&gt;
Die I2C-Schnittstelle wurde auf eine Stiftleiste geführt, um z.B. einem LM75 o.ä. anschließen zu können. Damit stehen zur Kalibrierung der Thermoelemente genaue Temperaturen zur Verfügung.&lt;br /&gt;
&lt;br /&gt;
Die Stiftleisten haben alle ein Raster von 2,54mm. So können Pin-Header, Wannenstecker oder ähnliches verwendet werden.&lt;br /&gt;
&lt;br /&gt;
Da ja viele Leute eigene Vorstellungen bezüglich der Frontplattengestaltung haben, wurden auch die Taster und LEDs auf Stiftleisten geführt.&lt;br /&gt;
&lt;br /&gt;
=== Kühlkörper ===&lt;br /&gt;
Da die Triacs der Steuerung für bis zu 10A pro Kanal ausgelegt sind, kann man auf die Kühlkörper nicht verzichten. Es fallen bei 10A bis zu 13 Watt Wärme pro Triac ab. Falls mann auf die Kühlkörper doch verzichten möchte, sollte man darauf achten, die Triacs mit dem Kopf nach unten einzubauen. Diese können sich dann bei Überlast ganz von selber auslöten.... :-)&lt;br /&gt;
&lt;br /&gt;
=== Gehäuse ===&lt;br /&gt;
Die Leiterplatte wurde für ein Gehäuse von Hammond entwickelt.&lt;br /&gt;
Das Gehäuse ist zwar keine Schönheit, aber doch recht preiswert.&lt;br /&gt;
Typenbezeichnung: RM2055M&lt;br /&gt;
&lt;br /&gt;
== Firmware PIC ==&lt;br /&gt;
Die Entwicklung der Firmware für den PIC18LF2550  geht mit MPlab 8 respektive dem C18 Compiler von Statten. MPlab ist kostenlos, der C18 Compiler bis auf die stärkste Optimierungsstufe ebenfalls. Die Quellen für die Firmware werden auch offengelegt.&lt;br /&gt;
=== Programmstruktur- und ablauf ===&lt;br /&gt;
Nach anfänglicher Initialisierung des PIC startet die Statemachine [http://http://www.mikrocontroller.net/articles/Statemachine] [http://http://de.wikipedia.org/wiki/Endlicher_Automat]. Neben ihr findet in der main-Funktion nur noch die Abfrage der beiden Bedientasten statt. Mit dem Tastendruck wird zum Zwecke der Entprellung ein Timer gestartet. Alles Andere (incl. PID-Regelung, Wellenpaket- bzw. Phasenan- und Phasenabschnittssteuerung und USB) ist interruptbasiert.&lt;br /&gt;
&lt;br /&gt;
=== Taktversorgung, Nulldurchgangserkennung und Zeitbasis ===&lt;br /&gt;
=== USB ===&lt;br /&gt;
=== SPI für MAX6675 ===&lt;br /&gt;
=== SPI für MAX31855 ===&lt;br /&gt;
&lt;br /&gt;
=== Wellenpaketsteuerung ===&lt;br /&gt;
=== Phasenanschnitt ===&lt;br /&gt;
&lt;br /&gt;
=== PWM für MOSFET ===&lt;br /&gt;
&lt;br /&gt;
== PC-Software (GUI) ==&lt;br /&gt;
[[Datei:gui_alpha.png|thumb|right|300px|Screenshot der GUI (noch Alpha) für den Reflow-Ofen-Controller]]&lt;br /&gt;
&lt;br /&gt;
Die GUI (englisch Graphical User Interface) ist der Einfachheit halber in VB.net programmiert und momentan noch im Alpha-Stadium. Auch hierfür liegen die Quellen später selbstverständlich offen.&lt;br /&gt;
&lt;br /&gt;
=== Funktionen und Modi ===&lt;br /&gt;
[[Datei:modi.png|thumb|right|400px|Auswahl der beschriebenen Modi durch Klick]]&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Ofen-Profil&amp;quot;&#039;&#039;&#039; - Es wird ein Programm (Temperaturkurve) aus dem EEPROM des Reflow-Ofens ausgeführt. Der Backvorgang kann mit der Software gesteuert (START, STOP, ...) und überwacht werden. Hierzu stehen Temperatur, Temperaturänderung, Heizleistung (Ober- und Unterhitze, Lüfter) so wie die graphische Darstellung im zentralen Diagramm zur Verfügung. Eingriffsmöglichkeiten, wie das Ändern der Temperaturkurve sind nicht vorgesehen. Dies soll ein reiner Überwachungs-Modus sein. Um die Temperaturkurve zu verändern zu können, sollte der Modus &amp;quot;PC-Profil&amp;quot; verwendet werden und die Temperaturkurve aus dem EEPROM importiert werden. Dann kann Selbige auch verändert und anschließend ausgeführt bzw. verändert in den EEPROM zurückgeschrieben werden. Dieser Modus stellt ein Äquivalent zur START/STOP-Tasten-Bedienung an der Platine dar und kann selbstverständlich parallel dazu genutzt werden. Die GUI also als Addon zum Stand-Alone-Betrieb.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;PC-Profil&amp;quot;&#039;&#039;&#039; - Es wird ein Programm (Temperaturkurve) ausgeführt welche zuvor am Computer erstellt / editiert wurde. In diesem Modus gibt der Computer Temperaturwerte vor, welche live über die USB-Schnittstelle zum PIC übertragen werden und mit dem dort integrierten PID-Regler ausgeführt werden. Das ermöglicht eine on-the-fly Veränderung der Temperaturkurve während des Backvorgangs. Temperaturkurven können aus Dateien oder dem EEPROM importiert und auch wieder exportiert werden. CSV-Dateien können ebenfalls importiert und exportiert werden. Die &amp;quot;Eingabe&amp;quot; der Temperaturkurve erfolgt entweder über Import (CSV/EEPROM), per Mausklick auf dem zentralen Diagramm oder im sog. DataGridView. Weiteres siehe Unterpunkt &amp;quot;Eingabe der Temperaturkurve (Reflowprofil)&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;manueller Ablauf&amp;quot;&#039;&#039;&#039; - In diesem Modus wird (im Gegensatz zu den oberen beiden Modi &amp;quot;Ofen-Profil&amp;quot; und &amp;quot;PC-Profil&amp;quot;) keine Temperatur geregelt. Hier wird die Leistung des Ofens in % eingestellt und gesteuert. Der PID-Regler ist nicht in Aktion. Die Temperatur, Temperaturänderung so wie der Temperaturverlauf werden selbstredend angezeigt bzw. im Diagramm dargestellt. Der Modus &amp;quot;manueller Ablauf&amp;quot; fährt ähnlich dem Modus &amp;quot;PC-Profil&amp;quot; die im DataGridView eingetragenen Leistungs-Zeit-Punkte ab. Für jeden Zeitpunkt ist eine Leistung vorgegeben. Die Eingabe erfolgt ähnlich wie unter &amp;quot;Eingabe der Temperaturkurve (Reflowprofil)&amp;quot; beschrieben. Nur eben, dass eine Leistung und keine Temperatur angegeben wird. Die Eingabe der Leistung kann nicht im Zeit-Temperatur-Diagramm erfolgen sondern mittels der Schieberegler oder direkt tabellarisch.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;manueller Modus&amp;quot;&#039;&#039;&#039; - Dieser Modus enthält 2 Submodi&lt;br /&gt;
** &amp;quot;manueller Leistungsmodus&amp;quot; - Auch in diesem Modus wird die Leistung gesteuert. Es wird keine Temperatur geregelt, der PID-Regler für die Temperatur ist nicht in Betrieb. Die Einstellung hier erfolgt über die drei Schieberegler oder über eine numerische Eingabe durch Klick auf die Leistungsangabe unter dem Schieberegler. Durch Klick auf die Texte &amp;quot;TOP&amp;quot;, &amp;quot;BOTTOM&amp;quot;, &amp;quot;FAN&amp;quot; (Oberhitze, Unterhitze, Lüfter) können selbige deaktiviert bzw. aktiviert werden. Auch in diesem Modus wird Temperatur, Temperaturänderung so wie der Temperaturverlauf dargestellt.&lt;br /&gt;
** &amp;quot;manueller Temperaturmodus&amp;quot; - Hier wird die Temperatur wieder mittels des Temperatur-PIDs geregelt. Die Temperatur wird entweder mittels Schieberegler (Ober- und Unterhitze-Regler sind jetzt gekoppelt) oder durch eine numerische Eingabe unterhalb der Schieberegler vorgegeben. Anzeige wie im &amp;quot;manuellen Leistungsmodus&amp;quot;. Der Lüfter kann unabhängig vom PID in seiner Leistung geregelt werden. Ein evtl. durch den Luftstrom verursachter Temperaturabfall wird vom PID selbstverständlich ausgeregelt (aus diesem Grunde ist es ja ein Regler).&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Programmieren&amp;quot;&#039;&#039;&#039; - Hier kann ein neues &#039;&#039;&#039;Temperatur&#039;&#039;&#039;-Programm für den EEPROM-Speicher des Ofens erstellt und editiert werden. Die Eingabemöglichkeiten sind unter &amp;quot;Eingabe der Temperaturkurve (Reflowprofil)&amp;quot; beschrieben. Dieser Modus ist zum reinen Programmieren des Ofens gedacht und ermöglicht keine weitere Steuerung oder Überwachung des Ofens.&lt;br /&gt;
&lt;br /&gt;
=== Eingabe der Temperaturkurve (Reflowprofil) ===&lt;br /&gt;
[[Datei:datagridview.png|thumb|right|400px|tabellarische Anzeige und Editiermöglichkeit der Temperaturkurve]]&lt;br /&gt;
Die Eingabe der Temperaturkurve erfolgt entweder über Import (CSV/EEPROM), per Mausklick auf dem zentralen Diagramm oder im sog. DataGridView (Excel-ähnliche Bedienung in tabellarischer Form). &lt;br /&gt;
&lt;br /&gt;
* CSV-Import + Export&lt;br /&gt;
* EEPROM-Import + Export&lt;br /&gt;
* Im rechts stehenden Screenshotbeispiel wird eine tabellarische Eingabeform mit einem DataGridView gezeigt: Die Temperatur (erster Temperaturpunkt = Punkt 0) von 100°C wird linear über einen Zeitraum von 0-30s verteilt. Bei 30s hat der Ofen die Temperatur von 100°C. Dafür setzt die Regelung die Oberhitze, die Unterhitze ein. Der Lüfter ist deaktiviert. In der Zeit von 30s bis 120s wird die Temperatur nun von 100°C auf 150°C linear angehoben. Von 120s bis 180s Backzeit steigt die Temperatur von 150°C auf 250°C. Von 180s bis 200s wird die Temperatur auf 280°C angehoben. Anschließend wird sie zwischen 200s und 220s auf 280°C gehalten (280°C@200s und 280°C@220s) um dann bis 240s wieder auf 250°C zu fallen. Bis zum Zeitpunkt 300s wird dann die Temperatur 30°C angestrebt. Zusätzlich ist der Lüfter nun aktiviert (soweit der Ofen eine Umluftfunktion besitzt). Bei Punkt 7 sind Ober- und Unterhitze deaktiviert nur noch der Lüfter kühlt. Da hier bei &amp;quot;Zeit[s]&amp;quot; die 0 eingetragen wird der Zustand (hier nur Lüfter an) für einen unendlich langen Zeitraum auf 0 gehalten. Also so lange wie das Programm aktiviert ist wird der Lüfter laufen. Natürlich könnte man hier auch z.B. 100°C und Zeitpunkt 0s eintragen. Dann würde der Ofen bis zum manuellen Beenden des Programms (klick auf STOP-Button oder Drücken des START/STOP-Tasters auf der Platine/Steuerung) 100°C halten.&lt;br /&gt;
* Alle Zellen des DataGridView sind editierbar (zur Veränderung der Temperatur, Zeitpunkt, ...)&lt;br /&gt;
* Direkter Klick auf das zentrale Temperatur-Zeit-Diagramm trägt den Zeitpunkt so wie die Temperatur unter dem Mauszeiger in die Tabelle (das DataGridView) ein. Die ausgewählte Zeile wird beschrieben oder überschrieben. Neue Zeilen (also Temperatur-Zeit-Punkte) können durch klick auf den &amp;quot;Plus-Button&amp;quot; hinzugefügt werden. Ebenso ist das Löschen oder Verschieben einer oder mehrerer Zeile gleichzeitig möglich.&lt;br /&gt;
&lt;br /&gt;
=== Beschreibung der Steuerungsmöglichkeiten ===&lt;br /&gt;
In Abhängigkeit des gewählten Modus bestehen einige Steuerungs-, Einstellungs- und Kontrollmöglichkeiten:&lt;br /&gt;
* &#039;&#039;&#039;Schieberegler&#039;&#039;&#039; für Temperatur od. Leistung (je nach Modus) für Oberhitze, Unterhitze und Lüfter. Je nach Hardwareausführung. &lt;br /&gt;
** Klick auf &amp;quot;TOP&amp;quot;, &amp;quot;BOTTOM&amp;quot; oder &amp;quot;FAN&amp;quot; aktiviert oder deaktiviert die entsprechende Funktion bzw. Hardware.&lt;br /&gt;
** Numerische Eingabe der Werte für die Schieberegler durch Klick auf die Anzeige unterhalb der Schieberegler. Werte können auch im deaktivierten Zustand angegeben werden. Die Übernahme erfolgt durch den &amp;quot;Aktivierungsklick&amp;quot; auf &amp;quot;TOP&amp;quot;, &amp;quot;BOTTOM&amp;quot; oder &amp;quot;FAN&amp;quot;&lt;br /&gt;
* &#039;&#039;&#039;T1, dT1, T2, dT2&#039;&#039;&#039; - Anzeige der gemessenen Temperatur so wie die momentane Temperaturänderung am jeweiligen Sensor. &lt;br /&gt;
* &#039;&#039;&#039;Bedienbuttons&#039;&#039;&#039;&lt;br /&gt;
** Play - Startet das Programm am angegebenen Startpunkt (siehe unten)&lt;br /&gt;
** Pause - Pausiert das Programm - weitere Pauseoptionen siehe unten&lt;br /&gt;
** Stop - Stopt den Programmablauf&lt;br /&gt;
** Vor / Zurück - Springt zwischen Temperaturpunkten hin und her. Dient zum überspringen oder zurückspringen zu gewissen Temperatur-Zeit-Punkten. Ermöglicht z.B. das Überspringen eines Ablaufes der eine lange Preheat- oder Dryphase hat.&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Status&amp;quot;&#039;&#039;&#039; - zeigt den aktuellen Zustand des Programms an (READY, START, WAITING, PAUSE, ...)&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;RESET&amp;quot;&#039;&#039;&#039; - setzt das (begonnene) Programm zurück. Beinhaltet neben dem Programmablauf auch das Zurücksetzen der graphischen Anzeige des Diagramms, etc.&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Startpunkt&amp;quot;&#039;&#039;&#039; - legt den ersten Punkt des Programmablaufes fest. &lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Wiederholungen&amp;quot;&#039;&#039;&#039; - ermöglicht das wiederholte Backen ohne das Programm händisch immer wieder neu starten zu müssen. Die Anzahl der Wiederholungen ist einstellbar (0 für unendlich viele) und es ist eine Wartezeit zwischen den Wiederholungen einstellbar. Alternativ kann eine Meldung nach jedem vollendeten Backvorgang abgegeben werden. Nach Bestätigung dieser wird die nächste Wiederholung ausgeführt.&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Pause&amp;quot;&#039;&#039;&#039; - Pauseneinstellungen. Hier sind Optionen wählbar was passieren soll, falls der Pausebutton betätigt wird:&lt;br /&gt;
** Pausezeit - gibt an wie lange die Pause dauern soll [s], danach fährt das Programm automatisch gemäß des gewählten Pausemodus fort. Für eine Pause ohne automatisches Fortfahren (Countdowntimer) &#039;0&#039; angeben.&lt;br /&gt;
** Pausemodus &amp;quot;aktuelle Temperatur halten, WarmUp, Fortsetzen&amp;quot; - Ofen hält die Temperatur (Zieltemperatur) des Zeitpunktes als der Pausebutton betätigt wurde. WarmUp bedeutet, dass nach dem Beenden des Pausemodus zunächst die Zieltemperatur wieder erreicht werden &#039;&#039;&#039;muss&#039;&#039;&#039; bevor der nächste Punkt angesteuert wird. Klingt paradox, wenn die Temperatur doch so und so gehalten wird, ist aber nicht so. Die Wahrscheinlichkeit ist hoch, dass der Pausemodus benutzt wird um die Ofentüre zu öffnen und Korrekturen an der Platine vorzunehmen. Unter Umständen ist die Heizung des Ofens jedoch nicht in der Lage den dadurch entstehenden Wärmeverlust zu kompensieren. Fährt das Programm dann sofort fort, so könnten evtl. kritische (Hoch-)Punkte des Lötprofils &amp;quot;unterfahren&amp;quot; werden. Dem wirkt WarmUp entgegen.&lt;br /&gt;
** Pausemodus &amp;quot;aktuelle Temperatur halten, Fortsetzen&amp;quot; - siehe oben, nur ohne WarmUp.&lt;br /&gt;
** Pausemodus &amp;quot;definierte Temperatur halten, WarmUp, Fortsetzen&amp;quot; - siehe oben. Statt der aktuellen Zieltemperatur wird jedoch nun im Pausemodus eine einzustellende Pausetemperatur gehalten. Mit WarmUp.&lt;br /&gt;
** Pausemodus &amp;quot;definierte Temperatur halten, Fortsetzen&amp;quot; - siehe oben, nur ohne WarmUp.&lt;br /&gt;
** &amp;quot;Pausetemperatur&amp;quot; - spezielle Temperatur die bei entsprechender Pausemoduswahl für die Dauer der Pause gehalten wird.&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Ende&amp;quot;&#039;&#039;&#039; - gibt an was am Ende eines durchlaufenen Reflow-Programms passieren soll. Ist der Wiederholungsmodus aktiviert, tritt dieses Ereignis erst nach Durchlauf aller Wiederholungen ein. Folgende Modi sind möglich:&lt;br /&gt;
** automatischer Reset - am Ende des Programms wird alles automatisch zurückgesetzt, alle Graphiken und Anzeigen gelöscht.&lt;br /&gt;
** manueller Reset - am Ende des Programms bleiben alle Anzeigen, Graphiken, etc erhalten und müssen vor Beginn eines neuen Reflowvorgangs händisch durch Klick auf &amp;quot;RESET&amp;quot; zurückgesetzt werden.&lt;br /&gt;
** Benutzermeldung - lässt eine Meldung erscheinen. Alle Anzeigen und Graphiken bleiben erhalten bis der Benutzer diese Meldung bestätigt. Mit Bestätigung dieser Meldung wird ein automatischer Reset vorgenommen.&lt;br /&gt;
&lt;br /&gt;
=== Loggen des Temperaturverlaufes ===&lt;br /&gt;
Es ist möglich jeden Backvorgang in eine CSV-Datei zu loggen. (Software- und PID-Einstellungen). Geloggte CSV-Dateien können eingelesen und im zentralen Temperatur-Zeit-Diagramm begutachtet werden. Ein Ist-Soll-Vergleich ist ebenso möglich wie die direkte Anzeige des Fehlers (&amp;quot;Ist minus Soll&amp;quot;). Dank CSV können die Daten auch mit anderen Programmen (Excel, etc.) weiterverarbeitet werden.&lt;br /&gt;
&lt;br /&gt;
== Ofen / Pizzaofen ==&lt;br /&gt;
=== Leistung und Volumen ===&lt;br /&gt;
=== Dämmung ===&lt;br /&gt;
=== Umluft ===&lt;br /&gt;
=== Bezugsquellen ===&lt;br /&gt;
=== Diskussionen im Forum ===&lt;br /&gt;
* Umfangreicher Thread u.A. Leistungsvermögen, Temperaturmessung und Dämmung [http://www.mikrocontroller.net/topic/270627]&lt;br /&gt;
&lt;br /&gt;
== FAQ ==&lt;br /&gt;
&lt;br /&gt;
* Q1: Ich habe einen PT100/PT1000 und möchte den anschließen. Geht das?&lt;br /&gt;
** A1: Ja natürlich. Dazu ist aber etwas externe Elektronik notwendig. Sowohl 2 ADC-Pins (mit 3V3 Betriebsspannung als fixe Referenzspannung), als auch die UART und SPI/I2C-Schnittstelle stehen zur freien Verfügung. Für PT100/PT1000 wird für vernünftige Messungen ohnehin eine Verstärkung (meist mit OPV) von Nöten sein. Da der PIC-interne ADC &amp;quot;nur&amp;quot; 10bit Auflösung bietet sollte ein externer 16bit ADC in Betracht gezogen werden um das Potential der PT100/PT1000 auszunutzen.&lt;br /&gt;
*Q2: Ich habe von günstigen Temperaturmessungen mit Dioden gehört. Geht das auch hier?&lt;br /&gt;
**A2: Ja. Die Vorwärtsspannung einer Diode verhält sich linear zur Sperrschichttemperatur. Diese Spannung (bei 25°C einer Si-Diode die bekannten 0,7V) kann mittels OPV verstärkt werden und auf einen Spannungsbereich von 0 ... 3V3 aufgebläht werden. Eine billige Lösung, auf Kosten der Genauigkeit. Doch eine Diode ist laut Datenblatt nur bis 150°C geeignet. Es ist also beim Löten mehr oder weniger Pfusch. Wenn ich schon eine Reflow-Steuerung baue, sollte ich doch nicht an ein paar Euro für eine gescheite Temperaturmessung sparen. Einige Anregungen vom Messgerätehersteller Keithley bzgl. der Halbleiterphysik mit interessanten Formeln [http://www.keithley.de/support/data?asset=50486]. Oder natürlich der Klassiker von Thomas Pfeifer [http://thomaspfeifer.net/backofen_smd_reflow.htm]. Oder ein Beitrag mit LT-Spice Simulation zum Thema [http://www.mikrocontroller.net/topic/270627#2833883].&lt;br /&gt;
* Q: God why ... ?&lt;br /&gt;
** A: Because we can !&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Verbesserungen Prototyp ===&lt;br /&gt;
* Bauteile weiter weg von Schraublöchern&lt;br /&gt;
* Dazu Kreis rund um Bohrung auf Bestückdruck&lt;br /&gt;
* Masseanbindung Quarz&lt;br /&gt;
* Klemmen weiter weg vom Rand&lt;br /&gt;
* Klemme und Sicherungshalter weiter auseinander, damit Schutzhabe draufpasst&lt;br /&gt;
* Bohrungen für Drossel 0,2mm größer machen&lt;br /&gt;
* Teilenummer für Conrad-USB-Buchse in BOM übernehmen.&lt;br /&gt;
* Stiftleiste P1  weiter weg von P2 und P4&lt;br /&gt;
* Varistoren näher an Klemmen platzieren&lt;br /&gt;
* Bestückvarianten defineren: 1. minimal 2. Standard 3. Externe Leds und Schalter.&lt;br /&gt;
&lt;br /&gt;
=== Errata Projekt ===&lt;br /&gt;
* LED-Beschriftung passt nicht ganz (Schltplan Netlabel OUT1,2,3,4 sind durcheinander gekommen)&lt;br /&gt;
* Schaltplan UNL2003 fehlerhafte Zuordnung IN5,6,7 &amp;lt;&amp;gt; OUT7,6,5&lt;br /&gt;
* Brückengleichrichter / Optokoppler NICHT die im Schaltplan angegebenen Bestellnummern von Reichelt verwenden. BOM-Bauteile und Bestellnummern sind ok.&lt;br /&gt;
* Beim MOSFET R39 ist die Masseanbindung falsch. Es bestehen drei Möglichkeiten:&lt;br /&gt;
** 1. 0-R-Brücke für R39 einbauen und auf Strombegrenzung verzichten.&lt;br /&gt;
** 2. Eine Polyfuse mit Bauform 1206 einbauen. &lt;br /&gt;
** 3. Das kleine Leiterbahnstückchen zwischen R38 und R39 unterbrechen und statt dessen die Leiterbahn zwischen R39 und der Klemme mit der Durchkontaktierung bei R38 verbinden.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* Diskussion [http://www.mikrocontroller.net/topic/297217 Diskussion]&lt;br /&gt;
* Dextrel Nulldurchgang [http://www.dextrel.net/diyzerocrosser.htm Nulldurchgangschaltung]&lt;br /&gt;
* Gehäuse [http://www.hammondmfg.com/pdf/RM2015M.pdf Gehäuse Hammond]&lt;br /&gt;
* Bezugsquelle SOS Elektronik [http://www.soselectronic.com/?str=371&amp;amp;artnum=73595&amp;amp;name=hammond-ritec-rm2055m]&lt;br /&gt;
* Bezugsgquelle [http://www.druckerzubehoer.de/shop/product/catid/H-UNIVERSALZUBEHOER_HZB/subcatid/UNIVERSALZUBEHOER_GROUP1_HZB/productid/1727063-390722LA/site/1/lng/de_DE Mini USB Netzteil]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Projekte]]&lt;br /&gt;
[[Kategorie:PIC]]&lt;br /&gt;
[[Kategorie:PIC-Boards]]&lt;br /&gt;
[[Kategorie:Platinen]]&lt;/div&gt;</summary>
		<author><name>Frankman</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=Reflow_Ofen_Steuerung&amp;diff=76104</id>
		<title>Reflow Ofen Steuerung</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=Reflow_Ofen_Steuerung&amp;diff=76104"/>
		<updated>2013-05-29T21:17:35Z</updated>

		<summary type="html">&lt;p&gt;Frankman: /* Kühlkörper */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Datei:RFB.jpg]]&lt;br /&gt;
== Einleitung ==&lt;br /&gt;
[[Datei:pcb.png|thumb|right|400px|unbestücktes PCB der Reflow-Ofen-Steuerung]]&lt;br /&gt;
Hier wird eine weitere Reflow-Ofen-Steuerung beschrieben.&lt;br /&gt;
=== Zum Nachbauen ===&lt;br /&gt;
* Spezifikation: [[Datei: Spec Reflow.pdf]]&lt;br /&gt;
* Schaltplan: [[Datei:Reflow.pdf]]&lt;br /&gt;
* Gerberdaten: [[Datei:Gerber Reflow.pdf]]&lt;br /&gt;
* Assemblydrawing: [[Datei:Assembly Reflow.pdf]] &lt;br /&gt;
* Altium-Files: [[Datei:Reflow.zip]]&lt;br /&gt;
* Stückliste als CSV: [[Datei:Reflow.csv]]&lt;br /&gt;
* Stückliste als Open Office: [[Datei:Reflow.ods]]&lt;br /&gt;
* PC Programm: TBD&lt;br /&gt;
* Sourcen PC-Programm: TBD&lt;br /&gt;
* PIC Programm (*.hex): TBD&lt;br /&gt;
* Sourcen Pic-Programm: TBD&lt;br /&gt;
&lt;br /&gt;
=== Motivation ===&lt;br /&gt;
Die Gründe, eine weitere Steuerung zu entwerfen, waren:&lt;br /&gt;
&lt;br /&gt;
# Die Möglichkeit, auch größere Öfen mit 2 Phasen betreiben zu können.&lt;br /&gt;
# Die Steuerung universell zu gestalten. Es sollte möglich sein, diese nicht nur zum Reflow löten zu verwenden.&lt;br /&gt;
# Die Schaltung sollte in Altium entwickelt werden. (Warum kein Eagle??? Altium User wissen es.... :-)&lt;br /&gt;
# Die Schaltung sollte mit USB ausgestattet sein.&lt;br /&gt;
=== Eigenschaften &amp;amp; Spezifikationen ===&lt;br /&gt;
* Temperaturmessung: bis zu 2x &#039;&#039;&#039;Thermoelement&#039;&#039;&#039; (K-Typ) mit MAX6675 (abgekündigt) oder Nachfolger MAX31855 (pin- aber nicht softwarekompatibel)&lt;br /&gt;
* &#039;&#039;&#039;Leistungsstufen&#039;&#039;&#039;: 3x voneinander unabhängige Triac 800V bei 25A, limitiert auf &#039;&#039;&#039;10A @ 250VAC&#039;&#039;&#039; (z.B. Oberhitze, Unterhitze, Umluft)&lt;br /&gt;
* &#039;&#039;&#039;Nulldurchgangserkennung&#039;&#039;&#039; ermöglicht Wellenpaket-, Phasenan- und abschnittssteuerung, galvanische Trennung selbiger&lt;br /&gt;
* 1x &#039;&#039;&#039; MOSFET-Ausgang&#039;&#039;&#039; PWM z.B. für 12V Lüfter, max. 55V 3,5A&lt;br /&gt;
* &#039;&#039;&#039;feste Programme&#039;&#039;&#039; im EEPROM über 2-Tasterbedienung und LEDs wähl- und ausführbar. &#039;&#039;&#039;PC-unabhängiger Betrieb&#039;&#039;&#039;. Beliebig viele Programme möglich, für die Auswahl stehen 4 benutzer-konfigurierbare LEDs zur Verfügung&lt;br /&gt;
* Betrieb am Computer für mehr Reflowprofile&lt;br /&gt;
* Mini-USB-Buchse zur Steuerung / Programmierung über GUI&lt;br /&gt;
* Günstiges passendes &#039;&#039;&#039;Gehäuse&#039;&#039;&#039;, alle LEDs und Taster auf Stiftleisten herausgeführt&lt;br /&gt;
* PID-Temperaturregler&lt;br /&gt;
* UART, SPI, I2C und 2x ADC auf Stiftleisten herausgeführt (-&amp;gt; Erweiterungen)&lt;br /&gt;
* Versorgung über USB (&amp;lt; 100mA), interne Versorgungsspannung 3,3V&lt;br /&gt;
* umfangreiche EMV-gerechte Entstörung für den Bedarfsfall&lt;br /&gt;
&lt;br /&gt;
== Technische Realisierung==&lt;br /&gt;
=== PIC18LF2550 Grundbeschaltung ===&lt;br /&gt;
[[Datei:osc_vs_vcc.png|thumb|right|200px|Taktraten und Versorgungsspannung PIC18LF2550 vs. PIC18LF2550, Datenblatt S. 370/438]]&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 3/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Hier kommt ein PIC18&#039;&#039;&#039;L&#039;&#039;&#039;F2550 zum Einsatz. Er verfügt über eine USB-Schnittstelle und ist für Betriebsspannungen von 2 ... 5,5V ausgelegt. Sein Verwandter PIC18F2550 (ohne L) ist nicht für Betriebsspannungen &amp;lt; 4,2V ausgelegt. Dies ist bei USB sowiesor nicht immer erfüllt und die Thermoelement ICs vertragen ohnehin keine 5V, daher wurde die Betriebsspannung auf 3,3V reduziert. Neben Standard-Decoupling (100nF Kerko pro Vcc-Vss-Pärchen) wurde das ICSP-Interface in alt bewährter Pinbelegung (PICKit1,2,3) angebracht. PGD und PGC sind nicht weiter beschaltet, MCRL wird in Standardbeschaltung als Resetpin verwendet. Der Resetschalter findet sich auf dem Top-Sheet (Schaltplan S. 1/22). Die Taktversorgung erfolgt zwingend über einen 24 MHz Quarz (-&amp;gt; USB). Man beachte diesbezüglich rechts stehende Grafik zu Taktraten und Versorgungsspannungen (Vdd bzw. auch Vcc genannt). Auch zu finden im Datenblatt des PICs auf Seite 370.&lt;br /&gt;
&lt;br /&gt;
=== PIC18LF2550 USB Beschaltung ===&lt;br /&gt;
[[Datei:usb_part.png|thumb|right|200px|PIC18(L)F2550&lt;br /&gt;
 Standard &lt;br /&gt;
USB-Beschaltung am PIC]]&lt;br /&gt;
[[Datei:usb_protect.png|thumb|right|200px|USB-Schutzbeschaltung und Mini-USB-Buchse]]&lt;br /&gt;
&lt;br /&gt;
Die Beschaltung der USB-Schnittstelle am PIC ist 1:1 aus dem Datenblatt übernommen. Zum Einsatz kommt eine Mini-USB-Buchse (J1).&lt;br /&gt;
Der Gedanke war: Erstens ein sehr preiswertes, fertiges Netzteil verwenden zu können, (ca. 3,67 € bei druckerzubehoer.de) und zweitens, die Steuerung auch mit dem PC / Laptop versorgen zu können.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 4/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
FER1,2 und C7 filtern den Schirm nach GND. Standardmäßig wird man hier wohl 0-Ohm-Widerstände einsetzen. Falls ein Besuch im EMV-Labor geplant ist, weicht man auf den Ferrit aus. C5 und C6 filtern das Signal zusammen mit der Common-Mode-DrosselL1. Die Drossel kann mit den 0-Ohm-Brücken R8 und R9 überbrückt (gespart) werden. IC2 ist als ESD-Schutz gedacht und kann ebenfalls bei ausgeprägten Kostenbewustsein gespart werden. Die Widerstände R6 und R7 dürfen NICHT bestückt werden. FER1,2, C5, IC2 müssen nicht zwingend bestückt werden. Die Bestückung wurde vorgehalten um im Problemfall einfache Abhilfe schaffen zu können.&lt;br /&gt;
&lt;br /&gt;
=== 3,3V Spannungsversorgung ===&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 2/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Die 3,3V Versorgungsspannung für die gesamte Platine wird aus V_USB mittels des LDO Spannungsreglers TOREX - XC6206P332MR abgeleitet. Günstig, SOT-23, klein, 2x 1µF Kondensatoren benötigt, 3,3V max. 250mA. Der hat auch einen sehr kleinen Ruhestrom.&lt;br /&gt;
&lt;br /&gt;
=== Taster ===&lt;br /&gt;
*Der Resettaster zieht den MCLR-Pin nach GND und löst damit den Reset aus. MCLR ist gem. der Standardbeschaltung mit einem 10k Pullup versehen.&lt;br /&gt;
*Die übrigen beiden Taster ziehen RA4 bzw. RB5 ebenfalls nach GND.&lt;br /&gt;
&lt;br /&gt;
=== LEDs + ULN2003L ===&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 11/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Um alle LEDs auf der Platine (3x Optotriac + 7x Status) ansteuern zu können wurde auf das 7fach Darlington-Array ULN2003L zurückgegriffen. Es dient desweiteren auch als &amp;quot;MOSFET-Treiber für Arme&amp;quot;. Alle LEDs werden von diesem Transistor-Array nach Masse geschaltet. Dient der Entlastung der PIC-Ausgänge. Und kostet ja auch nicht viel.&lt;br /&gt;
&lt;br /&gt;
=== MOSFET-Leistungsausgang ===&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 22/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Hier kommt der einfacher N-Kanal MOSFET (LogicLevel) PHT8N06LT zum Einsatz. Er wird über das ULN2003L Array getrieben und ermöglicht den Anschluss eines DC-Verbrauchers mit max. 55V bei 3,5A. Hier könnte beispielsweise ein PC-Lüfter zur Kühlung od. Umluft angeschlossen und über PWM geregelt/gesteuert werden. Ein Gatewiderstand von 100 Ohm ist zum Schutz des Treibers vorgesehen. Eine 0-Ohm-Brücke ist stattdessen aber auch möglich, wenn man eine höhere Leistung schalten möchte.Die Leiterbahnen sollten die 3A schon hergeben. Der 100 Ohm Widerstand bildet eine Stromquelle. Sobald der Strom durch den MOSFET und den Widerstand 33mA erreicht, sinkt UGS gegen 0 V. Folge: Der Mosfet sperrt ( und bleibt ganz....)&lt;br /&gt;
Es kann hier prinzipiell auch ein anderer Mosfet im SOT223-Gehäuse zum Einsatz kommen. Achten sollte man darauf, das der MOSFET schon bei 3,3V Ugs gut leiten sollte.&lt;br /&gt;
&lt;br /&gt;
=== Nulldurchgangserkennung ===&lt;br /&gt;
[[Datei:zerocross.png|thumb|right|200px|Nulldurchgangserkennung]]&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 5/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Die Nulldurchgangserkennung erfolgt nach einer sehr bekannten - jedoch ausgeklügelten - Schaltung.  [http://www.dextrel.net/diyzerocrosser.htm]&lt;br /&gt;
&lt;br /&gt;
ACHTUNG: DER IM SCHALTPLAN VERZEICHNETE OPTOKOPPLER und BRÜCKENGLEICHRICHTER VON REICHELT DARF KEINESFALLS VERWENDET WERDEN! Pinbelegung! Bitte den Optokoppler aus der Stückliste nehmen!&lt;br /&gt;
&lt;br /&gt;
Während einer Halbwelle wird C14 über R33 und R35 bzw. D5 geladen. Währenddessen ist T1 gesperrt. Sobald die Wechselspannung (L1-N über Spannungsteiler (R33+R35) / R34) kleiner ist als die Spannung über C14, steuert T1 durch. Dann entlädt sich C14 über den LED-Vorwiderstand R32. Der durch-steuernde Optokoppler zieht die Sync-Leitung nach GND. (Pullup Sync-Leitung = R31). Dies löst beim PIC auf INT2 einen Interrupt aus. &lt;br /&gt;
&lt;br /&gt;
Dieser Interrupt ermöglicht eine präzise Wellenpaket-, Phasenanschnittsteuerung je nach Bedarf. Das Schalten im Nulldurchgang bei der Wellenpaketsteuerung reduziert EMV-Störungen. Für Phasenanschnitt ist prinzipbedingt ohnehin eine Nulldurchgangserkennung notwendig. Außerdem liefert sie eine völlig ausreichend genaue Zeitbasis für alle Programmabläufe.&lt;br /&gt;
&lt;br /&gt;
=== Triac-Ausgänge + Snubber ===&lt;br /&gt;
[[Datei:triac.png|thumb|right|200px|Triac-Ausgangsbeschaltung]]&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 19,20,21/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Die Ansteuerung des eigentlichen Leistungstriacs BTA140-800 erfolgt über den Optotriac IS6005. Der Strom durch Letzteren wird durch R1x limitiert (Vorwiderstand). R2x und R5x limitieren wiederum den Strom durch den Optotriac. Wenn dieser zündet so folgt unmittelbar der &amp;quot;Leistungstriac&amp;quot; der dann die Last schaltet.&lt;br /&gt;
&lt;br /&gt;
S1x ist ein Sicherungshalter um die Lasten einzeln absichern zu können. Wert 10A Mittelträge.&lt;br /&gt;
&lt;br /&gt;
R3x, R4x, C3x bilden ein Snubber-Network, L1X verhindert eine zu schnelle Stromanstiegsgeschwindikeit damit der Triac nicht &amp;quot;von selbst&amp;quot; zündet. Weglassen äußert sich meist in einem fast nicht hörbaren Click. Damit zeigt einem dann der Triac, dass er ab jetzt für immer recht niederohmig geworden ist. Die Regelung der Temperatur braucht dann nicht mehr über den Prozessor erfolgen, sondern nur noch mit dem Ein-/Ausschalter..... :-)&lt;br /&gt;
&lt;br /&gt;
=== Thermoelemente (MAX6675/MAX31855)  ===&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 6,7/22&#039;&#039;&#039;&lt;br /&gt;
Der inzwischen abgekündigte MAX6675 bzw. sein ehrenwerter Nachfolger MAX31855 sind einfach zu handhabende Thermoelement-ICs mit Kaltstellenkompensation. Thermoelemente funktionieren durch das Verschweißen zweier verschiedener Legierungen (beim K-Typ Thermoelemnt Ni und CrNi). Durch den durch die Umgebungstemperatur bedingten Wärmefluss zwischen beiden entsteht ein elektrische Spannung. Diese wird von besagten ICs verstärkt und digitalisiert (ADC). Diese Spannung / Temperatur ist natürlich wieder relativ zur Umgebungstemperatur an der Kaltstelle (Kontaktierung der beiden Drähte mit dem Messinstrument). Daher messen diese ICs auch gleich die Umgebungstemperatur (Kaltstellenkompensation genannt) mit, verrechnen das und geben das Ergebnis auf der SPI-Schnittstelle aus. MAX6675 leistet 12bit also 0,25°C Auflösung (nicht Genauigkeit!) über einen Temperaturbereich von 0°C to +1024°C. Außerdem wird ein nicht/fehlerhaft angeschlossenes Thermoelement erkannt. Der Thermocouple-IC wird an die SPI-Schnittstelle des PICs angeschlossen (hier MSSP genannt). &lt;br /&gt;
&lt;br /&gt;
MAX6675 und MAX31855 scheinen entgegen der Adafruit-Information [http://www.adafruit.com/products/269] doch pinkompatibel zu sein - die Ansteuerung unterscheidet sich jedoch definitiv. (Zitat: &amp;quot;Now uses the MAX31855K instead of the MAX6675, so it can measure a wider temperature measurement range. Please note! the MAX31855 is not pin compatible or drop-in code compatible with the MAX6675. We do have an Arduino library for both chips but you&#039;ll need to adjust any existing MAX6675 designs for the mew MAX31855. The MAX6675 has been discontinued by Maxim.&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Es wurden 2 dieser ICs und damit 2 Temperaturmessstellen vorgesehen. Dies ermöglich die Messung für eine Regelung der Temperatur so wie eine zusätzliche Überwachung kritischer Bauteile (z.B. ICs oder LEDs). Die Minimalbestückung sieht einen MAX6675/MAX31855 vor. Die Auswahl in der Firmware erfolgt über einen der beiden GPIO-Pins RA5 oder RA0 via dem ChipSelect (CS) des MAX6675/MAX31855.&lt;br /&gt;
&lt;br /&gt;
Neben dem MAX6675/MAX31855 wurde ein Decoupling-Kondensator (C8x, Standard 100nF) so wie ein weiterer im Messpfad (C9x) zur Zwecken der Entstörung vorgeshen. C9x 100nF sollte nur bestückt werden wenn Probleme bei der Temperaturmessung entstehen (z.B. unrealstisch stark schwankende Werte).&lt;br /&gt;
&lt;br /&gt;
=== ADC, SPI, UART &amp;amp; I2C Stiftleiste ===&lt;br /&gt;
ADC, SPI, UART und I2C sind zu Zwecken der Kalibrierung / Erweiterung / Einstellung / Debugging auf Stiftleisten herausgeführt:&lt;br /&gt;
Ähnlichkeiten mit dem FTDI-USB-TTL-Kabel bzw. Arduino XXX Bla Bla Bla Schnittstellenkonverter sind natürlich rein zufällig.&lt;br /&gt;
&lt;br /&gt;
Die I2C-Schnittstelle wurde auf eine Stiftleiste geführt, um z.B. einem LM75 o.ä. anschließen zu können. Damit stehen zur Kalibrierung der Thermoelemente genaue Temperaturen zur Verfügung.&lt;br /&gt;
&lt;br /&gt;
Die Stiftleisten haben alle ein Raster von 2,54mm. So können Pin-Header, Wannenstecker oder ähnliches verwendet werden.&lt;br /&gt;
&lt;br /&gt;
Da ja viele Leute eigene Vorstellungen bezüglich der Frontplattengestaltung haben, wurden auch die Taster und LEDs auf Stiftleisten geführt.&lt;br /&gt;
&lt;br /&gt;
=== Kühlkörper ===&lt;br /&gt;
Da die Triacs der Steuerung für bis zu 10A pro Kanal ausgelegt sind, kann man auf die Kühlkörper nicht verzichten. Es fallen bei 10A bis zu 13 Watt Wärme pro Triac ab. Falls mann auf die Kühlkörper doch verzichten möchte, sollte man darauf achten, die Triacs mit dem Kopf nach unten einzubauen. Diese können sich dann bei Überlast ganz von selber auslöten.... :-)&lt;br /&gt;
&lt;br /&gt;
=== Gehäuse ===&lt;br /&gt;
Die Leiterplatte wurde für ein Gehäuse von Hammond entwickelt.&lt;br /&gt;
Das Gehäuse ist zwar keine Schönheit, aber doch recht preiswert.&lt;br /&gt;
Typenbezeichnung: RM2055M&lt;br /&gt;
&lt;br /&gt;
== Firmware PIC ==&lt;br /&gt;
Die Entwicklung der Firmware für den PIC18LF2550  geht mit MPlab 8 respektive dem C18 Compiler von Statten. MPlab ist kostenlos, der C18 Compiler bis auf die stärkste Optimierungsstufe ebenfalls. Die Quellen für die Firmware werden auch offengelegt.&lt;br /&gt;
=== Programmstruktur- und ablauf ===&lt;br /&gt;
Nach anfänglicher Initialisierung des PIC startet die Statemachine [http://http://www.mikrocontroller.net/articles/Statemachine] [http://http://de.wikipedia.org/wiki/Endlicher_Automat]. Neben ihr findet in der main-Funktion nur noch die Abfrage der beiden Bedientasten statt. Mit dem Tastendruck wird zum Zwecke der Entprellung ein Timer gestartet. Alles Andere (incl. PID-Regelung, Wellenpaket- bzw. Phasenan- und Phasenabschnittssteuerung und USB) ist interruptbasiert.&lt;br /&gt;
&lt;br /&gt;
=== Taktversorgung, Nulldurchgangserkennung und Zeitbasis ===&lt;br /&gt;
=== USB ===&lt;br /&gt;
=== SPI für MAX6675 ===&lt;br /&gt;
=== SPI für MAX31855 ===&lt;br /&gt;
&lt;br /&gt;
=== Wellenpaketsteuerung ===&lt;br /&gt;
=== Phasenanschnitt, Phasenabschnitt ===&lt;br /&gt;
=== PWM für MOSFET ===&lt;br /&gt;
&lt;br /&gt;
== PC-Software (GUI) ==&lt;br /&gt;
[[Datei:gui_alpha.png|thumb|right|300px|Screenshot der GUI (noch Alpha) für den Reflow-Ofen-Controller]]&lt;br /&gt;
&lt;br /&gt;
Die GUI (englisch Graphical User Interface) ist der Einfachheit halber in VB.net programmiert und momentan noch im Alpha-Stadium. Auch hierfür liegen die Quellen später selbstverständlich offen.&lt;br /&gt;
&lt;br /&gt;
=== Funktionen und Modi ===&lt;br /&gt;
[[Datei:modi.png|thumb|right|400px|Auswahl der beschriebenen Modi durch Klick]]&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Ofen-Profil&amp;quot;&#039;&#039;&#039; - Es wird ein Programm (Temperaturkurve) aus dem EEPROM des Reflow-Ofens ausgeführt. Der Backvorgang kann mit der Software gesteuert (START, STOP, ...) und überwacht werden. Hierzu stehen Temperatur, Temperaturänderung, Heizleistung (Ober- und Unterhitze, Lüfter) so wie die graphische Darstellung im zentralen Diagramm zur Verfügung. Eingriffsmöglichkeiten, wie das Ändern der Temperaturkurve sind nicht vorgesehen. Dies soll ein reiner Überwachungs-Modus sein. Um die Temperaturkurve zu verändern zu können, sollte der Modus &amp;quot;PC-Profil&amp;quot; verwendet werden und die Temperaturkurve aus dem EEPROM importiert werden. Dann kann Selbige auch verändert und anschließend ausgeführt bzw. verändert in den EEPROM zurückgeschrieben werden. Dieser Modus stellt ein Äquivalent zur START/STOP-Tasten-Bedienung an der Platine dar und kann selbstverständlich parallel dazu genutzt werden. Die GUI also als Addon zum Stand-Alone-Betrieb.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;PC-Profil&amp;quot;&#039;&#039;&#039; - Es wird ein Programm (Temperaturkurve) ausgeführt welche zuvor am Computer erstellt / editiert wurde. In diesem Modus gibt der Computer Temperaturwerte vor, welche live über die USB-Schnittstelle zum PIC übertragen werden und mit dem dort integrierten PID-Regler ausgeführt werden. Das ermöglicht eine on-the-fly Veränderung der Temperaturkurve während des Backvorgangs. Temperaturkurven können aus Dateien oder dem EEPROM importiert und auch wieder exportiert werden. CSV-Dateien können ebenfalls importiert und exportiert werden. Die &amp;quot;Eingabe&amp;quot; der Temperaturkurve erfolgt entweder über Import (CSV/EEPROM), per Mausklick auf dem zentralen Diagramm oder im sog. DataGridView. Weiteres siehe Unterpunkt &amp;quot;Eingabe der Temperaturkurve (Reflowprofil)&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;manueller Ablauf&amp;quot;&#039;&#039;&#039; - In diesem Modus wird (im Gegensatz zu den oberen beiden Modi &amp;quot;Ofen-Profil&amp;quot; und &amp;quot;PC-Profil&amp;quot;) keine Temperatur geregelt. Hier wird die Leistung des Ofens in % eingestellt und gesteuert. Der PID-Regler ist nicht in Aktion. Die Temperatur, Temperaturänderung so wie der Temperaturverlauf werden selbstredend angezeigt bzw. im Diagramm dargestellt. Der Modus &amp;quot;manueller Ablauf&amp;quot; fährt ähnlich dem Modus &amp;quot;PC-Profil&amp;quot; die im DataGridView eingetragenen Leistungs-Zeit-Punkte ab. Für jeden Zeitpunkt ist eine Leistung vorgegeben. Die Eingabe erfolgt ähnlich wie unter &amp;quot;Eingabe der Temperaturkurve (Reflowprofil)&amp;quot; beschrieben. Nur eben, dass eine Leistung und keine Temperatur angegeben wird. Die Eingabe der Leistung kann nicht im Zeit-Temperatur-Diagramm erfolgen sondern mittels der Schieberegler oder direkt tabellarisch.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;manueller Modus&amp;quot;&#039;&#039;&#039; - Dieser Modus enthält 2 Submodi&lt;br /&gt;
** &amp;quot;manueller Leistungsmodus&amp;quot; - Auch in diesem Modus wird die Leistung gesteuert. Es wird keine Temperatur geregelt, der PID-Regler für die Temperatur ist nicht in Betrieb. Die Einstellung hier erfolgt über die drei Schieberegler oder über eine numerische Eingabe durch Klick auf die Leistungsangabe unter dem Schieberegler. Durch Klick auf die Texte &amp;quot;TOP&amp;quot;, &amp;quot;BOTTOM&amp;quot;, &amp;quot;FAN&amp;quot; (Oberhitze, Unterhitze, Lüfter) können selbige deaktiviert bzw. aktiviert werden. Auch in diesem Modus wird Temperatur, Temperaturänderung so wie der Temperaturverlauf dargestellt.&lt;br /&gt;
** &amp;quot;manueller Temperaturmodus&amp;quot; - Hier wird die Temperatur wieder mittels des Temperatur-PIDs geregelt. Die Temperatur wird entweder mittels Schieberegler (Ober- und Unterhitze-Regler sind jetzt gekoppelt) oder durch eine numerische Eingabe unterhalb der Schieberegler vorgegeben. Anzeige wie im &amp;quot;manuellen Leistungsmodus&amp;quot;. Der Lüfter kann unabhängig vom PID in seiner Leistung geregelt werden. Ein evtl. durch den Luftstrom verursachter Temperaturabfall wird vom PID selbstverständlich ausgeregelt (aus diesem Grunde ist es ja ein Regler).&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Programmieren&amp;quot;&#039;&#039;&#039; - Hier kann ein neues &#039;&#039;&#039;Temperatur&#039;&#039;&#039;-Programm für den EEPROM-Speicher des Ofens erstellt und editiert werden. Die Eingabemöglichkeiten sind unter &amp;quot;Eingabe der Temperaturkurve (Reflowprofil)&amp;quot; beschrieben. Dieser Modus ist zum reinen Programmieren des Ofens gedacht und ermöglicht keine weitere Steuerung oder Überwachung des Ofens.&lt;br /&gt;
&lt;br /&gt;
=== Eingabe der Temperaturkurve (Reflowprofil) ===&lt;br /&gt;
[[Datei:datagridview.png|thumb|right|400px|tabellarische Anzeige und Editiermöglichkeit der Temperaturkurve]]&lt;br /&gt;
Die Eingabe der Temperaturkurve erfolgt entweder über Import (CSV/EEPROM), per Mausklick auf dem zentralen Diagramm oder im sog. DataGridView (Excel-ähnliche Bedienung in tabellarischer Form). &lt;br /&gt;
&lt;br /&gt;
* CSV-Import + Export&lt;br /&gt;
* EEPROM-Import + Export&lt;br /&gt;
* Im rechts stehenden Screenshotbeispiel wird eine tabellarische Eingabeform mit einem DataGridView gezeigt: Die Temperatur (erster Temperaturpunkt = Punkt 0) von 100°C wird linear über einen Zeitraum von 0-30s verteilt. Bei 30s hat der Ofen die Temperatur von 100°C. Dafür setzt die Regelung die Oberhitze, die Unterhitze ein. Der Lüfter ist deaktiviert. In der Zeit von 30s bis 120s wird die Temperatur nun von 100°C auf 150°C linear angehoben. Von 120s bis 180s Backzeit steigt die Temperatur von 150°C auf 250°C. Von 180s bis 200s wird die Temperatur auf 280°C angehoben. Anschließend wird sie zwischen 200s und 220s auf 280°C gehalten (280°C@200s und 280°C@220s) um dann bis 240s wieder auf 250°C zu fallen. Bis zum Zeitpunkt 300s wird dann die Temperatur 30°C angestrebt. Zusätzlich ist der Lüfter nun aktiviert (soweit der Ofen eine Umluftfunktion besitzt). Bei Punkt 7 sind Ober- und Unterhitze deaktiviert nur noch der Lüfter kühlt. Da hier bei &amp;quot;Zeit[s]&amp;quot; die 0 eingetragen wird der Zustand (hier nur Lüfter an) für einen unendlich langen Zeitraum auf 0 gehalten. Also so lange wie das Programm aktiviert ist wird der Lüfter laufen. Natürlich könnte man hier auch z.B. 100°C und Zeitpunkt 0s eintragen. Dann würde der Ofen bis zum manuellen Beenden des Programms (klick auf STOP-Button oder Drücken des START/STOP-Tasters auf der Platine/Steuerung) 100°C halten.&lt;br /&gt;
* Alle Zellen des DataGridView sind editierbar (zur Veränderung der Temperatur, Zeitpunkt, ...)&lt;br /&gt;
* Direkter Klick auf das zentrale Temperatur-Zeit-Diagramm trägt den Zeitpunkt so wie die Temperatur unter dem Mauszeiger in die Tabelle (das DataGridView) ein. Die ausgewählte Zeile wird beschrieben oder überschrieben. Neue Zeilen (also Temperatur-Zeit-Punkte) können durch klick auf den &amp;quot;Plus-Button&amp;quot; hinzugefügt werden. Ebenso ist das Löschen oder Verschieben einer oder mehrerer Zeile gleichzeitig möglich.&lt;br /&gt;
&lt;br /&gt;
=== Beschreibung der Steuerungsmöglichkeiten ===&lt;br /&gt;
In Abhängigkeit des gewählten Modus bestehen einige Steuerungs-, Einstellungs- und Kontrollmöglichkeiten:&lt;br /&gt;
* &#039;&#039;&#039;Schieberegler&#039;&#039;&#039; für Temperatur od. Leistung (je nach Modus) für Oberhitze, Unterhitze und Lüfter. Je nach Hardwareausführung. &lt;br /&gt;
** Klick auf &amp;quot;TOP&amp;quot;, &amp;quot;BOTTOM&amp;quot; oder &amp;quot;FAN&amp;quot; aktiviert oder deaktiviert die entsprechende Funktion bzw. Hardware.&lt;br /&gt;
** Numerische Eingabe der Werte für die Schieberegler durch Klick auf die Anzeige unterhalb der Schieberegler. Werte können auch im deaktivierten Zustand angegeben werden. Die Übernahme erfolgt durch den &amp;quot;Aktivierungsklick&amp;quot; auf &amp;quot;TOP&amp;quot;, &amp;quot;BOTTOM&amp;quot; oder &amp;quot;FAN&amp;quot;&lt;br /&gt;
* &#039;&#039;&#039;T1, dT1, T2, dT2&#039;&#039;&#039; - Anzeige der gemessenen Temperatur so wie die momentane Temperaturänderung am jeweiligen Sensor. &lt;br /&gt;
* &#039;&#039;&#039;Bedienbuttons&#039;&#039;&#039;&lt;br /&gt;
** Play - Startet das Programm am angegebenen Startpunkt (siehe unten)&lt;br /&gt;
** Pause - Pausiert das Programm - weitere Pauseoptionen siehe unten&lt;br /&gt;
** Stop - Stopt den Programmablauf&lt;br /&gt;
** Vor / Zurück - Springt zwischen Temperaturpunkten hin und her. Dient zum überspringen oder zurückspringen zu gewissen Temperatur-Zeit-Punkten. Ermöglicht z.B. das Überspringen eines Ablaufes der eine lange Preheat- oder Dryphase hat.&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Status&amp;quot;&#039;&#039;&#039; - zeigt den aktuellen Zustand des Programms an (READY, START, WAITING, PAUSE, ...)&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;RESET&amp;quot;&#039;&#039;&#039; - setzt das (begonnene) Programm zurück. Beinhaltet neben dem Programmablauf auch das Zurücksetzen der graphischen Anzeige des Diagramms, etc.&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Startpunkt&amp;quot;&#039;&#039;&#039; - legt den ersten Punkt des Programmablaufes fest. &lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Wiederholungen&amp;quot;&#039;&#039;&#039; - ermöglicht das wiederholte Backen ohne das Programm händisch immer wieder neu starten zu müssen. Die Anzahl der Wiederholungen ist einstellbar (0 für unendlich viele) und es ist eine Wartezeit zwischen den Wiederholungen einstellbar. Alternativ kann eine Meldung nach jedem vollendeten Backvorgang abgegeben werden. Nach Bestätigung dieser wird die nächste Wiederholung ausgeführt.&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Pause&amp;quot;&#039;&#039;&#039; - Pauseneinstellungen. Hier sind Optionen wählbar was passieren soll, falls der Pausebutton betätigt wird:&lt;br /&gt;
** Pausezeit - gibt an wie lange die Pause dauern soll [s], danach fährt das Programm automatisch gemäß des gewählten Pausemodus fort. Für eine Pause ohne automatisches Fortfahren (Countdowntimer) &#039;0&#039; angeben.&lt;br /&gt;
** Pausemodus &amp;quot;aktuelle Temperatur halten, WarmUp, Fortsetzen&amp;quot; - Ofen hält die Temperatur (Zieltemperatur) des Zeitpunktes als der Pausebutton betätigt wurde. WarmUp bedeutet, dass nach dem Beenden des Pausemodus zunächst die Zieltemperatur wieder erreicht werden &#039;&#039;&#039;muss&#039;&#039;&#039; bevor der nächste Punkt angesteuert wird. Klingt paradox, wenn die Temperatur doch so und so gehalten wird, ist aber nicht so. Die Wahrscheinlichkeit ist hoch, dass der Pausemodus benutzt wird um die Ofentüre zu öffnen und Korrekturen an der Platine vorzunehmen. Unter Umständen ist die Heizung des Ofens jedoch nicht in der Lage den dadurch entstehenden Wärmeverlust zu kompensieren. Fährt das Programm dann sofort fort, so könnten evtl. kritische (Hoch-)Punkte des Lötprofils &amp;quot;unterfahren&amp;quot; werden. Dem wirkt WarmUp entgegen.&lt;br /&gt;
** Pausemodus &amp;quot;aktuelle Temperatur halten, Fortsetzen&amp;quot; - siehe oben, nur ohne WarmUp.&lt;br /&gt;
** Pausemodus &amp;quot;definierte Temperatur halten, WarmUp, Fortsetzen&amp;quot; - siehe oben. Statt der aktuellen Zieltemperatur wird jedoch nun im Pausemodus eine einzustellende Pausetemperatur gehalten. Mit WarmUp.&lt;br /&gt;
** Pausemodus &amp;quot;definierte Temperatur halten, Fortsetzen&amp;quot; - siehe oben, nur ohne WarmUp.&lt;br /&gt;
** &amp;quot;Pausetemperatur&amp;quot; - spezielle Temperatur die bei entsprechender Pausemoduswahl für die Dauer der Pause gehalten wird.&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Ende&amp;quot;&#039;&#039;&#039; - gibt an was am Ende eines durchlaufenen Reflow-Programms passieren soll. Ist der Wiederholungsmodus aktiviert, tritt dieses Ereignis erst nach Durchlauf aller Wiederholungen ein. Folgende Modi sind möglich:&lt;br /&gt;
** automatischer Reset - am Ende des Programms wird alles automatisch zurückgesetzt, alle Graphiken und Anzeigen gelöscht.&lt;br /&gt;
** manueller Reset - am Ende des Programms bleiben alle Anzeigen, Graphiken, etc erhalten und müssen vor Beginn eines neuen Reflowvorgangs händisch durch Klick auf &amp;quot;RESET&amp;quot; zurückgesetzt werden.&lt;br /&gt;
** Benutzermeldung - lässt eine Meldung erscheinen. Alle Anzeigen und Graphiken bleiben erhalten bis der Benutzer diese Meldung bestätigt. Mit Bestätigung dieser Meldung wird ein automatischer Reset vorgenommen.&lt;br /&gt;
&lt;br /&gt;
=== Loggen des Temperaturverlaufes ===&lt;br /&gt;
Es ist möglich jeden Backvorgang in eine CSV-Datei zu loggen. (Software- und PID-Einstellungen). Geloggte CSV-Dateien können eingelesen und im zentralen Temperatur-Zeit-Diagramm begutachtet werden. Ein Ist-Soll-Vergleich ist ebenso möglich wie die direkte Anzeige des Fehlers (&amp;quot;Ist minus Soll&amp;quot;). Dank CSV können die Daten auch mit anderen Programmen (Excel, etc.) weiterverarbeitet werden.&lt;br /&gt;
&lt;br /&gt;
== Ofen / Pizzaofen ==&lt;br /&gt;
=== Leistung und Volumen ===&lt;br /&gt;
=== Dämmung ===&lt;br /&gt;
=== Umluft ===&lt;br /&gt;
=== Bezugsquellen ===&lt;br /&gt;
=== Diskussionen im Forum ===&lt;br /&gt;
* Umfangreicher Thread u.A. Leistungsvermögen, Temperaturmessung und Dämmung [http://www.mikrocontroller.net/topic/270627]&lt;br /&gt;
&lt;br /&gt;
== FAQ ==&lt;br /&gt;
&lt;br /&gt;
* Q1: Ich habe einen PT100/PT1000 und möchte den anschließen. Geht das?&lt;br /&gt;
** A1: Ja natürlich. Dazu ist aber etwas externe Elektronik notwendig. Sowohl 2 ADC-Pins (mit 3V3 Betriebsspannung als fixe Referenzspannung), als auch die UART und SPI/I2C-Schnittstelle stehen zur freien Verfügung. Für PT100/PT1000 wird für vernünftige Messungen ohnehin eine Verstärkung (meist mit OPV) von Nöten sein. Da der PIC-interne ADC &amp;quot;nur&amp;quot; 10bit Auflösung bietet sollte ein externer 16bit ADC in Betracht gezogen werden um das Potential der PT100/PT1000 auszunutzen.&lt;br /&gt;
*Q2: Ich habe von günstigen Temperaturmessungen mit Dioden gehört. Geht das auch hier?&lt;br /&gt;
**A2: Ja. Die Vorwärtsspannung einer Diode verhält sich linear zur Sperrschichttemperatur. Diese Spannung (bei 25°C einer Si-Diode die bekannten 0,7V) kann mittels OPV verstärkt werden und auf einen Spannungsbereich von 0 ... 3V3 aufgebläht werden. Eine billige Lösung, auf Kosten der Genauigkeit. Doch eine Diode ist laut Datenblatt nur bis 150°C geeignet. Es ist also beim Löten mehr oder weniger Pfusch. Wenn ich schon eine Reflow-Steuerung baue, sollte ich doch nicht an ein paar Euro für eine gescheite Temperaturmessung sparen. Einige Anregungen vom Messgerätehersteller Keithley bzgl. der Halbleiterphysik mit interessanten Formeln [http://www.keithley.de/support/data?asset=50486]. Oder natürlich der Klassiker von Thomas Pfeifer [http://thomaspfeifer.net/backofen_smd_reflow.htm]. Oder ein Beitrag mit LT-Spice Simulation zum Thema [http://www.mikrocontroller.net/topic/270627#2833883].&lt;br /&gt;
* Q: God why ... ?&lt;br /&gt;
** A: Because we can !&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Verbesserungen Prototyp ===&lt;br /&gt;
* Bauteile weiter weg von Schraublöchern&lt;br /&gt;
* Dazu Kreis rund um Bohrung auf Bestückdruck&lt;br /&gt;
* Masseanbindung Quarz&lt;br /&gt;
* Klemmen weiter weg vom Rand&lt;br /&gt;
* Klemme und Sicherungshalter weiter auseinander, damit Schutzhabe draufpasst&lt;br /&gt;
* Bohrungen für Drossel 0,2mm größer machen&lt;br /&gt;
* Teilenummer für Conrad-USB-Buchse in BOM übernehmen.&lt;br /&gt;
* Stiftleiste P1  weiter weg von P2 und P4&lt;br /&gt;
* Varistoren näher an Klemmen platzieren&lt;br /&gt;
* Bestückvarianten defineren: 1. minimal 2. Standard 3. Externe Leds und Schalter.&lt;br /&gt;
&lt;br /&gt;
=== Errata Projekt ===&lt;br /&gt;
* LED-Beschriftung passt nicht ganz (Schltplan Netlabel OUT1,2,3,4 sind durcheinander gekommen)&lt;br /&gt;
* Schaltplan UNL2003 fehlerhafte Zuordnung IN5,6,7 &amp;lt;&amp;gt; OUT7,6,5&lt;br /&gt;
* Brückengleichrichter / Optokoppler NICHT die im Schaltplan angegebenen Bestellnummern von Reichelt verwenden. BOM-Bauteile und Bestellnummern sind ok.&lt;br /&gt;
* Beim MOSFET R39 ist die Masseanbindung falsch. Es bestehen drei Möglichkeiten:&lt;br /&gt;
** 1. 0-R-Brücke für R39 einbauen und auf Strombegrenzung verzichten.&lt;br /&gt;
** 2. Eine Polyfuse mit Bauform 1206 einbauen. &lt;br /&gt;
** 3. Das kleine Leiterbahnstückchen zwischen R38 und R39 unterbrechen und statt dessen die Leiterbahn zwischen R39 und der Klemme mit der Durchkontaktierung bei R38 verbinden.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* Diskussion [http://www.mikrocontroller.net/topic/297217 Diskussion]&lt;br /&gt;
* Dextrel Nulldurchgang [http://www.dextrel.net/diyzerocrosser.htm Nulldurchgangschaltung]&lt;br /&gt;
* Gehäuse [http://www.hammondmfg.com/pdf/RM2015M.pdf Gehäuse Hammond]&lt;br /&gt;
* Bezugsquelle SOS Elektronik [http://www.soselectronic.com/?str=371&amp;amp;artnum=73595&amp;amp;name=hammond-ritec-rm2055m]&lt;br /&gt;
* Bezugsgquelle [http://www.druckerzubehoer.de/shop/product/catid/H-UNIVERSALZUBEHOER_HZB/subcatid/UNIVERSALZUBEHOER_GROUP1_HZB/productid/1727063-390722LA/site/1/lng/de_DE Mini USB Netzteil]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Projekte]]&lt;br /&gt;
[[Kategorie:PIC]]&lt;br /&gt;
[[Kategorie:PIC-Boards]]&lt;br /&gt;
[[Kategorie:Platinen]]&lt;/div&gt;</summary>
		<author><name>Frankman</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=Reflow_Ofen_Steuerung&amp;diff=76103</id>
		<title>Reflow Ofen Steuerung</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=Reflow_Ofen_Steuerung&amp;diff=76103"/>
		<updated>2013-05-29T21:17:14Z</updated>

		<summary type="html">&lt;p&gt;Frankman: /* Kühlkörper */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Datei:RFB.jpg]]&lt;br /&gt;
== Einleitung ==&lt;br /&gt;
[[Datei:pcb.png|thumb|right|400px|unbestücktes PCB der Reflow-Ofen-Steuerung]]&lt;br /&gt;
Hier wird eine weitere Reflow-Ofen-Steuerung beschrieben.&lt;br /&gt;
=== Zum Nachbauen ===&lt;br /&gt;
* Spezifikation: [[Datei: Spec Reflow.pdf]]&lt;br /&gt;
* Schaltplan: [[Datei:Reflow.pdf]]&lt;br /&gt;
* Gerberdaten: [[Datei:Gerber Reflow.pdf]]&lt;br /&gt;
* Assemblydrawing: [[Datei:Assembly Reflow.pdf]] &lt;br /&gt;
* Altium-Files: [[Datei:Reflow.zip]]&lt;br /&gt;
* Stückliste als CSV: [[Datei:Reflow.csv]]&lt;br /&gt;
* Stückliste als Open Office: [[Datei:Reflow.ods]]&lt;br /&gt;
* PC Programm: TBD&lt;br /&gt;
* Sourcen PC-Programm: TBD&lt;br /&gt;
* PIC Programm (*.hex): TBD&lt;br /&gt;
* Sourcen Pic-Programm: TBD&lt;br /&gt;
&lt;br /&gt;
=== Motivation ===&lt;br /&gt;
Die Gründe, eine weitere Steuerung zu entwerfen, waren:&lt;br /&gt;
&lt;br /&gt;
# Die Möglichkeit, auch größere Öfen mit 2 Phasen betreiben zu können.&lt;br /&gt;
# Die Steuerung universell zu gestalten. Es sollte möglich sein, diese nicht nur zum Reflow löten zu verwenden.&lt;br /&gt;
# Die Schaltung sollte in Altium entwickelt werden. (Warum kein Eagle??? Altium User wissen es.... :-)&lt;br /&gt;
# Die Schaltung sollte mit USB ausgestattet sein.&lt;br /&gt;
=== Eigenschaften &amp;amp; Spezifikationen ===&lt;br /&gt;
* Temperaturmessung: bis zu 2x &#039;&#039;&#039;Thermoelement&#039;&#039;&#039; (K-Typ) mit MAX6675 (abgekündigt) oder Nachfolger MAX31855 (pin- aber nicht softwarekompatibel)&lt;br /&gt;
* &#039;&#039;&#039;Leistungsstufen&#039;&#039;&#039;: 3x voneinander unabhängige Triac 800V bei 25A, limitiert auf &#039;&#039;&#039;10A @ 250VAC&#039;&#039;&#039; (z.B. Oberhitze, Unterhitze, Umluft)&lt;br /&gt;
* &#039;&#039;&#039;Nulldurchgangserkennung&#039;&#039;&#039; ermöglicht Wellenpaket-, Phasenan- und abschnittssteuerung, galvanische Trennung selbiger&lt;br /&gt;
* 1x &#039;&#039;&#039; MOSFET-Ausgang&#039;&#039;&#039; PWM z.B. für 12V Lüfter, max. 55V 3,5A&lt;br /&gt;
* &#039;&#039;&#039;feste Programme&#039;&#039;&#039; im EEPROM über 2-Tasterbedienung und LEDs wähl- und ausführbar. &#039;&#039;&#039;PC-unabhängiger Betrieb&#039;&#039;&#039;. Beliebig viele Programme möglich, für die Auswahl stehen 4 benutzer-konfigurierbare LEDs zur Verfügung&lt;br /&gt;
* Betrieb am Computer für mehr Reflowprofile&lt;br /&gt;
* Mini-USB-Buchse zur Steuerung / Programmierung über GUI&lt;br /&gt;
* Günstiges passendes &#039;&#039;&#039;Gehäuse&#039;&#039;&#039;, alle LEDs und Taster auf Stiftleisten herausgeführt&lt;br /&gt;
* PID-Temperaturregler&lt;br /&gt;
* UART, SPI, I2C und 2x ADC auf Stiftleisten herausgeführt (-&amp;gt; Erweiterungen)&lt;br /&gt;
* Versorgung über USB (&amp;lt; 100mA), interne Versorgungsspannung 3,3V&lt;br /&gt;
* umfangreiche EMV-gerechte Entstörung für den Bedarfsfall&lt;br /&gt;
&lt;br /&gt;
== Technische Realisierung==&lt;br /&gt;
=== PIC18LF2550 Grundbeschaltung ===&lt;br /&gt;
[[Datei:osc_vs_vcc.png|thumb|right|200px|Taktraten und Versorgungsspannung PIC18LF2550 vs. PIC18LF2550, Datenblatt S. 370/438]]&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 3/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Hier kommt ein PIC18&#039;&#039;&#039;L&#039;&#039;&#039;F2550 zum Einsatz. Er verfügt über eine USB-Schnittstelle und ist für Betriebsspannungen von 2 ... 5,5V ausgelegt. Sein Verwandter PIC18F2550 (ohne L) ist nicht für Betriebsspannungen &amp;lt; 4,2V ausgelegt. Dies ist bei USB sowiesor nicht immer erfüllt und die Thermoelement ICs vertragen ohnehin keine 5V, daher wurde die Betriebsspannung auf 3,3V reduziert. Neben Standard-Decoupling (100nF Kerko pro Vcc-Vss-Pärchen) wurde das ICSP-Interface in alt bewährter Pinbelegung (PICKit1,2,3) angebracht. PGD und PGC sind nicht weiter beschaltet, MCRL wird in Standardbeschaltung als Resetpin verwendet. Der Resetschalter findet sich auf dem Top-Sheet (Schaltplan S. 1/22). Die Taktversorgung erfolgt zwingend über einen 24 MHz Quarz (-&amp;gt; USB). Man beachte diesbezüglich rechts stehende Grafik zu Taktraten und Versorgungsspannungen (Vdd bzw. auch Vcc genannt). Auch zu finden im Datenblatt des PICs auf Seite 370.&lt;br /&gt;
&lt;br /&gt;
=== PIC18LF2550 USB Beschaltung ===&lt;br /&gt;
[[Datei:usb_part.png|thumb|right|200px|PIC18(L)F2550&lt;br /&gt;
 Standard &lt;br /&gt;
USB-Beschaltung am PIC]]&lt;br /&gt;
[[Datei:usb_protect.png|thumb|right|200px|USB-Schutzbeschaltung und Mini-USB-Buchse]]&lt;br /&gt;
&lt;br /&gt;
Die Beschaltung der USB-Schnittstelle am PIC ist 1:1 aus dem Datenblatt übernommen. Zum Einsatz kommt eine Mini-USB-Buchse (J1).&lt;br /&gt;
Der Gedanke war: Erstens ein sehr preiswertes, fertiges Netzteil verwenden zu können, (ca. 3,67 € bei druckerzubehoer.de) und zweitens, die Steuerung auch mit dem PC / Laptop versorgen zu können.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 4/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
FER1,2 und C7 filtern den Schirm nach GND. Standardmäßig wird man hier wohl 0-Ohm-Widerstände einsetzen. Falls ein Besuch im EMV-Labor geplant ist, weicht man auf den Ferrit aus. C5 und C6 filtern das Signal zusammen mit der Common-Mode-DrosselL1. Die Drossel kann mit den 0-Ohm-Brücken R8 und R9 überbrückt (gespart) werden. IC2 ist als ESD-Schutz gedacht und kann ebenfalls bei ausgeprägten Kostenbewustsein gespart werden. Die Widerstände R6 und R7 dürfen NICHT bestückt werden. FER1,2, C5, IC2 müssen nicht zwingend bestückt werden. Die Bestückung wurde vorgehalten um im Problemfall einfache Abhilfe schaffen zu können.&lt;br /&gt;
&lt;br /&gt;
=== 3,3V Spannungsversorgung ===&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 2/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Die 3,3V Versorgungsspannung für die gesamte Platine wird aus V_USB mittels des LDO Spannungsreglers TOREX - XC6206P332MR abgeleitet. Günstig, SOT-23, klein, 2x 1µF Kondensatoren benötigt, 3,3V max. 250mA. Der hat auch einen sehr kleinen Ruhestrom.&lt;br /&gt;
&lt;br /&gt;
=== Taster ===&lt;br /&gt;
*Der Resettaster zieht den MCLR-Pin nach GND und löst damit den Reset aus. MCLR ist gem. der Standardbeschaltung mit einem 10k Pullup versehen.&lt;br /&gt;
*Die übrigen beiden Taster ziehen RA4 bzw. RB5 ebenfalls nach GND.&lt;br /&gt;
&lt;br /&gt;
=== LEDs + ULN2003L ===&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 11/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Um alle LEDs auf der Platine (3x Optotriac + 7x Status) ansteuern zu können wurde auf das 7fach Darlington-Array ULN2003L zurückgegriffen. Es dient desweiteren auch als &amp;quot;MOSFET-Treiber für Arme&amp;quot;. Alle LEDs werden von diesem Transistor-Array nach Masse geschaltet. Dient der Entlastung der PIC-Ausgänge. Und kostet ja auch nicht viel.&lt;br /&gt;
&lt;br /&gt;
=== MOSFET-Leistungsausgang ===&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 22/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Hier kommt der einfacher N-Kanal MOSFET (LogicLevel) PHT8N06LT zum Einsatz. Er wird über das ULN2003L Array getrieben und ermöglicht den Anschluss eines DC-Verbrauchers mit max. 55V bei 3,5A. Hier könnte beispielsweise ein PC-Lüfter zur Kühlung od. Umluft angeschlossen und über PWM geregelt/gesteuert werden. Ein Gatewiderstand von 100 Ohm ist zum Schutz des Treibers vorgesehen. Eine 0-Ohm-Brücke ist stattdessen aber auch möglich, wenn man eine höhere Leistung schalten möchte.Die Leiterbahnen sollten die 3A schon hergeben. Der 100 Ohm Widerstand bildet eine Stromquelle. Sobald der Strom durch den MOSFET und den Widerstand 33mA erreicht, sinkt UGS gegen 0 V. Folge: Der Mosfet sperrt ( und bleibt ganz....)&lt;br /&gt;
Es kann hier prinzipiell auch ein anderer Mosfet im SOT223-Gehäuse zum Einsatz kommen. Achten sollte man darauf, das der MOSFET schon bei 3,3V Ugs gut leiten sollte.&lt;br /&gt;
&lt;br /&gt;
=== Nulldurchgangserkennung ===&lt;br /&gt;
[[Datei:zerocross.png|thumb|right|200px|Nulldurchgangserkennung]]&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 5/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Die Nulldurchgangserkennung erfolgt nach einer sehr bekannten - jedoch ausgeklügelten - Schaltung.  [http://www.dextrel.net/diyzerocrosser.htm]&lt;br /&gt;
&lt;br /&gt;
ACHTUNG: DER IM SCHALTPLAN VERZEICHNETE OPTOKOPPLER und BRÜCKENGLEICHRICHTER VON REICHELT DARF KEINESFALLS VERWENDET WERDEN! Pinbelegung! Bitte den Optokoppler aus der Stückliste nehmen!&lt;br /&gt;
&lt;br /&gt;
Während einer Halbwelle wird C14 über R33 und R35 bzw. D5 geladen. Währenddessen ist T1 gesperrt. Sobald die Wechselspannung (L1-N über Spannungsteiler (R33+R35) / R34) kleiner ist als die Spannung über C14, steuert T1 durch. Dann entlädt sich C14 über den LED-Vorwiderstand R32. Der durch-steuernde Optokoppler zieht die Sync-Leitung nach GND. (Pullup Sync-Leitung = R31). Dies löst beim PIC auf INT2 einen Interrupt aus. &lt;br /&gt;
&lt;br /&gt;
Dieser Interrupt ermöglicht eine präzise Wellenpaket-, Phasenanschnittsteuerung je nach Bedarf. Das Schalten im Nulldurchgang bei der Wellenpaketsteuerung reduziert EMV-Störungen. Für Phasenanschnitt ist prinzipbedingt ohnehin eine Nulldurchgangserkennung notwendig. Außerdem liefert sie eine völlig ausreichend genaue Zeitbasis für alle Programmabläufe.&lt;br /&gt;
&lt;br /&gt;
=== Triac-Ausgänge + Snubber ===&lt;br /&gt;
[[Datei:triac.png|thumb|right|200px|Triac-Ausgangsbeschaltung]]&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 19,20,21/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Die Ansteuerung des eigentlichen Leistungstriacs BTA140-800 erfolgt über den Optotriac IS6005. Der Strom durch Letzteren wird durch R1x limitiert (Vorwiderstand). R2x und R5x limitieren wiederum den Strom durch den Optotriac. Wenn dieser zündet so folgt unmittelbar der &amp;quot;Leistungstriac&amp;quot; der dann die Last schaltet.&lt;br /&gt;
&lt;br /&gt;
S1x ist ein Sicherungshalter um die Lasten einzeln absichern zu können. Wert 10A Mittelträge.&lt;br /&gt;
&lt;br /&gt;
R3x, R4x, C3x bilden ein Snubber-Network, L1X verhindert eine zu schnelle Stromanstiegsgeschwindikeit damit der Triac nicht &amp;quot;von selbst&amp;quot; zündet. Weglassen äußert sich meist in einem fast nicht hörbaren Click. Damit zeigt einem dann der Triac, dass er ab jetzt für immer recht niederohmig geworden ist. Die Regelung der Temperatur braucht dann nicht mehr über den Prozessor erfolgen, sondern nur noch mit dem Ein-/Ausschalter..... :-)&lt;br /&gt;
&lt;br /&gt;
=== Thermoelemente (MAX6675/MAX31855)  ===&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 6,7/22&#039;&#039;&#039;&lt;br /&gt;
Der inzwischen abgekündigte MAX6675 bzw. sein ehrenwerter Nachfolger MAX31855 sind einfach zu handhabende Thermoelement-ICs mit Kaltstellenkompensation. Thermoelemente funktionieren durch das Verschweißen zweier verschiedener Legierungen (beim K-Typ Thermoelemnt Ni und CrNi). Durch den durch die Umgebungstemperatur bedingten Wärmefluss zwischen beiden entsteht ein elektrische Spannung. Diese wird von besagten ICs verstärkt und digitalisiert (ADC). Diese Spannung / Temperatur ist natürlich wieder relativ zur Umgebungstemperatur an der Kaltstelle (Kontaktierung der beiden Drähte mit dem Messinstrument). Daher messen diese ICs auch gleich die Umgebungstemperatur (Kaltstellenkompensation genannt) mit, verrechnen das und geben das Ergebnis auf der SPI-Schnittstelle aus. MAX6675 leistet 12bit also 0,25°C Auflösung (nicht Genauigkeit!) über einen Temperaturbereich von 0°C to +1024°C. Außerdem wird ein nicht/fehlerhaft angeschlossenes Thermoelement erkannt. Der Thermocouple-IC wird an die SPI-Schnittstelle des PICs angeschlossen (hier MSSP genannt). &lt;br /&gt;
&lt;br /&gt;
MAX6675 und MAX31855 scheinen entgegen der Adafruit-Information [http://www.adafruit.com/products/269] doch pinkompatibel zu sein - die Ansteuerung unterscheidet sich jedoch definitiv. (Zitat: &amp;quot;Now uses the MAX31855K instead of the MAX6675, so it can measure a wider temperature measurement range. Please note! the MAX31855 is not pin compatible or drop-in code compatible with the MAX6675. We do have an Arduino library for both chips but you&#039;ll need to adjust any existing MAX6675 designs for the mew MAX31855. The MAX6675 has been discontinued by Maxim.&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Es wurden 2 dieser ICs und damit 2 Temperaturmessstellen vorgesehen. Dies ermöglich die Messung für eine Regelung der Temperatur so wie eine zusätzliche Überwachung kritischer Bauteile (z.B. ICs oder LEDs). Die Minimalbestückung sieht einen MAX6675/MAX31855 vor. Die Auswahl in der Firmware erfolgt über einen der beiden GPIO-Pins RA5 oder RA0 via dem ChipSelect (CS) des MAX6675/MAX31855.&lt;br /&gt;
&lt;br /&gt;
Neben dem MAX6675/MAX31855 wurde ein Decoupling-Kondensator (C8x, Standard 100nF) so wie ein weiterer im Messpfad (C9x) zur Zwecken der Entstörung vorgeshen. C9x 100nF sollte nur bestückt werden wenn Probleme bei der Temperaturmessung entstehen (z.B. unrealstisch stark schwankende Werte).&lt;br /&gt;
&lt;br /&gt;
=== ADC, SPI, UART &amp;amp; I2C Stiftleiste ===&lt;br /&gt;
ADC, SPI, UART und I2C sind zu Zwecken der Kalibrierung / Erweiterung / Einstellung / Debugging auf Stiftleisten herausgeführt:&lt;br /&gt;
Ähnlichkeiten mit dem FTDI-USB-TTL-Kabel bzw. Arduino XXX Bla Bla Bla Schnittstellenkonverter sind natürlich rein zufällig.&lt;br /&gt;
&lt;br /&gt;
Die I2C-Schnittstelle wurde auf eine Stiftleiste geführt, um z.B. einem LM75 o.ä. anschließen zu können. Damit stehen zur Kalibrierung der Thermoelemente genaue Temperaturen zur Verfügung.&lt;br /&gt;
&lt;br /&gt;
Die Stiftleisten haben alle ein Raster von 2,54mm. So können Pin-Header, Wannenstecker oder ähnliches verwendet werden.&lt;br /&gt;
&lt;br /&gt;
Da ja viele Leute eigene Vorstellungen bezüglich der Frontplattengestaltung haben, wurden auch die Taster und LEDs auf Stiftleisten geführt.&lt;br /&gt;
&lt;br /&gt;
=== Kühlkörper ===&lt;br /&gt;
Da die Triacs der Steuerung für bis zu 10A pro Kanal ausgelegt sind, kann man auf die Kühlkörper nicht verzichten. Es fallen bei 10A bis zu 13 Watt Wärme pro Triac ab. Falls mann auf die Kühlkörper doch verzichten möchte, sollte man darauf achten, die Triac mit dem Kopf nach unten einzubauen. Diese können sich dann bei Überlast ganz von selber auslöten.... :-)&lt;br /&gt;
&lt;br /&gt;
=== Gehäuse ===&lt;br /&gt;
Die Leiterplatte wurde für ein Gehäuse von Hammond entwickelt.&lt;br /&gt;
Das Gehäuse ist zwar keine Schönheit, aber doch recht preiswert.&lt;br /&gt;
Typenbezeichnung: RM2055M&lt;br /&gt;
&lt;br /&gt;
== Firmware PIC ==&lt;br /&gt;
Die Entwicklung der Firmware für den PIC18LF2550  geht mit MPlab 8 respektive dem C18 Compiler von Statten. MPlab ist kostenlos, der C18 Compiler bis auf die stärkste Optimierungsstufe ebenfalls. Die Quellen für die Firmware werden auch offengelegt.&lt;br /&gt;
=== Programmstruktur- und ablauf ===&lt;br /&gt;
Nach anfänglicher Initialisierung des PIC startet die Statemachine [http://http://www.mikrocontroller.net/articles/Statemachine] [http://http://de.wikipedia.org/wiki/Endlicher_Automat]. Neben ihr findet in der main-Funktion nur noch die Abfrage der beiden Bedientasten statt. Mit dem Tastendruck wird zum Zwecke der Entprellung ein Timer gestartet. Alles Andere (incl. PID-Regelung, Wellenpaket- bzw. Phasenan- und Phasenabschnittssteuerung und USB) ist interruptbasiert.&lt;br /&gt;
&lt;br /&gt;
=== Taktversorgung, Nulldurchgangserkennung und Zeitbasis ===&lt;br /&gt;
=== USB ===&lt;br /&gt;
=== SPI für MAX6675 ===&lt;br /&gt;
=== SPI für MAX31855 ===&lt;br /&gt;
&lt;br /&gt;
=== Wellenpaketsteuerung ===&lt;br /&gt;
=== Phasenanschnitt, Phasenabschnitt ===&lt;br /&gt;
=== PWM für MOSFET ===&lt;br /&gt;
&lt;br /&gt;
== PC-Software (GUI) ==&lt;br /&gt;
[[Datei:gui_alpha.png|thumb|right|300px|Screenshot der GUI (noch Alpha) für den Reflow-Ofen-Controller]]&lt;br /&gt;
&lt;br /&gt;
Die GUI (englisch Graphical User Interface) ist der Einfachheit halber in VB.net programmiert und momentan noch im Alpha-Stadium. Auch hierfür liegen die Quellen später selbstverständlich offen.&lt;br /&gt;
&lt;br /&gt;
=== Funktionen und Modi ===&lt;br /&gt;
[[Datei:modi.png|thumb|right|400px|Auswahl der beschriebenen Modi durch Klick]]&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Ofen-Profil&amp;quot;&#039;&#039;&#039; - Es wird ein Programm (Temperaturkurve) aus dem EEPROM des Reflow-Ofens ausgeführt. Der Backvorgang kann mit der Software gesteuert (START, STOP, ...) und überwacht werden. Hierzu stehen Temperatur, Temperaturänderung, Heizleistung (Ober- und Unterhitze, Lüfter) so wie die graphische Darstellung im zentralen Diagramm zur Verfügung. Eingriffsmöglichkeiten, wie das Ändern der Temperaturkurve sind nicht vorgesehen. Dies soll ein reiner Überwachungs-Modus sein. Um die Temperaturkurve zu verändern zu können, sollte der Modus &amp;quot;PC-Profil&amp;quot; verwendet werden und die Temperaturkurve aus dem EEPROM importiert werden. Dann kann Selbige auch verändert und anschließend ausgeführt bzw. verändert in den EEPROM zurückgeschrieben werden. Dieser Modus stellt ein Äquivalent zur START/STOP-Tasten-Bedienung an der Platine dar und kann selbstverständlich parallel dazu genutzt werden. Die GUI also als Addon zum Stand-Alone-Betrieb.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;PC-Profil&amp;quot;&#039;&#039;&#039; - Es wird ein Programm (Temperaturkurve) ausgeführt welche zuvor am Computer erstellt / editiert wurde. In diesem Modus gibt der Computer Temperaturwerte vor, welche live über die USB-Schnittstelle zum PIC übertragen werden und mit dem dort integrierten PID-Regler ausgeführt werden. Das ermöglicht eine on-the-fly Veränderung der Temperaturkurve während des Backvorgangs. Temperaturkurven können aus Dateien oder dem EEPROM importiert und auch wieder exportiert werden. CSV-Dateien können ebenfalls importiert und exportiert werden. Die &amp;quot;Eingabe&amp;quot; der Temperaturkurve erfolgt entweder über Import (CSV/EEPROM), per Mausklick auf dem zentralen Diagramm oder im sog. DataGridView. Weiteres siehe Unterpunkt &amp;quot;Eingabe der Temperaturkurve (Reflowprofil)&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;manueller Ablauf&amp;quot;&#039;&#039;&#039; - In diesem Modus wird (im Gegensatz zu den oberen beiden Modi &amp;quot;Ofen-Profil&amp;quot; und &amp;quot;PC-Profil&amp;quot;) keine Temperatur geregelt. Hier wird die Leistung des Ofens in % eingestellt und gesteuert. Der PID-Regler ist nicht in Aktion. Die Temperatur, Temperaturänderung so wie der Temperaturverlauf werden selbstredend angezeigt bzw. im Diagramm dargestellt. Der Modus &amp;quot;manueller Ablauf&amp;quot; fährt ähnlich dem Modus &amp;quot;PC-Profil&amp;quot; die im DataGridView eingetragenen Leistungs-Zeit-Punkte ab. Für jeden Zeitpunkt ist eine Leistung vorgegeben. Die Eingabe erfolgt ähnlich wie unter &amp;quot;Eingabe der Temperaturkurve (Reflowprofil)&amp;quot; beschrieben. Nur eben, dass eine Leistung und keine Temperatur angegeben wird. Die Eingabe der Leistung kann nicht im Zeit-Temperatur-Diagramm erfolgen sondern mittels der Schieberegler oder direkt tabellarisch.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;manueller Modus&amp;quot;&#039;&#039;&#039; - Dieser Modus enthält 2 Submodi&lt;br /&gt;
** &amp;quot;manueller Leistungsmodus&amp;quot; - Auch in diesem Modus wird die Leistung gesteuert. Es wird keine Temperatur geregelt, der PID-Regler für die Temperatur ist nicht in Betrieb. Die Einstellung hier erfolgt über die drei Schieberegler oder über eine numerische Eingabe durch Klick auf die Leistungsangabe unter dem Schieberegler. Durch Klick auf die Texte &amp;quot;TOP&amp;quot;, &amp;quot;BOTTOM&amp;quot;, &amp;quot;FAN&amp;quot; (Oberhitze, Unterhitze, Lüfter) können selbige deaktiviert bzw. aktiviert werden. Auch in diesem Modus wird Temperatur, Temperaturänderung so wie der Temperaturverlauf dargestellt.&lt;br /&gt;
** &amp;quot;manueller Temperaturmodus&amp;quot; - Hier wird die Temperatur wieder mittels des Temperatur-PIDs geregelt. Die Temperatur wird entweder mittels Schieberegler (Ober- und Unterhitze-Regler sind jetzt gekoppelt) oder durch eine numerische Eingabe unterhalb der Schieberegler vorgegeben. Anzeige wie im &amp;quot;manuellen Leistungsmodus&amp;quot;. Der Lüfter kann unabhängig vom PID in seiner Leistung geregelt werden. Ein evtl. durch den Luftstrom verursachter Temperaturabfall wird vom PID selbstverständlich ausgeregelt (aus diesem Grunde ist es ja ein Regler).&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Programmieren&amp;quot;&#039;&#039;&#039; - Hier kann ein neues &#039;&#039;&#039;Temperatur&#039;&#039;&#039;-Programm für den EEPROM-Speicher des Ofens erstellt und editiert werden. Die Eingabemöglichkeiten sind unter &amp;quot;Eingabe der Temperaturkurve (Reflowprofil)&amp;quot; beschrieben. Dieser Modus ist zum reinen Programmieren des Ofens gedacht und ermöglicht keine weitere Steuerung oder Überwachung des Ofens.&lt;br /&gt;
&lt;br /&gt;
=== Eingabe der Temperaturkurve (Reflowprofil) ===&lt;br /&gt;
[[Datei:datagridview.png|thumb|right|400px|tabellarische Anzeige und Editiermöglichkeit der Temperaturkurve]]&lt;br /&gt;
Die Eingabe der Temperaturkurve erfolgt entweder über Import (CSV/EEPROM), per Mausklick auf dem zentralen Diagramm oder im sog. DataGridView (Excel-ähnliche Bedienung in tabellarischer Form). &lt;br /&gt;
&lt;br /&gt;
* CSV-Import + Export&lt;br /&gt;
* EEPROM-Import + Export&lt;br /&gt;
* Im rechts stehenden Screenshotbeispiel wird eine tabellarische Eingabeform mit einem DataGridView gezeigt: Die Temperatur (erster Temperaturpunkt = Punkt 0) von 100°C wird linear über einen Zeitraum von 0-30s verteilt. Bei 30s hat der Ofen die Temperatur von 100°C. Dafür setzt die Regelung die Oberhitze, die Unterhitze ein. Der Lüfter ist deaktiviert. In der Zeit von 30s bis 120s wird die Temperatur nun von 100°C auf 150°C linear angehoben. Von 120s bis 180s Backzeit steigt die Temperatur von 150°C auf 250°C. Von 180s bis 200s wird die Temperatur auf 280°C angehoben. Anschließend wird sie zwischen 200s und 220s auf 280°C gehalten (280°C@200s und 280°C@220s) um dann bis 240s wieder auf 250°C zu fallen. Bis zum Zeitpunkt 300s wird dann die Temperatur 30°C angestrebt. Zusätzlich ist der Lüfter nun aktiviert (soweit der Ofen eine Umluftfunktion besitzt). Bei Punkt 7 sind Ober- und Unterhitze deaktiviert nur noch der Lüfter kühlt. Da hier bei &amp;quot;Zeit[s]&amp;quot; die 0 eingetragen wird der Zustand (hier nur Lüfter an) für einen unendlich langen Zeitraum auf 0 gehalten. Also so lange wie das Programm aktiviert ist wird der Lüfter laufen. Natürlich könnte man hier auch z.B. 100°C und Zeitpunkt 0s eintragen. Dann würde der Ofen bis zum manuellen Beenden des Programms (klick auf STOP-Button oder Drücken des START/STOP-Tasters auf der Platine/Steuerung) 100°C halten.&lt;br /&gt;
* Alle Zellen des DataGridView sind editierbar (zur Veränderung der Temperatur, Zeitpunkt, ...)&lt;br /&gt;
* Direkter Klick auf das zentrale Temperatur-Zeit-Diagramm trägt den Zeitpunkt so wie die Temperatur unter dem Mauszeiger in die Tabelle (das DataGridView) ein. Die ausgewählte Zeile wird beschrieben oder überschrieben. Neue Zeilen (also Temperatur-Zeit-Punkte) können durch klick auf den &amp;quot;Plus-Button&amp;quot; hinzugefügt werden. Ebenso ist das Löschen oder Verschieben einer oder mehrerer Zeile gleichzeitig möglich.&lt;br /&gt;
&lt;br /&gt;
=== Beschreibung der Steuerungsmöglichkeiten ===&lt;br /&gt;
In Abhängigkeit des gewählten Modus bestehen einige Steuerungs-, Einstellungs- und Kontrollmöglichkeiten:&lt;br /&gt;
* &#039;&#039;&#039;Schieberegler&#039;&#039;&#039; für Temperatur od. Leistung (je nach Modus) für Oberhitze, Unterhitze und Lüfter. Je nach Hardwareausführung. &lt;br /&gt;
** Klick auf &amp;quot;TOP&amp;quot;, &amp;quot;BOTTOM&amp;quot; oder &amp;quot;FAN&amp;quot; aktiviert oder deaktiviert die entsprechende Funktion bzw. Hardware.&lt;br /&gt;
** Numerische Eingabe der Werte für die Schieberegler durch Klick auf die Anzeige unterhalb der Schieberegler. Werte können auch im deaktivierten Zustand angegeben werden. Die Übernahme erfolgt durch den &amp;quot;Aktivierungsklick&amp;quot; auf &amp;quot;TOP&amp;quot;, &amp;quot;BOTTOM&amp;quot; oder &amp;quot;FAN&amp;quot;&lt;br /&gt;
* &#039;&#039;&#039;T1, dT1, T2, dT2&#039;&#039;&#039; - Anzeige der gemessenen Temperatur so wie die momentane Temperaturänderung am jeweiligen Sensor. &lt;br /&gt;
* &#039;&#039;&#039;Bedienbuttons&#039;&#039;&#039;&lt;br /&gt;
** Play - Startet das Programm am angegebenen Startpunkt (siehe unten)&lt;br /&gt;
** Pause - Pausiert das Programm - weitere Pauseoptionen siehe unten&lt;br /&gt;
** Stop - Stopt den Programmablauf&lt;br /&gt;
** Vor / Zurück - Springt zwischen Temperaturpunkten hin und her. Dient zum überspringen oder zurückspringen zu gewissen Temperatur-Zeit-Punkten. Ermöglicht z.B. das Überspringen eines Ablaufes der eine lange Preheat- oder Dryphase hat.&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Status&amp;quot;&#039;&#039;&#039; - zeigt den aktuellen Zustand des Programms an (READY, START, WAITING, PAUSE, ...)&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;RESET&amp;quot;&#039;&#039;&#039; - setzt das (begonnene) Programm zurück. Beinhaltet neben dem Programmablauf auch das Zurücksetzen der graphischen Anzeige des Diagramms, etc.&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Startpunkt&amp;quot;&#039;&#039;&#039; - legt den ersten Punkt des Programmablaufes fest. &lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Wiederholungen&amp;quot;&#039;&#039;&#039; - ermöglicht das wiederholte Backen ohne das Programm händisch immer wieder neu starten zu müssen. Die Anzahl der Wiederholungen ist einstellbar (0 für unendlich viele) und es ist eine Wartezeit zwischen den Wiederholungen einstellbar. Alternativ kann eine Meldung nach jedem vollendeten Backvorgang abgegeben werden. Nach Bestätigung dieser wird die nächste Wiederholung ausgeführt.&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Pause&amp;quot;&#039;&#039;&#039; - Pauseneinstellungen. Hier sind Optionen wählbar was passieren soll, falls der Pausebutton betätigt wird:&lt;br /&gt;
** Pausezeit - gibt an wie lange die Pause dauern soll [s], danach fährt das Programm automatisch gemäß des gewählten Pausemodus fort. Für eine Pause ohne automatisches Fortfahren (Countdowntimer) &#039;0&#039; angeben.&lt;br /&gt;
** Pausemodus &amp;quot;aktuelle Temperatur halten, WarmUp, Fortsetzen&amp;quot; - Ofen hält die Temperatur (Zieltemperatur) des Zeitpunktes als der Pausebutton betätigt wurde. WarmUp bedeutet, dass nach dem Beenden des Pausemodus zunächst die Zieltemperatur wieder erreicht werden &#039;&#039;&#039;muss&#039;&#039;&#039; bevor der nächste Punkt angesteuert wird. Klingt paradox, wenn die Temperatur doch so und so gehalten wird, ist aber nicht so. Die Wahrscheinlichkeit ist hoch, dass der Pausemodus benutzt wird um die Ofentüre zu öffnen und Korrekturen an der Platine vorzunehmen. Unter Umständen ist die Heizung des Ofens jedoch nicht in der Lage den dadurch entstehenden Wärmeverlust zu kompensieren. Fährt das Programm dann sofort fort, so könnten evtl. kritische (Hoch-)Punkte des Lötprofils &amp;quot;unterfahren&amp;quot; werden. Dem wirkt WarmUp entgegen.&lt;br /&gt;
** Pausemodus &amp;quot;aktuelle Temperatur halten, Fortsetzen&amp;quot; - siehe oben, nur ohne WarmUp.&lt;br /&gt;
** Pausemodus &amp;quot;definierte Temperatur halten, WarmUp, Fortsetzen&amp;quot; - siehe oben. Statt der aktuellen Zieltemperatur wird jedoch nun im Pausemodus eine einzustellende Pausetemperatur gehalten. Mit WarmUp.&lt;br /&gt;
** Pausemodus &amp;quot;definierte Temperatur halten, Fortsetzen&amp;quot; - siehe oben, nur ohne WarmUp.&lt;br /&gt;
** &amp;quot;Pausetemperatur&amp;quot; - spezielle Temperatur die bei entsprechender Pausemoduswahl für die Dauer der Pause gehalten wird.&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Ende&amp;quot;&#039;&#039;&#039; - gibt an was am Ende eines durchlaufenen Reflow-Programms passieren soll. Ist der Wiederholungsmodus aktiviert, tritt dieses Ereignis erst nach Durchlauf aller Wiederholungen ein. Folgende Modi sind möglich:&lt;br /&gt;
** automatischer Reset - am Ende des Programms wird alles automatisch zurückgesetzt, alle Graphiken und Anzeigen gelöscht.&lt;br /&gt;
** manueller Reset - am Ende des Programms bleiben alle Anzeigen, Graphiken, etc erhalten und müssen vor Beginn eines neuen Reflowvorgangs händisch durch Klick auf &amp;quot;RESET&amp;quot; zurückgesetzt werden.&lt;br /&gt;
** Benutzermeldung - lässt eine Meldung erscheinen. Alle Anzeigen und Graphiken bleiben erhalten bis der Benutzer diese Meldung bestätigt. Mit Bestätigung dieser Meldung wird ein automatischer Reset vorgenommen.&lt;br /&gt;
&lt;br /&gt;
=== Loggen des Temperaturverlaufes ===&lt;br /&gt;
Es ist möglich jeden Backvorgang in eine CSV-Datei zu loggen. (Software- und PID-Einstellungen). Geloggte CSV-Dateien können eingelesen und im zentralen Temperatur-Zeit-Diagramm begutachtet werden. Ein Ist-Soll-Vergleich ist ebenso möglich wie die direkte Anzeige des Fehlers (&amp;quot;Ist minus Soll&amp;quot;). Dank CSV können die Daten auch mit anderen Programmen (Excel, etc.) weiterverarbeitet werden.&lt;br /&gt;
&lt;br /&gt;
== Ofen / Pizzaofen ==&lt;br /&gt;
=== Leistung und Volumen ===&lt;br /&gt;
=== Dämmung ===&lt;br /&gt;
=== Umluft ===&lt;br /&gt;
=== Bezugsquellen ===&lt;br /&gt;
=== Diskussionen im Forum ===&lt;br /&gt;
* Umfangreicher Thread u.A. Leistungsvermögen, Temperaturmessung und Dämmung [http://www.mikrocontroller.net/topic/270627]&lt;br /&gt;
&lt;br /&gt;
== FAQ ==&lt;br /&gt;
&lt;br /&gt;
* Q1: Ich habe einen PT100/PT1000 und möchte den anschließen. Geht das?&lt;br /&gt;
** A1: Ja natürlich. Dazu ist aber etwas externe Elektronik notwendig. Sowohl 2 ADC-Pins (mit 3V3 Betriebsspannung als fixe Referenzspannung), als auch die UART und SPI/I2C-Schnittstelle stehen zur freien Verfügung. Für PT100/PT1000 wird für vernünftige Messungen ohnehin eine Verstärkung (meist mit OPV) von Nöten sein. Da der PIC-interne ADC &amp;quot;nur&amp;quot; 10bit Auflösung bietet sollte ein externer 16bit ADC in Betracht gezogen werden um das Potential der PT100/PT1000 auszunutzen.&lt;br /&gt;
*Q2: Ich habe von günstigen Temperaturmessungen mit Dioden gehört. Geht das auch hier?&lt;br /&gt;
**A2: Ja. Die Vorwärtsspannung einer Diode verhält sich linear zur Sperrschichttemperatur. Diese Spannung (bei 25°C einer Si-Diode die bekannten 0,7V) kann mittels OPV verstärkt werden und auf einen Spannungsbereich von 0 ... 3V3 aufgebläht werden. Eine billige Lösung, auf Kosten der Genauigkeit. Doch eine Diode ist laut Datenblatt nur bis 150°C geeignet. Es ist also beim Löten mehr oder weniger Pfusch. Wenn ich schon eine Reflow-Steuerung baue, sollte ich doch nicht an ein paar Euro für eine gescheite Temperaturmessung sparen. Einige Anregungen vom Messgerätehersteller Keithley bzgl. der Halbleiterphysik mit interessanten Formeln [http://www.keithley.de/support/data?asset=50486]. Oder natürlich der Klassiker von Thomas Pfeifer [http://thomaspfeifer.net/backofen_smd_reflow.htm]. Oder ein Beitrag mit LT-Spice Simulation zum Thema [http://www.mikrocontroller.net/topic/270627#2833883].&lt;br /&gt;
* Q: God why ... ?&lt;br /&gt;
** A: Because we can !&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Verbesserungen Prototyp ===&lt;br /&gt;
* Bauteile weiter weg von Schraublöchern&lt;br /&gt;
* Dazu Kreis rund um Bohrung auf Bestückdruck&lt;br /&gt;
* Masseanbindung Quarz&lt;br /&gt;
* Klemmen weiter weg vom Rand&lt;br /&gt;
* Klemme und Sicherungshalter weiter auseinander, damit Schutzhabe draufpasst&lt;br /&gt;
* Bohrungen für Drossel 0,2mm größer machen&lt;br /&gt;
* Teilenummer für Conrad-USB-Buchse in BOM übernehmen.&lt;br /&gt;
* Stiftleiste P1  weiter weg von P2 und P4&lt;br /&gt;
* Varistoren näher an Klemmen platzieren&lt;br /&gt;
* Bestückvarianten defineren: 1. minimal 2. Standard 3. Externe Leds und Schalter.&lt;br /&gt;
&lt;br /&gt;
=== Errata Projekt ===&lt;br /&gt;
* LED-Beschriftung passt nicht ganz (Schltplan Netlabel OUT1,2,3,4 sind durcheinander gekommen)&lt;br /&gt;
* Schaltplan UNL2003 fehlerhafte Zuordnung IN5,6,7 &amp;lt;&amp;gt; OUT7,6,5&lt;br /&gt;
* Brückengleichrichter / Optokoppler NICHT die im Schaltplan angegebenen Bestellnummern von Reichelt verwenden. BOM-Bauteile und Bestellnummern sind ok.&lt;br /&gt;
* Beim MOSFET R39 ist die Masseanbindung falsch. Es bestehen drei Möglichkeiten:&lt;br /&gt;
** 1. 0-R-Brücke für R39 einbauen und auf Strombegrenzung verzichten.&lt;br /&gt;
** 2. Eine Polyfuse mit Bauform 1206 einbauen. &lt;br /&gt;
** 3. Das kleine Leiterbahnstückchen zwischen R38 und R39 unterbrechen und statt dessen die Leiterbahn zwischen R39 und der Klemme mit der Durchkontaktierung bei R38 verbinden.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* Diskussion [http://www.mikrocontroller.net/topic/297217 Diskussion]&lt;br /&gt;
* Dextrel Nulldurchgang [http://www.dextrel.net/diyzerocrosser.htm Nulldurchgangschaltung]&lt;br /&gt;
* Gehäuse [http://www.hammondmfg.com/pdf/RM2015M.pdf Gehäuse Hammond]&lt;br /&gt;
* Bezugsquelle SOS Elektronik [http://www.soselectronic.com/?str=371&amp;amp;artnum=73595&amp;amp;name=hammond-ritec-rm2055m]&lt;br /&gt;
* Bezugsgquelle [http://www.druckerzubehoer.de/shop/product/catid/H-UNIVERSALZUBEHOER_HZB/subcatid/UNIVERSALZUBEHOER_GROUP1_HZB/productid/1727063-390722LA/site/1/lng/de_DE Mini USB Netzteil]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Projekte]]&lt;br /&gt;
[[Kategorie:PIC]]&lt;br /&gt;
[[Kategorie:PIC-Boards]]&lt;br /&gt;
[[Kategorie:Platinen]]&lt;/div&gt;</summary>
		<author><name>Frankman</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=Reflow_Ofen_Steuerung&amp;diff=76102</id>
		<title>Reflow Ofen Steuerung</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=Reflow_Ofen_Steuerung&amp;diff=76102"/>
		<updated>2013-05-29T21:16:39Z</updated>

		<summary type="html">&lt;p&gt;Frankman: /* ADC, SPI, UART &amp;amp; I2C Stiftleiste */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Datei:RFB.jpg]]&lt;br /&gt;
== Einleitung ==&lt;br /&gt;
[[Datei:pcb.png|thumb|right|400px|unbestücktes PCB der Reflow-Ofen-Steuerung]]&lt;br /&gt;
Hier wird eine weitere Reflow-Ofen-Steuerung beschrieben.&lt;br /&gt;
=== Zum Nachbauen ===&lt;br /&gt;
* Spezifikation: [[Datei: Spec Reflow.pdf]]&lt;br /&gt;
* Schaltplan: [[Datei:Reflow.pdf]]&lt;br /&gt;
* Gerberdaten: [[Datei:Gerber Reflow.pdf]]&lt;br /&gt;
* Assemblydrawing: [[Datei:Assembly Reflow.pdf]] &lt;br /&gt;
* Altium-Files: [[Datei:Reflow.zip]]&lt;br /&gt;
* Stückliste als CSV: [[Datei:Reflow.csv]]&lt;br /&gt;
* Stückliste als Open Office: [[Datei:Reflow.ods]]&lt;br /&gt;
* PC Programm: TBD&lt;br /&gt;
* Sourcen PC-Programm: TBD&lt;br /&gt;
* PIC Programm (*.hex): TBD&lt;br /&gt;
* Sourcen Pic-Programm: TBD&lt;br /&gt;
&lt;br /&gt;
=== Motivation ===&lt;br /&gt;
Die Gründe, eine weitere Steuerung zu entwerfen, waren:&lt;br /&gt;
&lt;br /&gt;
# Die Möglichkeit, auch größere Öfen mit 2 Phasen betreiben zu können.&lt;br /&gt;
# Die Steuerung universell zu gestalten. Es sollte möglich sein, diese nicht nur zum Reflow löten zu verwenden.&lt;br /&gt;
# Die Schaltung sollte in Altium entwickelt werden. (Warum kein Eagle??? Altium User wissen es.... :-)&lt;br /&gt;
# Die Schaltung sollte mit USB ausgestattet sein.&lt;br /&gt;
=== Eigenschaften &amp;amp; Spezifikationen ===&lt;br /&gt;
* Temperaturmessung: bis zu 2x &#039;&#039;&#039;Thermoelement&#039;&#039;&#039; (K-Typ) mit MAX6675 (abgekündigt) oder Nachfolger MAX31855 (pin- aber nicht softwarekompatibel)&lt;br /&gt;
* &#039;&#039;&#039;Leistungsstufen&#039;&#039;&#039;: 3x voneinander unabhängige Triac 800V bei 25A, limitiert auf &#039;&#039;&#039;10A @ 250VAC&#039;&#039;&#039; (z.B. Oberhitze, Unterhitze, Umluft)&lt;br /&gt;
* &#039;&#039;&#039;Nulldurchgangserkennung&#039;&#039;&#039; ermöglicht Wellenpaket-, Phasenan- und abschnittssteuerung, galvanische Trennung selbiger&lt;br /&gt;
* 1x &#039;&#039;&#039; MOSFET-Ausgang&#039;&#039;&#039; PWM z.B. für 12V Lüfter, max. 55V 3,5A&lt;br /&gt;
* &#039;&#039;&#039;feste Programme&#039;&#039;&#039; im EEPROM über 2-Tasterbedienung und LEDs wähl- und ausführbar. &#039;&#039;&#039;PC-unabhängiger Betrieb&#039;&#039;&#039;. Beliebig viele Programme möglich, für die Auswahl stehen 4 benutzer-konfigurierbare LEDs zur Verfügung&lt;br /&gt;
* Betrieb am Computer für mehr Reflowprofile&lt;br /&gt;
* Mini-USB-Buchse zur Steuerung / Programmierung über GUI&lt;br /&gt;
* Günstiges passendes &#039;&#039;&#039;Gehäuse&#039;&#039;&#039;, alle LEDs und Taster auf Stiftleisten herausgeführt&lt;br /&gt;
* PID-Temperaturregler&lt;br /&gt;
* UART, SPI, I2C und 2x ADC auf Stiftleisten herausgeführt (-&amp;gt; Erweiterungen)&lt;br /&gt;
* Versorgung über USB (&amp;lt; 100mA), interne Versorgungsspannung 3,3V&lt;br /&gt;
* umfangreiche EMV-gerechte Entstörung für den Bedarfsfall&lt;br /&gt;
&lt;br /&gt;
== Technische Realisierung==&lt;br /&gt;
=== PIC18LF2550 Grundbeschaltung ===&lt;br /&gt;
[[Datei:osc_vs_vcc.png|thumb|right|200px|Taktraten und Versorgungsspannung PIC18LF2550 vs. PIC18LF2550, Datenblatt S. 370/438]]&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 3/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Hier kommt ein PIC18&#039;&#039;&#039;L&#039;&#039;&#039;F2550 zum Einsatz. Er verfügt über eine USB-Schnittstelle und ist für Betriebsspannungen von 2 ... 5,5V ausgelegt. Sein Verwandter PIC18F2550 (ohne L) ist nicht für Betriebsspannungen &amp;lt; 4,2V ausgelegt. Dies ist bei USB sowiesor nicht immer erfüllt und die Thermoelement ICs vertragen ohnehin keine 5V, daher wurde die Betriebsspannung auf 3,3V reduziert. Neben Standard-Decoupling (100nF Kerko pro Vcc-Vss-Pärchen) wurde das ICSP-Interface in alt bewährter Pinbelegung (PICKit1,2,3) angebracht. PGD und PGC sind nicht weiter beschaltet, MCRL wird in Standardbeschaltung als Resetpin verwendet. Der Resetschalter findet sich auf dem Top-Sheet (Schaltplan S. 1/22). Die Taktversorgung erfolgt zwingend über einen 24 MHz Quarz (-&amp;gt; USB). Man beachte diesbezüglich rechts stehende Grafik zu Taktraten und Versorgungsspannungen (Vdd bzw. auch Vcc genannt). Auch zu finden im Datenblatt des PICs auf Seite 370.&lt;br /&gt;
&lt;br /&gt;
=== PIC18LF2550 USB Beschaltung ===&lt;br /&gt;
[[Datei:usb_part.png|thumb|right|200px|PIC18(L)F2550&lt;br /&gt;
 Standard &lt;br /&gt;
USB-Beschaltung am PIC]]&lt;br /&gt;
[[Datei:usb_protect.png|thumb|right|200px|USB-Schutzbeschaltung und Mini-USB-Buchse]]&lt;br /&gt;
&lt;br /&gt;
Die Beschaltung der USB-Schnittstelle am PIC ist 1:1 aus dem Datenblatt übernommen. Zum Einsatz kommt eine Mini-USB-Buchse (J1).&lt;br /&gt;
Der Gedanke war: Erstens ein sehr preiswertes, fertiges Netzteil verwenden zu können, (ca. 3,67 € bei druckerzubehoer.de) und zweitens, die Steuerung auch mit dem PC / Laptop versorgen zu können.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 4/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
FER1,2 und C7 filtern den Schirm nach GND. Standardmäßig wird man hier wohl 0-Ohm-Widerstände einsetzen. Falls ein Besuch im EMV-Labor geplant ist, weicht man auf den Ferrit aus. C5 und C6 filtern das Signal zusammen mit der Common-Mode-DrosselL1. Die Drossel kann mit den 0-Ohm-Brücken R8 und R9 überbrückt (gespart) werden. IC2 ist als ESD-Schutz gedacht und kann ebenfalls bei ausgeprägten Kostenbewustsein gespart werden. Die Widerstände R6 und R7 dürfen NICHT bestückt werden. FER1,2, C5, IC2 müssen nicht zwingend bestückt werden. Die Bestückung wurde vorgehalten um im Problemfall einfache Abhilfe schaffen zu können.&lt;br /&gt;
&lt;br /&gt;
=== 3,3V Spannungsversorgung ===&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 2/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Die 3,3V Versorgungsspannung für die gesamte Platine wird aus V_USB mittels des LDO Spannungsreglers TOREX - XC6206P332MR abgeleitet. Günstig, SOT-23, klein, 2x 1µF Kondensatoren benötigt, 3,3V max. 250mA. Der hat auch einen sehr kleinen Ruhestrom.&lt;br /&gt;
&lt;br /&gt;
=== Taster ===&lt;br /&gt;
*Der Resettaster zieht den MCLR-Pin nach GND und löst damit den Reset aus. MCLR ist gem. der Standardbeschaltung mit einem 10k Pullup versehen.&lt;br /&gt;
*Die übrigen beiden Taster ziehen RA4 bzw. RB5 ebenfalls nach GND.&lt;br /&gt;
&lt;br /&gt;
=== LEDs + ULN2003L ===&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 11/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Um alle LEDs auf der Platine (3x Optotriac + 7x Status) ansteuern zu können wurde auf das 7fach Darlington-Array ULN2003L zurückgegriffen. Es dient desweiteren auch als &amp;quot;MOSFET-Treiber für Arme&amp;quot;. Alle LEDs werden von diesem Transistor-Array nach Masse geschaltet. Dient der Entlastung der PIC-Ausgänge. Und kostet ja auch nicht viel.&lt;br /&gt;
&lt;br /&gt;
=== MOSFET-Leistungsausgang ===&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 22/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Hier kommt der einfacher N-Kanal MOSFET (LogicLevel) PHT8N06LT zum Einsatz. Er wird über das ULN2003L Array getrieben und ermöglicht den Anschluss eines DC-Verbrauchers mit max. 55V bei 3,5A. Hier könnte beispielsweise ein PC-Lüfter zur Kühlung od. Umluft angeschlossen und über PWM geregelt/gesteuert werden. Ein Gatewiderstand von 100 Ohm ist zum Schutz des Treibers vorgesehen. Eine 0-Ohm-Brücke ist stattdessen aber auch möglich, wenn man eine höhere Leistung schalten möchte.Die Leiterbahnen sollten die 3A schon hergeben. Der 100 Ohm Widerstand bildet eine Stromquelle. Sobald der Strom durch den MOSFET und den Widerstand 33mA erreicht, sinkt UGS gegen 0 V. Folge: Der Mosfet sperrt ( und bleibt ganz....)&lt;br /&gt;
Es kann hier prinzipiell auch ein anderer Mosfet im SOT223-Gehäuse zum Einsatz kommen. Achten sollte man darauf, das der MOSFET schon bei 3,3V Ugs gut leiten sollte.&lt;br /&gt;
&lt;br /&gt;
=== Nulldurchgangserkennung ===&lt;br /&gt;
[[Datei:zerocross.png|thumb|right|200px|Nulldurchgangserkennung]]&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 5/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Die Nulldurchgangserkennung erfolgt nach einer sehr bekannten - jedoch ausgeklügelten - Schaltung.  [http://www.dextrel.net/diyzerocrosser.htm]&lt;br /&gt;
&lt;br /&gt;
ACHTUNG: DER IM SCHALTPLAN VERZEICHNETE OPTOKOPPLER und BRÜCKENGLEICHRICHTER VON REICHELT DARF KEINESFALLS VERWENDET WERDEN! Pinbelegung! Bitte den Optokoppler aus der Stückliste nehmen!&lt;br /&gt;
&lt;br /&gt;
Während einer Halbwelle wird C14 über R33 und R35 bzw. D5 geladen. Währenddessen ist T1 gesperrt. Sobald die Wechselspannung (L1-N über Spannungsteiler (R33+R35) / R34) kleiner ist als die Spannung über C14, steuert T1 durch. Dann entlädt sich C14 über den LED-Vorwiderstand R32. Der durch-steuernde Optokoppler zieht die Sync-Leitung nach GND. (Pullup Sync-Leitung = R31). Dies löst beim PIC auf INT2 einen Interrupt aus. &lt;br /&gt;
&lt;br /&gt;
Dieser Interrupt ermöglicht eine präzise Wellenpaket-, Phasenanschnittsteuerung je nach Bedarf. Das Schalten im Nulldurchgang bei der Wellenpaketsteuerung reduziert EMV-Störungen. Für Phasenanschnitt ist prinzipbedingt ohnehin eine Nulldurchgangserkennung notwendig. Außerdem liefert sie eine völlig ausreichend genaue Zeitbasis für alle Programmabläufe.&lt;br /&gt;
&lt;br /&gt;
=== Triac-Ausgänge + Snubber ===&lt;br /&gt;
[[Datei:triac.png|thumb|right|200px|Triac-Ausgangsbeschaltung]]&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 19,20,21/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Die Ansteuerung des eigentlichen Leistungstriacs BTA140-800 erfolgt über den Optotriac IS6005. Der Strom durch Letzteren wird durch R1x limitiert (Vorwiderstand). R2x und R5x limitieren wiederum den Strom durch den Optotriac. Wenn dieser zündet so folgt unmittelbar der &amp;quot;Leistungstriac&amp;quot; der dann die Last schaltet.&lt;br /&gt;
&lt;br /&gt;
S1x ist ein Sicherungshalter um die Lasten einzeln absichern zu können. Wert 10A Mittelträge.&lt;br /&gt;
&lt;br /&gt;
R3x, R4x, C3x bilden ein Snubber-Network, L1X verhindert eine zu schnelle Stromanstiegsgeschwindikeit damit der Triac nicht &amp;quot;von selbst&amp;quot; zündet. Weglassen äußert sich meist in einem fast nicht hörbaren Click. Damit zeigt einem dann der Triac, dass er ab jetzt für immer recht niederohmig geworden ist. Die Regelung der Temperatur braucht dann nicht mehr über den Prozessor erfolgen, sondern nur noch mit dem Ein-/Ausschalter..... :-)&lt;br /&gt;
&lt;br /&gt;
=== Thermoelemente (MAX6675/MAX31855)  ===&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 6,7/22&#039;&#039;&#039;&lt;br /&gt;
Der inzwischen abgekündigte MAX6675 bzw. sein ehrenwerter Nachfolger MAX31855 sind einfach zu handhabende Thermoelement-ICs mit Kaltstellenkompensation. Thermoelemente funktionieren durch das Verschweißen zweier verschiedener Legierungen (beim K-Typ Thermoelemnt Ni und CrNi). Durch den durch die Umgebungstemperatur bedingten Wärmefluss zwischen beiden entsteht ein elektrische Spannung. Diese wird von besagten ICs verstärkt und digitalisiert (ADC). Diese Spannung / Temperatur ist natürlich wieder relativ zur Umgebungstemperatur an der Kaltstelle (Kontaktierung der beiden Drähte mit dem Messinstrument). Daher messen diese ICs auch gleich die Umgebungstemperatur (Kaltstellenkompensation genannt) mit, verrechnen das und geben das Ergebnis auf der SPI-Schnittstelle aus. MAX6675 leistet 12bit also 0,25°C Auflösung (nicht Genauigkeit!) über einen Temperaturbereich von 0°C to +1024°C. Außerdem wird ein nicht/fehlerhaft angeschlossenes Thermoelement erkannt. Der Thermocouple-IC wird an die SPI-Schnittstelle des PICs angeschlossen (hier MSSP genannt). &lt;br /&gt;
&lt;br /&gt;
MAX6675 und MAX31855 scheinen entgegen der Adafruit-Information [http://www.adafruit.com/products/269] doch pinkompatibel zu sein - die Ansteuerung unterscheidet sich jedoch definitiv. (Zitat: &amp;quot;Now uses the MAX31855K instead of the MAX6675, so it can measure a wider temperature measurement range. Please note! the MAX31855 is not pin compatible or drop-in code compatible with the MAX6675. We do have an Arduino library for both chips but you&#039;ll need to adjust any existing MAX6675 designs for the mew MAX31855. The MAX6675 has been discontinued by Maxim.&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Es wurden 2 dieser ICs und damit 2 Temperaturmessstellen vorgesehen. Dies ermöglich die Messung für eine Regelung der Temperatur so wie eine zusätzliche Überwachung kritischer Bauteile (z.B. ICs oder LEDs). Die Minimalbestückung sieht einen MAX6675/MAX31855 vor. Die Auswahl in der Firmware erfolgt über einen der beiden GPIO-Pins RA5 oder RA0 via dem ChipSelect (CS) des MAX6675/MAX31855.&lt;br /&gt;
&lt;br /&gt;
Neben dem MAX6675/MAX31855 wurde ein Decoupling-Kondensator (C8x, Standard 100nF) so wie ein weiterer im Messpfad (C9x) zur Zwecken der Entstörung vorgeshen. C9x 100nF sollte nur bestückt werden wenn Probleme bei der Temperaturmessung entstehen (z.B. unrealstisch stark schwankende Werte).&lt;br /&gt;
&lt;br /&gt;
=== ADC, SPI, UART &amp;amp; I2C Stiftleiste ===&lt;br /&gt;
ADC, SPI, UART und I2C sind zu Zwecken der Kalibrierung / Erweiterung / Einstellung / Debugging auf Stiftleisten herausgeführt:&lt;br /&gt;
Ähnlichkeiten mit dem FTDI-USB-TTL-Kabel bzw. Arduino XXX Bla Bla Bla Schnittstellenkonverter sind natürlich rein zufällig.&lt;br /&gt;
&lt;br /&gt;
Die I2C-Schnittstelle wurde auf eine Stiftleiste geführt, um z.B. einem LM75 o.ä. anschließen zu können. Damit stehen zur Kalibrierung der Thermoelemente genaue Temperaturen zur Verfügung.&lt;br /&gt;
&lt;br /&gt;
Die Stiftleisten haben alle ein Raster von 2,54mm. So können Pin-Header, Wannenstecker oder ähnliches verwendet werden.&lt;br /&gt;
&lt;br /&gt;
Da ja viele Leute eigene Vorstellungen bezüglich der Frontplattengestaltung haben, wurden auch die Taster und LEDs auf Stiftleisten geführt.&lt;br /&gt;
&lt;br /&gt;
=== Kühlkörper ===&lt;br /&gt;
Da die Triac der Steuerung für bis zu 10A pro Kanal ausgelegt sind, kann man auf die Kühlkörper nicht verzichten. Es fallen bei 10A bis zu 13Watt Wärme pro Triac ab. Falls mann auf die Kühlkörper doch verzichten möchte, sollte man darauf achten, die Triac mit dem Kopf nach unten einzubauen. Diese können sich dann bei Überlast ganz von selber auslöten.... :-)&lt;br /&gt;
&lt;br /&gt;
=== Gehäuse ===&lt;br /&gt;
Die Leiterplatte wurde für ein Gehäuse von Hammond entwickelt.&lt;br /&gt;
Das Gehäuse ist zwar keine Schönheit, aber doch recht preiswert.&lt;br /&gt;
Typenbezeichnung: RM2055M&lt;br /&gt;
&lt;br /&gt;
== Firmware PIC ==&lt;br /&gt;
Die Entwicklung der Firmware für den PIC18LF2550  geht mit MPlab 8 respektive dem C18 Compiler von Statten. MPlab ist kostenlos, der C18 Compiler bis auf die stärkste Optimierungsstufe ebenfalls. Die Quellen für die Firmware werden auch offengelegt.&lt;br /&gt;
=== Programmstruktur- und ablauf ===&lt;br /&gt;
Nach anfänglicher Initialisierung des PIC startet die Statemachine [http://http://www.mikrocontroller.net/articles/Statemachine] [http://http://de.wikipedia.org/wiki/Endlicher_Automat]. Neben ihr findet in der main-Funktion nur noch die Abfrage der beiden Bedientasten statt. Mit dem Tastendruck wird zum Zwecke der Entprellung ein Timer gestartet. Alles Andere (incl. PID-Regelung, Wellenpaket- bzw. Phasenan- und Phasenabschnittssteuerung und USB) ist interruptbasiert.&lt;br /&gt;
&lt;br /&gt;
=== Taktversorgung, Nulldurchgangserkennung und Zeitbasis ===&lt;br /&gt;
=== USB ===&lt;br /&gt;
=== SPI für MAX6675 ===&lt;br /&gt;
=== SPI für MAX31855 ===&lt;br /&gt;
&lt;br /&gt;
=== Wellenpaketsteuerung ===&lt;br /&gt;
=== Phasenanschnitt, Phasenabschnitt ===&lt;br /&gt;
=== PWM für MOSFET ===&lt;br /&gt;
&lt;br /&gt;
== PC-Software (GUI) ==&lt;br /&gt;
[[Datei:gui_alpha.png|thumb|right|300px|Screenshot der GUI (noch Alpha) für den Reflow-Ofen-Controller]]&lt;br /&gt;
&lt;br /&gt;
Die GUI (englisch Graphical User Interface) ist der Einfachheit halber in VB.net programmiert und momentan noch im Alpha-Stadium. Auch hierfür liegen die Quellen später selbstverständlich offen.&lt;br /&gt;
&lt;br /&gt;
=== Funktionen und Modi ===&lt;br /&gt;
[[Datei:modi.png|thumb|right|400px|Auswahl der beschriebenen Modi durch Klick]]&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Ofen-Profil&amp;quot;&#039;&#039;&#039; - Es wird ein Programm (Temperaturkurve) aus dem EEPROM des Reflow-Ofens ausgeführt. Der Backvorgang kann mit der Software gesteuert (START, STOP, ...) und überwacht werden. Hierzu stehen Temperatur, Temperaturänderung, Heizleistung (Ober- und Unterhitze, Lüfter) so wie die graphische Darstellung im zentralen Diagramm zur Verfügung. Eingriffsmöglichkeiten, wie das Ändern der Temperaturkurve sind nicht vorgesehen. Dies soll ein reiner Überwachungs-Modus sein. Um die Temperaturkurve zu verändern zu können, sollte der Modus &amp;quot;PC-Profil&amp;quot; verwendet werden und die Temperaturkurve aus dem EEPROM importiert werden. Dann kann Selbige auch verändert und anschließend ausgeführt bzw. verändert in den EEPROM zurückgeschrieben werden. Dieser Modus stellt ein Äquivalent zur START/STOP-Tasten-Bedienung an der Platine dar und kann selbstverständlich parallel dazu genutzt werden. Die GUI also als Addon zum Stand-Alone-Betrieb.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;PC-Profil&amp;quot;&#039;&#039;&#039; - Es wird ein Programm (Temperaturkurve) ausgeführt welche zuvor am Computer erstellt / editiert wurde. In diesem Modus gibt der Computer Temperaturwerte vor, welche live über die USB-Schnittstelle zum PIC übertragen werden und mit dem dort integrierten PID-Regler ausgeführt werden. Das ermöglicht eine on-the-fly Veränderung der Temperaturkurve während des Backvorgangs. Temperaturkurven können aus Dateien oder dem EEPROM importiert und auch wieder exportiert werden. CSV-Dateien können ebenfalls importiert und exportiert werden. Die &amp;quot;Eingabe&amp;quot; der Temperaturkurve erfolgt entweder über Import (CSV/EEPROM), per Mausklick auf dem zentralen Diagramm oder im sog. DataGridView. Weiteres siehe Unterpunkt &amp;quot;Eingabe der Temperaturkurve (Reflowprofil)&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;manueller Ablauf&amp;quot;&#039;&#039;&#039; - In diesem Modus wird (im Gegensatz zu den oberen beiden Modi &amp;quot;Ofen-Profil&amp;quot; und &amp;quot;PC-Profil&amp;quot;) keine Temperatur geregelt. Hier wird die Leistung des Ofens in % eingestellt und gesteuert. Der PID-Regler ist nicht in Aktion. Die Temperatur, Temperaturänderung so wie der Temperaturverlauf werden selbstredend angezeigt bzw. im Diagramm dargestellt. Der Modus &amp;quot;manueller Ablauf&amp;quot; fährt ähnlich dem Modus &amp;quot;PC-Profil&amp;quot; die im DataGridView eingetragenen Leistungs-Zeit-Punkte ab. Für jeden Zeitpunkt ist eine Leistung vorgegeben. Die Eingabe erfolgt ähnlich wie unter &amp;quot;Eingabe der Temperaturkurve (Reflowprofil)&amp;quot; beschrieben. Nur eben, dass eine Leistung und keine Temperatur angegeben wird. Die Eingabe der Leistung kann nicht im Zeit-Temperatur-Diagramm erfolgen sondern mittels der Schieberegler oder direkt tabellarisch.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;manueller Modus&amp;quot;&#039;&#039;&#039; - Dieser Modus enthält 2 Submodi&lt;br /&gt;
** &amp;quot;manueller Leistungsmodus&amp;quot; - Auch in diesem Modus wird die Leistung gesteuert. Es wird keine Temperatur geregelt, der PID-Regler für die Temperatur ist nicht in Betrieb. Die Einstellung hier erfolgt über die drei Schieberegler oder über eine numerische Eingabe durch Klick auf die Leistungsangabe unter dem Schieberegler. Durch Klick auf die Texte &amp;quot;TOP&amp;quot;, &amp;quot;BOTTOM&amp;quot;, &amp;quot;FAN&amp;quot; (Oberhitze, Unterhitze, Lüfter) können selbige deaktiviert bzw. aktiviert werden. Auch in diesem Modus wird Temperatur, Temperaturänderung so wie der Temperaturverlauf dargestellt.&lt;br /&gt;
** &amp;quot;manueller Temperaturmodus&amp;quot; - Hier wird die Temperatur wieder mittels des Temperatur-PIDs geregelt. Die Temperatur wird entweder mittels Schieberegler (Ober- und Unterhitze-Regler sind jetzt gekoppelt) oder durch eine numerische Eingabe unterhalb der Schieberegler vorgegeben. Anzeige wie im &amp;quot;manuellen Leistungsmodus&amp;quot;. Der Lüfter kann unabhängig vom PID in seiner Leistung geregelt werden. Ein evtl. durch den Luftstrom verursachter Temperaturabfall wird vom PID selbstverständlich ausgeregelt (aus diesem Grunde ist es ja ein Regler).&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Programmieren&amp;quot;&#039;&#039;&#039; - Hier kann ein neues &#039;&#039;&#039;Temperatur&#039;&#039;&#039;-Programm für den EEPROM-Speicher des Ofens erstellt und editiert werden. Die Eingabemöglichkeiten sind unter &amp;quot;Eingabe der Temperaturkurve (Reflowprofil)&amp;quot; beschrieben. Dieser Modus ist zum reinen Programmieren des Ofens gedacht und ermöglicht keine weitere Steuerung oder Überwachung des Ofens.&lt;br /&gt;
&lt;br /&gt;
=== Eingabe der Temperaturkurve (Reflowprofil) ===&lt;br /&gt;
[[Datei:datagridview.png|thumb|right|400px|tabellarische Anzeige und Editiermöglichkeit der Temperaturkurve]]&lt;br /&gt;
Die Eingabe der Temperaturkurve erfolgt entweder über Import (CSV/EEPROM), per Mausklick auf dem zentralen Diagramm oder im sog. DataGridView (Excel-ähnliche Bedienung in tabellarischer Form). &lt;br /&gt;
&lt;br /&gt;
* CSV-Import + Export&lt;br /&gt;
* EEPROM-Import + Export&lt;br /&gt;
* Im rechts stehenden Screenshotbeispiel wird eine tabellarische Eingabeform mit einem DataGridView gezeigt: Die Temperatur (erster Temperaturpunkt = Punkt 0) von 100°C wird linear über einen Zeitraum von 0-30s verteilt. Bei 30s hat der Ofen die Temperatur von 100°C. Dafür setzt die Regelung die Oberhitze, die Unterhitze ein. Der Lüfter ist deaktiviert. In der Zeit von 30s bis 120s wird die Temperatur nun von 100°C auf 150°C linear angehoben. Von 120s bis 180s Backzeit steigt die Temperatur von 150°C auf 250°C. Von 180s bis 200s wird die Temperatur auf 280°C angehoben. Anschließend wird sie zwischen 200s und 220s auf 280°C gehalten (280°C@200s und 280°C@220s) um dann bis 240s wieder auf 250°C zu fallen. Bis zum Zeitpunkt 300s wird dann die Temperatur 30°C angestrebt. Zusätzlich ist der Lüfter nun aktiviert (soweit der Ofen eine Umluftfunktion besitzt). Bei Punkt 7 sind Ober- und Unterhitze deaktiviert nur noch der Lüfter kühlt. Da hier bei &amp;quot;Zeit[s]&amp;quot; die 0 eingetragen wird der Zustand (hier nur Lüfter an) für einen unendlich langen Zeitraum auf 0 gehalten. Also so lange wie das Programm aktiviert ist wird der Lüfter laufen. Natürlich könnte man hier auch z.B. 100°C und Zeitpunkt 0s eintragen. Dann würde der Ofen bis zum manuellen Beenden des Programms (klick auf STOP-Button oder Drücken des START/STOP-Tasters auf der Platine/Steuerung) 100°C halten.&lt;br /&gt;
* Alle Zellen des DataGridView sind editierbar (zur Veränderung der Temperatur, Zeitpunkt, ...)&lt;br /&gt;
* Direkter Klick auf das zentrale Temperatur-Zeit-Diagramm trägt den Zeitpunkt so wie die Temperatur unter dem Mauszeiger in die Tabelle (das DataGridView) ein. Die ausgewählte Zeile wird beschrieben oder überschrieben. Neue Zeilen (also Temperatur-Zeit-Punkte) können durch klick auf den &amp;quot;Plus-Button&amp;quot; hinzugefügt werden. Ebenso ist das Löschen oder Verschieben einer oder mehrerer Zeile gleichzeitig möglich.&lt;br /&gt;
&lt;br /&gt;
=== Beschreibung der Steuerungsmöglichkeiten ===&lt;br /&gt;
In Abhängigkeit des gewählten Modus bestehen einige Steuerungs-, Einstellungs- und Kontrollmöglichkeiten:&lt;br /&gt;
* &#039;&#039;&#039;Schieberegler&#039;&#039;&#039; für Temperatur od. Leistung (je nach Modus) für Oberhitze, Unterhitze und Lüfter. Je nach Hardwareausführung. &lt;br /&gt;
** Klick auf &amp;quot;TOP&amp;quot;, &amp;quot;BOTTOM&amp;quot; oder &amp;quot;FAN&amp;quot; aktiviert oder deaktiviert die entsprechende Funktion bzw. Hardware.&lt;br /&gt;
** Numerische Eingabe der Werte für die Schieberegler durch Klick auf die Anzeige unterhalb der Schieberegler. Werte können auch im deaktivierten Zustand angegeben werden. Die Übernahme erfolgt durch den &amp;quot;Aktivierungsklick&amp;quot; auf &amp;quot;TOP&amp;quot;, &amp;quot;BOTTOM&amp;quot; oder &amp;quot;FAN&amp;quot;&lt;br /&gt;
* &#039;&#039;&#039;T1, dT1, T2, dT2&#039;&#039;&#039; - Anzeige der gemessenen Temperatur so wie die momentane Temperaturänderung am jeweiligen Sensor. &lt;br /&gt;
* &#039;&#039;&#039;Bedienbuttons&#039;&#039;&#039;&lt;br /&gt;
** Play - Startet das Programm am angegebenen Startpunkt (siehe unten)&lt;br /&gt;
** Pause - Pausiert das Programm - weitere Pauseoptionen siehe unten&lt;br /&gt;
** Stop - Stopt den Programmablauf&lt;br /&gt;
** Vor / Zurück - Springt zwischen Temperaturpunkten hin und her. Dient zum überspringen oder zurückspringen zu gewissen Temperatur-Zeit-Punkten. Ermöglicht z.B. das Überspringen eines Ablaufes der eine lange Preheat- oder Dryphase hat.&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Status&amp;quot;&#039;&#039;&#039; - zeigt den aktuellen Zustand des Programms an (READY, START, WAITING, PAUSE, ...)&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;RESET&amp;quot;&#039;&#039;&#039; - setzt das (begonnene) Programm zurück. Beinhaltet neben dem Programmablauf auch das Zurücksetzen der graphischen Anzeige des Diagramms, etc.&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Startpunkt&amp;quot;&#039;&#039;&#039; - legt den ersten Punkt des Programmablaufes fest. &lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Wiederholungen&amp;quot;&#039;&#039;&#039; - ermöglicht das wiederholte Backen ohne das Programm händisch immer wieder neu starten zu müssen. Die Anzahl der Wiederholungen ist einstellbar (0 für unendlich viele) und es ist eine Wartezeit zwischen den Wiederholungen einstellbar. Alternativ kann eine Meldung nach jedem vollendeten Backvorgang abgegeben werden. Nach Bestätigung dieser wird die nächste Wiederholung ausgeführt.&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Pause&amp;quot;&#039;&#039;&#039; - Pauseneinstellungen. Hier sind Optionen wählbar was passieren soll, falls der Pausebutton betätigt wird:&lt;br /&gt;
** Pausezeit - gibt an wie lange die Pause dauern soll [s], danach fährt das Programm automatisch gemäß des gewählten Pausemodus fort. Für eine Pause ohne automatisches Fortfahren (Countdowntimer) &#039;0&#039; angeben.&lt;br /&gt;
** Pausemodus &amp;quot;aktuelle Temperatur halten, WarmUp, Fortsetzen&amp;quot; - Ofen hält die Temperatur (Zieltemperatur) des Zeitpunktes als der Pausebutton betätigt wurde. WarmUp bedeutet, dass nach dem Beenden des Pausemodus zunächst die Zieltemperatur wieder erreicht werden &#039;&#039;&#039;muss&#039;&#039;&#039; bevor der nächste Punkt angesteuert wird. Klingt paradox, wenn die Temperatur doch so und so gehalten wird, ist aber nicht so. Die Wahrscheinlichkeit ist hoch, dass der Pausemodus benutzt wird um die Ofentüre zu öffnen und Korrekturen an der Platine vorzunehmen. Unter Umständen ist die Heizung des Ofens jedoch nicht in der Lage den dadurch entstehenden Wärmeverlust zu kompensieren. Fährt das Programm dann sofort fort, so könnten evtl. kritische (Hoch-)Punkte des Lötprofils &amp;quot;unterfahren&amp;quot; werden. Dem wirkt WarmUp entgegen.&lt;br /&gt;
** Pausemodus &amp;quot;aktuelle Temperatur halten, Fortsetzen&amp;quot; - siehe oben, nur ohne WarmUp.&lt;br /&gt;
** Pausemodus &amp;quot;definierte Temperatur halten, WarmUp, Fortsetzen&amp;quot; - siehe oben. Statt der aktuellen Zieltemperatur wird jedoch nun im Pausemodus eine einzustellende Pausetemperatur gehalten. Mit WarmUp.&lt;br /&gt;
** Pausemodus &amp;quot;definierte Temperatur halten, Fortsetzen&amp;quot; - siehe oben, nur ohne WarmUp.&lt;br /&gt;
** &amp;quot;Pausetemperatur&amp;quot; - spezielle Temperatur die bei entsprechender Pausemoduswahl für die Dauer der Pause gehalten wird.&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Ende&amp;quot;&#039;&#039;&#039; - gibt an was am Ende eines durchlaufenen Reflow-Programms passieren soll. Ist der Wiederholungsmodus aktiviert, tritt dieses Ereignis erst nach Durchlauf aller Wiederholungen ein. Folgende Modi sind möglich:&lt;br /&gt;
** automatischer Reset - am Ende des Programms wird alles automatisch zurückgesetzt, alle Graphiken und Anzeigen gelöscht.&lt;br /&gt;
** manueller Reset - am Ende des Programms bleiben alle Anzeigen, Graphiken, etc erhalten und müssen vor Beginn eines neuen Reflowvorgangs händisch durch Klick auf &amp;quot;RESET&amp;quot; zurückgesetzt werden.&lt;br /&gt;
** Benutzermeldung - lässt eine Meldung erscheinen. Alle Anzeigen und Graphiken bleiben erhalten bis der Benutzer diese Meldung bestätigt. Mit Bestätigung dieser Meldung wird ein automatischer Reset vorgenommen.&lt;br /&gt;
&lt;br /&gt;
=== Loggen des Temperaturverlaufes ===&lt;br /&gt;
Es ist möglich jeden Backvorgang in eine CSV-Datei zu loggen. (Software- und PID-Einstellungen). Geloggte CSV-Dateien können eingelesen und im zentralen Temperatur-Zeit-Diagramm begutachtet werden. Ein Ist-Soll-Vergleich ist ebenso möglich wie die direkte Anzeige des Fehlers (&amp;quot;Ist minus Soll&amp;quot;). Dank CSV können die Daten auch mit anderen Programmen (Excel, etc.) weiterverarbeitet werden.&lt;br /&gt;
&lt;br /&gt;
== Ofen / Pizzaofen ==&lt;br /&gt;
=== Leistung und Volumen ===&lt;br /&gt;
=== Dämmung ===&lt;br /&gt;
=== Umluft ===&lt;br /&gt;
=== Bezugsquellen ===&lt;br /&gt;
=== Diskussionen im Forum ===&lt;br /&gt;
* Umfangreicher Thread u.A. Leistungsvermögen, Temperaturmessung und Dämmung [http://www.mikrocontroller.net/topic/270627]&lt;br /&gt;
&lt;br /&gt;
== FAQ ==&lt;br /&gt;
&lt;br /&gt;
* Q1: Ich habe einen PT100/PT1000 und möchte den anschließen. Geht das?&lt;br /&gt;
** A1: Ja natürlich. Dazu ist aber etwas externe Elektronik notwendig. Sowohl 2 ADC-Pins (mit 3V3 Betriebsspannung als fixe Referenzspannung), als auch die UART und SPI/I2C-Schnittstelle stehen zur freien Verfügung. Für PT100/PT1000 wird für vernünftige Messungen ohnehin eine Verstärkung (meist mit OPV) von Nöten sein. Da der PIC-interne ADC &amp;quot;nur&amp;quot; 10bit Auflösung bietet sollte ein externer 16bit ADC in Betracht gezogen werden um das Potential der PT100/PT1000 auszunutzen.&lt;br /&gt;
*Q2: Ich habe von günstigen Temperaturmessungen mit Dioden gehört. Geht das auch hier?&lt;br /&gt;
**A2: Ja. Die Vorwärtsspannung einer Diode verhält sich linear zur Sperrschichttemperatur. Diese Spannung (bei 25°C einer Si-Diode die bekannten 0,7V) kann mittels OPV verstärkt werden und auf einen Spannungsbereich von 0 ... 3V3 aufgebläht werden. Eine billige Lösung, auf Kosten der Genauigkeit. Doch eine Diode ist laut Datenblatt nur bis 150°C geeignet. Es ist also beim Löten mehr oder weniger Pfusch. Wenn ich schon eine Reflow-Steuerung baue, sollte ich doch nicht an ein paar Euro für eine gescheite Temperaturmessung sparen. Einige Anregungen vom Messgerätehersteller Keithley bzgl. der Halbleiterphysik mit interessanten Formeln [http://www.keithley.de/support/data?asset=50486]. Oder natürlich der Klassiker von Thomas Pfeifer [http://thomaspfeifer.net/backofen_smd_reflow.htm]. Oder ein Beitrag mit LT-Spice Simulation zum Thema [http://www.mikrocontroller.net/topic/270627#2833883].&lt;br /&gt;
* Q: God why ... ?&lt;br /&gt;
** A: Because we can !&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Verbesserungen Prototyp ===&lt;br /&gt;
* Bauteile weiter weg von Schraublöchern&lt;br /&gt;
* Dazu Kreis rund um Bohrung auf Bestückdruck&lt;br /&gt;
* Masseanbindung Quarz&lt;br /&gt;
* Klemmen weiter weg vom Rand&lt;br /&gt;
* Klemme und Sicherungshalter weiter auseinander, damit Schutzhabe draufpasst&lt;br /&gt;
* Bohrungen für Drossel 0,2mm größer machen&lt;br /&gt;
* Teilenummer für Conrad-USB-Buchse in BOM übernehmen.&lt;br /&gt;
* Stiftleiste P1  weiter weg von P2 und P4&lt;br /&gt;
* Varistoren näher an Klemmen platzieren&lt;br /&gt;
* Bestückvarianten defineren: 1. minimal 2. Standard 3. Externe Leds und Schalter.&lt;br /&gt;
&lt;br /&gt;
=== Errata Projekt ===&lt;br /&gt;
* LED-Beschriftung passt nicht ganz (Schltplan Netlabel OUT1,2,3,4 sind durcheinander gekommen)&lt;br /&gt;
* Schaltplan UNL2003 fehlerhafte Zuordnung IN5,6,7 &amp;lt;&amp;gt; OUT7,6,5&lt;br /&gt;
* Brückengleichrichter / Optokoppler NICHT die im Schaltplan angegebenen Bestellnummern von Reichelt verwenden. BOM-Bauteile und Bestellnummern sind ok.&lt;br /&gt;
* Beim MOSFET R39 ist die Masseanbindung falsch. Es bestehen drei Möglichkeiten:&lt;br /&gt;
** 1. 0-R-Brücke für R39 einbauen und auf Strombegrenzung verzichten.&lt;br /&gt;
** 2. Eine Polyfuse mit Bauform 1206 einbauen. &lt;br /&gt;
** 3. Das kleine Leiterbahnstückchen zwischen R38 und R39 unterbrechen und statt dessen die Leiterbahn zwischen R39 und der Klemme mit der Durchkontaktierung bei R38 verbinden.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* Diskussion [http://www.mikrocontroller.net/topic/297217 Diskussion]&lt;br /&gt;
* Dextrel Nulldurchgang [http://www.dextrel.net/diyzerocrosser.htm Nulldurchgangschaltung]&lt;br /&gt;
* Gehäuse [http://www.hammondmfg.com/pdf/RM2015M.pdf Gehäuse Hammond]&lt;br /&gt;
* Bezugsquelle SOS Elektronik [http://www.soselectronic.com/?str=371&amp;amp;artnum=73595&amp;amp;name=hammond-ritec-rm2055m]&lt;br /&gt;
* Bezugsgquelle [http://www.druckerzubehoer.de/shop/product/catid/H-UNIVERSALZUBEHOER_HZB/subcatid/UNIVERSALZUBEHOER_GROUP1_HZB/productid/1727063-390722LA/site/1/lng/de_DE Mini USB Netzteil]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Projekte]]&lt;br /&gt;
[[Kategorie:PIC]]&lt;br /&gt;
[[Kategorie:PIC-Boards]]&lt;br /&gt;
[[Kategorie:Platinen]]&lt;/div&gt;</summary>
		<author><name>Frankman</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=Reflow_Ofen_Steuerung&amp;diff=76101</id>
		<title>Reflow Ofen Steuerung</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=Reflow_Ofen_Steuerung&amp;diff=76101"/>
		<updated>2013-05-29T21:15:10Z</updated>

		<summary type="html">&lt;p&gt;Frankman: /* Taster */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Datei:RFB.jpg]]&lt;br /&gt;
== Einleitung ==&lt;br /&gt;
[[Datei:pcb.png|thumb|right|400px|unbestücktes PCB der Reflow-Ofen-Steuerung]]&lt;br /&gt;
Hier wird eine weitere Reflow-Ofen-Steuerung beschrieben.&lt;br /&gt;
=== Zum Nachbauen ===&lt;br /&gt;
* Spezifikation: [[Datei: Spec Reflow.pdf]]&lt;br /&gt;
* Schaltplan: [[Datei:Reflow.pdf]]&lt;br /&gt;
* Gerberdaten: [[Datei:Gerber Reflow.pdf]]&lt;br /&gt;
* Assemblydrawing: [[Datei:Assembly Reflow.pdf]] &lt;br /&gt;
* Altium-Files: [[Datei:Reflow.zip]]&lt;br /&gt;
* Stückliste als CSV: [[Datei:Reflow.csv]]&lt;br /&gt;
* Stückliste als Open Office: [[Datei:Reflow.ods]]&lt;br /&gt;
* PC Programm: TBD&lt;br /&gt;
* Sourcen PC-Programm: TBD&lt;br /&gt;
* PIC Programm (*.hex): TBD&lt;br /&gt;
* Sourcen Pic-Programm: TBD&lt;br /&gt;
&lt;br /&gt;
=== Motivation ===&lt;br /&gt;
Die Gründe, eine weitere Steuerung zu entwerfen, waren:&lt;br /&gt;
&lt;br /&gt;
# Die Möglichkeit, auch größere Öfen mit 2 Phasen betreiben zu können.&lt;br /&gt;
# Die Steuerung universell zu gestalten. Es sollte möglich sein, diese nicht nur zum Reflow löten zu verwenden.&lt;br /&gt;
# Die Schaltung sollte in Altium entwickelt werden. (Warum kein Eagle??? Altium User wissen es.... :-)&lt;br /&gt;
# Die Schaltung sollte mit USB ausgestattet sein.&lt;br /&gt;
=== Eigenschaften &amp;amp; Spezifikationen ===&lt;br /&gt;
* Temperaturmessung: bis zu 2x &#039;&#039;&#039;Thermoelement&#039;&#039;&#039; (K-Typ) mit MAX6675 (abgekündigt) oder Nachfolger MAX31855 (pin- aber nicht softwarekompatibel)&lt;br /&gt;
* &#039;&#039;&#039;Leistungsstufen&#039;&#039;&#039;: 3x voneinander unabhängige Triac 800V bei 25A, limitiert auf &#039;&#039;&#039;10A @ 250VAC&#039;&#039;&#039; (z.B. Oberhitze, Unterhitze, Umluft)&lt;br /&gt;
* &#039;&#039;&#039;Nulldurchgangserkennung&#039;&#039;&#039; ermöglicht Wellenpaket-, Phasenan- und abschnittssteuerung, galvanische Trennung selbiger&lt;br /&gt;
* 1x &#039;&#039;&#039; MOSFET-Ausgang&#039;&#039;&#039; PWM z.B. für 12V Lüfter, max. 55V 3,5A&lt;br /&gt;
* &#039;&#039;&#039;feste Programme&#039;&#039;&#039; im EEPROM über 2-Tasterbedienung und LEDs wähl- und ausführbar. &#039;&#039;&#039;PC-unabhängiger Betrieb&#039;&#039;&#039;. Beliebig viele Programme möglich, für die Auswahl stehen 4 benutzer-konfigurierbare LEDs zur Verfügung&lt;br /&gt;
* Betrieb am Computer für mehr Reflowprofile&lt;br /&gt;
* Mini-USB-Buchse zur Steuerung / Programmierung über GUI&lt;br /&gt;
* Günstiges passendes &#039;&#039;&#039;Gehäuse&#039;&#039;&#039;, alle LEDs und Taster auf Stiftleisten herausgeführt&lt;br /&gt;
* PID-Temperaturregler&lt;br /&gt;
* UART, SPI, I2C und 2x ADC auf Stiftleisten herausgeführt (-&amp;gt; Erweiterungen)&lt;br /&gt;
* Versorgung über USB (&amp;lt; 100mA), interne Versorgungsspannung 3,3V&lt;br /&gt;
* umfangreiche EMV-gerechte Entstörung für den Bedarfsfall&lt;br /&gt;
&lt;br /&gt;
== Technische Realisierung==&lt;br /&gt;
=== PIC18LF2550 Grundbeschaltung ===&lt;br /&gt;
[[Datei:osc_vs_vcc.png|thumb|right|200px|Taktraten und Versorgungsspannung PIC18LF2550 vs. PIC18LF2550, Datenblatt S. 370/438]]&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 3/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Hier kommt ein PIC18&#039;&#039;&#039;L&#039;&#039;&#039;F2550 zum Einsatz. Er verfügt über eine USB-Schnittstelle und ist für Betriebsspannungen von 2 ... 5,5V ausgelegt. Sein Verwandter PIC18F2550 (ohne L) ist nicht für Betriebsspannungen &amp;lt; 4,2V ausgelegt. Dies ist bei USB sowiesor nicht immer erfüllt und die Thermoelement ICs vertragen ohnehin keine 5V, daher wurde die Betriebsspannung auf 3,3V reduziert. Neben Standard-Decoupling (100nF Kerko pro Vcc-Vss-Pärchen) wurde das ICSP-Interface in alt bewährter Pinbelegung (PICKit1,2,3) angebracht. PGD und PGC sind nicht weiter beschaltet, MCRL wird in Standardbeschaltung als Resetpin verwendet. Der Resetschalter findet sich auf dem Top-Sheet (Schaltplan S. 1/22). Die Taktversorgung erfolgt zwingend über einen 24 MHz Quarz (-&amp;gt; USB). Man beachte diesbezüglich rechts stehende Grafik zu Taktraten und Versorgungsspannungen (Vdd bzw. auch Vcc genannt). Auch zu finden im Datenblatt des PICs auf Seite 370.&lt;br /&gt;
&lt;br /&gt;
=== PIC18LF2550 USB Beschaltung ===&lt;br /&gt;
[[Datei:usb_part.png|thumb|right|200px|PIC18(L)F2550&lt;br /&gt;
 Standard &lt;br /&gt;
USB-Beschaltung am PIC]]&lt;br /&gt;
[[Datei:usb_protect.png|thumb|right|200px|USB-Schutzbeschaltung und Mini-USB-Buchse]]&lt;br /&gt;
&lt;br /&gt;
Die Beschaltung der USB-Schnittstelle am PIC ist 1:1 aus dem Datenblatt übernommen. Zum Einsatz kommt eine Mini-USB-Buchse (J1).&lt;br /&gt;
Der Gedanke war: Erstens ein sehr preiswertes, fertiges Netzteil verwenden zu können, (ca. 3,67 € bei druckerzubehoer.de) und zweitens, die Steuerung auch mit dem PC / Laptop versorgen zu können.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 4/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
FER1,2 und C7 filtern den Schirm nach GND. Standardmäßig wird man hier wohl 0-Ohm-Widerstände einsetzen. Falls ein Besuch im EMV-Labor geplant ist, weicht man auf den Ferrit aus. C5 und C6 filtern das Signal zusammen mit der Common-Mode-DrosselL1. Die Drossel kann mit den 0-Ohm-Brücken R8 und R9 überbrückt (gespart) werden. IC2 ist als ESD-Schutz gedacht und kann ebenfalls bei ausgeprägten Kostenbewustsein gespart werden. Die Widerstände R6 und R7 dürfen NICHT bestückt werden. FER1,2, C5, IC2 müssen nicht zwingend bestückt werden. Die Bestückung wurde vorgehalten um im Problemfall einfache Abhilfe schaffen zu können.&lt;br /&gt;
&lt;br /&gt;
=== 3,3V Spannungsversorgung ===&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 2/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Die 3,3V Versorgungsspannung für die gesamte Platine wird aus V_USB mittels des LDO Spannungsreglers TOREX - XC6206P332MR abgeleitet. Günstig, SOT-23, klein, 2x 1µF Kondensatoren benötigt, 3,3V max. 250mA. Der hat auch einen sehr kleinen Ruhestrom.&lt;br /&gt;
&lt;br /&gt;
=== Taster ===&lt;br /&gt;
*Der Resettaster zieht den MCLR-Pin nach GND und löst damit den Reset aus. MCLR ist gem. der Standardbeschaltung mit einem 10k Pullup versehen.&lt;br /&gt;
*Die übrigen beiden Taster ziehen RA4 bzw. RB5 ebenfalls nach GND.&lt;br /&gt;
&lt;br /&gt;
=== LEDs + ULN2003L ===&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 11/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Um alle LEDs auf der Platine (3x Optotriac + 7x Status) ansteuern zu können wurde auf das 7fach Darlington-Array ULN2003L zurückgegriffen. Es dient desweiteren auch als &amp;quot;MOSFET-Treiber für Arme&amp;quot;. Alle LEDs werden von diesem Transistor-Array nach Masse geschaltet. Dient der Entlastung der PIC-Ausgänge. Und kostet ja auch nicht viel.&lt;br /&gt;
&lt;br /&gt;
=== MOSFET-Leistungsausgang ===&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 22/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Hier kommt der einfacher N-Kanal MOSFET (LogicLevel) PHT8N06LT zum Einsatz. Er wird über das ULN2003L Array getrieben und ermöglicht den Anschluss eines DC-Verbrauchers mit max. 55V bei 3,5A. Hier könnte beispielsweise ein PC-Lüfter zur Kühlung od. Umluft angeschlossen und über PWM geregelt/gesteuert werden. Ein Gatewiderstand von 100 Ohm ist zum Schutz des Treibers vorgesehen. Eine 0-Ohm-Brücke ist stattdessen aber auch möglich, wenn man eine höhere Leistung schalten möchte.Die Leiterbahnen sollten die 3A schon hergeben. Der 100 Ohm Widerstand bildet eine Stromquelle. Sobald der Strom durch den MOSFET und den Widerstand 33mA erreicht, sinkt UGS gegen 0 V. Folge: Der Mosfet sperrt ( und bleibt ganz....)&lt;br /&gt;
Es kann hier prinzipiell auch ein anderer Mosfet im SOT223-Gehäuse zum Einsatz kommen. Achten sollte man darauf, das der MOSFET schon bei 3,3V Ugs gut leiten sollte.&lt;br /&gt;
&lt;br /&gt;
=== Nulldurchgangserkennung ===&lt;br /&gt;
[[Datei:zerocross.png|thumb|right|200px|Nulldurchgangserkennung]]&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 5/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Die Nulldurchgangserkennung erfolgt nach einer sehr bekannten - jedoch ausgeklügelten - Schaltung.  [http://www.dextrel.net/diyzerocrosser.htm]&lt;br /&gt;
&lt;br /&gt;
ACHTUNG: DER IM SCHALTPLAN VERZEICHNETE OPTOKOPPLER und BRÜCKENGLEICHRICHTER VON REICHELT DARF KEINESFALLS VERWENDET WERDEN! Pinbelegung! Bitte den Optokoppler aus der Stückliste nehmen!&lt;br /&gt;
&lt;br /&gt;
Während einer Halbwelle wird C14 über R33 und R35 bzw. D5 geladen. Währenddessen ist T1 gesperrt. Sobald die Wechselspannung (L1-N über Spannungsteiler (R33+R35) / R34) kleiner ist als die Spannung über C14, steuert T1 durch. Dann entlädt sich C14 über den LED-Vorwiderstand R32. Der durch-steuernde Optokoppler zieht die Sync-Leitung nach GND. (Pullup Sync-Leitung = R31). Dies löst beim PIC auf INT2 einen Interrupt aus. &lt;br /&gt;
&lt;br /&gt;
Dieser Interrupt ermöglicht eine präzise Wellenpaket-, Phasenanschnittsteuerung je nach Bedarf. Das Schalten im Nulldurchgang bei der Wellenpaketsteuerung reduziert EMV-Störungen. Für Phasenanschnitt ist prinzipbedingt ohnehin eine Nulldurchgangserkennung notwendig. Außerdem liefert sie eine völlig ausreichend genaue Zeitbasis für alle Programmabläufe.&lt;br /&gt;
&lt;br /&gt;
=== Triac-Ausgänge + Snubber ===&lt;br /&gt;
[[Datei:triac.png|thumb|right|200px|Triac-Ausgangsbeschaltung]]&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 19,20,21/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Die Ansteuerung des eigentlichen Leistungstriacs BTA140-800 erfolgt über den Optotriac IS6005. Der Strom durch Letzteren wird durch R1x limitiert (Vorwiderstand). R2x und R5x limitieren wiederum den Strom durch den Optotriac. Wenn dieser zündet so folgt unmittelbar der &amp;quot;Leistungstriac&amp;quot; der dann die Last schaltet.&lt;br /&gt;
&lt;br /&gt;
S1x ist ein Sicherungshalter um die Lasten einzeln absichern zu können. Wert 10A Mittelträge.&lt;br /&gt;
&lt;br /&gt;
R3x, R4x, C3x bilden ein Snubber-Network, L1X verhindert eine zu schnelle Stromanstiegsgeschwindikeit damit der Triac nicht &amp;quot;von selbst&amp;quot; zündet. Weglassen äußert sich meist in einem fast nicht hörbaren Click. Damit zeigt einem dann der Triac, dass er ab jetzt für immer recht niederohmig geworden ist. Die Regelung der Temperatur braucht dann nicht mehr über den Prozessor erfolgen, sondern nur noch mit dem Ein-/Ausschalter..... :-)&lt;br /&gt;
&lt;br /&gt;
=== Thermoelemente (MAX6675/MAX31855)  ===&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 6,7/22&#039;&#039;&#039;&lt;br /&gt;
Der inzwischen abgekündigte MAX6675 bzw. sein ehrenwerter Nachfolger MAX31855 sind einfach zu handhabende Thermoelement-ICs mit Kaltstellenkompensation. Thermoelemente funktionieren durch das Verschweißen zweier verschiedener Legierungen (beim K-Typ Thermoelemnt Ni und CrNi). Durch den durch die Umgebungstemperatur bedingten Wärmefluss zwischen beiden entsteht ein elektrische Spannung. Diese wird von besagten ICs verstärkt und digitalisiert (ADC). Diese Spannung / Temperatur ist natürlich wieder relativ zur Umgebungstemperatur an der Kaltstelle (Kontaktierung der beiden Drähte mit dem Messinstrument). Daher messen diese ICs auch gleich die Umgebungstemperatur (Kaltstellenkompensation genannt) mit, verrechnen das und geben das Ergebnis auf der SPI-Schnittstelle aus. MAX6675 leistet 12bit also 0,25°C Auflösung (nicht Genauigkeit!) über einen Temperaturbereich von 0°C to +1024°C. Außerdem wird ein nicht/fehlerhaft angeschlossenes Thermoelement erkannt. Der Thermocouple-IC wird an die SPI-Schnittstelle des PICs angeschlossen (hier MSSP genannt). &lt;br /&gt;
&lt;br /&gt;
MAX6675 und MAX31855 scheinen entgegen der Adafruit-Information [http://www.adafruit.com/products/269] doch pinkompatibel zu sein - die Ansteuerung unterscheidet sich jedoch definitiv. (Zitat: &amp;quot;Now uses the MAX31855K instead of the MAX6675, so it can measure a wider temperature measurement range. Please note! the MAX31855 is not pin compatible or drop-in code compatible with the MAX6675. We do have an Arduino library for both chips but you&#039;ll need to adjust any existing MAX6675 designs for the mew MAX31855. The MAX6675 has been discontinued by Maxim.&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Es wurden 2 dieser ICs und damit 2 Temperaturmessstellen vorgesehen. Dies ermöglich die Messung für eine Regelung der Temperatur so wie eine zusätzliche Überwachung kritischer Bauteile (z.B. ICs oder LEDs). Die Minimalbestückung sieht einen MAX6675/MAX31855 vor. Die Auswahl in der Firmware erfolgt über einen der beiden GPIO-Pins RA5 oder RA0 via dem ChipSelect (CS) des MAX6675/MAX31855.&lt;br /&gt;
&lt;br /&gt;
Neben dem MAX6675/MAX31855 wurde ein Decoupling-Kondensator (C8x, Standard 100nF) so wie ein weiterer im Messpfad (C9x) zur Zwecken der Entstörung vorgeshen. C9x 100nF sollte nur bestückt werden wenn Probleme bei der Temperaturmessung entstehen (z.B. unrealstisch stark schwankende Werte).&lt;br /&gt;
&lt;br /&gt;
=== ADC, SPI, UART &amp;amp; I2C Stiftleiste ===&lt;br /&gt;
ADC, SPI, UART und I2C sind zu Zwecken der Kalibrierung / Erweiterung / Einstellung / Debugging au Stiftleisten herausgeführt:&lt;br /&gt;
Ähnlichkeiten mit dem FTDI-USB-TTL-Kabel bzw. Arduino XXX Bla Bla Bla Schnittstellenkonverter sind natürlich rein zufällig.&lt;br /&gt;
&lt;br /&gt;
Die I2C-Schnittstelle wurde auf eine Stiftleiste geführt, um z.B. einem LM75 o.ä. anschließen zu können. Damit stehen zur Kalibrierung der Thermoelemente genaue Temperaturen zur Verfügung.&lt;br /&gt;
&lt;br /&gt;
Die Stiftleisten haben alle ein Raster von 2,54mm. So können Pin-Header, Wannenstecker oder ähnliches verwendet werden.&lt;br /&gt;
&lt;br /&gt;
Da ja viele Leute eigene Vorstellungen bezüglich der Frontplattengestaltung haben, wurden auch die Taster und LEDs auf Stiftleisten geführt.&lt;br /&gt;
&lt;br /&gt;
=== Kühlkörper ===&lt;br /&gt;
Da die Triac der Steuerung für bis zu 10A pro Kanal ausgelegt sind, kann man auf die Kühlkörper nicht verzichten. Es fallen bei 10A bis zu 13Watt Wärme pro Triac ab. Falls mann auf die Kühlkörper doch verzichten möchte, sollte man darauf achten, die Triac mit dem Kopf nach unten einzubauen. Diese können sich dann bei Überlast ganz von selber auslöten.... :-)&lt;br /&gt;
&lt;br /&gt;
=== Gehäuse ===&lt;br /&gt;
Die Leiterplatte wurde für ein Gehäuse von Hammond entwickelt.&lt;br /&gt;
Das Gehäuse ist zwar keine Schönheit, aber doch recht preiswert.&lt;br /&gt;
Typenbezeichnung: RM2055M&lt;br /&gt;
&lt;br /&gt;
== Firmware PIC ==&lt;br /&gt;
Die Entwicklung der Firmware für den PIC18LF2550  geht mit MPlab 8 respektive dem C18 Compiler von Statten. MPlab ist kostenlos, der C18 Compiler bis auf die stärkste Optimierungsstufe ebenfalls. Die Quellen für die Firmware werden auch offengelegt.&lt;br /&gt;
=== Programmstruktur- und ablauf ===&lt;br /&gt;
Nach anfänglicher Initialisierung des PIC startet die Statemachine [http://http://www.mikrocontroller.net/articles/Statemachine] [http://http://de.wikipedia.org/wiki/Endlicher_Automat]. Neben ihr findet in der main-Funktion nur noch die Abfrage der beiden Bedientasten statt. Mit dem Tastendruck wird zum Zwecke der Entprellung ein Timer gestartet. Alles Andere (incl. PID-Regelung, Wellenpaket- bzw. Phasenan- und Phasenabschnittssteuerung und USB) ist interruptbasiert.&lt;br /&gt;
&lt;br /&gt;
=== Taktversorgung, Nulldurchgangserkennung und Zeitbasis ===&lt;br /&gt;
=== USB ===&lt;br /&gt;
=== SPI für MAX6675 ===&lt;br /&gt;
=== SPI für MAX31855 ===&lt;br /&gt;
&lt;br /&gt;
=== Wellenpaketsteuerung ===&lt;br /&gt;
=== Phasenanschnitt, Phasenabschnitt ===&lt;br /&gt;
=== PWM für MOSFET ===&lt;br /&gt;
&lt;br /&gt;
== PC-Software (GUI) ==&lt;br /&gt;
[[Datei:gui_alpha.png|thumb|right|300px|Screenshot der GUI (noch Alpha) für den Reflow-Ofen-Controller]]&lt;br /&gt;
&lt;br /&gt;
Die GUI (englisch Graphical User Interface) ist der Einfachheit halber in VB.net programmiert und momentan noch im Alpha-Stadium. Auch hierfür liegen die Quellen später selbstverständlich offen.&lt;br /&gt;
&lt;br /&gt;
=== Funktionen und Modi ===&lt;br /&gt;
[[Datei:modi.png|thumb|right|400px|Auswahl der beschriebenen Modi durch Klick]]&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Ofen-Profil&amp;quot;&#039;&#039;&#039; - Es wird ein Programm (Temperaturkurve) aus dem EEPROM des Reflow-Ofens ausgeführt. Der Backvorgang kann mit der Software gesteuert (START, STOP, ...) und überwacht werden. Hierzu stehen Temperatur, Temperaturänderung, Heizleistung (Ober- und Unterhitze, Lüfter) so wie die graphische Darstellung im zentralen Diagramm zur Verfügung. Eingriffsmöglichkeiten, wie das Ändern der Temperaturkurve sind nicht vorgesehen. Dies soll ein reiner Überwachungs-Modus sein. Um die Temperaturkurve zu verändern zu können, sollte der Modus &amp;quot;PC-Profil&amp;quot; verwendet werden und die Temperaturkurve aus dem EEPROM importiert werden. Dann kann Selbige auch verändert und anschließend ausgeführt bzw. verändert in den EEPROM zurückgeschrieben werden. Dieser Modus stellt ein Äquivalent zur START/STOP-Tasten-Bedienung an der Platine dar und kann selbstverständlich parallel dazu genutzt werden. Die GUI also als Addon zum Stand-Alone-Betrieb.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;PC-Profil&amp;quot;&#039;&#039;&#039; - Es wird ein Programm (Temperaturkurve) ausgeführt welche zuvor am Computer erstellt / editiert wurde. In diesem Modus gibt der Computer Temperaturwerte vor, welche live über die USB-Schnittstelle zum PIC übertragen werden und mit dem dort integrierten PID-Regler ausgeführt werden. Das ermöglicht eine on-the-fly Veränderung der Temperaturkurve während des Backvorgangs. Temperaturkurven können aus Dateien oder dem EEPROM importiert und auch wieder exportiert werden. CSV-Dateien können ebenfalls importiert und exportiert werden. Die &amp;quot;Eingabe&amp;quot; der Temperaturkurve erfolgt entweder über Import (CSV/EEPROM), per Mausklick auf dem zentralen Diagramm oder im sog. DataGridView. Weiteres siehe Unterpunkt &amp;quot;Eingabe der Temperaturkurve (Reflowprofil)&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;manueller Ablauf&amp;quot;&#039;&#039;&#039; - In diesem Modus wird (im Gegensatz zu den oberen beiden Modi &amp;quot;Ofen-Profil&amp;quot; und &amp;quot;PC-Profil&amp;quot;) keine Temperatur geregelt. Hier wird die Leistung des Ofens in % eingestellt und gesteuert. Der PID-Regler ist nicht in Aktion. Die Temperatur, Temperaturänderung so wie der Temperaturverlauf werden selbstredend angezeigt bzw. im Diagramm dargestellt. Der Modus &amp;quot;manueller Ablauf&amp;quot; fährt ähnlich dem Modus &amp;quot;PC-Profil&amp;quot; die im DataGridView eingetragenen Leistungs-Zeit-Punkte ab. Für jeden Zeitpunkt ist eine Leistung vorgegeben. Die Eingabe erfolgt ähnlich wie unter &amp;quot;Eingabe der Temperaturkurve (Reflowprofil)&amp;quot; beschrieben. Nur eben, dass eine Leistung und keine Temperatur angegeben wird. Die Eingabe der Leistung kann nicht im Zeit-Temperatur-Diagramm erfolgen sondern mittels der Schieberegler oder direkt tabellarisch.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;manueller Modus&amp;quot;&#039;&#039;&#039; - Dieser Modus enthält 2 Submodi&lt;br /&gt;
** &amp;quot;manueller Leistungsmodus&amp;quot; - Auch in diesem Modus wird die Leistung gesteuert. Es wird keine Temperatur geregelt, der PID-Regler für die Temperatur ist nicht in Betrieb. Die Einstellung hier erfolgt über die drei Schieberegler oder über eine numerische Eingabe durch Klick auf die Leistungsangabe unter dem Schieberegler. Durch Klick auf die Texte &amp;quot;TOP&amp;quot;, &amp;quot;BOTTOM&amp;quot;, &amp;quot;FAN&amp;quot; (Oberhitze, Unterhitze, Lüfter) können selbige deaktiviert bzw. aktiviert werden. Auch in diesem Modus wird Temperatur, Temperaturänderung so wie der Temperaturverlauf dargestellt.&lt;br /&gt;
** &amp;quot;manueller Temperaturmodus&amp;quot; - Hier wird die Temperatur wieder mittels des Temperatur-PIDs geregelt. Die Temperatur wird entweder mittels Schieberegler (Ober- und Unterhitze-Regler sind jetzt gekoppelt) oder durch eine numerische Eingabe unterhalb der Schieberegler vorgegeben. Anzeige wie im &amp;quot;manuellen Leistungsmodus&amp;quot;. Der Lüfter kann unabhängig vom PID in seiner Leistung geregelt werden. Ein evtl. durch den Luftstrom verursachter Temperaturabfall wird vom PID selbstverständlich ausgeregelt (aus diesem Grunde ist es ja ein Regler).&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Programmieren&amp;quot;&#039;&#039;&#039; - Hier kann ein neues &#039;&#039;&#039;Temperatur&#039;&#039;&#039;-Programm für den EEPROM-Speicher des Ofens erstellt und editiert werden. Die Eingabemöglichkeiten sind unter &amp;quot;Eingabe der Temperaturkurve (Reflowprofil)&amp;quot; beschrieben. Dieser Modus ist zum reinen Programmieren des Ofens gedacht und ermöglicht keine weitere Steuerung oder Überwachung des Ofens.&lt;br /&gt;
&lt;br /&gt;
=== Eingabe der Temperaturkurve (Reflowprofil) ===&lt;br /&gt;
[[Datei:datagridview.png|thumb|right|400px|tabellarische Anzeige und Editiermöglichkeit der Temperaturkurve]]&lt;br /&gt;
Die Eingabe der Temperaturkurve erfolgt entweder über Import (CSV/EEPROM), per Mausklick auf dem zentralen Diagramm oder im sog. DataGridView (Excel-ähnliche Bedienung in tabellarischer Form). &lt;br /&gt;
&lt;br /&gt;
* CSV-Import + Export&lt;br /&gt;
* EEPROM-Import + Export&lt;br /&gt;
* Im rechts stehenden Screenshotbeispiel wird eine tabellarische Eingabeform mit einem DataGridView gezeigt: Die Temperatur (erster Temperaturpunkt = Punkt 0) von 100°C wird linear über einen Zeitraum von 0-30s verteilt. Bei 30s hat der Ofen die Temperatur von 100°C. Dafür setzt die Regelung die Oberhitze, die Unterhitze ein. Der Lüfter ist deaktiviert. In der Zeit von 30s bis 120s wird die Temperatur nun von 100°C auf 150°C linear angehoben. Von 120s bis 180s Backzeit steigt die Temperatur von 150°C auf 250°C. Von 180s bis 200s wird die Temperatur auf 280°C angehoben. Anschließend wird sie zwischen 200s und 220s auf 280°C gehalten (280°C@200s und 280°C@220s) um dann bis 240s wieder auf 250°C zu fallen. Bis zum Zeitpunkt 300s wird dann die Temperatur 30°C angestrebt. Zusätzlich ist der Lüfter nun aktiviert (soweit der Ofen eine Umluftfunktion besitzt). Bei Punkt 7 sind Ober- und Unterhitze deaktiviert nur noch der Lüfter kühlt. Da hier bei &amp;quot;Zeit[s]&amp;quot; die 0 eingetragen wird der Zustand (hier nur Lüfter an) für einen unendlich langen Zeitraum auf 0 gehalten. Also so lange wie das Programm aktiviert ist wird der Lüfter laufen. Natürlich könnte man hier auch z.B. 100°C und Zeitpunkt 0s eintragen. Dann würde der Ofen bis zum manuellen Beenden des Programms (klick auf STOP-Button oder Drücken des START/STOP-Tasters auf der Platine/Steuerung) 100°C halten.&lt;br /&gt;
* Alle Zellen des DataGridView sind editierbar (zur Veränderung der Temperatur, Zeitpunkt, ...)&lt;br /&gt;
* Direkter Klick auf das zentrale Temperatur-Zeit-Diagramm trägt den Zeitpunkt so wie die Temperatur unter dem Mauszeiger in die Tabelle (das DataGridView) ein. Die ausgewählte Zeile wird beschrieben oder überschrieben. Neue Zeilen (also Temperatur-Zeit-Punkte) können durch klick auf den &amp;quot;Plus-Button&amp;quot; hinzugefügt werden. Ebenso ist das Löschen oder Verschieben einer oder mehrerer Zeile gleichzeitig möglich.&lt;br /&gt;
&lt;br /&gt;
=== Beschreibung der Steuerungsmöglichkeiten ===&lt;br /&gt;
In Abhängigkeit des gewählten Modus bestehen einige Steuerungs-, Einstellungs- und Kontrollmöglichkeiten:&lt;br /&gt;
* &#039;&#039;&#039;Schieberegler&#039;&#039;&#039; für Temperatur od. Leistung (je nach Modus) für Oberhitze, Unterhitze und Lüfter. Je nach Hardwareausführung. &lt;br /&gt;
** Klick auf &amp;quot;TOP&amp;quot;, &amp;quot;BOTTOM&amp;quot; oder &amp;quot;FAN&amp;quot; aktiviert oder deaktiviert die entsprechende Funktion bzw. Hardware.&lt;br /&gt;
** Numerische Eingabe der Werte für die Schieberegler durch Klick auf die Anzeige unterhalb der Schieberegler. Werte können auch im deaktivierten Zustand angegeben werden. Die Übernahme erfolgt durch den &amp;quot;Aktivierungsklick&amp;quot; auf &amp;quot;TOP&amp;quot;, &amp;quot;BOTTOM&amp;quot; oder &amp;quot;FAN&amp;quot;&lt;br /&gt;
* &#039;&#039;&#039;T1, dT1, T2, dT2&#039;&#039;&#039; - Anzeige der gemessenen Temperatur so wie die momentane Temperaturänderung am jeweiligen Sensor. &lt;br /&gt;
* &#039;&#039;&#039;Bedienbuttons&#039;&#039;&#039;&lt;br /&gt;
** Play - Startet das Programm am angegebenen Startpunkt (siehe unten)&lt;br /&gt;
** Pause - Pausiert das Programm - weitere Pauseoptionen siehe unten&lt;br /&gt;
** Stop - Stopt den Programmablauf&lt;br /&gt;
** Vor / Zurück - Springt zwischen Temperaturpunkten hin und her. Dient zum überspringen oder zurückspringen zu gewissen Temperatur-Zeit-Punkten. Ermöglicht z.B. das Überspringen eines Ablaufes der eine lange Preheat- oder Dryphase hat.&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Status&amp;quot;&#039;&#039;&#039; - zeigt den aktuellen Zustand des Programms an (READY, START, WAITING, PAUSE, ...)&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;RESET&amp;quot;&#039;&#039;&#039; - setzt das (begonnene) Programm zurück. Beinhaltet neben dem Programmablauf auch das Zurücksetzen der graphischen Anzeige des Diagramms, etc.&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Startpunkt&amp;quot;&#039;&#039;&#039; - legt den ersten Punkt des Programmablaufes fest. &lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Wiederholungen&amp;quot;&#039;&#039;&#039; - ermöglicht das wiederholte Backen ohne das Programm händisch immer wieder neu starten zu müssen. Die Anzahl der Wiederholungen ist einstellbar (0 für unendlich viele) und es ist eine Wartezeit zwischen den Wiederholungen einstellbar. Alternativ kann eine Meldung nach jedem vollendeten Backvorgang abgegeben werden. Nach Bestätigung dieser wird die nächste Wiederholung ausgeführt.&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Pause&amp;quot;&#039;&#039;&#039; - Pauseneinstellungen. Hier sind Optionen wählbar was passieren soll, falls der Pausebutton betätigt wird:&lt;br /&gt;
** Pausezeit - gibt an wie lange die Pause dauern soll [s], danach fährt das Programm automatisch gemäß des gewählten Pausemodus fort. Für eine Pause ohne automatisches Fortfahren (Countdowntimer) &#039;0&#039; angeben.&lt;br /&gt;
** Pausemodus &amp;quot;aktuelle Temperatur halten, WarmUp, Fortsetzen&amp;quot; - Ofen hält die Temperatur (Zieltemperatur) des Zeitpunktes als der Pausebutton betätigt wurde. WarmUp bedeutet, dass nach dem Beenden des Pausemodus zunächst die Zieltemperatur wieder erreicht werden &#039;&#039;&#039;muss&#039;&#039;&#039; bevor der nächste Punkt angesteuert wird. Klingt paradox, wenn die Temperatur doch so und so gehalten wird, ist aber nicht so. Die Wahrscheinlichkeit ist hoch, dass der Pausemodus benutzt wird um die Ofentüre zu öffnen und Korrekturen an der Platine vorzunehmen. Unter Umständen ist die Heizung des Ofens jedoch nicht in der Lage den dadurch entstehenden Wärmeverlust zu kompensieren. Fährt das Programm dann sofort fort, so könnten evtl. kritische (Hoch-)Punkte des Lötprofils &amp;quot;unterfahren&amp;quot; werden. Dem wirkt WarmUp entgegen.&lt;br /&gt;
** Pausemodus &amp;quot;aktuelle Temperatur halten, Fortsetzen&amp;quot; - siehe oben, nur ohne WarmUp.&lt;br /&gt;
** Pausemodus &amp;quot;definierte Temperatur halten, WarmUp, Fortsetzen&amp;quot; - siehe oben. Statt der aktuellen Zieltemperatur wird jedoch nun im Pausemodus eine einzustellende Pausetemperatur gehalten. Mit WarmUp.&lt;br /&gt;
** Pausemodus &amp;quot;definierte Temperatur halten, Fortsetzen&amp;quot; - siehe oben, nur ohne WarmUp.&lt;br /&gt;
** &amp;quot;Pausetemperatur&amp;quot; - spezielle Temperatur die bei entsprechender Pausemoduswahl für die Dauer der Pause gehalten wird.&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Ende&amp;quot;&#039;&#039;&#039; - gibt an was am Ende eines durchlaufenen Reflow-Programms passieren soll. Ist der Wiederholungsmodus aktiviert, tritt dieses Ereignis erst nach Durchlauf aller Wiederholungen ein. Folgende Modi sind möglich:&lt;br /&gt;
** automatischer Reset - am Ende des Programms wird alles automatisch zurückgesetzt, alle Graphiken und Anzeigen gelöscht.&lt;br /&gt;
** manueller Reset - am Ende des Programms bleiben alle Anzeigen, Graphiken, etc erhalten und müssen vor Beginn eines neuen Reflowvorgangs händisch durch Klick auf &amp;quot;RESET&amp;quot; zurückgesetzt werden.&lt;br /&gt;
** Benutzermeldung - lässt eine Meldung erscheinen. Alle Anzeigen und Graphiken bleiben erhalten bis der Benutzer diese Meldung bestätigt. Mit Bestätigung dieser Meldung wird ein automatischer Reset vorgenommen.&lt;br /&gt;
&lt;br /&gt;
=== Loggen des Temperaturverlaufes ===&lt;br /&gt;
Es ist möglich jeden Backvorgang in eine CSV-Datei zu loggen. (Software- und PID-Einstellungen). Geloggte CSV-Dateien können eingelesen und im zentralen Temperatur-Zeit-Diagramm begutachtet werden. Ein Ist-Soll-Vergleich ist ebenso möglich wie die direkte Anzeige des Fehlers (&amp;quot;Ist minus Soll&amp;quot;). Dank CSV können die Daten auch mit anderen Programmen (Excel, etc.) weiterverarbeitet werden.&lt;br /&gt;
&lt;br /&gt;
== Ofen / Pizzaofen ==&lt;br /&gt;
=== Leistung und Volumen ===&lt;br /&gt;
=== Dämmung ===&lt;br /&gt;
=== Umluft ===&lt;br /&gt;
=== Bezugsquellen ===&lt;br /&gt;
=== Diskussionen im Forum ===&lt;br /&gt;
* Umfangreicher Thread u.A. Leistungsvermögen, Temperaturmessung und Dämmung [http://www.mikrocontroller.net/topic/270627]&lt;br /&gt;
&lt;br /&gt;
== FAQ ==&lt;br /&gt;
&lt;br /&gt;
* Q1: Ich habe einen PT100/PT1000 und möchte den anschließen. Geht das?&lt;br /&gt;
** A1: Ja natürlich. Dazu ist aber etwas externe Elektronik notwendig. Sowohl 2 ADC-Pins (mit 3V3 Betriebsspannung als fixe Referenzspannung), als auch die UART und SPI/I2C-Schnittstelle stehen zur freien Verfügung. Für PT100/PT1000 wird für vernünftige Messungen ohnehin eine Verstärkung (meist mit OPV) von Nöten sein. Da der PIC-interne ADC &amp;quot;nur&amp;quot; 10bit Auflösung bietet sollte ein externer 16bit ADC in Betracht gezogen werden um das Potential der PT100/PT1000 auszunutzen.&lt;br /&gt;
*Q2: Ich habe von günstigen Temperaturmessungen mit Dioden gehört. Geht das auch hier?&lt;br /&gt;
**A2: Ja. Die Vorwärtsspannung einer Diode verhält sich linear zur Sperrschichttemperatur. Diese Spannung (bei 25°C einer Si-Diode die bekannten 0,7V) kann mittels OPV verstärkt werden und auf einen Spannungsbereich von 0 ... 3V3 aufgebläht werden. Eine billige Lösung, auf Kosten der Genauigkeit. Doch eine Diode ist laut Datenblatt nur bis 150°C geeignet. Es ist also beim Löten mehr oder weniger Pfusch. Wenn ich schon eine Reflow-Steuerung baue, sollte ich doch nicht an ein paar Euro für eine gescheite Temperaturmessung sparen. Einige Anregungen vom Messgerätehersteller Keithley bzgl. der Halbleiterphysik mit interessanten Formeln [http://www.keithley.de/support/data?asset=50486]. Oder natürlich der Klassiker von Thomas Pfeifer [http://thomaspfeifer.net/backofen_smd_reflow.htm]. Oder ein Beitrag mit LT-Spice Simulation zum Thema [http://www.mikrocontroller.net/topic/270627#2833883].&lt;br /&gt;
* Q: God why ... ?&lt;br /&gt;
** A: Because we can !&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Verbesserungen Prototyp ===&lt;br /&gt;
* Bauteile weiter weg von Schraublöchern&lt;br /&gt;
* Dazu Kreis rund um Bohrung auf Bestückdruck&lt;br /&gt;
* Masseanbindung Quarz&lt;br /&gt;
* Klemmen weiter weg vom Rand&lt;br /&gt;
* Klemme und Sicherungshalter weiter auseinander, damit Schutzhabe draufpasst&lt;br /&gt;
* Bohrungen für Drossel 0,2mm größer machen&lt;br /&gt;
* Teilenummer für Conrad-USB-Buchse in BOM übernehmen.&lt;br /&gt;
* Stiftleiste P1  weiter weg von P2 und P4&lt;br /&gt;
* Varistoren näher an Klemmen platzieren&lt;br /&gt;
* Bestückvarianten defineren: 1. minimal 2. Standard 3. Externe Leds und Schalter.&lt;br /&gt;
&lt;br /&gt;
=== Errata Projekt ===&lt;br /&gt;
* LED-Beschriftung passt nicht ganz (Schltplan Netlabel OUT1,2,3,4 sind durcheinander gekommen)&lt;br /&gt;
* Schaltplan UNL2003 fehlerhafte Zuordnung IN5,6,7 &amp;lt;&amp;gt; OUT7,6,5&lt;br /&gt;
* Brückengleichrichter / Optokoppler NICHT die im Schaltplan angegebenen Bestellnummern von Reichelt verwenden. BOM-Bauteile und Bestellnummern sind ok.&lt;br /&gt;
* Beim MOSFET R39 ist die Masseanbindung falsch. Es bestehen drei Möglichkeiten:&lt;br /&gt;
** 1. 0-R-Brücke für R39 einbauen und auf Strombegrenzung verzichten.&lt;br /&gt;
** 2. Eine Polyfuse mit Bauform 1206 einbauen. &lt;br /&gt;
** 3. Das kleine Leiterbahnstückchen zwischen R38 und R39 unterbrechen und statt dessen die Leiterbahn zwischen R39 und der Klemme mit der Durchkontaktierung bei R38 verbinden.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* Diskussion [http://www.mikrocontroller.net/topic/297217 Diskussion]&lt;br /&gt;
* Dextrel Nulldurchgang [http://www.dextrel.net/diyzerocrosser.htm Nulldurchgangschaltung]&lt;br /&gt;
* Gehäuse [http://www.hammondmfg.com/pdf/RM2015M.pdf Gehäuse Hammond]&lt;br /&gt;
* Bezugsquelle SOS Elektronik [http://www.soselectronic.com/?str=371&amp;amp;artnum=73595&amp;amp;name=hammond-ritec-rm2055m]&lt;br /&gt;
* Bezugsgquelle [http://www.druckerzubehoer.de/shop/product/catid/H-UNIVERSALZUBEHOER_HZB/subcatid/UNIVERSALZUBEHOER_GROUP1_HZB/productid/1727063-390722LA/site/1/lng/de_DE Mini USB Netzteil]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Projekte]]&lt;br /&gt;
[[Kategorie:PIC]]&lt;br /&gt;
[[Kategorie:PIC-Boards]]&lt;br /&gt;
[[Kategorie:Platinen]]&lt;/div&gt;</summary>
		<author><name>Frankman</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=Reflow_Ofen_Steuerung&amp;diff=76100</id>
		<title>Reflow Ofen Steuerung</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=Reflow_Ofen_Steuerung&amp;diff=76100"/>
		<updated>2013-05-29T21:13:53Z</updated>

		<summary type="html">&lt;p&gt;Frankman: /* PIC18LF2550 USB Beschaltung */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Datei:RFB.jpg]]&lt;br /&gt;
== Einleitung ==&lt;br /&gt;
[[Datei:pcb.png|thumb|right|400px|unbestücktes PCB der Reflow-Ofen-Steuerung]]&lt;br /&gt;
Hier wird eine weitere Reflow-Ofen-Steuerung beschrieben.&lt;br /&gt;
=== Zum Nachbauen ===&lt;br /&gt;
* Spezifikation: [[Datei: Spec Reflow.pdf]]&lt;br /&gt;
* Schaltplan: [[Datei:Reflow.pdf]]&lt;br /&gt;
* Gerberdaten: [[Datei:Gerber Reflow.pdf]]&lt;br /&gt;
* Assemblydrawing: [[Datei:Assembly Reflow.pdf]] &lt;br /&gt;
* Altium-Files: [[Datei:Reflow.zip]]&lt;br /&gt;
* Stückliste als CSV: [[Datei:Reflow.csv]]&lt;br /&gt;
* Stückliste als Open Office: [[Datei:Reflow.ods]]&lt;br /&gt;
* PC Programm: TBD&lt;br /&gt;
* Sourcen PC-Programm: TBD&lt;br /&gt;
* PIC Programm (*.hex): TBD&lt;br /&gt;
* Sourcen Pic-Programm: TBD&lt;br /&gt;
&lt;br /&gt;
=== Motivation ===&lt;br /&gt;
Die Gründe, eine weitere Steuerung zu entwerfen, waren:&lt;br /&gt;
&lt;br /&gt;
# Die Möglichkeit, auch größere Öfen mit 2 Phasen betreiben zu können.&lt;br /&gt;
# Die Steuerung universell zu gestalten. Es sollte möglich sein, diese nicht nur zum Reflow löten zu verwenden.&lt;br /&gt;
# Die Schaltung sollte in Altium entwickelt werden. (Warum kein Eagle??? Altium User wissen es.... :-)&lt;br /&gt;
# Die Schaltung sollte mit USB ausgestattet sein.&lt;br /&gt;
=== Eigenschaften &amp;amp; Spezifikationen ===&lt;br /&gt;
* Temperaturmessung: bis zu 2x &#039;&#039;&#039;Thermoelement&#039;&#039;&#039; (K-Typ) mit MAX6675 (abgekündigt) oder Nachfolger MAX31855 (pin- aber nicht softwarekompatibel)&lt;br /&gt;
* &#039;&#039;&#039;Leistungsstufen&#039;&#039;&#039;: 3x voneinander unabhängige Triac 800V bei 25A, limitiert auf &#039;&#039;&#039;10A @ 250VAC&#039;&#039;&#039; (z.B. Oberhitze, Unterhitze, Umluft)&lt;br /&gt;
* &#039;&#039;&#039;Nulldurchgangserkennung&#039;&#039;&#039; ermöglicht Wellenpaket-, Phasenan- und abschnittssteuerung, galvanische Trennung selbiger&lt;br /&gt;
* 1x &#039;&#039;&#039; MOSFET-Ausgang&#039;&#039;&#039; PWM z.B. für 12V Lüfter, max. 55V 3,5A&lt;br /&gt;
* &#039;&#039;&#039;feste Programme&#039;&#039;&#039; im EEPROM über 2-Tasterbedienung und LEDs wähl- und ausführbar. &#039;&#039;&#039;PC-unabhängiger Betrieb&#039;&#039;&#039;. Beliebig viele Programme möglich, für die Auswahl stehen 4 benutzer-konfigurierbare LEDs zur Verfügung&lt;br /&gt;
* Betrieb am Computer für mehr Reflowprofile&lt;br /&gt;
* Mini-USB-Buchse zur Steuerung / Programmierung über GUI&lt;br /&gt;
* Günstiges passendes &#039;&#039;&#039;Gehäuse&#039;&#039;&#039;, alle LEDs und Taster auf Stiftleisten herausgeführt&lt;br /&gt;
* PID-Temperaturregler&lt;br /&gt;
* UART, SPI, I2C und 2x ADC auf Stiftleisten herausgeführt (-&amp;gt; Erweiterungen)&lt;br /&gt;
* Versorgung über USB (&amp;lt; 100mA), interne Versorgungsspannung 3,3V&lt;br /&gt;
* umfangreiche EMV-gerechte Entstörung für den Bedarfsfall&lt;br /&gt;
&lt;br /&gt;
== Technische Realisierung==&lt;br /&gt;
=== PIC18LF2550 Grundbeschaltung ===&lt;br /&gt;
[[Datei:osc_vs_vcc.png|thumb|right|200px|Taktraten und Versorgungsspannung PIC18LF2550 vs. PIC18LF2550, Datenblatt S. 370/438]]&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 3/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Hier kommt ein PIC18&#039;&#039;&#039;L&#039;&#039;&#039;F2550 zum Einsatz. Er verfügt über eine USB-Schnittstelle und ist für Betriebsspannungen von 2 ... 5,5V ausgelegt. Sein Verwandter PIC18F2550 (ohne L) ist nicht für Betriebsspannungen &amp;lt; 4,2V ausgelegt. Dies ist bei USB sowiesor nicht immer erfüllt und die Thermoelement ICs vertragen ohnehin keine 5V, daher wurde die Betriebsspannung auf 3,3V reduziert. Neben Standard-Decoupling (100nF Kerko pro Vcc-Vss-Pärchen) wurde das ICSP-Interface in alt bewährter Pinbelegung (PICKit1,2,3) angebracht. PGD und PGC sind nicht weiter beschaltet, MCRL wird in Standardbeschaltung als Resetpin verwendet. Der Resetschalter findet sich auf dem Top-Sheet (Schaltplan S. 1/22). Die Taktversorgung erfolgt zwingend über einen 24 MHz Quarz (-&amp;gt; USB). Man beachte diesbezüglich rechts stehende Grafik zu Taktraten und Versorgungsspannungen (Vdd bzw. auch Vcc genannt). Auch zu finden im Datenblatt des PICs auf Seite 370.&lt;br /&gt;
&lt;br /&gt;
=== PIC18LF2550 USB Beschaltung ===&lt;br /&gt;
[[Datei:usb_part.png|thumb|right|200px|PIC18(L)F2550&lt;br /&gt;
 Standard &lt;br /&gt;
USB-Beschaltung am PIC]]&lt;br /&gt;
[[Datei:usb_protect.png|thumb|right|200px|USB-Schutzbeschaltung und Mini-USB-Buchse]]&lt;br /&gt;
&lt;br /&gt;
Die Beschaltung der USB-Schnittstelle am PIC ist 1:1 aus dem Datenblatt übernommen. Zum Einsatz kommt eine Mini-USB-Buchse (J1).&lt;br /&gt;
Der Gedanke war: Erstens ein sehr preiswertes, fertiges Netzteil verwenden zu können, (ca. 3,67 € bei druckerzubehoer.de) und zweitens, die Steuerung auch mit dem PC / Laptop versorgen zu können.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 4/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
FER1,2 und C7 filtern den Schirm nach GND. Standardmäßig wird man hier wohl 0-Ohm-Widerstände einsetzen. Falls ein Besuch im EMV-Labor geplant ist, weicht man auf den Ferrit aus. C5 und C6 filtern das Signal zusammen mit der Common-Mode-DrosselL1. Die Drossel kann mit den 0-Ohm-Brücken R8 und R9 überbrückt (gespart) werden. IC2 ist als ESD-Schutz gedacht und kann ebenfalls bei ausgeprägten Kostenbewustsein gespart werden. Die Widerstände R6 und R7 dürfen NICHT bestückt werden. FER1,2, C5, IC2 müssen nicht zwingend bestückt werden. Die Bestückung wurde vorgehalten um im Problemfall einfache Abhilfe schaffen zu können.&lt;br /&gt;
&lt;br /&gt;
=== 3,3V Spannungsversorgung ===&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 2/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Die 3,3V Versorgungsspannung für die gesamte Platine wird aus V_USB mittels des LDO Spannungsreglers TOREX - XC6206P332MR abgeleitet. Günstig, SOT-23, klein, 2x 1µF Kondensatoren benötigt, 3,3V max. 250mA. Der hat auch einen sehr kleinen Ruhestrom.&lt;br /&gt;
&lt;br /&gt;
=== Taster ===&lt;br /&gt;
*Der Resettaster zieht den MCLR-Pin nach GND und löst damit den Reset aus. MCLR ist gem. der Standartbeschaltung mit einem 10k Pullup versehen.&lt;br /&gt;
*Die übrigen beiden Taster ziehen RA4 bzw. RB5 ebenfalls nach GND.&lt;br /&gt;
&lt;br /&gt;
=== LEDs + ULN2003L ===&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 11/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Um alle LEDs auf der Platine (3x Optotriac + 7x Status) ansteuern zu können wurde auf das 7fach Darlington-Array ULN2003L zurückgegriffen. Es dient desweiteren auch als &amp;quot;MOSFET-Treiber für Arme&amp;quot;. Alle LEDs werden von diesem Transistor-Array nach Masse geschaltet. Dient der Entlastung der PIC-Ausgänge. Und kostet ja auch nicht viel.&lt;br /&gt;
&lt;br /&gt;
=== MOSFET-Leistungsausgang ===&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 22/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Hier kommt der einfacher N-Kanal MOSFET (LogicLevel) PHT8N06LT zum Einsatz. Er wird über das ULN2003L Array getrieben und ermöglicht den Anschluss eines DC-Verbrauchers mit max. 55V bei 3,5A. Hier könnte beispielsweise ein PC-Lüfter zur Kühlung od. Umluft angeschlossen und über PWM geregelt/gesteuert werden. Ein Gatewiderstand von 100 Ohm ist zum Schutz des Treibers vorgesehen. Eine 0-Ohm-Brücke ist stattdessen aber auch möglich, wenn man eine höhere Leistung schalten möchte.Die Leiterbahnen sollten die 3A schon hergeben. Der 100 Ohm Widerstand bildet eine Stromquelle. Sobald der Strom durch den MOSFET und den Widerstand 33mA erreicht, sinkt UGS gegen 0 V. Folge: Der Mosfet sperrt ( und bleibt ganz....)&lt;br /&gt;
Es kann hier prinzipiell auch ein anderer Mosfet im SOT223-Gehäuse zum Einsatz kommen. Achten sollte man darauf, das der MOSFET schon bei 3,3V Ugs gut leiten sollte.&lt;br /&gt;
&lt;br /&gt;
=== Nulldurchgangserkennung ===&lt;br /&gt;
[[Datei:zerocross.png|thumb|right|200px|Nulldurchgangserkennung]]&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 5/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Die Nulldurchgangserkennung erfolgt nach einer sehr bekannten - jedoch ausgeklügelten - Schaltung.  [http://www.dextrel.net/diyzerocrosser.htm]&lt;br /&gt;
&lt;br /&gt;
ACHTUNG: DER IM SCHALTPLAN VERZEICHNETE OPTOKOPPLER und BRÜCKENGLEICHRICHTER VON REICHELT DARF KEINESFALLS VERWENDET WERDEN! Pinbelegung! Bitte den Optokoppler aus der Stückliste nehmen!&lt;br /&gt;
&lt;br /&gt;
Während einer Halbwelle wird C14 über R33 und R35 bzw. D5 geladen. Währenddessen ist T1 gesperrt. Sobald die Wechselspannung (L1-N über Spannungsteiler (R33+R35) / R34) kleiner ist als die Spannung über C14, steuert T1 durch. Dann entlädt sich C14 über den LED-Vorwiderstand R32. Der durch-steuernde Optokoppler zieht die Sync-Leitung nach GND. (Pullup Sync-Leitung = R31). Dies löst beim PIC auf INT2 einen Interrupt aus. &lt;br /&gt;
&lt;br /&gt;
Dieser Interrupt ermöglicht eine präzise Wellenpaket-, Phasenanschnittsteuerung je nach Bedarf. Das Schalten im Nulldurchgang bei der Wellenpaketsteuerung reduziert EMV-Störungen. Für Phasenanschnitt ist prinzipbedingt ohnehin eine Nulldurchgangserkennung notwendig. Außerdem liefert sie eine völlig ausreichend genaue Zeitbasis für alle Programmabläufe.&lt;br /&gt;
&lt;br /&gt;
=== Triac-Ausgänge + Snubber ===&lt;br /&gt;
[[Datei:triac.png|thumb|right|200px|Triac-Ausgangsbeschaltung]]&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 19,20,21/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Die Ansteuerung des eigentlichen Leistungstriacs BTA140-800 erfolgt über den Optotriac IS6005. Der Strom durch Letzteren wird durch R1x limitiert (Vorwiderstand). R2x und R5x limitieren wiederum den Strom durch den Optotriac. Wenn dieser zündet so folgt unmittelbar der &amp;quot;Leistungstriac&amp;quot; der dann die Last schaltet.&lt;br /&gt;
&lt;br /&gt;
S1x ist ein Sicherungshalter um die Lasten einzeln absichern zu können. Wert 10A Mittelträge.&lt;br /&gt;
&lt;br /&gt;
R3x, R4x, C3x bilden ein Snubber-Network, L1X verhindert eine zu schnelle Stromanstiegsgeschwindikeit damit der Triac nicht &amp;quot;von selbst&amp;quot; zündet. Weglassen äußert sich meist in einem fast nicht hörbaren Click. Damit zeigt einem dann der Triac, dass er ab jetzt für immer recht niederohmig geworden ist. Die Regelung der Temperatur braucht dann nicht mehr über den Prozessor erfolgen, sondern nur noch mit dem Ein-/Ausschalter..... :-)&lt;br /&gt;
&lt;br /&gt;
=== Thermoelemente (MAX6675/MAX31855)  ===&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 6,7/22&#039;&#039;&#039;&lt;br /&gt;
Der inzwischen abgekündigte MAX6675 bzw. sein ehrenwerter Nachfolger MAX31855 sind einfach zu handhabende Thermoelement-ICs mit Kaltstellenkompensation. Thermoelemente funktionieren durch das Verschweißen zweier verschiedener Legierungen (beim K-Typ Thermoelemnt Ni und CrNi). Durch den durch die Umgebungstemperatur bedingten Wärmefluss zwischen beiden entsteht ein elektrische Spannung. Diese wird von besagten ICs verstärkt und digitalisiert (ADC). Diese Spannung / Temperatur ist natürlich wieder relativ zur Umgebungstemperatur an der Kaltstelle (Kontaktierung der beiden Drähte mit dem Messinstrument). Daher messen diese ICs auch gleich die Umgebungstemperatur (Kaltstellenkompensation genannt) mit, verrechnen das und geben das Ergebnis auf der SPI-Schnittstelle aus. MAX6675 leistet 12bit also 0,25°C Auflösung (nicht Genauigkeit!) über einen Temperaturbereich von 0°C to +1024°C. Außerdem wird ein nicht/fehlerhaft angeschlossenes Thermoelement erkannt. Der Thermocouple-IC wird an die SPI-Schnittstelle des PICs angeschlossen (hier MSSP genannt). &lt;br /&gt;
&lt;br /&gt;
MAX6675 und MAX31855 scheinen entgegen der Adafruit-Information [http://www.adafruit.com/products/269] doch pinkompatibel zu sein - die Ansteuerung unterscheidet sich jedoch definitiv. (Zitat: &amp;quot;Now uses the MAX31855K instead of the MAX6675, so it can measure a wider temperature measurement range. Please note! the MAX31855 is not pin compatible or drop-in code compatible with the MAX6675. We do have an Arduino library for both chips but you&#039;ll need to adjust any existing MAX6675 designs for the mew MAX31855. The MAX6675 has been discontinued by Maxim.&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Es wurden 2 dieser ICs und damit 2 Temperaturmessstellen vorgesehen. Dies ermöglich die Messung für eine Regelung der Temperatur so wie eine zusätzliche Überwachung kritischer Bauteile (z.B. ICs oder LEDs). Die Minimalbestückung sieht einen MAX6675/MAX31855 vor. Die Auswahl in der Firmware erfolgt über einen der beiden GPIO-Pins RA5 oder RA0 via dem ChipSelect (CS) des MAX6675/MAX31855.&lt;br /&gt;
&lt;br /&gt;
Neben dem MAX6675/MAX31855 wurde ein Decoupling-Kondensator (C8x, Standard 100nF) so wie ein weiterer im Messpfad (C9x) zur Zwecken der Entstörung vorgeshen. C9x 100nF sollte nur bestückt werden wenn Probleme bei der Temperaturmessung entstehen (z.B. unrealstisch stark schwankende Werte).&lt;br /&gt;
&lt;br /&gt;
=== ADC, SPI, UART &amp;amp; I2C Stiftleiste ===&lt;br /&gt;
ADC, SPI, UART und I2C sind zu Zwecken der Kalibrierung / Erweiterung / Einstellung / Debugging au Stiftleisten herausgeführt:&lt;br /&gt;
Ähnlichkeiten mit dem FTDI-USB-TTL-Kabel bzw. Arduino XXX Bla Bla Bla Schnittstellenkonverter sind natürlich rein zufällig.&lt;br /&gt;
&lt;br /&gt;
Die I2C-Schnittstelle wurde auf eine Stiftleiste geführt, um z.B. einem LM75 o.ä. anschließen zu können. Damit stehen zur Kalibrierung der Thermoelemente genaue Temperaturen zur Verfügung.&lt;br /&gt;
&lt;br /&gt;
Die Stiftleisten haben alle ein Raster von 2,54mm. So können Pin-Header, Wannenstecker oder ähnliches verwendet werden.&lt;br /&gt;
&lt;br /&gt;
Da ja viele Leute eigene Vorstellungen bezüglich der Frontplattengestaltung haben, wurden auch die Taster und LEDs auf Stiftleisten geführt.&lt;br /&gt;
&lt;br /&gt;
=== Kühlkörper ===&lt;br /&gt;
Da die Triac der Steuerung für bis zu 10A pro Kanal ausgelegt sind, kann man auf die Kühlkörper nicht verzichten. Es fallen bei 10A bis zu 13Watt Wärme pro Triac ab. Falls mann auf die Kühlkörper doch verzichten möchte, sollte man darauf achten, die Triac mit dem Kopf nach unten einzubauen. Diese können sich dann bei Überlast ganz von selber auslöten.... :-)&lt;br /&gt;
&lt;br /&gt;
=== Gehäuse ===&lt;br /&gt;
Die Leiterplatte wurde für ein Gehäuse von Hammond entwickelt.&lt;br /&gt;
Das Gehäuse ist zwar keine Schönheit, aber doch recht preiswert.&lt;br /&gt;
Typenbezeichnung: RM2055M&lt;br /&gt;
&lt;br /&gt;
== Firmware PIC ==&lt;br /&gt;
Die Entwicklung der Firmware für den PIC18LF2550  geht mit MPlab 8 respektive dem C18 Compiler von Statten. MPlab ist kostenlos, der C18 Compiler bis auf die stärkste Optimierungsstufe ebenfalls. Die Quellen für die Firmware werden auch offengelegt.&lt;br /&gt;
=== Programmstruktur- und ablauf ===&lt;br /&gt;
Nach anfänglicher Initialisierung des PIC startet die Statemachine [http://http://www.mikrocontroller.net/articles/Statemachine] [http://http://de.wikipedia.org/wiki/Endlicher_Automat]. Neben ihr findet in der main-Funktion nur noch die Abfrage der beiden Bedientasten statt. Mit dem Tastendruck wird zum Zwecke der Entprellung ein Timer gestartet. Alles Andere (incl. PID-Regelung, Wellenpaket- bzw. Phasenan- und Phasenabschnittssteuerung und USB) ist interruptbasiert.&lt;br /&gt;
&lt;br /&gt;
=== Taktversorgung, Nulldurchgangserkennung und Zeitbasis ===&lt;br /&gt;
=== USB ===&lt;br /&gt;
=== SPI für MAX6675 ===&lt;br /&gt;
=== SPI für MAX31855 ===&lt;br /&gt;
&lt;br /&gt;
=== Wellenpaketsteuerung ===&lt;br /&gt;
=== Phasenanschnitt, Phasenabschnitt ===&lt;br /&gt;
=== PWM für MOSFET ===&lt;br /&gt;
&lt;br /&gt;
== PC-Software (GUI) ==&lt;br /&gt;
[[Datei:gui_alpha.png|thumb|right|300px|Screenshot der GUI (noch Alpha) für den Reflow-Ofen-Controller]]&lt;br /&gt;
&lt;br /&gt;
Die GUI (englisch Graphical User Interface) ist der Einfachheit halber in VB.net programmiert und momentan noch im Alpha-Stadium. Auch hierfür liegen die Quellen später selbstverständlich offen.&lt;br /&gt;
&lt;br /&gt;
=== Funktionen und Modi ===&lt;br /&gt;
[[Datei:modi.png|thumb|right|400px|Auswahl der beschriebenen Modi durch Klick]]&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Ofen-Profil&amp;quot;&#039;&#039;&#039; - Es wird ein Programm (Temperaturkurve) aus dem EEPROM des Reflow-Ofens ausgeführt. Der Backvorgang kann mit der Software gesteuert (START, STOP, ...) und überwacht werden. Hierzu stehen Temperatur, Temperaturänderung, Heizleistung (Ober- und Unterhitze, Lüfter) so wie die graphische Darstellung im zentralen Diagramm zur Verfügung. Eingriffsmöglichkeiten, wie das Ändern der Temperaturkurve sind nicht vorgesehen. Dies soll ein reiner Überwachungs-Modus sein. Um die Temperaturkurve zu verändern zu können, sollte der Modus &amp;quot;PC-Profil&amp;quot; verwendet werden und die Temperaturkurve aus dem EEPROM importiert werden. Dann kann Selbige auch verändert und anschließend ausgeführt bzw. verändert in den EEPROM zurückgeschrieben werden. Dieser Modus stellt ein Äquivalent zur START/STOP-Tasten-Bedienung an der Platine dar und kann selbstverständlich parallel dazu genutzt werden. Die GUI also als Addon zum Stand-Alone-Betrieb.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;PC-Profil&amp;quot;&#039;&#039;&#039; - Es wird ein Programm (Temperaturkurve) ausgeführt welche zuvor am Computer erstellt / editiert wurde. In diesem Modus gibt der Computer Temperaturwerte vor, welche live über die USB-Schnittstelle zum PIC übertragen werden und mit dem dort integrierten PID-Regler ausgeführt werden. Das ermöglicht eine on-the-fly Veränderung der Temperaturkurve während des Backvorgangs. Temperaturkurven können aus Dateien oder dem EEPROM importiert und auch wieder exportiert werden. CSV-Dateien können ebenfalls importiert und exportiert werden. Die &amp;quot;Eingabe&amp;quot; der Temperaturkurve erfolgt entweder über Import (CSV/EEPROM), per Mausklick auf dem zentralen Diagramm oder im sog. DataGridView. Weiteres siehe Unterpunkt &amp;quot;Eingabe der Temperaturkurve (Reflowprofil)&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;manueller Ablauf&amp;quot;&#039;&#039;&#039; - In diesem Modus wird (im Gegensatz zu den oberen beiden Modi &amp;quot;Ofen-Profil&amp;quot; und &amp;quot;PC-Profil&amp;quot;) keine Temperatur geregelt. Hier wird die Leistung des Ofens in % eingestellt und gesteuert. Der PID-Regler ist nicht in Aktion. Die Temperatur, Temperaturänderung so wie der Temperaturverlauf werden selbstredend angezeigt bzw. im Diagramm dargestellt. Der Modus &amp;quot;manueller Ablauf&amp;quot; fährt ähnlich dem Modus &amp;quot;PC-Profil&amp;quot; die im DataGridView eingetragenen Leistungs-Zeit-Punkte ab. Für jeden Zeitpunkt ist eine Leistung vorgegeben. Die Eingabe erfolgt ähnlich wie unter &amp;quot;Eingabe der Temperaturkurve (Reflowprofil)&amp;quot; beschrieben. Nur eben, dass eine Leistung und keine Temperatur angegeben wird. Die Eingabe der Leistung kann nicht im Zeit-Temperatur-Diagramm erfolgen sondern mittels der Schieberegler oder direkt tabellarisch.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;manueller Modus&amp;quot;&#039;&#039;&#039; - Dieser Modus enthält 2 Submodi&lt;br /&gt;
** &amp;quot;manueller Leistungsmodus&amp;quot; - Auch in diesem Modus wird die Leistung gesteuert. Es wird keine Temperatur geregelt, der PID-Regler für die Temperatur ist nicht in Betrieb. Die Einstellung hier erfolgt über die drei Schieberegler oder über eine numerische Eingabe durch Klick auf die Leistungsangabe unter dem Schieberegler. Durch Klick auf die Texte &amp;quot;TOP&amp;quot;, &amp;quot;BOTTOM&amp;quot;, &amp;quot;FAN&amp;quot; (Oberhitze, Unterhitze, Lüfter) können selbige deaktiviert bzw. aktiviert werden. Auch in diesem Modus wird Temperatur, Temperaturänderung so wie der Temperaturverlauf dargestellt.&lt;br /&gt;
** &amp;quot;manueller Temperaturmodus&amp;quot; - Hier wird die Temperatur wieder mittels des Temperatur-PIDs geregelt. Die Temperatur wird entweder mittels Schieberegler (Ober- und Unterhitze-Regler sind jetzt gekoppelt) oder durch eine numerische Eingabe unterhalb der Schieberegler vorgegeben. Anzeige wie im &amp;quot;manuellen Leistungsmodus&amp;quot;. Der Lüfter kann unabhängig vom PID in seiner Leistung geregelt werden. Ein evtl. durch den Luftstrom verursachter Temperaturabfall wird vom PID selbstverständlich ausgeregelt (aus diesem Grunde ist es ja ein Regler).&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Programmieren&amp;quot;&#039;&#039;&#039; - Hier kann ein neues &#039;&#039;&#039;Temperatur&#039;&#039;&#039;-Programm für den EEPROM-Speicher des Ofens erstellt und editiert werden. Die Eingabemöglichkeiten sind unter &amp;quot;Eingabe der Temperaturkurve (Reflowprofil)&amp;quot; beschrieben. Dieser Modus ist zum reinen Programmieren des Ofens gedacht und ermöglicht keine weitere Steuerung oder Überwachung des Ofens.&lt;br /&gt;
&lt;br /&gt;
=== Eingabe der Temperaturkurve (Reflowprofil) ===&lt;br /&gt;
[[Datei:datagridview.png|thumb|right|400px|tabellarische Anzeige und Editiermöglichkeit der Temperaturkurve]]&lt;br /&gt;
Die Eingabe der Temperaturkurve erfolgt entweder über Import (CSV/EEPROM), per Mausklick auf dem zentralen Diagramm oder im sog. DataGridView (Excel-ähnliche Bedienung in tabellarischer Form). &lt;br /&gt;
&lt;br /&gt;
* CSV-Import + Export&lt;br /&gt;
* EEPROM-Import + Export&lt;br /&gt;
* Im rechts stehenden Screenshotbeispiel wird eine tabellarische Eingabeform mit einem DataGridView gezeigt: Die Temperatur (erster Temperaturpunkt = Punkt 0) von 100°C wird linear über einen Zeitraum von 0-30s verteilt. Bei 30s hat der Ofen die Temperatur von 100°C. Dafür setzt die Regelung die Oberhitze, die Unterhitze ein. Der Lüfter ist deaktiviert. In der Zeit von 30s bis 120s wird die Temperatur nun von 100°C auf 150°C linear angehoben. Von 120s bis 180s Backzeit steigt die Temperatur von 150°C auf 250°C. Von 180s bis 200s wird die Temperatur auf 280°C angehoben. Anschließend wird sie zwischen 200s und 220s auf 280°C gehalten (280°C@200s und 280°C@220s) um dann bis 240s wieder auf 250°C zu fallen. Bis zum Zeitpunkt 300s wird dann die Temperatur 30°C angestrebt. Zusätzlich ist der Lüfter nun aktiviert (soweit der Ofen eine Umluftfunktion besitzt). Bei Punkt 7 sind Ober- und Unterhitze deaktiviert nur noch der Lüfter kühlt. Da hier bei &amp;quot;Zeit[s]&amp;quot; die 0 eingetragen wird der Zustand (hier nur Lüfter an) für einen unendlich langen Zeitraum auf 0 gehalten. Also so lange wie das Programm aktiviert ist wird der Lüfter laufen. Natürlich könnte man hier auch z.B. 100°C und Zeitpunkt 0s eintragen. Dann würde der Ofen bis zum manuellen Beenden des Programms (klick auf STOP-Button oder Drücken des START/STOP-Tasters auf der Platine/Steuerung) 100°C halten.&lt;br /&gt;
* Alle Zellen des DataGridView sind editierbar (zur Veränderung der Temperatur, Zeitpunkt, ...)&lt;br /&gt;
* Direkter Klick auf das zentrale Temperatur-Zeit-Diagramm trägt den Zeitpunkt so wie die Temperatur unter dem Mauszeiger in die Tabelle (das DataGridView) ein. Die ausgewählte Zeile wird beschrieben oder überschrieben. Neue Zeilen (also Temperatur-Zeit-Punkte) können durch klick auf den &amp;quot;Plus-Button&amp;quot; hinzugefügt werden. Ebenso ist das Löschen oder Verschieben einer oder mehrerer Zeile gleichzeitig möglich.&lt;br /&gt;
&lt;br /&gt;
=== Beschreibung der Steuerungsmöglichkeiten ===&lt;br /&gt;
In Abhängigkeit des gewählten Modus bestehen einige Steuerungs-, Einstellungs- und Kontrollmöglichkeiten:&lt;br /&gt;
* &#039;&#039;&#039;Schieberegler&#039;&#039;&#039; für Temperatur od. Leistung (je nach Modus) für Oberhitze, Unterhitze und Lüfter. Je nach Hardwareausführung. &lt;br /&gt;
** Klick auf &amp;quot;TOP&amp;quot;, &amp;quot;BOTTOM&amp;quot; oder &amp;quot;FAN&amp;quot; aktiviert oder deaktiviert die entsprechende Funktion bzw. Hardware.&lt;br /&gt;
** Numerische Eingabe der Werte für die Schieberegler durch Klick auf die Anzeige unterhalb der Schieberegler. Werte können auch im deaktivierten Zustand angegeben werden. Die Übernahme erfolgt durch den &amp;quot;Aktivierungsklick&amp;quot; auf &amp;quot;TOP&amp;quot;, &amp;quot;BOTTOM&amp;quot; oder &amp;quot;FAN&amp;quot;&lt;br /&gt;
* &#039;&#039;&#039;T1, dT1, T2, dT2&#039;&#039;&#039; - Anzeige der gemessenen Temperatur so wie die momentane Temperaturänderung am jeweiligen Sensor. &lt;br /&gt;
* &#039;&#039;&#039;Bedienbuttons&#039;&#039;&#039;&lt;br /&gt;
** Play - Startet das Programm am angegebenen Startpunkt (siehe unten)&lt;br /&gt;
** Pause - Pausiert das Programm - weitere Pauseoptionen siehe unten&lt;br /&gt;
** Stop - Stopt den Programmablauf&lt;br /&gt;
** Vor / Zurück - Springt zwischen Temperaturpunkten hin und her. Dient zum überspringen oder zurückspringen zu gewissen Temperatur-Zeit-Punkten. Ermöglicht z.B. das Überspringen eines Ablaufes der eine lange Preheat- oder Dryphase hat.&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Status&amp;quot;&#039;&#039;&#039; - zeigt den aktuellen Zustand des Programms an (READY, START, WAITING, PAUSE, ...)&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;RESET&amp;quot;&#039;&#039;&#039; - setzt das (begonnene) Programm zurück. Beinhaltet neben dem Programmablauf auch das Zurücksetzen der graphischen Anzeige des Diagramms, etc.&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Startpunkt&amp;quot;&#039;&#039;&#039; - legt den ersten Punkt des Programmablaufes fest. &lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Wiederholungen&amp;quot;&#039;&#039;&#039; - ermöglicht das wiederholte Backen ohne das Programm händisch immer wieder neu starten zu müssen. Die Anzahl der Wiederholungen ist einstellbar (0 für unendlich viele) und es ist eine Wartezeit zwischen den Wiederholungen einstellbar. Alternativ kann eine Meldung nach jedem vollendeten Backvorgang abgegeben werden. Nach Bestätigung dieser wird die nächste Wiederholung ausgeführt.&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Pause&amp;quot;&#039;&#039;&#039; - Pauseneinstellungen. Hier sind Optionen wählbar was passieren soll, falls der Pausebutton betätigt wird:&lt;br /&gt;
** Pausezeit - gibt an wie lange die Pause dauern soll [s], danach fährt das Programm automatisch gemäß des gewählten Pausemodus fort. Für eine Pause ohne automatisches Fortfahren (Countdowntimer) &#039;0&#039; angeben.&lt;br /&gt;
** Pausemodus &amp;quot;aktuelle Temperatur halten, WarmUp, Fortsetzen&amp;quot; - Ofen hält die Temperatur (Zieltemperatur) des Zeitpunktes als der Pausebutton betätigt wurde. WarmUp bedeutet, dass nach dem Beenden des Pausemodus zunächst die Zieltemperatur wieder erreicht werden &#039;&#039;&#039;muss&#039;&#039;&#039; bevor der nächste Punkt angesteuert wird. Klingt paradox, wenn die Temperatur doch so und so gehalten wird, ist aber nicht so. Die Wahrscheinlichkeit ist hoch, dass der Pausemodus benutzt wird um die Ofentüre zu öffnen und Korrekturen an der Platine vorzunehmen. Unter Umständen ist die Heizung des Ofens jedoch nicht in der Lage den dadurch entstehenden Wärmeverlust zu kompensieren. Fährt das Programm dann sofort fort, so könnten evtl. kritische (Hoch-)Punkte des Lötprofils &amp;quot;unterfahren&amp;quot; werden. Dem wirkt WarmUp entgegen.&lt;br /&gt;
** Pausemodus &amp;quot;aktuelle Temperatur halten, Fortsetzen&amp;quot; - siehe oben, nur ohne WarmUp.&lt;br /&gt;
** Pausemodus &amp;quot;definierte Temperatur halten, WarmUp, Fortsetzen&amp;quot; - siehe oben. Statt der aktuellen Zieltemperatur wird jedoch nun im Pausemodus eine einzustellende Pausetemperatur gehalten. Mit WarmUp.&lt;br /&gt;
** Pausemodus &amp;quot;definierte Temperatur halten, Fortsetzen&amp;quot; - siehe oben, nur ohne WarmUp.&lt;br /&gt;
** &amp;quot;Pausetemperatur&amp;quot; - spezielle Temperatur die bei entsprechender Pausemoduswahl für die Dauer der Pause gehalten wird.&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Ende&amp;quot;&#039;&#039;&#039; - gibt an was am Ende eines durchlaufenen Reflow-Programms passieren soll. Ist der Wiederholungsmodus aktiviert, tritt dieses Ereignis erst nach Durchlauf aller Wiederholungen ein. Folgende Modi sind möglich:&lt;br /&gt;
** automatischer Reset - am Ende des Programms wird alles automatisch zurückgesetzt, alle Graphiken und Anzeigen gelöscht.&lt;br /&gt;
** manueller Reset - am Ende des Programms bleiben alle Anzeigen, Graphiken, etc erhalten und müssen vor Beginn eines neuen Reflowvorgangs händisch durch Klick auf &amp;quot;RESET&amp;quot; zurückgesetzt werden.&lt;br /&gt;
** Benutzermeldung - lässt eine Meldung erscheinen. Alle Anzeigen und Graphiken bleiben erhalten bis der Benutzer diese Meldung bestätigt. Mit Bestätigung dieser Meldung wird ein automatischer Reset vorgenommen.&lt;br /&gt;
&lt;br /&gt;
=== Loggen des Temperaturverlaufes ===&lt;br /&gt;
Es ist möglich jeden Backvorgang in eine CSV-Datei zu loggen. (Software- und PID-Einstellungen). Geloggte CSV-Dateien können eingelesen und im zentralen Temperatur-Zeit-Diagramm begutachtet werden. Ein Ist-Soll-Vergleich ist ebenso möglich wie die direkte Anzeige des Fehlers (&amp;quot;Ist minus Soll&amp;quot;). Dank CSV können die Daten auch mit anderen Programmen (Excel, etc.) weiterverarbeitet werden.&lt;br /&gt;
&lt;br /&gt;
== Ofen / Pizzaofen ==&lt;br /&gt;
=== Leistung und Volumen ===&lt;br /&gt;
=== Dämmung ===&lt;br /&gt;
=== Umluft ===&lt;br /&gt;
=== Bezugsquellen ===&lt;br /&gt;
=== Diskussionen im Forum ===&lt;br /&gt;
* Umfangreicher Thread u.A. Leistungsvermögen, Temperaturmessung und Dämmung [http://www.mikrocontroller.net/topic/270627]&lt;br /&gt;
&lt;br /&gt;
== FAQ ==&lt;br /&gt;
&lt;br /&gt;
* Q1: Ich habe einen PT100/PT1000 und möchte den anschließen. Geht das?&lt;br /&gt;
** A1: Ja natürlich. Dazu ist aber etwas externe Elektronik notwendig. Sowohl 2 ADC-Pins (mit 3V3 Betriebsspannung als fixe Referenzspannung), als auch die UART und SPI/I2C-Schnittstelle stehen zur freien Verfügung. Für PT100/PT1000 wird für vernünftige Messungen ohnehin eine Verstärkung (meist mit OPV) von Nöten sein. Da der PIC-interne ADC &amp;quot;nur&amp;quot; 10bit Auflösung bietet sollte ein externer 16bit ADC in Betracht gezogen werden um das Potential der PT100/PT1000 auszunutzen.&lt;br /&gt;
*Q2: Ich habe von günstigen Temperaturmessungen mit Dioden gehört. Geht das auch hier?&lt;br /&gt;
**A2: Ja. Die Vorwärtsspannung einer Diode verhält sich linear zur Sperrschichttemperatur. Diese Spannung (bei 25°C einer Si-Diode die bekannten 0,7V) kann mittels OPV verstärkt werden und auf einen Spannungsbereich von 0 ... 3V3 aufgebläht werden. Eine billige Lösung, auf Kosten der Genauigkeit. Doch eine Diode ist laut Datenblatt nur bis 150°C geeignet. Es ist also beim Löten mehr oder weniger Pfusch. Wenn ich schon eine Reflow-Steuerung baue, sollte ich doch nicht an ein paar Euro für eine gescheite Temperaturmessung sparen. Einige Anregungen vom Messgerätehersteller Keithley bzgl. der Halbleiterphysik mit interessanten Formeln [http://www.keithley.de/support/data?asset=50486]. Oder natürlich der Klassiker von Thomas Pfeifer [http://thomaspfeifer.net/backofen_smd_reflow.htm]. Oder ein Beitrag mit LT-Spice Simulation zum Thema [http://www.mikrocontroller.net/topic/270627#2833883].&lt;br /&gt;
* Q: God why ... ?&lt;br /&gt;
** A: Because we can !&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Verbesserungen Prototyp ===&lt;br /&gt;
* Bauteile weiter weg von Schraublöchern&lt;br /&gt;
* Dazu Kreis rund um Bohrung auf Bestückdruck&lt;br /&gt;
* Masseanbindung Quarz&lt;br /&gt;
* Klemmen weiter weg vom Rand&lt;br /&gt;
* Klemme und Sicherungshalter weiter auseinander, damit Schutzhabe draufpasst&lt;br /&gt;
* Bohrungen für Drossel 0,2mm größer machen&lt;br /&gt;
* Teilenummer für Conrad-USB-Buchse in BOM übernehmen.&lt;br /&gt;
* Stiftleiste P1  weiter weg von P2 und P4&lt;br /&gt;
* Varistoren näher an Klemmen platzieren&lt;br /&gt;
* Bestückvarianten defineren: 1. minimal 2. Standard 3. Externe Leds und Schalter.&lt;br /&gt;
&lt;br /&gt;
=== Errata Projekt ===&lt;br /&gt;
* LED-Beschriftung passt nicht ganz (Schltplan Netlabel OUT1,2,3,4 sind durcheinander gekommen)&lt;br /&gt;
* Schaltplan UNL2003 fehlerhafte Zuordnung IN5,6,7 &amp;lt;&amp;gt; OUT7,6,5&lt;br /&gt;
* Brückengleichrichter / Optokoppler NICHT die im Schaltplan angegebenen Bestellnummern von Reichelt verwenden. BOM-Bauteile und Bestellnummern sind ok.&lt;br /&gt;
* Beim MOSFET R39 ist die Masseanbindung falsch. Es bestehen drei Möglichkeiten:&lt;br /&gt;
** 1. 0-R-Brücke für R39 einbauen und auf Strombegrenzung verzichten.&lt;br /&gt;
** 2. Eine Polyfuse mit Bauform 1206 einbauen. &lt;br /&gt;
** 3. Das kleine Leiterbahnstückchen zwischen R38 und R39 unterbrechen und statt dessen die Leiterbahn zwischen R39 und der Klemme mit der Durchkontaktierung bei R38 verbinden.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* Diskussion [http://www.mikrocontroller.net/topic/297217 Diskussion]&lt;br /&gt;
* Dextrel Nulldurchgang [http://www.dextrel.net/diyzerocrosser.htm Nulldurchgangschaltung]&lt;br /&gt;
* Gehäuse [http://www.hammondmfg.com/pdf/RM2015M.pdf Gehäuse Hammond]&lt;br /&gt;
* Bezugsquelle SOS Elektronik [http://www.soselectronic.com/?str=371&amp;amp;artnum=73595&amp;amp;name=hammond-ritec-rm2055m]&lt;br /&gt;
* Bezugsgquelle [http://www.druckerzubehoer.de/shop/product/catid/H-UNIVERSALZUBEHOER_HZB/subcatid/UNIVERSALZUBEHOER_GROUP1_HZB/productid/1727063-390722LA/site/1/lng/de_DE Mini USB Netzteil]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Projekte]]&lt;br /&gt;
[[Kategorie:PIC]]&lt;br /&gt;
[[Kategorie:PIC-Boards]]&lt;br /&gt;
[[Kategorie:Platinen]]&lt;/div&gt;</summary>
		<author><name>Frankman</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=Reflow_Ofen_Steuerung&amp;diff=76099</id>
		<title>Reflow Ofen Steuerung</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=Reflow_Ofen_Steuerung&amp;diff=76099"/>
		<updated>2013-05-29T21:11:15Z</updated>

		<summary type="html">&lt;p&gt;Frankman: /* Eingabe der Temperaturkurve (Reflowprofil) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Datei:RFB.jpg]]&lt;br /&gt;
== Einleitung ==&lt;br /&gt;
[[Datei:pcb.png|thumb|right|400px|unbestücktes PCB der Reflow-Ofen-Steuerung]]&lt;br /&gt;
Hier wird eine weitere Reflow-Ofen-Steuerung beschrieben.&lt;br /&gt;
=== Zum Nachbauen ===&lt;br /&gt;
* Spezifikation: [[Datei: Spec Reflow.pdf]]&lt;br /&gt;
* Schaltplan: [[Datei:Reflow.pdf]]&lt;br /&gt;
* Gerberdaten: [[Datei:Gerber Reflow.pdf]]&lt;br /&gt;
* Assemblydrawing: [[Datei:Assembly Reflow.pdf]] &lt;br /&gt;
* Altium-Files: [[Datei:Reflow.zip]]&lt;br /&gt;
* Stückliste als CSV: [[Datei:Reflow.csv]]&lt;br /&gt;
* Stückliste als Open Office: [[Datei:Reflow.ods]]&lt;br /&gt;
* PC Programm: TBD&lt;br /&gt;
* Sourcen PC-Programm: TBD&lt;br /&gt;
* PIC Programm (*.hex): TBD&lt;br /&gt;
* Sourcen Pic-Programm: TBD&lt;br /&gt;
&lt;br /&gt;
=== Motivation ===&lt;br /&gt;
Die Gründe, eine weitere Steuerung zu entwerfen, waren:&lt;br /&gt;
&lt;br /&gt;
# Die Möglichkeit, auch größere Öfen mit 2 Phasen betreiben zu können.&lt;br /&gt;
# Die Steuerung universell zu gestalten. Es sollte möglich sein, diese nicht nur zum Reflow löten zu verwenden.&lt;br /&gt;
# Die Schaltung sollte in Altium entwickelt werden. (Warum kein Eagle??? Altium User wissen es.... :-)&lt;br /&gt;
# Die Schaltung sollte mit USB ausgestattet sein.&lt;br /&gt;
=== Eigenschaften &amp;amp; Spezifikationen ===&lt;br /&gt;
* Temperaturmessung: bis zu 2x &#039;&#039;&#039;Thermoelement&#039;&#039;&#039; (K-Typ) mit MAX6675 (abgekündigt) oder Nachfolger MAX31855 (pin- aber nicht softwarekompatibel)&lt;br /&gt;
* &#039;&#039;&#039;Leistungsstufen&#039;&#039;&#039;: 3x voneinander unabhängige Triac 800V bei 25A, limitiert auf &#039;&#039;&#039;10A @ 250VAC&#039;&#039;&#039; (z.B. Oberhitze, Unterhitze, Umluft)&lt;br /&gt;
* &#039;&#039;&#039;Nulldurchgangserkennung&#039;&#039;&#039; ermöglicht Wellenpaket-, Phasenan- und abschnittssteuerung, galvanische Trennung selbiger&lt;br /&gt;
* 1x &#039;&#039;&#039; MOSFET-Ausgang&#039;&#039;&#039; PWM z.B. für 12V Lüfter, max. 55V 3,5A&lt;br /&gt;
* &#039;&#039;&#039;feste Programme&#039;&#039;&#039; im EEPROM über 2-Tasterbedienung und LEDs wähl- und ausführbar. &#039;&#039;&#039;PC-unabhängiger Betrieb&#039;&#039;&#039;. Beliebig viele Programme möglich, für die Auswahl stehen 4 benutzer-konfigurierbare LEDs zur Verfügung&lt;br /&gt;
* Betrieb am Computer für mehr Reflowprofile&lt;br /&gt;
* Mini-USB-Buchse zur Steuerung / Programmierung über GUI&lt;br /&gt;
* Günstiges passendes &#039;&#039;&#039;Gehäuse&#039;&#039;&#039;, alle LEDs und Taster auf Stiftleisten herausgeführt&lt;br /&gt;
* PID-Temperaturregler&lt;br /&gt;
* UART, SPI, I2C und 2x ADC auf Stiftleisten herausgeführt (-&amp;gt; Erweiterungen)&lt;br /&gt;
* Versorgung über USB (&amp;lt; 100mA), interne Versorgungsspannung 3,3V&lt;br /&gt;
* umfangreiche EMV-gerechte Entstörung für den Bedarfsfall&lt;br /&gt;
&lt;br /&gt;
== Technische Realisierung==&lt;br /&gt;
=== PIC18LF2550 Grundbeschaltung ===&lt;br /&gt;
[[Datei:osc_vs_vcc.png|thumb|right|200px|Taktraten und Versorgungsspannung PIC18LF2550 vs. PIC18LF2550, Datenblatt S. 370/438]]&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 3/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Hier kommt ein PIC18&#039;&#039;&#039;L&#039;&#039;&#039;F2550 zum Einsatz. Er verfügt über eine USB-Schnittstelle und ist für Betriebsspannungen von 2 ... 5,5V ausgelegt. Sein Verwandter PIC18F2550 (ohne L) ist nicht für Betriebsspannungen &amp;lt; 4,2V ausgelegt. Dies ist bei USB sowiesor nicht immer erfüllt und die Thermoelement ICs vertragen ohnehin keine 5V, daher wurde die Betriebsspannung auf 3,3V reduziert. Neben Standard-Decoupling (100nF Kerko pro Vcc-Vss-Pärchen) wurde das ICSP-Interface in alt bewährter Pinbelegung (PICKit1,2,3) angebracht. PGD und PGC sind nicht weiter beschaltet, MCRL wird in Standardbeschaltung als Resetpin verwendet. Der Resetschalter findet sich auf dem Top-Sheet (Schaltplan S. 1/22). Die Taktversorgung erfolgt zwingend über einen 24 MHz Quarz (-&amp;gt; USB). Man beachte diesbezüglich rechts stehende Grafik zu Taktraten und Versorgungsspannungen (Vdd bzw. auch Vcc genannt). Auch zu finden im Datenblatt des PICs auf Seite 370.&lt;br /&gt;
&lt;br /&gt;
=== PIC18LF2550 USB Beschaltung ===&lt;br /&gt;
[[Datei:usb_part.png|thumb|right|200px|PIC18(L)F2455/2550/4455/4550 Standard &lt;br /&gt;
USB-Beschaltung am PIC]]&lt;br /&gt;
[[Datei:usb_protect.png|thumb|right|200px|USB-Schutzbeschaltung und Mini-USB-Buchse]]&lt;br /&gt;
&lt;br /&gt;
Die Beschaltung der USB-Schnittstelle am PIC ist 1:1 aus dem Datenblatt übernommen. Zum Einsatz kommt eine Mini-USB-Buchse (J1).&lt;br /&gt;
Der Gedanke war: Erstens ein sehr preiswertes, fertiges Netzteil verwenden zu können, (ca. 3,60 € bei druckerzubehoer.de) und zweitens, die Steuerung auch mit dem PC / Laptop versorgen zu können.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 4/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
FER1,2 und C7 filtern den Schirm nach GND. Standardmäßig wird man hier wohl 0-Ohm-Widerstände einsetzen. Falls ein Besuch im EMV-Labor geplant ist, weicht man auf den Ferrit aus. C5 und C6 filtern das Signal zusammen mit der Common-Mode-DrosselL1. Die Drossel kann mit den 0-Ohm-Brücken R8 und R9 überbrückt (gespart) werden. IC2 ist als ESD-Schutz gedacht und kann ebenfalls bei ausgeprägten Kostenbewustsein gespart werden. Die Widerstände R6 und R7 dürfen NICHT bestückt werden. FER1,2, C5, IC2 müssen nicht zwingend bestückt werden. Die Bestückung wurde vorgehalten um im Problemfall einfache Abhilfe schaffen zu können.&lt;br /&gt;
&lt;br /&gt;
=== 3,3V Spannungsversorgung ===&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 2/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Die 3,3V Versorgungsspannung für die gesamte Platine wird aus V_USB mittels des LDO Spannungsreglers TOREX - XC6206P332MR abgeleitet. Günstig, SOT-23, klein, 2x 1µF Kondensatoren benötigt, 3,3V max. 250mA. Der hat auch einen sehr kleinen Ruhestrom.&lt;br /&gt;
&lt;br /&gt;
=== Taster ===&lt;br /&gt;
*Der Resettaster zieht den MCLR-Pin nach GND und löst damit den Reset aus. MCLR ist gem. der Standartbeschaltung mit einem 10k Pullup versehen.&lt;br /&gt;
*Die übrigen beiden Taster ziehen RA4 bzw. RB5 ebenfalls nach GND.&lt;br /&gt;
&lt;br /&gt;
=== LEDs + ULN2003L ===&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 11/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Um alle LEDs auf der Platine (3x Optotriac + 7x Status) ansteuern zu können wurde auf das 7fach Darlington-Array ULN2003L zurückgegriffen. Es dient desweiteren auch als &amp;quot;MOSFET-Treiber für Arme&amp;quot;. Alle LEDs werden von diesem Transistor-Array nach Masse geschaltet. Dient der Entlastung der PIC-Ausgänge. Und kostet ja auch nicht viel.&lt;br /&gt;
&lt;br /&gt;
=== MOSFET-Leistungsausgang ===&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 22/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Hier kommt der einfacher N-Kanal MOSFET (LogicLevel) PHT8N06LT zum Einsatz. Er wird über das ULN2003L Array getrieben und ermöglicht den Anschluss eines DC-Verbrauchers mit max. 55V bei 3,5A. Hier könnte beispielsweise ein PC-Lüfter zur Kühlung od. Umluft angeschlossen und über PWM geregelt/gesteuert werden. Ein Gatewiderstand von 100 Ohm ist zum Schutz des Treibers vorgesehen. Eine 0-Ohm-Brücke ist stattdessen aber auch möglich, wenn man eine höhere Leistung schalten möchte.Die Leiterbahnen sollten die 3A schon hergeben. Der 100 Ohm Widerstand bildet eine Stromquelle. Sobald der Strom durch den MOSFET und den Widerstand 33mA erreicht, sinkt UGS gegen 0 V. Folge: Der Mosfet sperrt ( und bleibt ganz....)&lt;br /&gt;
Es kann hier prinzipiell auch ein anderer Mosfet im SOT223-Gehäuse zum Einsatz kommen. Achten sollte man darauf, das der MOSFET schon bei 3,3V Ugs gut leiten sollte.&lt;br /&gt;
&lt;br /&gt;
=== Nulldurchgangserkennung ===&lt;br /&gt;
[[Datei:zerocross.png|thumb|right|200px|Nulldurchgangserkennung]]&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 5/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Die Nulldurchgangserkennung erfolgt nach einer sehr bekannten - jedoch ausgeklügelten - Schaltung.  [http://www.dextrel.net/diyzerocrosser.htm]&lt;br /&gt;
&lt;br /&gt;
ACHTUNG: DER IM SCHALTPLAN VERZEICHNETE OPTOKOPPLER und BRÜCKENGLEICHRICHTER VON REICHELT DARF KEINESFALLS VERWENDET WERDEN! Pinbelegung! Bitte den Optokoppler aus der Stückliste nehmen!&lt;br /&gt;
&lt;br /&gt;
Während einer Halbwelle wird C14 über R33 und R35 bzw. D5 geladen. Währenddessen ist T1 gesperrt. Sobald die Wechselspannung (L1-N über Spannungsteiler (R33+R35) / R34) kleiner ist als die Spannung über C14, steuert T1 durch. Dann entlädt sich C14 über den LED-Vorwiderstand R32. Der durch-steuernde Optokoppler zieht die Sync-Leitung nach GND. (Pullup Sync-Leitung = R31). Dies löst beim PIC auf INT2 einen Interrupt aus. &lt;br /&gt;
&lt;br /&gt;
Dieser Interrupt ermöglicht eine präzise Wellenpaket-, Phasenanschnittsteuerung je nach Bedarf. Das Schalten im Nulldurchgang bei der Wellenpaketsteuerung reduziert EMV-Störungen. Für Phasenanschnitt ist prinzipbedingt ohnehin eine Nulldurchgangserkennung notwendig. Außerdem liefert sie eine völlig ausreichend genaue Zeitbasis für alle Programmabläufe.&lt;br /&gt;
&lt;br /&gt;
=== Triac-Ausgänge + Snubber ===&lt;br /&gt;
[[Datei:triac.png|thumb|right|200px|Triac-Ausgangsbeschaltung]]&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 19,20,21/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Die Ansteuerung des eigentlichen Leistungstriacs BTA140-800 erfolgt über den Optotriac IS6005. Der Strom durch Letzteren wird durch R1x limitiert (Vorwiderstand). R2x und R5x limitieren wiederum den Strom durch den Optotriac. Wenn dieser zündet so folgt unmittelbar der &amp;quot;Leistungstriac&amp;quot; der dann die Last schaltet.&lt;br /&gt;
&lt;br /&gt;
S1x ist ein Sicherungshalter um die Lasten einzeln absichern zu können. Wert 10A Mittelträge.&lt;br /&gt;
&lt;br /&gt;
R3x, R4x, C3x bilden ein Snubber-Network, L1X verhindert eine zu schnelle Stromanstiegsgeschwindikeit damit der Triac nicht &amp;quot;von selbst&amp;quot; zündet. Weglassen äußert sich meist in einem fast nicht hörbaren Click. Damit zeigt einem dann der Triac, dass er ab jetzt für immer recht niederohmig geworden ist. Die Regelung der Temperatur braucht dann nicht mehr über den Prozessor erfolgen, sondern nur noch mit dem Ein-/Ausschalter..... :-)&lt;br /&gt;
&lt;br /&gt;
=== Thermoelemente (MAX6675/MAX31855)  ===&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 6,7/22&#039;&#039;&#039;&lt;br /&gt;
Der inzwischen abgekündigte MAX6675 bzw. sein ehrenwerter Nachfolger MAX31855 sind einfach zu handhabende Thermoelement-ICs mit Kaltstellenkompensation. Thermoelemente funktionieren durch das Verschweißen zweier verschiedener Legierungen (beim K-Typ Thermoelemnt Ni und CrNi). Durch den durch die Umgebungstemperatur bedingten Wärmefluss zwischen beiden entsteht ein elektrische Spannung. Diese wird von besagten ICs verstärkt und digitalisiert (ADC). Diese Spannung / Temperatur ist natürlich wieder relativ zur Umgebungstemperatur an der Kaltstelle (Kontaktierung der beiden Drähte mit dem Messinstrument). Daher messen diese ICs auch gleich die Umgebungstemperatur (Kaltstellenkompensation genannt) mit, verrechnen das und geben das Ergebnis auf der SPI-Schnittstelle aus. MAX6675 leistet 12bit also 0,25°C Auflösung (nicht Genauigkeit!) über einen Temperaturbereich von 0°C to +1024°C. Außerdem wird ein nicht/fehlerhaft angeschlossenes Thermoelement erkannt. Der Thermocouple-IC wird an die SPI-Schnittstelle des PICs angeschlossen (hier MSSP genannt). &lt;br /&gt;
&lt;br /&gt;
MAX6675 und MAX31855 scheinen entgegen der Adafruit-Information [http://www.adafruit.com/products/269] doch pinkompatibel zu sein - die Ansteuerung unterscheidet sich jedoch definitiv. (Zitat: &amp;quot;Now uses the MAX31855K instead of the MAX6675, so it can measure a wider temperature measurement range. Please note! the MAX31855 is not pin compatible or drop-in code compatible with the MAX6675. We do have an Arduino library for both chips but you&#039;ll need to adjust any existing MAX6675 designs for the mew MAX31855. The MAX6675 has been discontinued by Maxim.&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Es wurden 2 dieser ICs und damit 2 Temperaturmessstellen vorgesehen. Dies ermöglich die Messung für eine Regelung der Temperatur so wie eine zusätzliche Überwachung kritischer Bauteile (z.B. ICs oder LEDs). Die Minimalbestückung sieht einen MAX6675/MAX31855 vor. Die Auswahl in der Firmware erfolgt über einen der beiden GPIO-Pins RA5 oder RA0 via dem ChipSelect (CS) des MAX6675/MAX31855.&lt;br /&gt;
&lt;br /&gt;
Neben dem MAX6675/MAX31855 wurde ein Decoupling-Kondensator (C8x, Standard 100nF) so wie ein weiterer im Messpfad (C9x) zur Zwecken der Entstörung vorgeshen. C9x 100nF sollte nur bestückt werden wenn Probleme bei der Temperaturmessung entstehen (z.B. unrealstisch stark schwankende Werte).&lt;br /&gt;
&lt;br /&gt;
=== ADC, SPI, UART &amp;amp; I2C Stiftleiste ===&lt;br /&gt;
ADC, SPI, UART und I2C sind zu Zwecken der Kalibrierung / Erweiterung / Einstellung / Debugging au Stiftleisten herausgeführt:&lt;br /&gt;
Ähnlichkeiten mit dem FTDI-USB-TTL-Kabel bzw. Arduino XXX Bla Bla Bla Schnittstellenkonverter sind natürlich rein zufällig.&lt;br /&gt;
&lt;br /&gt;
Die I2C-Schnittstelle wurde auf eine Stiftleiste geführt, um z.B. einem LM75 o.ä. anschließen zu können. Damit stehen zur Kalibrierung der Thermoelemente genaue Temperaturen zur Verfügung.&lt;br /&gt;
&lt;br /&gt;
Die Stiftleisten haben alle ein Raster von 2,54mm. So können Pin-Header, Wannenstecker oder ähnliches verwendet werden.&lt;br /&gt;
&lt;br /&gt;
Da ja viele Leute eigene Vorstellungen bezüglich der Frontplattengestaltung haben, wurden auch die Taster und LEDs auf Stiftleisten geführt.&lt;br /&gt;
&lt;br /&gt;
=== Kühlkörper ===&lt;br /&gt;
Da die Triac der Steuerung für bis zu 10A pro Kanal ausgelegt sind, kann man auf die Kühlkörper nicht verzichten. Es fallen bei 10A bis zu 13Watt Wärme pro Triac ab. Falls mann auf die Kühlkörper doch verzichten möchte, sollte man darauf achten, die Triac mit dem Kopf nach unten einzubauen. Diese können sich dann bei Überlast ganz von selber auslöten.... :-)&lt;br /&gt;
&lt;br /&gt;
=== Gehäuse ===&lt;br /&gt;
Die Leiterplatte wurde für ein Gehäuse von Hammond entwickelt.&lt;br /&gt;
Das Gehäuse ist zwar keine Schönheit, aber doch recht preiswert.&lt;br /&gt;
Typenbezeichnung: RM2055M&lt;br /&gt;
&lt;br /&gt;
== Firmware PIC ==&lt;br /&gt;
Die Entwicklung der Firmware für den PIC18LF2550  geht mit MPlab 8 respektive dem C18 Compiler von Statten. MPlab ist kostenlos, der C18 Compiler bis auf die stärkste Optimierungsstufe ebenfalls. Die Quellen für die Firmware werden auch offengelegt.&lt;br /&gt;
=== Programmstruktur- und ablauf ===&lt;br /&gt;
Nach anfänglicher Initialisierung des PIC startet die Statemachine [http://http://www.mikrocontroller.net/articles/Statemachine] [http://http://de.wikipedia.org/wiki/Endlicher_Automat]. Neben ihr findet in der main-Funktion nur noch die Abfrage der beiden Bedientasten statt. Mit dem Tastendruck wird zum Zwecke der Entprellung ein Timer gestartet. Alles Andere (incl. PID-Regelung, Wellenpaket- bzw. Phasenan- und Phasenabschnittssteuerung und USB) ist interruptbasiert.&lt;br /&gt;
&lt;br /&gt;
=== Taktversorgung, Nulldurchgangserkennung und Zeitbasis ===&lt;br /&gt;
=== USB ===&lt;br /&gt;
=== SPI für MAX6675 ===&lt;br /&gt;
=== SPI für MAX31855 ===&lt;br /&gt;
&lt;br /&gt;
=== Wellenpaketsteuerung ===&lt;br /&gt;
=== Phasenanschnitt, Phasenabschnitt ===&lt;br /&gt;
=== PWM für MOSFET ===&lt;br /&gt;
&lt;br /&gt;
== PC-Software (GUI) ==&lt;br /&gt;
[[Datei:gui_alpha.png|thumb|right|300px|Screenshot der GUI (noch Alpha) für den Reflow-Ofen-Controller]]&lt;br /&gt;
&lt;br /&gt;
Die GUI (englisch Graphical User Interface) ist der Einfachheit halber in VB.net programmiert und momentan noch im Alpha-Stadium. Auch hierfür liegen die Quellen später selbstverständlich offen.&lt;br /&gt;
&lt;br /&gt;
=== Funktionen und Modi ===&lt;br /&gt;
[[Datei:modi.png|thumb|right|400px|Auswahl der beschriebenen Modi durch Klick]]&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Ofen-Profil&amp;quot;&#039;&#039;&#039; - Es wird ein Programm (Temperaturkurve) aus dem EEPROM des Reflow-Ofens ausgeführt. Der Backvorgang kann mit der Software gesteuert (START, STOP, ...) und überwacht werden. Hierzu stehen Temperatur, Temperaturänderung, Heizleistung (Ober- und Unterhitze, Lüfter) so wie die graphische Darstellung im zentralen Diagramm zur Verfügung. Eingriffsmöglichkeiten, wie das Ändern der Temperaturkurve sind nicht vorgesehen. Dies soll ein reiner Überwachungs-Modus sein. Um die Temperaturkurve zu verändern zu können, sollte der Modus &amp;quot;PC-Profil&amp;quot; verwendet werden und die Temperaturkurve aus dem EEPROM importiert werden. Dann kann Selbige auch verändert und anschließend ausgeführt bzw. verändert in den EEPROM zurückgeschrieben werden. Dieser Modus stellt ein Äquivalent zur START/STOP-Tasten-Bedienung an der Platine dar und kann selbstverständlich parallel dazu genutzt werden. Die GUI also als Addon zum Stand-Alone-Betrieb.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;PC-Profil&amp;quot;&#039;&#039;&#039; - Es wird ein Programm (Temperaturkurve) ausgeführt welche zuvor am Computer erstellt / editiert wurde. In diesem Modus gibt der Computer Temperaturwerte vor, welche live über die USB-Schnittstelle zum PIC übertragen werden und mit dem dort integrierten PID-Regler ausgeführt werden. Das ermöglicht eine on-the-fly Veränderung der Temperaturkurve während des Backvorgangs. Temperaturkurven können aus Dateien oder dem EEPROM importiert und auch wieder exportiert werden. CSV-Dateien können ebenfalls importiert und exportiert werden. Die &amp;quot;Eingabe&amp;quot; der Temperaturkurve erfolgt entweder über Import (CSV/EEPROM), per Mausklick auf dem zentralen Diagramm oder im sog. DataGridView. Weiteres siehe Unterpunkt &amp;quot;Eingabe der Temperaturkurve (Reflowprofil)&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;manueller Ablauf&amp;quot;&#039;&#039;&#039; - In diesem Modus wird (im Gegensatz zu den oberen beiden Modi &amp;quot;Ofen-Profil&amp;quot; und &amp;quot;PC-Profil&amp;quot;) keine Temperatur geregelt. Hier wird die Leistung des Ofens in % eingestellt und gesteuert. Der PID-Regler ist nicht in Aktion. Die Temperatur, Temperaturänderung so wie der Temperaturverlauf werden selbstredend angezeigt bzw. im Diagramm dargestellt. Der Modus &amp;quot;manueller Ablauf&amp;quot; fährt ähnlich dem Modus &amp;quot;PC-Profil&amp;quot; die im DataGridView eingetragenen Leistungs-Zeit-Punkte ab. Für jeden Zeitpunkt ist eine Leistung vorgegeben. Die Eingabe erfolgt ähnlich wie unter &amp;quot;Eingabe der Temperaturkurve (Reflowprofil)&amp;quot; beschrieben. Nur eben, dass eine Leistung und keine Temperatur angegeben wird. Die Eingabe der Leistung kann nicht im Zeit-Temperatur-Diagramm erfolgen sondern mittels der Schieberegler oder direkt tabellarisch.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;manueller Modus&amp;quot;&#039;&#039;&#039; - Dieser Modus enthält 2 Submodi&lt;br /&gt;
** &amp;quot;manueller Leistungsmodus&amp;quot; - Auch in diesem Modus wird die Leistung gesteuert. Es wird keine Temperatur geregelt, der PID-Regler für die Temperatur ist nicht in Betrieb. Die Einstellung hier erfolgt über die drei Schieberegler oder über eine numerische Eingabe durch Klick auf die Leistungsangabe unter dem Schieberegler. Durch Klick auf die Texte &amp;quot;TOP&amp;quot;, &amp;quot;BOTTOM&amp;quot;, &amp;quot;FAN&amp;quot; (Oberhitze, Unterhitze, Lüfter) können selbige deaktiviert bzw. aktiviert werden. Auch in diesem Modus wird Temperatur, Temperaturänderung so wie der Temperaturverlauf dargestellt.&lt;br /&gt;
** &amp;quot;manueller Temperaturmodus&amp;quot; - Hier wird die Temperatur wieder mittels des Temperatur-PIDs geregelt. Die Temperatur wird entweder mittels Schieberegler (Ober- und Unterhitze-Regler sind jetzt gekoppelt) oder durch eine numerische Eingabe unterhalb der Schieberegler vorgegeben. Anzeige wie im &amp;quot;manuellen Leistungsmodus&amp;quot;. Der Lüfter kann unabhängig vom PID in seiner Leistung geregelt werden. Ein evtl. durch den Luftstrom verursachter Temperaturabfall wird vom PID selbstverständlich ausgeregelt (aus diesem Grunde ist es ja ein Regler).&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Programmieren&amp;quot;&#039;&#039;&#039; - Hier kann ein neues &#039;&#039;&#039;Temperatur&#039;&#039;&#039;-Programm für den EEPROM-Speicher des Ofens erstellt und editiert werden. Die Eingabemöglichkeiten sind unter &amp;quot;Eingabe der Temperaturkurve (Reflowprofil)&amp;quot; beschrieben. Dieser Modus ist zum reinen Programmieren des Ofens gedacht und ermöglicht keine weitere Steuerung oder Überwachung des Ofens.&lt;br /&gt;
&lt;br /&gt;
=== Eingabe der Temperaturkurve (Reflowprofil) ===&lt;br /&gt;
[[Datei:datagridview.png|thumb|right|400px|tabellarische Anzeige und Editiermöglichkeit der Temperaturkurve]]&lt;br /&gt;
Die Eingabe der Temperaturkurve erfolgt entweder über Import (CSV/EEPROM), per Mausklick auf dem zentralen Diagramm oder im sog. DataGridView (Excel-ähnliche Bedienung in tabellarischer Form). &lt;br /&gt;
&lt;br /&gt;
* CSV-Import + Export&lt;br /&gt;
* EEPROM-Import + Export&lt;br /&gt;
* Im rechts stehenden Screenshotbeispiel wird eine tabellarische Eingabeform mit einem DataGridView gezeigt: Die Temperatur (erster Temperaturpunkt = Punkt 0) von 100°C wird linear über einen Zeitraum von 0-30s verteilt. Bei 30s hat der Ofen die Temperatur von 100°C. Dafür setzt die Regelung die Oberhitze, die Unterhitze ein. Der Lüfter ist deaktiviert. In der Zeit von 30s bis 120s wird die Temperatur nun von 100°C auf 150°C linear angehoben. Von 120s bis 180s Backzeit steigt die Temperatur von 150°C auf 250°C. Von 180s bis 200s wird die Temperatur auf 280°C angehoben. Anschließend wird sie zwischen 200s und 220s auf 280°C gehalten (280°C@200s und 280°C@220s) um dann bis 240s wieder auf 250°C zu fallen. Bis zum Zeitpunkt 300s wird dann die Temperatur 30°C angestrebt. Zusätzlich ist der Lüfter nun aktiviert (soweit der Ofen eine Umluftfunktion besitzt). Bei Punkt 7 sind Ober- und Unterhitze deaktiviert nur noch der Lüfter kühlt. Da hier bei &amp;quot;Zeit[s]&amp;quot; die 0 eingetragen wird der Zustand (hier nur Lüfter an) für einen unendlich langen Zeitraum auf 0 gehalten. Also so lange wie das Programm aktiviert ist wird der Lüfter laufen. Natürlich könnte man hier auch z.B. 100°C und Zeitpunkt 0s eintragen. Dann würde der Ofen bis zum manuellen Beenden des Programms (klick auf STOP-Button oder Drücken des START/STOP-Tasters auf der Platine/Steuerung) 100°C halten.&lt;br /&gt;
* Alle Zellen des DataGridView sind editierbar (zur Veränderung der Temperatur, Zeitpunkt, ...)&lt;br /&gt;
* Direkter Klick auf das zentrale Temperatur-Zeit-Diagramm trägt den Zeitpunkt so wie die Temperatur unter dem Mauszeiger in die Tabelle (das DataGridView) ein. Die ausgewählte Zeile wird beschrieben oder überschrieben. Neue Zeilen (also Temperatur-Zeit-Punkte) können durch klick auf den &amp;quot;Plus-Button&amp;quot; hinzugefügt werden. Ebenso ist das Löschen oder Verschieben einer oder mehrerer Zeile gleichzeitig möglich.&lt;br /&gt;
&lt;br /&gt;
=== Beschreibung der Steuerungsmöglichkeiten ===&lt;br /&gt;
In Abhängigkeit des gewählten Modus bestehen einige Steuerungs-, Einstellungs- und Kontrollmöglichkeiten:&lt;br /&gt;
* &#039;&#039;&#039;Schieberegler&#039;&#039;&#039; für Temperatur od. Leistung (je nach Modus) für Oberhitze, Unterhitze und Lüfter. Je nach Hardwareausführung. &lt;br /&gt;
** Klick auf &amp;quot;TOP&amp;quot;, &amp;quot;BOTTOM&amp;quot; oder &amp;quot;FAN&amp;quot; aktiviert oder deaktiviert die entsprechende Funktion bzw. Hardware.&lt;br /&gt;
** Numerische Eingabe der Werte für die Schieberegler durch Klick auf die Anzeige unterhalb der Schieberegler. Werte können auch im deaktivierten Zustand angegeben werden. Die Übernahme erfolgt durch den &amp;quot;Aktivierungsklick&amp;quot; auf &amp;quot;TOP&amp;quot;, &amp;quot;BOTTOM&amp;quot; oder &amp;quot;FAN&amp;quot;&lt;br /&gt;
* &#039;&#039;&#039;T1, dT1, T2, dT2&#039;&#039;&#039; - Anzeige der gemessenen Temperatur so wie die momentane Temperaturänderung am jeweiligen Sensor. &lt;br /&gt;
* &#039;&#039;&#039;Bedienbuttons&#039;&#039;&#039;&lt;br /&gt;
** Play - Startet das Programm am angegebenen Startpunkt (siehe unten)&lt;br /&gt;
** Pause - Pausiert das Programm - weitere Pauseoptionen siehe unten&lt;br /&gt;
** Stop - Stopt den Programmablauf&lt;br /&gt;
** Vor / Zurück - Springt zwischen Temperaturpunkten hin und her. Dient zum überspringen oder zurückspringen zu gewissen Temperatur-Zeit-Punkten. Ermöglicht z.B. das Überspringen eines Ablaufes der eine lange Preheat- oder Dryphase hat.&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Status&amp;quot;&#039;&#039;&#039; - zeigt den aktuellen Zustand des Programms an (READY, START, WAITING, PAUSE, ...)&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;RESET&amp;quot;&#039;&#039;&#039; - setzt das (begonnene) Programm zurück. Beinhaltet neben dem Programmablauf auch das Zurücksetzen der graphischen Anzeige des Diagramms, etc.&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Startpunkt&amp;quot;&#039;&#039;&#039; - legt den ersten Punkt des Programmablaufes fest. &lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Wiederholungen&amp;quot;&#039;&#039;&#039; - ermöglicht das wiederholte Backen ohne das Programm händisch immer wieder neu starten zu müssen. Die Anzahl der Wiederholungen ist einstellbar (0 für unendlich viele) und es ist eine Wartezeit zwischen den Wiederholungen einstellbar. Alternativ kann eine Meldung nach jedem vollendeten Backvorgang abgegeben werden. Nach Bestätigung dieser wird die nächste Wiederholung ausgeführt.&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Pause&amp;quot;&#039;&#039;&#039; - Pauseneinstellungen. Hier sind Optionen wählbar was passieren soll, falls der Pausebutton betätigt wird:&lt;br /&gt;
** Pausezeit - gibt an wie lange die Pause dauern soll [s], danach fährt das Programm automatisch gemäß des gewählten Pausemodus fort. Für eine Pause ohne automatisches Fortfahren (Countdowntimer) &#039;0&#039; angeben.&lt;br /&gt;
** Pausemodus &amp;quot;aktuelle Temperatur halten, WarmUp, Fortsetzen&amp;quot; - Ofen hält die Temperatur (Zieltemperatur) des Zeitpunktes als der Pausebutton betätigt wurde. WarmUp bedeutet, dass nach dem Beenden des Pausemodus zunächst die Zieltemperatur wieder erreicht werden &#039;&#039;&#039;muss&#039;&#039;&#039; bevor der nächste Punkt angesteuert wird. Klingt paradox, wenn die Temperatur doch so und so gehalten wird, ist aber nicht so. Die Wahrscheinlichkeit ist hoch, dass der Pausemodus benutzt wird um die Ofentüre zu öffnen und Korrekturen an der Platine vorzunehmen. Unter Umständen ist die Heizung des Ofens jedoch nicht in der Lage den dadurch entstehenden Wärmeverlust zu kompensieren. Fährt das Programm dann sofort fort, so könnten evtl. kritische (Hoch-)Punkte des Lötprofils &amp;quot;unterfahren&amp;quot; werden. Dem wirkt WarmUp entgegen.&lt;br /&gt;
** Pausemodus &amp;quot;aktuelle Temperatur halten, Fortsetzen&amp;quot; - siehe oben, nur ohne WarmUp.&lt;br /&gt;
** Pausemodus &amp;quot;definierte Temperatur halten, WarmUp, Fortsetzen&amp;quot; - siehe oben. Statt der aktuellen Zieltemperatur wird jedoch nun im Pausemodus eine einzustellende Pausetemperatur gehalten. Mit WarmUp.&lt;br /&gt;
** Pausemodus &amp;quot;definierte Temperatur halten, Fortsetzen&amp;quot; - siehe oben, nur ohne WarmUp.&lt;br /&gt;
** &amp;quot;Pausetemperatur&amp;quot; - spezielle Temperatur die bei entsprechender Pausemoduswahl für die Dauer der Pause gehalten wird.&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Ende&amp;quot;&#039;&#039;&#039; - gibt an was am Ende eines durchlaufenen Reflow-Programms passieren soll. Ist der Wiederholungsmodus aktiviert, tritt dieses Ereignis erst nach Durchlauf aller Wiederholungen ein. Folgende Modi sind möglich:&lt;br /&gt;
** automatischer Reset - am Ende des Programms wird alles automatisch zurückgesetzt, alle Graphiken und Anzeigen gelöscht.&lt;br /&gt;
** manueller Reset - am Ende des Programms bleiben alle Anzeigen, Graphiken, etc erhalten und müssen vor Beginn eines neuen Reflowvorgangs händisch durch Klick auf &amp;quot;RESET&amp;quot; zurückgesetzt werden.&lt;br /&gt;
** Benutzermeldung - lässt eine Meldung erscheinen. Alle Anzeigen und Graphiken bleiben erhalten bis der Benutzer diese Meldung bestätigt. Mit Bestätigung dieser Meldung wird ein automatischer Reset vorgenommen.&lt;br /&gt;
&lt;br /&gt;
=== Loggen des Temperaturverlaufes ===&lt;br /&gt;
Es ist möglich jeden Backvorgang in eine CSV-Datei zu loggen. (Software- und PID-Einstellungen). Geloggte CSV-Dateien können eingelesen und im zentralen Temperatur-Zeit-Diagramm begutachtet werden. Ein Ist-Soll-Vergleich ist ebenso möglich wie die direkte Anzeige des Fehlers (&amp;quot;Ist minus Soll&amp;quot;). Dank CSV können die Daten auch mit anderen Programmen (Excel, etc.) weiterverarbeitet werden.&lt;br /&gt;
&lt;br /&gt;
== Ofen / Pizzaofen ==&lt;br /&gt;
=== Leistung und Volumen ===&lt;br /&gt;
=== Dämmung ===&lt;br /&gt;
=== Umluft ===&lt;br /&gt;
=== Bezugsquellen ===&lt;br /&gt;
=== Diskussionen im Forum ===&lt;br /&gt;
* Umfangreicher Thread u.A. Leistungsvermögen, Temperaturmessung und Dämmung [http://www.mikrocontroller.net/topic/270627]&lt;br /&gt;
&lt;br /&gt;
== FAQ ==&lt;br /&gt;
&lt;br /&gt;
* Q1: Ich habe einen PT100/PT1000 und möchte den anschließen. Geht das?&lt;br /&gt;
** A1: Ja natürlich. Dazu ist aber etwas externe Elektronik notwendig. Sowohl 2 ADC-Pins (mit 3V3 Betriebsspannung als fixe Referenzspannung), als auch die UART und SPI/I2C-Schnittstelle stehen zur freien Verfügung. Für PT100/PT1000 wird für vernünftige Messungen ohnehin eine Verstärkung (meist mit OPV) von Nöten sein. Da der PIC-interne ADC &amp;quot;nur&amp;quot; 10bit Auflösung bietet sollte ein externer 16bit ADC in Betracht gezogen werden um das Potential der PT100/PT1000 auszunutzen.&lt;br /&gt;
*Q2: Ich habe von günstigen Temperaturmessungen mit Dioden gehört. Geht das auch hier?&lt;br /&gt;
**A2: Ja. Die Vorwärtsspannung einer Diode verhält sich linear zur Sperrschichttemperatur. Diese Spannung (bei 25°C einer Si-Diode die bekannten 0,7V) kann mittels OPV verstärkt werden und auf einen Spannungsbereich von 0 ... 3V3 aufgebläht werden. Eine billige Lösung, auf Kosten der Genauigkeit. Doch eine Diode ist laut Datenblatt nur bis 150°C geeignet. Es ist also beim Löten mehr oder weniger Pfusch. Wenn ich schon eine Reflow-Steuerung baue, sollte ich doch nicht an ein paar Euro für eine gescheite Temperaturmessung sparen. Einige Anregungen vom Messgerätehersteller Keithley bzgl. der Halbleiterphysik mit interessanten Formeln [http://www.keithley.de/support/data?asset=50486]. Oder natürlich der Klassiker von Thomas Pfeifer [http://thomaspfeifer.net/backofen_smd_reflow.htm]. Oder ein Beitrag mit LT-Spice Simulation zum Thema [http://www.mikrocontroller.net/topic/270627#2833883].&lt;br /&gt;
* Q: God why ... ?&lt;br /&gt;
** A: Because we can !&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Verbesserungen Prototyp ===&lt;br /&gt;
* Bauteile weiter weg von Schraublöchern&lt;br /&gt;
* Dazu Kreis rund um Bohrung auf Bestückdruck&lt;br /&gt;
* Masseanbindung Quarz&lt;br /&gt;
* Klemmen weiter weg vom Rand&lt;br /&gt;
* Klemme und Sicherungshalter weiter auseinander, damit Schutzhabe draufpasst&lt;br /&gt;
* Bohrungen für Drossel 0,2mm größer machen&lt;br /&gt;
* Teilenummer für Conrad-USB-Buchse in BOM übernehmen.&lt;br /&gt;
* Stiftleiste P1  weiter weg von P2 und P4&lt;br /&gt;
* Varistoren näher an Klemmen platzieren&lt;br /&gt;
* Bestückvarianten defineren: 1. minimal 2. Standard 3. Externe Leds und Schalter.&lt;br /&gt;
&lt;br /&gt;
=== Errata Projekt ===&lt;br /&gt;
* LED-Beschriftung passt nicht ganz (Schltplan Netlabel OUT1,2,3,4 sind durcheinander gekommen)&lt;br /&gt;
* Schaltplan UNL2003 fehlerhafte Zuordnung IN5,6,7 &amp;lt;&amp;gt; OUT7,6,5&lt;br /&gt;
* Brückengleichrichter / Optokoppler NICHT die im Schaltplan angegebenen Bestellnummern von Reichelt verwenden. BOM-Bauteile und Bestellnummern sind ok.&lt;br /&gt;
* Beim MOSFET R39 ist die Masseanbindung falsch. Es bestehen drei Möglichkeiten:&lt;br /&gt;
** 1. 0-R-Brücke für R39 einbauen und auf Strombegrenzung verzichten.&lt;br /&gt;
** 2. Eine Polyfuse mit Bauform 1206 einbauen. &lt;br /&gt;
** 3. Das kleine Leiterbahnstückchen zwischen R38 und R39 unterbrechen und statt dessen die Leiterbahn zwischen R39 und der Klemme mit der Durchkontaktierung bei R38 verbinden.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* Diskussion [http://www.mikrocontroller.net/topic/297217 Diskussion]&lt;br /&gt;
* Dextrel Nulldurchgang [http://www.dextrel.net/diyzerocrosser.htm Nulldurchgangschaltung]&lt;br /&gt;
* Gehäuse [http://www.hammondmfg.com/pdf/RM2015M.pdf Gehäuse Hammond]&lt;br /&gt;
* Bezugsquelle SOS Elektronik [http://www.soselectronic.com/?str=371&amp;amp;artnum=73595&amp;amp;name=hammond-ritec-rm2055m]&lt;br /&gt;
* Bezugsgquelle [http://www.druckerzubehoer.de/shop/product/catid/H-UNIVERSALZUBEHOER_HZB/subcatid/UNIVERSALZUBEHOER_GROUP1_HZB/productid/1727063-390722LA/site/1/lng/de_DE Mini USB Netzteil]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Projekte]]&lt;br /&gt;
[[Kategorie:PIC]]&lt;br /&gt;
[[Kategorie:PIC-Boards]]&lt;br /&gt;
[[Kategorie:Platinen]]&lt;/div&gt;</summary>
		<author><name>Frankman</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=Reflow_Ofen_Steuerung&amp;diff=76098</id>
		<title>Reflow Ofen Steuerung</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=Reflow_Ofen_Steuerung&amp;diff=76098"/>
		<updated>2013-05-29T21:09:03Z</updated>

		<summary type="html">&lt;p&gt;Frankman: /* Eingabe der Temperaturkurve (Reflowprofil) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Datei:RFB.jpg]]&lt;br /&gt;
== Einleitung ==&lt;br /&gt;
[[Datei:pcb.png|thumb|right|400px|unbestücktes PCB der Reflow-Ofen-Steuerung]]&lt;br /&gt;
Hier wird eine weitere Reflow-Ofen-Steuerung beschrieben.&lt;br /&gt;
=== Zum Nachbauen ===&lt;br /&gt;
* Spezifikation: [[Datei: Spec Reflow.pdf]]&lt;br /&gt;
* Schaltplan: [[Datei:Reflow.pdf]]&lt;br /&gt;
* Gerberdaten: [[Datei:Gerber Reflow.pdf]]&lt;br /&gt;
* Assemblydrawing: [[Datei:Assembly Reflow.pdf]] &lt;br /&gt;
* Altium-Files: [[Datei:Reflow.zip]]&lt;br /&gt;
* Stückliste als CSV: [[Datei:Reflow.csv]]&lt;br /&gt;
* Stückliste als Open Office: [[Datei:Reflow.ods]]&lt;br /&gt;
* PC Programm: TBD&lt;br /&gt;
* Sourcen PC-Programm: TBD&lt;br /&gt;
* PIC Programm (*.hex): TBD&lt;br /&gt;
* Sourcen Pic-Programm: TBD&lt;br /&gt;
&lt;br /&gt;
=== Motivation ===&lt;br /&gt;
Die Gründe, eine weitere Steuerung zu entwerfen, waren:&lt;br /&gt;
&lt;br /&gt;
# Die Möglichkeit, auch größere Öfen mit 2 Phasen betreiben zu können.&lt;br /&gt;
# Die Steuerung universell zu gestalten. Es sollte möglich sein, diese nicht nur zum Reflow löten zu verwenden.&lt;br /&gt;
# Die Schaltung sollte in Altium entwickelt werden. (Warum kein Eagle??? Altium User wissen es.... :-)&lt;br /&gt;
# Die Schaltung sollte mit USB ausgestattet sein.&lt;br /&gt;
=== Eigenschaften &amp;amp; Spezifikationen ===&lt;br /&gt;
* Temperaturmessung: bis zu 2x &#039;&#039;&#039;Thermoelement&#039;&#039;&#039; (K-Typ) mit MAX6675 (abgekündigt) oder Nachfolger MAX31855 (pin- aber nicht softwarekompatibel)&lt;br /&gt;
* &#039;&#039;&#039;Leistungsstufen&#039;&#039;&#039;: 3x voneinander unabhängige Triac 800V bei 25A, limitiert auf &#039;&#039;&#039;10A @ 250VAC&#039;&#039;&#039; (z.B. Oberhitze, Unterhitze, Umluft)&lt;br /&gt;
* &#039;&#039;&#039;Nulldurchgangserkennung&#039;&#039;&#039; ermöglicht Wellenpaket-, Phasenan- und abschnittssteuerung, galvanische Trennung selbiger&lt;br /&gt;
* 1x &#039;&#039;&#039; MOSFET-Ausgang&#039;&#039;&#039; PWM z.B. für 12V Lüfter, max. 55V 3,5A&lt;br /&gt;
* &#039;&#039;&#039;feste Programme&#039;&#039;&#039; im EEPROM über 2-Tasterbedienung und LEDs wähl- und ausführbar. &#039;&#039;&#039;PC-unabhängiger Betrieb&#039;&#039;&#039;. Beliebig viele Programme möglich, für die Auswahl stehen 4 benutzer-konfigurierbare LEDs zur Verfügung&lt;br /&gt;
* Betrieb am Computer für mehr Reflowprofile&lt;br /&gt;
* Mini-USB-Buchse zur Steuerung / Programmierung über GUI&lt;br /&gt;
* Günstiges passendes &#039;&#039;&#039;Gehäuse&#039;&#039;&#039;, alle LEDs und Taster auf Stiftleisten herausgeführt&lt;br /&gt;
* PID-Temperaturregler&lt;br /&gt;
* UART, SPI, I2C und 2x ADC auf Stiftleisten herausgeführt (-&amp;gt; Erweiterungen)&lt;br /&gt;
* Versorgung über USB (&amp;lt; 100mA), interne Versorgungsspannung 3,3V&lt;br /&gt;
* umfangreiche EMV-gerechte Entstörung für den Bedarfsfall&lt;br /&gt;
&lt;br /&gt;
== Technische Realisierung==&lt;br /&gt;
=== PIC18LF2550 Grundbeschaltung ===&lt;br /&gt;
[[Datei:osc_vs_vcc.png|thumb|right|200px|Taktraten und Versorgungsspannung PIC18LF2550 vs. PIC18LF2550, Datenblatt S. 370/438]]&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 3/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Hier kommt ein PIC18&#039;&#039;&#039;L&#039;&#039;&#039;F2550 zum Einsatz. Er verfügt über eine USB-Schnittstelle und ist für Betriebsspannungen von 2 ... 5,5V ausgelegt. Sein Verwandter PIC18F2550 (ohne L) ist nicht für Betriebsspannungen &amp;lt; 4,2V ausgelegt. Dies ist bei USB sowiesor nicht immer erfüllt und die Thermoelement ICs vertragen ohnehin keine 5V, daher wurde die Betriebsspannung auf 3,3V reduziert. Neben Standard-Decoupling (100nF Kerko pro Vcc-Vss-Pärchen) wurde das ICSP-Interface in alt bewährter Pinbelegung (PICKit1,2,3) angebracht. PGD und PGC sind nicht weiter beschaltet, MCRL wird in Standardbeschaltung als Resetpin verwendet. Der Resetschalter findet sich auf dem Top-Sheet (Schaltplan S. 1/22). Die Taktversorgung erfolgt zwingend über einen 24 MHz Quarz (-&amp;gt; USB). Man beachte diesbezüglich rechts stehende Grafik zu Taktraten und Versorgungsspannungen (Vdd bzw. auch Vcc genannt). Auch zu finden im Datenblatt des PICs auf Seite 370.&lt;br /&gt;
&lt;br /&gt;
=== PIC18LF2550 USB Beschaltung ===&lt;br /&gt;
[[Datei:usb_part.png|thumb|right|200px|PIC18(L)F2455/2550/4455/4550 Standard &lt;br /&gt;
USB-Beschaltung am PIC]]&lt;br /&gt;
[[Datei:usb_protect.png|thumb|right|200px|USB-Schutzbeschaltung und Mini-USB-Buchse]]&lt;br /&gt;
&lt;br /&gt;
Die Beschaltung der USB-Schnittstelle am PIC ist 1:1 aus dem Datenblatt übernommen. Zum Einsatz kommt eine Mini-USB-Buchse (J1).&lt;br /&gt;
Der Gedanke war: Erstens ein sehr preiswertes, fertiges Netzteil verwenden zu können, (ca. 3,60 € bei druckerzubehoer.de) und zweitens, die Steuerung auch mit dem PC / Laptop versorgen zu können.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 4/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
FER1,2 und C7 filtern den Schirm nach GND. Standardmäßig wird man hier wohl 0-Ohm-Widerstände einsetzen. Falls ein Besuch im EMV-Labor geplant ist, weicht man auf den Ferrit aus. C5 und C6 filtern das Signal zusammen mit der Common-Mode-DrosselL1. Die Drossel kann mit den 0-Ohm-Brücken R8 und R9 überbrückt (gespart) werden. IC2 ist als ESD-Schutz gedacht und kann ebenfalls bei ausgeprägten Kostenbewustsein gespart werden. Die Widerstände R6 und R7 dürfen NICHT bestückt werden. FER1,2, C5, IC2 müssen nicht zwingend bestückt werden. Die Bestückung wurde vorgehalten um im Problemfall einfache Abhilfe schaffen zu können.&lt;br /&gt;
&lt;br /&gt;
=== 3,3V Spannungsversorgung ===&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 2/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Die 3,3V Versorgungsspannung für die gesamte Platine wird aus V_USB mittels des LDO Spannungsreglers TOREX - XC6206P332MR abgeleitet. Günstig, SOT-23, klein, 2x 1µF Kondensatoren benötigt, 3,3V max. 250mA. Der hat auch einen sehr kleinen Ruhestrom.&lt;br /&gt;
&lt;br /&gt;
=== Taster ===&lt;br /&gt;
*Der Resettaster zieht den MCLR-Pin nach GND und löst damit den Reset aus. MCLR ist gem. der Standartbeschaltung mit einem 10k Pullup versehen.&lt;br /&gt;
*Die übrigen beiden Taster ziehen RA4 bzw. RB5 ebenfalls nach GND.&lt;br /&gt;
&lt;br /&gt;
=== LEDs + ULN2003L ===&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 11/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Um alle LEDs auf der Platine (3x Optotriac + 7x Status) ansteuern zu können wurde auf das 7fach Darlington-Array ULN2003L zurückgegriffen. Es dient desweiteren auch als &amp;quot;MOSFET-Treiber für Arme&amp;quot;. Alle LEDs werden von diesem Transistor-Array nach Masse geschaltet. Dient der Entlastung der PIC-Ausgänge. Und kostet ja auch nicht viel.&lt;br /&gt;
&lt;br /&gt;
=== MOSFET-Leistungsausgang ===&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 22/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Hier kommt der einfacher N-Kanal MOSFET (LogicLevel) PHT8N06LT zum Einsatz. Er wird über das ULN2003L Array getrieben und ermöglicht den Anschluss eines DC-Verbrauchers mit max. 55V bei 3,5A. Hier könnte beispielsweise ein PC-Lüfter zur Kühlung od. Umluft angeschlossen und über PWM geregelt/gesteuert werden. Ein Gatewiderstand von 100 Ohm ist zum Schutz des Treibers vorgesehen. Eine 0-Ohm-Brücke ist stattdessen aber auch möglich, wenn man eine höhere Leistung schalten möchte.Die Leiterbahnen sollten die 3A schon hergeben. Der 100 Ohm Widerstand bildet eine Stromquelle. Sobald der Strom durch den MOSFET und den Widerstand 33mA erreicht, sinkt UGS gegen 0 V. Folge: Der Mosfet sperrt ( und bleibt ganz....)&lt;br /&gt;
Es kann hier prinzipiell auch ein anderer Mosfet im SOT223-Gehäuse zum Einsatz kommen. Achten sollte man darauf, das der MOSFET schon bei 3,3V Ugs gut leiten sollte.&lt;br /&gt;
&lt;br /&gt;
=== Nulldurchgangserkennung ===&lt;br /&gt;
[[Datei:zerocross.png|thumb|right|200px|Nulldurchgangserkennung]]&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 5/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Die Nulldurchgangserkennung erfolgt nach einer sehr bekannten - jedoch ausgeklügelten - Schaltung.  [http://www.dextrel.net/diyzerocrosser.htm]&lt;br /&gt;
&lt;br /&gt;
ACHTUNG: DER IM SCHALTPLAN VERZEICHNETE OPTOKOPPLER und BRÜCKENGLEICHRICHTER VON REICHELT DARF KEINESFALLS VERWENDET WERDEN! Pinbelegung! Bitte den Optokoppler aus der Stückliste nehmen!&lt;br /&gt;
&lt;br /&gt;
Während einer Halbwelle wird C14 über R33 und R35 bzw. D5 geladen. Währenddessen ist T1 gesperrt. Sobald die Wechselspannung (L1-N über Spannungsteiler (R33+R35) / R34) kleiner ist als die Spannung über C14, steuert T1 durch. Dann entlädt sich C14 über den LED-Vorwiderstand R32. Der durch-steuernde Optokoppler zieht die Sync-Leitung nach GND. (Pullup Sync-Leitung = R31). Dies löst beim PIC auf INT2 einen Interrupt aus. &lt;br /&gt;
&lt;br /&gt;
Dieser Interrupt ermöglicht eine präzise Wellenpaket-, Phasenanschnittsteuerung je nach Bedarf. Das Schalten im Nulldurchgang bei der Wellenpaketsteuerung reduziert EMV-Störungen. Für Phasenanschnitt ist prinzipbedingt ohnehin eine Nulldurchgangserkennung notwendig. Außerdem liefert sie eine völlig ausreichend genaue Zeitbasis für alle Programmabläufe.&lt;br /&gt;
&lt;br /&gt;
=== Triac-Ausgänge + Snubber ===&lt;br /&gt;
[[Datei:triac.png|thumb|right|200px|Triac-Ausgangsbeschaltung]]&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 19,20,21/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Die Ansteuerung des eigentlichen Leistungstriacs BTA140-800 erfolgt über den Optotriac IS6005. Der Strom durch Letzteren wird durch R1x limitiert (Vorwiderstand). R2x und R5x limitieren wiederum den Strom durch den Optotriac. Wenn dieser zündet so folgt unmittelbar der &amp;quot;Leistungstriac&amp;quot; der dann die Last schaltet.&lt;br /&gt;
&lt;br /&gt;
S1x ist ein Sicherungshalter um die Lasten einzeln absichern zu können. Wert 10A Mittelträge.&lt;br /&gt;
&lt;br /&gt;
R3x, R4x, C3x bilden ein Snubber-Network, L1X verhindert eine zu schnelle Stromanstiegsgeschwindikeit damit der Triac nicht &amp;quot;von selbst&amp;quot; zündet. Weglassen äußert sich meist in einem fast nicht hörbaren Click. Damit zeigt einem dann der Triac, dass er ab jetzt für immer recht niederohmig geworden ist. Die Regelung der Temperatur braucht dann nicht mehr über den Prozessor erfolgen, sondern nur noch mit dem Ein-/Ausschalter..... :-)&lt;br /&gt;
&lt;br /&gt;
=== Thermoelemente (MAX6675/MAX31855)  ===&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 6,7/22&#039;&#039;&#039;&lt;br /&gt;
Der inzwischen abgekündigte MAX6675 bzw. sein ehrenwerter Nachfolger MAX31855 sind einfach zu handhabende Thermoelement-ICs mit Kaltstellenkompensation. Thermoelemente funktionieren durch das Verschweißen zweier verschiedener Legierungen (beim K-Typ Thermoelemnt Ni und CrNi). Durch den durch die Umgebungstemperatur bedingten Wärmefluss zwischen beiden entsteht ein elektrische Spannung. Diese wird von besagten ICs verstärkt und digitalisiert (ADC). Diese Spannung / Temperatur ist natürlich wieder relativ zur Umgebungstemperatur an der Kaltstelle (Kontaktierung der beiden Drähte mit dem Messinstrument). Daher messen diese ICs auch gleich die Umgebungstemperatur (Kaltstellenkompensation genannt) mit, verrechnen das und geben das Ergebnis auf der SPI-Schnittstelle aus. MAX6675 leistet 12bit also 0,25°C Auflösung (nicht Genauigkeit!) über einen Temperaturbereich von 0°C to +1024°C. Außerdem wird ein nicht/fehlerhaft angeschlossenes Thermoelement erkannt. Der Thermocouple-IC wird an die SPI-Schnittstelle des PICs angeschlossen (hier MSSP genannt). &lt;br /&gt;
&lt;br /&gt;
MAX6675 und MAX31855 scheinen entgegen der Adafruit-Information [http://www.adafruit.com/products/269] doch pinkompatibel zu sein - die Ansteuerung unterscheidet sich jedoch definitiv. (Zitat: &amp;quot;Now uses the MAX31855K instead of the MAX6675, so it can measure a wider temperature measurement range. Please note! the MAX31855 is not pin compatible or drop-in code compatible with the MAX6675. We do have an Arduino library for both chips but you&#039;ll need to adjust any existing MAX6675 designs for the mew MAX31855. The MAX6675 has been discontinued by Maxim.&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Es wurden 2 dieser ICs und damit 2 Temperaturmessstellen vorgesehen. Dies ermöglich die Messung für eine Regelung der Temperatur so wie eine zusätzliche Überwachung kritischer Bauteile (z.B. ICs oder LEDs). Die Minimalbestückung sieht einen MAX6675/MAX31855 vor. Die Auswahl in der Firmware erfolgt über einen der beiden GPIO-Pins RA5 oder RA0 via dem ChipSelect (CS) des MAX6675/MAX31855.&lt;br /&gt;
&lt;br /&gt;
Neben dem MAX6675/MAX31855 wurde ein Decoupling-Kondensator (C8x, Standard 100nF) so wie ein weiterer im Messpfad (C9x) zur Zwecken der Entstörung vorgeshen. C9x 100nF sollte nur bestückt werden wenn Probleme bei der Temperaturmessung entstehen (z.B. unrealstisch stark schwankende Werte).&lt;br /&gt;
&lt;br /&gt;
=== ADC, SPI, UART &amp;amp; I2C Stiftleiste ===&lt;br /&gt;
ADC, SPI, UART und I2C sind zu Zwecken der Kalibrierung / Erweiterung / Einstellung / Debugging au Stiftleisten herausgeführt:&lt;br /&gt;
Ähnlichkeiten mit dem FTDI-USB-TTL-Kabel bzw. Arduino XXX Bla Bla Bla Schnittstellenkonverter sind natürlich rein zufällig.&lt;br /&gt;
&lt;br /&gt;
Die I2C-Schnittstelle wurde auf eine Stiftleiste geführt, um z.B. einem LM75 o.ä. anschließen zu können. Damit stehen zur Kalibrierung der Thermoelemente genaue Temperaturen zur Verfügung.&lt;br /&gt;
&lt;br /&gt;
Die Stiftleisten haben alle ein Raster von 2,54mm. So können Pin-Header, Wannenstecker oder ähnliches verwendet werden.&lt;br /&gt;
&lt;br /&gt;
Da ja viele Leute eigene Vorstellungen bezüglich der Frontplattengestaltung haben, wurden auch die Taster und LEDs auf Stiftleisten geführt.&lt;br /&gt;
&lt;br /&gt;
=== Kühlkörper ===&lt;br /&gt;
Da die Triac der Steuerung für bis zu 10A pro Kanal ausgelegt sind, kann man auf die Kühlkörper nicht verzichten. Es fallen bei 10A bis zu 13Watt Wärme pro Triac ab. Falls mann auf die Kühlkörper doch verzichten möchte, sollte man darauf achten, die Triac mit dem Kopf nach unten einzubauen. Diese können sich dann bei Überlast ganz von selber auslöten.... :-)&lt;br /&gt;
&lt;br /&gt;
=== Gehäuse ===&lt;br /&gt;
Die Leiterplatte wurde für ein Gehäuse von Hammond entwickelt.&lt;br /&gt;
Das Gehäuse ist zwar keine Schönheit, aber doch recht preiswert.&lt;br /&gt;
Typenbezeichnung: RM2055M&lt;br /&gt;
&lt;br /&gt;
== Firmware PIC ==&lt;br /&gt;
Die Entwicklung der Firmware für den PIC18LF2550  geht mit MPlab 8 respektive dem C18 Compiler von Statten. MPlab ist kostenlos, der C18 Compiler bis auf die stärkste Optimierungsstufe ebenfalls. Die Quellen für die Firmware werden auch offengelegt.&lt;br /&gt;
=== Programmstruktur- und ablauf ===&lt;br /&gt;
Nach anfänglicher Initialisierung des PIC startet die Statemachine [http://http://www.mikrocontroller.net/articles/Statemachine] [http://http://de.wikipedia.org/wiki/Endlicher_Automat]. Neben ihr findet in der main-Funktion nur noch die Abfrage der beiden Bedientasten statt. Mit dem Tastendruck wird zum Zwecke der Entprellung ein Timer gestartet. Alles Andere (incl. PID-Regelung, Wellenpaket- bzw. Phasenan- und Phasenabschnittssteuerung und USB) ist interruptbasiert.&lt;br /&gt;
&lt;br /&gt;
=== Taktversorgung, Nulldurchgangserkennung und Zeitbasis ===&lt;br /&gt;
=== USB ===&lt;br /&gt;
=== SPI für MAX6675 ===&lt;br /&gt;
=== SPI für MAX31855 ===&lt;br /&gt;
&lt;br /&gt;
=== Wellenpaketsteuerung ===&lt;br /&gt;
=== Phasenanschnitt, Phasenabschnitt ===&lt;br /&gt;
=== PWM für MOSFET ===&lt;br /&gt;
&lt;br /&gt;
== PC-Software (GUI) ==&lt;br /&gt;
[[Datei:gui_alpha.png|thumb|right|300px|Screenshot der GUI (noch Alpha) für den Reflow-Ofen-Controller]]&lt;br /&gt;
&lt;br /&gt;
Die GUI (englisch Graphical User Interface) ist der Einfachheit halber in VB.net programmiert und momentan noch im Alpha-Stadium. Auch hierfür liegen die Quellen später selbstverständlich offen.&lt;br /&gt;
&lt;br /&gt;
=== Funktionen und Modi ===&lt;br /&gt;
[[Datei:modi.png|thumb|right|400px|Auswahl der beschriebenen Modi durch Klick]]&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Ofen-Profil&amp;quot;&#039;&#039;&#039; - Es wird ein Programm (Temperaturkurve) aus dem EEPROM des Reflow-Ofens ausgeführt. Der Backvorgang kann mit der Software gesteuert (START, STOP, ...) und überwacht werden. Hierzu stehen Temperatur, Temperaturänderung, Heizleistung (Ober- und Unterhitze, Lüfter) so wie die graphische Darstellung im zentralen Diagramm zur Verfügung. Eingriffsmöglichkeiten, wie das Ändern der Temperaturkurve sind nicht vorgesehen. Dies soll ein reiner Überwachungs-Modus sein. Um die Temperaturkurve zu verändern zu können, sollte der Modus &amp;quot;PC-Profil&amp;quot; verwendet werden und die Temperaturkurve aus dem EEPROM importiert werden. Dann kann Selbige auch verändert und anschließend ausgeführt bzw. verändert in den EEPROM zurückgeschrieben werden. Dieser Modus stellt ein Äquivalent zur START/STOP-Tasten-Bedienung an der Platine dar und kann selbstverständlich parallel dazu genutzt werden. Die GUI also als Addon zum Stand-Alone-Betrieb.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;PC-Profil&amp;quot;&#039;&#039;&#039; - Es wird ein Programm (Temperaturkurve) ausgeführt welche zuvor am Computer erstellt / editiert wurde. In diesem Modus gibt der Computer Temperaturwerte vor, welche live über die USB-Schnittstelle zum PIC übertragen werden und mit dem dort integrierten PID-Regler ausgeführt werden. Das ermöglicht eine on-the-fly Veränderung der Temperaturkurve während des Backvorgangs. Temperaturkurven können aus Dateien oder dem EEPROM importiert und auch wieder exportiert werden. CSV-Dateien können ebenfalls importiert und exportiert werden. Die &amp;quot;Eingabe&amp;quot; der Temperaturkurve erfolgt entweder über Import (CSV/EEPROM), per Mausklick auf dem zentralen Diagramm oder im sog. DataGridView. Weiteres siehe Unterpunkt &amp;quot;Eingabe der Temperaturkurve (Reflowprofil)&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;manueller Ablauf&amp;quot;&#039;&#039;&#039; - In diesem Modus wird (im Gegensatz zu den oberen beiden Modi &amp;quot;Ofen-Profil&amp;quot; und &amp;quot;PC-Profil&amp;quot;) keine Temperatur geregelt. Hier wird die Leistung des Ofens in % eingestellt und gesteuert. Der PID-Regler ist nicht in Aktion. Die Temperatur, Temperaturänderung so wie der Temperaturverlauf werden selbstredend angezeigt bzw. im Diagramm dargestellt. Der Modus &amp;quot;manueller Ablauf&amp;quot; fährt ähnlich dem Modus &amp;quot;PC-Profil&amp;quot; die im DataGridView eingetragenen Leistungs-Zeit-Punkte ab. Für jeden Zeitpunkt ist eine Leistung vorgegeben. Die Eingabe erfolgt ähnlich wie unter &amp;quot;Eingabe der Temperaturkurve (Reflowprofil)&amp;quot; beschrieben. Nur eben, dass eine Leistung und keine Temperatur angegeben wird. Die Eingabe der Leistung kann nicht im Zeit-Temperatur-Diagramm erfolgen sondern mittels der Schieberegler oder direkt tabellarisch.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;manueller Modus&amp;quot;&#039;&#039;&#039; - Dieser Modus enthält 2 Submodi&lt;br /&gt;
** &amp;quot;manueller Leistungsmodus&amp;quot; - Auch in diesem Modus wird die Leistung gesteuert. Es wird keine Temperatur geregelt, der PID-Regler für die Temperatur ist nicht in Betrieb. Die Einstellung hier erfolgt über die drei Schieberegler oder über eine numerische Eingabe durch Klick auf die Leistungsangabe unter dem Schieberegler. Durch Klick auf die Texte &amp;quot;TOP&amp;quot;, &amp;quot;BOTTOM&amp;quot;, &amp;quot;FAN&amp;quot; (Oberhitze, Unterhitze, Lüfter) können selbige deaktiviert bzw. aktiviert werden. Auch in diesem Modus wird Temperatur, Temperaturänderung so wie der Temperaturverlauf dargestellt.&lt;br /&gt;
** &amp;quot;manueller Temperaturmodus&amp;quot; - Hier wird die Temperatur wieder mittels des Temperatur-PIDs geregelt. Die Temperatur wird entweder mittels Schieberegler (Ober- und Unterhitze-Regler sind jetzt gekoppelt) oder durch eine numerische Eingabe unterhalb der Schieberegler vorgegeben. Anzeige wie im &amp;quot;manuellen Leistungsmodus&amp;quot;. Der Lüfter kann unabhängig vom PID in seiner Leistung geregelt werden. Ein evtl. durch den Luftstrom verursachter Temperaturabfall wird vom PID selbstverständlich ausgeregelt (aus diesem Grunde ist es ja ein Regler).&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Programmieren&amp;quot;&#039;&#039;&#039; - Hier kann ein neues &#039;&#039;&#039;Temperatur&#039;&#039;&#039;-Programm für den EEPROM-Speicher des Ofens erstellt und editiert werden. Die Eingabemöglichkeiten sind unter &amp;quot;Eingabe der Temperaturkurve (Reflowprofil)&amp;quot; beschrieben. Dieser Modus ist zum reinen Programmieren des Ofens gedacht und ermöglicht keine weitere Steuerung oder Überwachung des Ofens.&lt;br /&gt;
&lt;br /&gt;
=== Eingabe der Temperaturkurve (Reflowprofil) ===&lt;br /&gt;
[[Datei:datagridview.png|thumb|right|400px|tabellarische Anzeige und Editiermöglichkeit der Temperaturkurve]]&lt;br /&gt;
Die Eingabe der Temperaturkurve erfolgt entweder über Import (CSV/EEPROM), per Mausklick auf dem zentralen Diagramm oder im sog. DataGridView (Excel-ähnliche Bedienung in tabellarischer Form). &lt;br /&gt;
&lt;br /&gt;
* CSV-Import + Export&lt;br /&gt;
* EEPROM-Import + Export&lt;br /&gt;
* Im rechts stehenden Screenshotbeispiel wird eine tabellarische Eingabeform mit einem DataGridView gezeigt: Die Temperatur (erster Temperaturpunkt = Punkt 0) von 100°C wird linear über einen Zeitraum von 0-30s verteilt. Bei 30s hat der Ofen die Temperatur von 100°C. Dafür setzt die Regelung die Oberhitze, die Unterhitze ein. Der Lüfte ist deaktiviert. In der Zeit von 30s bis 120s wird die Temperatur nun von 100°C auf 150°C linear angehoben. Von 120s bis 180s Backzeit steigt die Temperatur von 150°C auf 250°C. Von 180s bis 200s wird die Temperatur auf 280°C angehoben. Anschließend wird sie zwischen 200s und 220s auf 280°C gehalten (280°C@200s und 280°C@220s) um dann bis 240s wieder auf 250°C zu fallen. Bis zum Zeitpunkt 300s wird dann die Temperatur 30°C angestrebt. Zusätzlich ist der Lüfter nun aktiviert (soweit der Ofen eine Umluftfunktion besitzt). Bei Punkt 7 sind Ober- und Unterhitze deaktiviert nur noch der Lüfter kühlt. Da hier bei &amp;quot;Zeit[s]&amp;quot; die 0 eingetragen wird der Zustand (hier nur Lüfter an) für einen unendlich langen Zeitraum auf 0 gehalten. Also so lange wie das Programm aktiviert ist wird der Lüfter laufen. Natürlich könnte man hier auch z.B. 100°C und Zeitpunkt 0s eintragen. Dann würde der Ofen bis zum manuellen Beenden des Programms (klick auf STOP-Button oder Drücken des START/STOP-Tasters auf der Platine/Steuerung) 100°C halten.&lt;br /&gt;
* Alle Zellen des DataGridView sind editierbar (zur Veränderung der Temperatur, Zeitpunkt, ...)&lt;br /&gt;
* Direkter Klick auf das zentrale Temperatur-Zeit-Diagramm trägt den Zeitpunkt so wie die Temperatur unter dem Mauszeiger in die Tabelle (das DataGridView) ein. Die ausgewählte Zeile wird beschrieben oder überschrieben. Neue Zeilen (also Temperatur-Zeit-Punkte) können durch klick auf den &amp;quot;Plus-Button&amp;quot; hinzugefügt werden. Ebenso ist das Löschen oder Verschieben einer oder mehrerer Zeile gleichzeitig möglich.&lt;br /&gt;
&lt;br /&gt;
=== Beschreibung der Steuerungsmöglichkeiten ===&lt;br /&gt;
In Abhängigkeit des gewählten Modus bestehen einige Steuerungs-, Einstellungs- und Kontrollmöglichkeiten:&lt;br /&gt;
* &#039;&#039;&#039;Schieberegler&#039;&#039;&#039; für Temperatur od. Leistung (je nach Modus) für Oberhitze, Unterhitze und Lüfter. Je nach Hardwareausführung. &lt;br /&gt;
** Klick auf &amp;quot;TOP&amp;quot;, &amp;quot;BOTTOM&amp;quot; oder &amp;quot;FAN&amp;quot; aktiviert oder deaktiviert die entsprechende Funktion bzw. Hardware.&lt;br /&gt;
** Numerische Eingabe der Werte für die Schieberegler durch Klick auf die Anzeige unterhalb der Schieberegler. Werte können auch im deaktivierten Zustand angegeben werden. Die Übernahme erfolgt durch den &amp;quot;Aktivierungsklick&amp;quot; auf &amp;quot;TOP&amp;quot;, &amp;quot;BOTTOM&amp;quot; oder &amp;quot;FAN&amp;quot;&lt;br /&gt;
* &#039;&#039;&#039;T1, dT1, T2, dT2&#039;&#039;&#039; - Anzeige der gemessenen Temperatur so wie die momentane Temperaturänderung am jeweiligen Sensor. &lt;br /&gt;
* &#039;&#039;&#039;Bedienbuttons&#039;&#039;&#039;&lt;br /&gt;
** Play - Startet das Programm am angegebenen Startpunkt (siehe unten)&lt;br /&gt;
** Pause - Pausiert das Programm - weitere Pauseoptionen siehe unten&lt;br /&gt;
** Stop - Stopt den Programmablauf&lt;br /&gt;
** Vor / Zurück - Springt zwischen Temperaturpunkten hin und her. Dient zum überspringen oder zurückspringen zu gewissen Temperatur-Zeit-Punkten. Ermöglicht z.B. das Überspringen eines Ablaufes der eine lange Preheat- oder Dryphase hat.&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Status&amp;quot;&#039;&#039;&#039; - zeigt den aktuellen Zustand des Programms an (READY, START, WAITING, PAUSE, ...)&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;RESET&amp;quot;&#039;&#039;&#039; - setzt das (begonnene) Programm zurück. Beinhaltet neben dem Programmablauf auch das Zurücksetzen der graphischen Anzeige des Diagramms, etc.&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Startpunkt&amp;quot;&#039;&#039;&#039; - legt den ersten Punkt des Programmablaufes fest. &lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Wiederholungen&amp;quot;&#039;&#039;&#039; - ermöglicht das wiederholte Backen ohne das Programm händisch immer wieder neu starten zu müssen. Die Anzahl der Wiederholungen ist einstellbar (0 für unendlich viele) und es ist eine Wartezeit zwischen den Wiederholungen einstellbar. Alternativ kann eine Meldung nach jedem vollendeten Backvorgang abgegeben werden. Nach Bestätigung dieser wird die nächste Wiederholung ausgeführt.&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Pause&amp;quot;&#039;&#039;&#039; - Pauseneinstellungen. Hier sind Optionen wählbar was passieren soll, falls der Pausebutton betätigt wird:&lt;br /&gt;
** Pausezeit - gibt an wie lange die Pause dauern soll [s], danach fährt das Programm automatisch gemäß des gewählten Pausemodus fort. Für eine Pause ohne automatisches Fortfahren (Countdowntimer) &#039;0&#039; angeben.&lt;br /&gt;
** Pausemodus &amp;quot;aktuelle Temperatur halten, WarmUp, Fortsetzen&amp;quot; - Ofen hält die Temperatur (Zieltemperatur) des Zeitpunktes als der Pausebutton betätigt wurde. WarmUp bedeutet, dass nach dem Beenden des Pausemodus zunächst die Zieltemperatur wieder erreicht werden &#039;&#039;&#039;muss&#039;&#039;&#039; bevor der nächste Punkt angesteuert wird. Klingt paradox, wenn die Temperatur doch so und so gehalten wird, ist aber nicht so. Die Wahrscheinlichkeit ist hoch, dass der Pausemodus benutzt wird um die Ofentüre zu öffnen und Korrekturen an der Platine vorzunehmen. Unter Umständen ist die Heizung des Ofens jedoch nicht in der Lage den dadurch entstehenden Wärmeverlust zu kompensieren. Fährt das Programm dann sofort fort, so könnten evtl. kritische (Hoch-)Punkte des Lötprofils &amp;quot;unterfahren&amp;quot; werden. Dem wirkt WarmUp entgegen.&lt;br /&gt;
** Pausemodus &amp;quot;aktuelle Temperatur halten, Fortsetzen&amp;quot; - siehe oben, nur ohne WarmUp.&lt;br /&gt;
** Pausemodus &amp;quot;definierte Temperatur halten, WarmUp, Fortsetzen&amp;quot; - siehe oben. Statt der aktuellen Zieltemperatur wird jedoch nun im Pausemodus eine einzustellende Pausetemperatur gehalten. Mit WarmUp.&lt;br /&gt;
** Pausemodus &amp;quot;definierte Temperatur halten, Fortsetzen&amp;quot; - siehe oben, nur ohne WarmUp.&lt;br /&gt;
** &amp;quot;Pausetemperatur&amp;quot; - spezielle Temperatur die bei entsprechender Pausemoduswahl für die Dauer der Pause gehalten wird.&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Ende&amp;quot;&#039;&#039;&#039; - gibt an was am Ende eines durchlaufenen Reflow-Programms passieren soll. Ist der Wiederholungsmodus aktiviert, tritt dieses Ereignis erst nach Durchlauf aller Wiederholungen ein. Folgende Modi sind möglich:&lt;br /&gt;
** automatischer Reset - am Ende des Programms wird alles automatisch zurückgesetzt, alle Graphiken und Anzeigen gelöscht.&lt;br /&gt;
** manueller Reset - am Ende des Programms bleiben alle Anzeigen, Graphiken, etc erhalten und müssen vor Beginn eines neuen Reflowvorgangs händisch durch Klick auf &amp;quot;RESET&amp;quot; zurückgesetzt werden.&lt;br /&gt;
** Benutzermeldung - lässt eine Meldung erscheinen. Alle Anzeigen und Graphiken bleiben erhalten bis der Benutzer diese Meldung bestätigt. Mit Bestätigung dieser Meldung wird ein automatischer Reset vorgenommen.&lt;br /&gt;
&lt;br /&gt;
=== Loggen des Temperaturverlaufes ===&lt;br /&gt;
Es ist möglich jeden Backvorgang in eine CSV-Datei zu loggen. (Software- und PID-Einstellungen). Geloggte CSV-Dateien können eingelesen und im zentralen Temperatur-Zeit-Diagramm begutachtet werden. Ein Ist-Soll-Vergleich ist ebenso möglich wie die direkte Anzeige des Fehlers (&amp;quot;Ist minus Soll&amp;quot;). Dank CSV können die Daten auch mit anderen Programmen (Excel, etc.) weiterverarbeitet werden.&lt;br /&gt;
&lt;br /&gt;
== Ofen / Pizzaofen ==&lt;br /&gt;
=== Leistung und Volumen ===&lt;br /&gt;
=== Dämmung ===&lt;br /&gt;
=== Umluft ===&lt;br /&gt;
=== Bezugsquellen ===&lt;br /&gt;
=== Diskussionen im Forum ===&lt;br /&gt;
* Umfangreicher Thread u.A. Leistungsvermögen, Temperaturmessung und Dämmung [http://www.mikrocontroller.net/topic/270627]&lt;br /&gt;
&lt;br /&gt;
== FAQ ==&lt;br /&gt;
&lt;br /&gt;
* Q1: Ich habe einen PT100/PT1000 und möchte den anschließen. Geht das?&lt;br /&gt;
** A1: Ja natürlich. Dazu ist aber etwas externe Elektronik notwendig. Sowohl 2 ADC-Pins (mit 3V3 Betriebsspannung als fixe Referenzspannung), als auch die UART und SPI/I2C-Schnittstelle stehen zur freien Verfügung. Für PT100/PT1000 wird für vernünftige Messungen ohnehin eine Verstärkung (meist mit OPV) von Nöten sein. Da der PIC-interne ADC &amp;quot;nur&amp;quot; 10bit Auflösung bietet sollte ein externer 16bit ADC in Betracht gezogen werden um das Potential der PT100/PT1000 auszunutzen.&lt;br /&gt;
*Q2: Ich habe von günstigen Temperaturmessungen mit Dioden gehört. Geht das auch hier?&lt;br /&gt;
**A2: Ja. Die Vorwärtsspannung einer Diode verhält sich linear zur Sperrschichttemperatur. Diese Spannung (bei 25°C einer Si-Diode die bekannten 0,7V) kann mittels OPV verstärkt werden und auf einen Spannungsbereich von 0 ... 3V3 aufgebläht werden. Eine billige Lösung, auf Kosten der Genauigkeit. Doch eine Diode ist laut Datenblatt nur bis 150°C geeignet. Es ist also beim Löten mehr oder weniger Pfusch. Wenn ich schon eine Reflow-Steuerung baue, sollte ich doch nicht an ein paar Euro für eine gescheite Temperaturmessung sparen. Einige Anregungen vom Messgerätehersteller Keithley bzgl. der Halbleiterphysik mit interessanten Formeln [http://www.keithley.de/support/data?asset=50486]. Oder natürlich der Klassiker von Thomas Pfeifer [http://thomaspfeifer.net/backofen_smd_reflow.htm]. Oder ein Beitrag mit LT-Spice Simulation zum Thema [http://www.mikrocontroller.net/topic/270627#2833883].&lt;br /&gt;
* Q: God why ... ?&lt;br /&gt;
** A: Because we can !&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Verbesserungen Prototyp ===&lt;br /&gt;
* Bauteile weiter weg von Schraublöchern&lt;br /&gt;
* Dazu Kreis rund um Bohrung auf Bestückdruck&lt;br /&gt;
* Masseanbindung Quarz&lt;br /&gt;
* Klemmen weiter weg vom Rand&lt;br /&gt;
* Klemme und Sicherungshalter weiter auseinander, damit Schutzhabe draufpasst&lt;br /&gt;
* Bohrungen für Drossel 0,2mm größer machen&lt;br /&gt;
* Teilenummer für Conrad-USB-Buchse in BOM übernehmen.&lt;br /&gt;
* Stiftleiste P1  weiter weg von P2 und P4&lt;br /&gt;
* Varistoren näher an Klemmen platzieren&lt;br /&gt;
* Bestückvarianten defineren: 1. minimal 2. Standard 3. Externe Leds und Schalter.&lt;br /&gt;
&lt;br /&gt;
=== Errata Projekt ===&lt;br /&gt;
* LED-Beschriftung passt nicht ganz (Schltplan Netlabel OUT1,2,3,4 sind durcheinander gekommen)&lt;br /&gt;
* Schaltplan UNL2003 fehlerhafte Zuordnung IN5,6,7 &amp;lt;&amp;gt; OUT7,6,5&lt;br /&gt;
* Brückengleichrichter / Optokoppler NICHT die im Schaltplan angegebenen Bestellnummern von Reichelt verwenden. BOM-Bauteile und Bestellnummern sind ok.&lt;br /&gt;
* Beim MOSFET R39 ist die Masseanbindung falsch. Es bestehen drei Möglichkeiten:&lt;br /&gt;
** 1. 0-R-Brücke für R39 einbauen und auf Strombegrenzung verzichten.&lt;br /&gt;
** 2. Eine Polyfuse mit Bauform 1206 einbauen. &lt;br /&gt;
** 3. Das kleine Leiterbahnstückchen zwischen R38 und R39 unterbrechen und statt dessen die Leiterbahn zwischen R39 und der Klemme mit der Durchkontaktierung bei R38 verbinden.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* Diskussion [http://www.mikrocontroller.net/topic/297217 Diskussion]&lt;br /&gt;
* Dextrel Nulldurchgang [http://www.dextrel.net/diyzerocrosser.htm Nulldurchgangschaltung]&lt;br /&gt;
* Gehäuse [http://www.hammondmfg.com/pdf/RM2015M.pdf Gehäuse Hammond]&lt;br /&gt;
* Bezugsquelle SOS Elektronik [http://www.soselectronic.com/?str=371&amp;amp;artnum=73595&amp;amp;name=hammond-ritec-rm2055m]&lt;br /&gt;
* Bezugsgquelle [http://www.druckerzubehoer.de/shop/product/catid/H-UNIVERSALZUBEHOER_HZB/subcatid/UNIVERSALZUBEHOER_GROUP1_HZB/productid/1727063-390722LA/site/1/lng/de_DE Mini USB Netzteil]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Projekte]]&lt;br /&gt;
[[Kategorie:PIC]]&lt;br /&gt;
[[Kategorie:PIC-Boards]]&lt;br /&gt;
[[Kategorie:Platinen]]&lt;/div&gt;</summary>
		<author><name>Frankman</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=Reflow_Ofen_Steuerung&amp;diff=76097</id>
		<title>Reflow Ofen Steuerung</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=Reflow_Ofen_Steuerung&amp;diff=76097"/>
		<updated>2013-05-29T21:08:16Z</updated>

		<summary type="html">&lt;p&gt;Frankman: /* Funktionen und Modi */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Datei:RFB.jpg]]&lt;br /&gt;
== Einleitung ==&lt;br /&gt;
[[Datei:pcb.png|thumb|right|400px|unbestücktes PCB der Reflow-Ofen-Steuerung]]&lt;br /&gt;
Hier wird eine weitere Reflow-Ofen-Steuerung beschrieben.&lt;br /&gt;
=== Zum Nachbauen ===&lt;br /&gt;
* Spezifikation: [[Datei: Spec Reflow.pdf]]&lt;br /&gt;
* Schaltplan: [[Datei:Reflow.pdf]]&lt;br /&gt;
* Gerberdaten: [[Datei:Gerber Reflow.pdf]]&lt;br /&gt;
* Assemblydrawing: [[Datei:Assembly Reflow.pdf]] &lt;br /&gt;
* Altium-Files: [[Datei:Reflow.zip]]&lt;br /&gt;
* Stückliste als CSV: [[Datei:Reflow.csv]]&lt;br /&gt;
* Stückliste als Open Office: [[Datei:Reflow.ods]]&lt;br /&gt;
* PC Programm: TBD&lt;br /&gt;
* Sourcen PC-Programm: TBD&lt;br /&gt;
* PIC Programm (*.hex): TBD&lt;br /&gt;
* Sourcen Pic-Programm: TBD&lt;br /&gt;
&lt;br /&gt;
=== Motivation ===&lt;br /&gt;
Die Gründe, eine weitere Steuerung zu entwerfen, waren:&lt;br /&gt;
&lt;br /&gt;
# Die Möglichkeit, auch größere Öfen mit 2 Phasen betreiben zu können.&lt;br /&gt;
# Die Steuerung universell zu gestalten. Es sollte möglich sein, diese nicht nur zum Reflow löten zu verwenden.&lt;br /&gt;
# Die Schaltung sollte in Altium entwickelt werden. (Warum kein Eagle??? Altium User wissen es.... :-)&lt;br /&gt;
# Die Schaltung sollte mit USB ausgestattet sein.&lt;br /&gt;
=== Eigenschaften &amp;amp; Spezifikationen ===&lt;br /&gt;
* Temperaturmessung: bis zu 2x &#039;&#039;&#039;Thermoelement&#039;&#039;&#039; (K-Typ) mit MAX6675 (abgekündigt) oder Nachfolger MAX31855 (pin- aber nicht softwarekompatibel)&lt;br /&gt;
* &#039;&#039;&#039;Leistungsstufen&#039;&#039;&#039;: 3x voneinander unabhängige Triac 800V bei 25A, limitiert auf &#039;&#039;&#039;10A @ 250VAC&#039;&#039;&#039; (z.B. Oberhitze, Unterhitze, Umluft)&lt;br /&gt;
* &#039;&#039;&#039;Nulldurchgangserkennung&#039;&#039;&#039; ermöglicht Wellenpaket-, Phasenan- und abschnittssteuerung, galvanische Trennung selbiger&lt;br /&gt;
* 1x &#039;&#039;&#039; MOSFET-Ausgang&#039;&#039;&#039; PWM z.B. für 12V Lüfter, max. 55V 3,5A&lt;br /&gt;
* &#039;&#039;&#039;feste Programme&#039;&#039;&#039; im EEPROM über 2-Tasterbedienung und LEDs wähl- und ausführbar. &#039;&#039;&#039;PC-unabhängiger Betrieb&#039;&#039;&#039;. Beliebig viele Programme möglich, für die Auswahl stehen 4 benutzer-konfigurierbare LEDs zur Verfügung&lt;br /&gt;
* Betrieb am Computer für mehr Reflowprofile&lt;br /&gt;
* Mini-USB-Buchse zur Steuerung / Programmierung über GUI&lt;br /&gt;
* Günstiges passendes &#039;&#039;&#039;Gehäuse&#039;&#039;&#039;, alle LEDs und Taster auf Stiftleisten herausgeführt&lt;br /&gt;
* PID-Temperaturregler&lt;br /&gt;
* UART, SPI, I2C und 2x ADC auf Stiftleisten herausgeführt (-&amp;gt; Erweiterungen)&lt;br /&gt;
* Versorgung über USB (&amp;lt; 100mA), interne Versorgungsspannung 3,3V&lt;br /&gt;
* umfangreiche EMV-gerechte Entstörung für den Bedarfsfall&lt;br /&gt;
&lt;br /&gt;
== Technische Realisierung==&lt;br /&gt;
=== PIC18LF2550 Grundbeschaltung ===&lt;br /&gt;
[[Datei:osc_vs_vcc.png|thumb|right|200px|Taktraten und Versorgungsspannung PIC18LF2550 vs. PIC18LF2550, Datenblatt S. 370/438]]&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 3/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Hier kommt ein PIC18&#039;&#039;&#039;L&#039;&#039;&#039;F2550 zum Einsatz. Er verfügt über eine USB-Schnittstelle und ist für Betriebsspannungen von 2 ... 5,5V ausgelegt. Sein Verwandter PIC18F2550 (ohne L) ist nicht für Betriebsspannungen &amp;lt; 4,2V ausgelegt. Dies ist bei USB sowiesor nicht immer erfüllt und die Thermoelement ICs vertragen ohnehin keine 5V, daher wurde die Betriebsspannung auf 3,3V reduziert. Neben Standard-Decoupling (100nF Kerko pro Vcc-Vss-Pärchen) wurde das ICSP-Interface in alt bewährter Pinbelegung (PICKit1,2,3) angebracht. PGD und PGC sind nicht weiter beschaltet, MCRL wird in Standardbeschaltung als Resetpin verwendet. Der Resetschalter findet sich auf dem Top-Sheet (Schaltplan S. 1/22). Die Taktversorgung erfolgt zwingend über einen 24 MHz Quarz (-&amp;gt; USB). Man beachte diesbezüglich rechts stehende Grafik zu Taktraten und Versorgungsspannungen (Vdd bzw. auch Vcc genannt). Auch zu finden im Datenblatt des PICs auf Seite 370.&lt;br /&gt;
&lt;br /&gt;
=== PIC18LF2550 USB Beschaltung ===&lt;br /&gt;
[[Datei:usb_part.png|thumb|right|200px|PIC18(L)F2455/2550/4455/4550 Standard &lt;br /&gt;
USB-Beschaltung am PIC]]&lt;br /&gt;
[[Datei:usb_protect.png|thumb|right|200px|USB-Schutzbeschaltung und Mini-USB-Buchse]]&lt;br /&gt;
&lt;br /&gt;
Die Beschaltung der USB-Schnittstelle am PIC ist 1:1 aus dem Datenblatt übernommen. Zum Einsatz kommt eine Mini-USB-Buchse (J1).&lt;br /&gt;
Der Gedanke war: Erstens ein sehr preiswertes, fertiges Netzteil verwenden zu können, (ca. 3,60 € bei druckerzubehoer.de) und zweitens, die Steuerung auch mit dem PC / Laptop versorgen zu können.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 4/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
FER1,2 und C7 filtern den Schirm nach GND. Standardmäßig wird man hier wohl 0-Ohm-Widerstände einsetzen. Falls ein Besuch im EMV-Labor geplant ist, weicht man auf den Ferrit aus. C5 und C6 filtern das Signal zusammen mit der Common-Mode-DrosselL1. Die Drossel kann mit den 0-Ohm-Brücken R8 und R9 überbrückt (gespart) werden. IC2 ist als ESD-Schutz gedacht und kann ebenfalls bei ausgeprägten Kostenbewustsein gespart werden. Die Widerstände R6 und R7 dürfen NICHT bestückt werden. FER1,2, C5, IC2 müssen nicht zwingend bestückt werden. Die Bestückung wurde vorgehalten um im Problemfall einfache Abhilfe schaffen zu können.&lt;br /&gt;
&lt;br /&gt;
=== 3,3V Spannungsversorgung ===&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 2/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Die 3,3V Versorgungsspannung für die gesamte Platine wird aus V_USB mittels des LDO Spannungsreglers TOREX - XC6206P332MR abgeleitet. Günstig, SOT-23, klein, 2x 1µF Kondensatoren benötigt, 3,3V max. 250mA. Der hat auch einen sehr kleinen Ruhestrom.&lt;br /&gt;
&lt;br /&gt;
=== Taster ===&lt;br /&gt;
*Der Resettaster zieht den MCLR-Pin nach GND und löst damit den Reset aus. MCLR ist gem. der Standartbeschaltung mit einem 10k Pullup versehen.&lt;br /&gt;
*Die übrigen beiden Taster ziehen RA4 bzw. RB5 ebenfalls nach GND.&lt;br /&gt;
&lt;br /&gt;
=== LEDs + ULN2003L ===&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 11/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Um alle LEDs auf der Platine (3x Optotriac + 7x Status) ansteuern zu können wurde auf das 7fach Darlington-Array ULN2003L zurückgegriffen. Es dient desweiteren auch als &amp;quot;MOSFET-Treiber für Arme&amp;quot;. Alle LEDs werden von diesem Transistor-Array nach Masse geschaltet. Dient der Entlastung der PIC-Ausgänge. Und kostet ja auch nicht viel.&lt;br /&gt;
&lt;br /&gt;
=== MOSFET-Leistungsausgang ===&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 22/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Hier kommt der einfacher N-Kanal MOSFET (LogicLevel) PHT8N06LT zum Einsatz. Er wird über das ULN2003L Array getrieben und ermöglicht den Anschluss eines DC-Verbrauchers mit max. 55V bei 3,5A. Hier könnte beispielsweise ein PC-Lüfter zur Kühlung od. Umluft angeschlossen und über PWM geregelt/gesteuert werden. Ein Gatewiderstand von 100 Ohm ist zum Schutz des Treibers vorgesehen. Eine 0-Ohm-Brücke ist stattdessen aber auch möglich, wenn man eine höhere Leistung schalten möchte.Die Leiterbahnen sollten die 3A schon hergeben. Der 100 Ohm Widerstand bildet eine Stromquelle. Sobald der Strom durch den MOSFET und den Widerstand 33mA erreicht, sinkt UGS gegen 0 V. Folge: Der Mosfet sperrt ( und bleibt ganz....)&lt;br /&gt;
Es kann hier prinzipiell auch ein anderer Mosfet im SOT223-Gehäuse zum Einsatz kommen. Achten sollte man darauf, das der MOSFET schon bei 3,3V Ugs gut leiten sollte.&lt;br /&gt;
&lt;br /&gt;
=== Nulldurchgangserkennung ===&lt;br /&gt;
[[Datei:zerocross.png|thumb|right|200px|Nulldurchgangserkennung]]&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 5/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Die Nulldurchgangserkennung erfolgt nach einer sehr bekannten - jedoch ausgeklügelten - Schaltung.  [http://www.dextrel.net/diyzerocrosser.htm]&lt;br /&gt;
&lt;br /&gt;
ACHTUNG: DER IM SCHALTPLAN VERZEICHNETE OPTOKOPPLER und BRÜCKENGLEICHRICHTER VON REICHELT DARF KEINESFALLS VERWENDET WERDEN! Pinbelegung! Bitte den Optokoppler aus der Stückliste nehmen!&lt;br /&gt;
&lt;br /&gt;
Während einer Halbwelle wird C14 über R33 und R35 bzw. D5 geladen. Währenddessen ist T1 gesperrt. Sobald die Wechselspannung (L1-N über Spannungsteiler (R33+R35) / R34) kleiner ist als die Spannung über C14, steuert T1 durch. Dann entlädt sich C14 über den LED-Vorwiderstand R32. Der durch-steuernde Optokoppler zieht die Sync-Leitung nach GND. (Pullup Sync-Leitung = R31). Dies löst beim PIC auf INT2 einen Interrupt aus. &lt;br /&gt;
&lt;br /&gt;
Dieser Interrupt ermöglicht eine präzise Wellenpaket-, Phasenanschnittsteuerung je nach Bedarf. Das Schalten im Nulldurchgang bei der Wellenpaketsteuerung reduziert EMV-Störungen. Für Phasenanschnitt ist prinzipbedingt ohnehin eine Nulldurchgangserkennung notwendig. Außerdem liefert sie eine völlig ausreichend genaue Zeitbasis für alle Programmabläufe.&lt;br /&gt;
&lt;br /&gt;
=== Triac-Ausgänge + Snubber ===&lt;br /&gt;
[[Datei:triac.png|thumb|right|200px|Triac-Ausgangsbeschaltung]]&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 19,20,21/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Die Ansteuerung des eigentlichen Leistungstriacs BTA140-800 erfolgt über den Optotriac IS6005. Der Strom durch Letzteren wird durch R1x limitiert (Vorwiderstand). R2x und R5x limitieren wiederum den Strom durch den Optotriac. Wenn dieser zündet so folgt unmittelbar der &amp;quot;Leistungstriac&amp;quot; der dann die Last schaltet.&lt;br /&gt;
&lt;br /&gt;
S1x ist ein Sicherungshalter um die Lasten einzeln absichern zu können. Wert 10A Mittelträge.&lt;br /&gt;
&lt;br /&gt;
R3x, R4x, C3x bilden ein Snubber-Network, L1X verhindert eine zu schnelle Stromanstiegsgeschwindikeit damit der Triac nicht &amp;quot;von selbst&amp;quot; zündet. Weglassen äußert sich meist in einem fast nicht hörbaren Click. Damit zeigt einem dann der Triac, dass er ab jetzt für immer recht niederohmig geworden ist. Die Regelung der Temperatur braucht dann nicht mehr über den Prozessor erfolgen, sondern nur noch mit dem Ein-/Ausschalter..... :-)&lt;br /&gt;
&lt;br /&gt;
=== Thermoelemente (MAX6675/MAX31855)  ===&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 6,7/22&#039;&#039;&#039;&lt;br /&gt;
Der inzwischen abgekündigte MAX6675 bzw. sein ehrenwerter Nachfolger MAX31855 sind einfach zu handhabende Thermoelement-ICs mit Kaltstellenkompensation. Thermoelemente funktionieren durch das Verschweißen zweier verschiedener Legierungen (beim K-Typ Thermoelemnt Ni und CrNi). Durch den durch die Umgebungstemperatur bedingten Wärmefluss zwischen beiden entsteht ein elektrische Spannung. Diese wird von besagten ICs verstärkt und digitalisiert (ADC). Diese Spannung / Temperatur ist natürlich wieder relativ zur Umgebungstemperatur an der Kaltstelle (Kontaktierung der beiden Drähte mit dem Messinstrument). Daher messen diese ICs auch gleich die Umgebungstemperatur (Kaltstellenkompensation genannt) mit, verrechnen das und geben das Ergebnis auf der SPI-Schnittstelle aus. MAX6675 leistet 12bit also 0,25°C Auflösung (nicht Genauigkeit!) über einen Temperaturbereich von 0°C to +1024°C. Außerdem wird ein nicht/fehlerhaft angeschlossenes Thermoelement erkannt. Der Thermocouple-IC wird an die SPI-Schnittstelle des PICs angeschlossen (hier MSSP genannt). &lt;br /&gt;
&lt;br /&gt;
MAX6675 und MAX31855 scheinen entgegen der Adafruit-Information [http://www.adafruit.com/products/269] doch pinkompatibel zu sein - die Ansteuerung unterscheidet sich jedoch definitiv. (Zitat: &amp;quot;Now uses the MAX31855K instead of the MAX6675, so it can measure a wider temperature measurement range. Please note! the MAX31855 is not pin compatible or drop-in code compatible with the MAX6675. We do have an Arduino library for both chips but you&#039;ll need to adjust any existing MAX6675 designs for the mew MAX31855. The MAX6675 has been discontinued by Maxim.&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Es wurden 2 dieser ICs und damit 2 Temperaturmessstellen vorgesehen. Dies ermöglich die Messung für eine Regelung der Temperatur so wie eine zusätzliche Überwachung kritischer Bauteile (z.B. ICs oder LEDs). Die Minimalbestückung sieht einen MAX6675/MAX31855 vor. Die Auswahl in der Firmware erfolgt über einen der beiden GPIO-Pins RA5 oder RA0 via dem ChipSelect (CS) des MAX6675/MAX31855.&lt;br /&gt;
&lt;br /&gt;
Neben dem MAX6675/MAX31855 wurde ein Decoupling-Kondensator (C8x, Standard 100nF) so wie ein weiterer im Messpfad (C9x) zur Zwecken der Entstörung vorgeshen. C9x 100nF sollte nur bestückt werden wenn Probleme bei der Temperaturmessung entstehen (z.B. unrealstisch stark schwankende Werte).&lt;br /&gt;
&lt;br /&gt;
=== ADC, SPI, UART &amp;amp; I2C Stiftleiste ===&lt;br /&gt;
ADC, SPI, UART und I2C sind zu Zwecken der Kalibrierung / Erweiterung / Einstellung / Debugging au Stiftleisten herausgeführt:&lt;br /&gt;
Ähnlichkeiten mit dem FTDI-USB-TTL-Kabel bzw. Arduino XXX Bla Bla Bla Schnittstellenkonverter sind natürlich rein zufällig.&lt;br /&gt;
&lt;br /&gt;
Die I2C-Schnittstelle wurde auf eine Stiftleiste geführt, um z.B. einem LM75 o.ä. anschließen zu können. Damit stehen zur Kalibrierung der Thermoelemente genaue Temperaturen zur Verfügung.&lt;br /&gt;
&lt;br /&gt;
Die Stiftleisten haben alle ein Raster von 2,54mm. So können Pin-Header, Wannenstecker oder ähnliches verwendet werden.&lt;br /&gt;
&lt;br /&gt;
Da ja viele Leute eigene Vorstellungen bezüglich der Frontplattengestaltung haben, wurden auch die Taster und LEDs auf Stiftleisten geführt.&lt;br /&gt;
&lt;br /&gt;
=== Kühlkörper ===&lt;br /&gt;
Da die Triac der Steuerung für bis zu 10A pro Kanal ausgelegt sind, kann man auf die Kühlkörper nicht verzichten. Es fallen bei 10A bis zu 13Watt Wärme pro Triac ab. Falls mann auf die Kühlkörper doch verzichten möchte, sollte man darauf achten, die Triac mit dem Kopf nach unten einzubauen. Diese können sich dann bei Überlast ganz von selber auslöten.... :-)&lt;br /&gt;
&lt;br /&gt;
=== Gehäuse ===&lt;br /&gt;
Die Leiterplatte wurde für ein Gehäuse von Hammond entwickelt.&lt;br /&gt;
Das Gehäuse ist zwar keine Schönheit, aber doch recht preiswert.&lt;br /&gt;
Typenbezeichnung: RM2055M&lt;br /&gt;
&lt;br /&gt;
== Firmware PIC ==&lt;br /&gt;
Die Entwicklung der Firmware für den PIC18LF2550  geht mit MPlab 8 respektive dem C18 Compiler von Statten. MPlab ist kostenlos, der C18 Compiler bis auf die stärkste Optimierungsstufe ebenfalls. Die Quellen für die Firmware werden auch offengelegt.&lt;br /&gt;
=== Programmstruktur- und ablauf ===&lt;br /&gt;
Nach anfänglicher Initialisierung des PIC startet die Statemachine [http://http://www.mikrocontroller.net/articles/Statemachine] [http://http://de.wikipedia.org/wiki/Endlicher_Automat]. Neben ihr findet in der main-Funktion nur noch die Abfrage der beiden Bedientasten statt. Mit dem Tastendruck wird zum Zwecke der Entprellung ein Timer gestartet. Alles Andere (incl. PID-Regelung, Wellenpaket- bzw. Phasenan- und Phasenabschnittssteuerung und USB) ist interruptbasiert.&lt;br /&gt;
&lt;br /&gt;
=== Taktversorgung, Nulldurchgangserkennung und Zeitbasis ===&lt;br /&gt;
=== USB ===&lt;br /&gt;
=== SPI für MAX6675 ===&lt;br /&gt;
=== SPI für MAX31855 ===&lt;br /&gt;
&lt;br /&gt;
=== Wellenpaketsteuerung ===&lt;br /&gt;
=== Phasenanschnitt, Phasenabschnitt ===&lt;br /&gt;
=== PWM für MOSFET ===&lt;br /&gt;
&lt;br /&gt;
== PC-Software (GUI) ==&lt;br /&gt;
[[Datei:gui_alpha.png|thumb|right|300px|Screenshot der GUI (noch Alpha) für den Reflow-Ofen-Controller]]&lt;br /&gt;
&lt;br /&gt;
Die GUI (englisch Graphical User Interface) ist der Einfachheit halber in VB.net programmiert und momentan noch im Alpha-Stadium. Auch hierfür liegen die Quellen später selbstverständlich offen.&lt;br /&gt;
&lt;br /&gt;
=== Funktionen und Modi ===&lt;br /&gt;
[[Datei:modi.png|thumb|right|400px|Auswahl der beschriebenen Modi durch Klick]]&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Ofen-Profil&amp;quot;&#039;&#039;&#039; - Es wird ein Programm (Temperaturkurve) aus dem EEPROM des Reflow-Ofens ausgeführt. Der Backvorgang kann mit der Software gesteuert (START, STOP, ...) und überwacht werden. Hierzu stehen Temperatur, Temperaturänderung, Heizleistung (Ober- und Unterhitze, Lüfter) so wie die graphische Darstellung im zentralen Diagramm zur Verfügung. Eingriffsmöglichkeiten, wie das Ändern der Temperaturkurve sind nicht vorgesehen. Dies soll ein reiner Überwachungs-Modus sein. Um die Temperaturkurve zu verändern zu können, sollte der Modus &amp;quot;PC-Profil&amp;quot; verwendet werden und die Temperaturkurve aus dem EEPROM importiert werden. Dann kann Selbige auch verändert und anschließend ausgeführt bzw. verändert in den EEPROM zurückgeschrieben werden. Dieser Modus stellt ein Äquivalent zur START/STOP-Tasten-Bedienung an der Platine dar und kann selbstverständlich parallel dazu genutzt werden. Die GUI also als Addon zum Stand-Alone-Betrieb.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;PC-Profil&amp;quot;&#039;&#039;&#039; - Es wird ein Programm (Temperaturkurve) ausgeführt welche zuvor am Computer erstellt / editiert wurde. In diesem Modus gibt der Computer Temperaturwerte vor, welche live über die USB-Schnittstelle zum PIC übertragen werden und mit dem dort integrierten PID-Regler ausgeführt werden. Das ermöglicht eine on-the-fly Veränderung der Temperaturkurve während des Backvorgangs. Temperaturkurven können aus Dateien oder dem EEPROM importiert und auch wieder exportiert werden. CSV-Dateien können ebenfalls importiert und exportiert werden. Die &amp;quot;Eingabe&amp;quot; der Temperaturkurve erfolgt entweder über Import (CSV/EEPROM), per Mausklick auf dem zentralen Diagramm oder im sog. DataGridView. Weiteres siehe Unterpunkt &amp;quot;Eingabe der Temperaturkurve (Reflowprofil)&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;manueller Ablauf&amp;quot;&#039;&#039;&#039; - In diesem Modus wird (im Gegensatz zu den oberen beiden Modi &amp;quot;Ofen-Profil&amp;quot; und &amp;quot;PC-Profil&amp;quot;) keine Temperatur geregelt. Hier wird die Leistung des Ofens in % eingestellt und gesteuert. Der PID-Regler ist nicht in Aktion. Die Temperatur, Temperaturänderung so wie der Temperaturverlauf werden selbstredend angezeigt bzw. im Diagramm dargestellt. Der Modus &amp;quot;manueller Ablauf&amp;quot; fährt ähnlich dem Modus &amp;quot;PC-Profil&amp;quot; die im DataGridView eingetragenen Leistungs-Zeit-Punkte ab. Für jeden Zeitpunkt ist eine Leistung vorgegeben. Die Eingabe erfolgt ähnlich wie unter &amp;quot;Eingabe der Temperaturkurve (Reflowprofil)&amp;quot; beschrieben. Nur eben, dass eine Leistung und keine Temperatur angegeben wird. Die Eingabe der Leistung kann nicht im Zeit-Temperatur-Diagramm erfolgen sondern mittels der Schieberegler oder direkt tabellarisch.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;manueller Modus&amp;quot;&#039;&#039;&#039; - Dieser Modus enthält 2 Submodi&lt;br /&gt;
** &amp;quot;manueller Leistungsmodus&amp;quot; - Auch in diesem Modus wird die Leistung gesteuert. Es wird keine Temperatur geregelt, der PID-Regler für die Temperatur ist nicht in Betrieb. Die Einstellung hier erfolgt über die drei Schieberegler oder über eine numerische Eingabe durch Klick auf die Leistungsangabe unter dem Schieberegler. Durch Klick auf die Texte &amp;quot;TOP&amp;quot;, &amp;quot;BOTTOM&amp;quot;, &amp;quot;FAN&amp;quot; (Oberhitze, Unterhitze, Lüfter) können selbige deaktiviert bzw. aktiviert werden. Auch in diesem Modus wird Temperatur, Temperaturänderung so wie der Temperaturverlauf dargestellt.&lt;br /&gt;
** &amp;quot;manueller Temperaturmodus&amp;quot; - Hier wird die Temperatur wieder mittels des Temperatur-PIDs geregelt. Die Temperatur wird entweder mittels Schieberegler (Ober- und Unterhitze-Regler sind jetzt gekoppelt) oder durch eine numerische Eingabe unterhalb der Schieberegler vorgegeben. Anzeige wie im &amp;quot;manuellen Leistungsmodus&amp;quot;. Der Lüfter kann unabhängig vom PID in seiner Leistung geregelt werden. Ein evtl. durch den Luftstrom verursachter Temperaturabfall wird vom PID selbstverständlich ausgeregelt (aus diesem Grunde ist es ja ein Regler).&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Programmieren&amp;quot;&#039;&#039;&#039; - Hier kann ein neues &#039;&#039;&#039;Temperatur&#039;&#039;&#039;-Programm für den EEPROM-Speicher des Ofens erstellt und editiert werden. Die Eingabemöglichkeiten sind unter &amp;quot;Eingabe der Temperaturkurve (Reflowprofil)&amp;quot; beschrieben. Dieser Modus ist zum reinen Programmieren des Ofens gedacht und ermöglicht keine weitere Steuerung oder Überwachung des Ofens.&lt;br /&gt;
&lt;br /&gt;
=== Eingabe der Temperaturkurve (Reflowprofil) ===&lt;br /&gt;
[[Datei:datagridview.png|thumb|right|400px|tabellarische Anzeige und Editiermöglichkeit der Temperaturkurve]]&lt;br /&gt;
Die &amp;quot;Eingabe&amp;quot; der Temperaturkurve erfolgt entweder über Import (CSV/EEPROM), per Mausklick auf dem zentralen Diagramm oder im sog. DataGridView (Excel-ähnliche Bedienung in tabellarischer Form). &lt;br /&gt;
&lt;br /&gt;
* CSV-Import + Export&lt;br /&gt;
* EEPROM-Import + Export&lt;br /&gt;
* Im rechts stehenden Screenshotbeispiel wird eine tabellarische Eingabeform mit einem DataGridView gezeigt: Die Temperatur (erster Temperaturpunkt = Punkt 0) von 100°C wird linear über einen Zeitraum von 0-30s verteilt. Bei 30s hat der Ofen die Temperatur von 100°C. Dafür setzt die Regelung die Oberhitze, die Unterhitze ein. Der Lüfte ist deaktiviert. In der Zeit von 30s bis 120s wird die Temperatur nun von 100°C auf 150°C linear angehoben. Von 120s bis 180s Backzeit steigt die Temperatur von 150°C auf 250°C. Von 180s bis 200s wird die Temperatur auf 280°C angehoben. Anschließend wird sie zwischen 200s und 220s auf 280°C gehalten (280°C@200s und 280°C@220s) um dann bis 240s wieder auf 250°C zu fallen. Bis zum Zeitpunkt 300s wird dann die Temperatur 30°C angestrebt. Zusätzlich ist der Lüfter nun aktiviert (soweit der Ofen eine Umluftfunktion besitzt). Bei Punkt 7 sind Ober- und Unterhitze deaktiviert nur noch der Lüfter kühlt. Da hier bei &amp;quot;Zeit[s]&amp;quot; die 0 eingetragen wird der Zustand (hier nur Lüfter an) für einen unendlich langen Zeitraum auf 0 gehalten. Also so lange wie das Programm aktiviert ist wird der Lüfter laufen. Natürlich könnte man hier auch z.B. 100°C und Zeitpunkt 0s eintragen. Dann würde der Ofen bis zum manuellen Beenden des Programms (klick auf STOP-Button oder Drücken des START/STOP-Tasters auf der Platine/Steuerung) 100°C halten.&lt;br /&gt;
* Alle Zellen des DataGridView sind editierbar (zur Veränderung der Temperatur, Zeitpunkt, ...)&lt;br /&gt;
* Direkter Klick auf das zentrale Temperatur-Zeit-Diagramm trägt den Zeitpunkt so wie die Temperatur unter dem Mauszeiger in die Tabelle (das DataGridView) ein. Die ausgewählte Zeile wird beschrieben oder überschrieben. Neue Zeilen (also Temperatur-Zeit-Punkte) können durch klick auf den &amp;quot;Plus-Button&amp;quot; hinzugefügt werden. Ebenso ist das Löschen oder Verschieben einer oder mehrerer Zeile gleichzeitig möglich.&lt;br /&gt;
&lt;br /&gt;
=== Beschreibung der Steuerungsmöglichkeiten ===&lt;br /&gt;
In Abhängigkeit des gewählten Modus bestehen einige Steuerungs-, Einstellungs- und Kontrollmöglichkeiten:&lt;br /&gt;
* &#039;&#039;&#039;Schieberegler&#039;&#039;&#039; für Temperatur od. Leistung (je nach Modus) für Oberhitze, Unterhitze und Lüfter. Je nach Hardwareausführung. &lt;br /&gt;
** Klick auf &amp;quot;TOP&amp;quot;, &amp;quot;BOTTOM&amp;quot; oder &amp;quot;FAN&amp;quot; aktiviert oder deaktiviert die entsprechende Funktion bzw. Hardware.&lt;br /&gt;
** Numerische Eingabe der Werte für die Schieberegler durch Klick auf die Anzeige unterhalb der Schieberegler. Werte können auch im deaktivierten Zustand angegeben werden. Die Übernahme erfolgt durch den &amp;quot;Aktivierungsklick&amp;quot; auf &amp;quot;TOP&amp;quot;, &amp;quot;BOTTOM&amp;quot; oder &amp;quot;FAN&amp;quot;&lt;br /&gt;
* &#039;&#039;&#039;T1, dT1, T2, dT2&#039;&#039;&#039; - Anzeige der gemessenen Temperatur so wie die momentane Temperaturänderung am jeweiligen Sensor. &lt;br /&gt;
* &#039;&#039;&#039;Bedienbuttons&#039;&#039;&#039;&lt;br /&gt;
** Play - Startet das Programm am angegebenen Startpunkt (siehe unten)&lt;br /&gt;
** Pause - Pausiert das Programm - weitere Pauseoptionen siehe unten&lt;br /&gt;
** Stop - Stopt den Programmablauf&lt;br /&gt;
** Vor / Zurück - Springt zwischen Temperaturpunkten hin und her. Dient zum überspringen oder zurückspringen zu gewissen Temperatur-Zeit-Punkten. Ermöglicht z.B. das Überspringen eines Ablaufes der eine lange Preheat- oder Dryphase hat.&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Status&amp;quot;&#039;&#039;&#039; - zeigt den aktuellen Zustand des Programms an (READY, START, WAITING, PAUSE, ...)&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;RESET&amp;quot;&#039;&#039;&#039; - setzt das (begonnene) Programm zurück. Beinhaltet neben dem Programmablauf auch das Zurücksetzen der graphischen Anzeige des Diagramms, etc.&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Startpunkt&amp;quot;&#039;&#039;&#039; - legt den ersten Punkt des Programmablaufes fest. &lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Wiederholungen&amp;quot;&#039;&#039;&#039; - ermöglicht das wiederholte Backen ohne das Programm händisch immer wieder neu starten zu müssen. Die Anzahl der Wiederholungen ist einstellbar (0 für unendlich viele) und es ist eine Wartezeit zwischen den Wiederholungen einstellbar. Alternativ kann eine Meldung nach jedem vollendeten Backvorgang abgegeben werden. Nach Bestätigung dieser wird die nächste Wiederholung ausgeführt.&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Pause&amp;quot;&#039;&#039;&#039; - Pauseneinstellungen. Hier sind Optionen wählbar was passieren soll, falls der Pausebutton betätigt wird:&lt;br /&gt;
** Pausezeit - gibt an wie lange die Pause dauern soll [s], danach fährt das Programm automatisch gemäß des gewählten Pausemodus fort. Für eine Pause ohne automatisches Fortfahren (Countdowntimer) &#039;0&#039; angeben.&lt;br /&gt;
** Pausemodus &amp;quot;aktuelle Temperatur halten, WarmUp, Fortsetzen&amp;quot; - Ofen hält die Temperatur (Zieltemperatur) des Zeitpunktes als der Pausebutton betätigt wurde. WarmUp bedeutet, dass nach dem Beenden des Pausemodus zunächst die Zieltemperatur wieder erreicht werden &#039;&#039;&#039;muss&#039;&#039;&#039; bevor der nächste Punkt angesteuert wird. Klingt paradox, wenn die Temperatur doch so und so gehalten wird, ist aber nicht so. Die Wahrscheinlichkeit ist hoch, dass der Pausemodus benutzt wird um die Ofentüre zu öffnen und Korrekturen an der Platine vorzunehmen. Unter Umständen ist die Heizung des Ofens jedoch nicht in der Lage den dadurch entstehenden Wärmeverlust zu kompensieren. Fährt das Programm dann sofort fort, so könnten evtl. kritische (Hoch-)Punkte des Lötprofils &amp;quot;unterfahren&amp;quot; werden. Dem wirkt WarmUp entgegen.&lt;br /&gt;
** Pausemodus &amp;quot;aktuelle Temperatur halten, Fortsetzen&amp;quot; - siehe oben, nur ohne WarmUp.&lt;br /&gt;
** Pausemodus &amp;quot;definierte Temperatur halten, WarmUp, Fortsetzen&amp;quot; - siehe oben. Statt der aktuellen Zieltemperatur wird jedoch nun im Pausemodus eine einzustellende Pausetemperatur gehalten. Mit WarmUp.&lt;br /&gt;
** Pausemodus &amp;quot;definierte Temperatur halten, Fortsetzen&amp;quot; - siehe oben, nur ohne WarmUp.&lt;br /&gt;
** &amp;quot;Pausetemperatur&amp;quot; - spezielle Temperatur die bei entsprechender Pausemoduswahl für die Dauer der Pause gehalten wird.&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;Ende&amp;quot;&#039;&#039;&#039; - gibt an was am Ende eines durchlaufenen Reflow-Programms passieren soll. Ist der Wiederholungsmodus aktiviert, tritt dieses Ereignis erst nach Durchlauf aller Wiederholungen ein. Folgende Modi sind möglich:&lt;br /&gt;
** automatischer Reset - am Ende des Programms wird alles automatisch zurückgesetzt, alle Graphiken und Anzeigen gelöscht.&lt;br /&gt;
** manueller Reset - am Ende des Programms bleiben alle Anzeigen, Graphiken, etc erhalten und müssen vor Beginn eines neuen Reflowvorgangs händisch durch Klick auf &amp;quot;RESET&amp;quot; zurückgesetzt werden.&lt;br /&gt;
** Benutzermeldung - lässt eine Meldung erscheinen. Alle Anzeigen und Graphiken bleiben erhalten bis der Benutzer diese Meldung bestätigt. Mit Bestätigung dieser Meldung wird ein automatischer Reset vorgenommen.&lt;br /&gt;
&lt;br /&gt;
=== Loggen des Temperaturverlaufes ===&lt;br /&gt;
Es ist möglich jeden Backvorgang in eine CSV-Datei zu loggen. (Software- und PID-Einstellungen). Geloggte CSV-Dateien können eingelesen und im zentralen Temperatur-Zeit-Diagramm begutachtet werden. Ein Ist-Soll-Vergleich ist ebenso möglich wie die direkte Anzeige des Fehlers (&amp;quot;Ist minus Soll&amp;quot;). Dank CSV können die Daten auch mit anderen Programmen (Excel, etc.) weiterverarbeitet werden.&lt;br /&gt;
&lt;br /&gt;
== Ofen / Pizzaofen ==&lt;br /&gt;
=== Leistung und Volumen ===&lt;br /&gt;
=== Dämmung ===&lt;br /&gt;
=== Umluft ===&lt;br /&gt;
=== Bezugsquellen ===&lt;br /&gt;
=== Diskussionen im Forum ===&lt;br /&gt;
* Umfangreicher Thread u.A. Leistungsvermögen, Temperaturmessung und Dämmung [http://www.mikrocontroller.net/topic/270627]&lt;br /&gt;
&lt;br /&gt;
== FAQ ==&lt;br /&gt;
&lt;br /&gt;
* Q1: Ich habe einen PT100/PT1000 und möchte den anschließen. Geht das?&lt;br /&gt;
** A1: Ja natürlich. Dazu ist aber etwas externe Elektronik notwendig. Sowohl 2 ADC-Pins (mit 3V3 Betriebsspannung als fixe Referenzspannung), als auch die UART und SPI/I2C-Schnittstelle stehen zur freien Verfügung. Für PT100/PT1000 wird für vernünftige Messungen ohnehin eine Verstärkung (meist mit OPV) von Nöten sein. Da der PIC-interne ADC &amp;quot;nur&amp;quot; 10bit Auflösung bietet sollte ein externer 16bit ADC in Betracht gezogen werden um das Potential der PT100/PT1000 auszunutzen.&lt;br /&gt;
*Q2: Ich habe von günstigen Temperaturmessungen mit Dioden gehört. Geht das auch hier?&lt;br /&gt;
**A2: Ja. Die Vorwärtsspannung einer Diode verhält sich linear zur Sperrschichttemperatur. Diese Spannung (bei 25°C einer Si-Diode die bekannten 0,7V) kann mittels OPV verstärkt werden und auf einen Spannungsbereich von 0 ... 3V3 aufgebläht werden. Eine billige Lösung, auf Kosten der Genauigkeit. Doch eine Diode ist laut Datenblatt nur bis 150°C geeignet. Es ist also beim Löten mehr oder weniger Pfusch. Wenn ich schon eine Reflow-Steuerung baue, sollte ich doch nicht an ein paar Euro für eine gescheite Temperaturmessung sparen. Einige Anregungen vom Messgerätehersteller Keithley bzgl. der Halbleiterphysik mit interessanten Formeln [http://www.keithley.de/support/data?asset=50486]. Oder natürlich der Klassiker von Thomas Pfeifer [http://thomaspfeifer.net/backofen_smd_reflow.htm]. Oder ein Beitrag mit LT-Spice Simulation zum Thema [http://www.mikrocontroller.net/topic/270627#2833883].&lt;br /&gt;
* Q: God why ... ?&lt;br /&gt;
** A: Because we can !&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Verbesserungen Prototyp ===&lt;br /&gt;
* Bauteile weiter weg von Schraublöchern&lt;br /&gt;
* Dazu Kreis rund um Bohrung auf Bestückdruck&lt;br /&gt;
* Masseanbindung Quarz&lt;br /&gt;
* Klemmen weiter weg vom Rand&lt;br /&gt;
* Klemme und Sicherungshalter weiter auseinander, damit Schutzhabe draufpasst&lt;br /&gt;
* Bohrungen für Drossel 0,2mm größer machen&lt;br /&gt;
* Teilenummer für Conrad-USB-Buchse in BOM übernehmen.&lt;br /&gt;
* Stiftleiste P1  weiter weg von P2 und P4&lt;br /&gt;
* Varistoren näher an Klemmen platzieren&lt;br /&gt;
* Bestückvarianten defineren: 1. minimal 2. Standard 3. Externe Leds und Schalter.&lt;br /&gt;
&lt;br /&gt;
=== Errata Projekt ===&lt;br /&gt;
* LED-Beschriftung passt nicht ganz (Schltplan Netlabel OUT1,2,3,4 sind durcheinander gekommen)&lt;br /&gt;
* Schaltplan UNL2003 fehlerhafte Zuordnung IN5,6,7 &amp;lt;&amp;gt; OUT7,6,5&lt;br /&gt;
* Brückengleichrichter / Optokoppler NICHT die im Schaltplan angegebenen Bestellnummern von Reichelt verwenden. BOM-Bauteile und Bestellnummern sind ok.&lt;br /&gt;
* Beim MOSFET R39 ist die Masseanbindung falsch. Es bestehen drei Möglichkeiten:&lt;br /&gt;
** 1. 0-R-Brücke für R39 einbauen und auf Strombegrenzung verzichten.&lt;br /&gt;
** 2. Eine Polyfuse mit Bauform 1206 einbauen. &lt;br /&gt;
** 3. Das kleine Leiterbahnstückchen zwischen R38 und R39 unterbrechen und statt dessen die Leiterbahn zwischen R39 und der Klemme mit der Durchkontaktierung bei R38 verbinden.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* Diskussion [http://www.mikrocontroller.net/topic/297217 Diskussion]&lt;br /&gt;
* Dextrel Nulldurchgang [http://www.dextrel.net/diyzerocrosser.htm Nulldurchgangschaltung]&lt;br /&gt;
* Gehäuse [http://www.hammondmfg.com/pdf/RM2015M.pdf Gehäuse Hammond]&lt;br /&gt;
* Bezugsquelle SOS Elektronik [http://www.soselectronic.com/?str=371&amp;amp;artnum=73595&amp;amp;name=hammond-ritec-rm2055m]&lt;br /&gt;
* Bezugsgquelle [http://www.druckerzubehoer.de/shop/product/catid/H-UNIVERSALZUBEHOER_HZB/subcatid/UNIVERSALZUBEHOER_GROUP1_HZB/productid/1727063-390722LA/site/1/lng/de_DE Mini USB Netzteil]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Projekte]]&lt;br /&gt;
[[Kategorie:PIC]]&lt;br /&gt;
[[Kategorie:PIC-Boards]]&lt;br /&gt;
[[Kategorie:Platinen]]&lt;/div&gt;</summary>
		<author><name>Frankman</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=Reflow_Ofen_Steuerung&amp;diff=75828</id>
		<title>Reflow Ofen Steuerung</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=Reflow_Ofen_Steuerung&amp;diff=75828"/>
		<updated>2013-05-22T20:05:23Z</updated>

		<summary type="html">&lt;p&gt;Frankman: /* Aktuelles */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Datei:RFB.jpg]]&lt;br /&gt;
== Einleitung ==&lt;br /&gt;
Hier wird eine weitere Reflow-Ofen-Steuerung beschrieben.&lt;br /&gt;
=== Zum Nachbauen ===&lt;br /&gt;
* Spezifikation: [[Datei: Spec Reflow.pdf]]&lt;br /&gt;
* Schaltplan: [[Datei:Reflow.pdf]]&lt;br /&gt;
* Gerberdaten: [[Datei:Gerber Reflow.pdf]]&lt;br /&gt;
* Assemblydrawing: [[Datei:Assembly Reflow.pdf]] &lt;br /&gt;
* Altium-Files: [[Datei:Reflow.zip]]&lt;br /&gt;
* Stückliste als CSV: [[Datei:Reflow.csv]]&lt;br /&gt;
* Stückliste als Open Office: [[Datei:Reflow.ods]]&lt;br /&gt;
* PC Programm: TBD&lt;br /&gt;
* Sourcen PC-Programm: TBD&lt;br /&gt;
* PIC Programm (*.hex): TBD&lt;br /&gt;
* Sourcen Pic-Programm: TBD&lt;br /&gt;
&lt;br /&gt;
=== Motivation ===&lt;br /&gt;
Die Gründe, eine weitere Steuerung zu entwerfen, waren:&lt;br /&gt;
&lt;br /&gt;
# Die Möglichkeit, auch größere Öfen mit 2 Phasen betreiben zu können.&lt;br /&gt;
# Die Steuerung universell zu gestalten. Es sollte möglich sein, diese nicht nur zum Reflow löten zu verwenden.&lt;br /&gt;
# Die Schaltung sollte in Altium entwickelt werden. (Warum kein Eagle??? Altium User wissen es.... :-)&lt;br /&gt;
# Die Schaltung sollte mit USB ausgestattet sein.&lt;br /&gt;
=== Eigenschaften &amp;amp; Spezifikationen ===&lt;br /&gt;
* Temperaturmessung: bis zu 2x &#039;&#039;&#039;Thermoelement&#039;&#039;&#039; (K-Typ) mit MAX6675 (abgekündigt) oder Nachfolger MAX31855 (pin- aber nicht softwarekompatibel)&lt;br /&gt;
* &#039;&#039;&#039;Leistungsstufen&#039;&#039;&#039;: 3x voneinander unabhängige Triac 800V bei 25A, limitiert auf &#039;&#039;&#039;10A @ 250VAC&#039;&#039;&#039; (z.B. Oberhitze, Unterhitze, Umluft)&lt;br /&gt;
* &#039;&#039;&#039;Nulldurchgangserkennung&#039;&#039;&#039; ermöglicht Wellenpaket-, Phasenan- und abschnittssteuerung, galvanische Trennung selbiger&lt;br /&gt;
* 1x &#039;&#039;&#039; MOSFET-Ausgang&#039;&#039;&#039; PWM z.B. für 12V Lüfter, max. 55V 3,5A&lt;br /&gt;
* &#039;&#039;&#039;4 Programme&#039;&#039;&#039; im EEPROM über 2-Tasterbedienung und LEDs wähl- und ausführbar. &#039;&#039;&#039;PC-unabhängiger Betrieb&#039;&#039;&#039;.&lt;br /&gt;
* Betrieb am Computer für mehr Reflowprofile&lt;br /&gt;
* Mini-USB-Buchse zur Steuerung / Programmierung über GUI&lt;br /&gt;
* Günstiges passendes &#039;&#039;&#039;Gehäuse&#039;&#039;&#039;, alle LEDs und Taster auf Stiftleisten herausgeführt&lt;br /&gt;
* PID-Temperaturregler&lt;br /&gt;
* UART, SPI, I2C und 2x ADC auf Stiftleisten herausgeführt (-&amp;gt; Erweiterungen)&lt;br /&gt;
* Versorgung über USB (&amp;lt; 100mA), interne Versorgungsspannung 3,3V&lt;br /&gt;
* umfangreiche EMV-gerechte Entstörung für den Bedarfsfall&lt;br /&gt;
&lt;br /&gt;
== Technische Realisierung==&lt;br /&gt;
=== PIC18LF2550 Grundbeschaltung ===&lt;br /&gt;
[[Datei:osc_vs_vcc.png|thumb|right|200px|Taktraten und Versorgungsspannung PIC18LF2550 vs. PIC18LF2550, Datenblatt S. 370/438]]&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 3/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Hier kommt ein PIC18&#039;&#039;&#039;L&#039;&#039;&#039;F2550 zum Einsatz. Er verfügt über eine USB-Schnittstelle und ist für Betriebsspannungen von 2 ... 5,5V ausgelegt. Sein Verwandter PIC18F2550 (ohne L) ist nicht für Betriebsspannungen &amp;lt; 4,2V ausgelegt. Dies ist bei USB sowiesor nicht immer erfüllt und die Thermoelement ICs vertragen ohnehin keine 5V, daher wurde die Betriebsspannung auf 3,3V reduziert. Neben Standard-Decoupling (100nF Kerko pro Vcc-Vss-Pärchen) wurde das ICSP-Interface in alt bewährter Pinbelegung (PICKit1,2,3) angebracht. PGD und PGC sind nicht weiter beschaltet, MCRL wird in Standardbeschaltung als Resetpin verwendet. Der Resetschalter findet sich auf dem Top-Sheet (Schaltplan S. 1/22). Die Taktversorgung erfolgt zwingend über einen ?? (TBD) MHz Quarz (-&amp;gt; USB). Man beachte diesbezüglich rechts stehende Grafik zu Taktraten und Versorgungsspannungen (Vdd bzw. auch Vcc genannt). Auch zu finden im Datenblatt des PICs auf Seite 370.&lt;br /&gt;
&lt;br /&gt;
=== PIC18LF2550 USB Beschaltung ===&lt;br /&gt;
[[Datei:usb_part.png|thumb|right|200px|PIC18(L)F2455/2550/4455/4550 Standard &lt;br /&gt;
USB-Beschaltung am PIC]]&lt;br /&gt;
[[Datei:usb_protect.png|thumb|right|200px|USB-Schutzbeschaltung und Mini-USB-Buchse]]&lt;br /&gt;
&lt;br /&gt;
Die Beschaltung der USB-Schnittstelle am PIC ist 1:1 aus dem Datenblatt übernommen. Zum Einsatz kommt eine Mini-USB-Buchse (J1).&lt;br /&gt;
Der Gedanke war: Erstens ein sehr preiswertes, fertiges Netzteil verwenden zu können, (ca. 3,6Euro bei druckerzubehoer.de) und zweitens, die Steuerung auch mit dem PC / Laptop versorgen zu können.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 4/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
FER1,2 und C7 filtern den Schirm nach GND. Standardmäßig wird man hier wohl 0-Ohm-Widerstände einsetzen. Falls ein Besuch im EMV-Labor geplant ist, weicht man auf den Ferrit aus. C5 und C6 filtern das Signal zusammen mit der Common-Mode-DrosselL1. Die Drossel kann mit den 0-Ohm-Brücken R8 und R9 überbrückt (gespart) werden. IC2 ist als ESD-Schutz gedacht und kann ebenfalls bei ausgeprägten Kostenbewustsein gespart werden. Die Widerstände R6 und R7 dürfen NICHT bestückt werden. FER1,2, C5, IC2 müssen nicht zwingend bestückt werden. Die Bestückung wurde vorgehalten um im Problemfall einfache Abhilfe schaffen zu können.&lt;br /&gt;
&lt;br /&gt;
=== 3,3V Spannungsversorgung ===&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 2/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Die 3,3V Versorgungsspannung für die gesamte Platine wird aus Vusb mittels des LDO Spannungsreglers TOREX - XC6206P332MR abgeleitet. Günstig, SOT-23, klein, 2x 1µF Kondensatoren benötigt, 3,3V max. 250mA. Der hat auch einen sehr kleinen Ruhestrom.&lt;br /&gt;
&lt;br /&gt;
=== Taster ===&lt;br /&gt;
Der Resettaster zieht den MCLR-Pin nach GND und löst damit den Reset aus. MCLR ist gem. der Standartbeschaltung mit einem 10k Pullup versehen.&lt;br /&gt;
&lt;br /&gt;
Die übrigen beiden Taster ziehen RA4 bzw. RB5 ebenfalls nach GND.&lt;br /&gt;
&lt;br /&gt;
=== LEDs + ULN2003L ===&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 11/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Um alle LEDs auf der Platine (3x Optotriac + 7x Status) ansteuern zu können wurde auf das 7fach Darlington-Array ULN2003L zurückgegriffen. Es dient desweiteren auch als &amp;quot;MOSFET-Treiber für Arme&amp;quot;. Alle LEDs werden von diesem Transistor-Array nach Masse geschaltet. Dient der Entlastung der PIC-Ausgänge. Und kostet ja auch nicht viel.&lt;br /&gt;
&lt;br /&gt;
=== MOSFET-Leistungsausgang ===&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 22/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Hier kommt der einfacher N-Kanal MOSFET (LogicLevel) PHT8N06LT zum Einsatz. Er wird über das ULN2003L Array getrieben und ermöglicht den Anschluss eines DC-Verbrauchers mit max. 55V bei 3,5A. Hier könnte beispielsweise ein PC-Lüfter zur Kühlung od. Umluft angeschlossen und über PWM geregelt/gesteuert werden. Ein Gatewiderstand von 100 Ohm (TBD) ist zur Schonung des Treibers vorgesehen. Eine 0-Ohm-Brücke ist stattdessen möglich.&lt;br /&gt;
&lt;br /&gt;
=== Nulldurchgangserkennung ===&lt;br /&gt;
[[Datei:zerocross.png|thumb|right|200px|Nulldurchgangserkennung]]&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 5/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Die Nulldurchgangserkennung erfolgt nach einer sehr bekannten - jedoch ausgeklügelten - Schaltung.  [http://www.dextrel.net/diyzerocrosser.htm]&lt;br /&gt;
&lt;br /&gt;
ACHTUNG: DER IM SCHALTPLAN VERZEICHNETE OPTOKOPPLER VON REICHELT DARF KEINESFALLS VERWENDET WERDEN! Pinbelegung! Bitte den Optokoppler aus der Stückliste nehmen!&lt;br /&gt;
&lt;br /&gt;
Während einer Halbwelle wird C14 über R33 und R35 bzw. D5 geladen. Währenddessen ist T1 gesperrt. Sobald die Wechselspannung (L1-N über Spannungsteiler (R33+R35) / R34) kleiner ist als die Spannung über C14, steuert T1 durch. Dann entlädt sich C14 über den LED-Vorwiderstand R32. Der durch-steuernde Optokoppler zieht die Sync-Leitung nach GND. (Pullup Sync-Leitung = R31). Dies löst beim PIC auf INT2 einen Interrupt aus. &lt;br /&gt;
&lt;br /&gt;
Dieser Interrupt ermöglicht eine präzise Wellenpaket-, Phasenanschnittsteuerung je nach Bedarf. Das Schalten im Nulldurchgang bei der Wellenpaketsteuerung reduziert EMV-Störungen. Für Phasenanschnitt ist prinzipbedingt ohnehin eine Nulldurchgangserkennung notwendig. Außerdem liefert sie eine völlig ausreichend genaue Zeitbasis für alle Programmabläufe.&lt;br /&gt;
&lt;br /&gt;
=== Triac-Ausgänge + Snubber ===&lt;br /&gt;
[[Datei:triac.png|thumb|right|200px|Nulldurchgangserkennung]]&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 19,20,21/22&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Die Ansteuerung des eigentlichen Leistungstriacs BTA140-800 erfolgt über den Optotriac IS6005. Der Strom durch Letzteren wird durch R1x limitiert (Vorwiderstand). R2x und R5x limitieren wiederum den Strom durch den Optotriac. Wenn dieser zündet so folgt unmittelbar der &amp;quot;Leistungstriac&amp;quot; der dann die Last schaltet.&lt;br /&gt;
&lt;br /&gt;
S1x ist ein Sicherungshalter um die Lasten einzeln absichern zu können. Wert 10 Mittelträge.&lt;br /&gt;
&lt;br /&gt;
R3x, R4x, C3x und *1x (eigentlich L1x) bilden einen Snubber um unerwünschte EMV-Abstrahlung zu verhindern und dem dU/dt- bzw. dI/dt-Problem aller Triacs vorzubeugen.&lt;br /&gt;
&lt;br /&gt;
=== Thermoelemente (MAX6675/MAX31855)  ===&lt;br /&gt;
&#039;&#039;&#039;Schaltplan S. 6,7/22&#039;&#039;&#039;&lt;br /&gt;
Der inzwischen abgekündigte MAX6675 bzw. sein ehrenwerter Nachfolger MAX31855 sind einfach zu handhabende Thermoelement-ICs mit Kaltstellenkompensation. Thermoelemente funktionieren durch das Verschweißen zweier verschiedener Legierungen (beim K-Typ Thermoelemnt Ni und CrNi). Durch den durch die Umgebungstemperatur bedingten Wärmefluss zwischen beiden entsteht ein elektrische Spannung. Diese wird von besagten ICs verstärkt und digitalisiert (ADC). Diese Spannung / Temperatur ist natürlich wieder relativ zur Umgebungstemperatur an der Kaltstelle (Kontaktierung der beiden Drähte mit dem Messinstrument). Daher messen diese ICs auch gleich die Umgebungstemperatur (Kaltstellenkompensation genannt) mit, verrechnen das und geben das Ergebnis auf der SPI-Schnittstelle aus. MAX6675 leistet 12bit also 0,25°C Auflösung (nicht Genauigkeit!) über einen Temperaturbereich von 0°C to +1024°C. Außerdem wird ein nicht/fehlerhaft angeschlossenes Thermoelement erkannt. Der Thermocouple-IC wird an die SPI-Schnittstelle des PICs angeschlossen (hier MSSP genannt). &lt;br /&gt;
&lt;br /&gt;
MAX6675 und MAX31855 scheinen entgegen der Adafruit-Information [http://www.adafruit.com/products/269] doch pinkompatibel zu sein - die Ansteuerung unterscheidet sich jedoch definitiv. (Zitat: &amp;quot;Now uses the MAX31855K instead of the MAX6675, so it can measure a wider temperature measurement range. Please note! the MAX31855 is not pin compatible or drop-in code compatible with the MAX6675. We do have an Arduino library for both chips but you&#039;ll need to adjust any existing MAX6675 designs for the mew MAX31855. The MAX6675 has been discontinued by Maxim.&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Es wurden 2 dieser ICs und damit 2 Temperaturmessstellen vorgesehen. Dies ermöglich die Messung für eine Regelung der Temperatur so wie eine zusätzliche Überwachung kritischer Bauteile (z.B. ICs oder LEDs). Die Minimalbestückung sieht einen MAX6675/MAX31855 vor. Die Auswahl in der Firmware erfolgt über einen der beiden GPIO-Pins RA5 oder RA0 via dem ChipSelect (CS) des MAX6675/MAX31855.&lt;br /&gt;
&lt;br /&gt;
Neben dem MAX6675/MAX31855 wurde ein Decoupling-Kondensator (C8x, Standard 100nF) so wie ein weiterer im Messpfad (C9x) zur Zwecken der Entstörung vorgeshen. C9x 100nF sollte nur bestückt werden wenn Probleme bei der Temperaturmessung entstehen (z.B. unrealstisch stark schwankende Werte).&lt;br /&gt;
&lt;br /&gt;
=== ADC, SPI, UART &amp;amp; I2C Stiftleiste ===&lt;br /&gt;
ADC, SPI, UART und I2C sind zu Zwecken der Kalibrierung / Erweiterung / Einstellung / Debugging au Stiftleisten herausgeführt:&lt;br /&gt;
Ähnlichkeiten mit dem FTDI-USB-TTL-Kabel bzw. Arduino XXX Bla Bla Bla Schnittstellenkonverter sind natürlich rein zufällig.&lt;br /&gt;
&lt;br /&gt;
Die I2C-Schnittstelle wurde auf eine Stiftleiste geführt, um z.B. einem LM75 o.ä. anschließen zu können. Damit stehen zur Kalibrierung der Thermoelemente genaue Temperaturen zur Verfügung.&lt;br /&gt;
&lt;br /&gt;
Die Stiftleisten haben alle ein Raster von 2,54mm. So können Pin-Header, Wannenstecker oder ähnliches verwendet werden.&lt;br /&gt;
&lt;br /&gt;
Da ja viele Leute eigene Vorstellungen bezüglich der Frontplattengestaltung haben, wurden auch die Taster und LEDs auf Stiftleisten geführt.&lt;br /&gt;
&lt;br /&gt;
== PC-Software (GUI) ==&lt;br /&gt;
&lt;br /&gt;
== FAQ ==&lt;br /&gt;
Q: God why ... ?&lt;br /&gt;
A: Because we can !&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
[http://www.mikrocontroller.net/topic/297217 Diskussion]&lt;br /&gt;
[[Kategorie:Projekte]]&lt;br /&gt;
[[Kategorie:PIC]]&lt;br /&gt;
[[Kategorie:PIC-Boards]]&lt;br /&gt;
[[Kategorie:Entwicklungstools]]&lt;br /&gt;
[[Kategorie:Platinen]]&lt;/div&gt;</summary>
		<author><name>Frankman</name></author>
	</entry>
</feed>