Electronic Components Fun Kit-Espanol

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 82

WayinTop Kit de Componentes Electrónicos

-1-
Prefacio
Sobre nuestra compañía
WayinTop, su principal camino hacia la inspiración, es un fabricante profesional de más de 2,000
placas base, módulos y componentes de código abierto. Desde diseñar PCB, imprimir, soldar,
probar, depurar y ofrecer tutoriales en línea, WayinTop se ha comprometido a explorar y
desmitificar el maravilloso mundo de la electrónica integrada, incluidos, entre otros, Arduino y
Raspberry Pi. Nuestro objetivo es hacer los productos mejor diseñados para fabricantes de todas
las edades y niveles de habilidad. No importa su visión o nivel de habilidad, nuestros productos y
recursos están diseñados para hacer que la electrónica sea más accesible. Fundada en 2013,
WayinTop ha crecido a más de 100 empleados y una fábrica de más de 50,000 pies cuadrados en
China por ahora. Con nuestros esfuerzos incansables, también hemos ampliado las ofertas para
incluir herramientas, equipos, kits de conectores y varios productos de bricolaje que hemos
seleccionado y probado cuidadosamente.

US Amazon Página de inicio de la tienda:


https://www.amazon.com/shops/A22PZZC3JNHS9L
CA Amazon Página de inicio de la tienda:
https://www.amazon.ca/shops/A22PZZC3JNHS9L
UK Amazon Página de inicio de la tienda:
https://www.amazon.co.uk/shops/A3F8F97TMOROPI
DE Amazon Página de inicio de la tienda:
https://www.amazon.de/shops/A3F8F97TMOROPI
FR Amazon Página de inicio de la tienda:
https://www.amazon.fr/shops/A3F8F97TMOROPI
IT Amazon Página de inicio de la tienda:
https://www.amazon.it/shops/A3F8F97TMOROPI
ES Amazon Página de inicio de la tienda:
https://www.amazon.es/shops/A3F8F97TMOROPI
JP Amazon Página de inicio de la tienda:
https://www.amazon.co.jp/shops/A1F5OUAXY2TP0K

Nuestro tutorial
Este tutorial está diseñado para principiantes. Aprenderá toda la información básica
sobre cómo usar la placa Arduino, sensores y componentes. Si desea estudiar Arduino
con más profundidad, le recomendamos que lea el libro de cocina Arduino escrito por
Michael Margolis.
AlgJunta de desarrollos códigos en este tutorial son editados por Simon Monk. Simon
Monk es autor de varios libros relacionados con el hardware de código abierto. Están
disponibles en Amazon: Programming Arduino, 30 proyectos Arduino para Evil
Genius y Programming the Raspberry Pi.

-2-
Directorio

Lección 0 ¿Qué es Arduino?............................................................................................ - 4 -

Lección 1 Parpadeo....................................................................................................... - 13 -

Lección 2 LED..................................................................................................................- 19 -

Lección 3 RGB LED......................................................................................................... - 25 -

Lección 4 Presionar el botón....................................................................................... - 35 -

Lección 5 Zumbador activo y potenciómetro........................................................... - 40 -

Lección 6 Zumbador pasivo..........................................................................................- 44 -

Lección 7 Ocho LED con 74HC595............................................................................... - 49 -

Lección 8 The Serial Monitor....................................................................................... - 57 -

Lección 9 Fotorresistencia........................................................................................... - 63 -

Lección 10 Pantallas de segmentos LED.................................................................... - 68 -

Lección 11 Soldadura de PCB.......................................................................................- 74 -

Parte 1 PCB de soldadura de circuitos....................................................................... - 74 -

Parte 2 Parpadeo y funcionamiento de la soldadura de LED................................. - 78 -

-3-
Lección 0 ¿Qué es Arduino?
Arduino es una plataforma electrónica de código abierto basada en hardware y
software fácil de usar. Las placas Arduino pueden leer entradas (luz en un sensor, un
dedo en un botón o un mensaje de Twitter) y convertirlo en una salida: activar un
motor, encender un LED, publicar algo en línea. Puede decirle a su placa qué hacer
enviando un conjunto de instrucciones al microcontrolador de la placa. Para hacerlo,
utiliza el lenguaje de programación Arduino (basado en el cableado) y el software
Arduino (IDE), basado en el procesamiento. Arduino IDE es de código abierto para
que pueda descargar y compartir miles de proyectos interactivos de forma gratuita.

¿Por qué Arduino?

Gracias a su experiencia de usuario sencilla y accesible, Arduino se ha utilizado en


miles de proyectos y aplicaciones diferentes. El software Arduino es fácil de usar para
principiantes, pero lo suficientemente flexible para usuarios avanzados. Se ejecuta en
Mac, Windows y Linux. Los maestros y los estudiantes lo usan para construir
instrumentos científicos de bajo costo, para probar los principios de la química y la
física, o para comenzar con la programación y la robótica. Diseñadores y arquitectos
construyen prototipos interactivos, músicos y artistas lo utilizan para instalaciones y
para experimentar con nuevos instrumentos musicales. Los creadores, por supuesto, lo
usan para construir muchos de los proyectos exhibidos en la Feria de Maker, por
ejemplo. Arduino es una herramienta clave para aprender cosas nuevas. Cualquiera,
niños, aficionados, artistas, programadores, puede comenzar a jugar siguiendo las
instrucciones paso a paso de un kit o compartiendo ideas en línea con otros miembros
de la comunidad Arduino.

Característica

Barato: las placas Arduino son relativamente baratas en comparación con otras
plataformas de microcontroladores.

Plataforma cruzada: el software Arduino (IDE) se ejecuta en los sistemas operativos


Windows, Macintosh OSX y Linux. La mayoría de los sistemas de
microcontroladores están limitados a Windows.

Entorno de programación simple y claro: el software Arduino (IDE) es fácil de usar


para principiantes, pero lo suficientemente flexible como para que los usuarios
avanzados también lo aprovechen. Para los maestros, está convenientemente basado
en el entorno de programación de procesamiento, por lo que los estudiantes que
-4-
aprendan a programar en ese entorno estarán familiarizados con el funcionamiento del
IDE de Arduino.

Software de código abierto y extensible: el software Arduino se publica como


herramientas de código abierto, disponibles para la extensión por programadores
experimentados. El lenguaje se puede ampliar a través de las bibliotecas de C ++, y
las personas que deseen comprender los detalles técnicos pueden dar el salto de
Arduino al lenguaje de programación AVR C en el que se basa. Del mismo modo,
puede agregar el código AVR-C directamente en sus programas Arduino si lo desea.
Fuente abierto y hardware extensible: los diseñadores de circuitos experimentados
pueden hacer su propia versión del módulo, extenderlo y mejorarlo. Incluso los
usuarios relativamente inexpertos pueden crear la versión del módulo de prueba para
comprender cómo funciona y ahorrar dinero.

Junta de desarrollo

En este tutorial, utilizaremos la placa WayinTop Junta de desarrollo para construir los
circuitos de ejemplo como referencia, y estas Lecciones le mostrarán cómo usar estos
componentes electrónicos correctamente.

-5-
(Nota: esta placa no está incluida en este kit)

¿Cómo instalar Arduino IDE?

El Arduino Integrated Development Environment (IDE) es el software, que puede


ejecutarse en los sistemas operativos Windows, Macintosh OSX y Linux.

-6-
PASO 1: Vaya a https://www.arduino.cc/en/Main/Software y busque la página a
continuación.

La versión disponible en este sitio web suele ser la última versión, y la versión real
puede ser más nueva que la versión de la imagen.

PASO2: descargue el software de desarrollo que sea compatible con el sistema


operativo de su computadora. Tome el sistema operativo Windows como ejemplo
aquí.

Haga clic en Windows y descargue el archivo zip.

Haga clic en el archivo arduino-nightly.

-7-
Hacer clic arduino.exe

-8-
A continuación, debe instalar el controlador USB Arduino. Los archivos Arduino
contienen tanto el programa Arduino como los controladores que permiten que
Arduino se conecte a su computadora mediante un cable USB.

PASO 1: conecte la Junta de desarrollo a su computadora con el cable USB. El


