Вы находитесь на странице: 1из 13

Fractal

MODULO II MES I
PROGRAMACION EN ARDUINO

Aprender a programar ayuda a las personas en todas las áreas del conocimiento. El pensamiento
computacional desarrolla la lógica, una parte muy poco desarrollada en las personas que no
estudian programación. La lógica que desarrollan en el estudio de la programación les permite
resolver todo tipo de problemas y procesar grandes cantidades de información. Te ayuda en la
agilidad mental, te obliga a pensar en más de una solución para un mismo problema y la
resolución de problemas es la habilidad más importante en la vida. El curso de programación
debería ser parte de la curricula de todas las carreras en las universidades del mundo, como son
los cursos de matemáticas y lengua, porque, el aprender a programar te ayuda a tener una visión
diferente de las cosas, a ser un mejor líder, a dar soluciones sencillas a problemas complejos.

“Todo el mundo en este país debería aprender a programar en un ordenador… porque te enseña a
pensar.” Steve Jobs
PRACTICA I
Led intermitente
Se trata de conectar un led al pin13, haciendo que luzca durante 500 ms y que se apague durante 100 ms,
este proceso se repetirá cíclicamente.
Objetivos:
• Reconocer partes de la placa.
• Aprender a conexionar leds a la placa.
• Familiarizarse con el entorno de programación.
• Reconocer las partes de un programa de arduino.
• Conocer órdenes como: pinMode, digitalWrite y delay
Materiales:
 Arduino
 Protoboard
 Cable para arduino (macho macho)
 1 diodo led
Diagrama:
Esquematico Pictorico

