Está en la página 1de 7

Plan de Enseñanza del codigo de programación "Explorando Sensores Básicos con Arduino"

Semana 1-2: Introducción a Arduino y Programación Básica

Conceptos:

• Plataforma Arduino y su entorno de desarrollo.


• Estructura básica de un programa Arduino.
• Variables y tipos de datos en Arduino.
• Comandos de entrada y salida básicos.

Plataforma Arduino y su entorno de desarrollo:


La plataforma Arduino es una plataforma de hardware y software de código abierto diseñada para facilitar la creación de
proyectos electrónicos interactivos. El hardware consiste en placas de desarrollo que contienen un microcontrolador y
pines de entrada/salida, mientras que el software proporciona un entorno de desarrollo integrado (IDE) que simplifica la
programación y carga de código en el microcontrolador. El entorno Arduino es multiplataforma y compatible con
sistemas operativos como Windows, macOS y Linux.

El entorno de desarrollo Arduino incluye un editor de código, herramientas de compilación y un cargador que facilita la
programación del microcontrolador. Además, ofrece una comunidad activa de usuarios que comparten proyectos,
bibliotecas y conocimientos.

Estructura básica de un programa Arduino:


Un programa Arduino tiene una estructura básica que consiste en dos funciones principales: setup() y loop().

setup(): Esta función se ejecuta una vez al inicio del programa y se utiliza para realizar la configuración inicial, como la
inicialización de pines, la configuración de velocidad de comunicación, entre otras cosas.

loop(): Esta función se ejecuta continuamente después de que setup() ha terminado. Contiene el código principal del
programa y se repite indefinidamente mientras el Arduino esté alimentado.

void setup() {
// Configuración inicial
}

void loop() {
// Código principal que se repite continuamente
}

Variables y tipos de datos en Arduino:

Variables: Las variables son espacios de almacenamiento que permiten a un programa guardar y manipular datos. En
Arduino, las variables pueden almacenar información como números, caracteres y otros tipos de datos. Se declaran
indicando el tipo de datos seguido por el nombre de la variable.

Ejemplo:

int contador; // Variable entera llamada 'contador'

Tipos de datos en Arduino: Arduino admite varios tipos de datos, entre ellos:

• int: Números enteros (por ejemplo, -32768 a 32767).


• float: Números de punto flotante (por ejemplo, 3.14).
• char: Caracteres (por ejemplo, 'A').
• boolean: Valores booleanos (true o false).

Comandos de entrada y salida básicos:


Arduino utiliza comandos de entrada y salida para interactuar con el entorno y otros dispositivos. Algunos comandos
básicos incluyen:

pinMode(pin, mode): Configura un pin específico como entrada o salida. mode puede ser INPUT o OUTPUT.

Ejemplo 1:
pinMode(13, OUTPUT); // Configura el pin 13 como salida
digitalRead(pin): Lee el estado digital (HIGH o LOW) de un pin específico.

Ejemplo 2:
int estado = digitalRead(2); // Lee el estado del pin digital 2
digitalWrite(pin, value): Establece el estado digital (HIGH o LOW) de un pin específico.

Ejemplo 3:
digitalWrite(7, HIGH); // Establece el pin digital 7 en HIGH
Estos comandos son fundamentales para interactuar con los pines y realizar operaciones básicas de entrada/salida en
Arduino.

Comandos y Estructuras:

• setup() y loop().
• pinMode(), digitalRead(), digitalWrite().
• delay().

setup() y loop():

setup(): Este es el primer bloque de código que se ejecuta cuando el Arduino se inicia. Se utiliza para realizar la
inicialización de variables, configurar pines y otros ajustes necesarios. Este bloque se ejecuta solo una vez al comienzo
del programa.

loop(): Este bloque contiene el código principal del programa y se ejecuta de forma cíclica después de que setup() ha
finalizado. Todo lo que se coloque dentro de loop() se repetirá indefinidamente mientras el Arduino esté encendido. Aquí
es donde se coloca la lógica principal de tu programa.

pinMode(), digitalRead(), digitalWrite():

pinMode(pin, mode): Configura el modo de un pin específico. El primer argumento, pin, representa el número del pin, y
el segundo argumento, mode, indica si el pin se configurará como entrada (INPUT) o salida (OUTPUT).

digitalRead(pin): Lee el estado digital de un pin específico. Devolverá HIGH si el voltaje es alto (5V) y LOW si es bajo (0V).

digitalWrite(pin, value): Establece el estado digital de un pin específico. El primer argumento, pin, representa el número
del pin, y el segundo argumento, value, indica si el pin se establecerá en alto (HIGH) o bajo (LOW).

delay():