indicador LED de encendido se iluminará. Y puede recibir un mensaje de "Nuevo
hardware encontrado" de Windows. Ignore este mensaje y cancele cualquier intento
que Windows haga para intentar instalar controladores automáticamente para usted.
El método más confiable para instalar los controladores USB es usar el
"Administrador de dispositivos".

PASO 2: Hacer clic Device Manager-> Other Devices como se muestra abajo. Verá
un icono de "dispositivo desconocido" con una advertencia amarilla. Este será tu
Junta de desarrollo.

-9-
PASO 3: Update Driver Software… -> Browse my computer for driver software

- 10 -
PASO 4: Haga clic en 'Siguiente' y puede recibir una advertencia de seguridad, si es
así, permita que se instale el software. Una vez que se haya instalado el software,
recibirá un mensaje de confirmación.

- 11 -
De esta manera, puede comenzar a usar Junta de desarrollo con el software IDE. Si su
computadora puede reconocer directamente el dispositivo Junta de desarrollo, omita
los PASO para instalar el controlador.

- 12 -
Lección 1 Parpadeo

Visión de conjunto

En esta lección, aprenderá cómo programar su placa Junta de desarrollo para que
parpadee el LED incorporado de Arduino y cómo descargar programas mediante
PASO básicos.

Piezas requeridas:

Junta de desarrollo

Principio

La placa Junta de desarrollo tiene filas de conectores a lo largo de ambos lados que se
utilizan para conectarse a varios módulos electrónicos y escudos para extender su
capacidad.

También tiene un solo LED que puede controlar desde sus bocetos. Este LED está
integrado en la placa Junta de desarrollo y, a menudo, está etiquetado como "L" en la
placa.

Hay muchas muestras en arduino IDE para nuestra referencia. En esta lección,
utilizaremos el ejemplo "Parpadeo" en el IDE de Arduino para implementar el

- 13 -
parpadeo del LED en la placa Arduino. Como se muestra abajo, Hacer clic
File >Examples > 01.Basics>Blink

Abierto sketch, amplíe la página para que pueda ver el boceto completo en la ventana.

- 14 -
A continuación, conecte la placa Arduino a la computadora y luego comience a
seleccionar el tipo de placa de desarrollo.

Hacer clic Settings>Board>Arduino/Genuino Junta de desarrollo.

Después de configurar la placa, seleccione el puerto correcto, como se muestra en la


figura a continuación, seleccionar Tools>Port, y luego seleccione el puerto
correspondiente.

- 15 -
Luego, haga clic en el botón que se muestra a continuación para compilar el código y
verificar si el código es correcto.

Si no hay ningún error, Arduino IDE imprimirá la información que se muestra a


continuación en la parte inferior, si la compilación falla, imprimirá un mensaje de
error.

Una vez completada la compilación, seleccionamos el botón que se muestra a


continuación para cargar el código en la placa de desarrollo Arduino.

Si el código se carga correctamente, se mostrará a continuación.

Y también verá que el LED en la placa de desarrollo parpadea una vez por segundo.

- 16 -
A continuación explicamos el código:

Nota

La gran parte de este boceto se compone de comentarios. Estas no son instrucciones


reales del programa; más bien, simplemente explican cómo funciona el programa.
Están ahí para su referencia.
Todo entre / * y * / en la parte superior del boceto es un comentario de bloque;
explica para qué sirve el boceto.
Los comentarios de una sola línea comienzan con // y todo hasta el final de esa línea
se considera como un comentario.
El primer fragmento de código es:
void setup() {
// initialize the digital pin as an output.
pinMode(led, OUTPUT);
}
Cada boceto de Arduino debe tener una función de 'configuración', y el lugar donde es
posible que desee agregar sus propias instrucciones es entre el {y el}.
En este caso, solo hay un comando allí, que, como dice el comentario, le dice a la
placa Arduino que vamos a usar el pin LED como salida.
Además, el boceto tiene una función de 'bucle'. A diferencia de la función
'configuración' que solo se ejecuta una vez, después de un reinicio, la función 'bucle'
comenzará de nuevo inmediatamente cuando haya terminado de ejecutar sus
comandos una vez.
void loop() {
digitalWrite(led, HIGH); // turn the LED on (HIGH is the voltage level)
delay(1000); // wait for a second
digitalWrite(led, LOW); // turn the LED off by making the voltage LOW
delay(1000); // wait for a second
}

Dentro de la función de bucle, los comandos primero encienden el pin LED (ALTO),
luego 'retrasan' por 1000 milisegundos (1 segundo), luego apagan el pin LED y hacen
una pausa por otro segundo.

Si desea que la luz LED parpadee más rápido o más lento, simplemente cambie el
valor en "retraso" () a un valor menor o mayor.

- 17 -
Este período de retraso es en milisegundos, por lo que si desea que el LED parpadee
el doble de rápido, cambie el valor de 1000 a 500. Esto se pausaría durante medio
segundo cada retraso en lugar de un segundo completo. Vuelva a cargar el boceto y
verá que el LED comienza a parpadear más rápidamente.

- 18 -
Lección 2 LED

Visión de conjunto

En esta lección, aprenderá a cambiar el brillo de un LED utilizando diferentes valores


de resistencia.

Piezas requeridas

1 x Junta de desarrollo

1 x breadboard

1 x 5mm LED

1 x 220 ohm resistor

1 x 1k ohm resistor

1 x 10k ohm resistor

2 x M-M cables (cables de puente macho a macho)

Introducción del producto

TABLERO DE CIRCUITOS

Una placa de pruebas le permite crear prototipos de circuitos rápidamente sin soldar

El interior del tablero está formado por tiras de metal. Cuando se inserta en los
orificios de la placa, puede estar en contacto con la tira de metal para lograr el
propósito de la conducción. Por lo general, 5 agujeros están unidos por una tira de
metal. Hay dos filas de agujeros verticales a ambos lados de la placa de prueba, que
- 19 -
también son 5 agujeros como grupo. Estas dos filas se utilizan para alimentar los
componentes en la placa de pruebas.

LED

Los LED pueden ser excelentes luces indicadoras. En esta lección, utilizaremos el
LED más común, un LED azul de 5 mm (5 mm se refiere al diámetro del LED, otros
tamaños comunes son 3 mm y 10 mm).

No puede conectar directamente un LED a una batería o voltaje, porque

1) El LED tiene un cable positivo y Junta de desarrollo negativo y no se encenderá si


se coloca de manera incorrecta;

- 20 -
2) El LED debe usarse con una resistencia para limitar o "ahogar" la cantidad de
corriente que fluye a través de él; de lo contrario, se quemará!

La forma de distinguir los polos positivo y negativo del LED: Pin largo positivo ;
Pin corto negativo.

Resistencias

Como su nombre indica, las Resistencias resisten el flujo de electricidad. Cuanto


mayor sea el valor de la resistencia, más resiste y menos corriente eléctrica fluirá a
través de ella.

Vamos a usar esto para controlar cuánta electricidad fluye a través del LED y, por lo
tanto, qué tan brillante brilla.

La unidad de resistencia se llama Ohm, que generalmente se acorta a Ω. Debido a


que un Ohm es un valor bajo de resistencia (no resiste mucha corriente), también
denotamos los valores de Resistencias en kΩ (1,000 Ω) y MΩ (1,000,000 Ω).
Estos se llaman kiloohmios y megaohmios.

En esta lección, vamos a utilizar tres valores diferentes de resistencia: 220Ω, 1kΩ y
10kΩ. Todas estas Resistencias tienen el mismo aspecto, excepto que tienen rayas de
diferentes colores. Estas rayas te dicen el valor de la resistencia.

- 21 -
La siguiente imagen le mostrará cómo distinguir el valor de resistencia.

A diferencia de los LED, las Resistencias no tienen un cable positivo y negativo. Se


pueden conectar de cualquier manera.
Si encuentra que este método de discriminación es demasiado complicado, puede leer
la bandera del anillo de color en nuestras Resistencias directamente para determinar
su valor de resistencia. O puede usar un multímetro digital en su lugar.

- 22 -
Esquema de conexión

Diagrama de cableado

