# data[].attributes.attachment_link.readable_text
300 directivos y docentes de educación técnica de escuelas secundarias de todo el país se capacitan en una nueva metodología de trabajo que promueve, entre otras cosas, el pensamiento crítico, la comunicación y la colaboración. Además, realizan prototipado de Robótica que luego utilizarán en el aula con sus alumnos.

El Ministerio de Educación, Cultura, Ciencia y Tecnología, a través del Instituto Nacional de Educación Tecnológica (INET), está llevando a cabo durante esta semana una capacitación en Saberes Digitales para 300 directivos y docentes de educación técnica de secundarias de todo el país. En el transcurso de estas jornadas los directivos y docentes se capacitarán en el Aprendizaje Basado en Proyectos, una metodología que desarrolla competencias como el pensamiento crítico, la creatividad, el espíritu emprendedor, la comunicación y la colaboración.

Además aplicarán esta técnica al armado de cuatro prototipos de Robótica que luego podrán llevar a sus aulas para trabajar junto a sus estudiantes. Estos prototipos sirven para armar un sistema de semaforización, un invernadero automatizado, un sistema de tanques y un estacionamiento automatizado.

Al respecto, el ministro Alejandro Finocchiaro expresó: "Todos necesitamos herramientas que nos permitan actualizar y potenciar nuestras capacidades a través de conocimientos innovadores. Nuestro trabajo es poner a disposición todos los instrumentos y conocimientos apropiados que acompañen las prácticas docentes en este escenario dominado por la tecnología y el avance científico".

María José Licio Rinaldi, directora de Asuntos Federales del INET, al iniciar las jornadas explicó que esta formación se enmarca en los lineamientos de la Secundaria 2030, consensuada por el Consejo Federal de Educación. Y agregó: "la escuela técnica tiene que liderar esta innovación, por lo que es, por su génesis. Estamos en una revolución tecnológica y debemos hacer un trabajo continuo para la formación de los directivos, de los docentes y de todos nosotros para estar actualizados. Saberes Digitales tiene que ver con una propuesta metodológica, con proyectos tecnológicos, para el desarrollo de las capacidades profesionales. El objetivo es que a fin de año tengamos un banco de proyectos para que puedan visibilizar y jerarquizar lo que está pasando dentro del aula".

Elsa Guillermo, directora de la Escuela Técnica N° 1 de Lobería, provincia de Buenos Aires, que está cursando la capacitación, explicó: "Esta capacitación nos permite entrar en este nuevo mundo del pensamiento computacional, los saberes digitales, la robótica, y poder trabajar en nuestros alumnos la construcción de un pensamiento mucho más versátil para el mundo tecnológico que existe y que está por venir".

Esta formación, de la cual participan 132 escuelas de todo el país, está compuesta por cuatro ejes: guías didácticas para fabricar 15 prototipos de robótica; entornos formativos compuestos por: impresoras 3D, brazos robóticos, kit de drone, placas de Arduino, kit de sensores y actuadores, entre otros elementos ; la tutoría de facilitadores especializados a través del campus virtual de En Foco; y dos instancias de formación presencial, la presente y una segunda en noviembre.

Esta propuesta se enmarca en la nueva línea de cursos que la cartera educativa, a través de EnFoCo ETP, lanzó en su segundo año con base en los Saberes Digitales, compuesta por propuestas como: Introducción al Big Data; Inteligencia artificial: entre el mito y la técnica; Internet de las cosas; STEAM: crear para aprender; entre otras.

# data[].attributes.attachment_link.title
La Escuela Técnica se forma en Saberes Digitales

# data[].attributes.attachment_link.description
300 directivos y docentes de educación técnica de escuelas secundarias de todo el país se capacitan en una nueva metodología de trabajo que promueve, entre otras cosas, el pensamiento crítico, la comunicación y la colaboración. Además, realizan prototipado de Robótica que luego utilizarán en el aula con sus alumnos.

# data[].attributes.attachment_link.description
La Ley de Educación Nacional N° 26.206 fue aprobada por el Congreso de la Nación el 14 de diciembre de 2006, constituyendo un paso fundamental en el proceso de recuperación de la educación para la construcción de una sociedad más justa.

# data[].attributes.attachment_link.title
Nuevo Diseño Curricular de Educación Técnica | abc.gob.ar

# data[].attributes.attachment_link.description
El diseño curricular de la Educación Secundaria Técnica presenta contenidos actualizados del Taller del Ciclo Básico (Resolución N°88/09) y de los campos de la Formación Científico Tecnológica (excepto Matemática Ciclo Superior, Análisis Matemático y Matemática Aplicada) y Formación Técnico Específica (Resoluciones N°3828/09, Anexo 3 y Resolución N°284/12) de las siguientes especialidades del Ciclo Superior: Aeronáutica, Aviónica, Automotores, Administración de las Organizaciones, Electromecánica, Electrónica, Electricidad, Informática Personal y Profesional, Maestro Mayor de Obra, Multimedios, Mecánica, Programación, Química, Servicios Turísticos y Tecnología de los Alimentos.

# data[].attributes.attachment_link.title
Colegio de Técnicos de la Provincia de Buenos Aires

# data[].attributes.attachment_link.description
Colegio de Técnicos de la Provincia de Buenos Aires

# data[].attributes.attachment_link.description
Web institucional de la escuela de educación técnica N°1 Eduardo Guillermo Oliver. Luján

# data[].attributes.body
Enunciado de la ley de Ohm

Ohm descubrió al principio del siglo XIX que la corriente a través de un metal era directamente proporcional al voltaje o diferencia de potencial eléctrico por el metal. El descubrimiento de Ohm condujo a la idea de la resistencia en los circuitos.

La ley de Ohm expresada en forma de ecuación es V=RI, donde V es el potencial eléctrico en voltios, I es la corriente en amperios y R es la resistencia en ohms.

Triángulo de Ohm, donde se observan las relaciones entre voltaje, corriente y resistencia.

Para entender la ley de Ohm, necesitamos aclarar los conceptos de carga, corriente y voltaje.

Conceptos claves de la ley de Ohm

Carga

La fuente de todas las cargas eléctricas reside en la estructura atómica. La carga de un electrón es la unidad básica de la carga. La medida para la carga es el coulomb (C) en honor al físico francés Charles Augustin de Coulomb. La carga de un electrón es igual a 1,60 x10⁻¹⁹ C. Esto significa que una carga de 1 C es igual a la carga de 6,25x10¹⁸ electrones.

Conductores

Aquellas sustancias por donde las cargas se mueven fácilmente se llaman conductores. Los metales son excelentes conductores debido a la descolocación o movimiento de sus electrones en su estructura cristalina atómica.

Por ejemplo, el cobre, que es usado comúnmente en cables y otros dispositivos eléctricos, contiene once electrones de valencia. Su estructura cristalina consta de doce átomos de cobre unidos a través de sus electrones descolocados. Estos electrones pueden ser considerados como un mar de electrones con la capacidad de migrar por el metal.

Conductores óhmicos

Los conductores óhmicos son aquellos que cumplen la ley de Ohm, es decir, la resistencia es constante a temperatura constante y no dependen de la diferencia de potencial aplicado. Ejemplo: conductores metálicos.

Conductores no óhmicos

Son aquellos conductores que no siguen la ley de Ohm, es decir, la resistencia varía dependiendo de la diferencia de potencial aplicado. Ejemplo: ciertos componentes de aparatos electrónicos como computadoras, teléfonos celulares, etc.

Aislantes

En cambio, aquellas sustancias que resisten al movimiento de la carga son llamadas aislantes. Los electrones de valencia de los aislantes, como el agua y la madera, están fuertemente restringidos y no pueden moverse libremente por la sustancia.

# data[].attributes.attachment_link.readable_text
Michael Faraday fue un físico y químico británico del siglo XVIII. A lo largo de su vida, profundizó en el estudio de los campos magnéticos y se obsesionó por conseguir generar electricidad. Entre sus descubrimientos más importantes, están el diamagnetismo, la electrólisis y la inducción electromagnética. Ahí se engloba la famosa Ley de Faraday de Inducción Electromágnética.

La Ley de Faraday proclama que el voltaje inducido es directamente proporcional a la velocidad con la que cambia el flujo magnético que atraviesa una superficie con el circuito como borde. Hoy vamos a ahondar y desarrollar algo más esta Ley de Faraday.

Quién fue Faraday

Michael Faraday (1791-1867) fue un brillante físico y químico del Reino Unido. Sus principales aportes a la ciencia fueron la inducción electromagnética o la electrólisis.

Adquirió su gusto por leer y por las investigaciones a los 14 años, cuando trabajó de encuadernador de libros en Londres. Fue en esa época cuando Michael Faraday abrazó todo lo que tuviera que ver con fenómenos eléctricos.

En 1831, Michael Faraday empezó a profundizar en las propiedades electromagnéticas de los distintos materiales. Arrancaba así una gran serie de pruebas y experimentos que le llevaría a descubrir la inducción electromagnética.

Este descubrimiento surgió al enrollar dos bobinas de alambre en un arco de hierro. Así, llegó a una conclusión pionera en la época: cuando aplicaba corriente a una de las bobinas, la otra bobina que no había recibido corriente, también se cargaba de electricidad. De este descubrimiento, derivó a probar que se podía generar un campo eléctrico, a partir de un campo magnético variable.

Las aplicaciones de los descubrimientos de Michael Faraday, en numerosos campos de la actualidad, le han convertido en uno de los científicos más importantes de la historia. Hasta el punto de que Albert Einstein tenía un retrato suyo de cabecera, junto con el de Isaac Newton.

Antecedentes y Campos Magnéticos

Para poder conocer mejor que importancia tuvo la Ley de Inducción Electromagnética de Faraday, hay que contextualizar. Es decir, tenemos que situarnos en cuanto al tiempo y conocimientos que se tenían en relación a los campos magnéticos y la electricidad.

Ya se conocía la relación existente entre la electricidad y el magnetismo, descubrimiento del físico Hans Christian Øersted. Este experimento consiste en acercar a un imán una aguja imantada. Como todos los imanes tienen dos polos, uno positivo y otro negativo, la punta siempre indica el norte. Así pues, el otro extremo indica el sur. Da igual el tamaño de la aguja o que la cortemos, la punta indicará el norte y el otro extremo el sur.

Si colocamos un imán y esparcimos limaduras de hierro por encima, veremos el dibujo que crea. Cada polo del imán captará las limaduras de hierro que se encuentren bajo su influencia. Y es precisamente a eso a lo que llamamos campos magnéticos.

¿Qué ocurriría si conectáramos un imán a una fuente de electricidad? El resultado lo descubrió el físico danés Hans Christian Øersted. Éste observó que una corriente eléctrica, ejerce una fuerza sobre un imán.

Los electrones en movimiento, a través de un hilo conductor, crea un campo magnético. Esto es lo que se conoce como electromagnetismo. Si enrollamos el hilo, el efecto magnético se concentrará, al fluir los electrones por la bobina, generando un fuerza magnética capaz de atraer objetos pequeños de hierro o acero.

Si insertamos dentro de la bobina un trozo de hierro puro, se concentra aún más el efecto magnético, obteniendo un "potente" electroimán.

Inducción Electromagnética

Así es que la Ley de Faraday o inducción electromagnética, enuncia que el voltaje inducido en un circuito cerrado, resulta directamente proporcional a la velocidad con que cambia en el tiempo el flujo magnético que atraviesa una dada superficie con el circuito haciendo de borde.

Es decir, la fuerza electromagnética inducida en cualquier circuito cerrado es igual al negativo de la velocidad del tiempo del flujo magnético encerrado por el circuito.

