<?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=84.226.111.78</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=84.226.111.78"/>
	<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/articles/Spezial:Beitr%C3%A4ge/84.226.111.78"/>
	<updated>2026-04-10T13:13:51Z</updated>
	<subtitle>Benutzerbeiträge</subtitle>
	<generator>MediaWiki 1.39.7</generator>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=Wechselrichter&amp;diff=58782</id>
		<title>Wechselrichter</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=Wechselrichter&amp;diff=58782"/>
		<updated>2011-07-21T16:44:26Z</updated>

		<summary type="html">&lt;p&gt;84.226.111.78: /* Links */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Ziel dieses Artikels ist der Bau eine Wechselrichter zur Netzeinspeisung aus einer Solaranlage.&lt;br /&gt;
&lt;br /&gt;
Dass VDE Vorschriften beachtet werden müssen und das Ganze eine Zulassung haben muss ist nicht Inhalt dieses Artikels! Vielmehr geht es um eine Machbarkeitsstudie, mit Hobymitteln ein solches Gerät zu entwickeln. &lt;br /&gt;
&lt;br /&gt;
Ich bitte um eine rege Diskussion und Verbesserungsvorschläge.&lt;br /&gt;
&lt;br /&gt;
Bei mir soll es ein Wechselrichter ohne Ausgangstrafo werden, bei dem die Ausgangsspannung aus einem 400V DC Zwischenkreis mit einer H-Brücke per PWM gebildet wird. Jeder der eine andere Lösung gewählt hat, möchte sie bitte unter einer neuen Überschrift vorstellen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=MPP Tracker=&lt;br /&gt;
Vollbrückengegentaktwandler zur Erzeugung einer stabilen 400V DC Zwischenkreisspannung.&lt;br /&gt;
&lt;br /&gt;
=400V Zwischenkreis=&lt;br /&gt;
&lt;br /&gt;
=Leistungskreis=&lt;br /&gt;
&lt;br /&gt;
[[Bild:Wechselrichter_2PH.png|320px]]&lt;br /&gt;
&lt;br /&gt;
==H-Brücke==&lt;br /&gt;
&lt;br /&gt;
Die H-Brücke bestehen aus 4x IRFP460  wird über zwei IR2109 gesteuert.&lt;br /&gt;
Die Eingänge der IR2109 werden mit dem PWM Signal des PWG Genrators verbunden.&lt;br /&gt;
&lt;br /&gt;
==Filter==&lt;br /&gt;
&lt;br /&gt;
Tja der Filter, hier brauche ich wirklich professionelle Unterstützung für die Dimensionierung.&lt;br /&gt;
Welche Verschaltung und welche Bauteildimensionierung wird in Kaufgeräten verwendet?&lt;br /&gt;
&lt;br /&gt;
=Steuerung=&lt;br /&gt;
Die Steuerung besteht aus einem Mega88 mit 20MHz Quarz der die PWM generiert und einem Mega16 @ 1MHz der die Signale verarbeitet und den PWM Generator steuert. Desweiteren wird in der ENS und im MPP Tracker auch noch ein Controller genutzt.&lt;br /&gt;
&lt;br /&gt;
==PWM Genrator==&lt;br /&gt;
Die Erzeugung des PWM Signals wird mit einem Mega88 @20MHz realisiert.&lt;br /&gt;
Mein Ziel war eine Pulsfrequenz vom 16 KHz. Andere Frequenzen sind natürlich auch möglich, da müssen halt die Timerwerte angepasst werden.&lt;br /&gt;
&lt;br /&gt;
Bei einer Frequenz von 16KHz ergibt sich eine Periodendauer von 62,5µsec. Teilt man die 20msec einer 50 Hz Periode durch 62,5µsec ergeben sich 320 Pulsperioden pro 50Hz Sinuswelle.&lt;br /&gt;
&lt;br /&gt;
Bei einer Taktfrequenz des Controllers von 20MHz und einem Timer ohne Vorteiler ergeben sich 20MHZ / 16KHz = 1250 Timertakte. Das heißt der Timer muss bis 1250 hoch zählen um die 62,5µsec einzuhalten. Daraus ergibt sich, dass der Timer 1 genutzt werden muss.&lt;br /&gt;
&lt;br /&gt;
Gewählt habe ich für den Timer 1 den Fast PWM Mode 14 . Weiterhin ist die  invertierende PWM eingestellt, um die sonst auftretenden kurzen Spikes zu vermeiden. (If the OCR1x is set equal to BOTTOM (0x0000) the output will be a narrow spike for each TOP+1 timer clock cycle. Setting the OCR1x equal to TOP will result in a constant high or low output (depending on the polarity of the output set by the COM1x1:0 bits.))&lt;br /&gt;
&lt;br /&gt;
Daraus ergaben sich folgende Einstellungen:&lt;br /&gt;
&lt;br /&gt;
TCCR1A  = ((1 &amp;lt;&amp;lt;WGM11)|(1&amp;lt;&amp;lt;COM1A1)|(1&amp;lt;&amp;lt;COM1A0)|(1&amp;lt;&amp;lt;COM1B1)|(1&amp;lt;&amp;lt;COM1B0)) ;&amp;lt;BR&amp;gt; TCCR1B  = ((1 &amp;lt;&amp;lt;WGM13)|(1 &amp;lt;&amp;lt;WGM12)|(1&amp;lt;&amp;lt;CS11)) ; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Der Timer zählt immer bis zum Erreichen von ICR1 hoch und beginnt wieder bei Null. &lt;br /&gt;
&lt;br /&gt;
Die Ausgänge PORT B 1 und PORT B 2 sind low und werden beim Überschreiten von OCR1A bzw. von OCR1B auf high gesetzt. (Set OC1A/OC1B on Compare Match, clearOC1A/OC1B at BOTTOM (inverting mode))&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Die PWM Einschaltzeiten ändern sich ständig gemäß der Sinustabelle, daher müssen nach Pulsperiode neue Werte in die Register OCR1A und OCR1B geschrieben werden. Dies geschieht in der “ISR (TIMER1_OVF_vect)“. Damit die ISR (TIMER1_OVF_vect) beim Erreichen von ICR1 aufrufen wird, wird: &lt;br /&gt;
&lt;br /&gt;
TIMSK1= (1 &amp;lt;&amp;lt;TOIE1);&lt;br /&gt;
&lt;br /&gt;
gesetzt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Bild:Wechselrichter_Ausgang_PWM.JPG|300px]]&lt;br /&gt;
&lt;br /&gt;
Signal an den Ausgängen OC1A und OC1B&lt;br /&gt;
&lt;br /&gt;
Sorry, war schon ein altes Scope, werde versuchen ein schöneres Bild zu machen.&lt;br /&gt;
&lt;br /&gt;
==Zentralsteuerung mit LCD==&lt;br /&gt;
Mega16 @ 1MHz.....&lt;br /&gt;
&lt;br /&gt;
=ENS Netzüberwachung=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Links=&lt;br /&gt;
[http://www.mikrocontroller.net/articles/Frequenzumrichter_mit_Raumzeigermodulation Wiki-Artikel über Frequenzumrichter_mit_Raumzeigermodulation]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Projekte]]&lt;/div&gt;</summary>
		<author><name>84.226.111.78</name></author>
	</entry>
	<entry>
		<id>https://www.mikrocontroller.net/index.php?title=KS0108_Library&amp;diff=58776</id>
		<title>KS0108 Library</title>
		<link rel="alternate" type="text/html" href="https://www.mikrocontroller.net/index.php?title=KS0108_Library&amp;diff=58776"/>
		<updated>2011-07-21T14:07:58Z</updated>

		<summary type="html">&lt;p&gt;84.226.111.78: Die Seite wurde neu angelegt: „Dieser Artikel beschreibt die Verwendung einer Library zur Ansteuerung von Grafik LCDs mit KS0108 Controllern (meist 128x64 Pixel).  Eine gut funktionierende Libr…“&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Dieser Artikel beschreibt die Verwendung einer Library zur Ansteuerung von Grafik LCDs mit KS0108 Controllern (meist 128x64 Pixel).&lt;br /&gt;
&lt;br /&gt;
Eine gut funktionierende Library wurde von Fabian Maximilian Thiele erstellt, dessen Webseite http://www.apetech.de/ leider seit längerer Zeit offline ist, deshalb werden hier alle nützlichen Informationen die im Forum hier verteilt sind zusammengefasst&lt;br /&gt;
&lt;br /&gt;
== Forenbeiträge ==&lt;br /&gt;
* [http://www.mikrocontroller.net/topic/ks0108-glcd-routinen KS0108 GLCD Routinen]&lt;br /&gt;
&lt;br /&gt;
== Verwendung ==&lt;br /&gt;
Um die Library zu verwenden muss diese an die eigenen Hardware angepasst werden was in der Datei &amp;lt;code&amp;gt;ks0108.h&amp;lt;/code&amp;gt; geschieht. Dazu müssen die folgenden Zeilen angepasst werden:&lt;br /&gt;
&amp;lt;c&amp;gt;// Ports&lt;br /&gt;
#define LCD_CMD_PORT		PORTA		// Command Output Register&lt;br /&gt;
#define LCD_CMD_DIR		DDRA		// Data Direction Register for Command Port&lt;br /&gt;
&lt;br /&gt;
#define LCD_DATA_IN		PINC		// Data Input Register&lt;br /&gt;
#define LCD_DATA_OUT		PORTC		// Data Output Register&lt;br /&gt;
#define LCD_DATA_DIR		DDRC		// Data Direction Register for Data Port&lt;br /&gt;
&lt;br /&gt;
// Command Port Bits&lt;br /&gt;
#define D_I			0		// D/I Bit Number&lt;br /&gt;
#define R_W			1		// R/W Bit Number&lt;br /&gt;
#define EN			2		// EN Bit Number&lt;br /&gt;
#define CSEL1			3		// CS1 Bit Number&lt;br /&gt;
#define CSEL2			4		// CS2 Bit Number&lt;br /&gt;
&amp;lt;/c&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Stolperfallen ==&lt;br /&gt;
* Diese Library verwendet den &#039;&#039;&#039;RW&#039;&#039;&#039; Pin des Displays nicht. Mann muss also selber entweder per Hardware oder Software dafür sorgen dass dieser auf &#039;&#039;&#039;High&#039;&#039;&#039; gesetzt wird&lt;br /&gt;
* Bevor man aufs LCD schreibt muss &amp;lt;code&amp;gt;ks0108SelectFont&amp;lt;/code&amp;gt; aufgerufen werden sonst passieren schlimme Dinge&lt;br /&gt;
* Nach den Einschalten brauchen die LCD-Controller je nach Hersteller mehr oder weniger lange bis sie bereit sind, hier also lieber ein &amp;lt;code&amp;gt;delay&amp;lt;/code&amp;gt; zuviel als zu wenig&lt;br /&gt;
&lt;br /&gt;
== Eigene Fonts erstellen ==&lt;br /&gt;
Wer noch mehr Fonts haben möchte kann mit dem FontCreator eigene Schriften erstellen. Dazu muss erst die Datei &amp;lt;code&amp;gt;GLCDFontCreator2.zip&amp;lt;/code&amp;gt; heruntergeladen und entpackt werden. Falls kein Java Runtime Environment installiert ist kann dieses [http://www.java.com/de/download/ hier] heruntergeladen werden.&lt;br /&gt;
&lt;br /&gt;
=== Programm starten ===&lt;br /&gt;
==== Windws ====&lt;br /&gt;
Unter Windows genügt ein Doppelklick auf die Datei &amp;lt;code&amp;gt;start.bat&amp;lt;/code&amp;gt;.&lt;br /&gt;
==== Linux (ev. auch MacOS) ====&lt;br /&gt;
Unter Linux kann das Programm aus der Konsole mit dem Befehl &amp;lt;c&amp;gt; java -classpath . FontCreator&amp;lt;/c&amp;gt; gestartet werden (natürlich muss man sich im Verzeichnis &amp;lt;code&amp;gt;FontCreator.java&amp;lt;/code&amp;gt; befinden)&lt;br /&gt;
&lt;br /&gt;
=== Font erstelle ===&lt;br /&gt;
File -&amp;gt; New Font Danach sollte das Programm selbsterklärend sein&lt;br /&gt;
&lt;br /&gt;
== Downloads ==&lt;br /&gt;
* Library [http://www.mikrocontroller.net/attachment/21921/glcd_ks0108_v11.zip glcd_ks0108_v11.zip]&lt;br /&gt;
* Font Generator [http://www.mikrocontroller.net/attachment/22095/GLCDFontCreator2.zip GLCDFontCreator2.zip]&lt;br /&gt;
* Fonts&lt;br /&gt;
** Arial 14 Bold (in glcd_ks0108_v11.zip enthalten)&lt;br /&gt;
** Corsiva 12 (in glcd_ks0108_v11.zip enthalten)&lt;br /&gt;
** [http://www.mikrocontroller.net/attachment/31457/arial8.h Arial 8]&lt;br /&gt;
&lt;br /&gt;
== Projekte die diese Library verwenden ==&lt;br /&gt;
* [[Akku Tester]]&lt;br /&gt;
* [http://www.scienceprog.com/diy-avr-graphical-lcd-test-board/ http://www.scienceprog.com/diy-avr-graphical-lcd-test-board]&lt;/div&gt;</summary>
		<author><name>84.226.111.78</name></author>
	</entry>
</feed>