El Junta de desarrollo tiene 5 voltios, que usaremos para proporcionar energía al LED
y la resistencia. No necesita hacer nada con su Junta de desarrollo, excepto enchufarlo
- 23 -
a un cable USB.
Con la resistencia de 220 Ω en su lugar, el LED debe ser bastante brillante. Si
cambia la resistencia de 220 Ω con la resistencia de 1kΩ, entonces el LED
aparecerá un poco más tenue. Finalmente, con la resistencia de 10 kΩ en su lugar, el
LED estará casi visible. Extraiga el cable rojo del puente de la placa, conéctelo al
orificio y retírelo para que actúe como un interruptor. Deberías poder notar la
diferencia.
En este momento, el Arduino 5V se conecta a Junta de desarrollo de los pines de la
resistencia, el otro pin de la resistencia va al cable positivo (pines largos) del LED, y
el cable negativo (pines cortos) del LED va a Arduino GND . Ya sea que la
resistencia esté conectada al ánodo del LED o al cátodo del LED, el LED se iluminará
normalmente.

- 24 -
Lección 3 RGB LED

Visión de conjunto
RGB significa rojo, verde y azul. Los LED RGB son una forma divertida y fácil de
agregar algo de color a sus proyectos. Vienen principalmente en 2 versiones: Ánodo
común o Cátodo común. El ánodo común se conecta a 5V, mientras que el cátodo
común se conecta a tierra.

Piezas requeridas
1 x Junta de desarrollo
1 x Breadboard
4 x M-M cables (cables de puente macho a macho)
1 x RGB LED
3 x 220 ohm Resistencias

Introducción del producto

RGB

El LED RGB se ve como un LED normal desde la superficie, excepto que el LED
RGB tiene cuatro pines, y el LED normal solo tiene dos pines. De hecho, el LED
RGB está empaquetado internamente con tres LED, Junta de desarrollo rojo, Junta de
desarrollo verde y Junta de desarrollo azul.

Puede mostrar cualquier color que desee ajustando el brillo de cada Junta de
desarrollo de los tres LED. La forma en que se mezclan los colores del LED es la
misma que se mezcla la pintura en la paleta. Es muy difícil lograr el ajuste de color
sin la placa de control principal. Afortunadamente, podemos usar la placa de
desarrollo Junta de desarrollo para simplificar nuestra carga de trabajo. Este tablero
tiene la función de escritura analógica. Puede controlar el LED utilizando los pines
marcados con la etiqueta "~" para emitir energía variable.

En este tutorial, utilizaremos el LED de cátodo común. Un pin está conectado a tierra,
mientras que los otros tres pines están conectados al pin digital Junta de desarrollo
con "~".

- 25 -
Este pin no requiere una resistencia para conectarse directamente a GND. Sin
embargo, los otros tres pines requieren Resistencias para evitar que fluya una
corriente excesiva. Los otros tres pines también se convierten en pines positivos. El
lado izquierdo del CATHODE son los pines VERDE y AZUL a su vez, y el lado
derecho es el pin ROJO.

Color

Podemos mezclar cualquier color que queramos cambiando la iluminación de los


LED rojo, verde y azul. Hablando teóricamente, nuestros ojos tienen tres tipos de
receptores de luz (rojo, verde, azul). Nuestros ojos y cerebro reciben y procesan los
tonos rojo, verde y azul y los convierten en un color espectral. Hoy en día, los
productos electrónicos como televisores en color, computadoras y teléfonos móviles
pueden mostrar diferentes colores, que se mezclan con tres colores RGB. El Principio
es igual.

- 26 -
Por ejemplo, si configuramos los tres LED con el mismo brillo, el color general de la
luz se mostrará en blanco. Si apagamos el LED azul, solo los LED rojo y verde con el
mismo brillo, entonces el LED será de color amarillo. Para ajustar al color negro,
necesitamos ajustar el brillo de los tres colores al más bajo. Podemos controlar
fácilmente el brillo del rojo, verde y azul de cada LED RGB a través de Junta de
desarrollo, lo que facilita el control de diferentes colores.

Teoría(PWM)

La modulación de ancho de pulso (PWM) es una técnica utilizada para controlar la


potencia. El Principio es cambiar el ciclo de trabajo de la señal de salida. También lo
usamos aquí para controlar el brillo de cada LED.

La siguiente figura muestra la señal de Junta de desarrollo de los pines PWM en Junta
de desarrollo.

- 27 -
Aproximadamente cada 1/500 de segundo, el PWM generará un pulso y luego saldrá.
La longitud de este pulso está controlada por la función 'analogWrite'. Entonces,
'analogWrite (0)' no generará ningún pulso, 'analogWrite (255)' generará un pulso
continuo hasta que llegue el siguiente pulso, pero en este proceso, la salida realmente
existe todo el tiempo.

Si especificamos un valor entre 0 y 255 en la función 'analogWrite', obtendremos un


pulso. Si el pulso de salida es alto solo el 5% del tiempo, solo obtendremos el 5% de
la potencia en este ciclo. Sin embargo, si el pulso de salida es alto durante el 90% del
tiempo, obtendremos el 90% de la potencia cargada en este ciclo.

No podemos ver el efecto de los LED encendidos y apagados con este pulso, por lo
que para los humanos, solo podemos ver el color de los LED cambiando.

Diagrama de conexión

- 28 -
Diagrama de cableado

Code

Crea un nuevo archivo

Abra arduino IDE y cree un nuevo archivo como se muestra a continuación;

- 29 -
Copie el siguiente código en el archivo creado, reemplace el código original y luego
compile y verifique si el código puede ejecutarse. Cuando tenga éxito, cargue el
código en la placa de desarrollo. Si olvida cómo hacer esto, puede revisar el contenido
de la primera sección.

#define BLUE 3
#define GREEN 5
#define RED 6

void setup()
{
pinMode(RED, OUTPUT);
pinMode(GREEN, OUTPUT);
pinMode(BLUE, OUTPUT);
digitalWrite(RED, HIGH);
digitalWrite(GREEN, LOW);
digitalWrite(BLUE, LOW);
}

// define variables
int redValue;
int greenValue;
int blueValue;
- 30 -
// main loop
void loop()
{
#define delayTime 10 // fading time between colors

redValue = 255; // choose a value between 1 and 255 to change the color.
greenValue = 0;
blueValue = 0;

// this is unnecessary as we've either turned on RED in SETUP


// or in the previous loop ... regardless, this turns RED off
// analogWrite(RED, 0);
// delay(1000);

for(int i = 0; i < 255; i += 1) // fades out red bring green full when i=255
{
redValue -= 1;
greenValue += 1;
// The following was reversed, counting in the wrong directions
// analogWrite(RED, 255 - redValue);
// analogWrite(GREEN, 255 - greenValue);
analogWrite(RED, redValue);
analogWrite(GREEN, greenValue);
delay(delayTime);
}

redValue = 0;
greenValue = 255;
blueValue = 0;

for(int i = 0; i < 255; i += 1) // fades out green bring blue full when i=255
{
greenValue -= 1;
blueValue += 1;
// The following was reversed, counting in the wrong directions
// analogWrite(GREEN, 255 - greenValue);
// analogWrite(BLUE, 255 - blueValue);
analogWrite(GREEN, greenValue);
analogWrite(BLUE, blueValue);
delay(delayTime);
}

- 31 -
redValue = 0;
greenValue = 0;
blueValue = 255;

for(int i = 0; i < 255; i += 1) // fades out blue bring red full when i=255
{
// The following code has been rearranged to match the other two similar sections
blueValue -= 1;
redValue += 1;
// The following was reversed, counting in the wrong directions
// analogWrite(BLUE, 255 - blueValue);
// analogWrite(RED, 255 - redValue);
analogWrite(BLUE, blueValue);
analogWrite(RED, redValue);
delay(delayTime);
}
}

Cuando se ejecuta el código, aparecerá la siguiente ventana. Puedes guardarlo en un


archivo.

Utilizamos principalmente el "FOR Loop" para cambiar el color del LED


cíclicamente.

- 32 -
El primer "FOR Loop" cambiará de ROJO a VERDE.
El segundo "FOR Loop" cambiará de VERDE a AZUL.
El último "FOR Loop" cambiará de AZUL a ROJO.
Al comienzo de la programación, debe definir el pin para cada color. Por supuesto,
puede definir con otros pines, pero debe tener la etiqueta "~".
// define Pins
#define BLUE 3
#define GREEN 5
#define RED 6

