Electronic Components Fun Kit-Espanol
Electronic Components Fun Kit-Espanol
Electronic Components Fun Kit-Espanol
-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.
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 1 Parpadeo....................................................................................................... - 13 -
Lección 2 LED..................................................................................................................- 19 -
Lección 9 Fotorresistencia........................................................................................... - 63 -
-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.
Característica
Barato: las placas Arduino son relativamente baratas en comparación con otras
plataformas de microcontroladores.
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)
-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.
-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 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.
- 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.
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
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
Piezas requeridas
1 x Junta de desarrollo
1 x breadboard
1 x 5mm LED
1 x 1k ohm resistor
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).
- 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
Vamos a usar esto para controlar cuánta electricidad fluye a través del LED y, por lo
tanto, qué tan brillante brilla.
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.
- 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
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
- 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 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.
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
- 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;
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);
}
}
- 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
void setup()
{
pinMode(RED, OUTPUT);
pinMode(GREEN, OUTPUT);
pinMode(BLUE, OUTPUT);
digitalWrite(RED, HIGH);
digitalWrite(GREEN, LOW);
digitalWrite(BLUE, LOW);
}
redValue = 255; // choose a value between 1 and 255 to change the color.
greenValue = 0;
blueValue = 0;
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
1 x 5mm LED
2 x Presionar el botóns
Presionar el botó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
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);
}
}
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
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
- 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
Piezas requeridas
1 x Junta de desarrollo
1 x Zumbador pasivo
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
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);
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);
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.
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
1 x 74hc595 IC
74HC595
- 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.
- 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.
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
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.
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);
}
- 54 -
de desplazamiento para que todos los LED se apaguen. Trataremos el Principio de
trabajo de 'updateShiftRegister' más adelante.
void loop()
{
leds = 0;
updateShiftRegister();
delay(500);
for (int i = 0; i < 8; i++)
{
bitSet(leds, i);
updateShiftRegister();
delay(500);
}
}
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
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
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
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'.
- 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.
¡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.println(led);
- 62 -
Lección 9 Fotorresistencia
Visión de conjunto
Piezas requeridas
1 x Junta de desarrollo
1 x Breadboard
8 x LEDs
1 x 1K ohm Resistencias
1 x 74hc595 IC
1 x Resistencia a la foto
Photosensitive Resistor
- 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
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
Piezas requeridas
1 x Junta de desarrollo
1 x 1K ohm Resistencias
1 x 74hc595 IC
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.
- 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
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
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);
}
}
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
Visión de conjunto
Piezas requeridas
1 x 2pines encabezado
1 x Red LED
1 x Zumbador activo
- 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
Piezas requeridas
7 x Header Pins
8 x LED
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.
- 80 -
Cómo probar si el circuito se ha soldado con éxito?
1) Conéctate a Arduino
- 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 -