Podemos entenderlo con un ejemplo muy sencillo. Si utilizamos un cable conductor, por ejemplo de cobre, lo enrollamos en tres vueltas y lo conectamos a un amperímetro para medir la corriente eléctrica que se va a generar. Cogemos un imán y lo metemos y sacamos rápidamente por el interior de la bobina, el amperímetro marcará una fluctuación de corriente, cada vez que sacamos el imán del interior de la bobina. Para que exista electricidad tiene que existir una variación en los campos magnéticos.

Si este experimento lo realizamos con una bobina de muchas más vueltas de hilo conductor, y repetimos experiencia, sacando y metiendo el imán entre las espiras rápidamente, veremos como el amperímetro marca una intensidad eléctrica mayor. Al tener mayor número de espiras, generará mayor corriente eléctrica.

Si dejamos el imán en reposo, veremos que no se genera ningún tipo de corriente eléctrica. Esto se debe al principio fundamental de que para que haya corriente debe existir variación de campos magnéticos. Es decir, el imán entra en la bobina con una carga magnética, distinta a la que tiene la bobina. Por tanto, el movimiento de los átomos genera la intensidad que podemos medir con el amperímetro.

Cuando introducimos un imán en una bobina, la corriente circula en un sentido. Cuando lo sacamos, esta corriente circulará en sentido contrario. Por tanto, se puede llegar a la conclusión de que la intensidad de la corriente eléctrica que se induce en una bobina, es directamente proporcional, al número de espiras y a la intensidad del campo magnético que interacciona con estas espiras.

Cuanta más potencia tenga el imán que utilicemos, mayor intensidad genera en su campo magnético. Michael Faraday repitió este mismo experimento, pero en vez de con un imán, con un electroimán. Por ejemplo, un tornillo envuelto en en una espiral de hilo conductor.

Este electroimán, lo introducimos en una bobina compuesta de muchas espirales y le aplicamos una carga eléctrica por medio de una pila. Podemos observar que la generación de electricidad es mucho mayor. Así las cosas, la intensidad de la corriente que genera en campo magnético en el electroimán, cuanto mayor sea, mayor campo magnético tendremos y mayor corriente habrá inducida en nuestra bobina.

Este es el principio de funcionamiento de un transformador y el motivo por el que funciona con corriente alterna. Como hemos comprendido, sólo se genera intensidad de corriente cuando existen variaciones en los campos magnéticos.

La Ley de Faraday predice cómo interaccionarán los campos magnéticos con los circuitos eléctricos para producir fuerzas electromagnéticas o inducción electromagnética. Un principio fundamental operando en los transformadores, inductores y otros motores eléctricos o generadores.

Aplicaciones de la ley de Faraday

Pero, ¿qué aplicaciones prácticas tiene la Ley de Faraday y la inducción electromagnética? En el caso que nos ocupa, provocamos variaciones en el flujo magnético que provoca una fuerza electromotriz. Aún así, mantenemos una diferencia de potencial entre dos puntos de un circuito abierto. Con esto, podemos provocar una corriente eléctrica.

Matemáticamente, se expresa como indicamos en la ecuación de arriba. Gracias al trabajo de Michael Faraday, se desarrollaron la mayor parte de las máquinas. Hasta algo tan cotidiano como una vitrocerámica de inducción. Como vemos, la variabilidad del campo magnético está dado por la derivada (si el campo es constante, la derivada es cero y no se provoca fuerza electromotriz alguna).

Otra aplicación importante de la Ley de Faraday es la creación de motores eléctricos. Estos propulsores transforman la energía eléctrica en mecánica. Se diferencian así de los motores químicos, que transforman el poder calorífico del combustible en energía mecánica. Además, los motores eléctricos tienen mayor rendimiento.

Otros Descubrimientos de la Ley de Faraday

Michael Faraday es principalmente conocido por su teoría de la inducción electromagnética. No obstante, realizó otros descubrimientos con importantes aplicaciones prácticas en la actualidad, por ejemplo la electrólisis.

La Electrolisis

La electrólisis fue, en realidad, descubierta por William Nicholson en el año 1800. Fue Michael Faraday quien perfeccionó sus teorías y las puso en común, elaborando la Ley de la Electrólisis de Faraday.

La electrólisis es un proceso que separa los diferentes elementos de un compuesto gracias a la electricidad. Para ello, se sumergen en el compuesto dos electrodos con carga opuesta. A uno se le conoce como ánodo y al otro como cátodo. Cada uno de estos electrodos atrae a los iones de carga opuesta. Para aumentar la concentración y separar los iones de los electrodos se usa energía proporcionada por la corriente eléctrica.

La electrólisis del agua no destilada es, hoy en día, un proceso muy utilizado en diversos ámbitos. Por ejemplo, para la cloración de piscinas. Cada vez más piscinas utilizan sal, la cual se transforma en cloro mediante la electrólisis. Para la ionización del agua que bebemos, tratamientos terapéuticos o distintos sistemas de depilación también utilizan la electrólisis.

La Jaula de Faraday

El experimento conocido como J aula de Faraday es el más popular que se asocia a este inventor. La jaula de Faraday es, en esencia, una caja metálica que aísla y protege a cualquier cosa que esté en su interior de las descargas eléctricas y campos eléctricos estáticos. El motivo es que en su interior el campo eléctrico es nulo.

Este experimento está muy vinculado a las investigaciones de Faraday en el campo electromagnético que hemos mencionado con anterioridad. Lo sacó, al estudiar el efecto por el cual se vuelve nulo el campo electromagnético en el interior de un conductor en equilibrio.

Esto se produce a causa de la polarización, un proceso por el cual aparecen dos ámbitos mutuamente cargados. Así, cuando el conductor elegido se encuentra vinculado a un campo electromagnético externo, se produce una carga positiva en un extremo y una negativa en el otro. El resultado es que se anulan en el punto en el que entran en contacto. Lo hacen formando una suerte de vacío protegido en dicho punto.

Aplicando dicho razonamiento, Michael Faraday hizo un experimento en 1836 que todavía tiene muchas aplicaciones hoy en día. Y es que sus principios se utilizan mucho en el ámbito aeroespacial. También a la hora de proteger aparatos eléctricos en lugares donde existen muchos cambios en el ámbito electromagnético a causa de diversos fenómenos meteorológicos, como pueden ser las tormentas

El proceso tiene el siguiente desarrollo. Una caja metálica se introduce dentro de un campo eléctrico ajeno a ella. En ese momento, los protones (cargas positivas) se colocan en posición de red. Mientras, los electrones, que son cargas fundamentalmente negativas, se mueven en sentido contrario.

Eso hace que uno de los sectores de la caja solo tenga una carga negativa, mientras que el otro lado la tiene positiva. Ambas se anulan, por lo que el centro de la caja acaba teniendo una carga nula. Manteniéndose protegido en su interior cualquier objeto eléctrico, que no se verá afectado por ninguna de las dos cargas que pugnan inútilmente por el dominio.

Sin embargo, la jaula solo protege al objeto que hay en su interior de la influencia del campo eléctrico externo. Se ha constatado que otros tipos de influencias electromagnéticas siguen funcionando en el interior de la jaula de Faraday. Por citar dos ejemplos, la electricidad estática o la propia influencia magnética de La Tierra. A pesar de ello, la jaula de Faraday protege y aísla casi por completo los objetos de su interior.

La jaula de Faraday tiene muchas aplicaciones prácticas. Sin embargo, para terminar con este apartado, vamos a finalizar presentando algunas de las más curiosas.

Por ejemplo, en el año 2013 se utilizaron los principios de la Jaula de Faraday para aislar la Capilla Sixtina. Fue durante la celebración del cónclave en el que se eligió al actual papa Francisco I. Así, se evitaba cualquier injerencia exterior o la utilización de cualquier aparato electrónico que pudiera acabar con el secretismo que rodeaba a este proceso.

Cogemos dos teléfonos móviles, comprobaremos que ambos funcionen correctamente. A continuación, envolvemos uno de los teléfonos en papel de aluminio, y llamamos desde el otro. El resultado es que el teléfono envuelto no funciona, no emite ningún tipo de señal, dando la sensación de estar apagado. Este es otro ejemplo de la utilización de la Jaula de Faraday, utilizando materiales actuales y tecnología de hoy en día.

Asimismo, la jaula de Faraday está presente en muchas actuaciones tanto de ladrones como de los equipos de seguridad. Los principios son utilizados por las personas que roban objetos electrónicos en las tiendas para evitar ser descubiertos. Una bolsa recubierta con papel de aluminio actúa como una jaula de Faraday. Aísla el producto de su interior y evita que dispare las alarmas de seguridad.

Es por ello que los expertos en seguridad estudian este proceso para crear nuevos sistemas que logren hacer saltar las alarmas cuando se aplique este principio con fines ilícitos. Sin embargo, sus principios también tienen usos más cotidianos.

Probablemente habrás mirado millones de veces el cristal de tu microondas. Este electrodoméstico funciona como una jaula de Faraday que contiene la energía electromagnética y evita la influencia del exterior. Los principios vinculados a la jaula de Faraday están muy presentes en la vida cotidiana moderna y muchas de las cosas de las que disfrutamos con asiduidad actualmente serían imposibles sin este increíble invento.
También te puede interesar:
Ley de Faraday | Inducción Electromagnética

# data[].attributes.attachment_link.title
Ley de Faraday | Inducción Electromagnética - EspacioCiencia.com

# data[].attributes.attachment_link.description
Michael Faraday fue un físico y químico británico del siglo XVIII. A lo largo de su vida, profundizó en el estudio de los campos magnéticos y se obsesionó por conseguir generar electricidad. Entre sus descubrimientos más importantes, están el diamagnetismo, la electrólisis y la inducción electromagnética.

# data[].attributes.attachment_link.title
💡 Leyes de Kirchhoff ▷ Corriente y Voltaje ◁

# data[].attributes.attachment_link.description
Las leyes de Kirchhoff que complementan el análisis de circuitos como una herramienta, se llaman así en honor al físico alemán Gustav Robert Kirchhoff quien introdujo la ley de corriente (o primera ley de Kirchhoff) y ley de voltaje (o segunda ley de Kirchhoff).

# data[].attributes.body
Si hoy sale a la calle y pregunta a la gente quién "inventó" la electricidad, la mayoría de los que respondan —habrá muchos que no den ninguna respuesta— le dirán que Thomas Edison. Nada más lejos de la realidad, el verdadero padre de la electricidad tal y como la conocemos hoy fue el ingeniero de origen serbio Nikola Tesla, un genio del siglo XIX y principios del XX que también sentó las bases para la creación de la radio, un invento que habitualmente se atribuye al italiano Marconi.

Las maravillas de Tesla van aún más allá. Este maestro de la mecánica, la electricidad, las matemáticas y el diseño nacido en 1856 en Smiljan (actual Croacia) llegó a registrar más de 700 patentes, muchas de las cuales son auténticos prodigios que han resultado determinantes para el progreso tecnológico: inventó el control remoto, realizó estudios sobre los rayos X y sus aplicaciones en medicina, creó las primeras lámparas de bajo consumo, sentó los principios teóricos del radar, realizó innovadores diseños de velocímetros para automóviles... Gracias a todos sus trabajos fue pionero en la robótica, en el desarrollo de aviones de despegue vertical y en transmisión inalámbrica de electricidad.

