Está en la página 1de 18

UNIVERSIDAD NACIONAL DEL CALLAO

 
FACULTAD DE INGENIERÍA Eléctrica y Electrónica
 
Escuela Profesional de Ingeniería Electrónica

PROYECTO N°2
 
SECUENCIA DE LEDS
  
INTEGRANTES:
 
-Benavides Ramírez Christian Lazlo (2213210056)
GRUPO HORARIO: 01L-91-G

DOCENTE:  Dr. Ing. Mendoza Apaza Fernando

Página 1 de 18
PROYECTO N°2

1. INTRODUCCION………………………………………..

2. MARCO TEORICO…………….………………………..

3. DESARROLLO DEL PROYECTO………….…………..

4. CONCLUCIONES Y RECOMENDACIONES………...

Página 2 de 18
1.INTRODUCCIÓN

La programación en Arduino es una forma de crear y controlar circuitos


electrónicos mediante una placa basada en un microcontrolador que se puede
programar con un lenguaje derivado de C++.
Un lenguaje derivado de C++ es un lenguaje de programación que se basa en
las reglas y la sintaxis de C++, pero que puede tener algunas modificaciones o
extensiones para adaptarse a un propósito específico.
Arduino es una plataforma de código abierto que permite a los aficionados,
estudiantes y profesionales desarrollar proyectos de electrónica, robótica,
domótica, Internet de las cosas y otras áreas

Página 3 de 18
2.MARCO TEÓRICO
Introducción a Arduino:
1. Definición de Arduino:

Arduino es una plataforma de prototipado electrónico que combina una placa de hardware
con un entorno de desarrollo de software. Fue creado con el objetivo de ser una herramienta
accesible y fácil de usar para personas sin experiencia previa en electrónica o programación.
Arduino se basa en un diseño de código abierto, lo que significa que la información técnica, los
esquemas y el software están disponibles públicamente, lo que permite a los usuarios estudiar,
modificar y compartir sus proyectos.

2. Descripción de la placa Arduino y sus componentes principales:

La placa Arduino es el núcleo de la plataforma y está diseñada con un microcontrolador y una


serie de pines de entrada/salida. Algunos de los componentes principales de una placa Arduino
típica incluyen:

Microcontrolador: Es el cerebro de la placa y procesa las instrucciones del programa.


Los microcontroladores más comunes en las placas Arduino son de la familia AVR de
Atmel, aunque también existen placas basadas en otros microcontroladores.
Pines de entrada/salida: Son los puntos de conexión de la placa que permiten
interactuar con otros componentes electrónicos, como sensores, actuadores y
dispositivos externos. Los pines se dividen en pines digitales y pines analógicos.
Regulador de voltaje: Se encarga de proporcionar una fuente de alimentación estable
y adecuada para los componentes de la placa.
Conectores y puertos: Incluyen puertos USB para la comunicación con el ordenador,
conectores de alimentación y pines adicionales para la conexión de módulos y
expansiones.

3. Ventajas de Arduino en comparación con otras plataformas de desarrollo:

Arduino presenta varias ventajas que lo hacen atractivo en comparación con otras plataformas
de desarrollo de proyectos electrónicos:

 Accesibilidad: Arduino se ha ganado una reputación de ser fácil de aprender y usar,


incluso para principiantes. Ofrece una curva de aprendizaje suave y una gran cantidad
de recursos educativos disponibles, como tutoriales y documentación.
 Versatilidad: Arduino es compatible con una amplia variedad de componentes
electrónicos y módulos adicionales, lo que permite la creación de una amplia gama de
proyectos, desde simples hasta complejos.
 Comunidad activa: Arduino cuenta con una gran comunidad de usuarios y entusiastas
que comparten sus proyectos, experiencias y conocimientos. Esto crea un ambiente
colaborativo que fomenta el aprendizaje y la solución de problemas.
 Amplia disponibilidad: Las placas Arduino y los componentes relacionados están