La siguiente es la función de "configuración" que toda programación de arduino debe


tener. Las declaraciones de funciones aquí son las mismas que las que presentamos
anteriormente. La función "pinMode" establece la entrada y la salida del pin, y el
"digitalWrite" inicializa los datos del pin. La inicialización de los datos aquí es hacer
que el LED solo se muestre en rojo, por supuesto, también puede definirlo usted
mismo.

void setup()
{
pinMode(RED, OUTPUT);
pinMode(GREEN, OUTPUT);
pinMode(BLUE, OUTPUT);
digitalWrite(RED, HIGH);
digitalWrite(GREEN, LOW);
digitalWrite(BLUE, LOW);
}

Las siguientes son las variables iniciales que definen el PWM.

redValue = 255; // choose a value between 1 and 255 to change the color.
greenValue = 0;
blueValue = 0;

La función "analogWrite" utiliza los tres parámetros anteriores, Junta de desarrollo


para el brillo rojo, Junta de desarrollo para el verde y otro para el azul. En cada caso,
el número estará en el rango de 0 a 255, donde 0 significa apagado y 255 indica el
brillo máximo. Luego, la función 'analogWrite' llama a los parámetros para establecer
el brillo de cada LED.
Con la función 'loop', puede ver que establecemos el color rojo al principio. Si
queremos mostrar el color verde y azul, haga una pausa por un segundo y continúe
con el siguiente color.

#define delayTime 10 // fading time between colors


- 33 -
Delay(delayTime);

Puede intentar agregar múltiples valores al programa y observar los efectos de los
LED RGB.

Imagen de ejemplo

- 34 -
Lección 4 Presionar el botón

Visión de conjunto

En este curso, aprenderemos cómo usar los botones para encender y apagar los LED.
Al presionar un botón se encenderá el LED; presionar otro botón apagará el LED.

Piezas requeridas

1 x Junta de desarrollo

1 x Breadboard

7 x M-M cables (cables de puente macho a macho)

1 x 5mm LED

1 x 220 ohm Resistencias

2 x Presionar el botóns

Introducción del producto

Presionar el botón

El interruptor es un componente muy simple. Cuando presiona el botón, conectan los


dos contactos para que la corriente pueda pasar a través de ellos. El mini Presionar el
botón se usa en esta lección.

De hecho, solo se utilizan dos conexiones de clavija. Dentro del botón, los pines B y
C están conectados entre sí, al igual que A y D.

- 35 -
Diagrama de conexión

Diagrama de cableado

- 36 -
Aunque el cuerpo del interruptor es cuadrado, la distancia entre los dos pines y los
otros dos pines es lo suficientemente grande, lo que significa que sus pines solo se
colocan lo suficientemente separados en el tablero.

Tenga en cuenta que los LED tienen polos positivos y negativos, con clavijas más
largas conectadas al polo positivo, clavijas más cortas conectadas al polo negativo y
también con resistencia para evitar el flujo excesivo de corriente.

Code

Aduino IDE -> Crear un nuevo archivo -> Copie el siguiente código y reemplace el
código original -> Compile y verifique si el código puede ejecutarse -> Guarde el
código como un archivo -> Cargue el código en la placa de desarrollo

Si olvida esta operación, puede revisar el contenido de la primera sección.

int ledPin = 5;
int buttonApin = 9;
int buttonBpin = 8;
void setup()
{
pinMode(ledPin, OUTPUT);
pinMode(buttonApin, INPUT_PULLUP);
pinMode(buttonBpin, INPUT_PULLUP);
}

void loop()
{
if (digitalRead(buttonApin) == LOW)
{
digitalWrite(ledPin, HIGH);
}
if (digitalRead(buttonBpin) == LOW)
{
digitalWrite(ledPin, LOW);
}
}

Como lo hicimos antes, simplemente guarde el código en el archivo y cárguelo en la


placa de desarrollo Junta de desarrollo. Al presionar el botón de la izquierda se
encenderá el LED, y al presionar el botón de la derecha se apagará.

La primera parte del programa es la misma que antes, primero se definen tres

- 37 -
variables, dos de las cuales son pines de entrada de Presionar el botón, otro 'ledPin' es
el pin de salida del LED, 'buttonApin' representa el pin de entrada de Presionar el
botón izquierdo, 'buttonBpin' es el pin de otro botón.
La función 'setup' define 'ledPin' como la SALIDA normal, pero en cuanto a las dos
entradas, usamos 'pinMode' configurado en 'INPUT_PULLUP' o 'INPUT' de la
siguiente manera:

pinMode(buttonApin, INPUT_PULLUP);
pinMode(buttonBpin, INPUT_PULLUP);

El modo pin de INPUT_PULLUP significa que el pin se usará como entrada, pero si
no hay nada más conectado a la entrada, se debe "jalar" a ALTO. En otras palabras, el
valor predeterminado de la entrada es ALTO a menos que se tire hacia abajo. Este
proceso de cambio es en realidad la acción de presionar el botón.
Es por eso que Presionar el botón está conectado a GND. Cuando se presiona el botón,
se conecta al GND de bajo nivel, por lo que ya no es alto. Aquí, manejamos este
problema con la función 'loop'.

void loop()
{
if (digitalRead(buttonApin) == LOW)
{
digitalWrite(ledPin, HIGH);
}
if (digitalRead(buttonBpin) == LOW)
{
digitalWrite(ledPin, LOW);
}
}

Hay dos declaraciones 'if' en la función 'loop' para los dos botones. Cada botón usa la
instrucción 'digitalRead' para leer la señal. Recuerde que si se presiona el botón, la
entrada correspondiente será BAJA. Si el botón A está bajo, entonces "digitalWrite"
en ledPin activará el LED de control para encenderse. Del mismo modo, si se presiona
el botón B, BAJO se escribe en ledPin.

- 38 -
Figura de ejemplo

- 39 -
Lección 5 Zumbador activo y
potenciómetro

Visión de conjunto

En esta lección aprenderá cómo hacer sonar un timbre y usar un potenciómetro para
ajustar el volumen del sonido.

Piezas requeridas

1 x Junta de desarrollo

1 x Zumbador activo

1 x Potenciómetro activo

3 x F-M cables (cables de puente hembra a macho)

Introducción del producto

Zumbador activo

Los zumbadores funcionan con CC y están equipados con un circuito integrado. Son
ampliamente utilizados en computadoras, impresoras, fotocopiadoras, alarmas,
juguetes electrónicos, dispositivos electrónicos automotrices, teléfonos,
temporizadores y otros productos electrónicos para dispositivos de voz.

Los zumbadores se pueden clasificar como activos y pasivos. Mirando el lado de los
pines, el que tiene una placa de circuito verde es un zumbador pasivo, mientras que el
otro encerrado con una cinta negra es Junta de desarrollo activo.

- 40 -
La diferencia es que el Zumbador activo tiene oscilaciones incorporadas, por lo que
produce sonido cuando está encendido. Los zumbadores pasivos no tienen esa fuente,
por lo que no se produce sonido si se utiliza una señal de CC; en su lugar, debe usar
una onda cuadrada con una frecuencia entre 2k y 5k para conducirla.

Potenciómetro

El Potenciómetro es una resistencia que tiene tres pines y el valor de resistencia se


puede ajustar de acuerdo con una determinada regla de variación. Los potenciómetros
generalmente consisten en una resistencia y un cepillo móvil. Cuando el cepillo se
mueve a lo largo de la resistencia, el extremo de salida obtendrá una cierta cantidad de
valor de resistencia o voltaje que está en cierta relación con el desplazamiento. El
Potenciómetro puede usarse como un componente de tres pines o de dos pines. Este
último puede considerarse como una resistencia variable. Esta lección se centra en su
uso como resistencia variable.

- 41 -
Diagrama de conexión

Diagrama de cableado

- 42 -
Rotate the Potenciómetro left to right to change the volume of the sound of the
Zumbador activo.

Figura de ejemplo

- 43 -
Lección 6 Zumbador pasivo

Visión de conjunto

En este curso, aprenderá a usar Zumbador pasivos. El propósito de este experimento


es producir ocho sonidos diferentes, cada Junta de desarrollo con una duración de 0,5
segundos: desde Do (523Hz), Re (587Hz), Mi (659Hz), Fa (698Hz), So (784Hz), La
(880Hz), Si ( 988Hz) para hacer (1047Hz).