Y, a pesar de todos estos logros asombrosos, sus méritos suelen atribuirse a otros y su nombre sigue siendo muy desconocido para el gran público. Con objeto de redescubrir la figura de Tesla, la Fundación Telefónica ha organizado la exposición Nikola Tesla: suyo es el futuro, un completo recorrido por la vida y obra del personaje que podrá verse en Madrid hasta el próximo 15 de febrero. "Los inventos de Tesla están en la base de nuestra civilización tecnológica. Sin su sistema de generación y distribución de corriente alterna no podríamos enchufar nada a la red, sin su motor eléctrico no tendríamos lavadoras ni muchos otros aparatos que nos rodean", explica entusiasmado Miguel Ángel Delgado, comisario de la exposición y autor del libro Tesla y la conspiración de la luz.

La guerra de las corrientes

El caso más conocido es el de su enfrentamiento con Thomas Edison, con el que empezó a trabajar en 1884. Edison, que tenía un método de trabajo empírico basado en el ensayo y error, nunca llegó a tener una buena relación con Tesla, mucho más científico y reflexivo en su forma de trabajar. La rivalidad no tardó en aflorar y dio lugar a lo que se conoce popularmente como la guerra de las corrientes, una gran disputa por demostrar el descubrimiento y la patente de la electricidad. Edison defendía el sistema de corriente continua mientras que Tesla defendía el sistema corriente alterna. El primero no dudó en jugar sucio y recorrió Estados Unidos electrocutando animales (desde perros y gatos hasta un elefante) para demostrar los riesgos inherentes a la propuesta de su rival. A pesar de esta campaña de desprestigio, la corriente alterna se acabó imponiendo y a día de hoy se utiliza en todos los hogares.

Aunque Tesla ganó esta batalla, el prolífico inventor no obtuvo el reconocimiento del que sí gozó Edison, mucho más hábil desde el punto empresarial de relaciones públicas. "Edison sólo pensaba en inventos que pudiera comercializar. Si no se podía convertir en algo rentable, lo abandonaba. Tesla era casi lo contrario, él hablaba de revolucionar el mundo, pero no mostraba nada que pudiera atraer a los inversores", comenta el comisario. "Tesla fue a veces su peor enemigo: regaló patentes a Westinghouse, le dio el 51% de las patentes presentes y futuras a JP Morgan cuando éste tan sólo pedía el 50%... Es obvio que le faltó un instinto empresarial que le habría ayudado", añade. Hubo muchos más factores que contribuyeron al olvido del inventor: su último gran proyecto —el sistema mundial para la trasmisión de energía eléctrica sin cables— fracasó, "y los perdedores no suelen ser muy recordados"; no dejó ninguna empresa detrás que mantuviera vivo su nombre —Edison dejó la General Electric—; no tuvo discípulos —Edison contaba con Henry Ford, quien dedicó mucho esfuerzo, dinero y entusiasmo en mantener vivo el recuerdo de su mentor—, no tuvo herederos... "Además, en las últimas décadas, sus problemas mentales fueron a peor y Tesla se acabó convirtiendo en una caricatura de sí mismo, la del típico científico loco", relata Delgado, quien comenta que tanto daño le hacen a la figura del inventor sus detractores como "los más fanáticos teslianos que defienden incluso sus excentricidades más surrealistas". El genio, que fue célibe para no enturbiar su pensamiento, tenía muchas manías y obsesiones que fueron a más que con el paso de los años: tenía fijación con el número 3, adoraba a las palomas (él mismo reconoce que una se convirtió durante un tiempo en lo más importante de su vida), odiaba las joyas, no soportaba el pelo humano, no permitía el contacto físico... Todas estas excentricidades no ayudaron a mejorar la imagen de un hombre que estaba condenado a permanecer a la sombra de otros más avispados. Irónicamente, uno de los pocos premios que Tesla obtuvo en vida fue la medalla Edison.

# data[].attributes.attachment_link.title
21-11-2008 Nikola Tesla. El hombre que iluminó el mundo.

# data[].attributes.body
Los próximos tres videos nos demuestran cuanto podemos ayudar a un niño/adolescente si somos la guía que ellos necesitan, estos tres lograron mucho, e incluso solos, imagínense lo que lograrían con la guía necesaria

# data[].attributes.attachment_link.title
Hablando con sordos | Mateo Salvatto | TEDxJoven@RíodelaPlata

# data[].attributes.attachment_link.title
Los videojuegos ¿pueden cambiarte la vida? | Daniel Simons | TEDxCONICETRosario

# data[].attributes.attachment_link.title
Programar para aprender sin limites | Antonio Garcia Vicente | TEDxYouth@Valladolid

# data[].attributes.attachment_link.readable_text
Sea como sea aquí te dejo un podcast de introducción a la plataforma de Arduino y su transcripción. Tómalo con calma, es más de una hora de audio donde te explico cómo dar los primeros pasos con Arduino.

Para aprender Arduino debemos empezar desde el principio. Aunque suene a algo redundante, no podemos construir un edificio sin tener unos cimientos fuertes. Un curso de Arduino tiene que hacer lo mismo.

Si tu objetivo es aprender Arduino desde cero, primero construye unos buenos cimientos. Tu como yo, has copiado y has pegado código sin saber muy bien qué hacía. No está mal del todo ya que nos ha servido para obtener resultados.

Sin embargo, si queremos avanzar y aprender Arduino no nos queda otra que empezar por el principio con la electrónica y la programación. Por eso he decidido crear este curso de Arduino desde cero.

Si eres de esas personas que quiere introducirse al movimiento Maker con Arduino, este es tu curso. Quiero brindarte la oportunidad de ahorrar mucho tiempo buscando información por Internet.

En este artículo vamos a ver los siguiente módulos:

El proceso del prototipado.

Introducción al software y hardware con Arduino.

Fundamentos de programación con Arduino

Tómalo con calma, es un artículo muy largo. Casi podemos decir que es un libro de Arduino. Cualquier sugerencia o cualquier duda la puedes escribir en los comentarios.

Espero que lo disfrutes y sobre todo, que aclare las dudas que puedas tener.

Mi experiencia al aprender Arduino

Me he pasado media vida estudiando y aprendiendo diferentes disciplinas. Desde muy pequeño he programado. He estudiado Ingeniería Técnica de Telecomunicaciones y he dedicado más de 20 años trabajando en diferentes empresas.

Me considero un programador y desarrollador de software. Esto supone que tengo que estar al día en las últimas tendencias de programación. Leer muchos blogs, muchos libros y hacer muchos cursos.

Pero ahora que nadie nos escucha, te voy a contar un secreto. Cuando realmente he aprendido ha sido cuando he puesto en práctica toda la información que iba leyendo. Por eso es importante siempre seguir avanzando, aunque a veces no entiendas las cosas.

Debes evitar a toda costa el síndrome de parálisis por análisis. A lo único que te lleva esto es a no obtener resultados. Cuando ves que no avanzas, te entra un profundo sentimiento de frustración y terminas abandonando.

Por eso siempre digo lo mismo: ¡¡ PONTE EN ACCIÓN !!. No esperes a saber todo lo que necesitas saber para hacer un proyecto. Divide el proyecto en diferentes fases y empieza a programar con Arduino y a experimentar. Solo así podrás crear tus propios proyectos y a aprender Arduino.

El proceso del prototipado con Arduino

En este apartado no me voy a extender mucho. Tienes un artículo muy detallado sobre el proceso de prototipado con Arduino. Aún así haré un resumen de todo lo que se habla en ese artículo.

Arduino es una placa orientada al prototipado. No sólo porque todo lo que está en la propia placa y el software están pensados para prototipar de una forma muy fácil y rápida. Además, tenemos sensores, actuadores y shields alrededor de Arduino que nos facilitan esta tarea.

¿Qué es lo primero que se hace cuando queremos hacer un proyecto con Arduino? Puede que pineses: " uhmmmmm pues conecto los componentes y a programar ". ¡¡¡ NO !!! Se trata de un error muy típico que me encuentro todas las semanas.

Cuando tenemos que empezar a crear un proyecto con Arduino lo primero que tenemos que hacer es plantear ese proyecto. Debemos plasmarlo con lápiz o bolígrafo en un papel. Así de sencillo.

Por eso te recomiendo que sigas estas 3 fases.

La idea general del proyecto con Arduino

Me gusta llamarlo la fase Homer :) ¿Recuerdas ese capítulo donde Homer diseña un coche? Pues eso es lo que tenemos que hacer. Tirar de imaginación y plasmar la idea general con todos los componentes que se te ocurran.

Si lo que estás planteando, por ejemplo, es hacer un proyecto con Arduino para medir la temperatura, en esta fase el proyecto no tiene que ser una simple estación meteorolótica. Tiene que ser el satélite Meteosat :). No te cortes y plasma todo en un simple papel.

Un dibujo sencillo, sin complicaciones, donde vengan todos los componentes que te gustaría tener en tu proyecto.

Al final de esta fase tendrás un listado de ideas y especificaciones del satélite Meteosat ;) Este sería el inicio de la siguiente fase, el prototipo mínimo.

El prototipo mínimo

Vale, ya tienes ese maravilloso proyecto con Arduino en un papel. Junto a ese diseño tienes un listado de ideas y especificaciones. Ahora tienes que tirar de tu yo más racional, digamos que ahora eres Lisa de la familia Simpson.

Debes plantearte una pregunta crucial ¿seré capaz de enviar un satélite al espacio? ¿No sabes la respuesta? Ya te lo digo yo, ¡NO!. No estoy dudando de tus capacidades, para nada. Si que dudo de tus recursos. A no ser que seas Elon Musk, veo difícil poner un satélite en órbita.

Y como este ejemplo muchos otros. A veces me preguntan si no sería mejor hacer una PCB o circuito impreso para algún proyecto. Por supuesto que si pero ¿qué experiencia tienes diseñando PCBs?¿qué experiencia tienes con electrónica?¿dónde vas a fabricar ese circuito impreso?

Por eso es importante centrarse en el objetivo principal de tu proyecto. Esta fase consiste en eliminar todo aquello que no es importante y que solo aportan funcionalidades extra.

Si lo que quieres es medir la temperatura para algo concreto ¿por qué mides la presión? ¿por qué lo conectas a Internet? Céntrate en eso concreto y consigue crear un prototipo mínimo que sea capaz de hacer la funcionalidad principal de tu proyecto.

Debes ser capaz de conocer tus limitaciones y de los medios que dispones. Es simple, si consigues hacer un prototipo mínimo en poco tiempo, no sentirás la frustración de no llevar tu idea a la realidad. Esta fase es crucial para aprender Arduino.

Debes ser capaz de con muy poco, obtener resultados. Siempre tendrás tiempo de ir mejorando el proyecto con Arduino y añadir nuevas funcionalidades.

El diseño incremental

Ahora sí, ya tienes las ideas claras de lo que tienes que hacer para llevar a cabo tu prototipo mínimo. Lo has plasmado todo y ahora empieza la fase de creación. Ya puedes empezar a crear los circuitos y a programar Arduino a partir de ese prototipo mínimo.

Mi consejo es que apliques el diseño incremental. Básicamente consiste en dividir ese gran problema que vas a resolver, en pequeños problemas. Puedes verlo como un pintor.

Haz un bosquejo de lo que quieres conseguir y poco a poco ves dando forma a esa idea primitiva.

Aunque sea sólo medir la temperatura con un sensor, plantea y reflexiona lo que tienes que hacer en el código, investiga sobre las características del hardware y el software. Solo cuando tengas toda esta información deberás ejecutar las acciones necesarias para realizar tu prototipo mínimo.

Curso de Arduino: Introducción al software y hardware

Ya te he comentado que las dos disciplinas que debes dominar en un curso de Arduino son la programación y la electrónica. No queda otra, debes pasar por esto.

Si has llegado hasta aquí, es porque quieres aprender Arduino. Pero al contrario que otras tecnologías como pueda ser un ratón o un teclado, denominadas tecnologías Plug&Play, Arduino no es un hardware que se conecte y listo.