Programa:
void setup() { //comienza la configuracion
pinMode(13, OUTPUT); //configura el pin 13 como de salida
} //termina la configuracion
void loop() { //comienza el bucle principal del programa
digitalWrite(13, HIGH); //envia 5V al pin (salida)
13 delay (500); //espera 500 ms pin 13 con 5V

Conclusión
_____________________________________________________________________________________
_____________________________________________________________________________________
_____________________________________________________________________________________
_____________________________________________________________________________________
_____________________________________________________________________________________
_____________________________________________________________________________________
_____________________________________________________________________________________
_____________________________________________________________________________________
PRACTICA II
Secuencia de leds
Se trata de encender y apagar 4 leds secuencialmente. Los leds deben estar conectados a los pines 5,6,7 y
8. Se deben encender y posteriormente apagar los leds desde el pin 5 al 8, con un tiempo de duración de
encendido y apagado de 200 milisegundos. Nota: en una segunda solución la secuencia principal del
programa debe estar reproducida en una función a la que llamará el programa principal.

Objetivos:
 Familiarizarse con el entorno de programación.
 Aprender a declarar variables y variables tipo lista de valores.
 Aprender a declarar una función y llamarla cuando sea necesario.
Materiales:

Diagrama:
Esquemático Pictórico

Programa:
int tiempo=200; //declara una variable como entero y de valor 200
void setup() { //comienza la configuracion
pinMode(5,OUTPUT);
pinMode(6,OUTPUT);
pinMode(7,OUTPUT);
pinMode(8,OUTPUT);
}
void loop() { //comienza el bucle principal del programa
digitalWrite(5,HIGH);
delay(tiempo);
digitalWrite(5,LOW);
delay(tiempo);
digitalWrite(6,HIGH);
delay(tiempo);
digitalWrite(6,LOW);
delay(tiempo);
digitalWrite(7,HIGH);
delay(tiempo);
digitalWrite(7,LOW);
delay(tiempo);
digitalWrite(8,HIGH);
delay(tiempo);
digitalWrite(8,LOW);
delay(tiempo);
}

for
La declaración for se usa para repetir un bloque de sentencias encerradas entre llaves un número
determinado de veces. Cada vez que se ejecutan las instrucciones del bucle se vuelve a testear la
condición. La declaración for tiene tres partes separadas por ';' , veamos el ejemplo de su sintaxis:
for (inicialización; condición; expresión)
{
Instrucciones;
}

La inicialización de una variable local se produce una sola vez y la condición se testea cada vez
que se termina la ejecución de las instrucciones dentro del bucle. Si la condición sigue
cumpliéndose, las instrucciones del bucle se vuelven a ejecutar. Cuando la condición no se cumple,
el bucle termina.
Programa 2
int tiempo=200;
int n;
void setup() { //comienza la configuración
for (n=5;n<9;n++) {
pinMode (n, OUTPUT);
}
}
void secuencia() {
for (n=5;n<9;n++) {
digitalWrite (n, HIGH);
delay (tiempo);
digitalWrite (n, LOW);
delay (tiempo);
}
}
void loop() {
secuencia();
}

arrays
Un array es un conjunto de valores a los que se accede con un número índice. Cualquier valor
puede ser recogido haciendo uso del nombre de la matriz y el número del índice. El primer valor
de la matriz es el que está indicado con el índice 0. Un array tiene que ser declarado y
opcionalmente asignados valores a cada posición antes de ser utilizado.

int miArray[] = {valor0, valor1, valor2...}

Del mismo modo es posible declarar una matriz indicando el tipo de datos y el tamaño y
posteriormente, asignar valores a una posición especifica:

int miArray[5]; // declara un array de enteros de 6


// posiciones
miArray[3] = 10; // asigna l valor 10 a la posición 4

Para leer de un array basta con escribir el nombre y la posición a leer:


x = miArray[3]; // x ahora es igual a 10 que está en
// la posición 3 del array

Programa 3
int leds[]={5,6,7,8};// Declara variables tipo lista de valores
int tiempo=200;
int n=0;
void setup() { //comienza la configuracion
for (n=0;n<4;n++) {
pinMode (leds[n], OUTPUT);
}
}
void secuencia() {
for (n=0;n<4;n++) {
digitalWrite (leds[n], HIGH);
delay (tiempo);
digitalWrite (leds[n], LOW);
delay (tiempo);
}
}
void loop() {
secuencia();
}

Conclusión
_____________________________________________________________________________________
_____________________________________________________________________________________
_____________________________________________________________________________________
_____________________________________________________________________________________

PRACTICA III
Control del brillo de un led con un potenciómetro
Se trata de conectar un led al pin13, haciendo que luzca durante 500 ms y que se apague durante 100 ms,
este proceso se repetirá cíclicamente.

Para el control del brillo vamos a tener que utilizar una entrada analógica (A0) y una salida
digital que tenga PWM (D0). Partimos de la premisa de que a la entrada digital le va a llegar un
valor entre 0-5V según la posición que tenga el mando del potenciómetro. Arduino gracias a un
convertidor A/D de 10 bits de resolución del que dispone, convierte el valor de tensión de
entrada en un valor numérico entre 0 -1023, en definitiva al leer el pin analógico se obtiene un
número.
Ese número lo tenemos que llevar a la salida digital dotada de PWM (Modulación de anchura de
pulsos,) para que el convertidor D/A de 8 bits que también posee Arduino lo transforme en un
valor de tensión aplicable en el circuito. Al tener menos resolución el convertidor D/A tenemos
que dividir el número obtenido en la entrada entre 4 para que se ajuste a los valores con los que
trabaja este convertidor (0-255) para poder obtener nuevamente valores de tensión entre 0-5V.
En la siguiente imagen se muestra un sinóptico de como Arduino realiza esta conversión.
Sinóptico de conversión A/D D/A

Hay que tener en cuenta que al LED no le pueden llegar los 5V que ofrece Arduino en su salida,
puesto que se quemaría, por lo que tenemos que limitar la corriente que lo atraviesa mediante
una resistencia de 220Ω, con lo que en sus extremos tendrá como máximo unos 2.2V.

Objetivo:
Controlar la intensidad del brillo de un LED mediante un potenciometro.
Aprender a usar los pines analógicos de Arduino.

Material necesario:
1 – Tarjeta ARDUINO UNO
1 – Cable USB para Arduino
1 – Tarjeta Protoboard
1 – Software IDE de Arduino
1- Diodo Led de cualquier color (Común)
1- Resistencia de 220 / 330 Ohms
1- Potenciómetro de 10k para conectar en un Protoboard.

Descripción

1. Conectamos un LED a nuestra protoboard.


2. La parte redonda del LED la conectamos al pin 3 de nuestra Arduino (es importante que sea el pin 3).
3. Conectamos una resistencia de 220 o 330 ohm a la parte plana del LED.
4. Conectamos la resistencia a tierra.
5. Ahora es tiempo de conectar nuestro potenciómetro, lo colocamos en la protoboard.
6. Viendo el potenciómetro de frente, el pin del extremo izquierdo lo conectamos a tierra y el del
extremo derecho a 5v.
7. El pin central de nuestro potenciómetro lo conectamos al pin A0 de la sección digital de nuestro
Arduino.
8. Ahora cargamos el código para ver los resultados.

Aclaración: Es importante que sea el pin 3 ya que es una salida analógica, aunque la Arduino UNO cuenta
con otros pines analógicos a parte del 3, estos el 5, 6, 10 y 11, se les puede reconocer por el signo ~ que les
antecede.
DIAGRAMAS
Esquematico Pictorico
Programa:

/* Práctica 3 Voltajes analogicos y PWM Ajustar el brillo de un led dependiendo


del voltaje de un potenciometro.*/
const int led =3; // led conectado al pin 3
const int pot =0; // el pot esta conectado al pin A0
int brillo; //variable para el brillo
void setup () {
pinMode (led, OUTPUT); // declaramos el led como salida
/* los pin analogicos se declaran como entrada automaticamente */
}

void loop (){


/*leemos el valor del potenciometro divididos entre 4 ya que
solo se pueden usar valores entre 0 y 255 en analog Write */
brillo = analogRead (pot) / 4;
/*analogWrite recibe dos valores,el pin a usar y la intensidad del voltaje
los valores de voltaje van de 0 a 255*/
analogWrite(led, brillo);
}
Conclusión
_____________________________________________________________________________________
_____________________________________________________________________________________
_____________________________________________________________________________________
_____________________________________________________________________________________
PRACTICA IV
Estructura if – else Aplicado a un pulsador.
Objetivo General:
Encender un LED utilizando un botón pulsador, luego apagar el LED utilizando el mismo botón
pulsador.

Materiales y Métodos:

1. Un LED.
2. Una tarjeta Arduino Uno-R3 o Arduino Mega 2560.
3. Un cable USB impresora.
4. Un computador.
5. Cables para el montaje del circuito.
6. Tarjeta Protoboard.
7. Resistencia Eléctrica de 220 ohm, 10K .
8. Un Botón Pulsador.

Descripción

if… else (si .. sino ..)


if… else viene a ser un estructura que se ejecuta en respuesta a la idea "si esto no se
cumple haz esto otro". Por ejemplo, si se desea probar una entrada digital, y hacer una
cosa si la entrada fue alto o hacer otra cosa si la entrada es baja, usted escribiría que
de esta manera:

if (inputPin == HIGH)
{
instruccionesA;
}
else
{
instruccionesB;
}
else puede ir precedido de otra condición de manera que se pueden establecer varias
estructuras condicionales de tipo unas dentro de las otras (anidamiento) de forma que
sean mutuamente excluyentes pudiéndose ejecutar a la vez. Es incluso posible tener
un número ilimitado de estos condicionales. Recuerde sin embargo qué sólo un
conjunto de declaraciones se llevará a cabo dependiendo de la condición probada:

if (inputPin < 500)


{
instruccionesA;
}
else if (inputPin >= 1000)
{
instruccionesB;
{
else
{
instruccionesC;
}
DIAGRAMAS
ESQUEMATICO PICTORICO

PROGRAMACION A

// Se declaran las variables


// const = constante int= integer (Entero)
const int LED =13; // LED conectado al
// pin digital 13
const int BOTON = 7; // pin de entrada donde se
// conecta el boton
int state = 0; //val se emplea para almacenar el estado
// del boton
void setup() // definir si la variable es de entrada
// o salida.
{
pinMode(LED,OUTPUT); // establecer que el pin
// digital es una señal de salida
pinMode(BOTON,INPUT); // y BOTON como señal de entrada
}

void loop() // loop = realice un lazo continuamente


{

state = digitalRead(BOTON);//lee el estado del boton


if(state == HIGH){
digitalWrite(LED, HIGH); // si el estado del boton es alto, el estado del led alto
}
else {
digitalWrite(LED, LOW); //si el estado del boton bajo, led apagado
}
}
PROGRAMACION B

// Se declaran las variables


// const = constante int= integer (Entero)
const int LED =13; // LED conectado al
// pin digital 13
const int BOTON = 7; // pin de entrada donde se
// conecta el boton
int state = 0; //val se emplea para almacenar el estado del boton
int stateanterior=0; // guarda el estado anterior del boton
int salida=0; //led apragado 0, led encendido = 1
void setup() // definir si la variable es de entrada
// o salida.
{
pinMode(LED,OUTPUT); // establecer que el pin
// digital es una señal de salida
pinMode(BOTON,INPUT); // y BOTON como señal de entrada
}

void loop() // loop = realice un lazo continuamente


{

state = digitalRead(BOTON);//lee el estado del boton


if((state == HIGH) && (stateanterior==LOW) ){
salida=1-salida;
delay (20);
}
stateanterior = state;
if (salida == 1){ //LED EN ALTO
digitalWrite(LED, HIGH); //si el estado del boton bajo, led apagado
}
else {
digitalWrite(LED, LOW);
}
}

CONCLUSION
_____________________________________________________________________________________
_____________________________________________________________________________________
_____________________________________________________________________________________
_____________________________________________________________________________________
_____________________________________________________________________________________
_____________________________________________________________________________________
_____________________________________________________________________________________
_____________________________________________________________________________________
_____________________________________________________________________________________
_____________________________________________________________________________________
_____________________________________________________________________________________
PRACTICA IV
CUBO DE LEDS 4*4*4
OBJETIVO:
Familiarización de funciones, estructuras y bucles anidados; programación nivel medio con el
microcontrolador arduino.
Visualizar imágenes en 3d, por medio de una pantalla led
Utilizar mediante la técnica de multiplexacion, la visualización de imágenes en 3d, previamente
programadas

Materiales:
 64 leds
 64 resistencias de 220
 4 resistencias 10K
 4 transistores 2n3904
 Arduino
 Cautín estaño
 Batería 9v
 Broche de batería

PROCEDIMIENTO

Primero que nada, hay que construir una especie de plantilla para poder posicionar bien los leds
y efectuar el doblado de las patillas, sin que se deforme. Para esto, una madera fina, y un taladro
con broca del tamaño de los leds 5mm, y realizamos la plantilla con los 16 agujeros en forma de
cubo y uno en el centro, tal que como se muestra

Una vez se tenga la plantilla terminada, colocamos los leds


dentro, de forma que queden los cátodos (patilla más corta)
hacia adentro del cubo
Deben quedar los cátodos hacia adentro ya que son éstos los
que conectaremos para
formar el primer “nivel” del cubo, así que doblamos y
conectamos los cátodos de los leds.

Se doblan los cátodos y nos ayudamos de pinzas. Una vez


soldados los cátodos retiramos la estructura que queda, y
realizamos el mismo paso 4 veces, para obtener 4 estructuras
de 16 leds conectados por sus cátodos, que serán los 3 niveles
o filas del cubo.
Una vez que tengamos las estructuras de los leds, procedemos a conectarlas entre si, y para ello
utilizando la misma plantilla colocamos una de las estructuras dentro, con ayuda de unas pinzas
de cocodrilo colocamos otra estructura encima y soldamos los Ánodos de los leds esta vez,
repitiendo el paso para la Última estructura, uno encima de otro. Para esto, doblaremos un poco
hacia afuera los Ánodos de los leds, para cuando se vayan a soldar, no haya problema.

Se finaliza el cubo, cuando tenemos un cubo con 9 patillas donde cada una de ellas corresponde
al Ánodo de los 3 leds de esa misma columna, y 3 niveles o filas de leds conectados por sus
cátodos.
Terminado el cubo procedemos a la conexión con Arduino. Dado que son leds, necesitan de una
pequeña resistencia a que conectamos cada uno de los pines del cubo con una resistencia de 220,
a 16 pines digitales del Arduino.
Diseña una placa electrónica en Proteus y suelda el cubo de leds.

DIAGRAMAS
ESQUEMATICO
PICTORICO

PROGRAMACION
Realízala en tu computador

CONCLUSION
_____________________________________________________________________________________
_____________________________________________________________________________________
_____________________________________________________________________________________
_____________________________________________________________________________________
_____________________________________________________________________________________
_____________________________________________________________________________________
_____________________________________________________________________________________
_____________________________________________________________________________________
TRABAJO PREPARATORIO
Responda.
¿Qué es una señal análoga?
_____________________________________________________________________________________
_____________________________________________________________________________________
_____________________________________________________________________________________
_____________________________________________________________________________________
¿Qué es una señal digital?
_____________________________________________________________________________________
_____________________________________________________________________________________
_____________________________________________________________________________________
_____________________________________________________________________________________
¿Que son salidas PWM?
_____________________________________________________________________________________
_____________________________________________________________________________________
_____________________________________________________________________________________
GRAFIQUE
Grafique una señal análoga y digital (T vs V)

DESCRIBA
Escriba los tipos de variables que conoce de arduino
_____________________________________________________________________________________
_____________________________________________________________________________________
_____________________________________________________________________________________
_____________________________________________________________________________________
INVESTIGUE
Consulte el datashet del puente H L293D, grafique las conexiones del integrado con 2 motores

Вам также может понравиться