{"id":1043,"date":"2024-04-24T22:34:55","date_gmt":"2024-04-24T22:34:55","guid":{"rendered":"https:\/\/raymundopizano.com\/blog\/?p=1043"},"modified":"2024-09-15T20:59:32","modified_gmt":"2024-09-15T20:59:32","slug":"arduino-3-lenguaje-de-programacion-c-c","status":"publish","type":"post","link":"https:\/\/raymundopizano.com\/blog\/arduino\/arduino-3-lenguaje-de-programacion-c-c\/","title":{"rendered":"Arduino &#8211; 3. Lenguaje de programaci\u00f3n C \/ C++"},"content":{"rendered":"\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"768\" src=\"https:\/\/raymundopizano.com\/blog\/wp-content\/uploads\/2024\/04\/Arduino-c-c.png\" alt=\"\" class=\"wp-image-1333\" srcset=\"https:\/\/raymundopizano.com\/blog\/wp-content\/uploads\/2024\/04\/Arduino-c-c.png 1024w, https:\/\/raymundopizano.com\/blog\/wp-content\/uploads\/2024\/04\/Arduino-c-c-300x225.png 300w, https:\/\/raymundopizano.com\/blog\/wp-content\/uploads\/2024\/04\/Arduino-c-c-768x576.png 768w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Para programar el microcontrolador de nuestra placa Arduino se utiliza una versi\u00f3n reducida del lenguaje C \/ C++, dentro del sitio oficial podemos encontrar toda la documentaci\u00f3n de referencia <a href=\"https:\/\/www.arduino.cc\/reference\/en\/\">https:\/\/www.arduino.cc\/reference\/en\/<\/a>., aqu\u00ed te comparto las que yo considero mas importante. <\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Comentarios<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Los comentarios son muy \u00fatiles a la hora de interpretar el c\u00f3digo, ya que lo podemos usar para describir el prop\u00f3sito general del programa como su funcionamiento.<\/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(1 * 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=\"\/\/ Comentarios en una linea\n\n\/*\n  Varias lineas\n  de comentarios\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\">\/\/ Comentarios en una linea<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #88846F\">\/*<\/span><\/span>\n<span class=\"line\"><span style=\"color: #88846F\">  Varias lineas<\/span><\/span>\n<span class=\"line\"><span style=\"color: #88846F\">  de comentarios<\/span><\/span>\n<span class=\"line\"><span style=\"color: #88846F\">*\/<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Estructura inicial<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Se basa en dos funciones principales <code data-enlighter-language=\"generic\" class=\"EnlighterJSRAW\">setup()<\/code> y <code data-enlighter-language=\"generic\" class=\"EnlighterJSRAW\">loop()<\/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=\"\/* \n * Este espacio se utiliza para comentar la finalidad del programa, \n * el autor, descripci\u00f3n, funcionalidad, detalles necesarios., \n * invocar librear\u00edas y declarar o inicializar variables.\n*\/ \n\n\/\/ Esta linea solo se incluye si usas VSC PlatformIO\n#include &lt;Arduino.h&gt;\n\nvoid setup() {\n   \/*\n    * Se usa para inicializar variables, funciones, estradas \n    * y salidas (IO), se ejecuta solo una vez al iniciar.\n   *\/\n}\n\nvoid loop() {\n  \/\/ Funci\u00f3n principal, se ejecuta en modo de ciclo infinito.\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\">\/* <\/span><\/span>\n<span class=\"line\"><span style=\"color: #88846F\"> * Este espacio se utiliza para comentar la finalidad del programa, <\/span><\/span>\n<span class=\"line\"><span style=\"color: #88846F\"> * el autor, descripci\u00f3n, funcionalidad, detalles necesarios., <\/span><\/span>\n<span class=\"line\"><span style=\"color: #88846F\"> * invocar librear\u00edas y declarar o inicializar variables.<\/span><\/span>\n<span class=\"line\"><span style=\"color: #88846F\">*\/<\/span><span style=\"color: #F8F8F2\"> <\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #88846F\">\/\/ Esta linea solo se incluye si usas VSC PlatformIO<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F92672\">#include<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #E6DB74\">&lt;Arduino.h&gt;<\/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\">   \/*<\/span><\/span>\n<span class=\"line\"><span style=\"color: #88846F\">    * Se usa para inicializar variables, funciones, estradas <\/span><\/span>\n<span class=\"line\"><span style=\"color: #88846F\">    * y salidas (IO), se ejecuta solo una vez al iniciar.<\/span><\/span>\n<span class=\"line\"><span style=\"color: #88846F\">   *\/<\/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\">  \/\/ Funci\u00f3n principal, se ejecuta en modo de ciclo infinito.<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">}<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Variables, Ciclos, Condicionales<\/h2>\n\n\n\n<h2 class=\"wp-block-heading\">Funciones<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Son bloques de c\u00f3digo que nos facilitan una tarea repetitiva.<\/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(1 * 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=\"\/\/ Definimos o declaramos la funci\u00f3n\nvoid nombreFuncion() {\n  \/\/ C\u00f3digo de la funci\u00f3n\n}\n\n\/\/ Llamar o invocar a una funci\u00f3n\nnombreFuncion();\" 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\">\/\/ Definimos o declaramos la funci\u00f3n<\/span><\/span>\n<span class=\"line\"><span style=\"color: #66D9EF; font-style: italic\">void<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #A6E22E\">nombreFuncion<\/span><span style=\"color: #F8F8F2\">() {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #88846F\">  \/\/ C\u00f3digo de la funci\u00f3n<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">}<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #88846F\">\/\/ Llamar o invocar a una funci\u00f3n<\/span><\/span>\n<span class=\"line\"><span style=\"color: #A6E22E\">nombreFuncion<\/span><span style=\"color: #F8F8F2\">();<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">Funciones simples <\/h3>\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(1 * 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=\"void encenderLed(){\n  digitalWrite(LED, HIGH);\n}\n\nvoid apagarLed(){\n  digitalWrite(LED, LOW);\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: #66D9EF; font-style: italic\">void<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #A6E22E\">encenderLed<\/span><span style=\"color: #F8F8F2\">(){<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">  <\/span><span style=\"color: #A6E22E\">digitalWrite<\/span><span style=\"color: #F8F8F2\">(LED, HIGH);<\/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\">apagarLed<\/span><span style=\"color: #F8F8F2\">(){<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">  <\/span><span style=\"color: #A6E22E\">digitalWrite<\/span><span style=\"color: #F8F8F2\">(LED, LOW);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">}<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">Funciones que reciben y regresan par\u00e1metros <\/h3>\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=\"\/* \nLas variables que reciben se encuentran dentro de los par\u00e9ntesis y ah\u00ed mismo se declaran tipoVariable nomVariable1\n*\/\nvoid nombreFuncion(tipoVariable nomVariable1, tipoVariable nomVariable2, tipoVariable nomVariableN) {\n  \/\/ return regresa el resultado\n  return valor;\n}\n\n\/\/ Invocar a una funci\u00f3n e imprimir el resultado que regresa\nSerial.println(nombreFuncion(valor1, valor2, valorN));\n\n\/\/ O el resultado asignarlo a una variable\ntipoVariable resultado;\nresultado = nombreFuncion(valor1, valor2, valorN);\" 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\">\/* <\/span><\/span>\n<span class=\"line\"><span style=\"color: #88846F\">Las variables que reciben se encuentran dentro de los par\u00e9ntesis y ah\u00ed mismo se declaran tipoVariable nomVariable1<\/span><\/span>\n<span class=\"line\"><span style=\"color: #88846F\">*\/<\/span><\/span>\n<span class=\"line\"><span style=\"color: #66D9EF; font-style: italic\">void<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #A6E22E\">nombreFuncion<\/span><span style=\"color: #F8F8F2\">(<\/span><span style=\"color: #A6E22E; text-decoration: underline\">tipoVariable<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #FD971F; font-style: italic\">nomVariable1<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #A6E22E; text-decoration: underline\">tipoVariable<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #FD971F; font-style: italic\">nomVariable2<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #A6E22E; text-decoration: underline\">tipoVariable<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #FD971F; font-style: italic\">nomVariableN<\/span><span style=\"color: #F8F8F2\">) {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #88846F\">  \/\/ return regresa el resultado<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">  <\/span><span style=\"color: #F92672\">return<\/span><span style=\"color: #F8F8F2\"> valor;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">}<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #88846F\">\/\/ Invocar a una funci\u00f3n e imprimir el resultado que regresa<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">Serial.<\/span><span style=\"color: #A6E22E\">println<\/span><span style=\"color: #F8F8F2\">(<\/span><span style=\"color: #A6E22E\">nombreFuncion<\/span><span style=\"color: #F8F8F2\">(valor1, valor2, valorN));<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #88846F\">\/\/ O el resultado asignarlo a una variable<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">tipoVariable resultado;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">resultado <\/span><span style=\"color: #F92672\">=<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #A6E22E\">nombreFuncion<\/span><span style=\"color: #F8F8F2\">(valor1, valor2, valorN);<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<h4 class=\"wp-block-heading\">Ejemplo funci\u00f3n suma<\/h4>\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=\"void setup(){\n  \/* \n    Establecemos la comunicaci\u00f3n del puerto serial a 9600 bps\n    Necesario para usar Serial.println\n  *\/\n  Serial.begin(9600);\n}\n\nvoid loop() {\n  \/\/ Declaramos la valiable k de tipo enterno (integer)\n  int k;\n  \/\/ k almacena lo que regresa la funci\u00f3n (return) \n  k = suma(2, 3); \/\/ Resultado = 5\n  \/\/ Imprimimos el valor de k que es igual a 5\n  Serial.println(k);\n  \/\/ Esperamos un tiempo\n  delay(500);\n}\n\n\/\/ La funci\u00f3n recibe dos valores x, y\nint suma(int x, int y){\n  \/\/ Declaramos la variable resultado\n  int resultado;\n  \/\/ sumamos los dos parametros recibidos\n  resultado = x + y;\n  \/\/ Retornamos el resultado\n  return resultado;\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: #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\">  \/* <\/span><\/span>\n<span class=\"line\"><span style=\"color: #88846F\">    Establecemos la comunicaci\u00f3n del puerto serial a 9600 bps<\/span><\/span>\n<span class=\"line\"><span style=\"color: #88846F\">    Necesario para usar Serial.println<\/span><\/span>\n<span class=\"line\"><span style=\"color: #88846F\">  *\/<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">  Serial.<\/span><span style=\"color: #A6E22E\">begin<\/span><span style=\"color: #F8F8F2\">(<\/span><span style=\"color: #AE81FF\">9600<\/span><span style=\"color: #F8F8F2\">);<\/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\">  \/\/ Declaramos la valiable k de tipo enterno (integer)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">  <\/span><span style=\"color: #66D9EF; font-style: italic\">int<\/span><span style=\"color: #F8F8F2\"> k;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #88846F\">  \/\/ k almacena lo que regresa la funci\u00f3n (return) <\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">  k <\/span><span style=\"color: #F92672\">=<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #A6E22E\">suma<\/span><span style=\"color: #F8F8F2\">(<\/span><span style=\"color: #AE81FF\">2<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #AE81FF\">3<\/span><span style=\"color: #F8F8F2\">);<\/span><span style=\"color: #88846F\"> \/\/ Resultado = 5<\/span><\/span>\n<span class=\"line\"><span style=\"color: #88846F\">  \/\/ Imprimimos el valor de k que es igual a 5<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">  Serial.<\/span><span style=\"color: #A6E22E\">println<\/span><span style=\"color: #F8F8F2\">(k);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #88846F\">  \/\/ Esperamos un tiempo<\/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\">500<\/span><span style=\"color: #F8F8F2\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">}<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #88846F\">\/\/ La funci\u00f3n recibe dos valores x, y<\/span><\/span>\n<span class=\"line\"><span style=\"color: #66D9EF; font-style: italic\">int<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #A6E22E\">suma<\/span><span style=\"color: #F8F8F2\">(<\/span><span style=\"color: #66D9EF; font-style: italic\">int<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #FD971F; font-style: italic\">x<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #66D9EF; font-style: italic\">int<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #FD971F; font-style: italic\">y<\/span><span style=\"color: #F8F8F2\">){<\/span><\/span>\n<span class=\"line\"><span style=\"color: #88846F\">  \/\/ Declaramos la variable resultado<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">  <\/span><span style=\"color: #66D9EF; font-style: italic\">int<\/span><span style=\"color: #F8F8F2\"> resultado;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #88846F\">  \/\/ sumamos los dos parametros recibidos<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">  resultado <\/span><span style=\"color: #F92672\">=<\/span><span style=\"color: #F8F8F2\"> x <\/span><span style=\"color: #F92672\">+<\/span><span style=\"color: #F8F8F2\"> y;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #88846F\">  \/\/ Retornamos el resultado<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">  <\/span><span style=\"color: #F92672\">return<\/span><span style=\"color: #F8F8F2\"> resultado;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">}<\/span><\/span>\n<span class=\"line\"><\/span><\/code><\/pre><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">En proceso&#8230;<\/h2>\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=\"eczfv9CjSk\"><a href=\"https:\/\/raymundopizano.com\/blog\/arduino\/arduino-instalar-entorno-de-trabajo-ide-y-visual-studio-code\/\">Arduino &#8211; 2. Instalar entorno de trabajo Arduino IDE y Visual Studio Code<\/a><\/blockquote><iframe loading=\"lazy\" class=\"wp-embedded-content\" sandbox=\"allow-scripts\" security=\"restricted\" style=\"position: absolute; visibility: hidden;\" title=\"\u00abArduino &#8211; 2. Instalar entorno de trabajo Arduino IDE y Visual Studio Code\u00bb \u2014 Raymundo Pizano\" src=\"https:\/\/raymundopizano.com\/blog\/arduino\/arduino-instalar-entorno-de-trabajo-ide-y-visual-studio-code\/embed\/#?secret=bZBArgWtNt#?secret=eczfv9CjSk\" data-secret=\"eczfv9CjSk\" 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-instalar-entorno-de-trabajo-ide-y-visual-studio-code\/\">&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=\"wDtv6Bnbhd\"><a href=\"https:\/\/raymundopizano.com\/blog\/uncategorized\/arduino-4-buenas-practicas\/\">Arduino &#8211; 4 Buenas practicas<\/a><\/blockquote><iframe loading=\"lazy\" class=\"wp-embedded-content\" sandbox=\"allow-scripts\" security=\"restricted\" style=\"position: absolute; visibility: hidden;\" title=\"\u00abArduino &#8211; 4 Buenas practicas\u00bb \u2014 Raymundo Pizano\" src=\"https:\/\/raymundopizano.com\/blog\/uncategorized\/arduino-4-buenas-practicas\/embed\/#?secret=B6yoSREjLB#?secret=wDtv6Bnbhd\" data-secret=\"wDtv6Bnbhd\" 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\/uncategorized\/arduino-4-buenas-practicas\/\">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>Para programar el microcontrolador de nuestra placa Arduino se utiliza una versi\u00f3n reducida del lenguaje C \/ C++, dentro del sitio oficial podemos encontrar toda la documentaci\u00f3n de referencia https:\/\/www.arduino.cc\/reference\/en\/., aqu\u00ed te comparto las que yo considero mas importante. Comentarios Los comentarios son muy \u00fatiles a la hora de interpretar el c\u00f3digo, ya que lo [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":1333,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[13],"tags":[],"class_list":["post-1043","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\/1043","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=1043"}],"version-history":[{"count":70,"href":"https:\/\/raymundopizano.com\/blog\/wp-json\/wp\/v2\/posts\/1043\/revisions"}],"predecessor-version":[{"id":1876,"href":"https:\/\/raymundopizano.com\/blog\/wp-json\/wp\/v2\/posts\/1043\/revisions\/1876"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/raymundopizano.com\/blog\/wp-json\/wp\/v2\/media\/1333"}],"wp:attachment":[{"href":"https:\/\/raymundopizano.com\/blog\/wp-json\/wp\/v2\/media?parent=1043"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/raymundopizano.com\/blog\/wp-json\/wp\/v2\/categories?post=1043"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/raymundopizano.com\/blog\/wp-json\/wp\/v2\/tags?post=1043"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}