<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Neuste Beiträge on Elektronik Dachbude</title><link>https://fkainka.de/posts/</link><description>Recent content in Neuste Beiträge on Elektronik Dachbude</description><generator>Hugo</generator><language>de-DE</language><lastBuildDate>Tue, 08 Jun 2021 09:32:32 +0200</lastBuildDate><atom:link href="https://fkainka.de/posts/index.xml" rel="self" type="application/rss+xml"/><item><title>Halloween Schocker</title><link>https://fkainka.de/halloween-schocker/</link><pubDate>Sat, 29 Oct 2016 22:33:20 +0200</pubDate><guid>https://fkainka.de/halloween-schocker/</guid><description>&lt;p&gt;Halloween steht vor der Tür und ich habe beschlossen, eine kleine Party bei mir zu feiern. Als kleines Plus kam mir die Idee einen automatischen Gäste Schocker für das Badezimmer zu basteln&lt;/p&gt;
&lt;h2 id="funktionsweise"&gt;Funktionsweise:&lt;/h2&gt;
&lt;p&gt;Wenn jemand das Licht im Badezimmer einschaltet, kann es vorkommen, dass nach einer gewissen Wartezeit ein schauriges Lachen ertönt und gleichzeitig für ca. eine Sekunde grelle Blitze den abgedunkelten Raum erhellen. Das sollte für einen kurzen Schock ausreichen.&lt;/p&gt;</description></item><item><title>Livedaten vom NanoESP mit ServerSentEvents</title><link>https://fkainka.de/livedaten-vom-nanoesp-mit-serversentevents/</link><pubDate>Thu, 31 Mar 2016 06:00:57 +0200</pubDate><guid>https://fkainka.de/livedaten-vom-nanoesp-mit-serversentevents/</guid><description>&lt;p&gt;In vorangegangen Projekten mit dem NanoESP, z.B. dem &lt;a href="http://iot.fkainka.de/day-15"&gt;Lichtsensor Projekt vom Adventskalender&lt;/a&gt;, konnten im Browser neue Messwerte  nur durch neues Laden der kompletten, veränderten Webseite dargestellt werden. Dies ist logischerweise sehr ineffizient. Auf der Suche nach besseren Möglichkeiten bin ich schließlich auf eine HTML5-Funktion ServerSentEvents gestoßen. Kurz gesagt handelt es sich hierbei um eine sehr praktische Funktion um Daten von einem Webserver zu empfangen, auch wenn die Webseite schon komplett geladen ist  Und das Beste ist, wenn die Verbindung einmal steh, kann der Server jederzeit und kontinuierlich neue Daten senden.&lt;/p&gt;</description></item><item><title>Ausgelagerte Webseiten für den NanoESP</title><link>https://fkainka.de/groessere-webseiten-auf-dem-nanoesp/</link><pubDate>Mon, 28 Mar 2016 06:00:02 +0200</pubDate><guid>https://fkainka.de/groessere-webseiten-auf-dem-nanoesp/</guid><description>&lt;p&gt;Gerade im Kontext des Adventskalenders oder den anderen Lernpaketen habe ich einige HTML-Seiten für den NanoESP entworfen. Allerdings hat mich dabei immer gestört, dass zum einen der Speicherplatz ziemlich gering ist zum anderen die Übertragung etwas langsam sein kann, vor allem, wenn die Seite oft neu geladen werden muss. Deswegen habe ich mir eine neue Methode überlegt, bei der die dazustellenden Webseite auf einem anderen Webserver liegt und beim Verbinden mit dem TCP-Server des Boards einfach nachgeladen wird. Der Nachteil ist hier vor allem, dass der Client mit dem Internet verbunden sein muss. Das bedeutet auch, das ein privates Netzwerk mit dem NanoESP als AccesPoint nicht möglich ist. Die Vorteile sind aber komplexere Seiten und schnellere Ladezeiten sowie eine insgesamt Entlastung des Boards. Im Folgenden Stelle ich das System anhand des &lt;a href="http://iot.fkainka.de/day-14"&gt;RGB-LED-Beispiels&lt;/a&gt; vor.&lt;/p&gt;</description></item><item><title>Twitter Nachrichten auf dem NanoESP</title><link>https://fkainka.de/neueste-twitter-nachricht-auf-dem-nanoesp/</link><pubDate>Thu, 24 Mar 2016 06:00:22 +0100</pubDate><guid>https://fkainka.de/neueste-twitter-nachricht-auf-dem-nanoesp/</guid><description>&lt;p&gt;Das Cheerlights-Projekt ist ein wirklich schönen Projekt. Doch hat mich manchmal gestört, dass ich nicht passend zur Farbe auch die aktuelle Nachricht des Cheerlights-Users lesen konnte. Zumindest nicht ohne das Handy zu Hilfe zu nehmen. Ein NanoESP mit Display und schon könnte man auch den passenden Tweet verfolgen. So schwer kann das ja nicht sein - dachte ich.&lt;/p&gt;
&lt;p&gt;Also habe ich mich die Twitter API nach einer einfachen Möglichkeit durchsucht, Tweets anhand eines bestimmten Stichwortes zu suchen. Die Funktion gibt es, allerdings ist dafür eine etwas kompliziertes Authentifizierungsverfahren notwendig. Mit einem kleinen Mikrocontroller nicht zu machen. Wohl aber mit Hilfe einer php-Bibliothek:&lt;/p&gt;</description></item><item><title>Ping Watch mit dem NanoESP</title><link>https://fkainka.de/ping-watch/</link><pubDate>Mon, 21 Mar 2016 11:41:40 +0100</pubDate><guid>https://fkainka.de/ping-watch/</guid><description>&lt;p&gt;Zur Zeit habe ich massive Internet Probleme. Immer wieder bricht die Verbindung zum Provider aus unerklärlichen Gründen ab. Es waren schon mehrere Male waren Techniker der Telekom vor Ort um die Leitung zu vermessen - ohne Befund. Natürlich tritt der Fehler auch gerade dann nicht auf, wenn ein Techniker vor Ort ist.&lt;/p&gt;
&lt;div class="ext-embed" data-src="https://thingspeak.com/channels/101832/charts/1?bgcolor=%23ffffff&amp;amp;color=%23d62020&amp;amp;dynamic=true&amp;amp;results=100000&amp;amp;type=column" data-height="260px" data-title="thingspeak.com"&gt;
&lt;div&gt;&lt;strong&gt;Externer Inhalt von thingspeak.com&lt;/strong&gt;&lt;br&gt;Beim Laden werden Daten wie Ihre IP-Adresse an thingspeak.com übertragen.
&lt;a href="https://fkainka.de/datenschutzerklaerung/#eingebettete-inhalte-anderer-anbieter"&gt;Datenschutz&lt;/a&gt;&lt;/div&gt;
&lt;div class="ext-embed-actions"&gt;&lt;button type="button"&gt;Inhalt laden&lt;/button&gt;
&lt;a href="https://thingspeak.com/channels/101832/charts/1?bgcolor=%23ffffff&amp;amp;color=%23d62020&amp;amp;dynamic=true&amp;amp;results=100000&amp;amp;type=column" target="_blank" rel="noopener noreferrer"&gt;direkt öffnen ↗&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;script&gt;
document.addEventListener("click", function (e) {
var b = e.target.closest(".ext-embed button"); if (!b) return;
var box = b.closest(".ext-embed"), f = document.createElement("iframe");
f.src = box.dataset.src; f.style.height = box.dataset.height; f.title = box.dataset.title;
f.setAttribute("allowfullscreen", ""); f.loading = "lazy";
box.replaceChildren(f); box.classList.add("loaded");
});
&lt;/script&gt;
&lt;p&gt;Deswegen ist das Ziel meines Projektes nun, meine Leitung über längere Zeit zu überwachen. Dafür ist der NanoESP (Pretzelboard) in Verbindung mit &lt;a href="http://www.thingspeak.com"&gt;Thingspeak&lt;/a&gt; genau richtig. Über die Ping-Funktion wird die Dauer der Ping-Antwort in ms gemessen. Dieser Wert wird an Thingspeak übertragen. Zusätzlich leuchtet die RGB-LED grün, als Zeichen, dass eine Internetverbindung besteht. Sollte die Verbindung mal abbrechen geht der Ping-Request ins Leere, die LED wird rot und neue Werte auf Thingspeak bleiben aus. In dem Diagramm müsste dann eine deutliche Lücke in den ansonsten alle 15 s übertragenen Messwerten zu sehen sein.&lt;/p&gt;</description></item><item><title>Alle Beiträge zum Adventskalender Wettbewerb 2015</title><link>https://fkainka.de/alle-beitraege-zum-adventskalender-wettbewerb-2015/</link><pubDate>Thu, 11 Feb 2016 19:36:06 +0100</pubDate><guid>https://fkainka.de/alle-beitraege-zum-adventskalender-wettbewerb-2015/</guid><description>&lt;p&gt;So langsam sammeln sich die Beiträge zu dem &lt;a href="https://fkainka.de/der-kalender-wettbewerb-2015-sensoren-im-internet-of-things/"&gt;ausgeschriebenen Wettbewerb&lt;/a&gt;. Auf dieser Seite finden Sie eine Liste aller bisher eingegangener Beiträge und wo diese zu finden sind.&lt;/p&gt;
&lt;h2 id="beiträge"&gt;Beiträge&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.elektronik-labor.de/Lernpakete/Kalender15/Tempsensor.html"&gt;Temperaturdifferenz mit Transistoren messen&lt;/a&gt;  von Fritjof Flechsig&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.elektronik-labor.de/Lernpakete/Kalender15/Stroemung.html"&gt;Strömungswächter zur Lüfterüberwachung&lt;/a&gt;  von Wolfgang Triebig&lt;/li&gt;
&lt;li&gt;&lt;a href="https://fkainka.de/wettbewerbsbeitrag-blumenwaechter/"&gt;Blumenwächter&lt;/a&gt; von Leander Hackmann&lt;/li&gt;
&lt;li&gt;&lt;a href="https://fkainka.de/wettbewerbsbeitrag-wassermelder/"&gt;Wassermelder mit Twitter-Alarmmeldung&lt;/a&gt; von Bernhard Kaiser &amp;amp; Michael Gaus&lt;/li&gt;
&lt;li&gt;&lt;a href="https://fkainka.de/wettbewerbsbeitrag-neigungssensor-auslesen-per-iot-board-uebertragen-per-wlan/"&gt;Neigungssensor – auslesen per IoT- Board, übertragen per WLAN&lt;/a&gt; von Holger Fritzsch&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.elektronik-labor.de/Notizen/Fuellstand.html"&gt;Füllstandsmesser „Waran“&lt;/a&gt;  von Günther Zöppel&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.elektronik-labor.de/Lernpakete/Kalender15/Erdbeben.html"&gt;Erdbeben-Sensor&lt;/a&gt;  von Andreas Biernath&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.elektronik-labor.de/Lernpakete/Kalender15/Briefkasten.html"&gt;Der Briefkastenwächter&lt;/a&gt;  von von Jürgen Kuhn&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.elektronik-labor.de/Lernpakete/Kalender15/Tonabnehmer.html"&gt;Lichttechnischer&lt;/a&gt; &lt;a href="http://www.elektronik-labor.de/Lernpakete/Kalender15/Tonabnehmer.html"&gt;Gitarren-&lt;/a&gt;&lt;a href="http://www.elektronik-labor.de/Lernpakete/Kalender15/Tonabnehmer.html"&gt;Tonabnehmer&lt;/a&gt; von Günther Zöppel&lt;/li&gt;
&lt;li&gt;&lt;a href="http://iot.fkainka.de/wettbewerbsbeitrag-ioteatimer"&gt;IoTeaTimer&lt;/a&gt;  von General Overnight&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.elektronik-labor.de/Lernpakete/Kalender15/Kabelsucher.html"&gt;Kabelsucher&lt;/a&gt;  von Frank Schacht&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.elektronik-labor.de/Lernpakete/Kalender15/BriefkastenAssistent.html"&gt;Der Briefkastenassistent&lt;/a&gt;  von Wolfgang und Jonatan&lt;/li&gt;
&lt;li&gt;&lt;a href="https://fkainka.de/wettbewerbsbeitrag-polarfuchs/"&gt;Polarfuchs&lt;/a&gt;von Nicolaus Cüppers&lt;/li&gt;
&lt;li&gt;&lt;a href="https://fkainka.de/wettbewerbsbeitrag-quadrocopter-landing-pad/"&gt;Quadrocopter Landing Pad&lt;/a&gt; von Paul Kaczmarczyk&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="die-sieger"&gt;Die Sieger&lt;/h2&gt;
&lt;p&gt;Die Qualität der eingesandten Beiträge war sehr gut. Deshalb war die Entscheidung nicht einfach. Aber am Ende sind wir zu diesem Ergebnis gelangt:&lt;/p&gt;</description></item><item><title>Wettbewerbsbeitrag: Polarfuchs</title><link>https://fkainka.de/wettbewerbsbeitrag-polarfuchs/</link><pubDate>Mon, 01 Feb 2016 12:22:14 +0100</pubDate><guid>https://fkainka.de/wettbewerbsbeitrag-polarfuchs/</guid><description>&lt;h2 id="beitrag-zum-kalenderwettbewerb-2015-von-nicolaus-cüppers"&gt;Beitrag zum &lt;a href="https://fkainka.de/der-kalender-wettbewerb-2015-sensoren-im-internet-of-things/"&gt;Kalenderwettbewerb&lt;/a&gt; 2015 von Nicolaus Cüppers&lt;/h2&gt;
&lt;p&gt;&lt;img loading="lazy" src="http://www.elektronik-labor.de/Lernpakete/Kalender15/Polar3.jpg"&gt;&lt;/p&gt;
&lt;p&gt;Der Conrad-Adventskalender „Internet of Things“ war für mich der Einstieg, mich einmal mit dem Thema Arduino zu befassen. Herausgekommen ist das Projekt „Polarfuchs“. Der Name ist angelehnt an das kleinste mir bekannte deutsche Forschungsschiff. Es handelt sich um einen Versuchsaufbau, der ein unbemanntes „Schiff“ nachbildet, was einige Umgebungsdaten erfasst und weiterleitet und parallel dazu seinen eigenen Zustand überwacht.&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" src="http://www.elektronik-labor.de/Lernpakete/Kalender15/Polar1.jpg"&gt;&lt;/p&gt;
&lt;p&gt;Es wurde nur der Kalender und zusätzlich eine Stromquelle verwendet. Daher sind die Messmethoden auch nicht unbedingt praxisnahe. Normalerweise würde man für die einzelnen Werte passende Sensoren einsetzen.  Das war allerdings nicht die Aufgabe. Vielmehr ging es ja darum, aus einer Hand voll vorhandener Bauelemente das Maximale herauszuholen. Als Schiffsrumpf wird daher der Kalender selbst verwendet. Er bildet durch seinen Plastikkörper mit zahlreichen Einsenkungen eine ideale Schwimmplattform. Es wurden jedoch die üblichen konfektionierten Steckkabel verwendet. Das dem Kalender beiliegende Kabel hätte aber auch gereicht, um die Schaltung aufzubauen. Dann hätte man nur alles etwas enger am Board platzieren müssen.&lt;/p&gt;</description></item><item><title>Wettbewerbsbeitrag: Quadrocopter Landing Pad</title><link>https://fkainka.de/wettbewerbsbeitrag-quadrocopter-landing-pad/</link><pubDate>Mon, 01 Feb 2016 11:47:29 +0100</pubDate><guid>https://fkainka.de/wettbewerbsbeitrag-quadrocopter-landing-pad/</guid><description>&lt;h2 id="beitrag-zum-kalenderwettbewerb-2015-von-paul-kaczmarczyk"&gt;Beitrag zum &lt;a href="https://fkainka.de/der-kalender-wettbewerb-2015-sensoren-im-internet-of-things/"&gt;Kalenderwettbewerb&lt;/a&gt; 2015 von Paul Kaczmarczyk&lt;/h2&gt;
&lt;h3 id="auszug-ausdem-pdf"&gt;&lt;em&gt;&lt;strong&gt;Auszug aus&lt;/strong&gt;&lt;/em&gt;&lt;em&gt;&lt;strong&gt;dem PDF:&lt;/strong&gt;&lt;/em&gt;&lt;/h3&gt;
&lt;h2 id="projektbeschreibung"&gt;Projektbeschreibung:&lt;/h2&gt;
&lt;p&gt;An Weihnachten erhielt ich einen Quadrocopter als Geschenk von meinem Opa. Ich hatte so viel Freude damit, dass ich mir gleich ein zweites Modell vom Typ Blade Inductrix zulegte. Das Fliegen mit dem Quadrocopter macht allerdings besonders viel Spaß, wenn man Aufgaben zu erfüllen hat.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://fkainka.de/images/2016/02/Quadro2.jpg"&gt;&lt;img alt="Quadro2" loading="lazy" src="https://fkainka.de/images/2016/02/Quadro2.jpg"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2 id="spielidee"&gt;Spielidee&lt;/h2&gt;
&lt;p&gt;Für die zu bewältigenden Aufgaben kam mir der Gedanke das Landing Pad zu bauen, bei dem die Aufgabe darin besteht durch einen Ring zu fliegen, ohne hängen zu bleiben und dann zu landen, sofern man eine Landefreigabe erhält. Wird die Landefreigabe vom Tower nicht gegeben, so muss man schweben, bis die Landefreigabe erteilt wird. Wird ohne Landefreigabe gelandet, erhält man als Strafe für die Landung einen Punktabzug. Landet man mit Freigabe erhält man Punkte auf sein Konto. Ein Hängenbleiben am Ring soll auch einen Punktabzug zur Folge haben. Um sich mit anderen zu messen, sollen die erreichten Punkte auch in einer Internet-weiten Highscore-Liste namentlich geführt werden. Dieses Geschicklichkeitsspiel soll rundenbasiert ablaufen, wobei die Rundenzeit 60 s beträgt. Läuft die Runde ab, werden die addierten Punkte in die Highscore-Liste eingetragen. Der Start einer neuen Runde soll durch Druck auf einen Taster ermöglicht werden. [&amp;hellip;]&lt;/p&gt;</description></item><item><title>Wettbewerbsbeitrag: Neigungssensor – auslesen per IoT- Board, übertragen per WLAN</title><link>https://fkainka.de/wettbewerbsbeitrag-neigungssensor-auslesen-per-iot-board-uebertragen-per-wlan/</link><pubDate>Wed, 27 Jan 2016 15:17:24 +0100</pubDate><guid>https://fkainka.de/wettbewerbsbeitrag-neigungssensor-auslesen-per-iot-board-uebertragen-per-wlan/</guid><description>&lt;h2 id="beitrag-zum-kalenderwettbewerb-2015-vonholger-fritzsch"&gt;Beitrag zum &lt;a href="https://fkainka.de/der-kalender-wettbewerb-2015-sensoren-im-internet-of-things/"&gt;Kalenderwettbewerb&lt;/a&gt; 2015 von Holger Fritzsch&lt;/h2&gt;
&lt;p&gt;Mit einer einfachen Zusatzschaltung läßt sich mit dem IoT- Board eine Erschütterung oder Lageänderung von Gegenständen oder Türen detektieren.&lt;br&gt;
Zur Anwendung kommt hier ein RS- Flip Flop bestehend aus 2 Transistoren vom Typ BC547.&lt;/p&gt;
&lt;p&gt;Ob man nun eine Tür , Fenster oder Fahrrad überwachen oder Teile vor unbefugter Entnahme sichern will,der kompakte Aufbau des Moduls machts möglich.&lt;br&gt;
Die Schaltung kennt zwei stabile Zustände, nämlich Bereitschaft- und Alarmzustand.&lt;br&gt;
Technisch gesehen entsprechend dem Set- und Reset- Zustand.&lt;/p&gt;</description></item><item><title>Wettbewerbsbeitrag: Wassermelder mit Twitter-Alarmmeldung</title><link>https://fkainka.de/wettbewerbsbeitrag-wassermelder/</link><pubDate>Wed, 27 Jan 2016 12:57:19 +0100</pubDate><guid>https://fkainka.de/wettbewerbsbeitrag-wassermelder/</guid><description>&lt;h2 id="beitrag-zum-kalenderwettbewerb-2015-vonbernhard-kaiser-michael-gaus"&gt;Beitrag zum &lt;a href="https://fkainka.de/der-kalender-wettbewerb-2015-sensoren-im-internet-of-things/"&gt;Kalenderwettbewerb&lt;/a&gt; 2015 von Bernhard Kaiser &amp;amp; Michael Gaus&lt;/h2&gt;
&lt;p&gt;Bei diesem Projekt handelt es sich um einen Wassermelder, der optisch, akustisch und per Twitter-Meldung Alarm gibt, sobald an den Sensorkontakten Wasser detektiert wird. Er kann z.B. zur Überwachung auf austretendes Wasser aus Waschmaschine oder Spülmaschine dienen und helfen, rechtzeitig vor größeren Überschwemmungen eingreifen zu können. Als Sensorkontakt können einfach 2 Drähte mit abisolierten Enden genommen werden, so wie es auch auf dem Foto zu sehen ist. Verwendet wurden ausschließlich die Bauteile der beiden Adventskalender.&lt;/p&gt;</description></item><item><title>Wettbewerbsbeitrag: Blumenwächter</title><link>https://fkainka.de/wettbewerbsbeitrag-blumenwaechter/</link><pubDate>Mon, 25 Jan 2016 19:29:19 +0100</pubDate><guid>https://fkainka.de/wettbewerbsbeitrag-blumenwaechter/</guid><description>&lt;h2 id="beitrag-zum-kalenderwettbewerb-2015-von-leander-hackmann"&gt;Beitrag zum &lt;a href="https://fkainka.de/der-kalender-wettbewerb-2015-sensoren-im-internet-of-things/"&gt;Kalenderwettbewerb&lt;/a&gt; 2015 von Leander Hackmann:&lt;/h2&gt;
&lt;p&gt;Jeder hat Topfpflanzen. Sie verschönern unseren Alltag, benötigen jedoch auch häufig unsere Aufmerksamkeit in Form von Pflege. Um den besten Standort herauszufinden und das regelmäßige Giessen nicht zu vergessen, habe ich folgende Anwendung mit dem Iot-Board entworfen und umgesetzt: ein Datenlogger für Licht und Feuchtigkeit.&lt;/p&gt;
&lt;h3 id="download-des-programms"&gt;&lt;a href="https://fkainka.de/images/2016/01/blumenwaechter-final-160125a.zip"&gt;Download des Programms&lt;/a&gt;&lt;/h3&gt;
&lt;details class="spoiler"&gt;
&lt;summary&gt;Das Programm&lt;/summary&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;//Blumenwaechter für das NanoESP-Board
//2016 von Leander H.
//Misst alle 30min. Feuchtigkeit und Helligkeit
//Mit Druck auf Taster kann ein Nullpunkt in der Messung als markanter Punkt gesetzt werden#
//Es werden zwei Channels auf Thingspeak.com verwendet (API-Keys in &amp;#34;LightKEY und &amp;#34;MoistureKEY&amp;#34;)
//Über &amp;#34;threshold&amp;#34; kann der Pegel zur Warnung eingestellt werden
//Code und Idee von Leander H. -- Funktionen von Fabian Kainka
#include SoftwareSerial.h&amp;gt;
#include Time.h&amp;gt;
//Setup-Bereich
#define SSID &amp;#34;[SSID]&amp;#34;
#define PASSWORD &amp;#34;[Passwort]&amp;#34;
#define LightKEY &amp;#34;[API-KEY]&amp;#34;
#define MoistureKEY &amp;#34;[API-KEY]&amp;#34;
#define threshold 400 //
#define DEBUG true
#define LED_WLAN 13
SoftwareSerial esp8266(11, 12); // RX, TX
int ledGreen = 5;
int ledYellow = 4;
int ledRed = 3;
int sensorPower = 2;
int moistSensor = 2;
String lastminute;
 