ampliamente disponibles en tiendas en línea y físicas a precios asequibles. Esto facilita
el acceso a los materiales necesarios para realizar proyectos.
 Código abierto: Arduino se basa en un enfoque de código abierto, lo que significa que
la información técnica y el software están disponibles para el público. Esto permite a
los usuarios modificar y adaptar Arduino a sus necesidades específicas.

Página 4 de 18
Lenguaje de programación en Arduino:
1. Descripción del lenguaje de programación utilizado en Arduino, basado en Wiring y C/C++:

El lenguaje de programación utilizado en Arduino está basado en el lenguaje Wiring y utiliza


una variante simplificada de C/C++. Está diseñado para facilitar la programación de proyectos
electrónicos, especialmente para aquellos que no tienen experiencia previa en programación.
El lenguaje de Arduino proporciona una interfaz amigable y abstrae ciertos detalles técnicos, lo
que hace que la programación sea más accesible para los principiantes.

2. Explicación de la estructura básica de un programa de Arduino (setup y loop):

Un programa de Arduino consta de dos funciones principales: "setup" y "loop". La función


"setup" se ejecuta una sola vez al inicio del programa y se utiliza para realizar configuraciones
iniciales, como establecer la velocidad de comunicación serial, configurar los pines de
entrada/salida, etc. Por otro lado, la función "loop" se ejecuta continuamente en un ciclo
infinito una vez que se ha completado la función "setup". Es en esta función donde se colocan
las instrucciones y la lógica del programa principal.

3. Presentación de las estructuras de control (condicionales, bucles) y las funciones básicas


utilizadas en Arduino:

 En Arduino, se utilizan estructuras de control similares a otros lenguajes de


programación para controlar el flujo de ejecución. Estas estructuras incluyen:
 Condicionales: Permite tomar decisiones basadas en ciertas condiciones. Los
condicionales más comunes son "if", "else if" y "else". Por ejemplo:
 Bucles: Permiten repetir una serie de instrucciones hasta que se cumpla una condición.
Los bucles más utilizados son "for" y "while". Por ejemplo:
 Funciones básicas: Arduino proporciona una serie de funciones integradas que facilitan
la programación de proyectos electrónicos. Algunas funciones básicas incluyen:
 pinMode(pin, mode): Configura el modo de un pin (entrada o salida).
 digitalWrite(pin, value): Establece el valor de salida de un pin (HIGH o LOW).
 digitalRead(pin): Lee el valor de entrada de un pin (HIGH o LOW).
 analogRead(pin): Lee el valor analógico de un pin (0 a 1023).
 analogWrite(pin, value): Establece el valor de salida PWM de un pin (0 a 255).

Circuitos electrónicos con Arduino:


1. Descripción de los conceptos básicos de la electrónica necesarios para trabajar con Arduino:

Para trabajar con Arduino, es importante comprender algunos conceptos básicos de


electrónica. Estos incluyen:

Voltaje: Es la diferencia de potencial eléctrico entre dos puntos. Se mide en voltios (V)
y determina la fuerza con la que fluye la corriente eléctrica.

Página 5 de 18
Corriente: Es el flujo de carga eléctrica a través de un conductor. Se mide en amperios
(A) y se representa por la letra I. La corriente se mueve desde el polo positivo al
negativo.
Resistencia: Es la oposición al flujo de corriente en un circuito eléctrico. Se mide en
ohmios (Ω) y se representa por la letra R. La resistencia limita la cantidad de corriente
que puede pasar a través de un componente.
Ley de Ohm: Establece que la corriente que fluye a través de un componente es
directamente proporcional al voltaje aplicado e inversamente proporcional a la
resistencia. Se expresa mediante la fórmula V = I * R.

2. Explicación de los pines digitales y analógicos de Arduino y su función en la conexión de


componentes electrónicos:

Arduino tiene pines digitales y analógicos que permiten la conexión de componentes