delay(milliseconds): Pausa la ejecución del programa durante el número de milisegundos especificado como argumento.
Se utiliza para introducir retardos en el programa, ya sea para esperar un tiempo específico o para realizar operaciones a
intervalos regulares.
Ejemplo: delay(1000); pausará la ejecución del programa durante 1 segundo (1000 milisegundos).

Estas funciones son fundamentales en la programación de Arduino y se utilizan en la mayoría de los programas. setup() y
loop() proporcionan la estructura básica del programa, mientras que pinMode(), digitalRead(), digitalWrite() y delay() son
comandos esenciales para interactuar con los pines y controlar el flujo del programa.

Semana 3-4: Sensores y Entradas Digitales (Seguidor de Línea con TCRT5000)

Conceptos:

• Funcionamiento de los sensores TCRT5000.


• Entradas y salidas digitales en Arduino.
• Lógica de control (condicionales).

Comandos y Estructuras:

• pinMode(), digitalRead(), digitalWrite().


• if, else if, else.
• Uso del buzzer (tone() y noTone()).

if, else if, else.

El conjunto de comandos if, else if, y else son estructuras de control de flujo en la programación de Arduino (y en muchos
otros lenguajes de programación). Estas estructuras permiten tomar decisiones en el programa, ejecutando diferentes
bloques de código según se cumplan ciertas condiciones.

if (si):

La estructura básica de un bloque if es la siguiente:

if (condición) {
// Código que se ejecuta si la condición es verdadera
}

Si la condición dentro de los paréntesis es verdadera, el bloque de código dentro de las llaves se ejecutará. Si la condición
es falsa, el bloque de código se omitirá.

else if (si no, si):

Permite evaluar múltiples condiciones en secuencia. Si la condición en el primer if es falsa, se evaluará la condición del
siguiente else if. Si es verdadera, se ejecutará el bloque de código correspondiente y se saldrá de la estructura. Si ninguna
de las condiciones es verdadera, se pasará al bloque else (si está presente) o se continuará con el resto del programa.

if (condición1) {
// Código si la condición1 es verdadera
} else if (condición2) {
// Código si la condición1 es falsa y la condición2 es verdadera
} else {
// Código si ninguna de las condiciones anteriores es verdadera
}
else (si no):

Proporciona un bloque de código que se ejecuta cuando ninguna de las condiciones anteriores (if o else if) es verdadera.

if (condición) {
// Código si la condición es verdadera
} else {
// Código si la condición es falsa
}

Ejemplo de Uso:

int valor = 10;

if (valor > 10) {


// Código si el valor es mayor que 10
Serial.println("El valor es mayor que 10");
} else if (valor < 10) {
// Código si el valor es menor que 10
Serial.println("El valor es menor que 10");
} else {
// Código si el valor es igual a 10
Serial.println("El valor es igual a 10");
}

En este ejemplo, el programa imprimirá "El valor es igual a 10" en el monitor serial porque la primera condición (valor >
10) es falsa y la segunda condición (valor < 10) también es falsa, por lo que se ejecuta el bloque else.

Semana 5-6: Entradas Analógicas y Sensor de Sonido KY-037

Conceptos:

• Entradas analógicas y lectura de datos.


• Uso del sensor de sonido KY-037.
• Lógica de control avanzada.

Entradas Analógicas y Lectura de Datos en Arduino:

En Arduino, las entradas analógicas permiten medir niveles de voltaje en un rango continuo, a diferencia de las entradas
digitales que solo reconocen dos estados: alto (HIGH) o bajo (LOW). Las entradas analógicas son útiles para leer sensores
que proporcionan información en forma de señales analógicas, como potenciómetros, sensores de luz o sensores de
temperatura.

Conceptos Clave:
Entradas Analógicas:

Las entradas analógicas en Arduino están etiquetadas con el prefijo A seguido de un número (por ejemplo, A0, A1, ..., A5
en la mayoría de las placas Arduino).
El rango de lectura analógica es de 0 a 1023, ya que se utiliza un convertidor analógico a digital (ADC) de 10 bits.

analogRead(pin) es la función clave para leer el valor analógico en un pin específico.


Ejemplo:
int valor = analogRead(A0); // Lee el valor analógico en el pin A0

Mapeo de Rango:

Es común mapear el valor leído de un rango (por ejemplo, 0 a 1023) a otro rango más útil.
La función map() se utiliza para realizar este mapeo.
Ejemplo:

int valorLeido = analogRead(A0);


int valorMapeado = map(valorLeido, 0, 1023, 0, 100); // Mapea el valor de 0 a 1023 a un rango de 0 a 100

Uso en Sensores:

