{"id":12,"date":"2023-10-25T09:40:54","date_gmt":"2023-10-25T09:40:54","guid":{"rendered":"https:\/\/chaosfreizeit.lobomat.de\/?p=12"},"modified":"2023-10-25T09:55:07","modified_gmt":"2023-10-25T09:55:07","slug":"der-7-segment-display-zaehler","status":"publish","type":"post","link":"https:\/\/chaosfreizeit.lobomat.de\/?p=12","title":{"rendered":"Der 7-Segment-Display-Z\u00e4hler"},"content":{"rendered":"\n<p>Die Idee: Zahlen auf einem 7-Segment-Display anzeigen. Die Steuerung soll ein Arduino Nano \u00fcbernehmen. <\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"768\" src=\"https:\/\/chaosfreizeit.lobomat.de\/wp-content\/uploads\/2023\/10\/IMG_2043-1024x768.jpeg\" alt=\"\" class=\"wp-image-13\" srcset=\"https:\/\/chaosfreizeit.lobomat.de\/wp-content\/uploads\/2023\/10\/IMG_2043-1024x768.jpeg 1024w, https:\/\/chaosfreizeit.lobomat.de\/wp-content\/uploads\/2023\/10\/IMG_2043-300x225.jpeg 300w, https:\/\/chaosfreizeit.lobomat.de\/wp-content\/uploads\/2023\/10\/IMG_2043-768x576.jpeg 768w, https:\/\/chaosfreizeit.lobomat.de\/wp-content\/uploads\/2023\/10\/IMG_2043-1536x1152.jpeg 1536w, https:\/\/chaosfreizeit.lobomat.de\/wp-content\/uploads\/2023\/10\/IMG_2043-2048x1536.jpeg 2048w, https:\/\/chaosfreizeit.lobomat.de\/wp-content\/uploads\/2023\/10\/IMG_2043-2000x1500.jpeg 2000w, https:\/\/chaosfreizeit.lobomat.de\/wp-content\/uploads\/2023\/10\/IMG_2043-128x96.jpeg 128w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Der rechte Taster erh\u00f6ht die Zahl um 1, der linke senkt sie um 1. Wenn man beide dr\u00fcckt wird die Zahl wieder auf 0 gesetzt.<\/p>\n\n\n\n<p>Anfangs gab es nur ein Displaymodul. Daher konnte man nur die Zahlen von 0-9 darstellen, allerdings wollte ich mehr anzeigen. Das Problem ist aber, eine 7-Segment-Anzeige braucht 7 Pins. Ein Arduino hat aber nur 13, also einen zu wenig um zwei Displays anzuschlie\u00dfen. Also musste ein zweiter Arduino her. Um noch mehr Zahlen anzuzeigen kam dann der Dritte.<\/p>\n\n\n\n<p>Die Funktionsweise:<\/p>\n\n\n\n<p>Wenn Wenn der erste Arduino bei 10 angekommen ist, setzt er sich auf null und sendet ein Signal an den zweiten. Wenn der bei 10 angekommen ist, sendet er ein Signal an den dritten. Der Quelllcode (auf allen der Gleiche):<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"cpp\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">int zahl = 0;\nint afs = -1;\nvoid setup() {\npinMode(2,OUTPUT);\npinMode(3,OUTPUT);\npinMode(4,OUTPUT);\npinMode(5,OUTPUT);\npinMode(6,OUTPUT);\npinMode(7,OUTPUT);\npinMode(8,OUTPUT);\npinMode(9,INPUT);\npinMode(10,INPUT);\npinMode(11,OUTPUT);\npinMode(12,OUTPUT);\n}\n\nvoid loop() {\nif (digitalRead(9) == HIGH and digitalRead(10) == HIGH)\n{\n  zahl = 0;\n  digitalWrite(11,HIGH);\n  digitalWrite(12,HIGH);\n  delay(100);\n  digitalWrite(11,LOW);\n  digitalWrite(12,LOW);\n}\nif (digitalRead(9) == HIGH and digitalRead(10) == LOW)\n{\n  zahl=zahl+1;\n  if (zahl == 10)\n  {\n    zahl = 0;\n    digitalWrite(11,HIGH);\n    delay(100);\n    digitalWrite(11,LOW);\n  }\n  delay(150);\n}\nif (digitalRead(10) == HIGH and digitalRead(9) == LOW)\n{\n  zahl=zahl-1;\n  if (zahl == -1)\n  {\n    zahl = 9;\n    digitalWrite(12,HIGH);\n    delay(100);\n    digitalWrite(12,LOW);\n  }\n  delay(150);\n}\nif (zahl != afs)\n{\n  if (zahl == 0)\n  {\n    digitalWrite(2,LOW);\n    digitalWrite(3,LOW);\n    digitalWrite(4,LOW);\n    digitalWrite(5,LOW);\n    digitalWrite(6,LOW);\n    digitalWrite(7,LOW);\n    digitalWrite(8,LOW);\n    digitalWrite(4,HIGH);\n    digitalWrite(5,HIGH);\n    digitalWrite(8,HIGH);\n    digitalWrite(7,HIGH);\n    digitalWrite(6,HIGH);\n    digitalWrite(3,HIGH);\n    afs = 0;\n  }\n  if (zahl == 1)\n  {\n    digitalWrite(2,LOW);\n    digitalWrite(3,LOW);\n    digitalWrite(4,LOW);\n    digitalWrite(5,LOW);\n    digitalWrite(6,LOW);\n    digitalWrite(7,LOW);\n    digitalWrite(8,LOW);\n    digitalWrite(5,HIGH);\n    digitalWrite(8,HIGH);\n    afs = 1;\n  }\n  if (zahl == 2)\n  {\n    digitalWrite(2,LOW);\n    digitalWrite(3,LOW);\n    digitalWrite(4,LOW);\n    digitalWrite(5,LOW);\n    digitalWrite(6,LOW);\n    digitalWrite(7,LOW);\n    digitalWrite(8,LOW);\n    digitalWrite(4,HIGH);\n    digitalWrite(5,HIGH);\n    digitalWrite(2,HIGH);\n    digitalWrite(6,HIGH);\n    digitalWrite(7,HIGH);\n    afs = 2;\n  }\n  if (zahl == 3)\n  {\n    digitalWrite(2,LOW);\n    digitalWrite(3,LOW);\n    digitalWrite(4,LOW);\n    digitalWrite(5,LOW);\n    digitalWrite(6,LOW);\n    digitalWrite(7,LOW);\n    digitalWrite(8,LOW);\n    digitalWrite(4,HIGH);\n    digitalWrite(5,HIGH);\n    digitalWrite(2,HIGH);\n    digitalWrite(8,HIGH);\n    digitalWrite(7,HIGH);\n    afs = 3;\n  }\n  if (zahl == 4)\n  {\n    digitalWrite(2,LOW);\n    digitalWrite(3,LOW);\n    digitalWrite(4,LOW);\n    digitalWrite(5,LOW);\n    digitalWrite(6,LOW);\n    digitalWrite(7,LOW);\n    digitalWrite(8,LOW);\n    digitalWrite(3,HIGH);\n    digitalWrite(2,HIGH);\n    digitalWrite(5,HIGH);\n    digitalWrite(8,HIGH);\n    afs = 4;\n  }\n  if (zahl == 5)\n  {\n    digitalWrite(2,LOW);\n    digitalWrite(3,LOW);\n    digitalWrite(4,LOW);\n    digitalWrite(5,LOW);\n    digitalWrite(6,LOW);\n    digitalWrite(7,LOW);\n    digitalWrite(8,LOW);\n    digitalWrite(3,HIGH);\n    digitalWrite(2,HIGH);\n    digitalWrite(8,HIGH);\n    digitalWrite(7,HIGH);\n    digitalWrite(4,HIGH);\n    afs = 5;\n  }\n  if (zahl == 6)\n  {\n    digitalWrite(2,LOW);\n    digitalWrite(3,LOW);\n    digitalWrite(4,LOW);\n    digitalWrite(5,LOW);\n    digitalWrite(6,LOW);\n    digitalWrite(7,LOW);\n    digitalWrite(8,LOW);\n    digitalWrite(4,HIGH);\n    digitalWrite(3,HIGH);\n    digitalWrite(6,HIGH);\n    digitalWrite(7,HIGH);\n    digitalWrite(8,HIGH);\n    digitalWrite(2,HIGH);\n    afs = 6;\n  }\n  if (zahl == 7)\n  {\n    digitalWrite(2,LOW);\n    digitalWrite(3,LOW);\n    digitalWrite(4,LOW);\n    digitalWrite(5,LOW);\n    digitalWrite(6,LOW);\n    digitalWrite(7,LOW);\n    digitalWrite(8,LOW);\n    digitalWrite(4,HIGH);\n    digitalWrite(5,HIGH);\n    digitalWrite(8,HIGH);\n    afs = 7;\n  }\n  if (zahl == 8)\n  {\n    digitalWrite(2,LOW);\n    digitalWrite(3,LOW);\n    digitalWrite(4,LOW);\n    digitalWrite(5,LOW);\n    digitalWrite(6,LOW);\n    digitalWrite(7,LOW);\n    digitalWrite(8,LOW);\n    digitalWrite(2,HIGH);\n    digitalWrite(3,HIGH);\n    digitalWrite(4,HIGH);\n    digitalWrite(5,HIGH);\n    digitalWrite(6,HIGH);\n    digitalWrite(7,HIGH);\n    digitalWrite(8,HIGH);\n    afs = 8;\n  }\n  if (zahl == 9)\n  {\n    digitalWrite(2,LOW);\n    digitalWrite(3,LOW);\n    digitalWrite(4,LOW);\n    digitalWrite(5,LOW);\n    digitalWrite(6,LOW);\n    digitalWrite(7,LOW);\n    digitalWrite(8,LOW);\n    digitalWrite(4,HIGH);\n    digitalWrite(3,HIGH);\n    digitalWrite(2,HIGH);\n    digitalWrite(5,HIGH);\n    digitalWrite(8,HIGH);\n    digitalWrite(7,HIGH);\n    afs = 9;\n  }\n}\n}<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Die Idee: Zahlen auf einem 7-Segment-Display anzeigen. Die Steuerung soll ein Arduino Nano \u00fcbernehmen. Der rechte Taster erh\u00f6ht die Zahl um 1, der linke senkt sie um 1. Wenn man beide dr\u00fcckt wird die Zahl wieder auf 0 gesetzt. Anfangs gab es nur ein Displaymodul. Daher konnte man nur die Zahlen von 0-9 darstellen, allerdings [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-12","post","type-post","status-publish","format-standard","hentry","category-uncategorized","has-post-thumbnail"],"_links":{"self":[{"href":"https:\/\/chaosfreizeit.lobomat.de\/index.php?rest_route=\/wp\/v2\/posts\/12","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/chaosfreizeit.lobomat.de\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/chaosfreizeit.lobomat.de\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/chaosfreizeit.lobomat.de\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/chaosfreizeit.lobomat.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=12"}],"version-history":[{"count":2,"href":"https:\/\/chaosfreizeit.lobomat.de\/index.php?rest_route=\/wp\/v2\/posts\/12\/revisions"}],"predecessor-version":[{"id":16,"href":"https:\/\/chaosfreizeit.lobomat.de\/index.php?rest_route=\/wp\/v2\/posts\/12\/revisions\/16"}],"wp:attachment":[{"href":"https:\/\/chaosfreizeit.lobomat.de\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=12"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/chaosfreizeit.lobomat.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=12"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/chaosfreizeit.lobomat.de\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=12"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}