En un curso de Arduino debes aprender todas las nociones para que puedas configurar y programar el microcontrolador de Arduino.

Para empezar debes conocer el software y el hardware que está involucrado.

#1 Entorno de desarrollo de Arduino

Si quieres aprender Arduino tienes que programar. No existen fórmulas milagrosas ni atajos. Programar es la única manera de llevar a cabo tus propios proyectos con Arduino.

Esta programación, ya sea para Arduino, para otro tipo de placa o para otro lenguaje de programación, se suele hacer a través de un IDE o entorno de desarrollo. Pero, ¿qué es un IDE o entorno de desarrollo?

Déjame que te lo explique con una analogía. Cuando estás escribiendo un informe o cualquier documento para tu trabajo ¿con qué software lo haces? Normalmente se utiliza Office de Microsoft o la versión de código abierto Libre Office.

Pero también lo podrías hacer con un Bloc de Notas. ¿Qué ventajas tiene escribir un documento de este estilo con un programa como Word?

Cuanto más azúcar más dulce. Un procesador de texto potente te permitirá añadir tablas, utilizar listas y demás herramientas que facilitan el crear un documento. Seguramente todo esto no lo puedas hacer con el Bloc de Notas de Windows por ejemplo.

Con los entornos de desarrollo ocurre algo parecido. Con el IDE de Arduino podemos escribir nuestro código de una forma muy fácil y sobre todo, con muchas ayudas.

Por ejemplo, cuando escribimos una palabra reservada nos la cambia de color. Podemos contraer estructuras de control o funciones. Insertar y gestionar librerías a través del menú o formatear el código.

Pero lo más importante del IDE de Arduino es que podemos cargar el código a la placa. Podríamos escribir todo nuestro código en el Bloc de Notas o algún otro editor de texto y sería totalmente válido. El código no es más que texto.

Sin embargo, el IDE de Arduino nos permite hacer una cosa fundamental: compilar el código y subirlo a la placa. Esa es la clave. No te preocupes si ahora no entiendes qué es eso de compilar, muy pronto lo veremos.

Otra característica importante del IDE de Arduino es que es de código abierto. Pero ¿qué quiere decir esto? Bueno, Arduino es una plataforma abierta. Dentro de esta plataforma se incluye el IDE de Arduino.

Esto significa que ya no solo tenemos el software de forma gratuita, también lo podemos modificar a nuestro antojo. Eso sí, para hacer cualquier mejora o cambio debes conocer el lenguaje de programación con el que se programa el propio entorno de desarrollo de Arduino.

No confundir tecnologías libres con tecnologías gratuitas. Aunque una cosa lleve a la otra, no quita que detrás de este tipo de proyectos haya mucha gente trabajando y muchas horas de dedicación. Entonces ¿cómo podemos colaborar? Hay diferentes formas. Si nos centramos en Arduino la más sencilla es comprar placas originales y no copias. Pero también puedes ayudar haciendo una donación. Eso servirá para pagar el hosting de la página web, a los trabajadores o cualquier gasto derivado del proyecto.

Versiones del IDE de Arduino

Se trata de un software que está en constante actualización. Arduino no tiene un periodo fijo a la hora de hacer actualizaciones. Cuando sale una nueva versión se añaden nuevas opciones o se corrigen errores.

Lo más importante es que de momento (vamos por la versión 1.8.6) el IDE sigue manteniendo su mismo aspecto. Esto es más importante de lo que parece. Las opciones suelen estar siempre en el mismo sitio y por lo tanto, cuando se actualiza apenas notarás la diferencia.

Pero por ahora tampoco cambia el código. Esto quiere decir que si tu tienes un programa que hiciste con la versión 1.4 de Arduino, también te servirá para cargarlo a la placa con la versión 1.8.

#2 Instalación del IDE de Arduino

El segundo paso, una vez visto qué es un IDE y qué nos puede aportar, es la instalación. En este sentido no hay mucho misterio.

Podemos decir que este es el primer paso técnico en un curso de Arduino. Como dicen en la película de Los Goonies: " todo parte de aquí ".

Accede a la sección de software de Arduino. En la actualidad podemos programar de dos formas a través del IDE oficial de Arduino. Hay una versión web y un versión de escritorio. Para empezar te recomiendo que lo hagas a través de la versión de escritorio.

Debes elegir la versión para tu sistema operativo. Hay una versión para Windows, para Linux o para Mac OS X. Cuando le das a descargar, aparece una ventana donde te pide una contribución al software de Arduino.

No es obligatorio hacer ninguna donación aunque si que es recomendable. Como ya te he comentado, podemos colaborar de múltiples formas. Cualquier ayuda es buena.

Todo lo demás que continúa a partir de aquí es una secuencia de pantallas que lo único que hacen es instalar todo lo necesario para poder programar con el IDE de Arduino. A continuación un resumen rápido de la secuencia de instalación.

Solo advertir que voy a hacerlo para Windows. Esto es debido a una cosa simplemente. A día de hoy es el sistema operativo más utilizado del mundo aunque nos pese. Si tengo que elegir uno prefiero este para poder ayudar al mayor número de personas.

Puedes seguir estos tutoriales para instalar el IDE de Arduino en Linux y en Mac OS X.

#1 Ejecutar el instalador del IDE de Arduino como administrador

#2 Aceptar el acuerdo de licencia

#3 Elegir los componentes de software

#4 Elegir ubicación

#5 Instalar complementos

#6 Terminar instalación

Como has podido comprobar es muy sencillo. Cualquier problema con la instalación me dejas un comentario en este artículo. Justo abajo del todo ;)

#3 Funciones principales del IDE de Arduino

En los dos apartados anteriores hemos visto dos pasos que puede que hayan dejado confuso, sobre todo si antes no habías tenido nunca contacto con la programación.

Relájate, no te preocupes, piensa que vamos a escribir una carta a un amigo y que has instalado un procesador de textos como el Word.

En esta sección vamos a dar un repaso rápido por las funciones más importantes del IDE de Arduino. Aprenderás lo básico para empezar a programar tus propios programas.

Aprender Arduino requiere de este fuerzo previo por conocer las herramientas. No conseguirás avanzar rápido si antes no dominas los conceptos básicos del software y hardware de Arduino.

Seleccionar la placa correcta y el puerto serie

Seleccionar la placa es relativamente sencillo. En este curso de Arduino vamos a trabajar con el modelo Arduino UNO (luego lo veremos más en profundidad).

Con el IDE podemos trabajar con todos los modelos de Arduino e incluso con modelos que no son de la misma marca. Un ejemplo el ESP8266.

Cada vez que sale una nueva placa, el IDE se actualiza para poder programarla. Con los años verás como va creciendo esta lista :)

Puedes seleccionar la placa a través del menú en Herramientas>Placa>Arduino/Genuino UNO. No hace falta que conectes la placa al ordenador para seleccionar un modelo.

El puerto serie es por donde se comunican Arduino y el ordenador. Es necesario que tengas conectado tu Arduino al ordenador. Es muy sencillo, no tiene pérdida.

Para seleccionar el puerto lo hacemos a través del menú Herramientas>Puerto. Puede que aparezca más de uno y además el nombre varía según el sistema operativo.

Truco. Si tienes más de una placa conectada y no sabes cuál es, solo tienes que conectar tu Arduino al ordenador, abrir el listado de puertos, desconectar Arduino UNO del ordenador y volver a abrir el listado de puertos. El que haya desaparecido ese es :)

Preferencias del sistema

Como en casi todos los programas que utilizamos, en el IDE de Arduino tenemos una opción para configurar las preferencias del sistema. Nos permite modificar el idioma, el tamaño de letra y alguna cosas más que veremos.

Para acceder a esta opción solo tenemos que ir al menú Abrir>Preferencias.

Vamos a ver las opciones más importantes que nos permiten modificar el aspecto y funcionamiento del IDE de Arduino.

1. Localización del proyecto: podemos seleccionar una carpeta donde iremos guardando los proyectos. Por defecto será la que ha creado el instalador en documentos/Arduino. Esta ruta varía según el sistema operativo.

2. Editor de idioma: con esta opción podemos cambiar el idioma del IDE.

3. Editor de Tamaño de Fuente: indica el tamaño de fuente del editor del IDE.

4. Mostrar número de línea: para que muestre los números de líneas en el editor.

5. Habilitar plegado el código: siempre que el código tenga una sentencia con {} nos permitirá contraer y expandir ese código. Muy útil cuando trabajamos con archivos muy grandes.

6. Guardar cuando se verifique o cargue: es importante que cuando verifiquemos el código o lo carguemos al microcontrolador haga un guardado automático. Déjalo marcado.

Sistema de ficheros de Arduino

Si has creado un programa o sketch (sketch significa esquema o bosquejo) verás que tiene una extensión .ino.

Cuando guardas un archivo en tu ordenador, el propio IDE de Arduino ya lo organiza por ti. Crea una carpeta con el mismo nombre que el archivo y dentro guarda el fichero.

Por ejemplo, si creas un nuevo programa y vas al menú Archivo>Salvar, te permitirá guardarlo con un nombre.

Puedes darle el nombre que quieras siempre y cuando cumplas las reglas de tu sistema operativo. Te recomiendo que sea un nombre descriptivo y que no utilices caracteres especiales.

Cuando haces esto suceden varias cosas. Por un lado cambia el nombre en el IDE de Arduino. Así sabes en todo momento con que programa estás trabajando.

Y luego, en la ruta que hayas elegido habrá creado una carpeta con el mismo nombre y dentro el fichero.

La ruta por defecto donde se guarda es la que hemos configurado en preferencias.

Partes fundamentales del IDE de Arduino

Dentro del IDE de Arduino podemos destacar 3 partes principales. El editor, el área de mensajes y la consola.

El editor
Aquí es donde más vamos a trabajar ya que es donde escribimos nuestro código. Pero no solo eso, también tenemos acceso a las funciones más utilizadas.

En la parte central encontramos el propio editor. Incluye el número de línea útil, por ejemplo, para detectar errores.

Justo arriba del editor tenemos los accesos directos a las funciones más utilizadas.

1. Verificar/Compilar: este botón verifica el código en busca de errores y lo compila. Cuando hablo de compilar me refiero a traducir el lenguaje de programación que entendemos los humanos en código máquina que entienden las máquinas.

2. Subir: el botón subir nos permite cargar o subir el código al microcontrolador a través del puerto serie USB.

3. Nuevo: sirve para crear un programa nuevo. Esto genera una nueva ventana donde escribir el código de ese nuevo programa.

4. Abrir: abre un programa que hayas guardado previamente en el disco duro.

5. Salvar: guarda el archivo en el disco duro. Es como la opción que hemos visto anteriormente.

6. Monitor serie: es una de las partes más importantes del IDE de Arduino. Sirve para mostrar información de la comunicación entre el ordenador y Arduino en las dos direcciones.

Todos estos accesos directos tienen su correspondencia en el menú de opciones y también tienen su atajo de teclado.
El área de mensajes

En este área de mensajes se muestra la última acción que has realizado. También muestra mensajes cuando se está realizando alguna tarea como subiendo un programa a la placa.
La consola
La consola nos va a dar información muy valiosa. Nos puede dar información sobre una acción concreta, por ejemplo los datos tras subir un programa a la placa. Pero lo más importante, nos informa si hay algún error.

Otras partes importantes del IDE de Arduino

Una de las áreas donde podemos encontrar información muy valiosa es justo abajo del todo. Se pueden ver dos áreas de texto.

En la parte izquierda nos informa del número de línea donde está situado el cursor. En la parte de la derecha tenemos un resumen de la placa que tenemos seleccionada y el puerto serie que estamos utilizando.