const byte thingPost[] PROGMEM = {
 80, 79, 83, 84, 32, 42, 85, 82, 76, 42, 32, 72, 84, 84, 80, 47, 49, 46, 49, 10, 72, 111, 115, 116, 58, 32, 97, 112, 105, 46, 116, 104, 105, 110, 103, 115, 112, 101, 97, 107, 46, 99, 111, 109, 10, 67, 111, 110, 110, 101, 99, 116, 105, 111, 110, 58, 32, 99, 108, 111, 115, 101, 10, 67, 111, 110, 116, 101, 110, 116, 45, 84, 121, 112, 101, 58, 32, 97, 112, 112, 108, 105, 99, 97, 116, 105, 111, 110, 47, 120, 45, 119, 119, 119, 45, 102, 111, 114, 109, 45, 117, 114, 108, 101, 110, 99, 111, 100, 101, 100, 10, 67, 111, 110, 116, 101, 110, 116, 45, 76, 101, 110, 103, 116, 104, 58, 32, 42, 76, 69, 78, 42, 10, 10, 42, 65, 80, 80, 69, 78, 68, 42, 10
};
void setup() {
 pinMode(ledGreen, OUTPUT);
 pinMode(ledYellow, OUTPUT);
 pinMode(ledRed, OUTPUT);
 pinMode(sensorPower, OUTPUT);
 
 Serial.begin(19200);
 esp8266.begin(19200);
 while(!espConfig()){ //Failsafe für WLAN
   delay(200);
 }
 digitalWrite(LED_WLAN, HIGH);
 while(!getTime(&amp;#34;chronic.herokuapp.com&amp;#34;, &amp;#34;/utc/in+one+hours&amp;#34;) == false){ //Failsafe für Zeitsynchro
   delay(200);
 }
 
 sendThingPost(LightKEY, analogRead(A0)); //Erste Übermittlung
 digitalWrite(sensorPower, HIGH);
 delay(200);
 int tmp = analogRead(A2);
 sendThingPost(MoistureKEY, tmp);
 digitalWrite(sensorPower, LOW);
 if(tmp threshold){
    digitalWrite(ledRed, HIGH);
    digitalWrite(ledGreen, LOW);
 }else{
    digitalWrite(ledRed, LOW);
    digitalWrite(ledGreen, HIGH);
 }
}
void loop() {
 String shour, sminute, ssecond;
 if (hour() 9) shour = &amp;#34;0&amp;#34; + String(hour()); else shour = String(hour()); // adjust for 0-9
 if (minute() 9) sminute = &amp;#34;0&amp;#34; + String(minute());  else sminute = String(minute());
 if (second() 9) ssecond = &amp;#34;0&amp;#34; + String(second());  else ssecond = String(second());
 //debug(shour + &amp;#34;:&amp;#34; + sminute + &amp;#34;:&amp;#34; + ssecond);
 
 if(sminute == &amp;#34;0&amp;#34; || sminute == &amp;#34;30&amp;#34;){ //Wird zur halben und vollen Stunde ausgeführt
   if(sminute != lastminute){
         digitalWrite(ledYellow, HIGH);
         if(sendThingPost(LightKEY, analogRead(A0) == false)){
           while(sendThingPost(LightKEY, analogRead(A0) == false)){
             sendThingPost(LightKEY, analogRead(A0));
             delay(200);
           }
         }
         digitalWrite(ledYellow, LOW);
         delay(500);
         digitalWrite(ledYellow, HIGH);
         digitalWrite(sensorPower, HIGH);
         delay(100);
         if(sendThingPost(MoistureKEY, analogRead(A2) == false)){
           while(sendThingPost(MoistureKEY, analogRead(A2) == false)){
             sendThingPost(MoistureKEY, analogRead(A2));
             delay(200);
           }
         }
         digitalWrite(sensorPower, LOW);
         digitalWrite(ledYellow, LOW);
         
         digitalWrite(sensorPower, HIGH);
         delay(100);
         int tmp = analogRead(A2);
         digitalWrite(sensorPower, LOW);
         
         if(tmp threshold){
           digitalWrite(ledRed, HIGH);
           digitalWrite(ledGreen, LOW);
         }else{
           digitalWrite(ledRed, LOW);
           digitalWrite(ledGreen, HIGH);
         }
         
         lastminute = sminute;
   }
 }
 
 if(analogRead(A1) &amp;gt; 500){ //Button zum Setzen eines Nullpunktes
   digitalWrite(ledYellow, HIGH);
   sendThingPost(LightKEY, 0);
   digitalWrite(ledYellow, LOW);
   delay(500);
   digitalWrite(ledYellow, HIGH);
   sendThingPost(MoistureKEY, 0);
   digitalWrite(ledYellow, LOW);
   delay(1000);
 }
}
//Verwendete Funktionen von Fabian Kainka folgen ab hier:
//-----------------------------------------ThingsSpeak Functions------------------------------------
boolean sendThingPost(String key, int value)
{
 boolean succes = true;
 String  Host = &amp;#34;api.thingspeak.com&amp;#34;;
 String msg = &amp;#34;field1=&amp;#34; + String(value);
 succes &amp;amp;= sendCom(&amp;#34;AT+CIPSTART=\&amp;#34;TCP\&amp;#34;,\&amp;#34;&amp;#34; + Host + &amp;#34;\&amp;#34;,80&amp;#34;, &amp;#34;OK&amp;#34;);
 String postRequest = createThingPost(&amp;#34;/update&amp;#34;, key, msg);
 if (sendCom(&amp;#34;AT+CIPSEND=&amp;#34; + String(postRequest.length()), &amp;#34;&amp;gt;&amp;#34;))
 {
   esp8266.print(postRequest);
   esp8266.find(&amp;#34;SEND OK&amp;#34;);
   if (!esp8266.find(&amp;#34;CLOSED&amp;#34;)) succes &amp;amp;= sendCom(&amp;#34;AT+CIPCLOSE&amp;#34;, &amp;#34;OK&amp;#34;);
 }
 else
 {
   succes = false;
 }
 return succes;
}  
String createThingPost(String url, String key, String msg)
{
 String xBuffer;
 for (int i = 0; i sizeof(thingPost); i++)
 {
   char myChar = pgm_read_byte_near(thingPost + i);
   xBuffer += myChar;
 }
 String append = &amp;#34;api_key=&amp;#34; + key + &amp;#34;&amp;amp;&amp;#34; + msg;
 xBuffer.replace(&amp;#34;*URL*&amp;#34;, url);
 xBuffer.replace(&amp;#34;*LEN*&amp;#34;, String( append.length()));
 xBuffer.replace(&amp;#34;*APPEND*&amp;#34;, append);
 return xBuffer;
}
String createThingGet(String url, String key)
{
 String xBuffer;
 for (int i = 0; i sizeof(thingPost); i++)
 {
   char myChar = pgm_read_byte_near(thingPost + i);
   xBuffer += myChar;
 }
 String append = &amp;#34;api_key=&amp;#34; + key;
 xBuffer.replace(&amp;#34;POST&amp;#34;, &amp;#34;GET&amp;#34;);
 xBuffer.replace(&amp;#34;*URL*&amp;#34;, url);
 xBuffer.replace(&amp;#34;*LEN*&amp;#34;, String( append.length()));
 xBuffer.replace(&amp;#34;*APPEND*&amp;#34;, append);
 return xBuffer;
}
String createThingGet(String url, String key, String msg)
{
 String xBuffer;
 for (int i = 0; i sizeof(thingPost); i++)
 {
   char myChar = pgm_read_byte_near(thingPost + i);
   xBuffer += myChar;
 }
 String append = &amp;#34;api_key=&amp;#34; + key + &amp;#34;&amp;amp;&amp;#34; + msg;
 xBuffer.replace(&amp;#34;POST&amp;#34;, &amp;#34;GET&amp;#34;);
 xBuffer.replace(&amp;#34;*URL*&amp;#34;, url);
 xBuffer.replace(&amp;#34;*LEN*&amp;#34;, String( append.length()));
 xBuffer.replace(&amp;#34;*APPEND*&amp;#34;, append);
 return xBuffer;
}
String getTCP(String Host, String Subpage)
{
 boolean succes = true;
 succes &amp;amp;= sendCom(&amp;#34;AT+CIPSTART=\&amp;#34;TCP\&amp;#34;,\&amp;#34;&amp;#34; + Host + &amp;#34;\&amp;#34;,80&amp;#34;, &amp;#34;OK&amp;#34;);
 String getRequest = &amp;#34;GET &amp;#34; + Subpage + &amp;#34; HTTP/1.1\r\nHost:&amp;#34; + Host + &amp;#34;\r\n\r\n&amp;#34;;
 succes &amp;amp;= sendCom(&amp;#34;AT+CIPSEND=&amp;#34; + String(getRequest.length() + 2), &amp;#34;&amp;gt;&amp;#34;);
 return sendCom(getRequest);
}
boolean getTime(String Host, String Subpage)
{
 boolean succes = true;
 int xyear, xmonth, xday, xhour, xminute, xsecond;  //lokal variables
 succes &amp;amp;= sendCom(&amp;#34;AT+CIPSTART=\&amp;#34;TCP\&amp;#34;,\&amp;#34;&amp;#34; + Host + &amp;#34;\&amp;#34;,80&amp;#34;, &amp;#34;OK&amp;#34;);
 String getRequest = &amp;#34;GET &amp;#34; + Subpage + &amp;#34; HTTP/1.1\r\nHost:&amp;#34; + Host + &amp;#34;\r\n&amp;#34;;
 succes &amp;amp;= sendCom(&amp;#34;AT+CIPSEND=&amp;#34; + String(getRequest.length() + 2), &amp;#34;&amp;gt;&amp;#34;);
 esp8266.println(getRequest);
 if (esp8266.find(&amp;#34;+IPD&amp;#34;))
 {
   if (esp8266.find(&amp;#34;\r\n\r\n&amp;#34;))
   {
     xyear = esp8266.parseInt();
     xmonth = esp8266.parseInt();
     xday = esp8266.parseInt();
     xhour = esp8266.parseInt();
     xminute = esp8266.parseInt();
     xsecond = esp8266.parseInt();
     if (xday 0) xday *= -1;          //Because of date seperator - parseInt detects negativ integer
     if (xmonth 0) xmonth *= -1;    //Because of date seperator - parseInt detects negativ integer
     setTime(xhour, xminute, xsecond, xday, xmonth, xyear);
     sendCom(&amp;#34;AT+CIPCLOSE&amp;#34;, &amp;#34;OK&amp;#34;);
     return true;
   }
   else return false;
 }
 else return false;
}
//-----------------------------------------Config ESP8266------------------------------------
boolean espConfig()
{
 boolean succes = true;
 esp8266.setTimeout(5000);
 succes &amp;amp;= sendCom(&amp;#34;AT+RST&amp;#34;, &amp;#34;ready&amp;#34;);
 esp8266.setTimeout(1000);
 if (configStation(SSID, PASSWORD)) {
   succes &amp;amp;= true;
   debug(&amp;#34;WLAN Connected&amp;#34;);
   debug(&amp;#34;My IP is:&amp;#34;);
   debug(sendCom(&amp;#34;AT+CIFSR&amp;#34;));
 }
 else
 {
   succes &amp;amp;= false;
 }
 //shorter Timeout for faster wrong UPD-Comands handling
 succes &amp;amp;= sendCom(&amp;#34;AT+CIPMODE=0&amp;#34;, &amp;#34;OK&amp;#34;);  //So rum scheit wichtig!
 succes &amp;amp;= sendCom(&amp;#34;AT+CIPMUX=0&amp;#34;, &amp;#34;OK&amp;#34;);
 return succes;
}
boolean configTCPServer()
{
 boolean succes = true;
 succes &amp;amp;= (sendCom(&amp;#34;AT+CIPMUX=1&amp;#34;, &amp;#34;OK&amp;#34;));
 succes &amp;amp;= (sendCom(&amp;#34;AT+CIPSERVER=1,80&amp;#34;, &amp;#34;OK&amp;#34;));
 return succes;
}
boolean configTCPClient()
{
 boolean succes = true;
 succes &amp;amp;= (sendCom(&amp;#34;AT+CIPMUX=0&amp;#34;, &amp;#34;OK&amp;#34;));
 //succes &amp;amp;= (sendCom(&amp;#34;AT+CIPSERVER=1,80&amp;#34;, &amp;#34;OK&amp;#34;));
 return succes;
}
boolean configStation(String vSSID, String vPASSWORT)
{
 boolean succes = true;
 succes &amp;amp;= (sendCom(&amp;#34;AT+CWMODE=1&amp;#34;, &amp;#34;OK&amp;#34;));
 esp8266.setTimeout(20000);
 succes &amp;amp;= (sendCom(&amp;#34;AT+CWJAP=\&amp;#34;&amp;#34; + String(vSSID) + &amp;#34;\&amp;#34;,\&amp;#34;&amp;#34; + String(vPASSWORT) + &amp;#34;\&amp;#34;&amp;#34;, &amp;#34;OK&amp;#34;));
 esp8266.setTimeout(1000);
 return succes;
}
boolean configAP()
{
 boolean succes = true;
 succes &amp;amp;= (sendCom(&amp;#34;AT+CWMODE=2&amp;#34;, &amp;#34;OK&amp;#34;));
 succes &amp;amp;= (sendCom(&amp;#34;AT+CWSAP=\&amp;#34;NanoESP\&amp;#34;,\&amp;#34;\&amp;#34;,5,0&amp;#34;, &amp;#34;OK&amp;#34;));
 return succes;
}
boolean configUDP()
{
 boolean succes = true;
 succes &amp;amp;= (sendCom(&amp;#34;AT+CIPMODE=0&amp;#34;, &amp;#34;OK&amp;#34;));
 succes &amp;amp;= (sendCom(&amp;#34;AT+CIPMUX=0&amp;#34;, &amp;#34;OK&amp;#34;));
 succes &amp;amp;= sendCom(&amp;#34;AT+CIPSTART=\&amp;#34;UDP\&amp;#34;,\&amp;#34;192.168.255.255\&amp;#34;,90,91,2&amp;#34;, &amp;#34;OK&amp;#34;); //Importand Boradcast...Reconnect IP
 return succes;
}
//-----------------------------------------------Controll ESP-----------------------------------------------------
boolean sendUDP(String Msg)
{
 boolean succes = true;
 succes &amp;amp;= sendCom(&amp;#34;AT+CIPSEND=&amp;#34; + String(Msg.length() + 2), &amp;#34;&amp;gt;&amp;#34;);    //+&amp;#34;,\&amp;#34;192.168.4.2\&amp;#34;,90&amp;#34;, &amp;#34;&amp;gt;&amp;#34;);
 if (succes)
 {
   succes &amp;amp;= sendCom(Msg, &amp;#34;OK&amp;#34;);
 }
 return succes;
}
boolean sendCom(String command, char respond[])
{
 esp8266.println(command);
 if (esp8266.findUntil(respond, &amp;#34;ERROR&amp;#34;))
 {
   return true;
 }
 else
 {
   debug(&amp;#34;ESP SEND ERROR: &amp;#34; + command);
   return false;
 }
}
String sendCom(String command)
{
 esp8266.println(command);
 return esp8266.readString();
}
//-------------------------------------------------Debug Functions------------------------------------------------------
void serialDebug() {
 while (true)
 {
   if (esp8266.available())
     Serial.write(esp8266.read());
   if (Serial.available())
     esp8266.write(Serial.read());
 }
}
void debug(String Msg)
{
 if (DEBUG)
 {
   Serial.println(Msg);
 }
}
&lt;/code&gt;&lt;/pre&gt;
&lt;/details&gt;
&lt;p&gt;Das Programm misst zur vollen und halben Stunde (Zeit wird aus dem Internet bezogen) Helligkeit und Feuchtigkeit, um diese dann in zwei Graphen auf Thingspeak.com zu schreiben. Bei zu trockener Erde (der Wert „threshold“ muss individuell angepasst werden, bei mir lag der Wert für feuchte Erde bei rund 400) leuchtet dann eine rote LED und ansonsten eine grüne. Die Stromzufuhr für den Feuchtigkeitssensor (ein Spannungsteiler), wird nur periodisch eingeschaltet, um Elektrolyse in der Erde zu vermeiden. Außerdem müssen Graphitelektroden (z.B. Bleistiftminen) verwendet werden, um die Pflanze nicht durch Ionen einer Elektrolyse zu vergiften (besonders bei Kupfer besteht Gefahr).&lt;/p&gt;</description></item><item><title>Schnellstart mit dem NanoESP - Teil2</title><link>https://fkainka.de/schnellstart-mit-dem-nanoesp-teil2/</link><pubDate>Mon, 07 Dec 2015 00:01:01 +0100</pubDate><guid>https://fkainka.de/schnellstart-mit-dem-nanoesp-teil2/</guid><description>&lt;p&gt;&lt;em&gt;In diesem Artikel finden Sie Auszüge aus einem meiner ersten Bücher „Schnellstart mit dem Arduino Micro“. Ich habe den Text etwas für das NanoESP-Board angepasst. Screenshots etc. können aber immer noch Text für einen anderen Arduino enthalten. Gedacht ist dieser Artikel vor allem für diejenigen, die sich für das NanoESP-Board (Pretzelboard) interessieren, aber noch nie mit Arduino gearbeitet haben.&lt;/em&gt;&lt;/p&gt;
&lt;h1 id="vorbereitung"&gt;Vorbereitung&lt;/h1&gt;
&lt;p&gt;Nach dem theoretischen Einstieg in die Arduino-Welt ist es nun an der Zeit, sich mit den praktischen Grundlagen zu beschäftigen. Als ersten Schritt sollte man sich ein praktikables System für die Hardwareaufbauten aneignen. Für den NanoESP bietet sich ein mittleres bis großes Steckboard an.&lt;/p&gt;</description></item><item><title>Schnellstart mit dem NanoESP für Arduino Neulinge</title><link>https://fkainka.de/schnellstart-mit-dem-nanoesp-fuer-arduino-neulinge/</link><pubDate>Wed, 02 Dec 2015 11:11:08 +0100</pubDate><guid>https://fkainka.de/schnellstart-mit-dem-nanoesp-fuer-arduino-neulinge/</guid><description>&lt;p&gt;&lt;em&gt;In diesem Artikel finden Sie Auszüge aus einem meiner ersten Bücher &amp;ldquo;Schnellstart mit dem Arduino Uno&amp;rdquo;. Ich habe den Text etwas für das NanoESP-Board angepasst. Screenshots etc. können aber immer noch Text für einen anderen Arduino enthalten. Gedacht ist dieser Artikel vor allem für diejenigen, die sich für das NanoESP-Board (Pretzelboard) interessieren, aber noch nie mit Arduino gearbeitet haben.&lt;/em&gt;&lt;/p&gt;
&lt;h1 id="teil-1-schnellstart"&gt;Teil 1: Schnellstart&lt;/h1&gt;
&lt;h2 id="schnellstart"&gt;Schnellstart&lt;/h2&gt;
&lt;p&gt;Ich schätze es juckt Ihnen schon seit dem Öffnen des Paketes in den Fingern, ein Programm auf Ihrem Arduino auszuprobieren. Deshalb gibt es hier noch vor anderen wichtigen Informationen eine Schnellstartanleitung und ein paar Beispiele.&lt;/p&gt;</description></item><item><title>Der Kalender-Wettbewerb 2015: Sensoren im Internet Of Things</title><link>https://fkainka.de/der-kalender-wettbewerb-2015-sensoren-im-internet-of-things/</link><pubDate>Mon, 09 Nov 2015 19:00:57 +0100</pubDate><guid>https://fkainka.de/der-kalender-wettbewerb-2015-sensoren-im-internet-of-things/</guid><description>&lt;h4 id="zur-liste-mit-allen-beiträgen"&gt;&lt;a href="https://fkainka.de/alle-beitraege-zum-adventskalender-wettbewerb-2015"&gt;Zur Liste mit allen Beiträgen&lt;/a&gt;&lt;/h4&gt;
&lt;p&gt;Entwickeln Sie ein eigenes Projekt mit den Bauteilen aus den &lt;a href="http://www.elektronik-labor.de/Lernpakete/Kalender15/Kalender15.html"&gt;Elektronik-Kalender 2015&lt;/a&gt; und dem &lt;a href="https://fkainka.de/der-conrad-adventskalender-internet-of-things/"&gt;Internet of Things Kalender&lt;/a&gt; in Verbindung mit dem NanoESP-Board (im IoT-Kalender enthalten) und nehmen Sie am Wettbewerb teil! Falls Sie den Kalender nicht haben, können Sie trotzdem teilnehmen, denn die Bauteile sind leicht zu besorgen. Der NanoESP wird ab Anfang Dezember ebenfalls im Einzelverkauf erhältlich sein. Der Aufbau kann gesteckt oder gelötet sein, ganz egal wie. Einsendeschluss ist der 31.01.2016. Aber Sie können jetzt schon loslegen und Ihren Beitrag einsenden oder selbst auf &lt;a href="http://www.instructables.com/"&gt;Instructables.com&lt;/a&gt; veröffentlichen.&lt;/p&gt;</description></item><item><title>Der Conrad Adventskalender: Internet of Things</title><link>https://fkainka.de/der-conrad-adventskalender-internet-of-things/</link><pubDate>Sun, 01 Nov 2015 10:42:55 +0100</pubDate><guid>https://fkainka.de/der-conrad-adventskalender-internet-of-things/</guid><description>&lt;p&gt;In den letzen Monaten war ich ziemlich eingespannt. Grund dafür war, dass Franzis am Anfang des Jahres zu mir gekommen ist mit dem Auftrag, einen Adventskalender mit dem Thema Internet of Things zu entwickeln. Eine spannende Aufgabe wie ich fand und habe mich gleich ans Werk gemacht. Heraus kam nicht nur ein Adventskalender, sondern auch ein Entwicklungsboard, dass ich NanoESP getauft habe (denn es besteht quasi aus einem Arduino Nano Replikat und einem ESP8266 WLAN Modul). Franzis verkauft ab Anfang Dezember das Board unter dem Namen Pretzelboard und Conrad wollte auch eine eigene Version, die den Namen C-Controll IoT WiFi Board trägt. Der Inhalt ist allerdings immer der selbe: eine WLAN fähiges, Arduino kompatibles Entwicklungsboard für einen moderaten Preis (Einzelverkaufspreis 29,95€).&lt;br&gt;
Zum Zeitpunkt, an dem ich den Artikel schreibe, ist das Board allerdings nur im Adventskalender zu bekommen. Dieser enthält neben dem Board noch einige praktische Bauteile. Welche genau wird an dieser Stelle noch nicht verraten. Details zum Board kann man aber auf der eigens für das Thema Internet of Things und NanoESP erstellten Webseite&lt;/p&gt;</description></item><item><title>Grafikdisplays programmieren</title><link>https://fkainka.de/grafikdisplays-programmieren/</link><pubDate>Thu, 01 Oct 2015 21:10:58 +0200</pubDate><guid>https://fkainka.de/grafikdisplays-programmieren/</guid><description>&lt;p&gt;In Zusammenarbeit mit &lt;a href="http://tiny.systems/"&gt;Thomas Baum&lt;/a&gt; ist ein spannendes und vielseitiges Lernpaket rund um das Thema Grafikdisplay programmieren entstanden. Hauptbestandteil des Pakets ist ein stromsparendes Display-Shield für Arduino Boards, auf dem sich zusätzlich noch zwei programmierbare Buttons befinden.&lt;/p&gt;
&lt;p&gt;Anhand von 20 praxisnahen Versuchen bekommt der Leser Schritt für Schritt die Grundlagen des Displayprogammierung vermittelt. Egal ob es um das einfach Darstellen von Text oder das Zeichnen von geometrischen Figuren geht, für jeden Anwendungsbereich gibt es ein praktisches Projekt. Egal ob handliches Oszilloskop für die schnelle Messung nebenbei oder grafische Statusmonitor eines SmartHomes, man bekommt immer gleich einen Eindruck für was das Gelernte gut sein könnte. Um das Paket abzurunden gibt es am Ende noch ein Spiel, nämlich das beliebte Flappy Birds. So kann man nach all dem neuen Wissen noch einmal richtig abschalten.&lt;/p&gt;</description></item><item><title>RGB Crossfade Library</title><link>https://fkainka.de/rgb-crossfade-library/</link><pubDate>Sun, 19 Apr 2015 00:25:59 +0200</pubDate><guid>https://fkainka.de/rgb-crossfade-library/</guid><description>&lt;p&gt;Die Crossfade-Library von Radek Wierzbicki ist aus einem Arduino Artikel zum Thema Crossfade entstanden. Sie ermöglicht es unter anderem Farben zu definieren, und zwar nach dem Schema:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;RGBColor white = RGBColor(100, 100, 100);&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Die Werte werden in Prozent angegeben, das Maximum ist also 100.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Quellen:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="http://www.radekw.com/blog/2011/01/08/arduino-remote-rgb-light/"&gt;Crossfade-Library&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="https://github.com/radekw/Arduino/tree/5f24ce7c8db9dfbb5252b59824c3217d851b3a3c"&gt;Auf Github in Unterordner Libraries/RGB-LED&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Diese Farben können dann per Crossfade-Befehl oder per setColor-Befehl ausgegeben werden.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Funktionen der Library:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;RGBLED(int redPin, int greenPin, int bluePin, int hold, int wait, int commonAnode);&lt;/li&gt;
&lt;li&gt;void crossfade(RGBColor &amp;amp;color);&lt;/li&gt;
&lt;li&gt;void setColor(RGBColor &amp;amp;color);&lt;/li&gt;
&lt;li&gt;void setIntensity(int intensity);&lt;/li&gt;
&lt;li&gt;void setCrossfadeWait(int wait);&lt;/li&gt;
&lt;li&gt;void setCrossfadeHold(int hold);&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;In der Initialisierungsfunktion RGBLED werden in den &lt;strong&gt;ersten drei Parametern die einzelnen Pins&lt;/strong&gt; angegeben, an denen die Farben liegen. Danach folgen die Festlegung der &lt;strong&gt;Standartwere für Hold und Wait&lt;/strong&gt;. Zuletzt kann man noch festlegen ob die RGB-LED eine &lt;strong&gt;gemeinsame Anode (int = 1)  oder Kathode (int = 0)&lt;/strong&gt; hat. Dies ist wichtig, da bei einer gemeinsamen Anode die PWM-Werte umgekehrt werden müssen.&lt;/p&gt;</description></item><item><title>Remote App - NetIO</title><link>https://fkainka.de/remote-app-netio/</link><pubDate>Sun, 12 Apr 2015 00:16:49 +0200</pubDate><guid>https://fkainka.de/remote-app-netio/</guid><description>&lt;p&gt;In diesem Artikel möchte ich eine einfache Möglichkeit vorstellen sich eine eigene Smartphone Fernbedienung zusammenzustellen. Ich möchte gleich am Anfang darauf hinweisen, dass die App leider nicht kostenlos ist. Für &lt;a href="https://play.google.com/store/apps/details?id=com.luvago.netio"&gt;Android Geräte&lt;/a&gt; kostet die App zu dem Zeitpunkt an dem der Artikel geschrieben wurde 4.99€. In &lt;a href="https://itunes.apple.com/app/netio/id464924297?mt=8"&gt;Apples App-Store&lt;/a&gt; muss man sogar 10,99€ bezahlen. Dennoch denke ich, dass der Preis bei dem Service nicht völlig ungerechtfertigt ist.&lt;/p&gt;
&lt;figure&gt;&lt;a href="https://fkainka.de/images/2015/04/Test53.jpeg"&gt;&lt;img class="size-medium wp-image-684" src="https://fkainka.de/images/2015/04/Test53.jpeg" alt="Die Webseite" width="300" height="281" /&gt;&lt;/a&gt;&lt;figcaption&gt;Die Webseite&lt;/figcaption&gt;&lt;/figure&gt;
&lt;p&gt;Das Designen einer eigenen Steueroberfläche geschieht einfach über die Internetseite:&lt;/p&gt;</description></item><item><title>Arduino IR RGB Controller</title><link>https://fkainka.de/arduino-ir-rgb-controller/</link><pubDate>Sun, 05 Apr 2015 00:01:17 +0200</pubDate><guid>https://fkainka.de/arduino-ir-rgb-controller/</guid><description>&lt;p&gt;In diesem Projekt habe ich mich daran versucht, einen gängigen RGB-Controller mit leichten Veränderungen nachzuprogrammieren. Diese RGB-Controller werden meist beim Bestellen von RGB-Bändern mitgeliefert und sind über eine ebenfalls mitgelieferte IR-Fernbedienung steuerbar. Es gibt zwei gängige Varianten: 24-Taste und 44-Taste. In diesem Projekt habe ich eine &lt;strong&gt;24-Tasten&lt;/strong&gt; Fernbedienung verwendet.&lt;/p&gt;
&lt;p&gt;In das Programm habe ich einige Veränderungen gegenüber den bekannten RGB-Controllern eingebaut. Zum einen erfolgt der Farbwechsel immer über ein Crossfade von ca. einer Sekunde. Außerdem ist die Startfarbe immer ein Gelbton, ebenfalls innerhalb von einer Sekunde gefaded, um die Augen an den Lichtwechsel zu gewöhnen. Die automatischen Programme sind ebenfalls angepasst. Sie lassen sich im Programm einfach anpassen. Dazu später mehr.&lt;/p&gt;</description></item><item><title>ESP8266 in der Arduino IDE</title><link>https://fkainka.de/esp8266-in-der-arduino-ide/</link><pubDate>Wed, 01 Apr 2015 22:21:48 +0200</pubDate><guid>https://fkainka.de/esp8266-in-der-arduino-ide/</guid><description>&lt;p&gt;Vor kurzem kam die Meldung bei verschiedenen Online-Magazinen, dass findige Entwickler nun eine eigene Arduino IDE mit integriertem Support für das WLAN-Modul ESP8266 entwickelt haben (&lt;a href="http://www.electronics-lab.com/blog/?p=33488"&gt;Beitrag auf Electronic-Lab&lt;/a&gt; ; &lt;a href="http://www.esp8266.com/viewforum.php?f=25"&gt;Link ESP8266.com&lt;/a&gt; ; &lt;a href="https://github.com/esp8266/arduino"&gt;Github mit Download)&lt;/a&gt;. Es handelt sich hierbei um eine angepasste Arduino IDE, die man alternativ zur eigentlichen IDE installieren kann. Beim stöbern im Forum habe ich aber auch eine Möglichkeit entdeckt, bei der die notwendigen Dateien einfach in die bestehende Arduino Version (ab 1.6) eingebunden werden können&lt;/p&gt;</description></item><item><title>Yun Projekt Universalfernbedienung</title><link>https://fkainka.de/yun-projekt-universalfernbedienung/</link><pubDate>Mon, 16 Feb 2015 00:01:32 +0100</pubDate><guid>https://fkainka.de/yun-projekt-universalfernbedienung/</guid><description>&lt;p&gt;Das Ziel dieses Arduino Yun Projekt war es, eine Art übers WLAN steuerbare Universalfernbedienung für sowohl Infrarot als auch Funksignale zu realisieren. Dabei kommen einige bereits vorgestellte Bauteile und Libraries zum Einsatz.&lt;/p&gt;
&lt;p&gt;Dieses Projekt ist eigentlich schon seid einiger Zeit fertig und im Einsatz, allerdings habe ich die Projektdateien nicht wiedergefunden. Nun sind sie aber wieder aufgetaucht und ich versuche mal alle Erkenntnisse zu rekonstruieren. Die Dokumentation ist deswegen allerdings nicht so ausführlich.&lt;/p&gt;</description></item><item><title>Bauanleitung RGB Treiber Modul</title><link>https://fkainka.de/bauanleitung-rgb-treiber-modul/</link><pubDate>Fri, 13 Feb 2015 00:01:44 +0100</pubDate><guid>https://fkainka.de/bauanleitung-rgb-treiber-modul/</guid><description>&lt;p&gt;In diesem Beitrag stelle ich auf der einen Seite eine Bauanleitung zum Nachbau des RGB Treiber Moduls vor und teste gleichzeitig ob sich eine Diashow zum Vorstellen der Schritte eignet.&lt;/p&gt;
&lt;p&gt;Die verwendeten Bauteile können mithilfe dieses öffentlichen Einkaufswagen auf Reichelt.de gefunden werden. Selbstverständlich können die Teile auch irgendwo anders gekauft werden. Die hier vorgestellte Liste dient allein zur Orientierung.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.reichelt.de/?ACTION=20;AWKID=1021687;PROVID=2084"&gt;Einkaufswagen RGB Treiber Modul&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="Schritt 1: Platine zuschneiden" loading="lazy" src="https://fkainka.de/images/2015/02/IMG_20150201_184324.jpg"&gt;&lt;/p&gt;
&lt;p&gt;Schritt 1: Platine zuschneiden Zunächst einmal sollte man sich ein passendes Platinenstück zuschneiden. Die Lochrasterplatine hat ein Rastermaß von 2,54 mm und ist einseitig mit Lötpunkten beschichtet. Die Dimensionen des mit einer Laubsäge rausgetrennten Stückes sind 6x10 Rasterpunkte.&lt;/p&gt;</description></item><item><title>Neues RGB Treiber Modul</title><link>https://fkainka.de/neues-rgb-treiber-modul/</link><pubDate>Mon, 09 Feb 2015 00:29:14 +0100</pubDate><guid>https://fkainka.de/neues-rgb-treiber-modul/</guid><description>&lt;p&gt;In der Vergangenheit habe ich mich schon des Öfteren mit dem Bau eines &lt;a href="https://fkainka.de/power-led-mini-shield/" title="RGB Strip Mini Shield"&gt;RGB Treiber Shields für Arduino&lt;/a&gt; oder andere Mikrocontroller versucht. Verschiedenste Versionen der Module sind bereits bei mir im Einsatz. Diese neue Variante soll nun verschiedenste Bedürfnisse auf einmal decken.&lt;/p&gt;
&lt;figure&gt;&lt;a href="https://fkainka.de/images/2015/02/IMG_20150121_151138.jpg"&gt;&lt;img class="wp-image-518 size-medium" src="https://fkainka.de/images/2015/02/IMG_20150121_151138.jpg" alt="RGB Treiber Modul von unten" width="300" height="237" data-id="518" /&gt;&lt;/a&gt;&lt;figcaption&gt;RGB Treiber Modul von unten&lt;/figcaption&gt;&lt;/figure&gt;
&lt;figure&gt;&lt;a href="https://fkainka.de/images/2015/02/IMG_20150121_152938.jpg"&gt;&lt;img class="wp-image-519 size-medium" src="https://fkainka.de/images/2015/02/IMG_20150121_152938.jpg" alt="RGB Treiber Modul auf Steckboard" width="220" height="300" data-id="519" /&gt;&lt;/a&gt;&lt;figcaption&gt;RGB Treiber Modul auf einem Steckboard (auf der rechten Seite VCC, nach links gelegt GND)&lt;/figcaption&gt;&lt;/figure&gt;
&lt;p&gt;Die erste Bedingung war die Kompatibilität zu gängigen Steckboards. Die Platine sollte möglichst leicht in das Board stecken lassen und sich genauso leicht wieder entfernen lassen. Das hat außerdem auch den Vorteil, dass ich später eines der &lt;a href="https://fkainka.de/die-neue-steckboardplatine-als-arduino-shield-2/" title="Die neue Steckboardplatine als Arduino Shield"&gt;Steckboard Platinen&lt;/a&gt; benutzen kann um eine dauerhafte Lösung zusammen zu löten.&lt;/p&gt;</description></item><item><title>Befehlsliste Bascom</title><link>https://fkainka.de/befehlsliste-bascom/</link><pubDate>Fri, 06 Feb 2015 00:15:25 +0100</pubDate><guid>https://fkainka.de/befehlsliste-bascom/</guid><description>&lt;p&gt;Oft ist es so, dass man plötzlich vergisst, wie man jetzt gerade in dieser Programmiersprache einen bestimmten Befehl formulieren muss. Deswegen steht hier eine Auflistung einiger wichtiger Bascom Befehle. Die Liste ist nicht vollständig aber wird von Zeit zu Zeit ergänzt.&lt;/p&gt;
&lt;p&gt;Benutzen Sie Stg+F um in der Seite nach etwas bestimmten zu suchen.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Befehl&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Schreibweise&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Grundlegendes&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Variable Dimensionieren&lt;/td&gt;
&lt;td&gt;Dim vByte As Byte Dim Bt_recieve_text As String * 50&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Sub Deklarieren&lt;/td&gt;
&lt;td&gt;Declare Sub Begin()&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Wartezeiten&lt;/td&gt;
&lt;td&gt;Waitms 500 Wait 1&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Pin an Port = High&lt;/td&gt;
&lt;td&gt;Portb.1 = 1&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Port = High&lt;/td&gt;
&lt;td&gt;Portb = 255&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Abfragen/Schleifen&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;If Abfragen&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;If&lt;/strong&gt; x=1 &lt;strong&gt;Then&lt;/strong&gt; &lt;strong&gt;Elseif&lt;/strong&gt; x=3 &lt;strong&gt;Then&lt;/strong&gt; &lt;strong&gt;Else&lt;/strong&gt; &lt;strong&gt;End If&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Select Case&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Select Case X&lt;/strong&gt; &lt;strong&gt;Case 0:&lt;/strong&gt; &lt;strong&gt;Case 1 To 9:&lt;/strong&gt; &lt;strong&gt;Case Else:&lt;/strong&gt; &lt;strong&gt;End Select&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Loop-Schleife&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Do&lt;/strong&gt; &lt;strong&gt;Loop Until&lt;/strong&gt; ok =1&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;For-Schleife&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;For&lt;/strong&gt; I = 1 &lt;strong&gt;To&lt;/strong&gt; X &lt;strong&gt;Next I&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Kommunikation&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Com1 konfigurieren (Hardware, lesen und schreiben)&lt;/td&gt;
&lt;td&gt;Open &amp;ldquo;com1:&amp;rdquo; For Binary As #1&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Serielle schreiben&lt;/td&gt;
&lt;td&gt;Print “Hallo”&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Spezielle Com konfigurieren  (schreiben, Ch #3, Pind.3)&lt;/td&gt;
&lt;td&gt;Open &amp;ldquo;comd.3:9600,8,n,1&amp;rdquo; For Output As #3&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Serielle #3 schreiben&lt;/td&gt;
&lt;td&gt;Print #3 , “Hallo”&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Serielle Spezial-Prozedur&lt;/td&gt;
&lt;td&gt;Config Serialin = Buffered , Size = 50 , Bytematch = 10Serial0charmatch() Input Bt_recieve_text Noecho End Sub&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;RC5 Konfigurieren (Portb.1)&lt;/td&gt;
&lt;td&gt;Portb.1 = 1                                              &amp;lsquo;Pulup Rc5 Config Rc5 = Pinb.1 Enable Interrupts&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;RC5 Empfangen&lt;/td&gt;
&lt;td&gt;Getrc5(vrc5_address , Vrc5_com)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;I²C Konfigurieren&lt;/td&gt;
&lt;td&gt;Config Scl = Portc.5 Config Sda = Portc.4 I2cinit&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;I²C Senden&lt;/td&gt;
&lt;td&gt;I2cstart I2cwbyte 48 I2cstop&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;I²C Empfangen&lt;/td&gt;
&lt;td&gt;I2cstart I2cwbyte 35 I2crbyte Status , Ack                                     &amp;rsquo; I2crbyte Antenna , Nack I2cstop&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;</description></item><item><title>ESP8266 Arduino-Programm: setLED</title><link>https://fkainka.de/esp8266-arduino-programm-setled/</link><pubDate>Mon, 02 Feb 2015 00:00:12 +0100</pubDate><guid>https://fkainka.de/esp8266-arduino-programm-setled/</guid><description>&lt;p&gt;Dieses Programm ist mein erster Versuch, das &lt;a href="https://fkainka.de/kurzinfos-zum-wlan-modul-esp8266-wi07c/" title="Kurzinfos zum WLAN-Modul ESP8266 (Wi07c)"&gt;WLAN Modul ESP8266&lt;/a&gt; über den Arduino Uno zu bändigen. Die Funktion des Programms erscheint recht simpel. Über &lt;strong&gt;Steuerbefehle&lt;/strong&gt; lässt sich di&lt;strong&gt;e L-Led (digital Pin13)&lt;/strong&gt;, die auf fast jedem Arduino Board vorhanden ist, &lt;strong&gt;Ein- und Ausschalten&lt;/strong&gt;. Es gibt zwei Varianten. Die erste Variante erlaubt &lt;strong&gt;über den Browser direkt durch Eingabe einer URL&lt;/strong&gt; die LED zu schalten. Die zweite Variante läuft &lt;strong&gt;über einen eigenen TCP-Client&lt;/strong&gt;, wie ich ihn z.B. in dem Artikel über &lt;a href="https://fkainka.de/wlan-modul-esp8266-erste-schritte/" title="WLAN Modul ESP8266 – Erste Schritte"&gt;die ersten Schritte&lt;/a&gt; verwendet habe.&lt;/p&gt;</description></item><item><title>Befehlsliste Mbed.org</title><link>https://fkainka.de/befehlsliste-mbed-org/</link><pubDate>Thu, 29 Jan 2015 21:11:00 +0100</pubDate><guid>https://fkainka.de/befehlsliste-mbed-org/</guid><description>&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Befehl&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Schreibweise&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Grundlegendes&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Grundstruktur&lt;/td&gt;
&lt;td&gt;*#include &amp;ldquo;mbed.h&amp;rdquo;*&lt;em&gt;int main() {   }&lt;/em&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Library einbinden&lt;/td&gt;
&lt;td&gt;&lt;em&gt;#include “libX.h“&lt;/em&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Variable deklarieren (Typ Integer, Wert = 0)&lt;/td&gt;
&lt;td&gt;&lt;em&gt;int led  = 0;&lt;/em&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Array deklarieren (Typ Integer, 6 Werte)&lt;/td&gt;
&lt;td&gt;&lt;em&gt;int Arrayname[6] = {2, 4, -8, 3, 2};&lt;/em&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Warten (0,5 Sekunden)&lt;/td&gt;
&lt;td&gt;&lt;em&gt;wait(0.5);&lt;/em&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Pin-Funktionen&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Digitaler Ausgang&lt;/td&gt;
&lt;td&gt;&lt;em&gt;DigitalOut meineLED (PTD1);&lt;/em&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Digitaler Eingang&lt;/td&gt;
&lt;td&gt;&lt;em&gt;DigitalIn Sch**alter(PTD4);&lt;/em&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;PWM Ausgang (nur an PWM-Pins)&lt;/td&gt;
&lt;td&gt;&lt;em&gt;PwmOut LedBlau(LED_BLUE);&lt;/em&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Analoger Eingang (nur an ADC-Pins)&lt;/td&gt;
&lt;td&gt;&lt;em&gt;AnalogIn LDR(PTC2);&lt;/em&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Analoger Ausgang (nur an DAC-Pins)&lt;/td&gt;
&lt;td&gt;&lt;em&gt;AnalogOut Spann(PTE30);&lt;/em&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Interrupt Pin (nur Interrupts-Pins)&lt;/td&gt;
&lt;td&gt;&lt;em&gt;InterruptIn event(PTD4);&lt;/em&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;! Relative Werte (PWM, Analoge Werte ) haben einen Bereich von 0…1, z.B. LedBlau = 0.5;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Abfragen/Schleifen&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;If-Abfrage mit Else&lt;/td&gt;
&lt;td&gt;*if (button == HIGH){    }*&lt;em&gt;else{   }&lt;/em&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Switch-Abfrage&lt;/td&gt;
&lt;td&gt;*switch (x) {*&lt;em&gt;case 1:&lt;/em&gt; &lt;em&gt;case 2:&lt;/em&gt; &lt;em&gt;default:&lt;/em&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;For-Schleife&lt;/td&gt;
&lt;td&gt;&lt;em&gt;for (x = 2; x &amp;lt; 7; x++) {      }&lt;/em&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;While-Schleife&lt;/td&gt;
&lt;td&gt;*while (schalter== HIGH) {   }*&lt;strong&gt;ODER:&lt;/strong&gt; do{ } while (schalter==HIGH);&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Schleife vorzeitig verlassen&lt;/td&gt;
&lt;td&gt;&lt;em&gt;break;&lt;/em&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Überspringt ausführbaren Quelltext in Schleife&lt;/td&gt;
&lt;td&gt;&lt;em&gt;continue;&lt;/em&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Printf&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Hello ausgeben&lt;/td&gt;
&lt;td&gt;printf(&amp;ldquo;Hello \n&amp;rdquo;);&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Textformationen&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Integer Variable i ausgeben&lt;/td&gt;
&lt;td&gt;printf(&amp;quot;%d \n&amp;quot;, i);&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Variablen&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Gekürzte Gleitkommazahl ausgeben (xx.xxx)&lt;/td&gt;
&lt;td&gt;printf(&amp;quot;%2.3f \n&amp;quot;, f);&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Spezielle serielle Schnistelle&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Schnittstellen &lt;strong&gt;pc&lt;/strong&gt; initialisieren (USB)&lt;/td&gt;
&lt;td&gt;Serial pc(USBTX, USBRX);&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Bautrate festlegen (9600)&lt;/td&gt;
&lt;td&gt;pc.baud (9600);&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;An Schnittstelle NAME Text ausgeben&lt;/td&gt;
&lt;td&gt;pc.printf(&amp;ldquo;TEXT \n&amp;rdquo;);&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Zeichen 38 Ausgeben (&amp;amp;-Zeichen)&lt;/td&gt;
&lt;td&gt;pc.putc(38);&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Zeichen einlesen&lt;/td&gt;
&lt;td&gt;pc.getc()&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Mathematisches&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Sinus, Cosinus, Tangens&lt;/td&gt;
&lt;td&gt;&lt;em&gt;sin(),cos(),tan()&lt;/em&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Wurzel aus X&lt;/td&gt;
&lt;td&gt;sqrt(x)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;X hoch Y : xy&lt;/td&gt;
&lt;td&gt;&lt;em&gt;pow(x, y)&lt;/em&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Absolut Wert einer Zahl (Betrag von x)&lt;/td&gt;
&lt;td&gt;&lt;em&gt;abs(x)&lt;/em&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Zufällige Zahl&lt;/td&gt;
&lt;td&gt;&lt;em&gt;random()&lt;/em&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Vergleiche&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;gleich&lt;/td&gt;
&lt;td&gt;&lt;em&gt;==&lt;/em&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;ungleich&lt;/td&gt;
&lt;td&gt;&lt;em&gt;!=&lt;/em&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;größer, kleiner&lt;/td&gt;
&lt;td&gt;&lt;em&gt;&amp;lt;, &amp;gt;&lt;/em&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Größer oder gleich, kleiner oder gleich&lt;/td&gt;
&lt;td&gt;&lt;em&gt;&amp;lt;= , &amp;gt;=&lt;/em&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Funktion: kleinere Zahl von x und y&lt;/td&gt;
&lt;td&gt;&lt;em&gt;min(x, y)&lt;/em&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Funktion: größere Zahl von x und y&lt;/td&gt;
&lt;td&gt;&lt;em&gt;max(x, y)&lt;/em&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Boolsche Operatoren&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Und&lt;/td&gt;
&lt;td&gt;&lt;em&gt;&amp;amp;&amp;amp;&lt;/em&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Oder&lt;/td&gt;
&lt;td&gt;*&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Nicht&lt;/td&gt;
&lt;td&gt;&lt;em&gt;!&lt;/em&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Sonstiges&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Kommentar eine Zeile&lt;/td&gt;
&lt;td&gt;&lt;em&gt;//&lt;/em&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Kommentar längerer Bereich&lt;/td&gt;
&lt;td&gt;/*                &lt;em&gt;*/&lt;/em&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Prozedur&lt;/td&gt;
&lt;td&gt;&lt;em&gt;void Prozedurname() {   }&lt;/em&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Funktion mit Integer-Rückgabewert und Integer-Parameter&lt;/td&gt;
&lt;td&gt;&lt;em&gt;int Funktionsname (int Parameter) {**}&lt;/em&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Zeit setzen (01.06.2014 00:00:00)&lt;/td&gt;
&lt;td&gt;set_time(1401580800);&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Interssante Librarys und deren wichtigste Befehle&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Touch Sensor&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;#include &amp;ldquo;TSISensor.h&amp;rdquo;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;initialisieren&lt;/td&gt;
&lt;td&gt;TSISensor tsi;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Auslesen in Prozent&lt;/td&gt;
&lt;td&gt;tsi.readPercentage();&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Auslesen in Millimetern&lt;/td&gt;
&lt;td&gt;tsi.readDistance();&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Beschleunigungssensor&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;#include &amp;ldquo;MMA8451Q.h&amp;rdquo;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Initialisieren über I²C Pins und Adresse&lt;/td&gt;
&lt;td&gt;MMA8451Q acc(PTE25, PTE24, 58);&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Beschleunigung in X-Richtung lesen&lt;/td&gt;
&lt;td&gt;acc.getAccX();&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Alle Beschleunigungsachsen in ein Array lesen&lt;/td&gt;
&lt;td&gt;acc.getAccAllAxis()&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;USB-Mouse (Lib: USBDevice)&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;#include &amp;ldquo;USBMouse.h&amp;rdquo;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Maus initialisieren&lt;/td&gt;
&lt;td&gt;USBMouse mouse;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Maus Bewegen&lt;/td&gt;
&lt;td&gt;mouse.move(x,y);&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Linken Maustaste drücken&lt;/td&gt;
&lt;td&gt;mouse.press(MOUSE_LEFT);&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Linken Maustaste loslassen&lt;/td&gt;
&lt;td&gt;mouse.release(MOUSE_ LEFT);&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Rechte Maustaste Klicken&lt;/td&gt;
&lt;td&gt;mouse.click(MOUSE_RIGHT);&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Doppelklick mit linker Maustaste&lt;/td&gt;
&lt;td&gt;mouse.doubleClick();&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;</description></item><item><title>Kurzinfos WLAN-Modul ESP8266 (Wi07c)</title><link>https://fkainka.de/kurzinfos-zum-wlan-modul-esp8266-wi07c/</link><pubDate>Wed, 28 Jan 2015 18:15:48 +0100</pubDate><guid>https://fkainka.de/kurzinfos-zum-wlan-modul-esp8266-wi07c/</guid><description>&lt;h1 id="esp8266-at-befehle"&gt;ESP8266 AT Befehle&lt;/h1&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Befehl&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Schreibweise&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Grundlegendes&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Test Befehl&lt;/td&gt;
&lt;td&gt;AT&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Reset&lt;/td&gt;
&lt;td&gt;AT+RST&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Firmware Infos&lt;/td&gt;
&lt;td&gt;AT+GMR&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Baudrate ändern&lt;/td&gt;
&lt;td&gt;AT+CIOBAUD=&lt;baud&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;WLAN Befehle&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;WLAN-Modus (1 = Client, 2 = AP, 3 = Dual)&lt;/td&gt;
&lt;td&gt;AT+CWMODE=&lt;mode&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Mehrere Verbindungen zulassen&lt;/td&gt;
&lt;td&gt;AT+CIPMUX=&lt;mode&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;WLAN-Netzwerke suchen&lt;/td&gt;
&lt;td&gt;AT+CWLAP&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;WLAN Verbinden&lt;/td&gt;
&lt;td&gt;AT+CWJAP=&amp;quot;&lt;ssid&gt;&amp;quot;,&amp;quot;&lt;pass&gt;&amp;quot;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;WLAN Trennen&lt;/td&gt;
&lt;td&gt;AT+CWQAP&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;WLAN-AccesPoint Einstellungen&lt;/td&gt;
&lt;td&gt;AT+CWSAP=&amp;quot;&lt;ssid&gt;&amp;quot;,&amp;quot;&lt;pass&gt;&amp;quot;[,&lt;chan&gt;,&lt;enc&gt;]&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;IP-Adresse Ausgeben&lt;/td&gt;
&lt;td&gt;AT+CIFSR&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Kommunikation&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Datenmodus (0=Transparent, 1=Datenmodus)&lt;/td&gt;
&lt;td&gt;AT+CIPMODE=&lt;mode&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Struktur empfangener Daten&lt;/td&gt;
&lt;td&gt;+IPD,&lt;id&gt;,&lt;len&gt;:&lt;data&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Verbindung aufbauen&lt;/td&gt;
&lt;td&gt;AT+CIPSTART=&amp;quot;&lt;type&gt;&amp;quot;,&amp;quot;&lt;address&gt;&amp;quot;,&lt;port&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Daten Senden&lt;/td&gt;
&lt;td&gt;AT+CIPSEND=&lt;id&gt;,&lt;len&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Verbdingung trennen&lt;/td&gt;
&lt;td&gt;AT+CIPCLOSE=&lt;id&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Server Befehle&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Server Starten&lt;/td&gt;
&lt;td&gt;AT+CIPSERVER=1,&lt;port&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Server Beenden&lt;/td&gt;
&lt;td&gt;AT+CIPSERVER=0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Server Status &amp;amp; verbundene Clients&lt;/td&gt;
&lt;td&gt;AT+CIPSTATUS&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Server Timeout festlegen&lt;/td&gt;
&lt;td&gt;AT+CIPSTO=&lt;timeout&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Verbundene Clients anzeigen&lt;/td&gt;
&lt;td&gt;AT+CWLIF&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Sonstiges&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Watchdog starten&lt;/td&gt;
&lt;td&gt;AT+CSYSWDTENABLE&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Watchdog beenden&lt;/td&gt;
&lt;td&gt;AT+CSYSWDTDISABLE&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h1 id="kurzinfos"&gt;Kurzinfos&lt;/h1&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Standartbaudrate&lt;/td&gt;
&lt;td&gt;9600&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Strombedarf Initialisierung&lt;/td&gt;
&lt;td&gt;ca. 200 mA&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Maximaler Strombedarf&lt;/td&gt;
&lt;td&gt;235 mA&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h1 id="pinout-esp8266"&gt;Pinout ESP8266&lt;/h1&gt;
&lt;figure&gt;&lt;a href="https://fkainka.de/images/2015/01/ESP8266-Pinout.jpg"&gt;&lt;img class="size-full wp-image-511" src="https://fkainka.de/images/2015/01/ESP8266-Pinout.jpg" alt="ESP8266 Pinout von oben" width="1781" height="1269" data-id="511" /&gt;&lt;/a&gt;&lt;figcaption&gt;ESP8266 Pinout von oben&lt;/figcaption&gt;&lt;/figure&gt;
&lt;figure&gt;&lt;a href="https://fkainka.de/images/2015/01/WlanPinout.jpg"&gt;&lt;img class="size-full wp-image-74" src="https://fkainka.de/images/2015/01/WlanPinout.jpg" alt="Pinbelegung des Moduls von unten" width="2176" height="1223" data-id="74" /&gt;&lt;/a&gt;&lt;figcaption&gt;Pinbelegung des Moduls von unten&lt;/figcaption&gt;&lt;/figure&gt;
&lt;h1 id="auf-englisch-übersetztes-datenblatt"&gt;&lt;a href="https://docs.google.com/file/d/0B9hyK_DA6VIiSWNRZ29sdG1UOVU/edit?pli=1"&gt;Auf Englisch übersetztes Datenblatt&lt;/a&gt;&lt;/h1&gt;
&lt;h1 id="fritzing-bauteil"&gt;&lt;a href="https://github.com/satsatt/ESP8266_fritzing"&gt;Fritzing Bauteil&lt;/a&gt;&lt;/h1&gt;
&lt;h1 id="linkliste"&gt;Linkliste&lt;/h1&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="http://www.electrodragon.com/w/Wi07c"&gt;http://www.electrodragon.com/w/Wi07c&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Infoseite zum Modul (Englisch)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://nurdspace.nl/ESP8266"&gt;https://nurdspace.nl/ESP8266&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Infoseite zum Modul (Englisch)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="http://hackaday.com/tag/esp8266/"&gt;http://hackaday.com/tag/esp8266/&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Hack a Day Projekte mit dem Modul (Englisch)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://www.youtube.com/watch?v=uznq8W9sOKQ"&gt;https://www.youtube.com/watch?v=uznq8W9sOKQ&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Tutorial YouTube-Video (Englisch)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;</description></item><item><title>WLAN Modul ESP8266 und Arduino</title><link>https://fkainka.de/wlan-modul-esp8266-und-arduino/</link><pubDate>Wed, 28 Jan 2015 17:25:55 +0100</pubDate><guid>https://fkainka.de/wlan-modul-esp8266-und-arduino/</guid><description>&lt;p&gt;Der nächste Schritt ist nun, das ESP8266 Modul mit einem Arduino zu verbinden um das ganze portabler zu haben. Meine erste Wahl war ein &lt;strong&gt;Arduino Nano&lt;/strong&gt; Nachbau aus China**,** den ich ebenfalls mitbestellt habe. Dieser hat einen 3,3 V Pin so dass die Sache auf den ersten Blick ganz einfach aussah. Tatsächlich hat das Modul aber ähnlich reagiert, wie schon bei den ersten Versuchen mit der FTDI Platine. Das Modul startete nicht richtig. Nach einigem Suchen fand ich auch den Grund heraus.&lt;/p&gt;</description></item><item><title>WLAN Modul ESP8266 - Server einrichten</title><link>https://fkainka.de/wlan-modul-server-einrichten/</link><pubDate>Wed, 28 Jan 2015 17:22:37 +0100</pubDate><guid>https://fkainka.de/wlan-modul-server-einrichten/</guid><description>&lt;p&gt;Die Verbindung zu anderen Geräten steht nun, egal ob Sie das Modul als AP oder als Client benutzen. Doch nun sollten die Geräte auch miteinander kommunizieren können. Deswegen wird in diesem Teil ein Server eingestellt. Auf diesen Server kann dann z.B. über ein Handy zugegriffen und Daten übermittelt werden. Doch der Reihe nach.&lt;/p&gt;
&lt;p&gt;Zunächst einmal muss eine Einstellung vorgenommen werden und zwar die Einstellung &lt;strong&gt;AT+CIPMUX=1&lt;/strong&gt;. Dies ermöglicht, &lt;strong&gt;mehrere Verbindungen gleichzeitig&lt;/strong&gt; aufbauen zu dürfen. Ich habe noch nicht genau herausgefunden warum diese Einstellung nötig ist, Tatsache ist aber, dass sich der &lt;strong&gt;Server nicht starten lässt wenn diese Einstellung nicht gemacht wurde&lt;/strong&gt;. Ein wichtiger Punkt ist, dass sich&lt;strong&gt;diese Konfiguration nicht speichert&lt;/strong&gt;. Das bedeutet, Sie müssen diesen Befehl &lt;strong&gt;jedes Mal neu eingeben,&lt;/strong&gt; wenn Sie das Modul neu eingeschaltet oder resetet haben.&lt;/p&gt;</description></item><item><title>WLAN-Modul ESP8266 - Verbindung aufbauen</title><link>https://fkainka.de/wlan-modul-verbindung-aufbauen/</link><pubDate>Wed, 28 Jan 2015 17:20:34 +0100</pubDate><guid>https://fkainka.de/wlan-modul-verbindung-aufbauen/</guid><description>&lt;p&gt;Die erste Verbindung war nun bereits insofern erfolgreich, dass Daten die das Modul geschickt hat, ausgelesen werden konnten. Ob auch Daten in Form von Befehlen an das WLAN-Modul gesendet werden können steht also noch nicht fest. Dazu benötigen Sie nun wieder ein Terminal Programm – am besten den &lt;strong&gt;Serial Monitor der Arduino Software&lt;/strong&gt;. Sie können zwar auch andere Terminals benutzen, allerdings werden die Befehle nur erkannt, wenn sie in einem &lt;strong&gt;besonderen Format&lt;/strong&gt; geschickt werden. Sie müssen nämlich &lt;strong&gt;nach jedem Befehl nicht nur das &lt;CR&gt; (Carriage Return) Zeichen, sondern auch das NL (New Line) Zeichen senden&lt;/strong&gt;. Die meisten Terminalprogramme senden CR wenn Sie Enter drücken, allerdings nicht NL. Im Ar&lt;strong&gt;duino Terminal lässt sich diese Funktion einstellen&lt;/strong&gt;, wie Sie auf dem unteren Bild sehen können.&lt;/p&gt;</description></item><item><title>WLAN Modul ESP8266 - Erste Schritte</title><link>https://fkainka.de/wlan-modul-esp8266-erste-schritte/</link><pubDate>Wed, 28 Jan 2015 15:48:39 +0100</pubDate><guid>https://fkainka.de/wlan-modul-esp8266-erste-schritte/</guid><description>&lt;p&gt;Vielleicht ist dem ein oder anderen bereits das &lt;strong&gt;WLAN Modul ESP8266&lt;/strong&gt; über den Weg gelaufen. Es scheint sehr populär zu sein. Das liegt vermutlich daran, dass es besonders günstig ist. Mit nicht einmal &lt;strong&gt;3-4€ direkt aus China&lt;/strong&gt; oder für &lt;strong&gt;7-10€ von einem Distributor in Deutschland&lt;/strong&gt; ist das Modul bei Ebay zu finden. Also ein sehr günstige Alternative beispielswiese zum Arduino Yun mit rund 70€. Also habe ich mir gleich eines dieser Module bei einem deutschen Ebay-Händler bestellt und einige erste Versuche zum Thema &lt;strong&gt;Internet of Things&lt;/strong&gt; unternommen.&lt;/p&gt;</description></item><item><title>Programmieren für Kids</title><link>https://fkainka.de/programmieren-fuer-kids/</link><pubDate>Sat, 01 Nov 2014 16:21:47 +0100</pubDate><guid>https://fkainka.de/programmieren-fuer-kids/</guid><description>&lt;p&gt;Mit diesem Paket baust du dir einen eigenen programmierbaren Computer. Entwickle deine ersten selbst-geschriebenen Programme und steig ein in die coole Welt der Softwareprogrammierung. Mit nur wenigen Handgriffen steht dein Computer bereit. Drück auf den Startknopf und erlebe den Spaß, den selbst programmierte Spiele bereiten.&lt;/p&gt;
&lt;p&gt;Programmieren für Kids im Elo-Shop&lt;/p&gt;
&lt;p&gt;&lt;a href="http://wp.fkainka.de/der-gmc-4-befehlssatz/" title="Der GMC-4 Befehlssatz"&gt;Befehlsliste GMC-4&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Funksteckdosen Steuern</title><link>https://fkainka.de/funksteckdosen-steuern/</link><pubDate>Thu, 10 Jul 2014 14:00:32 +0200</pubDate><guid>https://fkainka.de/funksteckdosen-steuern/</guid><description>&lt;p&gt;Ich habe mir schon vor geraumer Zeit kleine 433MHz Sender- und Empfänger-Module bestellt, mit dem Ziel, meine kaputte Funksteckdosenfernbedienung zu ersetzen. Nun habe ich die Module wiederentdeckt und mich an einen neuen Versuch gewagt. Ich muss sagen ich war sehr überrascht, dass alles auf Anhieb funktioniert hat.&lt;br&gt;
Das von mir verwendetet Funkmodul trägt den Namen &lt;strong&gt;XD-FST&lt;/strong&gt; und ist besonders günstig. Auf dieser Seite sind die wenigen zu bekommenden Informationen zusammengengefasst:&lt;/p&gt;</description></item><item><title>Schnellstart: Arduino Yún</title><link>https://fkainka.de/schnellstart-arduino-yun/</link><pubDate>Fri, 27 Jun 2014 13:57:50 +0200</pubDate><guid>https://fkainka.de/schnellstart-arduino-yun/</guid><description>&lt;p&gt;Der Arduino Yún gehört zu den neusten Kreationen der Arduino-Macher. Ausgestattet mit einem WLAN-Modul und einem eigenen Linux-Controller sollen Netzwerkbasierte Projekte so einfach werden wie noch nie. Die ersten Spielereien haben mich wirklich überzeugt. Nach kurzer Zeit hatte ich den Controller eingerichtet und mein erstes Programm über das Netzwerk auf den Controller übertragen können. Und schon das zweite Beispielprogramm ermöglicht es, die I/O-Pins des Boards zu Steuern, ganz bequem vom Browser aus. Aber zuerst einmal die ersten Schritte.&lt;/p&gt;</description></item><item><title>Schnellstart mit dem ChipKIT-Uno32</title><link>https://fkainka.de/schnellstart-mit-dem-chipkit-uno32/</link><pubDate>Sat, 29 Mar 2014 16:10:48 +0100</pubDate><guid>https://fkainka.de/schnellstart-mit-dem-chipkit-uno32/</guid><description>&lt;p&gt;Die Welt der Mikrocontroller kann spannend und aufregend sein, doch der Einstieg fällt meist schwer. Eine Fülle neuer Vokabeln und Möglichkeiten machen die ersten Schritte kompliziert. Aus diesem Grund hilft Ihnen dieses Buch beim Einstieg in die Welt der Mikrocontroller an dem Beispiel des Chipkit Uno32 Boards von Mikrochip.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://wp.fkainka.de/wp-content/uploads/2015/01/DateienUno32.zip"&gt;Dateien zum Buch&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.conrad.de/ce/de/product/1232737/Franzis-Verlag-Schnellstart-mit-dem-chipKIT-Uno32-Entwicklungs-Board-Fabian-Kainka-Seitenanzahl-48-ISBN-Nr-978-3-645"&gt;Das Buch bei Conrad&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.conrad.de/ce/de/product/1271063/Schnellstart-mit-dem-chipKIT-Uno32-Entwicklungs-Board-Conrad-TDGL002"&gt;Das Buch mit Board bei Conrad&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Arduino als ISP Programmer</title><link>https://fkainka.de/arduino-als-isp-programmer/</link><pubDate>Sat, 15 Mar 2014 12:19:09 +0100</pubDate><guid>https://fkainka.de/arduino-als-isp-programmer/</guid><description>&lt;p&gt;Zurzeit spiele ich mit dem &lt;a href="http://arduino.cc/en/Main/ArduinoBoardEthernet"&gt;Arduino Ethernet Board&lt;/a&gt; rum. Dieses Board ist kein Shield, welches man auf einen anderen Arduino aufsteckt, sondern ein eigenständiges Board mit Controller, ähnlich dem Arduino Uno. Nachteil: Es gibt keinen integrierten USB-Controller, mit dem man das Board direkt über USB programmieren kann. Deswegen habe ich einen Arduino Uno als Programmer benutzt.&lt;/p&gt;
&lt;p&gt;Um einen Arduino als ISP-Progammer einsetzen zu können, sind nur wenige Schritte nötig:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Zuallererst mussder Arduino Uno mit dem ISP-Programm bespielt werden. Das Programm findet in unter den Beispielen.&lt;/li&gt;
&lt;li&gt;Nun kann man das Ethernet Board wie auf dem Bild gezeigt mit dem Arduino Uno verbinden:&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;a href="http://wp.fkainka.de/wp-content/uploads/2015/01/EthernetIPS31.jpg"&gt;&lt;img alt="EthernetIPS3" loading="lazy" src="http://wp.fkainka.de/wp-content/uploads/2015/01/EthernetIPS31-213x300.jpg"&gt;&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Schnellstart mit dem FRDM-KL25Z</title><link>https://fkainka.de/kl25z/</link><pubDate>Sat, 01 Mar 2014 16:13:28 +0100</pubDate><guid>https://fkainka.de/kl25z/</guid><description>&lt;h2 id="der-schnelle-einstieg-in-die-welt-des-kinetis-series-arm-cortex-m032-bit-mikrocontroller"&gt;Der schnelle Einstieg in die Welt des Kinetis Series, ARM® Cortex™-M0+32-Bit Mikrocontroller:&lt;/h2&gt;
&lt;p&gt;Dieses Buch hilft Ihnen von den ersten Schritten bis hin zum ersten größeren Projekt. Dabei lernen Sie nicht nur die Eigenschaften und Besonderheiten des vorgestellten Boards FRDM-KL25Z kennen, Sie bekommen ebenfalls Tipps zur Online-Programmierumgebung Mbed.org und den Möglichkeiten der Hardware-Erweiterungen. Dank der vielen praktischen Versuche zum Nachprogrammieren bleibt der Spaß dabei nicht auf der Strecke. Zuletzt hilft Ihnen die Befehlsliste auch nach dem Lesen noch beim Verwirklichen eigener Ideen und Projekte. Also viel Spaß beim Ausprobieren!&lt;/p&gt;</description></item><item><title>Anmerkungen zum „GMC-4 Spielecomputer“-Buch</title><link>https://fkainka.de/anmerkungen-zum-gmc-4-spielecomputer-buch/</link><pubDate>Wed, 19 Feb 2014 12:47:11 +0100</pubDate><guid>https://fkainka.de/anmerkungen-zum-gmc-4-spielecomputer-buch/</guid><description>&lt;p&gt;Das GMC-4-Buch ist zwar mittlerweile schon fast ein Jahr alt, aber es macht mir immer noch Spaß mit dem kleinen Computer zu spielen. Dennoch fallen mir immer wieder Dinge auf, die man hätte besser machen können.  Das geht wohl nicht nur mir so, denn vor kurzen erreichte mich die Mail eines Lesers, der neben seiner Begeisterung auch ein paar Anmerkungen formuliert hat.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;An dieser Stelle vielen Dank Arnd Duschek&lt;/strong&gt;**, der sich die Mühe gemacht hat das ganze Buch durchzuarbeiten und Verbesserungsvorschläge zu formulieren.**&lt;/p&gt;</description></item><item><title>Widerstand Farcode Tabelle</title><link>https://fkainka.de/widerstand-farcode-tabelle/</link><pubDate>Fri, 31 Jan 2014 12:41:12 +0100</pubDate><guid>https://fkainka.de/widerstand-farcode-tabelle/</guid><description>&lt;p&gt;Wie man den Widerstandswert eines Widerstandes berechnet werden&lt;br&gt;
die Meisten schon wissen. Allerdings geht es mir manchmal so, dass ich kurz&lt;br&gt;
vergesse, welche Farbe für welchen Wert steht. Also gibt es hier eine kompakte&lt;br&gt;
Auflistung für alle diejenigen, die das gleiche Problem haben. Aber nicht vergessen: beim letzten Ring gibt der Wert die Anzahl der nachstehenden Nullen an.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Farbe&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Farbe&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Wert&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;0&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Schwarz&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;0&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;1&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Braun&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;1&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;2&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Orange&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;2&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;3&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Rot&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;3&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;4&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Gelb&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;4&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;5&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Grün&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;5&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;6&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Blau&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;6&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;7&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Violett&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;7&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;8&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Grau&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;8&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;9&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Weiß&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;9&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;</description></item><item><title>Sd-Kartenslot eines Raspberry Pi’s reparieren</title><link>https://fkainka.de/sd-kartenslot-eines-raspberry-pis-reparieren/</link><pubDate>Fri, 31 Jan 2014 12:34:52 +0100</pubDate><guid>https://fkainka.de/sd-kartenslot-eines-raspberry-pis-reparieren/</guid><description>&lt;p&gt;Wie man auf dem Bild recht gut sehen kann, ist der SD-Karten-Slot meines Raspberry Pi’s leicht beschädigt. Am oberen Rand ist eine kleine Kante abgebrochen, die für den Halt der SD-Karte aber sehr wichtig ist. Die Karte ist dank diesem Defekt immer leicht rausgerückt und der kleine Mini-Pc immer wieder abgestürzt. Im Internet habe ich aber folgende Möglichkeit gefunden diesen Defekt zu beheben:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://raspi.tv/2012/how-to-fix-a-broken-sd-card-slot-on-your-raspberry-pi"&gt;http://raspi.tv/2012/how-to-fix-a-broken-sd-card-slot-on-your-raspberry-pi&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Auf dieser Seite wird eine ausgediente Kreditkarte benutzt, um der SD-Karte wieder den nötigen halt zu geben. Wenn man beide Teile etwas anraut und Kleber an relevanten Stellen (nicht dort wo sich der Metallkontakt befindet) aufbringt hält das System relativ gut. Ich empfehle mit der Feile aber noch etwas vom Plastik zu entfernen, damit die Karte auch wirklich auf die Kontakte gedrückt wird. Bei mir sah das so aus:&lt;/p&gt;</description></item><item><title>Die automatisierte Küchenbeleuchtung</title><link>https://fkainka.de/die-automatisierte-kuechenbeleuchtung/</link><pubDate>Sat, 11 Jan 2014 12:10:20 +0100</pubDate><guid>https://fkainka.de/die-automatisierte-kuechenbeleuchtung/</guid><description>&lt;p&gt;Vor geraumer Zeit habe ich ja bereits meine automatisierte Küchenleuchte vorgestellt (&lt;a href="http://wp.fkainka.de/bewegungsmelder-fuer-die-kueche/" title="Bewegungsmelder für die Küche"&gt;Link&lt;/a&gt;). Diese war auch lange Zeit in Benutzung, aber nun war es doch an der Zeit, einen Mikrocontroller den Job übernehmen zu lassen. Der Grund ist vor allem, dass es leichter ist das Programm seinen Wünschen anzupassen. Insgesamt habe ich nämlich vor, die Automatisierung immer weiter zu verbessern.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Die derzeitige Konfiguration sieht so aus:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Die Hauptsteuereinheit ist hier ein Arduino Uno. Dieser steuert via PWM vier der &lt;a href="http://wp.fkainka.de/power-led-mini-shield/" title="RGB Strip Mini Shield"&gt;hier vorgestellten&lt;/a&gt; Power-MOSFETs an. An diese habe ich ein RGB-Stripe und eine &lt;a href="http://wp.fkainka.de/10-w-powerleds/" title="10-W-PowerLEDs"&gt;Power-LED&lt;/a&gt; angeschlossen. Als Auslöser dient folgendes Bewegungsmelder-Modul:&lt;/p&gt;</description></item><item><title>RGB Strip Mini Shield</title><link>https://fkainka.de/power-led-mini-shield/</link><pubDate>Fri, 03 Jan 2014 11:47:01 +0100</pubDate><guid>https://fkainka.de/power-led-mini-shield/</guid><description>&lt;p&gt;&lt;strong&gt;ACHTUNG&lt;/strong&gt;: Bei diesem Projekt ist leider ein Arduino Uno über den Jordan gegangen. Am Ende des Artikels steht mehr dazu, also vor dem Nachbau bitte lesen!&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;Viele werden das Problem mit Arduino kennen:  die Leistung an den Pins reicht einfach nicht aus um damit größere Lasten zu steuern. Bei mir ist das Problem aufgetreten, als ich meine Power-LED-Lampen und meine RGB-Stripes mit einem Arduino Uno steuern wollte. Die 40 mA und 5 V pro Pin reichen nicht mal annähernd um diese Dinge vernünftig ansteuern zu können. Die Lösung ist bekannt:  Leistungstreiber.&lt;/p&gt;</description></item><item><title>Die Arduino IR-Library</title><link>https://fkainka.de/die-arduino-ir-library/</link><pubDate>Fri, 27 Dec 2013 12:31:57 +0100</pubDate><guid>https://fkainka.de/die-arduino-ir-library/</guid><description>&lt;p&gt;Ich habe nach einer möglichst einfachen Art gesucht, Infrarot Fernbedienungen auszulesen. Wie für Arduino üblich habe ich auch nach kurzer Zeit eine passende Library gefunden:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.righto.com/2009/08/multi-protocol-infrared-remote-library.html"&gt;http://www.righto.com/2009/08/multi-protocol-infrared-remote-library.html&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Auf der Seite von Ken Shirriff kann man sich die Dateien runterladen, inlusive einiger Beispiele. Besonders geeignet: IRrecDemo um damit Signale direkt auszulesen oder IRrecDump um auch Informationen über das verwendete Protokoll zu bekommen. Alles was man dafür benötigt ist ein IR-Empfangs-Modul. Die Ausgabe erfolgt über das Terminal.&lt;/p&gt;</description></item><item><title>Arduino Starterpakete</title><link>https://fkainka.de/arduino-starterpakete/</link><pubDate>Mon, 25 Nov 2013 16:03:36 +0100</pubDate><guid>https://fkainka.de/arduino-starterpakete/</guid><description>&lt;p&gt;Arduino ist eine ganz eigene Welt mit einer großen Vielfalt unterschiedlicher Platinen und eigenen Begriffen wie Sketch (Programm) oder Shield (aufsteckbare Zusatzplatine). Das System richtet sich auch an Leute, die sonst weniger mit Mikrocontrollern zu tun haben. Und trotzdem können sich hier und da kleinere Hürden auftun.&lt;/p&gt;
&lt;p&gt;Deswegen bietet werden bei Franzis bestellte Arduino-Controller mit einem kleinen Handbuch ausgeliefert das beim Einstieg in die Arduino-Welt zur Hand geht. Auf dieser Seite finden Sie die im Buch erwähnten Materialien und Links zum Downloaden und Durchklicken.&lt;/p&gt;</description></item><item><title>Arduino Linkliste</title><link>https://fkainka.de/arduino-linkliste/</link><pubDate>Mon, 25 Nov 2013 15:57:11 +0100</pubDate><guid>https://fkainka.de/arduino-linkliste/</guid><description>&lt;h1 id="linkliste"&gt;Linkliste&lt;/h1&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Link&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Beschreibung&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Sprache&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;&lt;a href="http://arduino.cc/forum/"&gt;http://arduino.cc/forum/&lt;/a&gt;&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Offizielles Arduino Forum&lt;/td&gt;
&lt;td&gt;Viel in Englisch aber auch auf Deutsch&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;&lt;a href="http://playground.arduino.cc/"&gt;http://playground.arduino.cc/&lt;/a&gt;&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Tutorials, Anleitungen und mehr.&lt;/td&gt;
&lt;td&gt;Auf Englisch mit deutscher Unterseite (z.Z. noch im Aufbau)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;&lt;a href="http://www.mikrocontroller.net/"&gt;http://www.mikrocontroller.net&lt;/a&gt;&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Immer eine gute Wahl, wenn es um Mikrocontroller geht&lt;/td&gt;
&lt;td&gt;Komplett auf Deutsch mit unzähligen, strukturierten Themen&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;&lt;a href="http://arduino.cc/en/Reference/HomePage"&gt;http://arduino.cc/en/Reference/HomePage&lt;/a&gt;&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Komplette Befehlsliste&lt;/td&gt;
&lt;td&gt;Auf Englisch&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;&lt;a href="http://www.arduino-tutorial.de/"&gt;http://www.arduino-tutorial.de/&lt;/a&gt;&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Gutes Tutorial mit vielen Erklärungen für Einsteiger&lt;/td&gt;
&lt;td&gt;Deutsch&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;&lt;a href="http://playground.arduino.cc/interfacing/processing"&gt;http://playground.arduino.cc/ interfacing/processing&lt;/a&gt;&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Hilfe zum Thema Arduino und Processing&lt;/td&gt;
&lt;td&gt;Englisch&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;&lt;a href="http://shieldlist.org/"&gt;http://shieldlist.org/&lt;/a&gt;&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Liste aller Arduino-Shields&lt;/td&gt;
&lt;td&gt;Englisch&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;&lt;a href="http://www.golem.de/specials/arduino/"&gt;http://www.golem.de/specials/arduino/&lt;/a&gt;&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Interessante Projekte mit ausführlichen Artikeln&lt;/td&gt;
&lt;td&gt;Deutsch&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;&lt;a href="http://www.arduinoforum.de/"&gt;http://www.arduinoforum.de/&lt;/a&gt;&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Projekte und Hilfe&lt;/td&gt;
&lt;td&gt;Deutsch&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;&lt;a href="http://fff2.at/drupal/content/arduino-projekte"&gt;http://fff2.at/drupal/content/arduino-projekte&lt;/a&gt;&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Projekte und Code-Beispiele&lt;/td&gt;
&lt;td&gt;Deutsch&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;&lt;a href="http://www.ladyada.net/make/"&gt;http://www.ladyada.net/make/&lt;/a&gt;&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Projekte&lt;/td&gt;
&lt;td&gt;Englisch&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;&lt;a href="http://wiring.org.co/learning/basics/index.html"&gt;http://wiring.org.co/ learning/basics/index.html&lt;/a&gt;&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Code-Beispiele&lt;/td&gt;
&lt;td&gt;Englisch&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;&lt;a href="http://playground.arduino.cc/Projects/Ideas"&gt;http://playground.arduino.cc/Projects/Ideas&lt;/a&gt;&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Projekt Ideen&lt;/td&gt;
&lt;td&gt;Englisch&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;&lt;a href="http://hacknmod.com/hack/top-40-arduino-projects-of-the-web/"&gt;http://hacknmod.com/hack/ top-40-arduino-projects-of-the-web/&lt;/a&gt;&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Top 40 Arduino Projekte&lt;/td&gt;
&lt;td&gt;Englisch&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;&lt;a href="http://practicalarduino.com/projects"&gt;http://practicalarduino.com/projects&lt;/a&gt;&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Projekte&lt;/td&gt;
&lt;td&gt;Englisch&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;&lt;a href="http://fritzing.org/projects/"&gt;http://fritzing.org/projects/&lt;/a&gt;&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Projekte&lt;/td&gt;
&lt;td&gt;Englisch&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;&lt;a href="http://www.arduinoevilgenius.com/projects"&gt;http://www.arduinoevilgenius.com/projects&lt;/a&gt;&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Projekte&lt;/td&gt;
&lt;td&gt;Englisch&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;&lt;a href="http://hacknmod.com/topics/arduino/"&gt;http://hacknmod.com/topics/arduino/&lt;/a&gt;&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Projekte&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;</description></item><item><title>Befehlsliste Arduino</title><link>https://fkainka.de/befehlsliste-arduino/</link><pubDate>Mon, 25 Nov 2013 12:36:49 +0100</pubDate><guid>https://fkainka.de/befehlsliste-arduino/</guid><description>&lt;p&gt;Oft ist es so, dass man plötzlich vergisst, wie man jetzt gerade in dieser Programmiersprache einen Bestimmten Befehl formulieren muss. Deswegen steht hier eine Auflistung der wichtigsten Befehle. Benutzen Sie &lt;strong&gt;Stg+F um in der Seite nach etwas bestimmten zu suchen&lt;/strong&gt;.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Befehl&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Schreibweise&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Grundlegendes&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Grundstruktur&lt;/td&gt;
&lt;td&gt;&lt;em&gt;void setup() {   }&lt;strong&gt;void loop()  {&lt;/strong&gt;}&lt;/em&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Variable deklarieren (Typ Integer, Wert = 0)&lt;/td&gt;
&lt;td&gt;&lt;em&gt;int led  = 0;&lt;/em&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Konstante deklarieren (Typ Integer, Wert = A0)&lt;/td&gt;
&lt;td&gt;&lt;em&gt;const int analogInPin = A0;&lt;/em&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Array deklarieren (Typ Integer, 6 Werte)&lt;/td&gt;
&lt;td&gt;&lt;em&gt;int Arrayname[6] = {2, 4, -8, 3, 2};&lt;/em&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Pin-Funktion festlegen&lt;/td&gt;
&lt;td&gt;&lt;em&gt;pinMode(led, OUTPUT);&lt;/em&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Library einbinden&lt;/td&gt;
&lt;td&gt;&lt;em&gt;#include &amp;lt;libX.h&amp;gt;&lt;/em&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Ausgaben/Eigaben&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Pin auf HIGH schalten&lt;/td&gt;
&lt;td&gt;&lt;em&gt;digitalWrite(led,HIGH);&lt;/em&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;PWM-Pin auf maximal Wert setzen&lt;/td&gt;
&lt;td&gt;&lt;em&gt;analogWrite(led, 255);&lt;/em&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Digitalen Zustand von Pin &lt;em&gt;schalter&lt;/em&gt; lesen&lt;/td&gt;
&lt;td&gt;&lt;em&gt;digitalRead(schalter)&lt;/em&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Funktion: Analog Pin A0 auslesen&lt;/td&gt;
&lt;td&gt;&lt;em&gt;analogRead(A0)&lt;/em&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Ton Ausgabe an Pin8, Frequenz x, länge y&lt;/td&gt;
&lt;td&gt;&lt;em&gt;tone(8, x, y)&lt;/em&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Ton Ausgabe an Pin8 stoppen&lt;/td&gt;
&lt;td&gt;&lt;em&gt;noTone(8)&lt;/em&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Serielle Schnittstelle&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Serielle Schnittstelle initialisieren&lt;/td&gt;
&lt;td&gt;&lt;em&gt;Serial.begin(9600);&lt;/em&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Text seriell Ausgeben&lt;/td&gt;
&lt;td&gt;&lt;em&gt;Serial.print(“Hallo”);&lt;/em&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Text seriell Ausgeben + neue Zeile&lt;/td&gt;
&lt;td&gt;&lt;em&gt;Serial.println(“Hallo”);&lt;/em&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Byte seriell Ausgeben&lt;/td&gt;
&lt;td&gt;&lt;em&gt;Serial.write(val)&lt;/em&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Funktion: Anzahl von auslesbaren Bytes&lt;/td&gt;
&lt;td&gt;&lt;em&gt;Serial.available()&lt;/em&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Funktion: seriell Einlesen&lt;/td&gt;
&lt;td&gt;&lt;em&gt;Serial.read();&lt;/em&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Funktion: Text im Buffer finden (true/false)&lt;/td&gt;
&lt;td&gt;&lt;em&gt;Serial.find(&amp;ldquo;TEXT&amp;rdquo;)&lt;/em&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Funktion: Text i. Buffer finden bis Endetext&lt;/td&gt;
&lt;td&gt;&lt;em&gt;Serial.findUntil(“TEXT“,“ENDE TEXT“)&lt;/em&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Speichert Anzahl Bytes in Buffer&lt;/td&gt;
&lt;td&gt;&lt;em&gt;Serial.readBytes(buffer, length)&lt;/em&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Speichert Bytes in Buffern bis lenght oder Ende-chracter erreicht&lt;/td&gt;
&lt;td&gt;&lt;em&gt;Serial.readBytesUntil(character, buffer, length)&lt;/em&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Funktion: Findet nächste Integerzahl&lt;/td&gt;
&lt;td&gt;&lt;em&gt;Serial.parseInt()&lt;/em&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Prozedur aufgerufen wenn Daten vorhanden&lt;/td&gt;
&lt;td&gt;&lt;em&gt;void serialEvent()&lt;/em&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;A****bfragen/Schleifen&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;If-Abfrage mit Else&lt;/td&gt;
&lt;td&gt;*if (button == HIGH){**}*&lt;em&gt;else{   }&lt;/em&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Switch-Abfrage&lt;/td&gt;
&lt;td&gt;*switch (x) {**case 1:**case 2:*&lt;em&gt;default:&lt;/em&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Wartezeit (500 ms)&lt;/td&gt;
&lt;td&gt;&lt;em&gt;delay(500);&lt;/em&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;For-Schleife&lt;/td&gt;
&lt;td&gt;&lt;em&gt;for (x = 2; x &amp;lt; 7; x++) {      }&lt;/em&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;While-Schleife&lt;/td&gt;
&lt;td&gt;*while (schalter== HIGH) {**}***ODER:**&lt;em&gt;do{&lt;/em&gt;} while (schalter==HIGH);&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Schleife vorzeitig verlassen&lt;/td&gt;
&lt;td&gt;&lt;em&gt;break;&lt;/em&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Überspringt ausführbaren Quelltext in Schleife&lt;/td&gt;
&lt;td&gt;&lt;em&gt;continue;&lt;/em&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Mathematisches&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Sinus, Cosinus, Tangens&lt;/td&gt;
&lt;td&gt;&lt;em&gt;sin(),cos(),tan()&lt;/em&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Wurzel aus X&lt;/td&gt;
&lt;td&gt;sqrt(x)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;X hoch Y : xy&lt;/td&gt;
&lt;td&gt;&lt;em&gt;pow(x, y)&lt;/em&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Absolut Wert einer Zahl (Betrag von x)&lt;/td&gt;
&lt;td&gt;&lt;em&gt;abs(x)&lt;/em&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Zufällige Zahl&lt;/td&gt;
&lt;td&gt;&lt;em&gt;random()&lt;/em&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Vergleiche&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;gleich&lt;/td&gt;
&lt;td&gt;&lt;em&gt;==&lt;/em&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;ungleich&lt;/td&gt;
&lt;td&gt;&lt;em&gt;!=&lt;/em&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;größer, kleiner&lt;/td&gt;
&lt;td&gt;&lt;em&gt;&amp;lt;, &amp;gt;&lt;/em&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Größer oder gleich, kleiner oder gleich&lt;/td&gt;
&lt;td&gt;&lt;em&gt;&amp;lt;= , &amp;gt;=&lt;/em&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Funktion: kleinere Zahl von x und y&lt;/td&gt;
&lt;td&gt;&lt;em&gt;min(x, y)&lt;/em&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Funktion: größere Zahl von x und y&lt;/td&gt;
&lt;td&gt;&lt;em&gt;max(x, y)&lt;/em&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Boolsche Operatoren&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Und&lt;/td&gt;
&lt;td&gt;&lt;em&gt;&amp;amp;&amp;amp;&lt;/em&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Oder&lt;/td&gt;
&lt;td&gt;*&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Nicht&lt;/td&gt;
&lt;td&gt;&lt;em&gt;!&lt;/em&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Datentypen&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Boolean; char; unsigned char; byte; int; unsigned int; word; long; unsigned long; short; float; double; string; String;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Datentypkonvertierungen&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;em&gt;char(); byte(); int(); word(); long(); float()&lt;/em&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Interrupts&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Interrupts verbieten&lt;/td&gt;
&lt;td&gt;&lt;em&gt;noInterrupts()&lt;/em&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Interrupts erlauben&lt;/td&gt;
&lt;td&gt;&lt;em&gt;nterrupts()&lt;/em&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Interrupt an Pin mit Funktion verknüpfen&lt;/td&gt;
&lt;td&gt;&lt;em&gt;attachInterrupt(interrupt, function, mode)&lt;/em&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Interrupt Verbindung aufheben&lt;/td&gt;
&lt;td&gt;&lt;em&gt;detachInterrupt(interrupt)&lt;/em&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Sonstiges&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Kommentar eine Zeile&lt;/td&gt;
&lt;td&gt;&lt;em&gt;//&lt;/em&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Kommentar längerer Bereich&lt;/td&gt;
&lt;td&gt;/*                &lt;em&gt;*/&lt;/em&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Array definieren&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Funktion: Wertebereich transformieren (z.B. 10bit Sensor auf 8bit PWM)&lt;/td&gt;
&lt;td&gt;map(sensorWert, 0, 1024, 0, 255);&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Funktion Wertgrenzen bestimmen(alles darüber/darunter wird abgeschnitten)&lt;/td&gt;
&lt;td&gt;&lt;em&gt;constrain(sensorWert, 0, 255);&lt;/em&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Bein Funktionen: Wert zurückgeben&lt;/td&gt;
&lt;td&gt;&lt;em&gt;return x;&lt;/em&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Zum Sprungpunk &lt;em&gt;hier&lt;/em&gt; springen&lt;/td&gt;
&lt;td&gt;&lt;em&gt;goto hier;&lt;/em&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Prozedur&lt;/td&gt;
&lt;td&gt;&lt;em&gt;Void Prozedurname() {   }&lt;/em&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Funktion mit Integer-Rückgabewert und Byte-Parameter&lt;/td&gt;
&lt;td&gt;&lt;em&gt;int Funktionsname (byte Parameter) {&lt;strong&gt;return 13;&lt;/strong&gt;}&lt;/em&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Eine komplette Befehlsliste auf Englisch und mit erweiterten Erklärungen finden Sie auch unter &lt;a href="http://arduino.cc/en/Reference/HomePage"&gt;http://arduino.cc/en/Reference/HomePage&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>Die neue Steckboardplatine als Arduino Shield</title><link>https://fkainka.de/die-neue-steckboardplatine-als-arduino-shield-2/</link><pubDate>Fri, 08 Nov 2013 21:10:32 +0100</pubDate><guid>https://fkainka.de/die-neue-steckboardplatine-als-arduino-shield-2/</guid><description>&lt;p&gt;&lt;a href="http://www.ak-modul-bus.de/stat/steckboardplatine.html"&gt;Modul Bus hat eine neue Platine rausgebracht, die einem Steckboard nachempfunden ist&lt;/a&gt;. Dadurch ist es noch einfacher, seine Prototypen auf eine dauerhafte Platine zu übertragen. Ich hab ein bisschen mit der Platine rumgespielt und bemerkt, dass man daraus auch schnell mal ein Arduino-Shield basteln kann.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://fkainka.de/images/2015/01/Steckpl1.jpg"&gt;&lt;img alt="Steckpl1" loading="lazy" src="https://fkainka.de/images/2015/01/Steckpl1.jpg"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Im Grund ist der Aufbau sehr einfach. Die beiden LEDs sorgen dafür, dass das Board genügend Abstand zum Arduino hat und nicht so hin und her wackelt. Zusätzliche Stabilität verleiht der Stecker in der Mitte des Boards. Er wird einfach auf die beiden äußeren Kontakte des ISP-Steckers gesteckt. Damit liegt die Platine solide auf und verrutsch nicht. Man könnte auch an dem einen Pin des ISP-Steckers die 5-V-Versorgungsspannung der Controller abgreifen, hierbei ist aber Vorsicht geboten. Die beiden Drähte legen die Versorgungsleitungen +5V und GND auf die beiden äußeren Leitungsbahnen, sodass der Zugriff dauerhaft erleichtert wird.&lt;/p&gt;</description></item><item><title>Zeiterfassung für Hobby &amp; Arbeit</title><link>https://fkainka.de/zeiterfassung-fuer-hobby-arbeit/</link><pubDate>Mon, 07 Oct 2013 12:28:29 +0200</pubDate><guid>https://fkainka.de/zeiterfassung-fuer-hobby-arbeit/</guid><description>&lt;p&gt;Das Problem: Selbstständige bekommen unterschiedliche Aufgaben auf den Tisch, die meist auch unterschiedlich entlohnt werden. Bei manchen Jobs wird man pro Stunde bezahlt, bei anderen gibt es einen Festpreis und wieder andere werden durch Gewinnbeteiligung vergütet. Dabei den Überblick zu &lt;img alt="Protokollant" loading="lazy" src="https://fkainka.de/images/2015/01/Protokollant.jpeg"&gt;behalten ist schwer. Deswegen muss ein kleines Tool her, mit dem man ohne große Umstände immer protokollieren kann, woran man gerade arbeitet und das später die Auswertung erleichtert.&lt;/p&gt;
&lt;p&gt;Das daraus entstandene Programm ist zu Teilen sehr speziell. Man kann es aber auch beispielsweise dazu verwenden, die Zeit für bestimmte Hobby-Projekte zu protokollieren. Alternativ kann man sich auch einfach nur den Quelltext anschauen und Teile für eigene Projekte übernehmen. Programmiert habe ich dieses Tool in Vb.Net 2012. Die Express-Edition gibt es wieder kostenlos unter folgendem Link:&lt;a href="http://www.microsoft.com/visualstudio/deu/downloads"&gt;http://www.microsoft.com/visualstudio/deu/downloads&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Buch: Linux mit Raspberry Pi</title><link>https://fkainka.de/buch-linux-mit-raspberry-pi/</link><pubDate>Fri, 04 Oct 2013 12:39:21 +0200</pubDate><guid>https://fkainka.de/buch-linux-mit-raspberry-pi/</guid><description>&lt;h3 id="von-christian-immler"&gt;von Christian Immler&lt;/h3&gt;
&lt;p&gt;Jeder hat vermutlich schon vom Raspberry Pi gehört und kennt  Projekte, die mit diesem kleinen Allround-Talent realisiert wurden. Und vermutlich hatte jeder schon einmal eine Idee für einen sinnvollen Einsatz des kleinen PCs. Doch für viele war das Betriebssystem Linux die Hürde. Mit dem Buch „Linux mit Raspberry Pi“ von Christian Immler kann man diese Hürde nun meistern.&lt;/p&gt;
&lt;p&gt;Das Buch erklärt zu Beginn präzise, wie man erfolgreich Linux auf eine SD Karte installiert und startet. Dabei bezieht sich der Autor vor allem auf die Wheezy-Distribution. Anhand dieser Distribution werden im Laufe des Buches sowohl die absoluten Grundlagen erklärt (Konsolen Befehle, Ordner Strukturen etc.) als auch verschiedene spannende Programme und Projekte vorgestellt. So lernt man schnell und auf anschauliche Weise wie man beispielsweise die GPIO-Ports des Mini-Computers ansteuert, einen eigenen Server erstellt, verschiedene Spiele installiert oder sogar in Python selbst Spiele programmiert. Auch Themen wie alternative Betriebssysteme oder das Installieren und Konfigurieren des Mediacenters XBMC werden in dem Buch behandelt. Durch die Breite an Themen findet wirklich jeder etwas Interessantes und Nützliches.&lt;/p&gt;</description></item><item><title>Buch: Hausautomation mit Raspberry Pi</title><link>https://fkainka.de/buch-hausautomation-mit-raspberry-pi/</link><pubDate>Fri, 04 Oct 2013 12:37:48 +0200</pubDate><guid>https://fkainka.de/buch-hausautomation-mit-raspberry-pi/</guid><description>&lt;h3 id="von-ef-engelhardt"&gt;von E.F. Engelhardt&lt;/h3&gt;
&lt;p&gt;Täglich wiederholende Vorgänge zu automatisieren ist eine Selbstverständlichkeit in unserer heutigen Zeit. Intelligente Systeme nehmen uns Arbeit ab und erleichtern zudem das Energiesparen. Viele Komplettlösungen, wie z.B. RWE SmartHome, sind schon seit längeren im Umlauf. Die Hardware ist aber meist nur intern kompatibel und zudem teuer. Wie man sich zuhause dennoch eine kostengünstige Lösung einrichten kann, beschreibt das Buch „Hausautomation mit Raspberry Pi“ von E.F. Engelhardt&lt;/p&gt;
&lt;p&gt;Der Autor beschreibt auf anschauliche Weise, wie man den Raspberry Pi als intelligente Schaltzentrale für verschiedenste Vorgänge einsetzt. Dabei wird vor allem das Open-Source Programm FHEM benutzt, das eine Menge Funktionen bereits integriert hat. Zudem erfährt man viel über verschiedene  Funkmodule, Funksteckdosen und andere Hardware und wie man diese in sein System einbettet. So ist es jedermann möglich sich seine Hardware nach persönlichen Wünschen selbst zusammenzustellen. Kleine Neben-Projekte, wie z.B. wie man mit Apples Siri sprachgesteuerte Befehle an seine Schaltzentrale übermittelt oder wie man mit dem Raspberry seinen eigenen Cloud-Service erstellt, geben zudem Ausblicke auf weitere Möglichkeiten.&lt;/p&gt;</description></item><item><title>Strommessen an der Solaranlage</title><link>https://fkainka.de/strommessen-der-solaranlage/</link><pubDate>Mon, 22 Jul 2013 12:22:14 +0200</pubDate><guid>https://fkainka.de/strommessen-der-solaranlage/</guid><description>&lt;p&gt;Eine Solaranlage an meinem Fenster sorgt dafür, dass ein Bleiakku immer geladen wird. Allerdings fehlte mir eine Übersicht über den aktuellen Ladestrom. Jedes Mal ein Messgerät in Reihe zu schalten ist mir zu aufwändig, also habe ich nach einer anderen Lösung gesucht.&lt;/p&gt;
&lt;p&gt;Der einfachste Weg den aktuellen Strom zu ermitteln ist in der Regel die Spannung an einen bekannten Widerstand zu messen und daraus den Strom zu berechnen. Ein solcher Widerstand sollte wärmeresistent und recht klein sein, um Verluste gering zu halten. Dafür gibt es spezielle Widerstände, die für Strommessungen entwickelt wurden.&lt;/p&gt;</description></item><item><title>Bewegungsmelder für die Küche</title><link>https://fkainka.de/bewegungsmelder-fuer-die-kueche/</link><pubDate>Fri, 05 Jul 2013 11:56:08 +0200</pubDate><guid>https://fkainka.de/bewegungsmelder-fuer-die-kueche/</guid><description>&lt;p&gt;Als Fan der Automatisierungstechnik war es nur eine Frage der Zeit, bis meine Küchenbeleuchtung dem Automatisierungswahn zum Opfer fiel. Das Ziel war, die Küchenbeleuchtung per Bewegungsmelder aktiveren zu können. Um die Sache nicht zu einfach zu machen hatte ich folgende spezielle Forderungen:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Das Licht soll langsam (innerhalb ca. einer Sekunde) aufs Maximum fahren, um nicht zu blenden.&lt;/li&gt;
&lt;li&gt;Das Licht soll, nach einer gewissen Leuchtdauer, langsam wieder ausgehen (innerhalb von ca. 10 Sekunden). Dadurch ist der Effekt schöner und man kann schnell noch nachtriggern, bevor man völlig im Dunkeln steht.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Natürlich kann man sich das mal eben auf einem Arduino oder einem anderen Mikrocontroller zusammenbasteln, aber ich habe mich, zumindest vorerst, für den analogen Weg entschieden, da ein Controller doch etwas überdimensioniert wäre.&lt;/p&gt;</description></item><item><title>Touch-Dimmer Modul</title><link>https://fkainka.de/touch-dimmer-modul/</link><pubDate>Fri, 28 Jun 2013 12:24:57 +0200</pubDate><guid>https://fkainka.de/touch-dimmer-modul/</guid><description>&lt;p&gt;Beim Lesen ist Licht natürlich besonders wichtig. Deswegen durfte in meiner neuen Leseecke eine meiner Power-LEDs nicht fehlen. Was aber fehlte war ein vernünftiger Schalter. Zum Glück hatte ich noch einen Touch-Dimmer von Modul-Bus rumliegen.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://wp.fkainka.de/wp-content/uploads/2015/01/Touch11.jpg"&gt;&lt;img alt="Touch1" loading="lazy" src="http://wp.fkainka.de/wp-content/uploads/2015/01/Touch11.jpg"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;&lt;strong&gt;Aus dem ModulBus Handbuch&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Der Vorteil: Ich kann die LED nun nicht nur ausschalten, sondern auch die Helligkeit regulieren. Zur Steuerung dienen zwei berührungsempfindliche Flächen. Das System ermöglicht es dadurch, die Helligkeit durch Druck auf eine Fläche oder durch Slide-Bewegungen zwischen den Flächen zu verändern. Das untere Video zeigt das System im Einsatz.&lt;/p&gt;</description></item><item><title>Blitzduino - Blitzwarner</title><link>https://fkainka.de/blitzduino-blitzwarner/</link><pubDate>Fri, 21 Jun 2013 12:31:09 +0200</pubDate><guid>https://fkainka.de/blitzduino-blitzwarner/</guid><description>&lt;p&gt;Bei der ersten Version des Blitzwarners habe ich einen Arduino-Uno benutzt – das Programm und das Shield sollten aber auf jedem Board funktionieren.&lt;/p&gt;
&lt;p&gt;Dieses Shield ist gleichzeitig Empfänger und Anzeige. Sollte sich das Gewitter noch in großer Entfernung befinden, blinkt die weiße LED selten, da nur nicht alle Entladungen empfangen werden. Je näher das Gewitter kommt, desto häufiger blinkt auch die weiße LED, bis schließlich die erste Warnstufe erreicht ist, die durch die grüne LED angezeigt wird. Sollten sich die gemessenen Blitze noch weiter häufen, zeigt die rote LED die erhöhte Warnstufe an.&lt;/p&gt;</description></item><item><title>RFID Zutrittskontrolle</title><link>https://fkainka.de/rfid-zutrittskontrolle/</link><pubDate>Wed, 05 Jun 2013 12:34:20 +0200</pubDate><guid>https://fkainka.de/rfid-zutrittskontrolle/</guid><description>&lt;p&gt;Bei Ebay habe ich mir mal wieder kleine Spielerreinen aus China bestellt. Dieses Mal war ein RFID Lesegerät inklusive 10 Chips an der Reihe. Kostenpunkt für das Ganze : 13€ inklusive Versand.&lt;br&gt;
&lt;a href="http://wp.fkainka.de/wp-content/uploads/2015/01/RFID1.jpg"&gt;&lt;img alt="OLYMPUS DIGITAL CAMERA" loading="lazy" src="http://wp.fkainka.de/wp-content/uploads/2015/01/RFID1.jpg"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Das einzige Problem: Die Gebrauchsanweisung war auf Chinesisch. Auf der Ebay-Seite waren zwar drei verschiedene Zahlencodes angegeben, allerdings nicht, wie man diese einzugeben hat. Zudem haben sich die Codes später als falsch rausgestellt.&lt;/p&gt;
&lt;p&gt;Doch Google hat eine nette kleine Übersetzungs-App, mit der man sogar Texte fotografieren und dann übersetzen lassen kann. Das hat tatsächlich auch relativ gut mit dem vor mir liegenden Chinesischen-Anleitungszettel funktioniert, sodass ich die Wichtigsten Befehle aus dem Wirrwarr rausinterpretieren konnte. Hier eine Zusammenfassung für alle, die auf dasselbe Problem gestoßen sind.&lt;/p&gt;</description></item><item><title>GMC-4 Simulator</title><link>https://fkainka.de/gmc-4-simulator/</link><pubDate>Fri, 24 May 2013 12:49:58 +0200</pubDate><guid>https://fkainka.de/gmc-4-simulator/</guid><description>&lt;p&gt;Bei meinen Recherchen im Internet bin ich fast zufällig über einen Simulator des GMC-4 Spielecomputers gestoßen. Das kleine Tool wurde anscheinend von Dan-san aus Japan programmiert. Deswegen ist es nicht leicht das Programm auf der Seite zu finden. Aber auf diesem Bild finden Sie den entscheidenden Link markiert.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://fkainka.de/images/2015/01/Simul0.jpg"&gt;&lt;img alt="Simul0" loading="lazy" src="https://fkainka.de/images/2015/01/Simul0.jpg"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Link:      &lt;a href="http://dansan.air-nifty.com/blog/gmc4-simulator.html"&gt;http://dansan.air-nifty.com/blog/gmc4-simulator.html&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Genau wie beim Original kann man sein Programm über die virtuelle Tastatur eintippen. Zusätzlich bekommt man aber noch Memory und Registerdaten auf der linken Seite angezeigt. Damit man auch zur Laufzeit die Ergebnisse bekommt muss man nur ein Häkchen im Kästchen unter den Anzeigen setzen. Dadurch kann man sein Programm vor Gebrauch testen und Fehler leichter finden.&lt;/p&gt;</description></item><item><title>Tipps zur elektrischen Sicherheit von Ralf Beesner</title><link>https://fkainka.de/tipps-zur-elektrischen-sicherheit-von-ralf-beesner/</link><pubDate>Fri, 10 May 2013 12:53:44 +0200</pubDate><guid>https://fkainka.de/tipps-zur-elektrischen-sicherheit-von-ralf-beesner/</guid><description>&lt;p&gt;Jeder weiß, dass 230V tödlich sein können, wenn man &amp;ldquo;hineinfasst&amp;rdquo;. Weniger bewusst ist den meisten, dass es eine weitere Gefahr gibt: Brände durch Überhitzung elektrischer Verbraucher.&lt;/p&gt;
&lt;p&gt;Fabian hat zwar ein gut geeignetes Netzteil gewählt (Schutzklasse 2, Strombegrenzung, elektronische Sicherung gegen Kurzschluss), aber dennoch zu wenig für den Fall getan, dass sich bei Versagen eines Verbrauchers zu hohe Ströme einstellen, die zu einer Überhitzung und schlimmstenfalls zu einem Brand führen.&lt;/p&gt;
&lt;p&gt;Bei einer elektrischen Anlage, die ausgedehnt, schlecht zugänglich (Dachgebälk), durch Staub gefährdet ist und viele Jahre ohne Inspektion betrieben wird, sollte man unbedingt mehr tun.&lt;/p&gt;</description></item><item><title>10-W-PowerLEDs</title><link>https://fkainka.de/10-w-powerleds/</link><pubDate>Fri, 26 Apr 2013 12:01:47 +0200</pubDate><guid>https://fkainka.de/10-w-powerleds/</guid><description>&lt;p&gt;Wie schon öfter erwähnt besteht die Beleuchtung meiner Dachbude ausschließlich aus RGB-LED-Bändern. Ich dachte immer, dass das ausreichen würde und ich nur lokal mit ein paar zusätzlichen, kleinen warmweiß-LEDs nachhelfen müsste, allerdings haben die neusten Lux-Messungen ergeben, dass alles viel zu dunkel ist. Vor allem der Arbeitsbereich muss deutlich heller werden. Aber auch Küche und Leseecke könnten deutlich mehr Licht vertragen.&lt;/p&gt;
&lt;p&gt;Deswegen habe ich mir einen Satz 10 Watt LEDs bestellt. Diese LEDs sollen bis zu 800 lm erreichen. Einziger Nachteil: sie benötigen eine Kühlung.&lt;/p&gt;</description></item><item><title>Das eigene Stromnetz</title><link>https://fkainka.de/das-eigene-stromnetz/</link><pubDate>Tue, 02 Apr 2013 12:57:44 +0200</pubDate><guid>https://fkainka.de/das-eigene-stromnetz/</guid><description>&lt;p&gt;Als ich mir meine Verbraucher angeschaut habe, ist mir aufgefallen, dass ich sehr viele Geräte habe die mit einem 12-V-Netzteil betrieben werden. Vor allem fielen mir meine RGB-LED-Lichterbänder auf, die für die Beleuchtung meiner Dachbude zuständig sind. Wenn man sich das so betrachtet, hat jedes dieser Netzteile eine ganz schöne Wärmeentwicklung also auch einiges an Verlusten. Die logische Konsequenz: Das muss auch besser gehen.&lt;/p&gt;
&lt;p&gt;Die Grundvoraussetzungen waren schon gegeben: Ich hatte bereits früher eine Steckdose so eingerichtet, dass ich sie mit dem Hauptlichtschalter ein- und ausschalten konnte. Jetzt brauchte ich nur noch ein leistungsstarkes Netzteil daran anzuschließen und ein möglichst unauffälliges Kabelnetz zu installieren. Dabei kamen mir meine Dachbodenbalken sehr gelegen.&lt;/p&gt;</description></item><item><title>GMC-4: FAQ - Häufig gestellte Fragen</title><link>https://fkainka.de/gmc-4-faq-haeufig-gestellte-fragen/</link><pubDate>Sun, 31 Mar 2013 13:20:05 +0200</pubDate><guid>https://fkainka.de/gmc-4-faq-haeufig-gestellte-fragen/</guid><description>&lt;p&gt;Frage:                 Welcher Controller wurde verbaut?&lt;/p&gt;
&lt;p&gt;Antwort:&lt;/p&gt;
&lt;p&gt;Der GMC-4 ist ein Nachbau eines typischen 4-Bit-Spielecomputers aus den 1980er Jahren. Heute allerdings findet man als kleinste Systeme nur noch 8-Bit-Controller. Es war daher erforderlich, ein 4-Bit-System auf einem modernen 8-Bit-Controller zu emulieren. Die Wahl fiel auf den EM61001 der Firma ELAN Microelectronics aus Taiwan. Dieser Controller ist für Audio-Anwendungen optimiert, was einige der besonderen Sound-Fähigkeiten des GMC-4 ermöglichte. Anders als in den 1980er Jahren sind alle erforderlichen Baugruppen wie CPU, Speicher, Zähler, Peripheriebausteine usw. auf einem Chip integriert. Alles was Sie sehen ist ein kleiner schwarzer Klecks, der den eigentlichen  Mikrocontroller umhüllt.&lt;/p&gt;</description></item><item><title>PS3 Controller Reparieren</title><link>https://fkainka.de/ps3-controller-reparieren/</link><pubDate>Sun, 24 Feb 2013 13:00:39 +0100</pubDate><guid>https://fkainka.de/ps3-controller-reparieren/</guid><description>&lt;p&gt;Mein Problem war folgendes: der Ps3-Controller reagierte nicht mehr so wie erwartet. Immer wenn ich z.B. die R3-Taste gedrückt habe, wurde gleichzeitig die R2-Taste oder eine der Pfeiltasten betätigt. Das ging mir irgendwann so auf die Nerven, dass ich den Controller einfach mal geöffnet habe.&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" src="https://fkainka.de/images/2015/01/vps2.jpg"&gt;&lt;/p&gt;
&lt;p&gt;Wenn man die auf dem oberen Bild markierten Schrauben löst, kann man den Controller öffnen.&lt;/p&gt;
&lt;p&gt;Ein einfacher Kreuzschraubenzieher passte optimal.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://fkainka.de/images/2015/01/ps3.jpg"&gt;&lt;img loading="lazy" src="https://fkainka.de/images/2015/01/vps3.jpg"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Das Innenleben. Mann sieht den grauen Akku in der Mitte, die beiden Vibrationsmotoren rechts und links oben und die Schultertasten links und rechts unten.&lt;/p&gt;</description></item><item><title>VB.Net: Beispielprogramme aus Grundlagen der Elektronik</title><link>https://fkainka.de/vb-net-beispielprogramme-aus-grundlagen-der-elektronik/</link><pubDate>Thu, 31 Jan 2013 18:02:23 +0100</pubDate><guid>https://fkainka.de/vb-net-beispielprogramme-aus-grundlagen-der-elektronik/</guid><description>&lt;p&gt;Am besten lernt man eine Programmiersprache immer anhand von Beispielen, die man anschließend selbst nachprogrammiert. Deswegen werde ich hier einige Programme veröffentlichen und teilweise auch erklären. Da sich einige Programme sehr ähneln, habe ich sie in Pakete zusammengepackt und erkläre nur das erste im Detail. Bei den restlichen werden nur die Besonderheiten kurz erläutert.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://wp.fkainka.de/wp-content/uploads/2015/01/Simulationsprogramme-1.zip"&gt;Alle Simulationsprogramme als Exe-Dateien&lt;/a&gt;&lt;/p&gt;
&lt;h2 id="beispielset-i"&gt;Beispielset I&lt;/h2&gt;
&lt;p&gt;&lt;a href="http://wp.fkainka.de/vb-net-beispiel-npn-transistor/" title="NPN-Transistor – VB.Net Beispiel"&gt;NPN-Transistor&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://wp.fkainka.de/reihenschaltung-vb-net-beispiel/" title="Reihenschaltung -VB.Net Beispiel"&gt;Reihenschaltung&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://wp.fkainka.de/innenwiderstand-vb-net-beispiel/" title="Innenwiderstand – VB.Net Beispiel"&gt;Innenwiderstand&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Die kleinen Dinge - Tipps und Tricks</title><link>https://fkainka.de/die-kleinen-dinge-tipps-und-tricks/</link><pubDate>Thu, 31 Jan 2013 12:43:14 +0100</pubDate><guid>https://fkainka.de/die-kleinen-dinge-tipps-und-tricks/</guid><description>&lt;p&gt;Hier stehen kleine Tipps und Tricks, über die ich so nebenbei gestoßen bin.&lt;/p&gt;
&lt;p&gt;Ich hoffe das ich damit dem einen oder andren den Alltag ein bisschen einfacher machen kann.&lt;/p&gt;
&lt;h3 id="deutsche-tastatur---englische-tastatur-umschalten"&gt;Deutsche Tastatur - Englische Tastatur umschalten&lt;/h3&gt;
&lt;p&gt;Sicher ist es Ihnen auch schon mal passiert, dass Sie beim Schreiben plötzlich kein ö,ä,ü, benutzen konnten, oder das z und das y vertauscht waren. Das liegt meist daran, dass Sie die Tastatur auf englisch eingestellt habe. Das kann schnell passieren, denn die Tastenkombination für das Umschalten lautet:&lt;/p&gt;</description></item><item><title>Widerstand - VB.Net Beispiel</title><link>https://fkainka.de/widerstand-vb-net-beispiel/</link><pubDate>Wed, 30 Jan 2013 17:45:33 +0100</pubDate><guid>https://fkainka.de/widerstand-vb-net-beispiel/</guid><description>&lt;p&gt;Widerstände spielen in jeder Schaltung eine große Rolle. Sie ermöglichen es uns u.A. den Strom genau zu steuern und verhindern somit das Durchbrennen von LEDs und anderen Bauteilen. In diesem Programm dreht es sich speziell um die Widerstände der meist benutzen E24-Reihe. In dieser Reihe gibt es eine diskrete Anzahl von Widerstandswerten. Diese Werte kann man anhand der Farbringe ablesen. Die ersten beiden Ringe stehen für eine zweistellige Zahl, die noch mit einer Zahl 10x multipliziert wird. Der letzte Ring (meist golden) gibt die Genauigkeit dieser Angaben an (in diesem Fall 5%). Angenommen Sie suchen also einen 100-Ohm-Widerstand, müssen Sie nach den Farbringen braun (1), schwarz(0), braun (= 101 = 10) Ausschau halten. Die genauen Farbcodes finden Sie u.A. hier: &lt;a href="http://www.elektronik-kompendium.de/sites/bau/1109051.htm"&gt;http://www.elektronik-kompendium.de/sites/bau/1109051.htm&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Diodenkennlinie - VB.Net Beispiel</title><link>https://fkainka.de/diodenkennlinie-vb-net-beispiel/</link><pubDate>Wed, 30 Jan 2013 17:43:41 +0100</pubDate><guid>https://fkainka.de/diodenkennlinie-vb-net-beispiel/</guid><description>&lt;p&gt;Dioden zeichnen sich durch ihre logarithmischen Strom/Spannungs-Kennlinie aus. Welche Form die U/I-Kurve aber genau annimmt; hängt von der Art der Diode und ihrer Temperatur ab. Das hier vorgestellte Programm simuliert dabei die vier geläufigsten Dioden bei Temperaturen zwischen 0° und 150°C. Sie können sich das Strom/Spannungs-Verhältnis bei gewählten Parametern angucken, oder Sie lassen sich gleich den ganzen Verlauf, also die Diodenkennlinie im Bereich von 0 bis 20 mA aufzeigen.&lt;/p&gt;
&lt;p&gt;Das Programm besteht größtenteils aus bekannten Elementen. Dreh und Angelpunkt ist die folgende Diodengleichung, die den Strom in Abhänigkeit von der Spannung und der Temperatur berechnet. I_s ist vom jeweiligen Diodentyp abhängig:&lt;/p&gt;</description></item><item><title>Elektronen - VB.Net Beispiel</title><link>https://fkainka.de/elektronen-vb-net-beispiel/</link><pubDate>Wed, 30 Jan 2013 17:41:41 +0100</pubDate><guid>https://fkainka.de/elektronen-vb-net-beispiel/</guid><description>&lt;p&gt;Dieses Programm simuliert, wie sich Elektronen in einem Leiter verhalten. Man kann gut sehen, wie sich die Elektronen bei kleinem Strom nur langsam fortbewegen. Bei größeren Strömen werden die Elektronen aktiver und bewegen sich schneller durch den Leiter. Wenn kein Strom anliegt bewegen sich die Elektronen trotzdem ein wenig, aber ohne eine bestimmte Richtung zu bevorzugen. Dies nennt man Rauschen. Zu beachten ist, dass sich die Elektronen nie berühren, sondern immer leicht voneinander abstoßen.&lt;/p&gt;</description></item><item><title>Tiefpassfilter - VB.Net Beispiel</title><link>https://fkainka.de/tiefpassfilter-vb-net-beispiel/</link><pubDate>Wed, 30 Jan 2013 16:24:37 +0100</pubDate><guid>https://fkainka.de/tiefpassfilter-vb-net-beispiel/</guid><description>&lt;p&gt;Die Simulation des Tiefpassfilters konnte mit geringen Änderungen aus dem Hochpassfilterprogramm entwickelt werden. Beide Programme unterscheiden sich nur in der Berechnung der Amplitude und Phasenverschiebung.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;z = Math.Sqrt(r * r + Xc * Xc)&lt;/em&gt;&lt;br&gt;
&lt;em&gt;uC = (u0 * Xc) / z&lt;/em&gt;&lt;br&gt;
&lt;em&gt;&amp;lsquo;Phasenverschiebung berechnen&lt;/em&gt;&lt;br&gt;
&lt;em&gt;phasev = (-Math.Acos(uC / u0)) * 180 / Math.PI&lt;/em&gt;&lt;br&gt;
&lt;em&gt;&amp;lsquo;Ur Zeichen&lt;/em&gt;&lt;br&gt;
&lt;em&gt;ZeichnenSin(freq, 3, uC, 0.5, phasev)&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Diesmal eilt die Phase am Ausgang nach. Man kann sehr anschaulich das Verhalten des Filters untersuchen. Interessant ist z.B. der Fall der Grenzfrequenz. Die Amplitude ist gerade auf 0,7 gefallen (-3 dB), die Phase ist um 45 Grad verschoben.&lt;/p&gt;</description></item><item><title>Hochpassfilter - VB.Net Beispiel</title><link>https://fkainka.de/hochpassfilter-vb-net-beispiel/</link><pubDate>Wed, 30 Jan 2013 16:22:48 +0100</pubDate><guid>https://fkainka.de/hochpassfilter-vb-net-beispiel/</guid><description>&lt;p&gt;Das Programm stellt ein Zweikanal-Oszilloskop dar. Ein Sinusgenerator mit einstellbarer Frequenz und konstanter Amplitude liegt am Eingang des Tiefpassfilters und an einem Kanal des Oszilloskops. Die Sub &lt;em&gt;ZeichnenSinb&lt;/em&gt;  plottet den Sinus im Ausgabefenster&lt;/p&gt;
&lt;p&gt;&lt;em&gt;freq = (VScrollBarF.Maximum + VScrollBarF.Minimum - VScrollBarF.Value) / 10&lt;/em&gt;&lt;br&gt;
&lt;em&gt;u0 = 2&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;ZeichnenSinb(freq, 3, u0, 0.5, 0) &amp;lsquo;Eingangsspannung zeichnen&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Der andere Kanal liegt am Ausgang des Filters. Die folgenden Rechnungen ermitteln die Ausgangsamplitude und die Phasenverschiebung. Die Ausgangsspannung wird entsprechend dieser Ergebnisse in einem zweiten Sinusgenerator gebildet.&lt;/p&gt;</description></item><item><title>Netzteil - VB.Net Beispiel</title><link>https://fkainka.de/netzteil-vb-net-beispiel/</link><pubDate>Wed, 30 Jan 2013 16:20:20 +0100</pubDate><guid>https://fkainka.de/netzteil-vb-net-beispiel/</guid><description>&lt;p&gt;Das Programm simuliert die Restwelligkeit eines 12V-Netzteils mit Vierweggleichrichter und Siebelko. Sowohl der Lastwiderstand als auch die Kapazität des Elkos lassen sich einstellen. Auf dem simulierten Oszilloskopschirm (der Picturebox) kann man den Spannungsverlauf sehen.&lt;/p&gt;
&lt;p&gt;Die Berechnungen sind hier verhältnismäßig simpel. Ut ist die gleichgerichtete Eingangswechselspannung, wobei die Sinusfunktion die Wechselspannung am Trafo berechnet und die Absolutwertbestimmung (Abs) den Vierweggleichrichter simuliert.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;vt = vt + 360 / 80&lt;/em&gt;&lt;br&gt;
&lt;em&gt;If vt &amp;gt;= 361 Then vt = 0&lt;/em&gt;&lt;br&gt;
&lt;em&gt;xvt = Math.PI * vt / 180.0&lt;/em&gt;&lt;br&gt;
&lt;em&gt;ut = Math.Abs(17 * (Math.Sin(xvt)))&lt;/em&gt;&lt;/p&gt;</description></item><item><title>Arbeitspunkt Emitterschaltung - VB.Net Beispiele</title><link>https://fkainka.de/arbeitspunkt-emitterschaltung-vb-net-beispiele/</link><pubDate>Wed, 30 Jan 2013 16:18:23 +0100</pubDate><guid>https://fkainka.de/arbeitspunkt-emitterschaltung-vb-net-beispiele/</guid><description>&lt;p&gt;Für jeden Transistorverstärker gibt es einen optimalen Kollektorstrom, den man auch als Arbeitspunkt bezeichnet. Bei diesem Signalverstärker in Emitterschaltung sollte man den Basiswiderstand rb passend zur Stromverstärkung V möglichst so einstellen, dass die Kollektorspannung uce ohne Aussteuerung (ut=0) in der Mitte bei 2,5 V liegt. Das ergibt dann den idealen Arbeitspunkt, bei dem die größte verzerrungsfreie Aussteuerung möglich ist.&lt;br&gt;
&lt;em&gt;ib = 4.4 / rb + ut / 1000&lt;/em&gt;&lt;br&gt;
&lt;em&gt;ic = ib * v&lt;/em&gt;&lt;br&gt;
&lt;em&gt;uce = 5 - ic * 1000&lt;/em&gt;&lt;/p&gt;</description></item><item><title>Gegenkopplung - VB.Net Beispiel</title><link>https://fkainka.de/gegenkopplung-vb-net-beispiel/</link><pubDate>Wed, 30 Jan 2013 16:15:48 +0100</pubDate><guid>https://fkainka.de/gegenkopplung-vb-net-beispiel/</guid><description>&lt;p&gt;In diesem Programm wird eine Emitterschaltung mit Gegenkopplung simuliert. Die Änderung zu einem normalen Transistorverstärker ist, dass hier die Basis über einen Widerstand mit dem Kollektor verbunden ist. Damit wird einer Vergrößerung des Kollektorstroms entgegengewirkt. Das Resultat ist eine verkleinerte Verstärkung aber auch eine geringere Verzerrung.&lt;/p&gt;
&lt;p&gt;In dem Programm treten viele Neuerungen auf einmal auf. Es wird hier zum ersten Mal mit einer gezeichneten Ausgabe auf einer Picturebox gearbeitet. Wenn Sie sich bereits mit älteren VB-Versionen auskennen, werden Sie hier einige Änderungen feststellen. Allerdings habe ich versucht, altbekannte Prozeduren nachzuprogrammieren. Das sollte die Umstellung erleichtern.&lt;/p&gt;</description></item><item><title>Schmitt-Trigger - VB.Net Beispiel</title><link>https://fkainka.de/schmitt-trigger-vb-net-beispiel/</link><pubDate>Wed, 30 Jan 2013 16:09:40 +0100</pubDate><guid>https://fkainka.de/schmitt-trigger-vb-net-beispiel/</guid><description>&lt;p&gt;Bei dem Schmitt-Trigger-Programm tritt wieder etwas Besonderes auf. Hier haben wir das erste Mal &lt;em&gt;Select Case&lt;/em&gt; statt einer IF-Abfrage benutzt. Das liegt daran, dass die Berechnung der Werte davon abhängen, welcher Zustand vorher gültig war. Visuell wird das in einer Hysteresekurve dargestellt.&lt;/p&gt;
&lt;details class="spoiler"&gt;
&lt;summary&gt;Quelltext&lt;/summary&gt;
&lt;p&gt;Public Class frmST&lt;br&gt;
Dim Re, Ui As Double&lt;br&gt;
Dim fall&lt;br&gt;
Dim uc1, ue, ub2, u1, ua As Double&lt;br&gt;
Dim i1, i2&lt;/p&gt;
&lt;p&gt;Private Sub frmST_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load&lt;br&gt;
fall = 1&lt;br&gt;
berechnen()&lt;br&gt;
End Sub&lt;/p&gt;</description></item><item><title>Invertierender Verstärker -VB.Net Beispiel</title><link>https://fkainka.de/invertierender-verstaerker-vb-net-beispiel/</link><pubDate>Wed, 30 Jan 2013 16:07:49 +0100</pubDate><guid>https://fkainka.de/invertierender-verstaerker-vb-net-beispiel/</guid><description>&lt;p&gt;Das Programm Inventierender Verstärker funktioniert ähnlich wie das vorangegangen Programm Nichtinvertierender Verstärker.&lt;/p&gt;
&lt;p&gt;Das Programm unterscheidet sich vom Vorgänger fast nur durch eine etwas andere Rechenregel (vgl. &lt;a href="http://elexs.de/kap7_3.htm"&gt;ELEXS&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Rv = R1 / (R1 + R2)&lt;/em&gt;&lt;br&gt;
&lt;em&gt;V = -(R2 / R1)&lt;/em&gt;&lt;br&gt;
&lt;em&gt;Uv = Rx * V&lt;/em&gt;&lt;/p&gt;
&lt;details class="spoiler"&gt;
&lt;summary&gt;Quelltext&lt;/summary&gt;
&lt;p&gt;&lt;em&gt;Public&lt;/em&gt; &lt;em&gt;Class frmIV&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Dim&lt;/em&gt; &lt;em&gt;R1, R2, Rx&lt;/em&gt;&lt;br&gt;
&lt;em&gt;Dim V&lt;/em&gt;&lt;br&gt;
&lt;em&gt;Dim Uo, Uplus, Uminus&lt;/em&gt;&lt;br&gt;
&lt;em&gt;Dim&lt;/em&gt; &lt;em&gt;Uv, Rv&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Private Sub sR2_Scroll(ByVal sender As System.Object, ByVal e As System.Windows.Forms.ScrollEventArgs)Handles sR2.Scroll&lt;/em&gt;&lt;br&gt;
&lt;em&gt;berechnen()&lt;/em&gt;&lt;br&gt;
&lt;em&gt;End Sub&lt;/em&gt;&lt;/p&gt;</description></item><item><title>Nichtinvertierender Verstärker - VB.Net Beispiel</title><link>https://fkainka.de/nichtinvertierender-verstaerker-vb-net-beispiel/</link><pubDate>Wed, 30 Jan 2013 16:05:27 +0100</pubDate><guid>https://fkainka.de/nichtinvertierender-verstaerker-vb-net-beispiel/</guid><description>&lt;p&gt;Dieses Programm simuliert eine Schaltung mit einem nichtinvertierenden Operations-Verstärker.&lt;/p&gt;
&lt;p&gt;Die eigentliche Berechnung im Programm ist ganz einfach und bestimmt die Verstärkung und die Ausgangsspannung aus dem Verhältnis von Widerständen (vgl. &lt;a href="http://elexs.de/kap7_2.htm"&gt;ELEXS&lt;/a&gt;).&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Rv = R2 / (R1 + R2)&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;V = (R1 + R2) / R2&lt;/em&gt;&lt;br&gt;
&lt;em&gt;Uv = Ui * V&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Die Rechnung kann theoretisch auch Ausgangspannungen außerhalb des Bereichs der Betriebsspannung ergeben. Deshalb wird hier in einem zweiten Schritt die tatsächliche Spannung nach oben und unten bis auf 0,5 V an der Betriebsspannung begrenzt. Wenn dieser Übersteuerungsfall eintritt weicht die Spannung am invertierenden Eingang des OPV von der am nichtinvertierenden ab und muss eigens aus dem Spannungsteilungsverhältnis berechnet werden.&lt;/p&gt;</description></item><item><title>Innenwiderstand - VB.Net Beispiel</title><link>https://fkainka.de/innenwiderstand-vb-net-beispiel/</link><pubDate>Wed, 30 Jan 2013 16:03:19 +0100</pubDate><guid>https://fkainka.de/innenwiderstand-vb-net-beispiel/</guid><description>&lt;p&gt;Mit dem Programm Innenwiderstand kann man beobachten, wie sich Strom und Spannung in Schaltungen verhalten, wenn man den Innenwiderstand einer Stromquelle, die Spannung der Stromquelle oder die Last verändert.&lt;/p&gt;
&lt;p&gt;Die Berechnung ähnelt der bei der Reihenschaltung, weil der innere und der äußere Widerstand einen Spannungsteiler bilden. Mehr dazu findet man in &lt;a href="http://elexs.de/kap2_6.htm"&gt;ELEXS&lt;/a&gt;&lt;a href="http://elexs.de/kap2_6.htm"&gt;.&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;rges = Ri + Ra&lt;/em&gt;&lt;br&gt;
&lt;em&gt;Ia = Ui / rges&lt;/em&gt;&lt;br&gt;
&lt;em&gt;Ua = Ra * Ia&lt;/em&gt;&lt;/p&gt;
&lt;details class="spoiler"&gt;
&lt;summary&gt;Quelltext&lt;/summary&gt;
&lt;p&gt;&lt;em&gt;Public&lt;/em&gt; &lt;em&gt;Class frmInnen&lt;/em&gt;&lt;br&gt;
&lt;em&gt;Dim Ui, Ri, Ia, Ra, Ua&lt;/em&gt;&lt;br&gt;
&lt;em&gt;Private&lt;/em&gt; &lt;em&gt;Sub berechnen()&lt;/em&gt;&lt;br&gt;
&lt;em&gt;Dim rges&lt;/em&gt;&lt;/p&gt;</description></item><item><title>Reihenschaltung -VB.Net Beispiel</title><link>https://fkainka.de/reihenschaltung-vb-net-beispiel/</link><pubDate>Wed, 30 Jan 2013 15:57:17 +0100</pubDate><guid>https://fkainka.de/reihenschaltung-vb-net-beispiel/</guid><description>&lt;p&gt;Dieses Programm berechnet Ströme und Spannungen in einer Reihenschaltung. Sowohl die beiden Widerstände als auch die Eingangsspannung sind dabei veränderbar.&lt;/p&gt;
&lt;p&gt;In diesem Programm wird die Funktion &lt;em&gt;Math.Round&lt;/em&gt; benutzt. Mit ihr kann man Zahlen auf eine bestimmte Anzahl von Nachkommastellen runden. Auf wie viele Stellen gerundet werden soll, gibt der zweite Parameter an, z.B.: &lt;em&gt;Math.Round(2.2345, 3)&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;Die eigentliche Berechnung (vgl. physikalische Hintergründe in &lt;a href="http://elexs.de/kap2_4.htm"&gt;ELEXS&lt;/a&gt;) steht in den folgenden drei Zeilen:&lt;/p&gt;
&lt;p&gt;&lt;em&gt;I = Math.Round(U / ((R1 + R2)), 3)&lt;/em&gt;&lt;br&gt;
&lt;em&gt;Ur1 = R1 * I&lt;/em&gt;&lt;br&gt;
&lt;em&gt;Ur2 = U - Ur1&lt;/em&gt;&lt;br&gt;
Alles andere beschäftigt sich mit der Eingabe und Ausgabe von Werten.&lt;/p&gt;</description></item><item><title>NPN-Transistor - VB.Net Beispiel</title><link>https://fkainka.de/vb-net-beispiel-npn-transistor/</link><pubDate>Wed, 30 Jan 2013 15:52:42 +0100</pubDate><guid>https://fkainka.de/vb-net-beispiel-npn-transistor/</guid><description>&lt;p&gt;Bei diesem Programm geht es darum, eine einfache NPN-Transistor-Schaltung zu simulieren. Mit verschiedenen Schiebern kann man einen veränderlichen Widerstand und damit die Eingangsspannung verstellen. Interessante Größen werden dann berechnet und an entsprechenden Labels ausgegeben.&lt;/p&gt;
&lt;p&gt;Hauptsächlich können Sie an diesem Beispiel sehen, wie man eine Sub aufruft und wie man kleinere Rechnungen ausführt.&lt;/p&gt;
&lt;p&gt;Die visuelle Oberfläche ist größtenteils durch ein vorgegebenes Hintergrundbild definiert. Somit spart man sich das komplizierte Zeichnen im Desingeditor. Anschließend sind an den passenden Stellen Label und Schieber hinzugefügt worden.&lt;/p&gt;</description></item><item><title>VB.Net: Syntax</title><link>https://fkainka.de/vb-net-syntax/</link><pubDate>Wed, 30 Jan 2013 15:44:01 +0100</pubDate><guid>https://fkainka.de/vb-net-syntax/</guid><description>&lt;p&gt;In diesem Text werde ich auf die Besonderheiten und die Schreibweisen (Syntax) von VB.Net eingehen. Wenn Sie noch nie Programmiert haben empfehle ich vorher die Artikel über die &lt;a href="http://wp.fkainka.de/grundlagen-der-programmierung/" title="Grundlagen der Programmierung"&gt;Grundlagen der Programmierung&lt;/a&gt; zu lesen. Falls Sie schon andere Programmiersprachen benutzt haben interessiert Sie vielleicht nur, wie die man einzelne Elemente in VB.Net umsetzt. Deswegen werde ich hier in kurzer, übersichtlicher Form die Syntax dieser Programmiersprache erläutern. Auf diese Weise können Sie immer schnell nachschlagen, wenn Sie sich gerade nicht mehr sicher sind, wie man beispielsweise eine Schleife in VB.Net realisiert.&lt;/p&gt;</description></item><item><title>VB.Net: Steuerelemente</title><link>https://fkainka.de/vb-net-steuerelemente/</link><pubDate>Wed, 30 Jan 2013 15:35:39 +0100</pubDate><guid>https://fkainka.de/vb-net-steuerelemente/</guid><description>&lt;p&gt;Unter den zahlreichen Steuerelementen in VB.Net gibt esein paar, die sehr häufig in Fenster basierenden Programmen auftauchen:&lt;a href="http://wp.fkainka.de/wp-content/uploads/2015/01/elemt0.jpg"&gt;&lt;img alt="elemt0" loading="lazy" src="http://wp.fkainka.de/wp-content/uploads/2015/01/elemt0.jpg"&gt;&lt;/a&gt;Hier hätten wir u.A.:Button,&lt;br&gt;
Label, TextBox, CheckBox und das Formular selbst.&lt;/p&gt;
&lt;p&gt;Zu&lt;br&gt;
Beginn ist es am Einfachsten, wenn man sich auf die Eigenschaften und Ereignisse von Elementen konzentriert. Eigenschaften werden hauptsächlich vor dem Programmstart im Formmanager verändert um ein Startbild zu definieren. Aber auch zur Laufzeit ist es möglich, bestimmte Eigenschaften zu verändern. Man kann z.B. den Titeltext des Formulars verändern um den Benutzer auf einen Fehler hinzuweisen. Aber später mehr dazu.Wenn ein Ereignis (Event) ausgelöst wird überprüft das Programm, ob eine Prozedur zu diesem Ereignis definiert ist. Ist dies der Fall wird diese Prozedur ausgeführt. Eines der häufigsten Events ist der&lt;/p&gt;</description></item><item><title>VB.Net: Hello World</title><link>https://fkainka.de/vb-net-hello-world/</link><pubDate>Wed, 30 Jan 2013 15:28:36 +0100</pubDate><guid>https://fkainka.de/vb-net-hello-world/</guid><description>&lt;p&gt;Wir alle kennen das Problem. Eine einfache aber zeitaufwändige Computer-Aufgabe liegt vor uns. Sei es einen ganzen Ordner Bilder umzubenennen oder eine bestimmte Formel immer wieder neu mit dem Taschenrechner ausrechnen zu müssen. Dafür kann man sich entweder einen Tag Zeit nehmen, oder man entwirft schnell ein Programm, welches die gewünschten Aufgaben selbständig und schnell erledigt. Dafür ist ein PC schließlich da.&lt;/p&gt;
&lt;p&gt;Aber welche Programmiersprache eignet sich dafür? Gerade neue und moderne Programmiersprachen wie Java und C++ haben ein breites Spektrum an Möglichkeiten, allerdings wird das Programmieren dadurch auch viel komplizierter. Dazu kommt, dass eine einfache grafische Oberfläche oft mühsam im Quelltext programmiert werden muss, was die Sache nicht einfacher und übersichtlicher macht.&lt;/p&gt;</description></item><item><title>Grundlagen der Programmierung</title><link>https://fkainka.de/grundlagen-der-programmierung/</link><pubDate>Wed, 30 Jan 2013 15:24:20 +0100</pubDate><guid>https://fkainka.de/grundlagen-der-programmierung/</guid><description>&lt;p&gt;Unabhängig von der gewählten Programmiersprache gibt es einige allgemein gültige Elemente in der Informatik. So ist z.B. eine Integer-Variable überall gleich definiert als ein Container für eine ganze Zahl und besteht aus 16 Bit. Es ist egal ob Sie in Bascom, Arduino, Visual Basic oder Java programmieren, ein Integer bleibt ein Integer. Das Einzige was sich ändert ist der Quelltext, mit dem Sie die Variable initialisieren.&lt;/p&gt;
&lt;p&gt;An dieser Stelle soll deswegen eine kurze Einleitung zu den wichtigsten Elementen nahezu jeder Programmiersprache stehen. Gerade Anfänger können so immer mal wieder nachgucken wie z.B. eine Schleife, eine Funktion oder eine Variable funktioniert. Den Quelltext müssen Sie dann nur noch der jeweiligen Sprache anpassen.&lt;/p&gt;</description></item><item><title>Grundlagen der Programmierung: Zahlensysteme</title><link>https://fkainka.de/grundlagen-der-programmierung-zahlensysteme/</link><pubDate>Wed, 30 Jan 2013 15:22:45 +0100</pubDate><guid>https://fkainka.de/grundlagen-der-programmierung-zahlensysteme/</guid><description>&lt;p&gt;In der Informatik gibt es verschiedene Arten der Zahlendarstellung. Aus unserem Alltag kennen wir die Dezimaldarstellung, die auf dem 10er Prinzip beruht (Dezi = 10). Aber auch wenn es und natürlich und selbstverständlich vorkommt, ist dies nicht die einzige Möglichkeit Zahlen zu behandeln. Vielmehr kommt es uns nur wegen unserer 10 Finger selbstverständlich vor das 10er System zu benutzen. Computer sehen das aber anders.&lt;/p&gt;
&lt;h3 id="binär"&gt;Binär&lt;/h3&gt;
&lt;p&gt;Computer rechnen viel lieber mit dem Binärsystem (Bi = 2) in dem Binärsystem gibt es nur zwei Zustände die Eins oder Null heißen. Diese Zahl nennen wir mal Bit. 8 Bit ergeben ein Byte. Ein Beispiel für ein Byte : 11110111. Also insgesamt 8-Bits mit jeweiligen Zustand. Für den Computer ist diese Zahl verständlich, wir können uns aber nicht viel darunter vorstellen, es sei denn wir transformieren sie wieder in unser Dezimalsystem. Dazu muss man wissen, das es eine einfache Berechnung gibt. Das niedrigste Bit steht nämlich für die Zahl eins. Das zweite für die Zahl 2, das dritte für 4 und das vierte für 8 und so weiter. Um sich das besser vorzustellen hier eine Tabelle:&lt;/p&gt;</description></item><item><title>Grundlagen der Programmierung: Schleifen</title><link>https://fkainka.de/grundlagen-der-programmierung-schleifen/</link><pubDate>Wed, 30 Jan 2013 15:21:32 +0100</pubDate><guid>https://fkainka.de/grundlagen-der-programmierung-schleifen/</guid><description>&lt;p&gt;Oft ist es von Nöten, dass ein Programmteil so oft wiederholt wird, bis sich ein bestimmter Zustand geändert hat. Deswegen gibt es Schleifen. Die gängigsten Typen sind: For-Schleifen, While, Until –Schleifen.&lt;/p&gt;
&lt;p&gt;Die For-Schleife ist eine Art Zähler. Sie zählt von einem Startwert zu einem Endwert in einer Bestimmten Schrittweite und führt bei jedem Schritt den Programmcode aus. Hier ein Beispiel aus VB.Net:&lt;/p&gt;
&lt;p&gt;&lt;em&gt;For&lt;/em&gt; &lt;em&gt;i = 1&lt;/em&gt; &lt;em&gt;To&lt;/em&gt; &lt;em&gt;5&lt;/em&gt; &lt;em&gt;Step&lt;/em&gt; &lt;em&gt;1&lt;/em&gt;&lt;/p&gt;</description></item><item><title>Grundlagen der Programmierung: If-Abfragen</title><link>https://fkainka.de/grundlagen-der-programmierung-if-abfragen/</link><pubDate>Wed, 30 Jan 2013 15:20:23 +0100</pubDate><guid>https://fkainka.de/grundlagen-der-programmierung-if-abfragen/</guid><description>&lt;p&gt;Eine IF-Abfrage ist dazu da, zu einer bestimmten Bedingung einen bestimmten Programmcode auszuführen. Die klassische Struktur solcher Abfragen sind: If – Bedingung Then – Dann mache folgendes, Else – Andernfalls mache folgendes. Hier ein simples Beispiel&lt;/p&gt;
&lt;p&gt;if i = 5 then&lt;/p&gt;
&lt;p&gt;(…)&lt;/p&gt;
&lt;p&gt;Else&lt;/p&gt;
&lt;p&gt;(…)&lt;br&gt;
end if&lt;/p&gt;
&lt;p&gt;Es ist auch möglich mehrere If-Abfragen ineinander zu verschachteln. Also eine If-Abfrage in einer If-Abfrage. Außerdem kann man mehre if-Then’s hintereinander schreiben bevor das else kommt, oder auch das else weglassen. In manchen Programmiersprachen kann man sogar das End if weglassen, wenn man if .. then.. in eine Zeile schreibt.&lt;/p&gt;</description></item><item><title>Grundlagen der Programmierung: Prozeduren</title><link>https://fkainka.de/grundlagen-der-programmierung-prozeduren/</link><pubDate>Wed, 30 Jan 2013 15:19:14 +0100</pubDate><guid>https://fkainka.de/grundlagen-der-programmierung-prozeduren/</guid><description>&lt;p&gt;Viele Programmiersprachen erlauben das Aufrufen von Unterprogrammen. Gerade wenn ein Teil des Programms besonders oft durchläuft, z.B. irgendeine Berechnung, kann es hilfreich sein, diesen Teil in einer gesonderten Prozedur auszulagern. Die Vorteile sind vor allem die Übersichtlichkeit, die Platzersparnis und die wieder Verwendbarkeit von Quelltexten.&lt;/p&gt;
&lt;p&gt;Eine Prozedur muss meistens zu Beginn eines Programms mit Namen und Parametern deklariert werden. Das funktioniert in Bascom z.B. so:&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Declare Sub Unterprogramm (Variable as Byte)&lt;/em&gt;&lt;/p&gt;</description></item><item><title>Grundlagen der Programmierung: Variablen</title><link>https://fkainka.de/grundlagen-der-programmierung-variablen/</link><pubDate>Wed, 30 Jan 2013 15:17:49 +0100</pubDate><guid>https://fkainka.de/grundlagen-der-programmierung-variablen/</guid><description>&lt;p&gt;Variablen muss man sich grundsätzlich als einen Container für einen bestimmten Wert vorstellen. In den meisten Programmiersprachen müssen diese Container zu Beginn des Programms „bestellt“ werden. Das nennt man Initialisieren. Zur Initialisierung müssen Sie meistens auch den Typ der Variable und den Namen angeben. Den Typ, damit das der PC auch weiß, wie groß der Container sein soll, und den Namen, damit Sie den Container auch später wiederfinden. In VB.Net sieht die Initialisierung einer Variablen so aus:&lt;/p&gt;</description></item><item><title>Der GMC-4</title><link>https://fkainka.de/der-gmc-4/</link><pubDate>Tue, 01 Jan 2013 16:30:30 +0100</pubDate><guid>https://fkainka.de/der-gmc-4/</guid><description>&lt;p&gt;Der GMC-4 ist ein programmierbarer Spielecomputer von Franzis. Während Sie bei den meisten anderen Mikrocontrollern einen extra PC und Zusatz-Software benötigen, können Sie mit dem GMC-4 bequem auf dem Sofa programmieren und das Ergebnis gleich ausprobieren.  &lt;a href="https://fkainka.de/tag/gmc-4/"&gt;Alles zum GMC-4&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Franzis-Seite zum GMC4&lt;/p&gt;
&lt;p&gt;&lt;a href="http://wp.fkainka.de/der-gmc-4-befehlssatz/" title="Der GMC-4 Befehlssatz"&gt;Befehlsliste des GMC-4&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Der GMC-4 Befehlssatz</title><link>https://fkainka.de/der-gmc-4-befehlssatz/</link><pubDate>Tue, 01 Jan 2013 16:21:07 +0100</pubDate><guid>https://fkainka.de/der-gmc-4-befehlssatz/</guid><description>&lt;p&gt;Der GMC-4 verfügt über einen einfachen Befehlssatz, der an Assembler angelehnt ist, teilweise aber auch höhere Funktionen enthält, hinter denen sich komplexe Unterprogramme des Interpreters verstecken.&lt;/p&gt;
&lt;p&gt;Es gibt vier 4-Bit-Register A, B, Y und Z und einen zusätzlichen zweiten Registersatz A&amp;rsquo;, B&amp;rsquo;, Y&amp;rsquo; und Z&amp;rsquo;. Jedes dieser Register kann eine Zahl zwischen 0 und 15 enthalten. Die meisten Befehle verwenden das Register A.&lt;/p&gt;
&lt;p&gt;Zusätzlich gibt es ein Flag, also einen 1-Bit-Merker, der wie eine Flagge hoch- oder runtergesetzt werden kann. Viele Befehle setzen das Flag grundsätzlich auf 1, andere setzen es in Abhängigkeit von der jeweiligen Aktion wahlweise auf Null oder Eins. Der Zustand des Flags wird vom Sprungbefehl ausgewertet. Der Sprung zur angegebenen Adresse wird nur dann ausgeführt, wenn Flag=1 ist.&lt;/p&gt;</description></item><item><title>Schnellstart Arduino Leonardo</title><link>https://fkainka.de/schnellstart-arduino-leonardo/</link><pubDate>Fri, 21 Dec 2012 13:04:24 +0100</pubDate><guid>https://fkainka.de/schnellstart-arduino-leonardo/</guid><description>&lt;p&gt;Jeder der sich, auch wenn vielleicht nur oberflächlich, mit der Mikrokontroller -Programmierung befasst, wird einem Schlagwort nicht mehr ausweichen können: Arduino. Die Frage ob der Hype um dieses System wirklich berechtigt ist steht natürlich im Raum. Für ausgefuchste Programmierer ist dies vielleicht nicht mehr als ein lustiges Spielzeug. Für den Ottonormal-Menschen aber eine Möglichkeit auch große Projekte auf schnellem Wege zu realisieren. Man kann sicher Tage damit verbringen die vielen ausgefallenen und spannenden Projekte im Internet zu erforschen und kommt auch nicht drum herum sich selbst so seine Gedanken zu machen. Deshalb soll es an dieser Stelle mal einen kleinen Einstieg für diejenigen unter Ihnen geben, die sich noch nicht so intensiv mit der Mikrocontroller Programmierung befasst haben.&lt;/p&gt;</description></item></channel></rss>