{"id":669,"date":"2018-03-04T11:25:23","date_gmt":"2018-03-04T10:25:23","guid":{"rendered":"http:\/\/www.weise-bernd.de\/?p=669"},"modified":"2018-04-15T15:23:12","modified_gmt":"2018-04-15T14:23:12","slug":"wochenend-projekt-elektronischer-wuerfel-v1-01","status":"publish","type":"post","link":"https:\/\/www.weise-bernd.de\/?p=669","title":{"rendered":"Wochenend-Projekt: elektronischer W\u00fcrfel v1.01"},"content":{"rendered":"<p>Das Krippenlicht muss warten. Nachdem mein Board so gut funktioniert hat, wollte ich ein lange von mir geplantes Projekt starten, &#8211; einen elektronischen W\u00fcrfel. Das Programm und die Platine sind recht trivial und meinen Elektronik- und Programmierkenntnissen entsprechend. Aber er funktioniert! Das Programm in seiner urspr\u00fcnglichen Form war mit einer Switch() Auswahl, welche ich aber den ganzen Samstag nicht zum laufen bekommen habe. Sogar der Debugger von meinem Entwicklungsstudio ist mit Programmfehler ausgestiegen, so dass das ich den Debugger im Windows immer wieder neu starten musste. Am Abend hatte ich die Nase voll, weil ich weder den Fehler finden konnte noch mit dem Debugger irgend etwas herausfinden konnte. Ich setzte mich mit einem Arbeitskollegen in Verbindung (der beruflich embedded Code schreibt) und zusammen konnten wir die Fehler mit dem Switch() nicht finden. So dann haben wir das Problem mit vielen IF() Anweisungen gel\u00f6st.<\/p>\n<p>Kurze Erkl\u00e4rung:<br \/>\nIn einer Endlosschleife wird bei jedem Durchlauf ein Z\u00e4hler (i) um Eins (i++) erh\u00f6ht und ein Input abgefragt. Wenn der Z\u00e4hler 5 hat (Augenzahl 0 bis 5 sind 6) wird der Z\u00e4hler auf 0 gesetzt. Wenn es einen Input gibt (Switch gedr\u00fcckt) Wird der Z\u00e4hler i ausgewertet und je nachdem welchen Wert i beim dr\u00fccken des Switches hatte die dementsprechenden LEDs eingeschaltet. Der Zufallsgenerator ist sozusagen der Mensch, der den Switch dr\u00fcckt, &#8211; weil er nicht wissen kann wie hoch i in dem Moment des Dr\u00fcckens ist.<\/p>\n<p>Weitere Anmerkung:<br \/>\nich hatte als Widerst\u00e4nde nur 330 Ohm und habe diese genommen. Da auf manchen Ausg\u00e4ngen zwei LEDs sind, w\u00e4ren hier niedriger Widerst\u00e4nde besser um das Leuchten der LEDs gleichm\u00e4\u00dfiger zu bekommen. Als Batterie kann von 3,3Volt bis 5 Volt genommen werden (ich habe 4,5v (3xAA)).<\/p>\n<p>&nbsp;<\/p>\n<p>Bild von der Schaltung:<\/p>\n<p><a href=\"http:\/\/www.weise-bernd.de\/wp-content\/uploads\/2018\/03\/AtTiny13_Wuerfel_v1_01.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-675\" src=\"http:\/\/www.weise-bernd.de\/wp-content\/uploads\/2018\/03\/AtTiny13_Wuerfel_v1_01-170x300.jpg\" alt=\"\" width=\"170\" height=\"300\" srcset=\"https:\/\/www.weise-bernd.de\/wp-content\/uploads\/2018\/03\/AtTiny13_Wuerfel_v1_01-170x300.jpg 170w, https:\/\/www.weise-bernd.de\/wp-content\/uploads\/2018\/03\/AtTiny13_Wuerfel_v1_01.jpg 392w\" sizes=\"auto, (max-width: 170px) 100vw, 170px\" \/><\/a><\/p>\n<div id=\"attachment_687\" style=\"width: 280px\" class=\"wp-caption alignnone\"><a href=\"http:\/\/www.weise-bernd.de\/wp-content\/uploads\/2018\/04\/IMG_20180311_1854321-e1523802126100.jpg\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-687\" class=\"size-medium wp-image-687\" src=\"http:\/\/www.weise-bernd.de\/wp-content\/uploads\/2018\/04\/IMG_20180311_1854321-e1523802126100-270x300.jpg\" alt=\"\" width=\"270\" height=\"300\" srcset=\"https:\/\/www.weise-bernd.de\/wp-content\/uploads\/2018\/04\/IMG_20180311_1854321-e1523802126100-270x300.jpg 270w, https:\/\/www.weise-bernd.de\/wp-content\/uploads\/2018\/04\/IMG_20180311_1854321-e1523802126100-768x853.jpg 768w, https:\/\/www.weise-bernd.de\/wp-content\/uploads\/2018\/04\/IMG_20180311_1854321-e1523802126100-922x1024.jpg 922w, https:\/\/www.weise-bernd.de\/wp-content\/uploads\/2018\/04\/IMG_20180311_1854321-e1523802126100.jpg 1788w\" sizes=\"auto, (max-width: 270px) 100vw, 270px\" \/><\/a><p id=\"caption-attachment-687\" class=\"wp-caption-text\">El. W\u00fcrfel<\/p><\/div>\n<p>&nbsp;<\/p>\n<div class=\"code-embed-wrapper\"> <pre class=\"language-c code-embed-pre\"  data-start=\"1\" data-line-offset=\"0\"><code class=\"language-c code-embed-code\">\/*<br\/> * Attiny13_Wuerfel_v1_01.c<br\/> *<br\/> * Created: 04.03.2018 09:57:00<br\/> * Author : Bernd<br\/> *\/ <br\/><br\/>#include &lt;avr\/io.h&gt;<br\/>#include &lt;util\/delay.h&gt;<br\/><br\/><br\/><br\/>int main(void)<br\/>{<br\/>\tDDRB = 0b00010111; \/\/ Datenrichtungsbit 1 = Ausgang<br\/>\tPORTB =0b00001000; \/\/ Pullup Wiederstand 1 = Ein (f\u00fcr Eingang)<br\/>  <br\/>\tint i=0; \/\/ einfacher Z\u00e4hler f\u00fcr W\u00fcrfel Augenanzahl<br\/>\t<br\/>while (1){ \/\/ Endlos Schleife<br\/><br\/>\t\tif(PINB != 0b00001000) \/\/ Abfrage ob Switch gedr\u00fcckt <br\/>\t\t\t{<br\/>\t\t\t\t<br\/>\t\t\t\t _delay_ms(60);\t \/\/ kurze Pause<br\/>\t\t\t\t\t\t\t\t<br\/>\t\t\t\tif (i==0)\t\/\/ i Auswerten<br\/>\t\t\t\t{<br\/>\t\t\t\t\t\t\/\/ Zahl 1 --&gt; i=0<br\/>\t\t\t\t\t\tPORTB =0b00000001;<br\/>\t\t\t\t\t<br\/>\t\t\t\t}<br\/>\t\t\t\tif (i==1)<br\/>\t\t\t\t{<br\/>\t\t\t\t\t\t\/\/ Zahl 2 --&gt; i=1<br\/>\t\t\t\t\t\tPORTB =0b00000100;<br\/>\t\t\t\t\t<br\/>\t\t\t\t}<br\/>\t\t\t\tif (i==2)<br\/>\t\t\t\t{<br\/>\t\t\t\t\t\t\/\/ Zahl 3 --&gt; i=2<br\/>\t\t\t\t\t\tPORTB =0b00000101;<br\/>\t\t\t\t\t\t<br\/>\t\t\t\t}<br\/>\t\t\t\tif (i==3)<br\/>\t\t\t\t{<br\/>\t\t\t\t\t\t\/\/ Zahl 4 --&gt; i=3<br\/>\t\t\t\t\t\tPORTB =0b00010100;<br\/>\t\t\t\t\t\t<br\/>\t\t\t\t}<br\/>\t\t\t\tif (i==4)<br\/>\t\t\t\t{<br\/>\t\t\t\t\t\t\/\/ Zahl 5 --&gt; i=4<br\/>\t\t\t\t\t\tPORTB =0b00010101;<br\/>\t\t\t\t\t\t<br\/>\t\t\t\t}<br\/>\t\t\t\tif (i==5)<br\/>\t\t\t\t{<br\/>\t\t\t\t\t\/\/Zahl 6 --&gt; i=5<br\/>\t\t\t\t\tPORTB =0b00010110;<br\/>\t\t\t\t<br\/>\t\t\t\t}<br\/>\t\t\t_delay_ms(1000); \/\/ kurze Pause, damit W\u00fcrfel angezeigt wird<br\/>\t\t\tPORTB =0b00001000; \/\/ nach Pause alle LEDs wieder ausschalten<br\/>\t\t\t<br\/>\t\t\t<br\/><br\/>\t\t\t}\t<br\/>\t\ti++;\t\/\/ bei jedem Schleifendurchlauf i Erh\u00f6hen <br\/>\t\tif (i==6) \/\/ Wenn i = 6 dann i wieder auf 0 setzen<br\/>\t\t\t{<br\/>\t\t\t i=0; <br\/>\t\t\t}<br\/>\t<br\/>    }<br\/>\treturn (0);<br\/>}<\/code><\/pre> <div class=\"code-embed-infos\"> <span class=\"code-embed-name\">Source zu AtTiny13_Wuerfel_v1_01<\/span> <\/div> <\/div>\n","protected":false},"excerpt":{"rendered":"<p>Das Krippenlicht muss warten. Nachdem mein Board so gut funktioniert hat, wollte ich ein lange von mir geplantes Projekt starten, &#8211; einen elektronischen W\u00fcrfel. Das Programm und die Platine sind recht trivial und meinen Elektronik- und Programmierkenntnissen entsprechend. Aber er &hellip; <a href=\"https:\/\/www.weise-bernd.de\/?p=669\">Weiterlesen <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[11,6,9],"tags":[],"class_list":["post-669","post","type-post","status-publish","format-standard","hentry","category-elektronik","category-microcontroller","category-wochenend-projekte"],"_links":{"self":[{"href":"https:\/\/www.weise-bernd.de\/index.php?rest_route=\/wp\/v2\/posts\/669","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.weise-bernd.de\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.weise-bernd.de\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.weise-bernd.de\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.weise-bernd.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=669"}],"version-history":[{"count":15,"href":"https:\/\/www.weise-bernd.de\/index.php?rest_route=\/wp\/v2\/posts\/669\/revisions"}],"predecessor-version":[{"id":689,"href":"https:\/\/www.weise-bernd.de\/index.php?rest_route=\/wp\/v2\/posts\/669\/revisions\/689"}],"wp:attachment":[{"href":"https:\/\/www.weise-bernd.de\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=669"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.weise-bernd.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=669"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.weise-bernd.de\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=669"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}