{"id":5169,"date":"2020-05-17T15:00:05","date_gmt":"2020-05-17T15:00:05","guid":{"rendered":"https:\/\/ct1jqj.eu\/blog\/?p=5169"},"modified":"2020-05-17T15:00:05","modified_gmt":"2020-05-17T15:00:05","slug":"selector-de-entradas-com-arduino-versao-2","status":"publish","type":"post","link":"https:\/\/ct1jqj.eu\/?p=5169","title":{"rendered":"Selector de entradas com Arduino &#8211; Vers\u00e3o 2 (Pt.1)"},"content":{"rendered":"<div class=\"pld-like-dislike-wrap pld-template-4\">\r\n    <div class=\"pld-like-wrap  pld-common-wrap\">\r\n    <a href=\"javascript:void(0)\" class=\"pld-like-trigger pld-like-dislike-trigger  \" title=\"\" data-post-id=\"5169\" data-trigger-type=\"like\" data-restriction=\"cookie\" data-already-liked=\"0\">\r\n                        <i class=\"far fa-smile\"><\/i>\r\n                    <\/a>\r\n    <span class=\"pld-like-count-wrap pld-count-wrap\">1    <\/span>\r\n<\/div><div class=\"pld-dislike-wrap  pld-common-wrap\">\r\n    <a href=\"javascript:void(0)\" class=\"pld-dislike-trigger pld-like-dislike-trigger  \" title=\"\" data-post-id=\"5169\" data-trigger-type=\"dislike\" data-restriction=\"cookie\" data-already-liked=\"0\">\r\n                        <i class=\"far fa-frown\"><\/i>\r\n                    <\/a>\r\n    <span class=\"pld-dislike-count-wrap pld-count-wrap\"><\/span>\r\n<\/div><\/div><p style=\"text-align: justify;\">Desta vez n\u00e3o se trata do<em> update<\/em> ao projecto que iniciei anteriormente, uma vez que as placas ainda devem estar a meio caminho, mas uma nova vers\u00e3o, em que ampliei (na teoria, n\u00e3o implementado ainda no c\u00f3digo) as sa\u00eddas, mas reduzindo ao m\u00e1ximo o n\u00famero de pinos utilizados, e sem preju\u00edzo do circuito. O projecto original permitia 8 entradas e 3 sa\u00eddas de grava\u00e7\u00e3o, neste circuito utilizava 3 pinos para comandar um CD4051 para as entradas, e 2 pinos para comandar um CD4052 para as sa\u00eddas, juntando os 3 pinos para os selectores de entrada\/sa\u00edda de grava\u00e7\u00e3o e ainda 6 para o LCD&#8230; temos um total de 14 pinos! Nesta vers\u00e3o, ap\u00f3s explorar um pouco mais sobre os registos de deslocamento usei 2, sendo que apenas necessito de 3 pinos para os comandar. E mesmo que fosse apenas 1 ou 3931 registos, continuaria a usar os mesmos 3 pinos. \u00a0o LCD foi usado como I\u00b2C, o que me permitiu usar apenas 2 pinos para o controlar, com a particularidade de poder usar mais LCD&#8217;s com os mesmos 2 pinos, desde que os endere\u00e7os do bus sejam diferentes! N\u00e3o me vou debru\u00e7ar sobre este assunto nem sobre os registos, pois h\u00e1 literatura sobre os mesmos, mas essencialmente o que este circuito SIPO\u00b9 faz, \u00e9 que recebe os dados em s\u00e9rie, e apresenta-os em paralelo, chamemos-lhe assim! E como tal, aproveitei o c\u00f3digo utilizado anteriormente, acrescentei umas linhas para que o Arduino possa &#8220;saber&#8221; que existem registos de deslocamento, e assim foi, para que se possa entender um pouco melhor, deixo um pouco do c\u00f3digo utilizado antes:<\/p>\n<pre class=\"lang:c decode:true \" title=\"Selector com saida BCD\">if(RelaySource == 8) {\nlcd.setCursor(2,0);\nlcd.print(\"Tape 3\");\ndigitalWrite(OutputA, HIGH);\ndigitalWrite(OutputB, HIGH);\ndigitalWrite(OutputC, HIGH);\ndigitalWrite(OutputD, LOW);\n\nif(RelayRec == 1) {\nlcd.setCursor(2,1);\nlcd.print(\"Aux 1 \");\ndigitalWrite(OutputE, LOW);\ndigitalWrite(OutputF, LOW);<\/pre>\n<p>E um pouco do c\u00f3digo actual:<\/p>\n<pre class=\"lang:c decode:true \" title=\"Uso do shift register - 74HC595\">if(RelayNumber == 8) {\nshifter.setPin(0, HIGH); \/\/set pin 1 in the chain(second pin) HIGH\nshifter.setPin(1, LOW);\nshifter.setPin(2, LOW);\nshifter.setPin(3, LOW);\nshifter.setPin(4, LOW);\nshifter.setPin(5, LOW);\nshifter.setPin(6, LOW);\nshifter.setPin(7, LOW);\nshifter.write();\nlcd.clear();\nlcd.setCursor(0,0);\nlcd.print(\"[8] Thorens\");\n}\nif(RelayMoni == 1) {\nlcd.setCursor(0,1);\nlcd.print(\"&gt;&gt; TAPE 1\");\nshifter.setPin(8, HIGH);\u00a0\/\/set pin 8(1+7) in the second register HIGH\nshifter.setPin(9, LOW);\nshifter.setPin(10, LOW);\nshifter.setPin(11, LOW);\nshifter.write();<\/pre>\n<p style=\"text-align: justify;\">Como se pode ver, aparentemente tem mais linhas de c\u00f3digo, mas na realidade, enquanto que no primeiro exemplo estamos a usar 4 pinos para escrever as sa\u00eddas em BCD (A-D) do selector de entrada e mais 2 pinos (E-F) para comandar o selector de sa\u00edda, no segundo exemplo, estamos a usar 3 pinos e a comandar dois registos simultaneamente (E como j\u00e1 disse podia comandar uns quantos mais, usando os mesmos 3 pinos). Mas n\u00e3o me quero debru\u00e7ar muito mais aqui, como tal, deixo algumas fotografias da confus\u00e3o de fios e do &#8220;respons\u00e1vel&#8221; por simplificar o circuito, o que me permitiu ter 8 entradas e 8 sa\u00eddas para grava\u00e7\u00e3o, apesar de aqui s\u00f3 estar a usar 4:<\/p>\n\n\t\t<style>\n\t\t\t#gallery-1 {\n\t\t\t\tmargin: auto;\n\t\t\t}\n\t\t\t#gallery-1 .gallery-item {\n\t\t\t\tfloat: left;\n\t\t\t\tmargin-top: 10px;\n\t\t\t\ttext-align: center;\n\t\t\t\twidth: 33%;\n\t\t\t}\n\t\t\t#gallery-1 img {\n\t\t\t\tborder: 2px solid #cfcfcf;\n\t\t\t}\n\t\t\t#gallery-1 .gallery-caption {\n\t\t\t\tmargin-left: 0;\n\t\t\t}\n\t\t\t\/* see gallery_shortcode() in wp-includes\/media.php *\/\n\t\t<\/style>\n\t\t<div id='gallery-1' class='gallery galleryid-5169 gallery-columns-3 gallery-size-thumbnail'><dl class='gallery-item'>\n\t\t\t<dt class='gallery-icon landscape'>\n\t\t\t\t<a href='https:\/\/ct1jqj.eu\/?attachment_id=5174'><img loading=\"lazy\" decoding=\"async\" width=\"150\" height=\"150\" src=\"https:\/\/ct1jqj.eu\/wp-content\/uploads\/2020\/05\/photo_2020-05-17_15-47-22-1-150x150.jpg\" class=\"attachment-thumbnail size-thumbnail\" alt=\"\" \/><\/a>\n\t\t\t<\/dt><\/dl><dl class='gallery-item'>\n\t\t\t<dt class='gallery-icon landscape'>\n\t\t\t\t<a href='https:\/\/ct1jqj.eu\/?attachment_id=5175'><img loading=\"lazy\" decoding=\"async\" width=\"150\" height=\"150\" src=\"https:\/\/ct1jqj.eu\/wp-content\/uploads\/2020\/05\/photo_2020-05-17_15-47-25-1-150x150.jpg\" class=\"attachment-thumbnail size-thumbnail\" alt=\"\" \/><\/a>\n\t\t\t<\/dt><\/dl>\n\t\t\t<br style='clear: both' \/>\n\t\t<\/div>\n\n<p>\u00b9SIPO = Serial In, Parallel Out, ou seja, entrada s\u00e9rie e sa\u00edda em paralelo.<\/p>\n<p style=\"text-align: justify;\">Deixo o <a href=\"https:\/\/github.com\/nmbb\/arduinoaudioselector\" target=\"_blank\" rel=\"noopener noreferrer\">link<\/a> deste projecto no GitHub para quem quiser usar\/acompanhar e\/ou modificar de acordo com as necessidades. O esquema ser\u00e1 colocado ainda esta semana, espero! E n\u00e3o me canso de repetir, para quem pode&#8230; <strong>FIQUEM EM CASA<\/strong>!<\/p>\n<p>73&#8217;s<\/p>\n","protected":false},"excerpt":{"rendered":"<p>1 Desta vez n\u00e3o se trata do update ao projecto que iniciei anteriormente, uma vez que as placas ainda devem estar a meio caminho, mas uma nova vers\u00e3o, em que ampliei (na teoria, n\u00e3o implementado ainda no c\u00f3digo) as sa\u00eddas, mas reduzindo ao m\u00e1ximo o n\u00famero de pinos utilizados, e sem preju\u00edzo do circuito. O [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":4346,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[5,9,10],"tags":[52,77,189,207],"class_list":["post-5169","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-electronica","category-ideias-para-projecto","category-informacao","tag-74hc595","tag-arduino","tag-i2c","tag-lcd"],"_links":{"self":[{"href":"https:\/\/ct1jqj.eu\/index.php?rest_route=\/wp\/v2\/posts\/5169","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ct1jqj.eu\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/ct1jqj.eu\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/ct1jqj.eu\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/ct1jqj.eu\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=5169"}],"version-history":[{"count":0,"href":"https:\/\/ct1jqj.eu\/index.php?rest_route=\/wp\/v2\/posts\/5169\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/ct1jqj.eu\/index.php?rest_route=\/wp\/v2\/media\/4346"}],"wp:attachment":[{"href":"https:\/\/ct1jqj.eu\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=5169"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ct1jqj.eu\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=5169"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ct1jqj.eu\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=5169"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}