#4 Fundamentos de la placa de Arduino

En este curso de Arduino he hablado de las dos áreas que hay conocer para aprender Arduino: la programación y la electrónica.

Hemos visto una introducción al IDE de Arduino que no es más que una herramienta para programar.

En esta sección vamos a ver los fundamentos de Arduino. No me voy a poner muy técnico, recuerda que lo importante es seguir avanzando.

Si haces una pequeña búsqueda en Internet, encontrarás que hay multitud de placas de Arduino. Hay originales, copias y un amplio abanico de modelos dependiendo de cual es su funcionalidad. Así que lo primero que debes preguntarte es ¿qué quiero conseguir?

No es lo mismo comprar una placa con conexión WiFi que sin ella. Por ejemplo, Arduino MKR1000 puede conectarse a Internet a través de la WiFi y transmitir datos.

Un Arduino UNO o un Arduino MEGA no pueden por si solos. Necesitan algún tipo de shield ya sea ethernet o WiFi.

Salvo estas características especiales de cada placa, el 99% del código te va a servir para cualquier placa. Por ejemplo, el acceso a los pines se hace en todas las placas igual. Esa es la magia de Arduino.

Un solo lenguaje y un solo IDE para dominar a todos :)

Yo recomiendo empezar con un Arduino UNO, sobre todo para un curso de Arduino como este. También vale un Arduino Leonardo o un Arduino MEGA.

¿Por qué utilizar Arduino UNO?

Dentro de todos los modelos que podemos encontrar en la tienda oficial, el recomendado para aprender Arduino es el modelo Arduino UNO.

Se trata del buque insignia de la marca, el más famoso y el más vendido. Muchos otros modelos se han construido a partir de este.

Pero lo realmente increíble de Arduino, es que una vez que te inicias con una placa, es muy sencillo utilizar otros modelos de placa e incluso de otras marcas.

Cuando hablo de placas, lo realmente importante y sobre lo que todo gira es el microcontrolador que tienen integradas esas placas.

¿Qué es un microcontrolador?

Si miramos de cerca la placa nos da la sensación de que se trata de un circuito sacado de un electrodoméstico. La realidad es que Arduino está creado con un único objetivo: facilitarnos la programación de un microcontrolador.

Pero qué es un microcontrolador. Lo primero es identificarlo dentro de la placa. Si miras un Arduino de cerca, verás una cucaracha o pastilla negra donde pone ATMEL. Eso es el microcontrolador.

Los microcontroladores también se llaman MCU por sus siglas en inglés Microcontroller Unit. Diariamente utilizamos decenas de ellos en dispositivos electrónicos, electrodomésticos, coches, ordenadores, móviles, etc...

Pero ¿qué es una MCU o microcontrolador?. Es un circuito integrado programable, capaz de ejecutar las órdenes que están almacenadas en su memoria. Ojo a esto, circuito integrado progamable. Esto quiere decir que lo podemos programar :)

Pero también existen los microprocesadores. Son los típicos procesadores que encontramos en los ordenadores por ejemplo. Existe una diferencia principal entre una MCU o microcontrolador y un microprocesador, su utilidad.

Una MCU tiene como objetivo una tarea concreta. Por ejemplo, cerrar las puertas de un ascensor, captar la temperatura de un sensor, etc..

Sin embargo, un microprocesador es de propósito general. Puede hacer varias cosas a la vez. Recopilar información de los datos, enviar por email, mostrar en una pantalla, etc...

Un claro exponente de un dispositivo que lleva un microprocesador es una Raspberry Pi.

Utilizar uno u otro dependerá del objetivo de nuestro proyecto.

Concepto de placa de prototipado

Una vez que ya sabemos qué es un microcontrolador ¿qué hace Arduino para facilitarnos el conexionado y la programación en un microcontrolador? Para ello vamos a sacarlo de la placa.

Su nombre completo es ATMEGA328P-PU y es un microcontrolador de 8-bit. Esto quiere decir que solo puede hacer operaciones con números de 8-bit (números entre 0 y 255).

Ahora imagínate que tuvieras que programar este circuito integrado o chip, ¿cómo lo conectas al ordenador? ¿cuáles son los pines digitales y analógicos? ¿donde está el pin de 5V y el de GND?

Toda esta información la podemos obtener de su h oja de características técnicas.

Sin embargo, hubo una persona que pensó que había que democratizar el uso de microcontroladores y creo Arduino. El es David Cuartielles uno de los cofundadores de Arduino y el padre de la criatura.

Todo lo que rodea a la placa de Arduino está pensado para facilitarnos la programación y conexión con el microcontrolador.

La huella o forma en la que están dispuestos los pines, la conexión serie USB para programar y alimentar, el alimentador de baterías o pilas, cada componente está puesto en su sitio para que todo sea más fácil para nosotros.

Puerto USB

Imagino que ya te habrás dado cuenta lo que nos facilita la tarea de cargar los programas a través del puerto USB desde cualquier ordenador.

Pero no solo sirve para cargar los programas, también nos sirve para alimentar la placa con 5V. Se alimenta así sobre todo cuando lo estás programando.

Pines de Arduino UNO

¿Recuerdas el microcontrolador ATMEGA328P? Este circuito integrado tiene unas patillas o patas. A esto le denominamos pines.

En el lado de la placa de Arduino, estos pines tienen un acceso muy fácil para poder conectar diferentes componentes. Pero no son más que plástico, contactos y cables que se conectan con las patillas correspondientes del microcontrolador.

Su función es facilitarnos su uso. Pero ¿qué podemos conectar a estos pines? Bueno, pues podemos conectar otros circuitos compatibles con cada uno de los pines. Vamos a ver los 3 zócalos que nos vamos a encontrar en Arduino UNO.

Pines digitales
Es el zócalo más grande. Tiene 14 pines numerados del 0 al 13.

¿Qué quiere decir digital? Digital es algo abstracto así que mejor verlo con una analogía.

Imagínate que eres pintor. Cuando vas a pintar un cuadro solo te permiten utilizar dos colores: blanco y negro. Si quieres pintar con un gris claro por ejemplo, no puedes, no existe ese color. Solo puedes elegir entre blanco o negro.

Si esto lo llevamos al mundo de la electrónica a través de un voltaje, solo podríamos tener dos voltajes. Esto es lo que ocurre en los pines digitales de Arduino donde solo podemos tener dos estados HIGH o LOW que equivalen a 5V y 0V.

En realidad esto no es cierto totalmente. Podríamos tener un voltaje de 3V por ejemplo. Para estos casos hay una regla interna que determina si un voltaje es HIGH o LOW.

Estos son los niveles lógicos del microcontrolador ATMega328. Todo lo que esté entre 3V y 5V se considera nivel alto (HIGH) y todo lo que esté entre 0V y 1,5V es nivel bajo (LOW). El resto, entre 1,5V y 3V es una indeterminación.

Esto quiere decir que cualquier voltaje dentro de este rango, el microcontrolador no sabrá si es estado HIGH o LOW.

Además, los pines digitales pueden funcionar en 3 modos diferentes:

Modo entrada (INPUT): puede leer voltajes. Por ejemplo, ¿está pulsado un botón? si (HIGH) o no (LOW).

Modo salida (OUTPUT): puede suministrar un voltaje. Por ejemplo, encender/apagar un led on (HIGH) o off (LOW).

Excepción (PWM): algunos pines del microcontrolador pueden funcionar en modo salida suministrando un valor entre el rango 0V y 5V. Esto ya no sería un pin digital. Estos pines van marcados con el símbolo ~ y hay 6 dentro de la placa de Arduino (3, 5, 6, 9, 10, 11).

Por último señalar que los pines 0 y 1 son Rx (recibir) y Tx (transmitir). Se utilizan para la comunicación serie entre el ordenador y Arduino y están conectados a los LEDs de la placa donde pone RX y TX. Se recomienda no utilizar estos pines.

El pin 13 es el de la mala suerte dentro de Arduino UNO según cuenta la historia .... :), es broma. Este pin está conectado a un LED integrado dentro de la placa.

Hay algún pin más dentro de este zócalo pero como ya te he dicho al principio de este curso de Arduino, aquí vamos a ver lo esencial para ponernos en acción.
Pines analógicos
Es el zócalo donde pone ANALOG IN y van numerados del A0 al A5, 6 pines.

¿Recuerdas al pintor que solo podía pintar con dos colores, blanco o negro? Pues en el mundo analógico tenemos una amplia gama de colores, ahora podemos pintar con diferentes tonos de gris.

Si nos llevamos esto al mundo de la electrónica con Arduino, con estos pines podemos medir diferentes voltajes entre 0V y 5V. Es decir, podemos tener un voltaje de 3,5V en uno de estos pines y Arduino sería capaz de leerlo.

Sin embargo, existe un problema. El microcontrolador no entiende de números decimales, sólo entiende datos digitales 1's y 0's. Par resolver esto, la MCU incorpora un ADC (son las siglas de Analog Digital Converter o en español Conversor Analógico Digital).

Por otro lado, Arduino no es capaz de medir cualquier voltaje, me explico. ¿Cuántos números hay entre 0 y 5?..... realmente hay infinitos números. Puedes empezar con el 0 e ir aumentando de 0,000001 o en 0,00000000000001.

La consecuencia de todo esto es que Arduino solo entiende datos digitales y además estos deben estar acotados. El ADC se encargará de convertir esos valores en datos digitales y además solo podrán ser un número concreto de valores. A esto último se le llama resolución.

Pines de alimentación
El zócalo de pines de alimentación nos sirve para alimentar los componentes, sensores y actuadores.

Hay que destacar 4 de todos los que hay:

3,3V: suministra ese voltaje por ese pin.

5V: suministra ese voltaje por ese pin.

GND: hay dos pines con esta función además del que está en el zócalo de los pines digitales. Es la toma de tierra y por donde debemos cerrar el circuito.

Otras características a destacar
Por último vamos a ver una serie de características secundarias que es importante destacar.

La huella que forman los pines se ha convertido en un estándar para conectar los shields.

El botón reset resetea la placa y hace que empiece a ejecutar el código desde el principio.

El LED de encendido nos informa si la placa está alimentada.

El pin Vin nos da otra alternativa a la hora de alimentar Arduino con un voltaje de entre 6V y 12V. De momento te recomiendo que lo alimentes a través del puerto USB.

Concector jack de alimentación. Es igual que el pin Vin pero a través de un conector jack. El voltaje de alimentación que soporta es de 6V a 12V.

#5 Cadena de herramientas de Arduino (Toolchain)

En esta el último apartado del software y hardware dentro del curso de Arduino te voy a hablar del toolchain o caja de herramientas.

Básicamente son los procesos y herramientas que están por detrás y que hacen que cuando tu des al botón de subir programa, este se compile y se cargue en el microcontrolador.

Como ya te he dicho a lo largo de este curso de Arduino, no voy a entrar en detalle. Solo te daré los conceptos básicos para que entiendas que sucede entre bambalinas dentro de Arduino.

¿Qué es una cadena de herramientas o Toolchain?

Vamos a empezar con un ejemplo. Imagínate que eres un escritor de novela negra. Tu editor quiere que saques el siguiente best seller de la saga en la que estás inmerso los últimos años. Te pones manos a la obra y empiezas a escribir.

Desde que concibes la idea en tu cabeza hasta que el libro llega a las librerías, el proyecto pasa por diferentes procesos hasta materializarse el libro. Voy a hacer una enumeración básica:

1. Escribir el libro: el escritor escribe un manuscrito en cualquier procesador de textos.

2. Edición del libro: el editor busca cualquier error en ese manuscrito.