electrónicos. Los pines digitales pueden estar en uno de dos estados: HIGH (1) o LOW (0), lo
que corresponde a encendido o apagado, respectivamente. Estos pines son adecuados para
componentes digitales como LEDs, botones, relés, entre otros.

Por otro lado, los pines analógicos pueden leer y generar señales analógicas, que son voltajes
variables en un rango determinado. Estos pines son útiles para la conexión de sensores y
actuadores que proporcionan o requieren señales analógicas, como potenciómetros, sensores
de luz, sensores de temperatura, entre otros.

3. Introducción a los componentes electrónicos comunes utilizados en proyectos con Arduino,


como resistencias, LEDs, botones, sensores, etc.:

En los proyectos con Arduino, se utilizan diversos componentes electrónicos. Algunos de los
más comunes incluyen:

o Resistencias: Se utilizan para limitar el flujo de corriente en un circuito y proteger los


componentes sensibles. Vienen en diferentes valores de resistencia y se identifican por
sus bandas de colores.
o LEDs (Diodos Emisores de Luz): Son componentes que emiten luz cuando una corriente
eléctrica los atraviesa. Se utilizan para indicar estados, visualizar datos o crear efectos
visuales en los proyectos.
o Botones y pulsadores: Permiten la interacción del usuario con el proyecto. Al presionar
un botón, se cierra un circuito y se envía una señal a Arduino.
o Sensores: Hay una amplia variedad de sensores que se pueden conectar a Arduino,
como sensores de temperatura, de luz, de humedad, de movimiento, de proximidad,
entre otros. Estos sensores proporcionan datos del entorno que pueden ser utilizados
por el programa de Arduino.

4. Explicación de las conexiones básicas entre Arduino y los componentes electrónicos:

La conexión entre Arduino y los componentes electrónicos se realiza utilizando cables y


protoboard (placas de pruebas) para crear circuitos. Las conexiones básicas incluyen:

 Conexión de alimentación: Arduino se alimenta a través de un cable USB o una fuente


de alimentación externa. Es importante asegurarse de que los voltajes y polaridades
sean los adecuados para evitar dañar los componentes.

Página 6 de 18
 Conexión de los componentes: Los componentes electrónicos se conectan a los pines
digitales o analógicos de Arduino utilizando cables o mediante el uso de protoboard. Es
importante seguir el esquema de conexiones correcto y asegurarse de que los pines y
los cables estén correctamente insertados.
 Resistencias en serie: Cuando se utiliza un LED u otros componentes que requieren
una corriente limitada, se suelen colocar resistencias en serie para proteger el
componente y evitar corrientes excesivas.

Programación de circuitos electrónicos con Arduino:


1. Descripción de cómo se programa Arduino para interactuar con los componentes
electrónicos:

Para programar Arduino y lograr la interacción con los componentes electrónicos, se utiliza el
entorno de desarrollo de Arduino, que proporciona una interfaz amigable para escribir y cargar
el código en la placa. El lenguaje de programación de Arduino se basa en Wiring y C/C++, lo
que permite controlar los pines de entrada/salida y utilizar las funciones y bibliotecas
específicas de Arduino.

En el código, se definen las configuraciones iniciales en la función "setup" y se implementa la


lógica del programa en la función "loop". Utilizando estructuras de control, como
condicionales y bucles, se puede controlar el flujo del programa y responder a diferentes
condiciones.

2. Explicación de las funciones y bibliotecas específicas de Arduino utilizadas para controlar


componentes como LEDs, motores, pantallas LCD, sensores, etc.:

Arduino ofrece una amplia gama de bibliotecas y funciones específicas que facilitan el control
de componentes electrónicos. Estas bibliotecas proporcionan un conjunto de funciones
predefinidas que simplifican la interacción con los componentes. Algunas bibliotecas comunes
de Arduino incluyen:

 "Wire.h": Permite la comunicación I2C, utilizada para conectar sensores y actuadores


en un bus de comunicación.
 "Servo.h": Facilita el control de servomotores, que son motores que pueden
