Documentos de Académico
Documentos de Profesional
Documentos de Cultura
12
La programación es para todos y para todo incluso si tiene cierto
problema grande y complejo que nosotros deberemos de subdividir en varios
problemas pequeños que son mucho mas fáciles de solucionar hasta que
resolvamos el problema mas grande. vamos a tener un pensamiento
estructurada desarrollando lógica de programación que nos ayuda en la
lógica matemática y mejorar nuestra compresión de lectura. también la
programación nos ayudara en el futuro para desarrollar videojuegos
educativos y ocio, también nos ayudaría en nuestros diseños de arquitectura,
cuentas, finanzas y hasta podría ayudar a lelvar mas facil la vida a otras
personas.
“Todos deberían aprender a programar
porque los hace mas inteligentes”
Steve Jobs
NOTA: esta guía no es un compendio exhaustivo del sistema arduino, ya que seria muy extenso y avanzado
para abarcar todo el tema de electrónica y de la tarjeta arduino, ya que para los lectores avanzados se
percatara que en algunas paginas faltara de mencionar o explicar aspectos avanzados e interesantes (ya que
ahí libros que explica a detalle sobre la tarjeta, programación C++ o de electronica) ya que en esta guía abarca
lo básico como consejos, programación básica, leer un mapa de circuito básico y precauciones.
Este libro fue escrito teniendo en cuenta varios aspectos, se a escrito como un manual
completo y progresivo, el objetivo es llegar a que tenga todo lo necesario para no estar buscando
información externa y así comprender sobre el tema y no en libros de difícil comprensión y
lectura avanzada sin tener conocimiento básico, este libro esta escrito para entenderlo y leerlo
en forma secuencial a medida que vaya avanzando el libro en forma ordenada. Se recomienda
leerlo de la primera hasta la ultima pagina para comprender la teoría y conceptos básicos de
arduino.
La metodología utilizada en esta libro es fundamental en la explicación de cada detalle a
medida que avance, se utilizara códigos cortos y concisos para que no se puedan distraer o
desorienten al lector, ya que la idea no es presentar proyectos ya acabados y complejos, la idea
es exponer cosas básicas para comprender, terminado el libro el lector puede seguir
investigando por su cuenta para tener un amplio conocimiento del tema ya que hay libros que
abarcan en temas de (electricidad, electrónica, física, algoritmia, mecánica, acústica,
electromagnetismo, etc.) para el lector tenga iniciativa y empiece investigar por su cuenta.
La electricidad es aquello que nuestro dispositivos
necesitan para encender y funcionar como los
televisores, microondas, celulares, computadoras,
bombillas, etc. es una forma de energía que hace que las
cosas se muevan, calienten, iluminen y funcionen.
A nivel atómico (no visible a la vista), un electrón es aquel que se encuentra en todo
alrededor de nosotros, contiene dos signos distintos que al encontrarse se atraen y los polos con
el mismo símbolo se alejan entre ellos.
Ya que la electricidad es el movimiento de los
electrones de un lado a otro, y los electrones llevan
consigo la carga como para encender un televisor una
bombilla y otros, funciona con el mismo principio del
movimiento de los electrones.
Digamos que la electricidad es como el agua,
poniendo como ejemplo (Figura 2.1) La carga negativa
tiene que avanzar hasta encontrarse con el otro polo
que seria el positivo, pero tiene que pasar por el
interruptor y luego por la bombilla para encenderlo,
aquí entra la frase de cerrar circuito por el interruptor
Figura 2.1 que provoca que la bombilla encienda y la corriente
haga paso por su camino, en cambio el circuito abierto
es cuando el interruptor lo abrimos el pase de la corriente para que no se encuentre a través con
el otro polo que provoca que la bombilla no encienda y que los polos ya no se atraigan.
PRECAUCIÓN:
En caso el circuito no se encuentre con un dispositivo como por ejemplo la bombilla, al hacer contacto los dos
polos directamente pasara que la energia sera remplazada con calor, asi que tener mucho cuidado cuando
hagas practicas fisicas ya que podria causarle quemaduras y dañar el cable o circuito que estan trabajando.
Figura 3.1
Referencia: en el dato de electrónica y electricidad, lo que se debe tener en cuenta los conceptos vistos que
están unidos entre si. recordando estos ejemplos del agua podemos diferenciar.
• Voltaje, diferencia de potencial o tención “Medida en Voltios” (presión ejercida por el agua).
• Corriente o intensidad “Medida en amperios” (Flujo de agua).
• Resistencia “Medida Ohm” (Grosor de la manguera).
Para reconocer la relación entre ellos se llama “la ley de ohm” como la formula ( I = V / R ) dicho de otro modo
como ( V = I . R ) o ( R = V / I )
Figura 5.2
Por otro lado, varias veces se presentan alternativas de una forma ligeramente distintas a
la mostrada anteriormente, utilizando el concepto de “tierra” (”ground” en ingles) es simplemente
un punto del circuito que elegimos solo para distinguir el uso de la batería ya que se elige
arbitrariamente como referencia, en otras palabras el punto donde diremos que el voltaje es 0
como utilidad practica, ya que varias veces el punto de tierra se asocia al polo negativo de la pila.
Ya que el nuevo concepto simplifica o disminuye muchas veces el dibujo de nuestro
circuito, representamos el punto de tierra con el símbolo ( ), el circuito se dibujaría de la
siguiente manera:
Figura 6.1
Figura 7.1
En el diagrama vemos I1 representa la intensidad de
corriente que atraviesa R1 e I2 la intensidad de corriente que
atraviesa R2. si el circuito esta alimentado por una bateria de
10V y 2 resistencias cuyo valor es de R1 = 1Ω y R2 = 4Ω,
entonces para calcular la intensidad que circula en R1 se
debe realizar la operación:
I1 = 10V / 1Ω = 10A
para calcular la intensidad que circula R2 debería ser:
I2 = 10V / 4Ω = 2,5A
la intensidad total que circula seria la suma de los dos: Figura 7.2
I = I1 + I2 = 10A + 2,5A = 12,5A
Viendo los ejemplos anteriores, podemos saber un par de formulas que nos vendrán bien
en toda “la guía de electrónica y arduino para jóvenes y adultos” para simplificar los circuitos. ya
que obtener 2 resistencia conectadas en serie o paralelo, es posible remplazar nuestro calculo
por una sola resistencia ya que el comportamiento sea total equivalente.
En caso de conexión en serie, el valor de la resistencia seria dado por R = R1 + R2
En caso de conexión en paralelo, el valor de la resistencia se calcula con la formula
R = (R1 . R2) / (R1 + R2)
Figura 7.3
NOTA: tener en cuenta que dependiendo la formula cuando conectan resistencias en paralelo, el valor de R
resultante siempre es menor que el valor de las resistencias implicadas
El divisor de tensión solo es un circuito conectado a una resistencia en serie con cualquier
dispositivo eléctrico, la idea es reducir la tensión aplicada a dicho dispositivo, poniendole un valor
seguro para no dañarlo, ya que el divisor de tensión sirve para obtener un voltaje menor que el
voltaje original.
La reducción mayor o menor que consigamos de la tensión final depende del valor de la
resistencia que utilicemos como divisor, a mayor sea el valor de resistencia mayor reducción de
tensión sera, los valores se calculan fácilmente usando el ejemplo en concreto en la (figura 8.1)
como el esquema siguiente.
V2=(R2.V)/(R1+ R2)
quedo claro la expresión que V2 siempre sera
proporcionalmente menor a V, y según sea R1 mayor, V2 sera
menor.
Figura 8.1
NOTA: todo es teoría, ya que el valor numerico de mAh impreso sobre la bateria debe ser tomado solo como
una aproximación, y debe tener en cuenta solamente en los rangos de niveles de consumo (medidos en
unidades C) especificados por el fabricante, ya que para altos consumos ya sabemos que el valor no puede
estar hecha con presicion
Figura 10.2
Precaución: es muy importante asegurarse que las pilas o baterías conectada en serie o paralelo sean del
mismo tipo (alcalinas, NiMH, etc.), sean del mismo modelo y voltaje. si no se sigue eso entonces el
funcionamiento puede ser inestable e incluso peligroso: en el caso de las baterías de LiPo, pueden llegar a
explotar si no se sigue esta norma, ya que se recomienda conseguirlo en packs ya que nos ofrecen la garantia
de sus unidades que son la misma capacidad, resistencia interna, etc. para no causar problemas.
Figura 10.3
Los adaptadores AC/DC básicamente están formados por un circuito transformador, en la
cual convierte el voltaje AC de voltaje DC, la corriente alterna varia mucho los polos con
frecuencia ya en el punto de salida sale la corriente rectificada a comparado de la entrante para
conectar nuestro dispositivos (como por ejemplo cargador de celular, DVD, equipo de música,
monitores, etc.).
Figura 11.1
NOTA: Algunos paises utilizan corriente alterna de 110V, no se tendria ningun problema en utilizar la fuente
de la (figura 11.1) pero en raros los casos tengas un aparato o fuente que utilice solo 100V a 120V, debes
verificar primero que voltaje utiliza tu domicilio antes de conectar el aparato si no la fuente podria explotar, en
caso si es de 220V debes que conseguir un transformador de 220V AC a 110V AC para no tener ningun
problema con el aparato, dispositivo o fuente a utilizar.
Figura 12.1
Teniendo esta tabla (figura12.1) podemos resolver el ejemplo que tenemos de la (figura 12.2)
1) verde(5), blanco(9), marrón(1)(x), dorado(+/-5%)
59Ω x 10Ω = 590Ω +/- 5%
puede variar +/- de 29.5Ω
1
2) azul(6), gris(8), rojo(2)(x), plateado(+/-10%) 2
68Ω x 100Ω = 6800Ω +/- 10%
Figura 12.2
puede variar +/- de 680Ω 3
4
NOTA: siempre debemos que tener en cuenta en como leer las resistencias, sabiendo cual seria la tolerancia
seria el ultimo en leerlo y a su izquierda esta el multiplicador de ceros, ya que siempre debe que haber un
multiplicador y las demás franjas seria fácil de leerlo ya que seria el valor nominal. (ojo también existen
resistencias de 3 a 6 bandas de colores y la lectura sigue siendo en el mismo orden)
Figura 13.2
Interruptor NO
El símbolo de los interruptores seria como la (Figura 15.5), ya que se
(normalmente abierto) identifica mas por los dos círculos de los dos lados, hay veces que
identificar un interruptor normalmente cerrado se hacia ver con los dos
Interruptor NC
(normalmente cerrado)
puntos para identificar el componente.
Figura 15.5
Los relé o también llamado relay son como interruptores eléctricos osea
sirve para cerrar o abrir un circuito, estos componentes requieren tener carga
eléctrica, lo bueno de estos componentes es que se puede introducir una carga
mínima para accionar la corriente de igual o mayor voltaje, incluso de corriente
alterna AC para que pase por el circuito o componente a alimentar.
Figura 15.6
Ya que estos componente son los favoritos a usarlo con las tarjetas inteligentes para
encender luces a manera inteligente o dependiendo de un sensor o acción física.
También existen los llamados Relay estado solido son mas pequeños y no producen
ningún sonido al poner corriente al relay puede pasar menos corriente para cerrar el circuito,
comparado a los relay normales que suenan al pasar corriente para cerrar el circuito y se
desgastan después de un tiempo por el uso.
Figura 16.3
Una placa de pruebas o placa de prototipado y
también mas conocido como Protoboard, es un pequeño
tablero con orificios que se encuentra conectados
eléctricamente entre si de manera interna ya que podemos
insertar las patas o pines de nuestro componente electrónico
una infinidad de veces que queramos, hay veces que se
necesita hacer un circuito sin la necesidad de soldar para
hacer pruebas antes del nuestro funcionamiento y así poder
modificar fácilmente todo lo que queramos. Figura 17.1
Figura 17.2
Figura 17.3
Mostraremos como conectar y usar un protoboard con unos ejemplos siguiendo los
planos del circuito electrónico para profundizar un poco.
Figura 18.2
Figura 18.3
Ejemplo 2: en la figura siguiente se realiza una muestra de conexión de tres
componentes en paralelo ( conectar 3 resistencias).
Figura 19.2
Figura 19.1
Figura 19.4
Figura 19.3
Ejemplo 4: en la figura siguiente se muestra una conexión de tres componentes en serie
como un LED, una resistencia y un pulsador.
En el circuito anterior
(Figura 20.1) el esquema se
vería de esta manera.
Figura 20.2
Figura 20.1
Figura 20.3
Figura 20.4
Ejemplo 5: el siguiente esquema muestra la conexión de tres dispositivos en serie como
un LED, una resistencia y un potenciómetro.
En el circuito anterior
(Figura 21.1) también observamos
que se conecta la patilla central del
potenciómetro y uno de sus
extremos, pero el otro no.
Figura 21.2
Figura 21.1
Cables rojo y negro con punta: el cable negro siempre va conectado al zócalo negro del
multímetro solo hay uno ya que esta señalado con la palabra “COM” (significa común) mientras
el cable rojo se conecta al zócalo adecuado dependiendo la magnitud que quiera medir (Ya que
hay varios). si se quiere medir el voltaje, resistencia, frecuencia o continuidad se debe que
conectar al zócalo que esta con un símbolo “+VΩHz”, pero si se quiere medir intensidad de
corriente se debiera conectarse el cable rojo al zócalo rojo marcado con el símbolo “mA” o bien
“A” dependiendo del rango a medir.
Para medir el voltaje (continuo) existente
entre dos puntos de un circuito alimentado,
deberemos conectar los cables convenientemente
al multímetro para colocar seguidamente la punta
del cable negro en un punto del circuito y la del
cable rojo en el otro (de tal forma que en realidad
estemos realizando una conexión en paralelo con
dicho circuito). Seguidamente, moveremos la llave
selectora al símbolo V- y elegiremos el rango de
medición adecuado. Si no supieramos el rango, lo
que podemos hacer es empezar por el rango más
elevado e ir bajando paso a paso para obtener
finalmente la precisión deseada. Si bajamos más
de la cuenta (es decir, si el valor a medir es mayor
que el rango elegido), lo sabremos porque a la
izquierda del display se mostrará el valor especial
“1”. Figura 22.1
Tal como vemos la (Figura 22.1) observamos la función del multimetro midiendo la pilas
sin trabajar y en el otro trabajando mientras es utilizando en el circuito.
También podemos utilizar la posibilidad ofrecida por el multímetro de medir voltaje
continuo para conocer la diferencia de potencial generada por una determinada fuente de
alimentación (y así saber en el caso de una pila, por ejemplo, si está gastada o no). En este caso,
deberíamos colocar la punta del cable rojo en el borne positivo de la pila y el negro en el negativo
y proceder de la misma manera, seleccionando la magnitud y rango a medir.
Para medir la resistencia de un
componente, debemos mantener desconectado
dicho componente para que no reciba corriente de
ningún circuito. El procedimiento para medir una
resistencia es bastante similar al de medir
tensiones: basta con conectar cada terminal del
componente a los cables del multímetro (si el
componente tiene polaridad, como es el caso de
los diodos y de algunos condensadores, el cable
rojo se ha de conectar al terminal positivo del
componente y el negro al negativo; si el
componente no tiene polaridad, esto es
indiferente) colocar el selector en la posición de
ohmios y en la escala apropiada al tamaño de la Figura 23.1
resistencia que se desea medir. Si no sabemos
aproximadamente el rango de la resistencia a medir, empezaremos colocando la ruleta en la
escala más grande, e iremos reduciendo la escala hasta que encontremos la que más precisión
nos dé sin salirnos de rango. Igualmente, si la escala elegida resulta ser menor que el valor a
medir, el display indicará “1” a su izquierda; en ese caso, habrá que ir subiendo de rango hasta
encontrar el correcto.
Atención: este modo solo se puede utilizar cuando el circuito a medir no está recibiendo
alimentación eléctrica. Si hay continuidad, el multímetro emitirá un sonido (gracias a un
zumbador que lleva incorporado); de lo contrario, no se escuchará nada. También se puede
observar lo que muestra el display según sea el caso, pero el mensaje concreto depende del
modelo, así que se recomienda consultar las instrucciones de cada aparato en particular.
Una aplicación práctica del multímetro funcionando como medidor de continuidad es la
comprobación de qué agujeros de una protoboard pertenecientes al mismo nodo mantienen su
conectividad, ya que después de un uso continuado es relativamente fácil que esta se estropee.
Un sistema electrónico es un conjunto de componentes, sensores, circuitería de
procesamiento y control, actuadores (ejemplo como motores o LED) y fuente de alimentacion.
Los sensores obtienen información de mundo físico procesandolo en manera de señal
electrica, la manipulacion de dicha señal dependera de la circuiteria interna de control. ya que
existen sensores que leen como temperatura, humedad, movimiento, sonido, etc.
Los circuitos internos de un sistema electrónico reciben la señal eléctrica mandada de
los sensores, ya que dependerá tanto el diseño de distintos componentes de hardware del
sistema, como la cantidad de instrucciones (es decir la programada) que dicho hardware tenga
grabada y que seejecutaría de manera automática.
Los actuadores son los componentes que actúan directamente sobre el mundo físico.
cuando la circuteria interna termina de procesar manda la señal hacia esos actuadores para
cumplir cierto proposito del sistema eléctrico. como ejemplo los actuadores seria un motor, una
bombilla, un altavoz, etc.
La fuente de alimentación es la energia necesaria que puede realizar todo el proceso de
la circuitería. ya que son como ejemplo las pilas, baterías, adaptadores AC/DC, etc.
Figura 25.1
Precaución: como se dijo que el hardware y software son libres, no significa que la marca de “ARDUINO” lo
sea ya que si mas adelante creas tu proyecto con placa personalizada y aun así utilizando su marca (Logo y
nombre). el riesgo es que mas adelante la empresa misma de Arduino te podria meter una demanda por utilizar
su marca registrada en unos de tus proyectos. ( lo mas recomendable es que tapes, cambies o elimines su
marca)
Referencia: Las placas Arduino originales en su misma plataforma están costando como 27.6$ un aproximado
de S/80 soles, en mercado de importación chino como “AliExpress” esta costando aproximadamente como
16$ a 23$ y demoraría la entrega aproximadamente 40 días hábiles o menos, hasta el microcontrolador con
todo sus componentes para soldar sin la placa esta aproximadamente 4$ o menos, para asi mas adelante si
decea hacer proyectos profesionales con placas personalizadas con tu propia marca.
Figura 27.1
NOTA: en esta guia no nos centraremos en todas las tarjetas de arduino solo en el “Arduino Uno” por que la
guia sirve para abarcar lo fudamental de electronica y arduino.
Figura 28.2
Tal como vemos sobre la tarjeta debemos de conocer que en la parte digital los que tienen
un símbolo (~) son los PWM en otras palabras salidas analógicas, que sirve para prender y
apagar una luz suavemente y controlar la velocidad de un motor a tu antojo.
También lo que debemos tener en cuenta como los arduino oficiales y no oficiales tienen
igual configuración o posición de los puntos, lo único que cambia es el reconocimiento del
software y unos pequeños detalles muy minucioso y técnico que no te darías cuenta al momento
de usarlo para nuestra guía.
En cuando a la Memoria del Arduino, debemos de saber que para guardar nuestro
programa dentro de la tarjeta tiene limites como un USB para guardar cierta cantidad de datos.
ya que el microcontrolador “ATmega328” tiene 32 KB, por que el 0,5 KB ocupa el gestor de
arranque, 2 KB de SRAM (algo parecido de la RAM de computadoras) y 1 KB de EEPROM (seria
como un pequeño disco duro).
La alimentación del Arduino, existe ciertas maneras de alimentar la placa de desarrollo
el mas común seria por USB que lo alimenta con 5V que es lo recomendable, en cambio los
adaptadores de AC/DC también alimentaria con energía desde un rango de 7 V a 12 V, lo bueno
de las placas arduino es que tiene su regulador de voltaje para no exponer al microcontrolador
con voltajes altos que podría quemarlo y lo mas recomendable es utilizarlo con 7 V como máximo
para no quemar el regulador de la placa de desarrollo, también se puede agregar por cableado
en los puntos de la placa donde esta nombrado “Vin” que entraría la corriente pero como máximo
7V también se puede agregar en los puntos “5V” pero la diferencia con “Vin” pasara por un
regulador para alimentar la placa, en cambio en el punto “5V” entraría de frente a los circuito ya
que debe de ser 5V máximo no mas, ya que pudrías dañar la placa.
Los microcontroladores funcionan con un circuito simple o incluso avanzado con
sensores incluidos, mas adelante va a poder programarlo con tan solo el USB conectando ya que
debería tener ciertos componentes básicos y poder gravar el programa (ya que normalmente no
vienen en blanco de tal como observamos la siguiente figura.
Mas datos:
Si en caso mas adelante
quieres hacer un proyecto mas
profesional con tu propia placa,
puedes consultar en la misma
plataforma de arduino, con la palabra
clave ”quemar bootloader arduino”
donde te enseñan como gravar el
ejecutable de arduino dentro de su
memoria o consultar por internet e
incluso por otros medios.
Figura 29.1
El IDE o mejor dicho “Entorno de desarrollo integrado”, seria una herramienta de software
que asiste a los programadores a desarrollar código de software de manera eficiente como
básicamente escribir y probar sus propios programas con comodidad. (se llama “sketch” en su
propio mundo de arduino)
Decimos que un microcontrolador es “programable”, cuando nos permite grabar en su
memoria de forma permanente (solo hasta que regrabemos de nuevo si es necesario) el
programa pongamos en el microcontrolador y lo ejecute. si no ponemos ningún programa en su
memoria, este no hará nada.
NOTA: En la Instalación del IDE Arduino y el driver ch340 solo se puede obviar, si en caso no tenga la placa de
desarrollo para hacer la prueba, ya que hay otras alternativas mas adelante incluso para seguir aprendiendo.
Figura 30.1
Una vez dentro de la pagina oficial de Arduino (”https://www.arduino.cc/”), seleccionamos
donde dice “SOFTWARE”.
Figura 31.1
Figura 31.2
Una vez encontrado el “Arduino IDE 1.8.x” al constado donde dice “DOWNLOAD
OPTIONS” (opciones de descarga), seleccionamos “Windows Win 7 and newer“ ya que esta
funciona de la versión de Windows 7 hasta el Windows 11 (la versión actual que esta
apareciendo).
Figura 32.1
nos pone en esta página que es para contribuir con una donación de la misma arduino, ya
que si solo quieres descargar seleccionas “JUST DOWNLOAD”
Figura 33.1
Figura 33.2
Nos aparecerá la ventana que vemos en la “Figura 34.1" le ponemos “I Agree” y luego la
siguiente ventana (Figura 34.2) nos mostrara la instalaciones de componentes, ya que tenemos
que verificar que todo este seleccionado y le ponemos “Next >”.
Luego nos muestra en que ubicación se instala el IDE (Figura 34.3) y le ponemos
“Install” y procede con la instalación, esperamos unos minutos y nos saldrá unas advertencias
al instalar tu lo pones aceptar a todas, ya que son instalaciones de compatibilidad de la tarjeta de
desarrollos, luego cuando diga “Completed” (significa completo) le damos a “Close”.
El siguiente paso seria ir por el navegador de google buscamos la palabra clave “ch340
driver”, y seleccionamos el primer enlace.
Figura 35.1
Figura 35.2
Ya ubicado procederemos en seleccionar el texto azul “Windows Ch340 Driver” para
descargar el archivo.
Figura 36.1
Figura 36.2
Se abrira esta ventana (Figura 36.3), le pones en “INSTALL” para que descargue el
driver y esta listo para que utilices tu tarjeta genérico en Arduino IDE.
Figura 36.3
Tal como vemos las partes de
la ventana del Arduino IDE
identificando cada parte y
herramientas que mas utilizaremos
mientras avanzemos esta guia, ya
que seria muy util saber que cosa
hace cada herramienta antes de
programar nuestra tarjeta de
desarrollo.
En la barra de herramientas
son las opciones mas utilizadas de la
IDE, ya que en esta guía no se tocara Figura 37.1
mucho los menús ya que abarcaría
temas avanzados de explicaciones a profundidad, ya que se utilizaría algunas opciones como
para seleccionar el tipo de modelo de tarjeta de desarrollo para grabar el programa, la
comunicación de USB que se esta utilizando y librerías.
Verificar/Compilar
Verificar el código en busca de errores, incluso es un requisito hacerlo ya que no
grabaría de frente un código erróneo
Subir
Carga tu código a la placa de desarrollo, asegurate de guardar o verificar tu sketch
(proyecto) antes de cargarla, ya que al no guardarlo pasaría errores mas adelante con el IDE
Nuevo
Crea un nuevo proyecto, al hacerlo también abre una ventana nueva.
Abrir
Muestra un menú con todos los proyectos de tus sketchs y ejemplos de librería de la
misma Arduino IDE
Salvar
Guarda tus sketchs de tu proyecto de arduino IDE
Monitor Serie
Muestra datos serie enviados desde la placa de desarrollo (placa serie o USB) e
incluso se puede enviar datos a la placa, introduciendo el texto y hacer clic en el botón
“Enviar” o presionando la tecla “Enter”.
Archivo
En “Archivos” veremos las opciones básicas que se
utilizarían normalmente e incluso también tiene la opción llamado
“ejemplos” que te da lo básico antes de programar para que uno
mismo lo investigue en la misma plataforma de arduino, también
lo interesante que tiene la opción de “Configurar Pagina” e
“imprimir” que sirve que tengas programación impreso en papel,
solo en caso de presentarlo y corrégirlo. en caso que tengas el
arduino en ingles, para cambiar de idioma es por “preferencias”,
ya que tiene el “editor de idioma” para que lo cambies a
conformidad suya, e incluso cambiar la ubicación para guardar de
sus proyectos.
Figura 38.1
Programa
En “Programas” vemos algo parecido, las dos
primeras opciones de barras de herramientas que seria
“Verificar/Compilar” y “Subir” ya que explicamos en la
anterior pagina lo que hacen y “Mostrar Carpeta de
Programa” ya que nos mostraría la ubicación del archivo en
explorador de archivos en caso quieras guardarlo en otra
ubicación una copia y la de “Incluir librería” son comandos
que nos facilita al programar en arduino IDE para que sea
Figura 38.2
mas sencillo de trabajarlo y entenderlo.
Herramientas
En “Herramientas” lo que mas vamos a utilizar es
donde dice “Placa”, “Puerto” y “Obtén información de la
placa”.
En “Placa” solo están puestas lo básico de la misma
arduino (existen mas placas de desarrollo que se puede
agregar ademas de arduino) ya que nosotros mismo
tenemos que seleccionar la placa que estamos utilizando.
En “Puerto” son las comunicaciones a base por USB
ya que normalmente el “COM1” es de la computadora por
defecto, y cuando conectas la placa de desarrollo
aparecerá como “COMx” (”x” es referencial a un numero) Figura 38.3
ya que nosotros tenemos que seleccionarlo manualmente.
En “Obtén información de la placa” es tal como dice el nombre pero dependiendo en
cual este seleccionado en “Puerto” ya que obtendrá la información ahí, ya que seria útil para
las placas de desarrollo genéricas y en caso que tengas varias placas de desarrollo
conectadas para identificarlo.
Ayuda
En “Ayuda” tiene varios opciones que te ayudaría a entender a profundidad ciertos
temas como el “Entorno” (el IDE), “Problemas” (como hardware y software), ”Referencia”
(Como comandos básicos y avanzados de IDE) y otras. ya que te traslada en la plataforma de
arduino con toda su información para resolver toda duda.
Ya terminado de Instalar el Arduino IDE y su driver, procederos en verificar si el software
reconoce el hardware, a continuación abrimos Arduino IDE y luego procederemos a conectar
nuestra tarjeta de desarrollo con nuestro cable USB.
Figura 39.2
Figura 39.1
1
3 4
Figura 39.3
En la nueva ventana que apareció (Figura 40.1), se lleno de código, ya que nosotros nos
sirve para subirlo a la placa para verificarlo, debemos de decir al Arduino IDE en donde se sube el
código ya que el siguiente paso seria (Figura 40.2) ir en la barra y seleccionar “Herramientas /
Puerto” observamos dos puertos serie ya que el “COM1" es muy común que aparezca igual ya
que pertenece a las de comunicación ya que se obvia y la otra opción seria el “COM3" (aparece
el nombre de la placa solo si es de la misma placa de arduino).
Figura 40.2
Figura 40.1
Figura 40.3
Luego le damos clic en “Subir” para que cargue el código a la placa, esperamos unos
minutos hasta que diga “Subido”.
Figura 41.1
Ya llegado hasta aca observamos que la placa esta que parpadea una luz por unos
segundos y luego se apagara, entonces asumiremos que si hay comunicación con la tarjeta sin
problemas en el software, entonces diremos que ya llegaste a programar la tarjeta de arduino.
Es una aplicación web completamente gratuita para diseño 3D, electrónica y codificación,
ya que este software gratuito no solo esta hecho para niños sino también para jóvenes y adultos
e incluso para los profesores para enseñar a sus alumnos, ya que la empresa que lo diseño fue
Autodesk que es el líder mundial en tecnología de diseño y fabricación.
También es mas utilizado para hacer diseños en 3D y luego exportarlo para llegar a
imprimirlo en 3D, incluso también es compatible con Minecraft y Lego que seria la opción favorita
de los niños cuando inicien con el aprendizaje con el diseño y la impresión 3D, así también como
la programación de circuitos.
En esta guía se utilizara tinkercad por la simulación de circuitos electrónicos, arduino para
programación por código y bloques. Practicaremos lo básico de la programación por bloques
hasta tocar la programación por código, (Ya que la programación por bloques esta hecho para
aprender en niños y jóvenes, pero su uso limita ciertas opciones).
Para utilizar Tinkercar lo primero que tenemos que hacer es buscar en el navegador la
palabra clave “tinkercad” y en la primera opción aparecerá la pagina que hay que ingresar para
poder utilizar Tinkercad le hacemos clic.
Figura 41.2
Ya dentro de la pagina le damos clic en “Registarse”, debido que el requisito mínimo es
que tengamos una cuenta en tinkercad o mejor dicho en Autodesk ya que son los creadores del
software.
Figura 42.1
Dentro en registro (Figura 42.2) le damos a “Crear una cuenta personal”, y luego de eso
nos da varias opciones de registro como correo electrónico, por cuenta de Google o por Apple.
ahí seleccionas lo que mas te convenga y verificas tu cuenta a base de la alternativa de correo
que selecciono.
Figura 42.3
Figura 42.2
Ya con su cuenta verificada, ingresas con tu cuenta creada y ya puedes utilizar libremente
tinkerkad, puedes hacer clic en “+ Nuevo” para empezar hace un proyecto de diseño 3D,
Circuito o bloques de código. si deseas aprender como usarlo, haces clic en “Aprendizajes” y te
enseña paso a paso sobre la plataforma e incluso el interfaz es simple ya que esta hecho para
que lo utilice niños y jóvenes.
Figura 43.1
NOTA: Lo bueno de Tinkercad es que se guarda automaticamente todo lo que estas haciendo ahi, e incluso
puedes abrirlo en cualquier computadora sin gastar mucho recursos en ella (como espacio de disco duro,
memoria RAM o Procesador GPU).
Si aun no tienes tu placa de desarrollo o algunos de los componentes para aprender no te
preocupes, ya que gracias a tinkercad no tendrás una excusa para no seguir aprendiendo.
Figura 44.1
Debemos de conocer todo del interfaz tal como vemos en la (Figura 44.2) y sus partes.
Lista de Componente (Lo utilizado)
Vista Esquema
Vista del Circuito
Menú Nombre del proyecto
Barra de
herramientas
Ap
Ro
Op
ari
tac
cio
Zo
en
ión
ne
omoom d
cia
sd
(z
de
de
en
lC
de e tod
ca
ota
om
ble
ajuo tu
po
ad
ne
stecircu
Espacio de
nte
Trabajo
o)it
Lista de
Componentes
Figura 44.2
Lo bueno de Tinkercad es que no solo nos ofrece algunos componentes eléctricos,
sensores y fuentes de alimentación, sino también ofrece la placa de arduino que también hace
simulaciones a casi tiempo real y codificación por bloques y texto por la barra de herramientas en
el botón “Código”, pero para mostrar eso debemos que seleccionar en el espacio de
componentes la placa de desarrollo Arduino y ponerlo en cualquier parte del espacio de trabajo.
Figura 45.1
Tal como vemos le damos el botón “Iniciar simulación” y observamos que parpadea el
pequeño LED en la placa de desarrollo y al darle “Detener simulación” detiene el circuito o apaga
el circuito.
Antes de seguir avanzando debemos que descifrar estos bloques lo que están haciendo y
lo que significan (Figura 45.2).
En cambio si trasladas los cuatro bloques dentro del bloque “al iniciar” lo que pasara es
que estará prendido por un segundo y estará apagara por un segundo y se acabo.
NOTA: Debemos que saber que los bloques tiene cierto orden, ya que lo primero que ejecutara por defecto
siempre es el bloque “al iniciar” y luego ejecutara el bloque “siempre” infinitas veces.
Ya sabiendo lo que podemos hacer entonces empezamos con un circuito simple pero
seleccionando un punto de salida que nosotros queramos de la placa de desarrollo, siguiendo el
circuito de la (Figura 46.4) armaremos nuestro circuito en nuestro espacio de trabajo y el punto
de referencia de nuestra placa de desarrollo, tal como vemos agregaremos nuestros
componentes electrónicos para hacer el circuito.
4
220Ω
Figura 46.4
Ya que están todos los componentes requeridos y lo queremos es cambiar el valor de la
resistencia para eso debemos que seleccionarlo y aparecerá una pequeña ventana celeste, por
defecto nos pondrá 1KΩ (1KΩ = 1000Ω) y ya que nosotros queremos de 220Ω como requiere el
circuito, pondremos en valor 220 y seleccionamos el símbolo en “Ω” sin la “K” de kilo. y lo mismo
pasara con el LED te dará las opciones de cambiar el color, ya que el color lo seleccionas a tu
preferencia.
Figura 47.1
Figura 47.2
Figura 48.4
En caso de si los bloques no se pueden llegar a cambiar o ver
todo el bloque, arriba del basurero hay tres círculos que
nombraremos su funciones como lo siguiente:
- El primero hace zoom de acercamiento.
- El segundo hace zoom de alejamiento.
- El tercero ajusta el zoom hasta ver todos los bloques.
y para navegar o moverte en la ventana de bloques tienes que tener
apretado el clic derecho del mouse en la parte blanca del navegador
y moverte libremente.
Figura 49.1
Figura 49.4
observamos que logramos hacer tal como nuestro circuito nos pidio pero con el tiempo
que nosotros deseemos ponerlo.
Para trabajar nuestro circuito como en la vida real tenemos que hacerlo como es, ya que
tampoco podemos sostener tantos componentes en la mano solo para hacer la prueba, para eso
existe el protoboard (Placa de prueba) que es la manera de juntar componentes sin soldar las
puntas de ellos.
Para ello en la ventana de componentes buscamos “placa de pruebas” y lo ponemos en
nuestro proyecto.
Figura 50.1
NOTA: Tambien cuando acercas el puntero en cualquier punto del protoboard, ademas de cuadro rojo de
seleccion tambien nos muestra una linea verde donde nos indica que hay soldadura para unir los puntos.
Seleccionamos donde dice “Bloques + Texto” para trabajar los bloques y visualizar el texto
y nos aparece la ventana en doble de como se vería nuestro bloques de manera en código en la
(Figura 51.3).
Figura 51.3
NOTA: También puede trabajarlo de esta manera, ya que lo veria en tiempo real como se veria nuestros
bloques en manera de código de lenguaje C++, al texto del código no se puede hacer ningún cambio o
modificarlo de casualidad ya que solo es visualización.
Ya llegado a este paso abrimos nuestro Arduino IDE y luego abriremos un nuevo proyecto
para ingresar nuestro código nuevo en el software, luego lo grabamos o salvamos con un
nombre que nosotros pongamos en cualquier ubicación de nuestra computadora.
Nos vamos en Tinkercad a lado de programación de
bloques, seleccionamos todo el código en texto y tecleamos
“Ctrl + C” (Copiar) y luego nos vamos en Arduino IDE ,
eliminamos todo el texto que esta en el editor y pegamos con
“Ctrl + V” (Pegar) el nuevo código que copiamos de
Tinkercad y “guardamos” nuestro avance.
Figura 52.1
Figura 52.2
NOTA: Antes de conectar la placa de desarrollo por USB, tienes que verificar dos veces que su circuito este
bien conectado y que este en la misma serie de soldadura del protoboard y no cruzado o equivocado de polos.
La estructura es la base de programación antes de armar todo nuestro código ya que son
menos de dos partes o funciones que encierran bloques de declaraciones
setup()
La función “setup” es como el de la programación de bloques “al iniciar”, seria
igual ya que se ejecutaría la primera función en el programa y solo es ejecutada una
vez, y es usada para asignar “pinMode” e iniciar las comunicaciones de serie.
Figura 53.2
loop()
La función “loop” se ejecuta continuamente leyendo entradas y activando
salidas, etc. ya que esta función es el núcleo de todos los programas Arduino y hace
casi todo el trabajo en la placa de desarrollo.
Figura 53.3
NOTA: Ambas funciones como setup() y loop() son requeridas para que el programa funcione.
Una función es un bloque de código que tiene un nombre y un grupo de declaraciones que
se ejecutan cuando se llama una función. son algo parecidos como las funciones integradas
como “void setup()” y “void loop()” e incluso se pueden escribir unos nuevos.
Las funciones son generalmente para ejecutar tareas o eventos repetitivos y reducir el
desorden en un programa como por ejemplo:
Almacenaje
Ejecutor
Figura 54.1
Como observamos hicimos el mismo código que estamos haciendo con la misma acción
del prendido y apagado del LED, ya que todo el programa lo almacenamos dentro de “void
Parpadeo()” y en “loop” lo ejecutamos escribiendo “Parpadeo();”, ya que mas adelante seria
útil en la guía ya que la programación en bloques solo repetiríamos la misma acción con el mismo
código repetitivo, asi podemos utilizar funciones para reducir un poco el código para grandes
repeticiones dependiendo los tipos de eventos que debería actuar la función.
Las llaves definen el comienzo y final de bloques de una función o una declaración como
“void loop()” y sentencias “for” e “if”(es un control de flujo, se mencionara mas adelante). ya
que las llaves deben estar equilibradas (una llave para abrir “{” debe seguirle una llave de cierre
“}” para acabar la función o declaración) si no lo están provocara errores a la compilación.
Un punto y coma debe usarse al final de cada declaración y separa los elementos del
programa y son utilizados para separar los elementos en un bucle “for”(es un control de flujo, se
mencionara mas adelante).
NOTA: Olvidar un punto y coma al final de una declaración produciría un error de compilación
Los comentarios en el código son ignorados por el programa ya que se usa para grandes
descripciones de código o comentarios que ayudaran a otra persona a entender partes del
programa y se utiliza “/*....*/” (osea empiezas abriendo “/*” y luego escribes todo incluso
pasando varias lineas y luego para cerrar “/*”) y para comentar pequeños espacios se utiliza “//”
(solo colocas “//” y escribes todo lo que quieras pero en la misma linea).
Mayormente es utilizado de forma informativa para saber que es lo que esta haciendo uno
y lo bueno que no ocupara espacio en la memoria de la placa de desarrollo ya que son
completamente ignorados.
Una variable es una forma de llamar y
almacenar un dato como valores numéricos o
caracteres, son datos constantes cuyo valor se
mantiene o puede cambiarse continuamente
cuando es declarado.
Como ejemplo la (Figura 55.1) se creo una
variable que es igual a un numero entero y
utilizamos la variable contenedor para declarar el
pin que contiene 4.
Figura 55.1
Cuando se crea una variable debe declararse que tipo de dato va a contener, para que la
placa de desarrollo sepa si es un texto o un numero que esta dentro de la variable, existen 5 tipos
de variables que explicaremos en los siguientes ejemplos:
los byte almacena un valor numerico de 8 bits sin puntos decimales. tiene un rango de 0 a 255.
los enteros son los tipos de datos primarios que almacena números sin puntos decimales, y
almacenan un valor de 16 bits con un rango de -32,768 a 32,767.
el tipo de dato de tamaño extendido para enteros largos sin puntos decimales, almacena un
valor de 32 bits con un rango de -2,146,483,648 a 2,147,483,647.
un tipo de dato para numero de punto flotante, o numero que tiene un punto decimal, los
números en punto flotante tienen mayor resolución que los enteros y se almacenan como valor de 32
bits con un rango de -3.4028235E+38 a 3:4028235E+38.
un array es una colección de valores que son accesibles con un indice numérico. los arrays
estan indexados a cero como el primer valor, ya que siempre comienza el array con el indice numero 0.
un array necesita ser declarado y opcionalmente asignarle valores antes de que puedan ser usados.
así mismo es posible declarar un array el tipo de array y el tamaño y luego asignarle valores a
una posición indice.
Referencia: Para obtener mas información sobre todos los tipos de datos les dejo la pagina de referencia de
la plataforma de arduino para su investigación personal “https://www.arduino.cc/reference/es/#variables”
Los operadores aritméticos incluyen suma, resta, multiplicación y división.
Las asignaciones compuestas combinan una operación aritmética con una asignación de
variables. estas son frecuentemente encontradas en bucles “for”. Las asignaciones mas comunes
incluyen:
Las comparaciones de una variable o constante con otra se usan a menudo en declaraciones
“if” para comprobar si un condición especifica es cierta.
Los operadores lógicos son normalmente una forma de comparar dos expresiones y devuelven
TRUE o FALSE dependiendo del operador. Hay tres operadores lógicos, AND, OR y NOT, que se usan
a menudo en declaraciones “if”.
Son valores predefinidos que se llaman constantes. se usan para hacer los programas
mas legibles, ya que se clasifican en grupos.
Estas son constantes Booleanas que definen niveles lógicos. FALSE se define 0 (cero) mientras
TRUE es 1 o un valor distinto de 0.
Estas constantes definen los niveles de pin como HIGH o LOW y se usan cuando se leen o se
escriben los pines digitales. HIGH esta definido como el nivel 1 lógico, ON ó 5 V, mientras que LOW es
el nivel lógico 0, OFF ó 0 V.
Constantes usadas con la función pinMode() para definir el modo de un pin digital como INPUT
u OUTPUT
Las sentencias “if” comprueban si cierta condición ha sido cierto y ejecuta todo las sentencias
dentro de las llaves si la declaración es cierta, si en caso es falso el programa ignorala la sentencia.
NOTA: Cuidate de usar “=” en lugar de “==” dentro de la declaración de la sentencia “if”.
else puede proceder a otra comprobación if, por lo que múltiples comprobaciones exclusivas
pueden ejecutarse al mismo tiempo.
La sentencia “for” se usa para repetir un bloque de declaración encerradas en llaves un numero
especifico de veces, un contador de incremento se usa a menudo para incrementar y terminar el bucle,
ya que debemos de conocer las tres partes separadas por el punto y coma “;” en la cabecera del bucle.
como un ejemplo seria hacer este control de flujo dentro de “setup()” para que solo inicie una
vez sin bucle el programa que encienda y apague la luz cierta cantidad de veces.
El bucle “while” se repitiera continuamente, e incluso infinitamente, solo hasta que cierta
condición sea falsa (osea FALSE o ya no cumple la condición). algo debería cambiar la variable
testeada, o el bucle “while” nunca saldrá. esto podria estar en tu código, como por ejemplo una variable
incrementada, o una condición externa, como un sensor de comprobación.
El bucle “do... while” es un bucle que trabaja de la misma forma que el bucle “while”, con la
excepción de que la condición es testeada al final del bucle, por lo que el bucle “do... while” siempre
ejecuta al menos una vez.
NOTA: E/S digital (”E/S” significa entradas y salidas, y se denominan I/O que es “input / output”)
Es utilizando dentro de “void setup()” para configurar un pin especifico para que se comporte o
como INPUT (entrada en ingles) o como OUTPUT (salida en ingles)
ya que siempre declaramos la salidas por que las placas siempre están en INPUT por defecto,
ya que no necesitan ser declarados explícitamente como entradas con el “pinMode”.
Lee el valor desde un pin digital especificado con el resultado HIGH o LOW. El pin puede ser
especificado o como una variable o como una constante.
devuelve o el nivel lógico HIGH o LOW a (Activar o desactivar) un pin digital especificado. el pin
puede ser especificado como una variable o constante.
Figura 59.1
El acción física o simulada en Tinkercad que sucede es que al apretar un pulsador llegara un
voltaje a la placa de desarrollo y luego enciende el LED.
Lee el valor desde un pin analógico especificado con una resolución de 10 bits. esta función solo
trabaja en los pines analógicos (A0 - A5). los valores enteros devueltos están en el rango de 0 a 1023.
NOTA: Los pines analogicos al contrario que los digitales, no necesitan ser declarados al
principio como INPUT o OUTPUT
se escribe un valor seudo analógico usando modulación por ancho de pulso (”PWM” en ingles) a
un pin de salida marcado como PWM, el valor puede ser especificado como una variable o constante
con un valor de 0 a 255.
Figura 60.1
La acción de este programa hace que dependa del valor del potenciómetro por manipulación
física que manda cierto cantidad de señal analógica a la placa de desarrollo y luego convertirla y pasarlo
al LED conectado al pin PWM, ya que depende la densidad de luz que vote dependiendo de cuanta
resistencia ponga al potenciómetro.
(”ms” significa milisegundos) pausa tu programa por la cantidad de tiempo especificada en
milisegundos, donde 1000 milisegundos es igual a 1 segundo.
Calcula el mínimo de dos números de cualquier tipo de datos y devuelve el numero mas
pequeño.
Calcula el máximo de dos números de cualquier tipo de datos y devuelve el numero mas
grande.
Abre el puerto serie y asigna la tasa de baudios para la transmisión de datos serie. la típica tasa
de baudios para comunicarse con el ordenador es 9600 aunque otras velocidades están soportadas.
NOTA: Cuando se usa la comunicacion serie, los pines digitales 0 (Rx) y 1 (Tx) no pueden ser usadas al mismo
tiempo cuando estan haciendo un proyecto, lo mas reconmendable seria no utilizar esos pines para no tener
dificultades mas adelante para comunicarte con tu computadora.
imprime datos al puerto serie, seguido de un retorno de carro y avance de linea automáticos.
este comando toma la misma forma que “Serial.print()”, pero es mas fácil para leer datos en el “Serial
Monitor”.
Figura 61.1
Veremos los ejemplos y proyectos simples en los componentes básicos para aplicar en
cualquier programa que quiera crear o mejorar para mas adelante en sus futuros proyectos y
creaciones personales.
NOTA: En los ejemplos y proyectos se trabajaran de las dos maneras distintas, utilizando código gráfico y código
C++, mas adelante se utilizara mas código C++ ya que nos ayuda a reducir lineas del programación debido que
tinkercad nos limita a trabajar cuando hay muchos sensores y hara que el procesamiento sea lento en caso
hagas un circuito grande con varios sensores o componentes)
Pin 4 220Ω
Figura 62.1
Veremos un circuito simple que se utilizo en todo los ejemplos de la guía para encender y apagar
el diodo led, se armara de la siguiente manera el circuito.
Figura 62.2
Seria trabajaría de esta manera el programa, ya que en código en lenguaje c++ se hizo una
variable que; si en los casos raros se cambiara el pin solo seria la misma variable y no a todos donde
estaría puesto independentemente el valor para recargarlo en el programa a la placa de desarrollo.
Pin 3 220Ω
Pin 4 220Ω
Pin 5 220Ω
Figura 63.3
Observamos el desarrollo del circuito, ya que se vería de esta manera como la (Figura 64.1)
utilizando los 3 pines de la placa de desarrollo.
Figura 64.1
Figura 64.2
Lo que hará el programa es que primero va a reconocer el estado de las tres luces y que uno
este prendido (Led Verde) y luego esperara 5 segundos y se apagara luego el led ámbar enciende y el
verde que estuvo prendido pasa a apagarse y esperara un segundo, y por ultimo el led ambar pasa a
apagarse y enciende el rojo y esperara unos 5 segundos. terminado esto empezara de nuevo el
programa con las misma acción de lo explicado.
Esta vez haremos una entrada digital ya que es el circuito mas simple ya que la placa de
desarrollo solo reconocer dos estados que es ON o OFF, ya que cuando el interruptor o pulsador este
cerrado el pin de entrada leerá HIGH y encenderá el Led de la placa de desarrollo.
+5V 10KΩ
Pin
Figura 65.1
Nuestro armado del circuito en la placa de pruebas seria de tal manera como veremos la
siguiente imagen (Figura 65.2)
Figura 65.2
para que funciones tenemos que armar nuestro programa en código de bloques, ya que para
esto se creara una variable dentro de Tinkercad, pero lo haremos paso por paso para que nuestro
circuito funciones.
en Programación de bloques nos vamos a “Control” y buscamos
el que dice “si...entonces” y lo jalamos dentro de “siempre” para crear
un bucle la sentencia.
Figura 66.1
Figura 66.2
Figura 66.3
Figura 66.4
Figura 67.1
Figura 67.2
en caso del lenguaje C++ seria de la siguiente manera (Figura 67.3), ya que en este caso lo
puse otros variables pero cumplen el mismo cometido que el de código en bloques.
Figura 67.3
También para ahorra cables en lenguaje C++ de programación, hay un comando que es el
“INPUT_PULLUP” y lo que hace es poner un positivo en el interior del microcontrolador, osea el único
cableado que tenemos que hacer es el negativo tal como observaremos lo siguiente
Pin 10KΩ
Figura 68.1
Figura 68.2
Así mismo se vería nuestro código con cierto cambio de circuito, y el código que se cambio es
casi el mínimo, para horrar cableado de circuito es notable. y el comando “INPUT_PULLUP” podría
solucionar mucho en caso de cableado de interruptores, pulsadores y etc.
Figura 68.3
La botonera de los concurso, funciona si una
persona presiona el botón y manda una señal a la placa
de desarrollo y luego la luz enciende pero en cambio al
otro contrincante lo ignorala hasta que termine su tiempo
de espera del encendido de la persona que presiono
primero el botón para el siguiente round. para esto
seguiremos la esquema del circuito y los materiales.
Figura 69.1
Figura 69.2
NOTA: El diagrama que se esta armando estamos suponiendo que utilizaremos la programación de código C++,
del comando “INPUT_PULLUP” que se utilizo en el ejemplo de la pagina anterior (Pagina 68) para ahorrar
cableado, pero aun así pondremos la demostración cableada para el código en bloques, (solo en caso si se le
dificulta por código C++)
Figura 69.3
Circuito para código de bloques
Figura 70.1
Figura 70.2
Circuito para código C++
Figura 71.1
Comparado de los dos tipos de códigos y circuitos, lo mas recomendable seria el de código por
lenguaje C++ por que se ahorra ciertos cableados en las entradas.
La modulación de ancho en pulso (PWM) es una forma de “falsificar” una salida analógica por la
salida pulsante. esto podría usarse para controlar la iluminación de un LED o posterior controlar un
servomotor. El siguiente ejemplo iluminara y apagara lentamente un LED usando bucles “for”.
PWM 220Ω
Figura 72.1
Figura 72.2
NOTA: debemos que saber que el PWM son los que tienen el símbolo “~” al costado de los
numero de los pines para identificar cual pines tiene PWM en la placa de desarrollo.
Figura 73.1
Figura 73.2
Lo ultimo ponemos en opciones de “Variable” y observamos que al colocar los “contar arriba
por 1...etc” se crearon las variables con la letra correspondiente de cada uno, lo que hacemos es jalar
la variable dentro del circulo de “definir pasador 3 en 0” dependiendo a su letra de cada contar.
Figura 73.3
usando un potenciómetro y uno de los pines de conversión analógico-digital (ADC) de las placas
de desarrollo es posible leer valores de 0 a 1024. el siguiente ejemplo usa un potenciometro para
controlar una frecuencia de parpadeo de un Led.
220Ω
PWM
A2
+5v
10k Pot
Figura 74.1
Nuestro armado del circuito seria de esta manera ya que el potenciómetro debe tener conectado
los 2 extremos el positivo y negativo y al medio es la información.
Figura 74.2
Figura 75.1
Figura 75.2
En el caso de los sensores de humedad de suelo, estos sensores se entierran en la arena para
medir la humedad y se recomendaría que se utilice el recubierto donde va hacer la lectura de la
humedad o si no estaría cubierto, ya que la mayoría están hechos de cobre se podría corroer (osea
oxidar) la parte donde hace la lectura y dejarlo obsoleto el sensor. e incluso se recomendaría cubrirlo la
parte del circuito con silicona o cinta para que no llegue la salpicadura del agua al sensor directamente.
No recomendable Recomendable
Figura 76.1
En el caso de las bombas de agua se recomendaría los que están cubiertos completamente
para no tener problemas mas adelante con humedecer el motor de la bomba de agua, pero en cambio
el otro necesitaría mas voltaje de lo que no soporta la placa de desarrollo y requiere una soldadura en
caso que tengas cables y maquina que soldar.
Para el siguiente paso tenemos que hacer la prueba de nuestro sensor que vamos utilizar para
eso tenemos que hacer nuestro armado del circuito antes de probarlo como vemos de la siguiente
manera:
Sensor de
humedad
del suelo
GND
5V+
Sig
+5v
A2
Figura 76.2
Lo que sigue seria observar cuando nos manda de lectura de nuestro sensor a la placa de
desarrollo, ya que para eso hay un código para sacar la información de nuestro sensor, tal como
veremos los siguientes comandos:
Figura 77.1
Figura 77.3
Figura 77.4
Con nuestros posibles resultados debemos de tener en cuenta, dependiendo en que planta lo
utilicemos, ya que existen plantas que no requiere el riego muy seguido y otros que necesitan
demasiada agua (este tema debe profundizar usted mismo sobre la planta a utilizar) ya que suponemos
que seria una planta que seria un intermedio de requerir o no mucha agua (ya que para esto
dependeremos mucho de prueba y error constantemente).
El paso siguiente seria el circuito con el motor (osea la bomba de agua) para conectar la placa
junto con un transistor NPN, ya que son muy utilizados estos modelos de transistores.
Figura 78.1
Para el ejemplo se esta utilizando un motor en vez de la bomba de agua pero igual son los
mismo componentes pero distintos propósitos, y el transistor NPN mandala dependiendo la señal que
enviara la placa de desarrollo.
también debemos tener todo listo incluso la manguera que se coloca a la bomba pequeña de
agua hacia el macetero para regarlo, hasta incluso es recomendable que tengas un balde o deposito de
agua para que lo jale de ahí el agua y que este bien tapado y asegurado para evitar la entrada de los
insectos.
ya que nuestro proposito es crear nuestro programa dependiendo cuan humedad queremos
nuestra maceta como lo haremos lo siguiente.
Figura 78.2
En manera de código se vería
de esta manera para riego de nuestro
macetero automatico
Figura 79.1
Figura 79.2
Referencia: Si quieres mejorar este proyecto al máximo puedes hacer mejoras con el macetero en lo
siguiente:
- Cuando este en el interior de una casa, deberías de pensar en uno leds o foco UV para que haga iluminación
artificial para tu planta ya que no estaría expuesto al sol por mucho tiempo.
- En caso este en el exterior deberías pensar en una alimentación del circuito por panel solar y unas baterías
recargables y un regulador de 5V (para su propia investigación) para que no utilices la electricidad de tu
domicilio sino una alimentación limpia por el mismo sol por los paneles solares.
- Sino puedes usar el sensor de humedad de suelo y unos cuantos leds. para hacer un medidor de humedad
para regarlo manualmente y saber cuanto tiene de agua en manera visual e física.
NOTA: Este proyecto se requiere estar supervisado por un adulto o una persona familiarizado sobre
electrónica para hacer este proyecto, ya que se manejara el AC (corriente alterna).
Hacer luz con tan solo un movimiento son los que utilizan para iluminar pasadizos, calles, o etc.
ya que encenderá el foco o LED sin acercarte al interruptor ya que para esa función se requiere del
sensor de movimiento PIR (significa sensor infrarrojo pasivo), este sensor reacciona dependiendo del
movimiento de una persona o animal en el lugar instalado el sensor. para este proyecto se utilizara para
iluminar un lugar mucho o poco concurrido del domicilio a base a su criterio de la instalación del
proyecto.
Los materiales requeridos para este proyecto sera lo siguiente:
antes de conseguir los materiales debemos de reconocer ciertas cosas de los materiales del
circuito a utilizar
No recomendable Recomendable
Figura 81.2
Figura 81.3
También tiene unos ajustes para modificar lo básico sin la necesidad de utilizar la placa de
desarrollo como por ejemplo, “tiempo entre mediciones” esto puedes modificar el tiempo que se
queda activo al detectar movimiento y “Sensibilidad de la medición” es tal como su nombre indica ya
que se cambia dependiendo el ambiente del lugar como lluvia o tierra arrastrada por viento, ya que son
mediciones que depende de la sensibilidad y se pueden obviar.
Armado del circuito con el componente relé
AC
Figura 82.1
NC
COM AC
Figura 82.2
Comparado de las dos figuras las conexiones son distintas pero sirven el mismo proposito de la
conexión, ya que se probara con el programa establecido para el circuito
Código por bloques (luz por movimiento)
Figura 83.1
Figura 83.2
con el programa aplicado vera buenos resultados de su proyecto ya que observe incluso de
como funcionan los dispositivos autónomos que hay siempre en casa o lugares modernos.
también es su criterio en caso de como quiere implementarlo en su casa ya que se sugiere que
todo este en una pequeña caja pase dependiendo de que tan grande va hacer su circuito.
NOTA: El proyecto es para hacerlo en fisico, ya que en tinkercad esta limitado en
componentes aun así se mostrara en como hacerlo al final de este proyecto
NOTA: El conector jack es opcional, si el porta pilas 18650 viene con su propio conector jack
En este proyecto se requiere que tenga su propio almacén de energía como las pilas modelo
18650 para que haga funcionar la placa de desarrollo y nuestros dispositivos. pero las pilas 18650 son
de 3.7V al juntarlas en serie serian 7.4V y este voltaje es lo normal que podría soportarlo cuando lo
conectemos con un conector jack ya que el interior de la placa de desarrollo lo esta transformando a 5V
para que funcione todo el circuito y también podríamos sacarlo para alimentar también nuestro circuito.
Figura 84.2
El modulo L293D osea controlador de motores funciona para nuestra placa de desarrollo
mandando señales analógicas o digitales para avanzar el motor o retroceder e incluso controlar su
velocidad, esto nos vendría útil por si conectamos directamente el motor a la placa de desarrollo, podría
ser dañino mas adelante ya que los motores son generadores de energía (osea si hiciéramos avanzar
manualmente nuestro coche generaría energía limpia e incluso mas de 5V y quemaría algunos
componentes de la placa de desarrollo)
Figura 85.1
el sensor ultrasónico funciona a base en uno parecido a un parlante que emite una onda y el otro
lo recibe, con ese efecto veremos algo que este al frente como un obstáculo lo que hace es que al botar
una onda rebota en el obstáculo y lo vuelve para obtener esa onda emitida a recibirlo y tenemos
resultados dependiendo la cantidad de rebotes por tiempo y luego de eso obtenemos también una
distancia del resultado a nuestra placa de desarrollo.
para probar los componentes conectaremos todos lo componentes para hacer nuestra prueba y
luego hacer nuestro programa como observaremos nuestro circuito la siguiente imagen:
Figura 85.2
Antes de continuar debería de probar enviando señales al modulo L293D para observar en que
sentido va los motores antes de armar tu programa, para tener identificado con cual cableado va hacia
adelante y con cual hacia atrás, ya que los polos del motor funcionan en cualquier punto de conexión
pero con una reacción física distinta o opuesta incluso el sensor ultrasónico midiendo la distancia que
necesites que deba reaccionar para evitar un obstáculo.
Prueba de sensor ultrasónico Prueba de driver de motores
Figura 86.3
Figura 86.4
observaremos los códigos para hacer las pruebas como la (Figura 86.1) o (Figura 86.3) lo que
hacemos es recolectar la información de la distancia que se observa en “Monitor serie” que nosotros
deseemos después para configurar las acciones de los motores para esquivar o evitar el obstáculo
hasta cierta distancia. y en la (Figura 86.2) o (Figura 86.4) hacemos prueba de dirección de motores
antes de instalarlo en una base que nosotros creamos para poner nuestro circuito (la base para su
coche es a su criterio de usted como cartón, plástico, acrílico y etc.).
Figura 87.1
Figura 88.1
En código de bloque seria de esta manera ya que para leer el sensor ultrasónico es demasiado
larga pero simple en entender, incluyendo las acciones cuando llega a cierta distancia del sensor.
Figura 89.1
con este programa empezara a funcionar nuestro proyecto, avanzara hasta toparse con una
pared o obstáculo a 20 cm y la acción a hacer retrocede por medio segundo y luego gira para otra
dirección hasta no encontrar otro obstáculo y avanza hacia adelante.
Circuito en Tinkercad (circuito sin modulo L293D)
Figura 90.1
El circuito de tinkercad no nos ofrece un modulo de motores para simular pero si su “IC” (significa
circuito integrado), ya que los IC son pequeños componentes con varias patitas que en su interior esta
hecho con varios transistores pero para hacer un trabajo predeterminado.
Figura 90.2
Circuito Puente H (hecho con transistores NPN y diodos)
Figura 91.1
de esta manera veremos casi una manera muy profesional de cambiar de polaridad de los
motores con transistores y diodos, y la conexión de donde entraría de la placa de desarrollo para
programarlo cada motor.
ya que con este circuito veremos casi como es que funciona el IC o modulo L293D pero para un
motor y como cambia de estado de positivo y negativo entre los dos distintos polos.
NOTA: este proyecto sera a base de su propia investigación para
armarlo, ya que dejalemos unos indicios para que lo complete usted
Figura 92.1
Figura 92.2
en estos indicios en vez de utilizar un motor convencional utilizaremos un servo motor, lo bueno
de los servo motores nos permite girar el motor a base de grados de giro, que es manejable a base de
grados de giro y se utilizara una librería en código de C++ la llamada “#include <Servo.h>” hecho por la
misma plataforma de arduino para facilitar la programación del servo motor, en cambio la programación
en bloques nos facilita agregandolo automáticamente la librería.
Código en bloques (Controlar brazo robótico)
Figura 93.1
Figura 93.2
Referencia: Puedes mejorar a tu manera y poner varias articulaciones dependiendo cuanto soporte tu placa
de desarrollo, incluso es recomendable que los servo motores tenga una alimentación aparte en vez de
alimentarlo de la misma placa ya que son demasiado consumidores de corriente y dejarían sin energía para la
placa de desarrollo.
incluso puedes averiguar hasta cuantos grados quieres moverlo para cierta tarea cotidiana y luego
desarrollar un programa para que se grabe toda la animación de esa tarea como un profesional.
1) Evans, Brian W., (2007) Arduino Programming Notebook.
7) Arduino - Hardware Docs, Uno R3, (Ultima modificación, 2023). Disponible en:
https://docs.arduino.cc/hardware/uno-rev3