3. Imprenta: a la imprenta le enviamos un documento en Word u otro procesador de texto. Sin embargo, la impresora no entiende ese formato. En esta fase se traduce tu libro al idioma de las impresoras.

4. Impresora: una vez que tiene tu libro en el idioma de las impresoras, ya es capaz de imprimirlo. Al final de este proceso se tiene un libro.

Este ejemplo se puede considerar el toolchain o cadena de herramientas para escribir un libro. No es más que una serie de herramientas de software que trabajando juntas consigue alcanzar un objetivo. En este caso el objetivo es publicar un libro.

¿Qué tiene que ver escribir un libro con la cadena de herramientas de Arduino? Como verás a continuación, es un ejemplo perfecto de la vida real donde se utiliza un toolchain o cadena de herramientas.

El toolchain de Arduino

En este curso de Arduino vamos a ver el toolchain o cadena de herramientas en 3 fases. Algunas partes las hemos visto ya, como el IDE de desarrollo. Sin embargo, es sólo una de las herramientas.

Veamos cuales son esas 3 fases.
El IDE de Arduino
Ya hemos visto lo que es y las funciones más importantes del IDE en este curso de Arduino. Su función es la de procesador de textos.

Es como cuando escribes el libro. Necesitas una herramienta como un ordenador y el procesador de textos o una máquina de escribir (ya extinguidas).

Para nosotros el IDE hace la misma función. La diferencia es que en vez de utilizar el idioma español, inglés o francés, vamos a utilizar el lenguaje que entiende el microcontrolador (más bien el compilador), el lenguaje C++.

Este lenguaje se llama de alto nivel ya que se entiende perfectamente por los seres humanos. Sólo tienes que tener ciertos conocimientos en inglés.

El IDE hará la función del procesador de textos. Muestra información sobre errores y aporta ayudas a la hora de programar.

El gran inconveniente es que el microcontrolador no entiende este lenguaje pensado para los seres humanos. El microcontrolador solo entiende el lenguaje máquina así que necesitamos de un traductor.

Aquí es donde entra en juego el compilador.
El compilador
El compilador cogerá el código en C++ que has escrito en el IDE de Arduino y lo convertirá en código máquina para que lo entienda el microcontrolador. El que utiliza Arduino se llama AVR-GCC.

Se puede decir que es como el editor en la cadena de herramientas para publicar un libro. Reordena el código y busca errores. Eso sí, como encuentre un simple error te tira para atrás el trabajo y no te deja continuar.

Como salida del compilador obtenemos un archivo hexadecimal, con extensión .hex, en código máquina. Ahora ya si que el microcontrolador entiende lo que le estamos diciendo.
AVRdude
La última etapa del tootlchain de Arduino es cargar el código al microcontrolador. Hasta ahora lo que tenemos es un archivo en código máquina pero necesitamos cargarlo dentro de la memoria del microcontrolador.

El AVRdude es un programa que hace esta tarea. Coge el archivo hexadecimal en código máquina y lo carga microcontrolador a través del puerto USB. Esto ha mejorado mucho gracias a Arduino.

Antiguamente se necesitaba un hardware externo para esta tarea. Por ejemplo los programadores PIC. Yo esta etapa me la perdí así que no puedo opinar mucho. Sin embargo si que aprecio la facilidad de aprender Arduino.

Dentro del circuito integrado tiene cargado un software muy básico que se llama Bootloader. Ya viene instalado dentro de la placa cuando la compras así que no tienes que hacer nada cuando recibes una placa sin usar.

El AVRdude con el Bootloader se encargan de coger el archivo hexadecimal en código máquina y cargarlo en la memoria Flash del microcontrolador consiguiendo así el objetivo de la cadena de herramientas de Arduino.

Con esto habríamos terminado la parte de introducción del software y hardware dentro del curso de Arduino. Ahora ya estaríamos preparados para empezar a programar. Es lo que vamos a ver a continuación, los fundamentos de la programación con Arduino.

Fundamentos de la programación con Arduino

Normalmente en la formación que doy a través de cursos presenciales, cursos online o como en este curso de Arduino, siempre hago hincapié en el concepto de progresión contra perfección. Vuelvo a repetir: debes evitar el síndrome de parálisis por análisis.

Cuando intentas aprender Arduino u otra tecnología relacionada con la programación o la electrónica, hay mucho que aprender. Siempre hay algo nuevo que probar, un nuevo concepto, placas, frameworks o software.

En el mundo tecnológico siempre hay una sensación de incertidumbre y debes aprender a vivir con ello. Hay una premisa que debes aplicar cuando estás haciendo un curso de Arduino.

Tienes que estar dispuesto a asumir que aunque no entiendas lo que estás haciendo, debes continuar hacia tu objetivo.

Debes ser capaz de avanzar, no quedar estancado en algún concepto. Da lo mismo que no lo entiendas, lo importante es seguir adelante.

Verás como con el tiempo, eso que no entendías lo verás más claro desde otra perspectiva.

Como siempre digo: ¡¡¡ HAY QUE PONERSE EN ACCIÓN !!!

#1 La sintaxis de la programación con Arduino

En este curso de Arduino, al igual que en cualquier otro, me gusta mucho poner analogías para que todo el mundo lo pueda entender. Es una forma de explicar algo con palabras corrientes para que puedas aprender Arduino.

Al contrario de lo que pueda parecer, existe una estrecha relación entre la gramática y la puntuación de un idioma y la sintaxis de la programación.

Me gusta decir que si sabes leer y escribir, sabes programar. Seguramente estés familiarizado con la puntuación y la gramática. Sabrás qué es un punto, una coma, guiones, tildes o punto y coma.

Además de todo esto, un idioma tiene formas verbales, sustantivos y todo tipo de gramática.

En los lenguajes de programación se requiere de una sintaxis para comunicarnos con el compilador. Lo mismo ocurre con un idioma, los signos de puntuación y la gramática son esenciales para entenderse.

El compilador leerá ese código y lo traducirá a código máquina para que lo entienda el microcontrolador.

Podemos decir que el compilador será tu profesor de lengua del instituto. La diferencia es que este profesor es el más exigente que hayas conocido ya que siempre requiere un 10 en tus programas :).

No te va a dejar pasar ni una. No es como escribir un email a un amigo donde da lo mismo si pones un punto de más o no pones un acento. El compilador siempre exigirá que tengas todo perfecto.

No te preocupes si al principio te cuesta, es normal. Poco a poco irás entendiendo que te está diciendo el compilador y donde están los errores. Te aseguro que si pones interés, se convertirá en tu segunda lengua después de la materna.

Ahora vamos a ir viendo las particularidades más importantes dentro de la sintaxis de la programación con Arduino.

Comentarios en un programa de Arduino

Los comentarios no son más que notas que el programador va dejando dentro del código. Te ayuda a comprender parte de ese código.

Un aviso importante. No se trata de hacer un informe completo sobre lo que hace algo del código, se trata de poner algo descriptivo para ayudar a entenderlo.

Es una parte fundamental cuando estamos escribiendo un programa para Arduino. Sin embargo, no se compila es decir, no se traduce al código máquina. Cada vez que el compilador encuentra un comentario, se salta esa línea.

Hay dos formas de escribir un comentario.

Todo lo que hay a la derecha de la doble barra (//) se considera un comentario y se pone en color gris. El IDE de Arduino lo cambia de color para indicarnos que se trata de un comentario.

La otra forma de poner un comentario es poniendo /* para abrir y */ para cerrar. Todo lo que haya entre estas dos marcas de apertura y cierre se considera comentario. Como tal, su color cambia a gris.

Punto y coma

En el lenguaje de programación C++, el punto y coma (;) es como un punto y aparte. Básicamente lo que está diciendo es que hemos terminado una sentencia y a partir de ese momento, empezamos algo nuevo sin relación a lo anterior a nivel de sintaxis.

Seguramente el código anterior no significa nada para ti si no has programado nunca antes. Sin embargo, quiero que te fijes en el punto y coma final. El compilador interpreta que a partir de ese punto y coma todo lo que escriba será una sentencia nueva, sin nada que ver con la anterior.

En este punto ya podemos hacer una prueba para ver como actúa el compilador. Abre un nuevo programa en el IDE de Arduino y copia el siguiente código. No hace falta ni que conectes la placa a tu ordenador.

Ahora da al botón verificar, es el primer acceso directo en el editor. ¿Qué ha sucedido?

Que nos enfrentamos al primer error :). Vamos a analizarlo para ver como resolverlo.

Si te fijas en el área de mensajes, el error está en inglés pero es muy descriptivo, " expected ',' or ';' before void" (en español " espera ',' o ';' antes de void") es decir, que nos falta poner una coma o un punto y coma antes de la palabra void.

En la consola nos da todavía más información. Nos indica el archivo donde se ha producido el error ( sketch_may29a puede que tu tengas otro nombre) y la línea donde se ha producido 4.

Por último en el editor nos sale una franja roja indicando la línea donde está el error y donde se hace referencia en la consola. Ahora cambia el código y pon el punto y coma al final de la línea 2 y verás como compila.

Como ves no estás sólo. El compilador es muy exigente pero también nos ayuda a corregir los errores.

Palabras reservadas

Seguramente ya hayas copiado y pegado algún código de Arduino de esos que encuentras por Internet. Al hacerlo, te habrás dado cuenta algunas palabras cambian el color de texto dentro del IDE de Arduino.

Son palabras reservadas por el lenguaje C++. Cada una de ellas tiene una función específica y están reservadas por el lenguaje de programación.

Esto quiere decir que no podemos utilizar esos nombres para nombrar una variable por ejemplo.

Hay más palabras clave que las que hemos visto. Poco a poco te irás familiarizando con ellas según las vayas necesitando. Lo importante es que si cambia de color en el IDE de desarrollo, es que es una palabra reservada.

Las funciones en un programa de Arduino

Las funciones son una de las partes esenciales en un programa. Aunque parezca algo adelantado para este curso de Arduino, será una de las primeras cosas que veamos más adelante.

Imagínate que en un programa que estás desarrollando necesitas conocer el área de un círculo. Esta operación la utilizas en muchos sitios dentro del código. Para calcularlo solo tienes que multiplicar pi por el cuadrado del radio.

Si traducimos esta fórmula a código quedaría de la siguiente manera.

Ahora supón que tienes que utilizar esta línea de código muchas veces en tu programa. Quizás te interese convertir este fragmento en una función. No voy a mostrarte la implementación, solo te voy a mostrar la llamada.

Queda mucho más fácil y mucho más limpio, ¿lo ves? Pero a mi lo que realmente mi interesa es que entiendas el concepto. En este curso de Arduino, desde el primer momento, vamos a utilizar funciones y debes ser capaz de entender esta herramienta de programación.

Por último cerramos el paréntesis y no te olvides del punto y coma para indicar que hemos terminado con la sentencia.

Los parámetros son información que pasamos a la función para que realice su tarea. En el ejemplo que hemos visto para calcular el área de un círculo, la función necesita conocer el radio. Por eso se lo pasamos como parámetro.

Si la función no admite parámetros, es necesario poner los paréntesis.

Y esto es todo lo que necesitas saber, en principio, sobre las funciones. A lo largo del curso de Arduino se utilizarán muchas funciones con y sin parámetros.

#2 Las variables en un programa de Arduino

Uno de los conceptos más importantes de la programación son las variables. Te aseguro que cuando entiendes como funcionan, tienes una de las claves para aprender Arduino.

Una variable no es más que una herramienta de programación que nos ayuda a almacenar y recuperar información en nuestros programas.

Y cuando hablamos de información ¿que se te viene a la memoria? jejejejeje, pues eso, memoria :)

Utilizando la memoria de Arduino