Piezas requeridas

1 x Junta de desarrollo

1 x Zumbador pasivo

2 x F-M cables (cables de puente hembra a macho)

Introducción del producto

Zumbador pasivo

El Zumbador pasivo funciona mediante el uso de PWM para generar sonido al lograr
la vibración del aire. Mientras se cambie la frecuencia de vibración, se pueden
producir diferentes sonidos. Por ejemplo, envíe un pulso de 523Hz, que puede generar
Do, pulso 587Hz, puede generar IF Re, pulso de 659Hz, puede generar Mi.
Deberíamos tener en cuenta que no utilice la función analogaWrite () de la placa Junta
de desarrollo para generar un pulso a Buzzer porque la salida de pulso de analogWrite
() es fija.

- 44 -
Diagrama de conexión

Diagrama de cableado

Code

- 45 -
Aduino IDE -> Crear un nuevo archivo -> Copie el siguiente código y reemplace el
código original -> Compile y verifique si el código puede ejecutarse -> Guarde el
código como un archivo -> Cargue el código en la placa de desarrollo

Si olvida esta operación, puede revisar el contenido de la primera sección.

#define NOTE_C5 523


#define NOTE_D5 587
#define NOTE_E5 659
#define NOTE_F5 698
#define NOTE_G5 784
#define NOTE_A5 880
#define NOTE_B5 988
#define NOTE_C6 1047
// notes in the melody:
int melody[] = {
NOTE_C5, NOTE_D5, NOTE_E5, NOTE_F5, NOTE_G5, NOTE_A5, NOTE_B5,
NOTE_C6};
int duration = 500; // 500 miliseconds

void setup() {

void loop() {
for (int thisNote = 0; thisNote < 8; thisNote++) {
// pin8 output the voice, every scale is 0.5 sencond
tone(8, melody[thisNote], duration);

// Output the voice after several minutes


delay(1000);
}

// restart after two seconds


delay(2000);
}

Interpretación de código

- 46 -
#define NOTE_C5 523
#define NOTE_D5 587
#define NOTE_E5 659
#define NOTE_F5 698
#define NOTE_G5 784
#define NOTE_A5 880
#define NOTE_B5 988
#define NOTE_C6 1047

Para hacer el sonido del Zumbador pasivo, debe proporcionar diferentes señales de
frecuencia; El código anterior es para definir 8 frecuencias vocales diferentes.

int melody[] = {
NOTE_C5, NOTE_D5, NOTE_E5, NOTE_F5, NOTE_G5, NOTE_A5, NOTE_B5,
NOTE_C6};

El código anterior es para poner 8 frecuencias de datos en una matriz, para que pueda
usar el bucle for para leer los datos más tarde.

void setup() {
}
void loop() {
for (int thisNote = 0; thisNote < 8; thisNote++) {
// pin8 output the voice, every scale is 0.5 sencond
tone(8, melody[thisNote], duration);

// Output the voice after several minutes


delay(1000);
}
// restart after two seconds
delay(2000);
}

'setup' no implementa la función específica porque la función 'tone' en la función


'loop' se emite directamente mediante un pin digital, por lo que no es necesario
restablecer el pin y luego emitir 8 frecuencias de datos diferentes usando 'for' lazo.

Imagen de ejemplo

- 47 -
- 48 -
Lección 7 Ocho LED con 74HC595

Visión de conjunto

En esta lección aprenderá a usar el chip 74HC595 para expandir los pines Junta de
desarrollo, iluminar 8 luces LED y mostrarlas en forma de luz de marcha.

Aunque podemos conectar 8 LED directamente a la placa de desarrollo Junta de


desarrollo, esto requerirá demasiados recursos de pin.

Está bien, si no tiene muchos componentes electrónicos conectados a su Junta de


desarrollo. Pero por lo general, necesitamos conectar botones, sensores, servidores y
tantas partes juntas en la placa. No puede hacer más si no reserva más pines IO. Por lo
tanto, puede utilizar el chip convertidor de serie a paralelo 74HC595, que ahorrará
muchos pines IO. El chip tiene 8 salidas y 3 entradas, que puede usar para ingresar
datos Junta de desarrollo por Junta de desarrollo.

El chip hace que la conducción de los LED sea un poco más lenta, aproximadamente
500,000 veces por segundo en lugar de 8,000,000 veces por segundo, pero sigue
siendo tan rápida que no notará ningún cambio en absoluto.

Piezas requeridas

1 x Junta de desarrollo

1 x Breadboard

8 x LEDs

8 x 220 ohm Resistencias

1 x 74hc595 IC

19 x M-M cables (cables de puente macho a macho)

Introducción del producto

74HC595

El registro de desplazamiento es un chip que puede considerarse como 8 celdas de


memoria, cada una de las cuales puede ser 1 o 0. Para activar o desactivar estos
valores, utilizamos el pin 'Datos' y el 'Reloj' del chip de datos de entrada.

- 49 -
- 50 -
El pin del reloj necesita recibir 8 pulsos. En cada pulso, si el pin de datos es alto, 1 es
empujado al registro de desplazamiento; de lo contrario, es 0. Cuando se reciben los 8
pulsos, habilitar el pin "Latch" copiará estos 8 valores en el registro de latch, lo cual
es necesario; de lo contrario, cuando los datos se cargan en el registro de
desplazamiento, el LED parpadeará incorrectamente.

El chip también tiene un pin de Habilitación de salida (OE) que habilita o deshabilita
todas las salidas. Puede conectarlo al pin Junta de desarrollo que admite PWM y usar
"analogWrite" para controlar el brillo del LED. Este pin está activo bajo, por lo que lo
conectamos a GND.

Diagrama de conexión

- 51 -
Diagrama de cableado

De hecho, todavía tenemos muchas conexiones que hacer porque tenemos 8 LED y 8
Resistencias para conectar.

Debido a que el chip 74HC595 es una salida importante, primero tenemos que
colocarlo en la posición correcta para que los cables de puente estén bien ordenados
más adelante. El tablero está marcado con números. Deberíamos poner el chip
74HC595 en la posición de placa 45 ~ 52. Las clavijas izquierda y derecha del chip se
extienden a horcajadas en la ranura en el medio de la placa de pruebas, y una pequeña
abertura en forma de U en la superficie de la placa está alineada con la parte superior
de la placa, etiquetada con el número 1.

El número 12 de Junta de desarrollo se inserta en el pin # 14 del registro de


desplazamiento;

El número 11 de Junta de desarrollo se inserta en el pin # 12 del registro de


desplazamiento;

El número 9 de Junta de desarrollo se inserta en el pin # 11 del registro de


desplazamiento.

- 52 -
Todas las salidas están ubicadas en el lado izquierdo del chip. Por lo tanto, para hacer
la conexión fácilmente, las Resistencias deben colocarse debajo de los LED. Debido a
que hay muchas Resistencias, debe prestar atención al hecho de que los cables de
puente de la resistencia no pueden contactarse entre sí. Antes de conectar Junta de
desarrollo a la fuente de alimentación, debe verificarlo nuevamente. No te preocupará
si la conexión es un desastre, ya que este proceso es un poco complicado.

A continuación, coloque el LED en la placa de pruebas. Independientemente de en


qué lado de la placa de pruebas se encuentren, los cables LED positivos más largos
deben mirar hacia el chip, puede ver el Diagrama de cableado para una mejor
comprensión. Debido a que la conexión es complicada, es fácil extraviar los pines 8 y
GND del chip, porque el pin 8 del chip está en el lado derecho del chip y no está en el
mismo lado que los otros pines de salida. La posición de GND y la posición de VCC
se invierten fácilmente, lo que hace que el LED se queme. Una conexión exitosa hará
que cada LED se ilumine a su vez hasta que todos los LED estén encendidos. Luego
todos se apagan y repiten el ciclo.

Code

Aduino IDE -> Crear un nuevo archivo -> Copie el siguiente código y reemplace el
código original -> Compile y verifique si el código puede ejecutarse -> Guarde el
código como un archivo -> Cargue el código en la placa de desarrollo

Si olvida esta operación, puede revisar el contenido de la primera sección.

int tDelay = 100;


int latchPin = 11; // (11) ST_CP [RCK] on 74HC595
int clockPin = 9; // (9) SH_CP [SCK] on 74HC595
int dataPin = 12; // (12) DS [S1] on 74HC595
byte leds = 0;
void updateShiftRegister()
{
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, LSBFIRST, leds);
digitalWrite(latchPin, HIGH);
}