posicionarse con precisión en un ángulo específico.
 "LiquidCrystal.h": Se utiliza para controlar pantallas LCD alfanuméricas, permitiendo
mostrar texto y caracteres.
 "Adafruit_NeoPixel.h": Esta biblioteca es útil para controlar tiras de LEDs
direccionables individualmente, también conocidos como LEDs NeoPixel.

Página 7 de 18
3.DESAROLLO DEL PROYECTO
Desarrollé un proyecto con un protoboard funcionando con la
programación del Arduino Uno.
Básicamente el proyecto consiste en crear distintas secuencias con 8 leds
en total, todas seguidas una de otras.
Adjunto el link en tinkercard del proyecto:
https://www.tinkercad.com/things/3ylxqyE7Sas-secuencia/editel?
sharecode=Sjm5dJ-d02p7vCZV9tS6qsc-7RHQ28vYAVZFgV6kTl0
Fotos del proyecto:

Código usado:

Página 8 de 18
byte led[8] = {2,3,4,5,6,7,8,9};

void setup()
{
  for(byte pin=0; pin<8; pin++)
 {
    pinMode(led[pin], OUTPUT);
 }
}

void loop()
{
  for(byte s1=0; s1<12; s1++)
 {
    for(int i=0; i<=7; i++)
  {
      digitalWrite(led[i], HIGH);
      delay(100);
      digitalWrite(led[i], LOW);
  }
 }
  leds_off();
 
  for(byte s2=0; s2<12; s2++)
 {
    for(int j=7; j>=0; j--)

Página 9 de 18
  {
      digitalWrite(led[j], HIGH);
      delay(100);
      digitalWrite(led[j], LOW);
  }
 }
  leds_off();
 
  for(byte s3=0; s3<12; s3++)
 {
    int k;
    for(k=0; k<=7; k++)
  {
      digitalWrite(led[k], HIGH);
      delay(100);
      digitalWrite(led[k], LOW);
  }
    for(k=6; k>0; k--)
  {
      digitalWrite(led[k], HIGH);
      delay(100);
      digitalWrite(led[k], LOW);
  }
 }
  digitalWrite(led[0], HIGH);
  delay(100);

Página 10 de 18
  leds_off();
 
  for(byte s4=0; s4<12; s4++)
 {
    for(int l=0; l<3; l++)
  {
      digitalWrite(led[0], HIGH);
      digitalWrite(led[1], HIGH);
      digitalWrite(led[2], HIGH);
      digitalWrite(led[3], HIGH);
      delay(100);
      digitalWrite(led[0], LOW);
      digitalWrite(led[1], LOW);
      digitalWrite(led[2], LOW);
      digitalWrite(led[3], LOW);
      delay(100);
  }
    for(int m=0; m<3; m++)
  {
      digitalWrite(led[4], HIGH);
      digitalWrite(led[5], HIGH);
      digitalWrite(led[6], HIGH);
      digitalWrite(led[7], HIGH);
      delay(100);
      digitalWrite(led[4], LOW);
      digitalWrite(led[5], LOW);

Página 11 de 18
      digitalWrite(led[6], LOW);
      digitalWrite(led[7], LOW);
      delay(100);
  }
 }
  leds_off();
 
  for(byte s5=0; s5<12; s5++)
 {
    digitalWrite(led[0], HIGH);
    digitalWrite(led[1], HIGH);
    digitalWrite(led[2], HIGH);
    digitalWrite(led[3], HIGH);
    digitalWrite(led[4], LOW);
    digitalWrite(led[5], LOW);
    digitalWrite(led[6], LOW);
    digitalWrite(led[7], LOW);
    delay(500);
  
    digitalWrite(led[0], LOW);
    digitalWrite(led[1], LOW);
    digitalWrite(led[2], LOW);
    digitalWrite(led[3], LOW);
    digitalWrite(led[4], HIGH);
    digitalWrite(led[5], HIGH);
    digitalWrite(led[6], HIGH);

Página 12 de 18
    digitalWrite(led[7], HIGH);
    delay(500);
 }
  leds_off();
 
  for(byte s6=0; s6<20; s6++)
 {
    for(int n=0; n<4; n++)
  {
      switch(n)
   {
        case 0:
        digitalWrite(led[0], HIGH);
        digitalWrite(led[7], HIGH);
        digitalWrite(led[3], LOW);
        digitalWrite(led[4], LOW);
        break;
    
        case 1:
        digitalWrite(led[1], HIGH);
        digitalWrite(led[6], HIGH);
        digitalWrite(led[0], LOW);
        digitalWrite(led[7], LOW);
        break;
    
        case 2:

Página 13 de 18
        digitalWrite(led[2], HIGH);
        digitalWrite(led[5], HIGH);
        digitalWrite(led[1], LOW);
        digitalWrite(led[6], LOW);
        break;
    
        case 3:
        digitalWrite(led[3], HIGH);
        digitalWrite(led[4], HIGH);
        digitalWrite(led[2], LOW);
        digitalWrite(led[5], LOW);
        break;
   }
      delay(150);
  }
 }
  leds_off();

  for(byte s6=0; s6<20; s6++)


 {
    for(int p=0; p<4; p++)
  {
      switch(p)
   {
        case 0:
        digitalWrite(led[3], HIGH);

Página 14 de 18
        digitalWrite(led[4], HIGH);
        digitalWrite(led[0], LOW);
        digitalWrite(led[7], LOW);
        break;
    
        case 1:
        digitalWrite(led[2], HIGH);
        digitalWrite(led[5], HIGH);
        digitalWrite(led[3], LOW);
        digitalWrite(led[4], LOW);
        break;
    
        case 2:
        digitalWrite(led[1], HIGH);
        digitalWrite(led[6], HIGH);
        digitalWrite(led[2], LOW);
        digitalWrite(led[5], LOW);
        break;
    
        case 3:
        digitalWrite(led[0], HIGH);
        digitalWrite(led[7], HIGH);
        digitalWrite(led[1], LOW);
        digitalWrite(led[6], LOW);
        break;
   }

Página 15 de 18
      delay(150);
  }
 }
  leds_off();

  for(byte s6=0; s6<20; s6++)


 {
    digitalWrite(led[0], HIGH);
    digitalWrite(led[7], HIGH);
    digitalWrite(led[1], LOW);
    digitalWrite(led[6], LOW);
    delay(150);
    
    digitalWrite(led[1], HIGH);
    digitalWrite(led[6], HIGH);
    digitalWrite(led[0], LOW);
    digitalWrite(led[7], LOW);
    delay(150);
    
    digitalWrite(led[2], HIGH);
    digitalWrite(led[5], HIGH);
    digitalWrite(led[1], LOW);
    digitalWrite(led[6], LOW);
    delay(150);
    
    digitalWrite(led[3], HIGH);

Página 16 de 18
    digitalWrite(led[4], HIGH);
    digitalWrite(led[2], LOW);
    digitalWrite(led[5], LOW);
    delay(150);

    digitalWrite(led[2], HIGH);
    digitalWrite(led[5], HIGH);
    digitalWrite(led[3], LOW);
    digitalWrite(led[4], LOW);
    delay(150);

    digitalWrite(led[1], HIGH);
    digitalWrite(led[6], HIGH);
    digitalWrite(led[2], LOW);
    digitalWrite(led[5], LOW);
    delay(150);
 }
  digitalWrite(led[0], HIGH);
  digitalWrite(led[7], HIGH);
  digitalWrite(led[1], LOW);
  digitalWrite(led[6], LOW);
  delay(150);
  leds_off();
}

void leds_off()

Página 17 de 18
{
  for(int f=0; f<8; f++)
 {
    digitalWrite(led[f], LOW);
 }
  delay(150);
}

Se adjuntara video en el correo enviado.

Página 18 de 18

También podría gustarte