Los ordenadores y el microcontrolador que tiene Arduino suelen tener una cosa que se llama memoria. Pero ¿qué es la memoria? Se trata de algo que nos permite guardar información para luego poder recuperar y utilizar. Es extremadamente útil.

Imagínate el ejemplo del medidor de nivel de agua en un recipiente. Quieres que tu proyecto sea capaz de ir controlando el nivel de agua y que en el LCD te muestre el valor máximo al que ha llegado el agua.

Si queremos saber cual es el nivel máximo de agua, necesitaremos de algún modo guardar la información del nivel actual y el nivel máximo hasta el momento.

En este punto nos surgen dos cuestiones, ¿cómo guardar esta información en un programa? y ¿cómo recordamos donde está guardada esta información?

Podemos asemejar la memoria a una estantería. En cada hueco de esa estantería guardamos cosas. Cada hueco, además, tiene un número. Precisamente, ese número sería la variable.

Ya te he dicho que tenemos que almacenar dos datos: el nivel actual de agua y el nivel máximo que ha alcanzado. Así que en esta estantería, vamos a reservar dos huecos para esos dos datos.

Por ejemplo seleccionamos el hueco 1 para el nivel actual y el 5 para el nivel máximo.

Arrancamos el programa y nos da un nivel de agua de 100 ml (mililitros). Este sería nuestro nivel actual. En el nivel máximo no tenemos nada almacenado y al comparar el nivel máximo (ningún ml) con el nivel actual (100 ml), este nivel es mayor.

Por lo tanto este valor también se almacenará en el nivel máximo.

Tras un periodo de tiempo el programa vuelve a tomar una medida. En este caso se obtiene un valor de 120 ml. Este valor se almacena en el nivel actual pero como es mayor que el nivel máximo que teníamos, también actualizamos esta variable.

Lo que hemos hecho es cambiar el valor de 100 ml por 120 ml. Aquí está la función más poderosa de una variable: podemos cambiar el valor de una variable y el nombre sigue siendo el mismo ya que la variable sólo contiene la información.

Debemos parar un momento y reflexionar sobre lo que acabamos de ver. Lo que viene a decir es que lo que estamos cambiando es el contenido del hueco de la estantería pero el nombre siempre se mantiene.

Lo mismo ocurre con las variables. Accedes al contenido de la variable y lo modificas pero el nombre siempre es el mismo. Es decir, el nombre no se refiere al contenido que hay dentro, el nombre se refiere al espacio de memoria que hay reservado para almacenar información.

Si conoces el nombre de la variable, podrás poner cosas dentro de esa variable para, posteriormente, hacer uso de esa información. Recuerda, el nombre se refiere a la ubicación no al contenido que hay dentro.

Tipos de datos

Además de dar un nombre a la variable, tenemos que hacer otra cosa. Tenemos que indicar el tipo de información que va a almacenar.

Imagínate el cajón de los cubiertos de tu casa. Normalmente cuando quitas el lavaplatos o lavavajillas y colocas los cubiertos en su cajón, cada uno va en su sitio.

No tiene sentido que metas los cuchillos en el hueco de las cucharas de café o los tenedores con los cuchillos.

Lo lógico y normal es que los clasifiques. Los cuchillos con los cuchillos en un hueco adaptado para ellos. Los tenedores en otro hueco y las cucharas de café en su hueco especial para ellas.

Si lo haces de otra forma sabes que no va a funcionar. Cuando vayas a buscar un tenedor no vas a saber dónde está y seguramente tardes más en cogerlo.

Donde quiero llegar es que debemos tener un hueco dentro del cajón para cada tipo de cubiero. Lo mismo ocurre con las variables, tenemos que especificar el tipo de dato que vamos a almacenar en cada hueco de memoria.

Si declaras una variable que sólo puede almacenar números enteros, positivos y negativos, no podrás almacenar un número con decimales como 3,14. Esto produciría un error.

Por lo tanto, cada variable solo podrá almacenar un tipo de dato especificado cuando se declara dicha variable.

Declaración de variables

Cuando hablo de declarar lo que realmente estamos haciendo es crear una variable. Para declarar una variable vas a necesitar dos cosas: un nombre y un tipo de dato.

En C++ siempre se pone primero el tipo de dato y luego el nombre.

En el código anterior he declarado una variable del tipo entero (int) cuyo nombre es primeraVariable. El tipo de dato int permite almacenar números enteros entre -32.768 y 32.767. A esto se le llama rango.

No hace falta que memorices esta información :). La palabra int es reservada por el lenguaje C++ y como hemos visto antes cambia de color en el IDE de Arduino.

Por cierto, no te olvides del punto y coma al final para indicar que has terminado con la declaración de la variable.

Para nombrar una variable hay que seguir ciertas reglas. Llevo muchos años programando (más de 15 años) y he visto de todo :)

A continuación unas reglas básicas que tienes que seguir para nombrar una variable:

No pueden tener caracteres especiales ($, %,&,/,", ñ, etc...).

Se pueden utilizar números siempre y cuando no se pongan al principio.

No se pueden utilizar las palabras reservadas como nombre de variable.

Veamos unos ejemplos sencillos:

Como ves, no hay más que aplicar un poco de sentido común.

Inicialización de variables

Cuando hablo de inicilizar una variable no es más que asignar un valor. Todo esto lo tenemos que hacer una vez que conozcamos el tipo de dato por supuesto. Incluso lo podemos hacer en la misma línea.

Veamos las dos formas de inicializar una variable.

En sentencias separadas.

O en la misma línea o sentencia.

Con esto introducimos algo nuevo. Hasta ahora lo que hemos visto es que declaramos una variable con el tipo de dato y le damos un nombre. Ahora introducimos el operador de igualdad, el signo igual (=).

Una declaración de una variable con inicilización a un valor quedaría de la siguiente manera.

Pero el operador de asignación también lo podemos utilizar para asignar un valor.

Como ves es muy sencillo almacenar información en la memoria. Lo primero es conocer que tipo de dato vamos a guardar. Luego damos un nombre a la variable y asignamos un valor.

Con estos pasos ya tendríamos la información almacenada en la memoria de Arduino.

#3 Tipos de datos en Arduino

A lo largo de este curso de Arduino estamos viendo diferentes conceptos. Digamos que estamos uniendo ideas una de detrás de otra. ahora vamos a profundizar en los tipos de datos de C++.

Para aprender Arduino tenemos que conocer el lenguaje en el que se programa. Vamos a ver los 7 tipos de datos más importantes de C++, pero no son los únicos.

Entero (int)

Es el tipo de dato más común. En C++ se utiliza la palabra reservada int para declarar un tipo de dato entero.

Puede almacenar un número de 16-bit es decir, 2 bytes (16 unos en binario 1111111111111111). En total son 65.535 números pero como almacena números positivos y negativos el rango de un int es de -32.768 a 32.767.

Algo a tener claro con las variables es que si declaras una variable int, estás ocupando 2 bytes de memoria. Da lo mismo si almacenas el 1 o el 30.000.

Otra particularidad que iremos viendo a lo largo de los tipos de datos es ¿ qué ocurre si nos salimos de rango es decir si intento almacenar el número 32.668?

Al contrario de lo que pueda parecer no produce un error y esto es un verdadero problema. Lo que ocurre es que se da la vuelta es decir, si tenemos una variable del tipo int con un valor de 32.767 ( el máximo número positivo) y le sumamos uno, el siguiente valor será -32.768.

Si sumamos dos el valor será -32.767 y así sucesivamente.

Lo mismo ocurre por debajo. Si tenemos una variable con el valor -32.768 y restamos uno, el siguiente número será el mayor positivo, 32.767.

Se que parece increíble pero es así. Cuando declaramos una variable debes ser consciente del valor que vas a almacenar.

Seguramente hagas operaciones, sumas y restas, y debes ser capaz de intuir los límites para declarar una variable de un tipo u otro.

Entero sin signo (unsigned int)

¿Qué ocurre si sabemos que sólo vamos a trabajar con números enteros positivos? En este caso podemos utilizar los enteros sin signo. La palabra reservada en C++ para este tipo de datos es unsigned int.

Utiliza la misma memoria que una variable int, 2 bytes (16-bit). Lo único que sólo utiliza la parte entera es decir su r ango es de 0 a 65.535.

El funcionamiento es igual, si sumamos uno a una variable cuyo valor es 65.535, el resultado será 0. Si restamos uno a una variable que valga 0, el resultado es 65.535.

Entero largo (long)

Si aún así necesitas almacenar números más grandes, también puedes utilizar el entero largo. En C++ la palabra reservada para este tipo de dato es .

Puede almacenar números de 4 bytes (32-bit). El rango de valores es de -2.147.483.648 a 2.147.483.647. Puede almacenar números positivos y negativos. Sin embargo puedes utilizar la palabra reservada unsigned long para almacenar solo números positivos.

Esto dota a este tipo de variables la capacidad de almacenar números solo positivos muy grandes. Mucho ojo con la memoria ya que es limitada. Debemos hacer un estudio previo para saber que valores vamos a almacenar.

Decimal (float)

Si quieres almacenar un número decimal con los tipos de datos que hemos visto hasta ahora no podrías. Para los números con decimales tenemos los números de coma flotante. En C++ se utiliza la palabra reservada float.

Para separar la parte decimal de la parte entera se utiliza el ".". Puede resultar extraño ya que nosotros utilizamos la ",". Esto es debido a la influencia anglosajona en los lenguajes de programación.

Con este tipo de datos podemos almacenar valores realmente grandes. El rango es de 3.4028235 x 10³⁸ hasta -3.4028235 x 10³⁸. Eso sí, solo utiliza 4 bytes de memoria (32-bit).
¿Cómo es posible que con un float podamos almacenar números mayores ocupando los mismos bytes , 4, que un long por ejemplo?
Es debido a como se trata internamente este tipo de datos. Para almacenarlo utiliza la notación científica.

Esto es beneficioso por un lado, ya que utiliza la memoria de una forma muy eficiente. Por otro lado es perjudicial ya que aplica un redondeo sin saber muy bien cómo lo hace.

En condiciones normales un float es bueno hasta 6 o 7 cifras incluyendo la parte decimal y la parte entera.

Byte (byte)

Es el tipo de dato más pequeño que hemos visto hasta ahora. En C++ se utiliza la palabra reservada byte y como indica su nombre, solo ocupa 1 byte de memoria.

Esto último lo hacemos utilizando el formateador B. Indica que después de esta letra viene un número en sistema bianario.

Booleano (boolean)

Es el tipo de dato que menos memoria ocupa, 1-bit. La palabra reservada en C++ es y puede tomar dos valores o 1 o 0.

He puesto varios ejemplos para explicar una cosa. Lo primero, 1 equivale a true (verdadero) y 0 equivale a false (falso).

Por otro lado, este tipo de dato es el único que no cumple la regla cuando se sale fuera de su rango. Como hemos visto anteriormente, cuando salimos por arriba o por abajo empezaríamos de nuevo.

Con una variable del tipo booleano lo que sucede es que siempre que sea 0 será falso y en caso contrario será siempre verdadero.

Carácter (char)

El último tipo de dato que vamos a ver en este curso de Arduino es el carácter. Se representa con la palabra reservada char en C++ y utiliza 1 byte de memoria (8-bit). Nos permite almacenar una letra de una forma especial.

Realmente estamos almacenando una letra como si fuera un número utilizando el sistema ASCII. Gracias a una tabla donde viene la correspondencia entre letra y número podemos saber de qué carácter se trata.

En el ejemplo vemos como podemos asignar un valor a la variable del tipo char de dos formas. Con la letra entre comillas simples (' ') o con el código ASCII.

Y con esto terminamos los tipos de datos básicos en Arduino. No son los únicos pero si que son los más utilizados y con los que más vas a trabajar sobre todo al aprender Arduino.

#4 Programar Arduino con funciones

Ya te he comentado que las funciones son una de las partes más importantes en un programa de Arduino. Aunque parezca algo avanzado es a lo que te vas a enfrentar primero en cualquier curso de Arduino.

Un programa empieza con dos funciones vacías, setup() y loop(). Cuanto antes te enfrentes a ellas, antes vas a aprender Arduino.

Las funciones tienen dos objetivos principales:

Mantener el código limpio y fácil de leer.

Tener un acceso rápido y fácil a trozos del código.

Llamada a una función

Cualquier lenguaje de programación tienen cantidades ingentes de funciones (incluidos C y C++ sobre los que se fundamenta Arduino). Para cualquier cosa que se repita hay una función.

Por eso es esencial ahora que estás en la fase de aprender Arduino, entender cómo hacer una llamada a una función.

La función digitalWrite nos permite sacar 5V o 0V por un pin. Para hacer esto tenemos que pasar la información del estado (HIGH serían 5V y LOW sería 0V) además del pin sobre el que queremos trabajar.

Esto es una llamada a una función típica de Arduino. Debes acostumbrarte con este término lo antes posible ya que lo utilizarás en muchas ocasiones.

Los parámetros de una función

Algunas funciones requieren de parámetros como hemos visto en el ejemplo anterior. Por ejemplo, la función digitalWrite necesita saber dos cosas: el número de pin y el estado (HIGH o LOW).

No es complicado ¿no? Ahora seguramente te estarás preguntando ¿cómo se qué parámetros admite una función? En este caso te lo he dicho yo pero en otros casos no es tan sencillo.

Lo más típico es acudir a la referencia del lenguaje. Es como si fuera una guía o manual de usuario. Casi todos los lenguajes tienen su referencia.

En Arduino la podemos encontrar en la web oficial. Guarda esta dirección porque la vas a utilizar más de una vez.

El mayor inconveniente es que está en inglés. Si entras en digitalWrite verás lo siguiente.

En la referencia de digitalWrite encontramos todo lo necesario para saber cómo utilizar esta función:

1. Syntax (sintaxis): cómo se escribe y cuantos parámetros admite.

2. Parameters (parámetros): explica cada parámetro y que significa.

3. Returns (retorno): en el caso de que devuelva algún valor la función, aquí te dirá el tipo de dato. La función digitalWrite no devuelve ningún valor por eso pone none (nada).

Es cuestión de tiempo que vayas aprendiendo la sintaxis y los parámetros que utilizan las funciones más comunes en Arduino. Ten paciencia :)