void setup()
{
pinMode(latchPin, OUTPUT);
pinMode(dataPin, OUTPUT);
pinMode(clockPin, OUTPUT);
}

- 53 -
void loop()
{
leds = 0;
updateShiftRegister();
delay(tDelay);
for (int i = 0; i < 8; i++)
{
bitSet(leds, i);
updateShiftRegister();
delay(tDelay);
}
}

Interpretación de código

Lo primero que tenemos que hacer es definir los tres pines que utilizaremos. Estas son
salidas digitales Junta de desarrollo que se conectarán a los pines LATCH, CLOCK y
DATA del 74HC595.

int latchPin = 11;


int clockPin = 9;
int dataPin = 12;

A continuación, defina una variable llamada "leds". Esto se usará para guardar el
modo en el que el LED está actualmente encendido o apagado. Los datos de tipo 'byte'
indican el uso de números de 8 bits. Cada bit se puede encender o apagar, por lo que
es ideal para rastrear cuál de los ocho LED está encendido o apagado.

byte leds = 0;

La función de configuración establece los tres pines que usamos como salidas
digitales.

void setup()
{
pinMode(latchPin, OUTPUT);
pinMode(dataPin, OUTPUT);
pinMode(clockPin, OUTPUT);
}

La función 'loop' inicialmente apaga todos los LED al asignar un valor de 0 a la


variable 'leds'. Luego llame a 'updateShiftRegister', que envía el modo 'leds' al registro

- 54 -
de desplazamiento para que todos los LED se apaguen. Trataremos el Principio de
trabajo de 'updateShiftRegister' más adelante.

La función de bucle se detiene durante medio segundo, luego comienza a contar de 0


a 7 utilizando el bucle 'for' y la variable 'i'. Cada vez que utiliza la función Arduino
'bitSet' para establecer el bit del LED en la variable de control 'leds', también llama a
'updateShiftRegister' para que los leds se actualicen para reflejar el contenido de la
variable 'leds'. Luego hay un retraso de medio segundo antes de que 'i' se incremente y
se encienda el siguiente LED.

void loop()
{
leds = 0;
updateShiftRegister();
delay(500);
for (int i = 0; i < 8; i++)
{
bitSet(leds, i);
updateShiftRegister();
delay(500);
}
}

La función 'updateShiftRegister' establece en primer lugar latchPin bajo, luego llama


a la función Junta de desarrollo 'shiftOut' antes de que 'latchPin' vuelva a configurarse
como alto. Esto requiere cuatro parámetros, los dos primeros son los pines para los
datos y el reloj respectivamente. El tercer parámetro especifica desde qué datos
comenzar. Comenzaremos con el bit correcto, que se llama el "bit menos
significativo" (LSB), y el último parámetro son los datos reales que se desplazarán al
registro de desplazamiento, en este caso, son "leds".

void updateShiftRegister()
{
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, LSBFIRST, leds);
digitalWrite(latchPin, HIGH);
}

Si desea apagar Junta de desarrollo de los LED en lugar de encenderlo, puede llamar a
una función Arduino similar (bitClear) utilizando la variable 'leds'. Esto establecerá el

- 55 -
bit 'leds' en 0, y luego debe rastrearlo llamando a 'updateShiftRegister' para actualizar
el LED real.

Figura de ejemplo

- 56 -
Lección 8 The Serial Monitor

Visión de conjunto

En esta lección, agregará herramientas para controlar los LED en su computadora


utilizando el monitor en serie Arduino, basado en la Lección 7. El Monitor en serie es
el "Puente" entre la computadora y Junta de desarrollo. ¡Le permite enviar y recibir
mensajes de texto, facilitar la depuración y controlar Junta de desarrollo desde el
teclado! Por ejemplo, podrá enviar comandos desde su computadora para encender los
LED. En este curso, utilizará exactamente las mismas partes y un diseño de tablero
similar al de la Lección 7. Por lo tanto, si aún no lo ha hecho, siga las lecciones 7.

Code

Aduino IDE -> Crear un nuevo archivo -> Copie el siguiente código y reemplace el
código original -> Compile y verifique si el código puede ejecutarse -> Guarde el
código como un archivo -> Cargue el código en la placa de desarrollo

Si olvida esta operación, puede revisar el contenido de la primera sección.

int latchPin = 11;


int clockPin = 9;
int dataPin = 12;

byte leds = 0;
void updateShiftRegister()
{
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, LSBFIRST, leds);
digitalWrite(latchPin, HIGH);
}
void setup()
{
pinMode(latchPin, OUTPUT);
pinMode(dataPin, OUTPUT);
pinMode(clockPin, OUTPUT);
updateShiftRegister();
Serial.begin(9600);
while (! Serial); // Wait untilSerial is ready - Leonardo
Serial.println("Enter LED Number 0 to 7 or 'x' to clear");
}

- 57 -
void loop()
{
if (Serial.available())
{
char ch = Serial.read();
if (ch >= '0' && ch <= '7')
{
int led = ch - '0';
bitSet(leds, led);
updateShiftRegister();
Serial.print("Turned on LED ");
Serial.println(led);
}
if (ch == 'x')
{
leds = 0;
updateShiftRegister();
Serial.println("Cleared");
}
}
}
PASOs

1) Después de cargar este código en Junta de desarrollo, haga clic en el botón como
se muestra a continuación.

- 58 -
2) Luego configure la velocidad en baudios del puerto serie de acuerdo con el
código, como se muestra a continuación.

Esta ventana se llama monitor en serie y es parte del software Arduino IDE. Le
permite enviar mensajes desde su computadora a la placa Junta de desarrollo (a través
de USB) y recibir mensajes de Junta de desarrollo.

Arduino ha enviado el mensaje "Ingrese el número de LED 0 a 7 o 'x". Nos dice qué
comandos se pueden enviar al Arduino: envíe 'x' (apague todos los LED) o la cantidad
de LED para encender (donde 0 es el LED inferior, 1 es el siguiente LED y el LED
superior es 7 ) Intente ingresar el siguiente comando en el área superior de The Serial
Monitor. Haga clic en "Enviar" después de ingresar cada Junta de desarrollo de los
siguientes caracteres: x 0 3 5. Si todos los LED están apagados, la entrada x no será
válida, pero cuando ingrese cada número, el LED correspondiente se iluminará y
recibirá el mensaje de confirmación de la junta de Junta de desarrollo. La interfaz del
monitor serie es la siguiente.

- 59 -
Ingrese x nuevamente y haga clic en "Enviar" para apagar todos los LED.

Interpretación de código

En la función 'configuración', hay tres últimas declaraciones de código que no hemos


visto antes.

void setup()
{
pinMode(latchPin, OUTPUT);
pinMode(dataPin, OUTPUT);
pinMode(clockPin, OUTPUT);
updateShiftRegister();
Serial.begin(9600);
while (! Serial); // Wait until Serial is ready - Leonardo
Serial.println("Enter LED Number 0 to 7 or 'x' to clear");
}
Primero, tenemos el comando 'Serial.begin (9600)'. Esto iniciará la comunicación en
serie para que Junta de desarrollo pueda emitir comandos a través de la conexión USB.
El valor 9600 se llama "velocidad de transmisión". Esta es la velocidad a la que se
envían los datos. Puede cambiarlo a un valor más alto, pero también debe cambiar el
monitor serie Arduino al mismo valor.
La línea que comienza con 'while' asegura que hay un dispositivo de comunicación en
el otro extremo de la conexión USB para que el Arduino hable antes de comenzar a
enviar un mensaje. De lo contrario, se puede enviar un mensaje pero no se mostrará.
La última línea en 'configuración' emite el mensaje que vimos en la parte superior de
la interfaz de Serial Monitor.
La función de "bucle" es donde tienen lugar todas las acciones.
void loop()