Los sensores analógicos, como un potenciómetro, proporcionan valores continuos y se conectan a pines analógicos.
Ejemplo con un potenciómetro:

int pinPotenciometro = A1;


int valorPotenciometro = analogRead(pinPotenciometro);

Ejemplo de Uso en un Programa:


const int pinSensor = A2; // Pin analógico para el sensor
int valorSensor;

void setup() {
Serial.begin(9600);
}

void loop() {
// Leer valor analógico del sensor
valorSensor = analogRead(pinSensor);

// Mostrar valor en el monitor serial


Serial.print("Valor Analógico: ");
Serial.println(valorSensor);

delay(500); // Ajustar según sea necesario


}

En este ejemplo, el programa lee el valor analógico de un sensor conectado al pin analógico A2 y muestra este valor en el
monitor serial. Este tipo de lectura analógica es esencial para interactuar con sensores que proporcionan información en
un rango continuo.

Comandos y Estructuras:

• analogRead().
• if, else if, else.
• Uso de múltiples LEDs.

Semana 7-8: Sensor DHT11 y Medición de Temperatura y Humedad

Conceptos:
• Funcionamiento del sensor DHT11.
• Trabajo con datos analógicos.
• Uso de bibliotecas en Arduino.

Uso de Bibliotecas en Arduino:

En Arduino, una biblioteca es un conjunto de funciones y procedimientos predefinidos que facilitan la programación de
ciertas tareas o el manejo de dispositivos específicos. Las bibliotecas permiten a los programadores reutilizar código
existente y simplificar la complejidad de ciertas operaciones, como el control de pantallas LCD, sensores, módulos de
comunicación, entre otros.

Conceptos Clave:
Inclusión de Bibliotecas:

Antes de utilizar una biblioteca en tu programa Arduino, debes incluirla al principio del código mediante la instrucción
#include. Esto le dice al compilador que utilice las definiciones y funciones de esa biblioteca en tu programa.

Ejemplo:
#include <NombreDeBiblioteca.h>

Algunas bibliotecas están preinstaladas en el entorno de Arduino, mientras que otras pueden requerir que las descargues
e instales manualmente.

Bibliotecas Comunes:

• Biblioteca de Sensores: Contiene funciones para interactuar con sensores específicos, como el sensor DHT11
para medir temperatura y humedad.
• Biblioteca Servo: Utilizada para controlar motores servo.
• Biblioteca Wire (I2C): Para la comunicación I2C utilizada en dispositivos como sensores y pantallas.
• Biblioteca SPI: Para la comunicación SPI común en módulos y sensores.

Utilización de Funciones y Métodos:

Una vez que has incluido una biblioteca, puedes utilizar sus funciones y métodos en tu código.

Ejemplo:
#include <Servo.h>

Servo miServo; // Crear una instancia de la clase Servo

void setup() {
miServo.attach(9); // Asociar el servo al pin 9
}

void loop() {
miServo.write(90); // Mover el servo a 90 grados
delay(1000);
miServo.write(180); // Mover el servo a 180 grados
delay(1000);
}
Ventajas del Uso de Bibliotecas:
• Reutilización de Código:

• Las bibliotecas encapsulan funciones comunes, lo que facilita la reutilización de código en diferentes proyectos.
• Simplificación de Tareas:

• Simplifican la implementación de tareas complejas, como la comunicación con periféricos o la lectura de


sensores.
• Desarrollo Rápido:

• Permite a los programadores avanzar más rápidamente al centrarse en la lógica específica de su proyecto en
lugar de reinventar la rueda para tareas comunes.
• Colaboración y Comunidad:

• Facilita la colaboración y el intercambio de código entre la comunidad de Arduino, ya que las bibliotecas son a
menudo compartidas y mejoradas por usuarios de todo el mundo.

Al comprender cómo usar bibliotecas en Arduino, los programadores pueden aprovechar las ventajas de la comunidad y
acelerar el desarrollo de proyectos complejos.

Comandos y Estructuras:

• Uso de bibliotecas (#include).


• Uso de funciones de la biblioteca DHT.
• Lógica de control con múltiples condiciones.

Semana 9-10: Proyecto Integrador y Presentación

Conceptos:

• Integración de múltiples sensores en un proyecto.


• Desarrollo y diseño de proyectos completos.
• Presentación y comunicación de resultados.

Comandos y Estructuras:

• Integración de comandos aprendidos en proyectos más complejos.


• Uso creativo de lógica de control.
• Presentación y documentación de proyectos.

Evaluación:

• Participación activa en la conexión de sensores y desarrollo de proyectos.


• Evaluación continua de tareas y proyectos.
• Evaluación del proyecto final basada en la aplicación de conceptos y habilidades adquiridas.

También podría gustarte