Diferentes usos de las funciones

Hasta ahora lo que hemos visto es una función, digitalWrite. Te permite modificar el estado de un pin. Si pones HIGH saca por ese pin un voltaje de 5V. Si pones LOW saca un voltaje de 0V.

Lo que realmente está haciendo esta función es algo físico. Está activando o desactivando algún mecanismo electrónico para suministrar 5V o 0V.

Pero existen otro tipo de funciones que nos dan información de un determinado pin. Por ejemplo, la función digitalRead. Esta función informa en que estado está un pin.

Para almacenar la información del estado del pin utilizamos una variable del tipo entero (int). Esta función solo puede devolver o HIGH o LOW.

La función digitalRead admite un parámetro. En el ejemplo pasamos como argumento el pin 5. Lo que hace esta función es comprobar el estado del pin y devolverlo a la variable estadoPin.

Todo esto lo podemos ver de nuevo en la referencia del lenguaje.

Donde comprobamos que esta función solo puede devolver HIGH o LOW.

Bien, hasta ahora hemos visto funciones que admiten parámetros pero también hay funciones que no tienen ningún parámetro. Por ejemplo millis().

Esta función lo que hace es calcular los milisegundos transcurridos desde que la placa de Arduino empezó a ejecutar el programa. Como ves no necesita ningún parámetro. Por si sola sabe lo que tiene que hacer.

Devuelve el número de milisegundos que han transcurrido en un entero largo sin signo como podemos ver en la referencia del lenguaje.

Pero también podemos crear nuestras propias funciones. Imagínate que creas una que nos permita encender una luz del salón.

En este caso no pasamos ningún parámetro y no nos devuelve nada.

Lo importante en esta sección es que las funciones tienen algo más detrás que la simple llamada. Podemos verlo como si fuera un iceberg.

Nosotros solo vemos una parte de la función pero por debajo hay mucha más información. Sin embargo, al principio sólo tienes que conocer cómo hacer llamadas a funciones. Más adelante ya serás capaz de programar las tuyas.

#5 La función setup() y loop() de Arduino

Esta es la última parte que vamos a ver en este curso de Arduino. Enlazando con lo que hemos visto de las funciones, voy a hablarte de las funciones setup() y loop().

Son las funciones más importantes de un programa y esenciales a la hora de aprender Arduino.

Procedimientos de un restaurante

Para que entiendas la función desempeñan setup() y loop() dentro de un programa de Arduino te voy a poner una analogía, seguro que lo entiendes mejor.

Imagínate que tienes un restaurante de comida rápida. Tu eres el dueño. Normalmente contratas a estudiantes de la zona para que trabajen unas horas.

Más o menos cada mes tienes algún empleado nuevo al que tienes que formar. Esto te lleva a tener dos procedimientos:

Procedimiento de apertura.

Procedimiento de atención a un cliente.

Los dos procedimientos están en el restaurante para que los empleados sepan que hacer en esos momentos.

El procedimiento de apertura indica al trabajador lo que tiene que hacer cuando abre el restaurante. Por ejemplo, subir el cierre, abrir las puertas, poner el cartel de abierto, sacar los ingredientes, etc...

Este procedimiento sólo lo hace una vez al día, cuando se abre el restaurante. Una vez terminado, se guarda en la estantería para la próxima vez que se abra el restaurante.

El segundo procedimiento indica lo que tiene que hacer un empleado cuando llega un cliente nuevo al restaurante. Es una enumeración de pasos.

Por ejemplo, preguntar cuantos son, buscar una mesa libre, tomar nota de la bebida, tomar nota de la comida, etc...

Por lo tanto un empleado recurrirá una vez al día al procedimiento de apertura, y cada vez que venga un nuevo cliente al procedimiento de atención al cliente.

Ahora mismo estás pensando ¿qué tiene que ver un restaurante con Arduino? Bueno, ahora lo comprobarás, pero un programa de Arduino tiene que hacer cosas similares a las que se hacen en este restaurante.

La función setup()

En un programa de Arduino, hay cosas que sólo tienen que hacerse una sola vez. Cosas como:

Iniciar la comunicación serie con el ordenador a través del puerto USB.

Configurar los pines en modo entrada o salida.

Mostrar un mensaje de bienvenida en una pantalla LCD.

Girar un servomotor a una posición inicial por defecto.

Iniciar un contador a cero.

Todas estas tareas se tienen que realizar una sola vez. Podemos decir que son las condiciones iniciales del programa. Este tipo de tareas son las que van en la función setup().

Vamos a comenzar a ver esta función más en detalle. En primer lugar, al igual que pasaba con las palabras reservadas o los tipos datos, la función setup() tiene un color especial en el IDE de Arduino.

Este color indica que el IDE de Arduino identifica esta función como un tipo especial que se utiliza para el control de la estructura del código. Como toda función tiene un paréntesis que abre y otro que cierra. Sin embargo esta función no necesita de ningún argumento para operar.

A la izquierda de la palabra setup está la palabra void (significa vacío). Indica que esta función no devolverá ningún valor o dato.

Por lo tanto, esta función no necesita ningún argumento y no devuelve ningún valor pero si que hace algo. Su trabajo consiste en ejecutar todo el código que hay dentro de ella. Esto se delimita con las llaves ({}).

La función setup es lo primero que se ejecuta cuando lanzamos el programa de Arduino. Una vez que se ejecuta la función setup, el programa irá línea por línea ejecutando cada una de ellas.

Lo más importante de esta función es que SOLO SE EJECUTA UNA VEZ. Esto es muy importante, el código que hay entre esas dos llaves solo se ejecutará una vez.

Es como el empleado que abre el restaurante, busca el procedimiento de apertura lo sigue a rajatabla y una vez que ha terminado lo guarda y pasa al siguiente procedimiento.

La función loop()

En un programa de Arduino, lo siguiente que se ejecuta después de la función setup es la función loop. Su significado es repetición y la función se parece a la función de setup.

No requiere de ningún argumento pero tiene los paréntesis de apertura y cierre. No devuelve ningún valor por lo que tiene la palabra a la izquierda.

A continuación tiene la apertura y cierre de llaves ({}). Al igual que al función setup, cuando se ejecuta la función loop va línea por línea ejecutándose.

La gran diferencia que existe entre la función es que cuando se ejecuta todo el código de la función loop, el programa vuelve al principio y vuelve a ejecutar todo. Entra en un bucle sin final una y otra vez.

Sucede lo mismo que en el restaurante con el procedimiento de atención al cliente. Cuando llega el primer cliente se ejecutan todas las tareas para atenderle. Luego viene otro cliente y se vuelven a ejecutar las mismas tareas, así indefinidamente.

Esto equivale a 20.000.000 de instrucciones por segundo. Sí, has leído bien, 20 millones :). Esto no quiere decir que son 20 millones de línea de código. Te recuerdo que el código que tu escribes luego se traduce a código máquina.

Cada línea de código que tu escribes se puede traducir a múltiples instrucciones pero aún así, si tenemos 1.000 instrucciones tardaría 0,00005 segundos. ¿Puedes imaginarte lo rápido que va? ?

Sin embargo, la analogía con el restaurante no encaja perfectamente con la función loop. El empleado siempre va a esperar a que llegue un nuevo cliente para iniciar el procedimiento. Esto no sucede en la función loop.

En el programa de Arduino, siempre que se llegue a la última línea de código de la función loop, volverá al principio para volver a ejecutar todo. No se espera a cualquier entrada externa para hacerlo.

Y con esta explicación sobre la función setup y loop damos por terminado este curso de Arduino desde cero.

Conclusiones curso de Arduino

Como digo en la introducción, este curso de Arduino desde cero está pensado para las personas que quieren entender que hay detrás de Arduino. Es una primera toma de contacto con el hardware libre.

Después de este extenso tutorial faltaría muchas cosas que ver dentro de la programación, pero con esto ya tienes unos buenos cimientos sobre los que construir.

Aprender Arduino, como cualquier otra disciplina, requiere de un esfuerzo previo. Hay que pasar una curva de aprendizaje sí o sí. Sin embargo, si uno tiene pasión por la electrónica y la programación, parece hasta divertido :)

Todo el contenido de este artículo es un resumen largo de 3 de los módulos del curso de Arduino del Campus de Programarfacil. Vas a encontrar todo este material, con vídeos y ejercicios propuesos.

Pero no solo eso, dentro del Campus podrás aprender Arduino orientado a temas como el IoT con Arduino MKR100 y NodeMCU. Es un área que me apasiona y que tiene mucho potencial tanto en el presente como en el futuro.

Cualquier aclaración, cualquier consulta o cualquier duda por favor déjalo abajo en los comentarios. Estaré encantado de ayudarte. :)

Gracias a Shutterstock por la cesión de las siguientes imágenes que aparecen en este artículo:

# data[].attributes.attachment_link.title
Curso de Arduino aprende a programar desde cero

# data[].attributes.attachment_link.description
Curso de Arduino para aprender a programar Arduino desde cero. Este curso de Arduino te iniciará en el maravilloso mundo de la programación y la electrónica.