{"id":7,"date":"2011-09-10T13:09:07","date_gmt":"2011-09-10T13:09:07","guid":{"rendered":"http:\/\/localhost\/~pepegol\/WordPress\/?p=7"},"modified":"2020-03-29T01:56:14","modified_gmt":"2020-03-29T00:56:14","slug":"arduino-fotosensor","status":"publish","type":"post","link":"https:\/\/pepechorva.com\/myblog\/arduino-fotosensor\/","title":{"rendered":"Arduino + fotosensor"},"content":{"rendered":"<p>Los fotosensores son un tipo de resistencias variables que var\u00edan dependiendo de la luz que incide en ellos. Este fen\u00f3meno, unido a un conversor A\/D nos permite saber qu\u00e9 cantidad de luz incide contra \u00e9l, pudiendo servir para diversos proyectos (un robot que busca la luz, una fotocelula, un sensor de luz para subir\/bajar las persianas&#8230;). Aqu\u00ed voy a explicar a grosso modo c\u00f3mo conectarlo y explicar c\u00f3mo calcular el valor de la resistencia.<!--more--><\/p>\n<p>Para su montaje, necesitamos crear un divisor de tensi\u00f3n, ya que seg\u00fan la f\u00f3rmula&nbsp;<img decoding=\"async\" src=\"https:\/\/pepechorva.com\/myblog\/wp-content\/ql-cache\/quicklatex.com-51b954c9840e7dd009d85e2a28717de7_l3.png\" class=\"ql-img-inline-formula quicklatex-auto-format\" alt=\"&#86;&#61;&#73;&#32;&#92;&#99;&#100;&#111;&#116;&#32;&#82;\" title=\"Rendered by QuickLaTeX.com\" height=\"12\" width=\"74\" style=\"vertical-align: 0px;\"\/> &nbsp;no podemos sacar tal cual la resistencia que aporta en ese momento.<\/p>\n<p><img fetchpriority=\"high\" decoding=\"async\" class=\"size-medium wp-image-315 aligncenter\" src=\"http:\/\/pepechorva.com\/myblog\/wp-content\/uploads\/2011\/09\/divisor-de-tension_bb-300x208.png\" alt=\"\" width=\"300\" height=\"208\" srcset=\"https:\/\/pepechorva.com\/myblog\/wp-content\/uploads\/2011\/09\/divisor-de-tension_bb-300x208.png 300w, https:\/\/pepechorva.com\/myblog\/wp-content\/uploads\/2011\/09\/divisor-de-tension_bb.png 676w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/p>\n<p>Si solo ponemos el fotoresistor, a resistencia variar\u00e1, pero, si V = 5V y R es variable, cambiar\u00e1 la intensidad, pero la ca\u00edda de tensi\u00f3n (el voltaje para los amigos) seguir\u00e1 siendo 5V (o 0V, depende de como lo conectemos). Puede resultar complejo de entender, pero hay que tener en cuanta esto, <strong><span style=\"text-decoration: underline;\">GND siempre va a dar 0V.<\/span><\/strong> Si conectamos una resistencia desde Vcc (5V) directamente a GNC (0V), la ca\u00edda de tensi\u00f3n ser\u00e1 de 5V, con lo que si hacemos la lectura de datos antes de la resistencia, obtendremos 5V y si la hacemos por debajo, obtendremos 0V, para eso, ponemos una resistencia normal y nos ahorramos la pasta del fotorresistor (aunque sea barato, que lo es).<\/p>\n<p>Necesitamos un circuito que nos \u00abfrene\u00bb esta ca\u00edda de tensi\u00f3n, ese circuito se llama <span style=\"text-decoration: underline;\">divisor de tensi\u00f3n<\/span>;<\/p>\n<p><img decoding=\"async\" class=\"size-medium wp-image-316 aligncenter\" src=\"http:\/\/pepechorva.com\/myblog\/wp-content\/uploads\/2011\/09\/divisor-de-tension-alto-152x300.png\" alt=\"\" width=\"152\" height=\"300\" srcset=\"https:\/\/pepechorva.com\/myblog\/wp-content\/uploads\/2011\/09\/divisor-de-tension-alto-152x300.png 152w, https:\/\/pepechorva.com\/myblog\/wp-content\/uploads\/2011\/09\/divisor-de-tension-alto.png 213w\" sizes=\"(max-width: 152px) 100vw, 152px\" \/><\/p>\n<p>Lo que consigue este circuito es que entre VCC y GND haya \u00abalgo\u00bb que nos permita un punto intermedio para realizar las mediciones.<\/p>\n<p>Si el sensor es R1 y R2 = 10K\u03a9 tenemos que el voltaje que se aplica en la salida (V<sub>o<\/sub>) es variable, y podemos aplicar esta formula:<\/p>\n<p style=\"text-align: center;\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/pepechorva.com\/myblog\/wp-content\/ql-cache\/quicklatex.com-e4259776d1ca14086a9a4138d4982134_l3.png\" class=\"ql-img-inline-formula quicklatex-auto-format\" alt=\"&#86;&#95;&#123;&#111;&#117;&#116;&#125;&#61;&#92;&#100;&#102;&#114;&#97;&#99;&#123;&#82;&#50;&#125;&#123;&#82;&#49;&#43;&#82;&#50;&#125;&#42;&#86;&#105;&#110;\" title=\"Rendered by QuickLaTeX.com\" height=\"38\" width=\"173\" style=\"vertical-align: -14px;\"\/><\/p>\n<p>Siendo <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/pepechorva.com\/myblog\/wp-content\/ql-cache\/quicklatex.com-be32301eaacd3fdaabc4d47e5aeb9fe5_l3.png\" class=\"ql-img-inline-formula quicklatex-auto-format\" alt=\"&#86;&#95;&#123;&#111;&#117;&#116;&#125;\" title=\"Rendered by QuickLaTeX.com\" height=\"15\" width=\"30\" style=\"vertical-align: -3px;\"\/> el Voltaje que le pasamos al conversor A\/D (el voltaje variable).<\/p>\n<p>Tambien, si googleamos para buscar info del divisor de tensi\u00f3n, encontraremos este otro divisor:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-medium wp-image-317 aligncenter\" src=\"http:\/\/pepechorva.com\/myblog\/wp-content\/uploads\/2011\/09\/divisor-de-tension-bajo-149x300.png\" alt=\"\" width=\"149\" height=\"300\" srcset=\"https:\/\/pepechorva.com\/myblog\/wp-content\/uploads\/2011\/09\/divisor-de-tension-bajo-149x300.png 149w, https:\/\/pepechorva.com\/myblog\/wp-content\/uploads\/2011\/09\/divisor-de-tension-bajo.png 204w\" sizes=\"(max-width: 149px) 100vw, 149px\" \/><\/p>\n<p>La formula que rige a este divisor es la misma, en el primer montaje, la lectura de A\/D ir\u00e1 de 5V a 0V seg\u00fan la luz, cuanta m\u00e1s luz, m\u00e1s peque\u00f1o el valor de la resistencia, por tanto, menor ca\u00edda de tensi\u00f3n en <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/pepechorva.com\/myblog\/wp-content\/ql-cache\/quicklatex.com-be32301eaacd3fdaabc4d47e5aeb9fe5_l3.png\" class=\"ql-img-inline-formula quicklatex-auto-format\" alt=\"&#86;&#95;&#123;&#111;&#117;&#116;&#125;\" title=\"Rendered by QuickLaTeX.com\" height=\"15\" width=\"30\" style=\"vertical-align: -3px;\"\/>, esto es, m\u00e1s voltaje. En el segundo montaje, ser\u00e1 justo al rev\u00e9s, ira de 0V a 5V, 0V mucha luz, 5V poca luz.<\/p>\n<p>Bueno, despu\u00e9s de tanta chapa, vamos a verlo en acci\u00f3n, tanto con un mult\u00edmetro como con Arduino, el mult\u00edmetro nos mostrar\u00e1 los valores de la ca\u00edda de tensi\u00f3n, mientras que Arduino nos mostrar\u00e1 el valor convertido a num\u00e9rico por el CA\/D (alg\u00fan d\u00eda explicar\u00e9 su funcionamiento).<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-medium wp-image-319 aligncenter\" src=\"http:\/\/pepechorva.com\/myblog\/wp-content\/uploads\/2011\/09\/Foto0142-300x225.jpg\" alt=\"\" width=\"300\" height=\"225\" srcset=\"https:\/\/pepechorva.com\/myblog\/wp-content\/uploads\/2011\/09\/Foto0142-300x225.jpg 300w, https:\/\/pepechorva.com\/myblog\/wp-content\/uploads\/2011\/09\/Foto0142-768x576.jpg 768w, https:\/\/pepechorva.com\/myblog\/wp-content\/uploads\/2011\/09\/Foto0142-1024x768.jpg 1024w, https:\/\/pepechorva.com\/myblog\/wp-content\/uploads\/2011\/09\/Foto0142.jpg 2048w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/p>\n<p>Como es una resistencia variable, aqu\u00ed hay un peque\u00f1o v\u00eddeo para ver sus variaciones en acci\u00f3n \ud83d\ude42<\/p>\n<p><iframe title=\"divisor de tension.mp4\" width=\"1200\" height=\"900\" src=\"https:\/\/www.youtube.com\/embed\/ATOLp5hqOxc?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe><\/p>\n<p>Con el multimetro es importante un detallito:<\/p>\n<p>Para calcular el voltaje, no hay que hacerlo directamente de los bornes, mejor con una resistencia por medio (se trata de calcular la ca\u00edda de tensi\u00f3n).<\/p>\n<p>El c\u00f3digo utilizado en el Arduino es el siguiente:<\/p>\n<p>[code lang=\u00bbarduino\u00bb]<br \/>\n\/*<br \/>\nhttp:\/\/www.arduino.cc\/en\/Tutorial\/SwitchCase<br \/>\n*\/<\/p>\n<p>\/\/ Valores fijos para el calculo de rango<br \/>\nconst int sensorMin = 50; \/\/ valor minimo del sensor, calculado a traves de prueba<br \/>\nconst int sensorMax = 1200; \/\/ valor maximo del sensor, calculado a traves de prueba<\/p>\n<p>long previousMillis = 0;<\/p>\n<p>\/\/ the follow variables is a long because the time, measured in miliseconds,<br \/>\n\/\/ will quickly become a bigger number than can be stored in an int.<br \/>\nlong interval = 1000; \/\/ interval at which to blink (milliseconds)<\/p>\n<p>void setup() {<br \/>\n\/\/ inicializacion del puerto serie<br \/>\nSerial.begin(9600);<br \/>\n}<\/p>\n<p>void loop() {<br \/>\nunsigned long currentMillis = millis();<\/p>\n<p>if(currentMillis &#8211; previousMillis &gt; interval) {<br \/>\n\/\/ save the last time you blinked the LED<br \/>\npreviousMillis = currentMillis;<br \/>\n\/\/ lectura del sensor<br \/>\nint sensorReading = analogRead(A0);<br \/>\n\/\/ mapear el rango del sensor a cuatro valores (de 0 a 3):<br \/>\nint range = map(sensorReading, sensorMin, sensorMax, 0, 3);<br \/>\nSerial.println(\u00ablectura\u00bb);<br \/>\nSerial.println(sensorReading);<\/p>\n<p>\/\/ Con esto, el Arduino nos dira algo mas, aparte del valor de conversor<br \/>\n\/<br \/>\nswitch (range) {<br \/>\ncase 0: \/\/ Sensor tapado<br \/>\nSerial.println(\u00aboscuro\u00bb);<br \/>\nbreak;<br \/>\ncase 1: \/\/ al sensor le llega algo de luz<br \/>\nSerial.println(\u00abpenumbra\u00bb);<br \/>\nbreak;<br \/>\ncase 2: \/\/ sensor destapado<br \/>\nSerial.println(\u00abmedio\u00bb);<br \/>\nbreak;<br \/>\ncase 3: \/\/ sensor cerca de la ventana<br \/>\nSerial.println(\u00abbrillante\u00bb);<br \/>\nbreak;<br \/>\n}<br \/>\n}<br \/>\n}<br \/>\n[\/code]<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Los fotosensores son un tipo de resistencias variables que var\u00edan dependiendo de la luz que incide en ellos. Este fen\u00f3meno, unido a un conversor A\/D nos permite saber qu\u00e9 cantidad de luz incide contra \u00e9l, pudiendo servir para diversos proyectos (un robot que busca la luz, una fotocelula, un sensor de luz para subir\/bajar las persianas&#8230;). Aqu\u00ed voy a explicar a grosso modo c\u00f3mo conectarlo y explicar c\u00f3mo calcular el valor de la resistencia.<\/p>\n<p>\u00a0<\/p>\n","protected":false},"author":3,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[17],"tags":[26,31,34],"class_list":["post-7","post","type-post","status-publish","format-standard","hentry","category-cat-arduino","tag-arduino","tag-electronica","tag-s5-codigo"],"_links":{"self":[{"href":"https:\/\/pepechorva.com\/myblog\/wp-json\/wp\/v2\/posts\/7","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/pepechorva.com\/myblog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/pepechorva.com\/myblog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/pepechorva.com\/myblog\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/pepechorva.com\/myblog\/wp-json\/wp\/v2\/comments?post=7"}],"version-history":[{"count":5,"href":"https:\/\/pepechorva.com\/myblog\/wp-json\/wp\/v2\/posts\/7\/revisions"}],"predecessor-version":[{"id":405,"href":"https:\/\/pepechorva.com\/myblog\/wp-json\/wp\/v2\/posts\/7\/revisions\/405"}],"wp:attachment":[{"href":"https:\/\/pepechorva.com\/myblog\/wp-json\/wp\/v2\/media?parent=7"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/pepechorva.com\/myblog\/wp-json\/wp\/v2\/categories?post=7"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/pepechorva.com\/myblog\/wp-json\/wp\/v2\/tags?post=7"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}