- 60 -
{
if (Serial.available())
{
char ch = Serial.read();
if (ch >= '0' && ch <= '7')
{
int led = ch - '0';
bitSet(leds, led);
updateShiftRegister();
Serial.print("Turned on LED ");
Serial.println(led);
}
if (ch == 'x')
{
leds = 0;
updateShiftRegister();
Serial.println("Cleared");
}
}
}

Todo lo que sucede dentro del bucle se incluye en la declaración 'if'. Por lo tanto, no
sucede nada a menos que la llamada a la función integrada de Arduino
'Serial.available ()' sea 'verdadera'. Si los datos se han enviado a Junta de desarrollo y
están listos para su procesamiento, Serial.available () devolverá "verdadero". El
mensaje entrante se almacena en un llamado búfer, y si el búfer no está vacío,
Serial.available () devuelve verdadero.
Si ha recibido un mensaje, irá a la siguiente línea de código.

char ch = Serial.read();

Esto leerá el siguiente carácter del búfer y lo eliminará del búfer. También lo asigna a
la variable 'ch'. La variable 'ch' es del tipo 'char' y significa 'carácter', que, como su
nombre indica, contiene un carácter. Si ha seguido las instrucciones en los consejos en
la parte superior de The Serial Monitor, este carácter será un solo número entre 0 y 7
o la letra 'x'.

La declaración 'if' de la siguiente línea verifica si es un número único al observar si


'ch' es mayor o igual que el carácter '0' y menor o igual que el carácter '7'. Comparar
comandos de esta manera parece un poco extraño, pero es perfectamente aceptable.

- 61 -
Cada carácter está representado por un número único llamado valor ASCII. Esto
significa que cuando comparamos caracteres usando ≤ y ≧, en realidad estamos
comparando los valores ASCII.

Llegamos a la siguiente línea:

int led = ch – '0';

¡Ahora estamos haciendo aritmética para el objetivo! Restamos el número "0" del
número ingresado. Entonces, si escribe '0', entonces '0' - '0' será igual a 0. Si escribe '7',
entonces '7' - '0' será igual al número 7, porque en realidad está utilizando el valor
ASCII en sustracción. Dado que conocemos la cantidad de LED para encender, solo
necesitamos establecer este bit en la variable 'leds' y actualizar el registro de
desplazamiento.

bitSet(leds, led);

updateShiftRegister();

Las siguientes dos líneas envían un mensaje de confirmación a The Serial Monitor.

Serial.print("Turned on LED ");

Serial.println(led);

La primera línea usa Serial.print en lugar de Serial.println. La diferencia es que


después de imprimir el contenido de los parámetros, Serial.print no se ajustará y
Serial.println se ajustará a la nueva línea. Usamos Serial.print en la primera línea
porque dividimos el mensaje en dos partes. El primero es el bit general: 'encienda el
LED' y luego el número de LED. El número de LED se almacena en la variable "int"
en lugar de la cadena de texto. Serial.print puede usar cadenas de texto entre comillas
dobles, o 'int' o casi cualquier tipo de variable. Después de procesar la declaración 'if'
del caso, cuando se procesa un número, una segunda declaración 'if' verifica si la
variable 'ch' es la letra 'x' y, de ser así, borra todos los LED y envía un mensaje de
confirmación.
if (ch == 'x')
{
leds = 0;
updateShiftRegister();
Serial.println("Cleared");
}

- 62 -
Lección 9 Fotorresistencia

Visión de conjunto

En este curso, aprenderá a medir la intensidad de la luz utilizando entradas analógicas.


Se basará en la Lección 7 y usará el nivel de luz para controlar la cantidad de LED
que se iluminarán.

Piezas requeridas

1 x Junta de desarrollo

1 x Breadboard

8 x LEDs

8 x 220 ohm Resistencias

1 x 1K ohm Resistencias

1 x 74hc595 IC

1 x Resistencia a la foto

21 x M-M cables (cables de puente macho a macho)

Introducción del producto

Photosensitive Resistor

Resistencias fotosensibles, también conocidas como LDR. Las PhotoResistencias son


como las Resistencias ordinarias, excepto que la resistencia de la resistencia cambia a
medida que la luz cae sobre ellas. Esto tiene una resistencia de aproximadamente 50 k
Ω en la oscuridad cercana y 500Ω en la luz fuerte. Para convertir este valor de
resistencia modificado a un valor que podamos medir en la entrada analógica de la
placa Junta de desarrollo; necesita ser convertido a voltaje. La forma más fácil es
combinarlo con una resistencia fija.

- 63 -
Los valores de la resistencia y la fotorresistencia se unen para comportarse como un
solo dato. Cuando la luz es muy brillante, la resistencia del fotorresistor es muy baja
en comparación con una resistencia de valor fijo, por lo que es como si el
Potenciómetro estuviera configurado al máximo. Cuando el fotorresistor está en luz
tenue, la resistencia se vuelve mayor que una resistencia fija de 1kΩ como si el
Potenciómetro se enfrentara a GND. Cargue el código proporcionado en esta sección,
cubra la resistencia fotosensible con su dedo y colóquela cerca de la fuente de luz.
Puedes ver los cambios de LED.

- 64 -
Diagrama de conexión

Diagrama de cableado

- 65 -
Code

Aduino IDE -> Crear un nuevo archivo -> Copie el siguiente código y reemplace el
código original -> Compile y verifique si el código puede ejecutarse -> Guarde el
código como un archivo -> Cargue el código en la placa de desarrollo

Si olvida esta operación, puede revisar el contenido de la primera sección.

int lightPin = 0;
int latchPin = 11;
int clockPin = 9;
int dataPin = 12;

int leds = 0;

void setup()
{
pinMode(latchPin, OUTPUT);
pinMode(dataPin, OUTPUT);
pinMode(clockPin, OUTPUT);
}
void updateShiftRegister()
{
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, LSBFIRST, leds);
digitalWrite(latchPin, HIGH);
}
void loop()
{
int reading = analogRead(lightPin);
int numLEDSLit = reading / 57; //1023 / 9 / 2
if (numLEDSLit > 8) numLEDSLit = 8;
leds = 0; // no LEDs lit to start
for (int i = 0; i < numLEDSLit; i++)
{
leds = leds + (1 << i); // sets the i'th bit
}
updateShiftRegister();
}

- 66 -
Interpretación de código

Lo primero a tener en cuenta es que hemos cambiado el nombre del pin analógico a
'lightPin' en lugar de 'potPin' porque ya no estamos conectados a un Potenciómetro. El
único otro cambio en el boceto es la línea que cuenta el número de LED para
iluminar:
int numLEDSLit = reading / 57; // all LEDs lit at 1k

Esta vez, dividimos el valor original por 57 en lugar de 114. En otras palabras, lo
dividimos por la mitad de los datos y lo dividimos en nueve áreas, desde ningún LED
hasta todos los LED encendidos. Este factor adicional es considerar una resistencia
fija de 1kΩ. Esto significa que cuando el fotorresistor tiene una resistencia de 1kΩ
(igual que la resistencia fija), el valor original será 1023/2 = 511, que será igual a
todos los LED encendidos, y luego el valor de (numLEDSLit) será 8 .

- 67 -
Lección 10 Pantallas de segmentos LED

Visión de conjunto

En cuanto a esta lección, aprenderemos cómo usar el tubo de pantalla LED de


segmento digital. Hay muchos pines para esta pantalla LED. Es un desperdicio de
pines IO usar directamente la placa Junta de desarrollo. Por lo tanto, utilizamos el
74HC595 como una aplicación de expansión de puertos de E / S.

Piezas requeridas

1 x Junta de desarrollo

1 x Tubo de pantalla LED de segmento digital

1 x 1K ohm Resistencias

1 x 74hc595 IC

22 x M-M cables (cables de puente macho a macho)

Introducción del producto

Digital Segment LED Display Tube

El tubo de pantalla LED de segmento digital está empaquetado por una pluralidad de
LED para formar un componente en forma de "8". Estos segmentos están
representados por las letras a, b, c, d, e, f, g, dp respectivamente. Cuando un segmento
específico del tubo digital se aplica con un voltaje, estos segmentos específicos se
iluminarán para formar lo que vemos en nuestros ojos. Por ejemplo, muestre un
número "2", debe resaltar a, b, g, e, d, y no brillante f, c, dp. Los tubos digitales LED
son generalmente brillantes y súper brillantes, y también tienen diferentes tamaños,
como 0,5 pulgadas y 1 pulgada. La pantalla de un tubo digital de pequeño tamaño
generalmente está compuesta por un diodo emisor de luz, y el tubo digital de gran
tamaño está compuesto por dos o más diodos emisores de luz. En términos generales,
el voltaje de un solo LED es de aproximadamente 1.8V y la corriente no excede los
30mA.

