{"id":869,"date":"2017-08-07T19:27:51","date_gmt":"2017-08-07T18:27:51","guid":{"rendered":"https:\/\/www.open4me.de\/?p=869"},"modified":"2017-08-05T08:57:07","modified_gmt":"2017-08-05T07:57:07","slug":"esp8266-dcc-signal-generieren","status":"publish","type":"post","link":"https:\/\/www.open4me.de\/index.php\/2017\/08\/esp8266-dcc-signal-generieren\/","title":{"rendered":"ESP8266: DCC Signal generieren"},"content":{"rendered":"<p>Vor einiger Zeit hat Julian Zimmermann im <a href=\"http:\/\/www.spassbahn.de\/\">Spassbahn-Forum<\/a> eine L\u00f6sung pr\u00e4sentiert, wie man mit einem ESP8266 ein g\u00fcltiges <a href=\"https:\/\/de.wikipedia.org\/wiki\/Digital_Command_Control\">DCC-Signal<\/a> generieren kann. In der Zwischenzeit habe ich von ihm seine Sourcen erhalten. Diese habe ich in mein <a href=\"https:\/\/github.com\/littleyoda\/littleyoda-DCC-Decoder\">Decoder Framework<\/a> \u00fcbernommen, fehlerbereinigt und optimiert.<\/p>\n<p><!--more--><\/p>\n<h2>Software<\/h2>\n<p>Wer es selber nutzen will, sollte sich die Klasse ActionDCCGeneration anschauen. F\u00fcr die Generierung wird die Hardware-SPI-Schnittstelle (Pin D7) genutzt. Die Klasse ist darauf ausgelegt, die Daten (Geschwindigkeit, F0-F28) f\u00fcr eine Lok zu generieren. Eine Erweiterung auf mehre Loks sollte aber kein Problem darstellen.<\/p>\n<p>Da die standardm\u00e4\u00dfig enthalte SPI-Libary aber solange blockiert, bis alle Daten \u00fcbermittelt wurden, habe ich sie auf nicht-blockierend umgestellt und sie auf das n\u00f6tigste reduziert (siehe DCCSpi).<\/p>\n<h2>Hardware<\/h2>\n<p>F\u00fcr meine Tests habe ich eine einfache <a href=\"http:\/\/s.click.aliexpress.com\/e\/QrnYJ6u\">L298N-Platine(*)<\/a>, ein <a href=\"http:\/\/s.click.aliexpress.com\/e\/2f6iQRz\">ESP8266-Board (*)<\/a>, ein NPN-Transitor (2N2222A) und zwei 1k Ohm Widerst\u00e4nde genutzt. Da die SPI-Schnittstelle nur die positive &#8222;Halbwelle&#8220; des DCC-Signales generiert, wird noch ein Transistor ben\u00f6tigt, der die negative &#8222;Halbwelle&#8220; generiert. Beide Signale steuern dann die H-Bridge an.<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/www.open4me.de\/my-content\/L298nDCC.png\" alt=\"Schaltplan\" \/><\/p>\n<p>&nbsp;<\/p>\n<p>Ein paar mehr Informationen findet ihr im <a href=\"http:\/\/gartenbahntechnik.de\/forum\/viewtopic.php?f=22&amp;t=418\">Gartenbahn-Technik Forum<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Vor einiger Zeit hat Julian Zimmermann im Spassbahn-Forum eine L\u00f6sung pr\u00e4sentiert, wie man mit einem ESP8266 ein g\u00fcltiges DCC-Signal generieren kann. In der Zwischenzeit habe ich von ihm seine Sourcen erhalten. Diese habe ich in mein Decoder Framework \u00fcbernommen, fehlerbereinigt und optimiert.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-869","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/www.open4me.de\/index.php\/wp-json\/wp\/v2\/posts\/869","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.open4me.de\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.open4me.de\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.open4me.de\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.open4me.de\/index.php\/wp-json\/wp\/v2\/comments?post=869"}],"version-history":[{"count":5,"href":"https:\/\/www.open4me.de\/index.php\/wp-json\/wp\/v2\/posts\/869\/revisions"}],"predecessor-version":[{"id":880,"href":"https:\/\/www.open4me.de\/index.php\/wp-json\/wp\/v2\/posts\/869\/revisions\/880"}],"wp:attachment":[{"href":"https:\/\/www.open4me.de\/index.php\/wp-json\/wp\/v2\/media?parent=869"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.open4me.de\/index.php\/wp-json\/wp\/v2\/categories?post=869"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.open4me.de\/index.php\/wp-json\/wp\/v2\/tags?post=869"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}