{"id":1670,"date":"2013-08-14T18:39:27","date_gmt":"2013-08-14T16:39:27","guid":{"rendered":"http:\/\/blog.wenzlaff.de\/?p=1670"},"modified":"2021-11-22T17:16:07","modified_gmt":"2021-11-22T16:16:07","slug":"arduino-mega-projekt-ansteuerung-der-besuchten-urlaubsorte-auf-einer-weltkarte-mit-arduino-mega-mit-leds","status":"publish","type":"post","link":"http:\/\/blog.wenzlaff.de\/?p=1670","title":{"rendered":"Arduino Mega Projekt: Ansteuerung der besuchten Urlaubsorte auf einer Weltkarte mit Arduino Mega mit LEDs"},"content":{"rendered":"<p>Wollte lange schon mal, zur Erinnerung an <a href=\"http:\/\/kleinhirn.eu\/2015\/07\/08\/top-9-was-macht-guten-urlaub-aus\/\" target=\"_blank\" rel=\"noopener\">sch\u00f6ne<\/a> Urlaube eine Markierung auf der Weltkarte anbringen wo wir waren. Als IT-Berater muss es dann aber schon eine Micro-Computer gesteuerte Version sein. Ein roter Punkt reicht da nicht. <\/p>\n<p>Also hier das Ergebnis als Video, und weiter unten dann die Details:<\/p>\n<p><iframe loading=\"lazy\" width=\"640\" height=\"360\" src=\"http:\/\/www.youtube.com\/embed\/kKnfzr9z6PY?feature=player_detailpage\" frameborder=\"0\" allowfullscreen><\/iframe><\/p>\n<p>Also so sieht die Weltkarte von vorne aus:<br \/>\n<figure id=\"attachment_1676\" aria-describedby=\"caption-attachment-1676\" style=\"width: 640px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2013\/08\/Weltkarte6.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2013\/08\/Weltkarte6.jpg\" alt=\"Die Weltkarte in einem Bilderrahmen\" width=\"640\" height=\"464\" class=\"size-full wp-image-1676\" srcset=\"http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2013\/08\/Weltkarte6.jpg 640w, http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2013\/08\/Weltkarte6-300x217.jpg 300w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><\/a><figcaption id=\"caption-attachment-1676\" class=\"wp-caption-text\">Die Weltkarte in einem Bilderrahmen<\/figcaption><\/figure><\/p>\n<p>Hier die R\u00fcckseite. Ein Arduino Mega wurde verwendet, weil der bis zu 60 Ausg\u00e4nge hat, die einzeln angesteuert werden k\u00f6nnen.<\/p>\n<figure id=\"attachment_1672\" aria-describedby=\"caption-attachment-1672\" style=\"width: 640px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2013\/08\/Weltkarte2.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2013\/08\/Weltkarte2-e1376497286541.jpg\" alt=\"Die ganze R\u00fcckseite, es fehlen noch die analogen Eing\u00e4nge die als digitale Ausg\u00e4nge geschaltet werden\" width=\"640\" height=\"480\" class=\"size-full wp-image-1672\" srcset=\"http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2013\/08\/Weltkarte2-e1376497286541.jpg 640w, http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2013\/08\/Weltkarte2-e1376497286541-300x225.jpg 300w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><\/a><figcaption id=\"caption-attachment-1672\" class=\"wp-caption-text\">Die ganze R\u00fcckseite, es fehlen noch die analogen Eing\u00e4nge die als digitale Ausg\u00e4nge geschaltet werden<\/figcaption><\/figure>\n<p>An jedem besuchten Urlaubsort wurde ein 3 mm Loch gebohrt und eine LED reingesteckt. An einen Pin der LED wurde jeweils noch ein <strong>220 Ohm<\/strong> Widerstand angel\u00f6tet. Ja, es sieht etwas wild aus:<br \/>\n<figure id=\"attachment_1673\" aria-describedby=\"caption-attachment-1673\" style=\"width: 640px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2013\/08\/Weltkarte3.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2013\/08\/Weltkarte3.jpg\" alt=\"An jede LED kommt noch ein Widerstand\" width=\"640\" height=\"480\" class=\"size-full wp-image-1673\" srcset=\"http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2013\/08\/Weltkarte3.jpg 640w, http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2013\/08\/Weltkarte3-300x225.jpg 300w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><\/a><figcaption id=\"caption-attachment-1673\" class=\"wp-caption-text\">An jede LED kommt noch ein Widerstand<\/figcaption><\/figure><\/p>\n<p>Eine Nahaufnahme des Arduino Mega.<\/p>\n<p><a href=\"http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2013\/08\/Weltkarte5.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2013\/08\/Weltkarte5.jpg\" alt=\"Weltkarte5\" width=\"640\" height=\"480\" class=\"aligncenter size-full wp-image-1675\" srcset=\"http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2013\/08\/Weltkarte5.jpg 640w, http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2013\/08\/Weltkarte5-300x225.jpg 300w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><\/a><\/p>\n<p>Ein Reed-Kontakt habe ich noch an einem Interrupt-Eingang des Arduino geschaltet, so kann man von vorne mit einem Magnet \u00fcber den Null-Meridian fahren, und schon leuchten unsere <strong>TOP 3<\/strong> Urlaubsorte (<a href=\"http:\/\/reise.wenzlaff.de\/?s=hawai\" target=\"_blank\" rel=\"noopener\">Hawaii<\/a>, <a href=\"http:\/\/reise.wenzlaff.de\/japan\/\" target=\"_blank\" rel=\"noopener\">Tokio<\/a>, <a href=\"http:\/\/reise.wenzlaff.de\/seychellen\/\" target=\"_blank\" rel=\"noopener\">Seychellen<\/a>) permanent.<\/p>\n<figure id=\"attachment_1674\" aria-describedby=\"caption-attachment-1674\" style=\"width: 640px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2013\/08\/Weltkarte4.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2013\/08\/Weltkarte4.jpg\" alt=\"Reed-Kontakt f\u00fcr die TOP 3 Urlaubsorte\" width=\"640\" height=\"480\" class=\"size-full wp-image-1674\" srcset=\"http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2013\/08\/Weltkarte4.jpg 640w, http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2013\/08\/Weltkarte4-300x225.jpg 300w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><\/a><figcaption id=\"caption-attachment-1674\" class=\"wp-caption-text\">Reed-Kontakt f\u00fcr die TOP 3 Urlaubsorte<\/figcaption><\/figure>\n<p>Hier das C-Programm, welches in den Arduino geflasht wird und die Ansteuerung durchf\u00fchrt. <\/p>\n<p>Das ist die 1. Version, da werde ich noch einiges erg\u00e4nzen.<br \/>\n<!--more--><br \/>\n<code><br \/>\n<span style=\"color: #7E7E7E;\">\/*<\/span><br \/>\n<span style=\"color: #7E7E7E;\">&nbsp;TWWeltkarte&nbsp;1.0&nbsp;steuert&nbsp;die&nbsp;LED&nbsp;einer&nbsp;Urlaubsweltkarte&nbsp;an.<\/span><br \/>\n<span style=\"color: #7E7E7E;\">&nbsp;<\/span><br \/>\n<span style=\"color: #7E7E7E;\">&nbsp;Copyright&nbsp;(C)&nbsp;2013&nbsp;Thomas&nbsp;Wenzlaff&nbsp;<\/span><br \/>\n<span style=\"color: #7E7E7E;\">&nbsp;<\/span><br \/>\n<span style=\"color: #7E7E7E;\">&nbsp;This&nbsp;program&nbsp;is&nbsp;free&nbsp;software:&nbsp;you&nbsp;can&nbsp;redistribute&nbsp;it&nbsp;and\/or&nbsp;modify<\/span><br \/>\n<span style=\"color: #7E7E7E;\">&nbsp;it&nbsp;under&nbsp;the&nbsp;terms&nbsp;of&nbsp;the&nbsp;GNU&nbsp;General&nbsp;Public&nbsp;License&nbsp;as&nbsp;published&nbsp;by<\/span><br \/>\n<span style=\"color: #7E7E7E;\">&nbsp;the&nbsp;Free&nbsp;Software&nbsp;Foundation,&nbsp;either&nbsp;version&nbsp;3&nbsp;of&nbsp;the&nbsp;License,&nbsp;or<\/span><br \/>\n<span style=\"color: #7E7E7E;\">&nbsp;(at&nbsp;your&nbsp;option)&nbsp;any&nbsp;later&nbsp;version.<\/span><br \/>\n<span style=\"color: #7E7E7E;\">&nbsp;<\/span><br \/>\n<span style=\"color: #7E7E7E;\">&nbsp;This&nbsp;program&nbsp;is&nbsp;distributed&nbsp;in&nbsp;the&nbsp;hope&nbsp;that&nbsp;it&nbsp;will&nbsp;be&nbsp;useful,<\/span><br \/>\n<span style=\"color: #7E7E7E;\">&nbsp;but&nbsp;WITHOUT&nbsp;ANY&nbsp;WARRANTY;&nbsp;without&nbsp;even&nbsp;the&nbsp;implied&nbsp;warranty&nbsp;of<\/span><br \/>\n<span style=\"color: #7E7E7E;\">&nbsp;MERCHANTABILITY&nbsp;or&nbsp;FITNESS&nbsp;FOR&nbsp;A&nbsp;PARTICULAR&nbsp;PURPOSE.&nbsp;&nbsp;See&nbsp;the<\/span><br \/>\n<span style=\"color: #7E7E7E;\">&nbsp;GNU&nbsp;General&nbsp;Public&nbsp;License&nbsp;for&nbsp;more&nbsp;details.<\/span><br \/>\n<span style=\"color: #7E7E7E;\">&nbsp;<\/span><br \/>\n<span style=\"color: #7E7E7E;\">&nbsp;You&nbsp;should&nbsp;have&nbsp;received&nbsp;a&nbsp;copy&nbsp;of&nbsp;the&nbsp;GNU&nbsp;General&nbsp;Public&nbsp;License<\/span><br \/>\n<span style=\"color: #7E7E7E;\">&nbsp;along&nbsp;with&nbsp;this&nbsp;program.&nbsp;&nbsp;If&nbsp;not,&nbsp;see&nbsp;{http:\/\/www.gnu.org\/licenses\/}.&nbsp;<\/span><br \/>\n<span style=\"color: #7E7E7E;\">&nbsp;*\/<\/span><\/p>\n<p><span style=\"color: #7E7E7E;\">\/\/&nbsp;Reihenvolge&nbsp;so&nbsp;verdrahtet:<\/span><br \/>\n<span style=\"color: #7E7E7E;\">\/\/&nbsp;PWM&nbsp;Ports&nbsp;an&nbsp;Pin&nbsp;2-13<\/span><br \/>\n<span style=\"color: #7E7E7E;\">\/\/1&nbsp;Portugal&nbsp;<\/span><br \/>\n<span style=\"color: #7E7E7E;\">\/\/2&nbsp;Polen<\/span><br \/>\n<span style=\"color: #7E7E7E;\">\/\/3&nbsp;Balearen<\/span><br \/>\n<span style=\"color: #7E7E7E;\">\/\/4&nbsp;Bulgarien<\/span><br \/>\n<span style=\"color: #7E7E7E;\">\/\/5&nbsp;Zypern<\/span><br \/>\n<span style=\"color: #7E7E7E;\">\/\/6&nbsp;Kreta<\/span><br \/>\n<span style=\"color: #7E7E7E;\">\/\/7&nbsp;Madrid<\/span><br \/>\n<span style=\"color: #7E7E7E;\">\/\/8&nbsp;Athen<\/span><br \/>\n<span style=\"color: #7E7E7E;\">\/\/9&nbsp;D&#228;nemark<\/span><br \/>\n<span style=\"color: #7E7E7E;\">\/\/10&nbsp;Kanaren<\/span><br \/>\n<span style=\"color: #7E7E7E;\">\/\/11&nbsp;Irland<\/span><br \/>\n<span style=\"color: #7E7E7E;\">\/\/12&nbsp;London<\/span><br \/>\n<span style=\"color: #7E7E7E;\">\/\/&nbsp;Digitale&nbsp;Ports&nbsp;an&nbsp;Pin&nbsp;22-53<\/span><br \/>\n<span style=\"color: #7E7E7E;\">\/\/13&nbsp;Deutschland<\/span><br \/>\n<span style=\"color: #7E7E7E;\">\/\/14&nbsp;St.&nbsp;Lucia<\/span><br \/>\n<span style=\"color: #7E7E7E;\">\/\/15&nbsp;Thailand<\/span><br \/>\n<span style=\"color: #7E7E7E;\">\/\/16&nbsp;Domrep<\/span><br \/>\n<span style=\"color: #7E7E7E;\">\/\/17&nbsp;Singapur<\/span><br \/>\n<span style=\"color: #7E7E7E;\">\/\/18&nbsp;St.&nbsp;Martin<\/span><br \/>\n<span style=\"color: #7E7E7E;\">\/\/19&nbsp;Bali<\/span><br \/>\n<span style=\"color: #7E7E7E;\">\/\/20&nbsp;New&nbsp;York<\/span><br \/>\n<span style=\"color: #7E7E7E;\">\/\/21&nbsp;Hong&nbsp;Kong<\/span><br \/>\n<span style=\"color: #7E7E7E;\">\/\/22&nbsp;Hawaii<\/span><br \/>\n<span style=\"color: #7E7E7E;\">\/\/23&nbsp;Malediven<\/span><br \/>\n<span style=\"color: #7E7E7E;\">\/\/24&nbsp;Syschellen<\/span><br \/>\n<span style=\"color: #7E7E7E;\">\/\/25&nbsp;Sri&nbsp;Lanka<\/span><br \/>\n<span style=\"color: #7E7E7E;\">\/\/26&nbsp;Japan<\/span><br \/>\n<span style=\"color: #7E7E7E;\">\/\/27&nbsp;Estland,&nbsp;Talliin<\/span><br \/>\n<span style=\"color: #7E7E7E;\">\/\/28&nbsp;Mauritius<\/span><br \/>\n<span style=\"color: #7E7E7E;\">\/\/29&nbsp;St.Petersburg<\/span><br \/>\n<span style=\"color: #7E7E7E;\">\/\/30&nbsp;Orlando<\/span><br \/>\n<span style=\"color: #7E7E7E;\">\/\/31&nbsp;Stockholm,&nbsp;Schweden<\/span><br \/>\n<span style=\"color: #7E7E7E;\">\/\/32&nbsp;Curasao<\/span><br \/>\n<span style=\"color: #7E7E7E;\">\/\/33&nbsp;Israel<\/span><br \/>\n<span style=\"color: #7E7E7E;\">\/\/34&nbsp;St.&nbsp;Lucia<\/span><br \/>\n<span style=\"color: #7E7E7E;\">\/\/35&nbsp;Dubai<\/span><br \/>\n<span style=\"color: #7E7E7E;\">\/\/36&nbsp;San&nbsp;Francisko<\/span><br \/>\n<span style=\"color: #7E7E7E;\">\/\/37&nbsp;Ras&nbsp;El&nbsp;Kaiman<\/span><br \/>\n<span style=\"color: #7E7E7E;\">\/\/38&nbsp;Los&nbsp;Agelos<\/span><br \/>\n<span style=\"color: #7E7E7E;\">\/\/39&nbsp;Tunesien<\/span><br \/>\n<span style=\"color: #7E7E7E;\">\/\/40&nbsp;Aruba<\/span><br \/>\n<span style=\"color: #7E7E7E;\">\/\/41&nbsp;Malta<\/span><br \/>\n<span style=\"color: #7E7E7E;\">\/\/42&nbsp;Antigua<\/span><br \/>\n<span style=\"color: #7E7E7E;\">\/\/43&nbsp;&#196;gypen,&nbsp;Assuan<\/span><br \/>\n<span style=\"color: #7E7E7E;\">\/\/44&nbsp;Miami<\/span><br \/>\n<span style=\"color: #7E7E7E;\">\/\/&nbsp;Analoge&nbsp;Ausg&#228;nge<\/span><br \/>\n<span style=\"color: #7E7E7E;\">\/\/45&nbsp;Paris<\/span><br \/>\n<span style=\"color: #7E7E7E;\">\/\/46&nbsp;Rom<\/span><br \/>\n<span style=\"color: #7E7E7E;\">\/\/47&nbsp;Danzig<\/span><br \/>\n<span style=\"color: #7E7E7E;\">\/\/48&nbsp;Posen<\/span><br \/>\n<span style=\"color: #7E7E7E;\">\/\/49&nbsp;Amsterdam<\/span><\/p>\n<p><span style=\"color: #CC6600;\">int<\/span> pins[54]; <span style=\"color: #7E7E7E;\">\/\/ f&#252;r digitale Ausg&#228;nge<\/span><br \/>\n<span style=\"color: #CC6600;\">int<\/span> pinsPwd[12]; <span style=\"color: #7E7E7E;\">\/\/ f&#252;r die 12 PDW Ausg&#228;nge<\/span><\/p>\n<p>volatile&nbsp;<span style=\"color: #CC6600;\">int<\/span> <span style=\"color: #CC6600;\">status<\/span> = 0;<\/p>\n<p><span style=\"color: #CC6600;\">int<\/span> WARTE = 200;<\/p>\n<p><span style=\"color: #CC6600;\">void<\/span> <span style=\"color: #CC6600;\"><b>setup<\/b><\/span>() {<br \/>\n&nbsp;&nbsp;<span style=\"color: #CC6600;\"><b>Serial<\/b><\/span>.<span style=\"color: #CC6600;\">begin<\/span>(9600);<br \/>\n&nbsp;&nbsp;<span style=\"color: #CC6600;\">attachInterrupt<\/span>(2, reed, <span style=\"color: #006699;\">CHANGE<\/span>); <span style=\"color: #7E7E7E;\">\/\/ Interrupt 2 an Pin 2 <\/span><\/p>\n<p>&nbsp;&nbsp;<span style=\"color: #CC6600;\">for<\/span> (<span style=\"color: #CC6600;\">int<\/span> i = 0; i &lt; 54; i++)  {<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;pins[i]&nbsp;=i;&nbsp;<span style=\"color: #7E7E7E;\">\/\/ array ini <\/span><br \/>\n&nbsp;&nbsp;}<\/p>\n<p>&nbsp;&nbsp;<span style=\"color: #CC6600;\">for<\/span> (<span style=\"color: #CC6600;\">int<\/span> i = 22; i &lt; 54; i++)  {<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;<span style=\"color: #CC6600;\">pinMode<\/span>(pins[i], <span style=\"color: #006699;\">OUTPUT<\/span>);<br \/>\n&nbsp;&nbsp;}<\/p>\n<p>&nbsp;&nbsp;<span style=\"color: #CC6600;\">for<\/span> (<span style=\"color: #CC6600;\">int<\/span> i = 0; i &lt; 13; i++)  {<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;pinsPwd[i]&nbsp;=i;&nbsp;<span style=\"color: #7E7E7E;\">\/\/ array ini <\/span><br \/>\n&nbsp;&nbsp;}<br \/>\n&nbsp;&nbsp;<span style=\"color: #CC6600;\">for<\/span> (<span style=\"color: #CC6600;\">int<\/span> i = 2; i &lt; 15; i++)  {<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;<span style=\"color: #CC6600;\">pinMode<\/span>(pinsPwd[i], <span style=\"color: #006699;\">OUTPUT<\/span>);<br \/>\n&nbsp;&nbsp;}<\/p>\n<p>&nbsp;&nbsp;<span style=\"color: #7E7E7E;\">\/\/ 5 Analogen Eing&#228;nge als Ausgang setzen      <\/span><br \/>\n&nbsp;&nbsp;<span style=\"color: #CC6600;\">pinMode<\/span>(A0, <span style=\"color: #006699;\">OUTPUT<\/span>);<br \/>\n&nbsp;&nbsp;<span style=\"color: #CC6600;\">pinMode<\/span>(A1, <span style=\"color: #006699;\">OUTPUT<\/span>);<br \/>\n&nbsp;&nbsp;<span style=\"color: #CC6600;\">pinMode<\/span>(A2, <span style=\"color: #006699;\">OUTPUT<\/span>);<br \/>\n&nbsp;&nbsp;<span style=\"color: #CC6600;\">pinMode<\/span>(A3, <span style=\"color: #006699;\">OUTPUT<\/span>);<br \/>\n&nbsp;&nbsp;<span style=\"color: #CC6600;\">pinMode<\/span>(A4, <span style=\"color: #006699;\">OUTPUT<\/span>);<br \/>\n}<\/p>\n<p><span style=\"color: #CC6600;\">void<\/span> <span style=\"color: #CC6600;\"><b>loop<\/b><\/span>() {<\/p>\n<p>&nbsp;&nbsp;blinkDeutschland();<br \/>\n&nbsp;&nbsp;<span style=\"color: #CC6600;\">delay<\/span>(1000);<\/p>\n<p>&nbsp;&nbsp;lauflichtSchnell();<br \/>\n&nbsp;&nbsp;<span style=\"color: #CC6600;\">delay<\/span>(1000);<\/p>\n<p>&nbsp;&nbsp;lauflicht();<br \/>\n&nbsp;&nbsp;<span style=\"color: #CC6600;\">delay<\/span>(1000);<\/p>\n<p>&nbsp;&nbsp;<span style=\"color: #CC6600;\">for<\/span> (<span style=\"color: #CC6600;\">int<\/span> w =0; w &lt; 100; w++){<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;alleLaenderLauflicht();<br \/>\n&nbsp;&nbsp;}<\/p>\n<p>&nbsp;&nbsp;<span style=\"color: #CC6600;\">delay<\/span>(500);<\/p>\n<p>&nbsp;&nbsp;<span style=\"color: #CC6600;\">for<\/span> (<span style=\"color: #CC6600;\">int<\/span> w =0; w &lt; 50; w++){<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;alleLaenderBlinken();<br \/>\n&nbsp;&nbsp;}<\/p>\n<p>&nbsp;&nbsp;<span style=\"color: #CC6600;\">delay<\/span>(1000);<br \/>\n}<\/p>\n<p><span style=\"color: #CC6600;\">void<\/span> lauflicht(){<br \/>\n&nbsp;&nbsp;<span style=\"color: #CC6600;\">for<\/span> (<span style=\"color: #CC6600;\">int<\/span> i =1; i&lt; MAX_LAENDER; i++){<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;setKanalAn(i);<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;<span style=\"color: #CC6600;\">delay<\/span>(500);<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;setKanalAus(i);&nbsp;&nbsp;<br \/>\n&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br \/>\n}<\/p>\n<p><span style=\"color: #CC6600;\">void<\/span> lauflichtSchnell(){<br \/>\n&nbsp;&nbsp;<span style=\"color: #CC6600;\">for<\/span> (<span style=\"color: #CC6600;\">int<\/span> i =1; i&lt; MAX_LAENDER; i++){<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;setKanalAn(i);<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;<span style=\"color: #CC6600;\">delay<\/span>(100);<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;setKanalAus(i);&nbsp;&nbsp;<br \/>\n&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br \/>\n}<\/p>\n<p><span style=\"color: #CC6600;\">void<\/span> blinkDeutschland(){<br \/>\n&nbsp;&nbsp;<span style=\"color: #CC6600;\">for<\/span> (<span style=\"color: #CC6600;\">int<\/span> i=0; i&lt; 50; i++){<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;<span style=\"color: #CC6600;\">digitalWrite<\/span>(22, <span style=\"color: #006699;\">HIGH<\/span>);<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;<span style=\"color: #CC6600;\">delay<\/span>(WARTE);<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;<span style=\"color: #CC6600;\">digitalWrite<\/span>(22, <span style=\"color: #006699;\">LOW<\/span>);<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;<span style=\"color: #CC6600;\">delay<\/span>(WARTE);<br \/>\n&nbsp;&nbsp;}&nbsp;&nbsp;<br \/>\n}<\/p>\n<p><span style=\"color: #7E7E7E;\">\/\/&nbsp;diese&nbsp;Methode&nbsp;wird&nbsp;beim&nbsp;Interrupt&nbsp;aufgerufen,&nbsp;wenn&nbsp;das&nbsp;Reedrelais&nbsp;bet&#228;tigt&nbsp;wird<\/span><br \/>\n<span style=\"color: #CC6600;\">void<\/span> reed(){<br \/>\n&nbsp;&nbsp;setKanalAn(Japan);<br \/>\n&nbsp;&nbsp;setKanalAn(Hawaii);<br \/>\n&nbsp;&nbsp;setKanalAn(Seychellen);<br \/>\n}<\/p>\n<p><span style=\"color: #7E7E7E;\">\/\/&nbsp;schaltet&nbsp;Kanal&nbsp;1-49&nbsp;AN<\/span><br \/>\n<span style=\"color: #CC6600;\">void<\/span> setKanalAn(<span style=\"color: #CC6600;\">const<\/span> <span style=\"color: #CC6600;\">int<\/span> i){<br \/>\n&nbsp;&nbsp;<span style=\"color: #CC6600;\">int<\/span> kanal = getKanal(i);<br \/>\n&nbsp;&nbsp;<span style=\"color: #CC6600;\">if<\/span> (i &lt;= 12){<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;<span style=\"color: #CC6600;\">analogWrite<\/span>(kanal,255);<br \/>\n&nbsp;&nbsp;}<br \/>\n&nbsp;&nbsp;<span style=\"color: #CC6600;\">else<\/span> <span style=\"color: #CC6600;\">if<\/span> (i &gt;= 13 &amp;&amp; i &lt;= 44) {<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;<span style=\"color: #CC6600;\">digitalWrite<\/span>(kanal, <span style=\"color: #006699;\">HIGH<\/span>);<br \/>\n&nbsp;&nbsp;}<br \/>\n&nbsp;&nbsp;<span style=\"color: #CC6600;\">else<\/span> <span style=\"color: #CC6600;\">if<\/span> (i == 45){<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;<span style=\"color: #CC6600;\">digitalWrite<\/span>(A0, <span style=\"color: #006699;\">HIGH<\/span>);<br \/>\n&nbsp;&nbsp;}<br \/>\n&nbsp;&nbsp;<span style=\"color: #CC6600;\">else<\/span> <span style=\"color: #CC6600;\">if<\/span> (i == 46){<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;<span style=\"color: #CC6600;\">digitalWrite<\/span>(A1, <span style=\"color: #006699;\">HIGH<\/span>);<br \/>\n&nbsp;&nbsp;}<br \/>\n&nbsp;&nbsp;<span style=\"color: #CC6600;\">else<\/span> <span style=\"color: #CC6600;\">if<\/span> (i == 47){<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;<span style=\"color: #CC6600;\">digitalWrite<\/span>(A2, <span style=\"color: #006699;\">HIGH<\/span>);<br \/>\n&nbsp;&nbsp;}<br \/>\n&nbsp;&nbsp;<span style=\"color: #CC6600;\">else<\/span> <span style=\"color: #CC6600;\">if<\/span> (i == 48){<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;<span style=\"color: #CC6600;\">digitalWrite<\/span>(A3, <span style=\"color: #006699;\">HIGH<\/span>);<br \/>\n&nbsp;&nbsp;}<br \/>\n&nbsp;&nbsp;<span style=\"color: #CC6600;\">else<\/span> <span style=\"color: #CC6600;\">if<\/span> (i == 49){<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;<span style=\"color: #CC6600;\">digitalWrite<\/span>(A4, <span style=\"color: #006699;\">HIGH<\/span>);<br \/>\n&nbsp;&nbsp;}<br \/>\n}<\/p>\n<p><span style=\"color: #7E7E7E;\">\/\/&nbsp;schaltet&nbsp;Kanal&nbsp;1-49&nbsp;AUS<\/span><br \/>\n<span style=\"color: #CC6600;\">void<\/span> setKanalAus(<span style=\"color: #CC6600;\">const<\/span> <span style=\"color: #CC6600;\">int<\/span> i){<br \/>\n&nbsp;&nbsp;<span style=\"color: #CC6600;\">int<\/span> kanal = getKanal(i);<br \/>\n&nbsp;&nbsp;<span style=\"color: #CC6600;\">if<\/span> (i &lt;= 12){<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;<span style=\"color: #CC6600;\">analogWrite<\/span>(kanal,0);<br \/>\n&nbsp;&nbsp;}<br \/>\n&nbsp;&nbsp;<span style=\"color: #CC6600;\">else<\/span> <span style=\"color: #CC6600;\">if<\/span> (i &gt;= 13 &amp;&amp; i &lt;= 44) {<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;<span style=\"color: #CC6600;\">digitalWrite<\/span>(kanal, <span style=\"color: #006699;\">LOW<\/span>);<br \/>\n&nbsp;&nbsp;}<br \/>\n&nbsp;&nbsp;<span style=\"color: #CC6600;\">else<\/span> <span style=\"color: #CC6600;\">if<\/span> (i == 45){<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;<span style=\"color: #CC6600;\">digitalWrite<\/span>(A0, <span style=\"color: #006699;\">LOW<\/span>);<br \/>\n&nbsp;&nbsp;}<br \/>\n&nbsp;&nbsp;<span style=\"color: #CC6600;\">else<\/span> <span style=\"color: #CC6600;\">if<\/span> (i == 46){<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;<span style=\"color: #CC6600;\">digitalWrite<\/span>(A1, <span style=\"color: #006699;\">LOW<\/span>);<br \/>\n&nbsp;&nbsp;}<br \/>\n&nbsp;&nbsp;<span style=\"color: #CC6600;\">else<\/span> <span style=\"color: #CC6600;\">if<\/span> (i == 47){<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;<span style=\"color: #CC6600;\">digitalWrite<\/span>(A2, <span style=\"color: #006699;\">LOW<\/span>);<br \/>\n&nbsp;&nbsp;}<br \/>\n&nbsp;&nbsp;<span style=\"color: #CC6600;\">else<\/span> <span style=\"color: #CC6600;\">if<\/span> (i == 48){<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;<span style=\"color: #CC6600;\">digitalWrite<\/span>(A3, <span style=\"color: #006699;\">LOW<\/span>);<br \/>\n&nbsp;&nbsp;}<br \/>\n&nbsp;&nbsp;<span style=\"color: #CC6600;\">else<\/span> <span style=\"color: #CC6600;\">if<\/span> (i == 49){<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;<span style=\"color: #CC6600;\">digitalWrite<\/span>(A4, <span style=\"color: #006699;\">LOW<\/span>);<br \/>\n&nbsp;&nbsp;}<br \/>\n}<\/p>\n<p><span style=\"color: #7E7E7E;\">\/\/&nbsp;Mapping&nbsp;von&nbsp;1-49&nbsp;auf&nbsp;die&nbsp;jeweiligen&nbsp;Kan&#228;le&nbsp;1-12&nbsp;PWN&nbsp;und&nbsp;22-53&nbsp;Digital,&nbsp;und&nbsp;5&nbsp;Analoge&nbsp;A0-A4<\/span><br \/>\n<span style=\"color: #CC6600;\">int<\/span> getKanal(<span style=\"color: #CC6600;\">const<\/span> <span style=\"color: #CC6600;\">int<\/span> i) {<\/p>\n<p>&nbsp;&nbsp;<span style=\"color: #7E7E7E;\">\/\/ Umsetzung auf: 1-49<\/span><br \/>\n&nbsp;&nbsp;<span style=\"color: #7E7E7E;\">\/\/ Eingang: | 1-12 - 13-44 | 45-49<\/span><br \/>\n&nbsp;&nbsp;<span style=\"color: #7E7E7E;\">\/\/ | 12   | | 32           | 5<\/span><br \/>\n&nbsp;&nbsp;<span style=\"color: #7E7E7E;\">\/\/ | 1-12 | | 22-53        | 0-4<\/span><\/p>\n<p>&nbsp;&nbsp;<span style=\"color: #CC6600;\">int<\/span> kanal = 0;<\/p>\n<p>&nbsp;&nbsp;<span style=\"color: #CC6600;\">if<\/span> (i &lt;= 12) {<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;kanal&nbsp;=&nbsp;i&nbsp;+&nbsp;1;&nbsp;<span style=\"color: #7E7E7E;\">\/\/ PWM Kan&#228;le 1-12<\/span><br \/>\n&nbsp;&nbsp;}&nbsp;<br \/>\n&nbsp;&nbsp;<span style=\"color: #CC6600;\">else<\/span> <span style=\"color: #CC6600;\">if<\/span> (i &gt;= 13 &amp;&amp; i &lt;= 44) {<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;kanal&nbsp;=&nbsp;i&nbsp;+&nbsp;9;&nbsp;<span style=\"color: #7E7E7E;\">\/\/ Digitale Kan&#228;le 22-53<\/span><br \/>\n&nbsp;&nbsp;}&nbsp;<br \/>\n&nbsp;&nbsp;<span style=\"color: #CC6600;\">else<\/span> <span style=\"color: #CC6600;\">if<\/span> (i &gt; 44){<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;kanal&nbsp;=&nbsp;i&nbsp;-&nbsp;45;&nbsp;<span style=\"color: #7E7E7E;\">\/\/ Analoge Kan&#228;le A0-A4<\/span><br \/>\n&nbsp;&nbsp;}<br \/>\n&nbsp;&nbsp;<span style=\"color: #CC6600;\">return<\/span> kanal;<br \/>\n}<\/p>\n<p><span style=\"color: #CC6600;\">void<\/span> alleLaenderLauflicht(){<br \/>\n&nbsp;&nbsp;<span style=\"color: #CC6600;\">for<\/span> (<span style=\"color: #CC6600;\">int<\/span> i =1; i&lt;=MAX_LAENDER; i++){<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;setKanalAn(i);<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;<span style=\"color: #CC6600;\">delay<\/span>(1);<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;setKanalAus(i);<br \/>\n&nbsp;&nbsp;}<br \/>\n}<\/p>\n<p><span style=\"color: #CC6600;\">void<\/span> alleLaenderBlinken(){<br \/>\n&nbsp;&nbsp;<span style=\"color: #CC6600;\">for<\/span> (<span style=\"color: #CC6600;\">int<\/span> i =1; i&lt;=MAX_LAENDER; i++){<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;setKanalAn(i);<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;<span style=\"color: #CC6600;\">delay<\/span>(2);<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;setKanalAus(i);<br \/>\n&nbsp;&nbsp;}<br \/>\n}<br \/>\n<\/code><\/p>\n<p><strong>Verbesserungsvorschl\u00e4ge<\/strong>: Ich h\u00e4tte von Anfang an, low current LEDs (2mA) kaufen m\u00fcssen, dann h\u00e4tte ich auch alle gleichzeitig ansteuern k\u00f6nnne. Die Kosten heute auch nicht mehr viel mehr.<br \/>\nOder aber \u00fcber Treiber die LEDs ansteuern. Da die Ausg\u00e4nge des Arduino in Summe nicht mehr als <strong>150 mA<\/strong> ziehen d\u00fcrfen. Da meine LEDs 20 mA das St\u00fcck ziehen, kann ich nur ca. 6 gleichzeitig anschalten.<br \/>\nDeshalb schalte ich, wenn alle LEDs an sein sollen, jede nur f\u00fcr eine ms nacheinander an und dann wieder aus.<br \/>\nWerde das aber nicht mehr \u00e4ndern.<\/p>\n<p><strong>TODO<\/strong>:<br \/>\nDa das Netzkabel noch st\u00f6rt, werde ich wohl noch ein Batterie-Pack einbauen. Evl. auch noch einen Bewegungssensor, der die Karte automatisch anschaltet, wenn man davor steht.<br \/>\nIn der Zwischenzeit brauche ich auch eine L\u00f6sung mit mehr als 60 LEDs, da wir doch noch einige <a href=\"http:\/\/reise.wenzlaff.de\/reisetabelle\/\" target=\"_blank\" rel=\"noopener\">L\u00e4nder<\/a> mehr besucht haben.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Wollte lange schon mal, zur Erinnerung an sch\u00f6ne Urlaube eine Markierung auf der Weltkarte anbringen wo wir waren. Als IT-Berater muss es dann aber schon eine Micro-Computer gesteuerte Version sein. Ein roter Punkt reicht da nicht. Also hier das Ergebnis als Video, und weiter unten dann die Details: Also so sieht die Weltkarte von vorne &hellip; <\/p>\n<p class=\"link-more\"><a href=\"http:\/\/blog.wenzlaff.de\/?p=1670\" class=\"more-link\"><span class=\"screen-reader-text\">\u201eArduino Mega Projekt: Ansteuerung der besuchten Urlaubsorte auf einer Weltkarte mit Arduino Mega mit LEDs\u201c <\/span>weiterlesen<\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_import_markdown_pro_load_document_selector":0,"_import_markdown_pro_submit_text_textarea":"","footnotes":""},"categories":[562,538,566,79],"tags":[2188,776,565,713,228,341,777,779,775,778],"class_list":["post-1670","post","type-post","status-publish","format-standard","hentry","category-arduino","category-elektronik","category-hardware","category-programmierung","tag-arduino","tag-arduino-mega","tag-led","tag-mega","tag-projekt","tag-urlaub","tag-urlaubsorte","tag-urlaubsorte-auf-weltkarte","tag-weltkarte","tag-weltkarte-led"],"_links":{"self":[{"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=\/wp\/v2\/posts\/1670","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1670"}],"version-history":[{"count":0,"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=\/wp\/v2\/posts\/1670\/revisions"}],"wp:attachment":[{"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1670"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1670"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1670"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}