Los ánodos de todos los diodos emisores de luz se conectan entre sí y luego se
conectan al polo positivo de la fuente de alimentación, llamado tubo digital de ánodo
común; Los cátodos de todos los diodos emisores de luz están conectados entre sí, y
luego conectados al polo negativo de la fuente de alimentación se denomina tubo

- 68 -
digital de cátodo común. Los números y caracteres que muestra el tubo digital LED
de uso común son 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F.

En esta lección, utilizaremos un tubo de pantalla LED de segmento digital de ánodo


común de un dígito.

- 69 -
Diagrama de conexión

Diagrama de cableado

- 70 -
Code

Aduino IDE -> Crear un nuevo archivo -> Copie el siguiente código y reemplace el
código original -> Compile y verifique si el código puede ejecutarse -> Guarde el
código como un archivo -> Cargue el código en la placa de desarrollo

Si olvida esta operación, puede revisar el contenido de la primera sección.

unsigned char number[10] = {


B10000000, // 0
B11110010, // 1
B01001000, // 2
B01100000, // 3
B00110010, // 4
B00100100, // 5
B00000100, // 6
B11110000, // 7
B00000000, // 8
B00100000 // 9
};
const byte Pin_DS = 11; //data
const byte Pin_ST_CP = 12; //latch
const byte Pin_SH_CP = 13; //clock
char Buff[1];

void setup() {
// put your setup code here, to run once:
Serial.begin(9600);

pinMode(Pin_ST_CP, OUTPUT);//ST_CP
pinMode(Pin_DS, OUTPUT);//DS
pinMode(Pin_SH_CP, OUTPUT);//SH_CP
digitalWrite(Pin_DS, LOW);
}

void loop() {
// put your main code here, to run repeatedly:

if (Serial.available())
{
Serial.readBytes(Buff, sizeof(Buff));
int comInt = charToInt();
digitalWrite(Pin_ST_CP, LOW);

- 71 -
shiftOut(Pin_DS, Pin_SH_CP, MSBFIRST, number[comInt]);
digitalWrite(Pin_ST_CP, HIGH);
delay(1000);
}
}

int charToInt()
{
int tmp = 0;
for (int i = 0; i < 1; i++)
{
tmp = tmp * 10 + (Buff[i] - 48);
}
return tmp;

Interpretación de código

unsigned char number[10] = {


B10000000, // 0
B11110010, // 1
B01001000, // 2
B01100000, // 3
B00110010, // 4
B00100100, // 5
B00000100, // 6
B11110000, // 7
B00000000, // 8
B00100000 // 9
};

Defina una matriz unidimensional, dentro de la matriz para colocar el código que
puede mostrar el tubo digital. La matriz almacena 10 códigos, es decir, 10 números
del 0 al 9.

void loop() {
// put your main code here, to run repeatedly:

if (Serial.available())
{
Serial.readBytes(Buff, sizeof(Buff));
int comInt = charToInt();

- 72 -
digitalWrite(Pin_ST_CP, LOW);
shiftOut(Pin_DS, Pin_SH_CP, MSBFIRST, number[comInt]);
digitalWrite(Pin_ST_CP, HIGH);
delay(1000);
}
}

Use la función 'loop' para detectar continuamente el comando de entrada. Cuando se


detecta el comando de entrada, almacene el comando en la variable 'comInt', y luego
use la función 'shiftOut' para mostrar el número correspondiente al comando. Si el
número ingresado no está en el rango de 0 a 9, no se muestra.

int charToInt()
{
int tmp = 0;
for (int i = 0; i < 1; i++)
{
tmp = tmp * 10 + (Buff[i] - 48);
}
return tmp;
}
La función "charTonInt" convierte el número de entrada en un código binario y lo
devuelve, y finalmente lo almacena en la variable "constante" a través de int comInt =
charToInt().

Figura de ejemplo

- 73 -
Lección 11 Soldadura de PCB

Parte 1 PCB de soldadura de circuitos

Visión de conjunto

Utilizaremos placas PCB para soldar circuitos y componentes. Al final de este


capítulo, esperamos ayudarlo a dominar cómo diseñar sus propios circuitos y tener
ideas para construir e imprimir tableros. Para completar este capítulo, deberá preparar
el equipo de soldadura necesario, incluido el soldador y el alambre de estaño, así
como otros materiales auxiliares. Hemos preparado materiales de soldadura de PCB,
alambre de estaño, cabezales de clavija y terminales. Debido a que la temperatura del
soldador puede alcanzar varios cientos de grados o más durante el uso, tenga cuidado
al soldar.

Esta lección se enfoca en soldar un circuito que controla el timbre. Cuando se


presiona el botón, suena el timbre. No es necesario ser programado. Puede usarlo
cuando está encendido. Puede instalarlo en una bicicleta, la puerta de la habitación o
en cualquier lugar que necesite.

Piezas requeridas

1 x 2pines encabezado

1 x Red LED

1 x 220 ohm Resistencias

1 x Zumbador activo

1 x Mini Presionar el botón

- 74 -
¿Cómo soldar?

Schematic

Diagrama de conexión

Circuito de soldadura

Inserte los componentes en la placa universal, los pines se insertan desde el lado sin
cobre y el circuito se suelda al lado de cobre. Como se muestra abajo.

- 75 -
A continuación se muestran las imágenes una vez finalizada la soldadura.

- 76 -
¿El circuito está soldado con éxito?

Conecte los dos pines del circuito (3.3V ~ 5V) a la fuente de alimentación. La fuente
de alimentación puede ser alimentada por batería, placa de desarrollo Arduino,
Raspberry Pi, etc. Después de conectarse a la alimentación, presione el botón, el LED
indicador de encendido se ilumina y el zumbador emite un sonido, lo que demuestra
que el circuito se ha soldado con éxito, de lo contrario fallará y deberá volver a
verificar el circuito.

- 77 -
Parte 2 Parpadeo y funcionamiento de la soldadura de LED

Visión de conjunto

En esta lección, aprenderemos la soldadura del parpadeo y el funcionamiento de los


LED. Debido a que hay 8 LED, deberíamos usar 8 puertos de E / S Arduino o
Raspberry Pi, que está ocupado demasiados puertos de E / S. Entonces usamos el chip
74HC595 para expandir los puertos de E / S.

Piezas requeridas

7 x Header Pins

8 x LED

8 x 220 ohm Resistencias

1 x 74HC595

- 78 -
¿Cómo soldar?

Schematic

Diagrama de conexión

- 79 -
Circuito de soldadura

Inserte los componentes en la placa universal, los pines se insertan desde el lado sin
cobre y el circuito se suelda al lado de cobre. Como se muestra abajo.

A continuación se muestran las imágenes una vez finalizada la soldadura.

- 80 -
Cómo probar si el circuito se ha soldado con éxito?

1) Conéctate a Arduino

2) Cargue el siguiente código en la placa de desarrollo Arduino. (Si no sabe cómo


lograrlo, consulte la lección 7).

int tDelay = 100;


int latchPin = 11; // (11) ST_CP [RCK] on 74HC595
int clockPin = 9; // (9) SH_CP [SCK] on 74HC595
int dataPin = 12; // (12) DS [S1] on 74HC595
byte leds = 0;
void updateShiftRegister()
{
digitalWrite(latchPin, LOW);

- 81 -
shiftOut(dataPin, clockPin, LSBFIRST, leds);
digitalWrite(latchPin, HIGH);
}

void setup()
{
pinMode(latchPin, OUTPUT);
pinMode(dataPin, OUTPUT);
pinMode(clockPin, OUTPUT);
}

void loop()
{
leds = 0;
updateShiftRegister();
delay(tDelay);
for (int i = 0; i < 8; i++)
{
bitSet(leds, i);
updateShiftRegister();
delay(tDelay);
}
}

- 82 -

También podría gustarte