{"id":1384,"date":"2024-05-01T19:38:58","date_gmt":"2024-05-01T19:38:58","guid":{"rendered":"https:\/\/raymundopizano.com\/blog\/?p=1384"},"modified":"2024-09-15T21:05:57","modified_gmt":"2024-09-15T21:05:57","slug":"arduino-7-apagar-gradualmente-un-led","status":"publish","type":"post","link":"https:\/\/raymundopizano.com\/blog\/arduino\/arduino-7-apagar-gradualmente-un-led\/","title":{"rendered":"Arduino &#8211; 7. Apagar gradualmente un LED"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Hemos visto hasta el momento las salidas digitales las cuales solo tiene dos valores posibles <strong>1 HIGH<\/strong> (<em>encendido<\/em>) y <strong>0 LOW <\/strong>(<em>apagado<\/em>) con la funci\u00f3n <code data-enlighter-language=\"cpp\" class=\"EnlighterJSRAW\">digitalWrite(PIN, HIGH \/ LOW);<\/code>., tambi\u00e9n existen los tipos de salidas anal\u00f3gicas <strong>PWM <\/strong>(<em>Pulse Width Modulation \/ Modulaci\u00f3n por Ancho de Pulsos<\/em>) las cuales van de un rango de 0 a 255 y podemos usar la funci\u00f3n <code data-enlighter-language=\"cpp\" class=\"EnlighterJSRAW\">analogWrite(PIN,VALOR);<\/code> para controlar la salida.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">No todos los pines de nuestro Arduino se puede usar como salidas anal\u00f3gicas., las que son est\u00e1n marcadas con una ~ virgulilla a un lado del numero del pin.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"926\" height=\"676\" src=\"https:\/\/raymundopizano.com\/blog\/wp-content\/uploads\/2024\/04\/ArduinoUnoR3_PWM.jpg\" alt=\"\" class=\"wp-image-1387\" style=\"width:680px;height:auto\" srcset=\"https:\/\/raymundopizano.com\/blog\/wp-content\/uploads\/2024\/04\/ArduinoUnoR3_PWM.jpg 926w, https:\/\/raymundopizano.com\/blog\/wp-content\/uploads\/2024\/04\/ArduinoUnoR3_PWM-300x219.jpg 300w, https:\/\/raymundopizano.com\/blog\/wp-content\/uploads\/2024\/04\/ArduinoUnoR3_PWM-768x561.jpg 768w\" sizes=\"auto, (max-width: 926px) 100vw, 926px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Gracias a estas podemos controlar el voltaje que sale de un pin y son muy \u00fatiles para controlar la <strong>velocidad de un motor el\u00e9ctrico<\/strong>, el <strong>brillo de un LED<\/strong> y controlar un <strong>servomotor<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Modelos de tarjetas Pines y Frecuencias <\/h3>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>TARJETA<\/th><th>PWM PINS *<\/th><th>PWM FRECUENCIA<\/th><\/tr><\/thead><tbody><tr><td>UNO (R3 and earlier), Nano, Mini<\/td><td>3, 5, 6, 9, 10, 11<\/td><td>490 Hz (pins 5 and 6: 980 Hz)<\/td><\/tr><tr><td>UNO R4 (Minima, WiFi) *<\/td><td>3, 5, 6, 9, 10, 11<\/td><td>490 Hz<\/td><\/tr><tr><td>Mega<\/td><td>2 &#8211; 13, 44 &#8211; 46<\/td><td>490 Hz (pins 4 and 13: 980 Hz)<\/td><\/tr><tr><td>GIGA R1 **<\/td><td>2 &#8211; 13<\/td><td>500 Hz<\/td><\/tr><tr><td>Leonardo, Micro, Y\u00fan<\/td><td>3, 5, 6, 9, 10, 11, 13<\/td><td>490 Hz (pins 3 and 11: 980 Hz)<\/td><\/tr><tr><td>UNO WiFi Rev2, Nano Every<\/td><td>3, 5, 6, 9, 10<\/td><td>976 Hz<\/td><\/tr><tr><td>MKR boards *<\/td><td>0 &#8211; 8, 10, A3, A4<\/td><td>732 Hz<\/td><\/tr><tr><td>MKR1000 WiFi **<\/td><td>0 &#8211; 8, 10, 11, A3, A4<\/td><td>732 Hz<\/td><\/tr><tr><td>Zero **<\/td><td>3 &#8211; 13, A0, A1<\/td><td>732 Hz<\/td><\/tr><tr><td>Nano 33 IoT **<\/td><td>2, 3, 5, 6, 9 &#8211; 12, A2, A3, A5<\/td><td>732 Hz<\/td><\/tr><tr><td>Nano 33 BLE\/BLE Sense ****<\/td><td>1 &#8211; 13, A0 &#8211; A7<\/td><td>500 Hz<\/td><\/tr><tr><td>Due ***<\/td><td>2-13<\/td><td>1000 Hz<\/td><\/tr><tr><td>101<\/td><td>3, 5, 6, 9<\/td><td>pins 3 and 9: 490 Hz, pins 5 and 6: 980 Hz<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u00bfC\u00f3mo usar la funci\u00f3n analogWrite()?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Para generar se\u00f1ales <strong>PWM <\/strong>con Arduino se utiliza la funci\u00f3n <code data-enlighter-language=\"cpp\" class=\"EnlighterJSRAW\">analogWrite(PIN, VALOR);<\/code> donde el <em>PIN<\/em> puede ser 3, 5, 6, 9, 10 y 11 (En nuestro Arduino Uno R3), y el <em>VALOR <\/em>puede ir de 0 a 255, como podemos verlo en la siguiente tabla:<\/p>\n\n\n\n<figure class=\"wp-block-table is-style-stripes\"><table class=\"has-fixed-layout\"><thead><tr><th><strong>Argumento analogWrite()<\/strong><\/th><th><strong>Ciclo de trabajo<\/strong><\/th><th><strong>Voltaje promedio<\/strong><\/th><\/tr><\/thead><tbody><tr><td>0<\/td><td>0%<\/td><td>0 V<\/td><\/tr><tr><td>63<\/td><td>25%<\/td><td>1,25 V<\/td><\/tr><tr><td>76<\/td><td>30%<\/td><td>1,5 V<\/td><\/tr><tr><td>127<\/td><td>50%<\/td><td>2,5 V<\/td><\/tr><tr><td>178<\/td><td>70%<\/td><td>3,5 V<\/td><\/tr><tr><td>191<\/td><td>75%<\/td><td>3,75 V<\/td><\/tr><tr><td>229<\/td><td>90%<\/td><td>4,5 V<\/td><\/tr><tr><td>255<\/td><td>100%<\/td><td>5 V<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Apagado gradual de un LED<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Requerimos<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Tarjeta UNO R3<\/li>\n\n\n\n<li>Protoboard<\/li>\n\n\n\n<li>Led 5mm rojo<\/li>\n\n\n\n<li>Resistencia de 330\u03a9 Ohms<\/li>\n\n\n\n<li>Dos cables macho para protoboard o dupont<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Conectamos un cable del Pin GND de la Tarjeta UNO R3 al c\u00e1todo (cable negro) y el Pin 11 a la resistencia, y la resistencia al \u00e1nodo del LED.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"725\" height=\"453\" src=\"https:\/\/raymundopizano.com\/blog\/wp-content\/uploads\/2024\/05\/Apagado-gradual-de-un-LED.png\" alt=\"\" class=\"wp-image-1411\" srcset=\"https:\/\/raymundopizano.com\/blog\/wp-content\/uploads\/2024\/05\/Apagado-gradual-de-un-LED.png 725w, https:\/\/raymundopizano.com\/blog\/wp-content\/uploads\/2024\/05\/Apagado-gradual-de-un-LED-300x187.png 300w\" sizes=\"auto, (max-width: 725px) 100vw, 725px\" \/><\/figure>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#F8F8F2;--cbp-line-number-width:calc(2 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#272822\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" data-code=\"\/\/ Declaramos pinLed constante de tipo byte\n\/\/ Y le asignamos el pin 11 que es una salida de tipo ~ PWM \nconst byte pinLed = 11;\n\nvoid setup()\n{\n  \/\/ Inicializamos el pin digital 11 de salida\n  pinMode(pinLed, OUTPUT);\n}\n\nvoid loop()\n{\n  \n  \/\/ analogWrite nos permite controlar el voltage\n  \/\/ de 0 apagado a 100% los 5V\n  \n  \/\/ le damos un 60% de brillo al LED durante 200 milisegundos\n  analogWrite(pinLed,60);\n  delay(200);\n  analogWrite(pinLed,50);\n  delay(200);\n  analogWrite(pinLed,40);\n  delay(200);\n  analogWrite(pinLed,30);\n  delay(200);\n  analogWrite(pinLed,20);\n  delay(200);\n  analogWrite(pinLed,10);\n  delay(200);\n  \/\/ hasta llegar a 0 con pausas de tiempo\n  analogWrite(pinLed,0);\n  delay(1000);\n  \/\/ y se reinicia el ciclo loop\n}\" style=\"color:#F8F8F2;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki monokai\" style=\"background-color: #272822\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #88846F\">\/\/ Declaramos pinLed constante de tipo byte<\/span><\/span>\n<span class=\"line\"><span style=\"color: #88846F\">\/\/ Y le asignamos el pin 11 que es una salida de tipo ~ PWM <\/span><\/span>\n<span class=\"line\"><span style=\"color: #F92672\">const<\/span><span style=\"color: #F8F8F2\"> byte pinLed <\/span><span style=\"color: #F92672\">=<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #AE81FF\">11<\/span><span style=\"color: #F8F8F2\">;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #66D9EF; font-style: italic\">void<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #A6E22E\">setup<\/span><span style=\"color: #F8F8F2\">()<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #88846F\">  \/\/ Inicializamos el pin digital 11 de salida<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">  <\/span><span style=\"color: #A6E22E\">pinMode<\/span><span style=\"color: #F8F8F2\">(pinLed, OUTPUT);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">}<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #66D9EF; font-style: italic\">void<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #A6E22E\">loop<\/span><span style=\"color: #F8F8F2\">()<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">  <\/span><\/span>\n<span class=\"line\"><span style=\"color: #88846F\">  \/\/ analogWrite nos permite controlar el voltage<\/span><\/span>\n<span class=\"line\"><span style=\"color: #88846F\">  \/\/ de 0 apagado a 100% los 5V<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">  <\/span><\/span>\n<span class=\"line\"><span style=\"color: #88846F\">  \/\/ le damos un 60% de brillo al LED durante 200 milisegundos<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">  <\/span><span style=\"color: #A6E22E\">analogWrite<\/span><span style=\"color: #F8F8F2\">(pinLed,<\/span><span style=\"color: #AE81FF\">60<\/span><span style=\"color: #F8F8F2\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">  <\/span><span style=\"color: #A6E22E\">delay<\/span><span style=\"color: #F8F8F2\">(<\/span><span style=\"color: #AE81FF\">200<\/span><span style=\"color: #F8F8F2\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">  <\/span><span style=\"color: #A6E22E\">analogWrite<\/span><span style=\"color: #F8F8F2\">(pinLed,<\/span><span style=\"color: #AE81FF\">50<\/span><span style=\"color: #F8F8F2\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">  <\/span><span style=\"color: #A6E22E\">delay<\/span><span style=\"color: #F8F8F2\">(<\/span><span style=\"color: #AE81FF\">200<\/span><span style=\"color: #F8F8F2\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">  <\/span><span style=\"color: #A6E22E\">analogWrite<\/span><span style=\"color: #F8F8F2\">(pinLed,<\/span><span style=\"color: #AE81FF\">40<\/span><span style=\"color: #F8F8F2\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">  <\/span><span style=\"color: #A6E22E\">delay<\/span><span style=\"color: #F8F8F2\">(<\/span><span style=\"color: #AE81FF\">200<\/span><span style=\"color: #F8F8F2\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">  <\/span><span style=\"color: #A6E22E\">analogWrite<\/span><span style=\"color: #F8F8F2\">(pinLed,<\/span><span style=\"color: #AE81FF\">30<\/span><span style=\"color: #F8F8F2\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">  <\/span><span style=\"color: #A6E22E\">delay<\/span><span style=\"color: #F8F8F2\">(<\/span><span style=\"color: #AE81FF\">200<\/span><span style=\"color: #F8F8F2\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">  <\/span><span style=\"color: #A6E22E\">analogWrite<\/span><span style=\"color: #F8F8F2\">(pinLed,<\/span><span style=\"color: #AE81FF\">20<\/span><span style=\"color: #F8F8F2\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">  <\/span><span style=\"color: #A6E22E\">delay<\/span><span style=\"color: #F8F8F2\">(<\/span><span style=\"color: #AE81FF\">200<\/span><span style=\"color: #F8F8F2\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">  <\/span><span style=\"color: #A6E22E\">analogWrite<\/span><span style=\"color: #F8F8F2\">(pinLed,<\/span><span style=\"color: #AE81FF\">10<\/span><span style=\"color: #F8F8F2\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">  <\/span><span style=\"color: #A6E22E\">delay<\/span><span style=\"color: #F8F8F2\">(<\/span><span style=\"color: #AE81FF\">200<\/span><span style=\"color: #F8F8F2\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #88846F\">  \/\/ hasta llegar a 0 con pausas de tiempo<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">  <\/span><span style=\"color: #A6E22E\">analogWrite<\/span><span style=\"color: #F8F8F2\">(pinLed,<\/span><span style=\"color: #AE81FF\">0<\/span><span style=\"color: #F8F8F2\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">  <\/span><span style=\"color: #A6E22E\">delay<\/span><span style=\"color: #F8F8F2\">(<\/span><span style=\"color: #AE81FF\">1000<\/span><span style=\"color: #F8F8F2\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #88846F\">  \/\/ y se reinicia el ciclo loop<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">}<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">Presiona el bot\u00f3n de <code data-enlighter-language=\"generic\" class=\"EnlighterJSRAW\">Iniciar simulaci\u00f3n<\/code>, ve como enciende y apaga el LED, luego clic a <code data-enlighter-language=\"generic\" class=\"EnlighterJSRAW\">&lt;\/ C\u00f3digo<\/code>.<\/p>\n\n\n\n<iframe loading=\"lazy\" width=\"725\" height=\"453\" src=\"https:\/\/www.tinkercad.com\/embed\/c4DPxOpw21L?editbtn=1\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"no\"><\/iframe>\n\n\n\n<p class=\"has-text-align-center wp-block-paragraph\"><a href=\"https:\/\/www.tinkercad.com\/embed\/c4DPxOpw21L\" target=\"_blank\" rel=\"noreferrer noopener\">Ver el ejercicio en una nueva ventana<\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Como buena practica en nuestro c\u00f3digo &lt;&lt; Entre menos l\u00edneas mejor &gt;&gt;, vamos a mejorar nuestro c\u00f3digo agregando una condicional <code data-enlighter-language=\"cpp\" class=\"EnlighterJSRAW\">if<\/code>.<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#F8F8F2;--cbp-line-number-width:calc(2 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#272822\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" data-code=\"\/\/ Declaramos una variable pinLed constante tipo byte\n\/\/ del Pin 11 que es una salida ~ PWM\nconst byte pinLed = 11;\n\/\/ Declaramos brillo de tipo entero y le asignamos\n\/\/ el valor de 60\nint brillo = 60;\n\nvoid setup(){\n  \/\/ Inicializamos el pin digital 11 de salida\n  pinMode(pinLed, OUTPUT);\n}\n\nvoid loop(){\n  \/*\n   La funcion analogWrite nos permite\n   controlar el voltaje que sale de un pin\n  *\/ \n  \/\/ inicia con analogWrite(11,60);\n  analogWrite(pinLed,brillo);\n  delay(200); \/\/esperamos 200 milisegundos\n  \/\/ si brillo es igual a cero\n  if(brillo == 0){\n    \/\/ incrementamos la espera a 1000\n    delay(1000);\n    \/\/ y le asignamos el valor de 60\n    brillo = 60;\n  \/\/ si no\n  } else {\n    \/\/ decrementamos 10 | 60-10 | hasta ... | 10-10 = 0 \n    \/\/ Es lo mismo que brillo = brillo - 10;\n    brillo -= 10;\n  }\n  \n}\" style=\"color:#F8F8F2;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki monokai\" style=\"background-color: #272822\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #88846F\">\/\/ Declaramos una variable pinLed constante tipo byte<\/span><\/span>\n<span class=\"line\"><span style=\"color: #88846F\">\/\/ del Pin 11 que es una salida ~ PWM<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F92672\">const<\/span><span style=\"color: #F8F8F2\"> byte pinLed <\/span><span style=\"color: #F92672\">=<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #AE81FF\">11<\/span><span style=\"color: #F8F8F2\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #88846F\">\/\/ Declaramos brillo de tipo entero y le asignamos<\/span><\/span>\n<span class=\"line\"><span style=\"color: #88846F\">\/\/ el valor de 60<\/span><\/span>\n<span class=\"line\"><span style=\"color: #66D9EF; font-style: italic\">int<\/span><span style=\"color: #F8F8F2\"> brillo <\/span><span style=\"color: #F92672\">=<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #AE81FF\">60<\/span><span style=\"color: #F8F8F2\">;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #66D9EF; font-style: italic\">void<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #A6E22E\">setup<\/span><span style=\"color: #F8F8F2\">(){<\/span><\/span>\n<span class=\"line\"><span style=\"color: #88846F\">  \/\/ Inicializamos el pin digital 11 de salida<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">  <\/span><span style=\"color: #A6E22E\">pinMode<\/span><span style=\"color: #F8F8F2\">(pinLed, OUTPUT);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">}<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #66D9EF; font-style: italic\">void<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #A6E22E\">loop<\/span><span style=\"color: #F8F8F2\">(){<\/span><\/span>\n<span class=\"line\"><span style=\"color: #88846F\">  \/*<\/span><\/span>\n<span class=\"line\"><span style=\"color: #88846F\">   La funcion analogWrite nos permite<\/span><\/span>\n<span class=\"line\"><span style=\"color: #88846F\">   controlar el voltaje que sale de un pin<\/span><\/span>\n<span class=\"line\"><span style=\"color: #88846F\">  *\/<\/span><span style=\"color: #F8F8F2\"> <\/span><\/span>\n<span class=\"line\"><span style=\"color: #88846F\">  \/\/ inicia con analogWrite(11,60);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">  <\/span><span style=\"color: #A6E22E\">analogWrite<\/span><span style=\"color: #F8F8F2\">(pinLed,brillo);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">  <\/span><span style=\"color: #A6E22E\">delay<\/span><span style=\"color: #F8F8F2\">(<\/span><span style=\"color: #AE81FF\">200<\/span><span style=\"color: #F8F8F2\">);<\/span><span style=\"color: #88846F\"> \/\/esperamos 200 milisegundos<\/span><\/span>\n<span class=\"line\"><span style=\"color: #88846F\">  \/\/ si brillo es igual a cero<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">  <\/span><span style=\"color: #F92672\">if<\/span><span style=\"color: #F8F8F2\">(brillo <\/span><span style=\"color: #F92672\">==<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #AE81FF\">0<\/span><span style=\"color: #F8F8F2\">){<\/span><\/span>\n<span class=\"line\"><span style=\"color: #88846F\">    \/\/ incrementamos la espera a 1000<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">    <\/span><span style=\"color: #A6E22E\">delay<\/span><span style=\"color: #F8F8F2\">(<\/span><span style=\"color: #AE81FF\">1000<\/span><span style=\"color: #F8F8F2\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #88846F\">    \/\/ y le asignamos el valor de 60<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">    brillo <\/span><span style=\"color: #F92672\">=<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #AE81FF\">60<\/span><span style=\"color: #F8F8F2\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #88846F\">  \/\/ si no<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">  } <\/span><span style=\"color: #F92672\">else<\/span><span style=\"color: #F8F8F2\"> {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #88846F\">    \/\/ decrementamos 10 | 60-10 | hasta ... | 10-10 = 0 <\/span><\/span>\n<span class=\"line\"><span style=\"color: #88846F\">    \/\/ Es lo mismo que brillo = brillo - 10;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">    brillo <\/span><span style=\"color: #F92672\">-=<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #AE81FF\">10<\/span><span style=\"color: #F8F8F2\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">  }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">  <\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">}<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">Presiona el bot\u00f3n de <code data-enlighter-language=\"generic\" class=\"EnlighterJSRAW\">Iniciar simulaci\u00f3n<\/code>, ve como enciende y apaga el LED, luego clic a <code data-enlighter-language=\"generic\" class=\"EnlighterJSRAW\">&lt;\/ C\u00f3digo<\/code>.<\/p>\n\n\n\n<iframe loading=\"lazy\" width=\"725\" height=\"453\" src=\"https:\/\/www.tinkercad.com\/embed\/lY2pSuRj1i8?editbtn=1\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"no\"><\/iframe>\n\n\n\n<p class=\"has-text-align-center wp-block-paragraph\"><a href=\"https:\/\/www.tinkercad.com\/embed\/lY2pSuRj1i8\" target=\"_blank\" rel=\"noreferrer noopener\">Ver el ejercicio en una nueva ventana<\/a><\/p>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-f56f613f wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-embed is-type-wp-embed is-provider-raymundo-pizano wp-block-embed-raymundo-pizano\"><div class=\"wp-block-embed__wrapper\">\n<blockquote class=\"wp-embedded-content\" data-secret=\"NrgU0iOM8S\"><a href=\"https:\/\/raymundopizano.com\/blog\/arduino\/arduino-6-ejercicio-semaforo-y-dos-semaforos\/\">Arduino &#8211; 6. Ejercicio Sem\u00e1foro<\/a><\/blockquote><iframe loading=\"lazy\" class=\"wp-embedded-content\" sandbox=\"allow-scripts\" security=\"restricted\" style=\"position: absolute; visibility: hidden;\" title=\"\u00abArduino &#8211; 6. Ejercicio Sem\u00e1foro\u00bb \u2014 Raymundo Pizano\" src=\"https:\/\/raymundopizano.com\/blog\/arduino\/arduino-6-ejercicio-semaforo-y-dos-semaforos\/embed\/#?secret=GPiSMGvjuN#?secret=NrgU0iOM8S\" data-secret=\"NrgU0iOM8S\" width=\"500\" height=\"282\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"no\"><\/iframe>\n<\/div><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/raymundopizano.com\/blog\/arduino\/arduino-6-ejercicio-semaforo-y-dos-semaforos\/\">&lt;&lt; Anterior<\/a><\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-embed is-type-wp-embed is-provider-raymundo-pizano wp-block-embed-raymundo-pizano\"><div class=\"wp-block-embed__wrapper\">\n<blockquote class=\"wp-embedded-content\" data-secret=\"K7J1GOuQj9\"><a href=\"https:\/\/raymundopizano.com\/blog\/arduino\/arduino-8-push-buttons-encender-y-apagar-un-led\/\">Arduino \u2013 8. Push Buttons, encender y apagar un LED<\/a><\/blockquote><iframe loading=\"lazy\" class=\"wp-embedded-content\" sandbox=\"allow-scripts\" security=\"restricted\" style=\"position: absolute; visibility: hidden;\" title=\"\u00abArduino \u2013 8. Push Buttons, encender y apagar un LED\u00bb \u2014 Raymundo Pizano\" src=\"https:\/\/raymundopizano.com\/blog\/arduino\/arduino-8-push-buttons-encender-y-apagar-un-led\/embed\/#?secret=ecb1P9X8yb#?secret=K7J1GOuQj9\" data-secret=\"K7J1GOuQj9\" width=\"500\" height=\"282\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"no\"><\/iframe>\n<\/div><\/figure>\n\n\n\n<p class=\"has-text-align-right wp-block-paragraph\"><a href=\"https:\/\/raymundopizano.com\/blog\/arduino\/arduino-8-push-buttons-encender-y-apagar-un-led\/\">Siguiente &gt;&gt;<\/a><\/p>\n<\/div>\n<\/div>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Hemos visto hasta el momento las salidas digitales las cuales solo tiene dos valores posibles 1 HIGH (encendido) y 0 LOW (apagado) con la funci\u00f3n digitalWrite(PIN, HIGH \/ LOW);., tambi\u00e9n existen los tipos de salidas anal\u00f3gicas PWM (Pulse Width Modulation \/ Modulaci\u00f3n por Ancho de Pulsos) las cuales van de un rango de 0 a [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":1411,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[13],"tags":[],"class_list":["post-1384","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-arduino"],"_links":{"self":[{"href":"https:\/\/raymundopizano.com\/blog\/wp-json\/wp\/v2\/posts\/1384","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/raymundopizano.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/raymundopizano.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/raymundopizano.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/raymundopizano.com\/blog\/wp-json\/wp\/v2\/comments?post=1384"}],"version-history":[{"count":51,"href":"https:\/\/raymundopizano.com\/blog\/wp-json\/wp\/v2\/posts\/1384\/revisions"}],"predecessor-version":[{"id":1881,"href":"https:\/\/raymundopizano.com\/blog\/wp-json\/wp\/v2\/posts\/1384\/revisions\/1881"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/raymundopizano.com\/blog\/wp-json\/wp\/v2\/media\/1411"}],"wp:attachment":[{"href":"https:\/\/raymundopizano.com\/blog\/wp-json\/wp\/v2\/media?parent=1384"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/raymundopizano.com\/blog\/wp-json\/wp\/v2\/categories?post=1384"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/raymundopizano.com\/blog\/wp-json\/wp\/v2\/tags?post=1384"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}