Practicas Kit Basico Arduino
Practicas Kit Basico Arduino
INFORMATICA Y SISTEMAS
Sistemas Analgicos y Digitales
Integrantes:
Fernando Torres Rosas
ngel Remedio Javier Javier
Alejandro Snchez Vinagre
Francisco Javier Prez Lzaro
Francisco Javier Cerino Castro
Profesor:
Gilberto Murillo Gonzales
Trabajo:
Prcticas de Arduino Kit Basico
T1
Practica 1
Enciende un LED por un segundo y lo apaga por el mismo tiempo
Cdigo
void setup() // Se ejecuta cada vez que el Arduino se inicia
{
pinMode(13,OUTPUT); // Inicializa el pin 13 como una salida
}
//-----------------------------------//Funcin cclica
//-----------------------------------void loop() // Esta funcin se mantiene ejecutando
{ // cuando este energizado el Arduino
digitalWrite(13,HIGH); // Enciende el LED
delay(1000); // Temporiza un segundo (1s = 1000ms)
digitalWrite(13,LOW); // Apaga el LED
delay(1000); // Temporiza un segundo (1s = 1000ms)
}
Practica 2
Este ejercicio tiene como objetivo encender un led durante 3 segundos y apagarlo durante otros 3 segundos.
Luego encender un led por 200 milisegundos y apagarlo por 500
Cdigo
void setup() // Se ejecuta cada vez que el Arduino se inicia
{
pinMode(13,OUTPUT); // Inicializa el pin 13 como una salida
}
//-----------------------------------//Funcin cclica
//-----------------------------------void loop() // Esta funcin se mantiene ejecutando
{ // cuando este energizado el Arduino
digitalWrite(13,HIGH); // Enciende el LED
delay(3000); // Temporiza a 3 segundos (3s = 3000ms)
digitalWrite(13,LOW); // Apaga el LED
delay(3000); // Temporiza a 3 segundos (3s = 3000ms)
}
Practica 3
La empresa de automatizacin NRJ Inc. te contrata para hacer un montaje de un LED Intermitente en una placa Arduino
UNO, con el nico requisito de que el LED debe estar ubicado en el Pin 5, ellos muy amablemente te han facilita-do el
esquema, tu tarea es:
A) Realizar el montaje y la respectiva programacin de 2 segundos prendido y 1 segundo apagado
Cdigo
void setup() // Se ejecuta cada vez que el Arduino se inicia
{
pinMode(13,OUTPUT); // Inicializa el pin 13 como una salida
}
//Funcin cclica
void loop() // Esta funcin se mantiene ejecutando
{ // cuando este energizado el Arduino
digitalWrite(13,HIGH); // Enciende el LED
delay(2000); // Temporiza a 2 segundos
digitalWrite(13,LOW); // Apaga el LED
delay(1000); // Temporiza a 1 segundo
}
Practica 4
Un Strober es un bombillo que prende y apaga muy rpido, muy usado en las fiestas, tu misin es
realizar tu strober casero con un LED, con el mismo esquema montado en este tutorial.
Cdigo
void setup()
{
pinMode(5,OUTPUT);
}
void loop()
{
digitalWrite(5,HIGH);
delay(50);
digitalWrite(5,LOW);
delay(50);
}
T2
Practica 1
Encender un led con un pulsador, el led se mantendr encendido mientras se este oprimiendo el
pulsador.
Cdigo:
int pulsador=2; //Pin donde se encuentra el pulsador, entrada
int led=13; //Pin donde se encuentra el LED, salida
//-----------------------------------//Funcion principal
//-----------------------------------void setup() // Se ejecuta cada vez que el Arduino se inicia
{
pinMode(pulsador, INPUT); //Configurar el pulsador como una entrada
Practica 2
Este ejercicio simula la cuchilla de una cortadora con led el cual se enciende oprimiendo dos
pulsadores a la vez
Cdigo:
int pulsador2=3;
int pulsador=2; //Pin donde se encuentra el pulsador, entrada
int led=13; //Pin donde se encuentra el LED, salida
//-----------------------------------//Funcion principal
//-----------------------------------void setup() // Se ejecuta cada vez que el Arduino se inicia
{
pinMode(pulsador2, INPUT);
pinMode(pulsador, INPUT); //Configurar el pulsador como una entrada
pinMode(led,OUTPUT); //Configurar el LED como una salida
}
//-----------------------------------//Funcion ciclicla
//-----------------------------------void loop() // Esta funcion se mantiene ejecutando
{ // cuando este energizado el Arduino
//Condicional para saber estado del pulsador
if (digitalRead(pulsador)==HIGH&& digitalRead(pulsador2)==HIGH)
{
//Pulsador oprimido
digitalWrite(led,HIGH); //Enciende el LED
}
else
{
//Pulsador NO oprimido
digitalWrite(led,LOW); //Apaga el LED
}
}
Practica 3
Este ejercicio simula un sistema de iluminacin si oprime uno de los 2 pulsadores l led se encender.
Cdigo:
int pulsador=2,estado;
int pulsador2=3,estado2;
int led=13; //Pin donde se encuentra el LED, salida
char leer; //Variable donde se almacena la letra
boolean prendido=false; //Estado LED la primera vez, apagado
//-----------------------------------//Funcion principal
T3
Practica 1
Leer una entrada digital y mostrar por la pantalla del computador (consola serial) el estado del
pulsador cuando es oprimido.
Cdigo
int boton=2; //Pin donde se encuentra el pulsador, entrada
//-----------------------------------//Funcion principal
//-----------------------------------void setup() // Se ejecuta cada vez que el Arduino se inicia
{
//Configuracin
pinMode(boton,INPUT); //Configurar el boton como una entrada
Serial.begin(9600); //Inicia comunicacin serial
}
void loop() // Esta funcion se mantiene ejecutando
{ // cuando este energizado el Arduino
//Guardar en una variable entera el valor del boton 0 1
int estado = digitalRead(boton);
//Condicional para saber estado del pulsador
if (estado==1)
{
// Pulsado
Serial.println("Pulsado"); //Imprime en la consola serial
} // "Pulsado"
else
{
// No esta pulsado
Serial.println("NO Pulsado"); //Imprime en la consola serial
} // "NO Pulsado"
delay(100); //Retardo para la visualizacin de datos en la consola
}
Practica 2
En este ejercicio se debe encender un led con un pulsador (S1) que al mismo tiempo mostrara en
la consola serial botella llena; despus con un pulsador (S2) que al oprimirlo encienda el led y en
la consola serial diga botella tapada y por ltimo que al oprimir los dos pulsadores al mismo
tiempo muestre en la consola serial proceso terminado.
Cdigo
int boton=2,boton2=3; //Pin donde se encuentra el pulsador, entrada
int led=13;
boolean res1=false,res2=false;
//-----------------------------------//Funcion principal
//-----------------------------------void setup() // Se ejecuta cada vez que el Arduino se inicia
{
//Configuracin
pinMode(boton,INPUT);
pinMode(boton2,INPUT);//Configurar el boton como una entrada
pinMode(led, OUTPUT);
Serial.begin(9600); //Inicia comunicacin serial
}
//-----------------------------------//Funcion ciclicla
//-----------------------------------void loop() // Esta funcion se mantiene ejecutando
{ // cuando este energizado el Arduino
//Guardar en una variable entera el valor del boton 0 1
int estado = digitalRead(boton);
int estado2 = digitalRead(boton2);
//Condicional para saber estado del pulsador
if (estado==HIGH && estado2==LOW)
{
// Pulsado
Serial.println("gaseosa llena");
estado=LOW;//Imprime en la consola serial
} // "Pulsado"
if (estado2==HIGH && estado==LOW)
{
// No esta pulsado
Serial.println("gaseosa tapada"); //Imprime en la consola serial
estado2=LOW;
}
if (estado ==HIGH && estado2 ==HIGH){
digitalWrite(led, HIGH);
Serial.println("proceso terminado");}
//delay(100); //Retardo para la visualizacin de datos en la consola
}
//Fin programa
Practica 3
En este ejercicio se busca simular unas luces navideas donde un pulsador (S1) se mantenga
oprimido y vaya mostrando en la consola serial un contador que se aumente de 20 en 20 mientras
se mantenga oprimido el pulsador; despus al oprimir el pulsador (S2) la cantidad que quedo
reunida en el contador se tome como el delay para que un led encienda y apague en ese tiempo
que se acumul en el contador y por ultimo que al oprimir los dos pulsadores (S1 YS2) el contador
regrese a cero para poder hacer un nuevo conteo.
Cdigo
int boton=2; //Pin donde se encuentra el pulsador, entrada
int boton2=3;
int led=13;
int c=0;
//Funcion principal
//-----------------------------------void setup() // Se ejecuta cada vez que el Arduino se inicia{
//Configuracin
pinMode(led,OUTPUT);
pinMode(boton,INPUT); //Configurar el boton como una entrada
Serial.begin(9600); //Inicia comunicacin serial}
//Funcion ciclicla
void loop() // Esta funcion se mantiene ejecutando
{ // cuando este energizado el Arduino
//Guardar en una variable entera el valor del boton 0 1
int estado = digitalRead(boton);
int estado2 = digitalRead(boton2);
//Condicional para saber estado del pulsador
if (estado==1&& estado2==0){
// Pulsado
Serial.println(c);
//Imprime en la consola serial
c=c+20;
} // "Pulsado"
T4
Practica 1
Leer una entrada anloga y mostrar por la pantalla del computador (consola serial) el valor luego
de girar el potencimetro.
Cdigo
void setup() // Se ejecuta cada vez que el Arduino se inicia
{
Serial.begin(9600); //Inicia comunicacin serial
}
void loop() // Esta funcion se mantiene ejecutando
{ // cuando este energizado el Arduino
//Guardar en una variable entera el valor del potencimetro 0 a 1024
Practica 2
El desafo de este ejercicio consiste en mostrar por la consola serial los nmeros del 0 al 10.
Cdigo
void setup() // Se ejecuta cada vez que el Arduino se inicia
{
Serial.begin(9600); //Inicia comunicacin serial
}
//-----------------------------------//Funcion ciclicla
//-----------------------------------void loop() // Esta funcion se mantiene ejecutando
{ // cuando este energizado el Arduino
//Guardar en una variable entera el valor del potencimetro 0 a 1024
int valor= analogRead(0);
valor = map(valor, 0, 1023, 0, 10);
analogWrite(9, valor);
//Imprime en la consola serial el valor de la variable
Serial.println(valor);
//Retardo para la visualizacin de datos en la consola
delay(100);
}
Practica 3
Piensa en un nmero secreto de 0 a 1023 y gurdalo en una variable entera, haz un programa para que tu
amigo deba mover el potencimetro, si el nmero que el va generando (mostrar por consola serial el valor de
la lectura del potenci-metro) al girar el potencimetro est 10 nmeros por arriba o 10 nmeros por abajo al
nmero que tu pensaste y confirma con el pulsador S1 que ese es el nmero, el progra-ma debe mostrar por
consola Adivinaste el nmero de lo contrario Intenta de nuevo.
Cdigo
T5
Practica 1
Consiste en escribir por la pantalla del computador (consola serial) una letra predeterminada, la primera vez
que se escriba est un LED se enciende, si se vuelve a escribir por segunda vez el LED se apaga.
Cdigo
int led = 13; //Pin donde se encuentra el LED, salida
Practica 2
Avisos luminosos S.A. te ha contratado para que realices un programa que tiene la caracterstica
de recibir datos, porque la idea es que el aviso de luces se ubique en el piso 130 del Edificio Bulli y
tu lo puedas controlar desde el piso 1, as que por cada letra que le escribas por teclado a la
Consola serial el programa debe hacer determinada rutina con tres LEDs, si le escribes:
Cdigo
int led1 = 2;
int led2 = 3;
int led3 = 4;
char leer;
boolean prendido=false;
void setup(){
Serial.begin(9600);
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
pinMode(led3, OUTPUT);
}
void loop(){
leer=Serial.read();
if ( (leer=='a') && (prendido==false) ){
digitalWrite(led1,HIGH);
digitalWrite(led2,HIGH);
digitalWrite(led3,HIGH);
prendido=true;
}
else if ( (leer=='a') && (prendido==true) ){
digitalWrite(led1,LOW);
digitalWrite(led2,LOW);
digitalWrite(led3,LOW);
prendido=false;
}
if ( (leer=='b') && (prendido==false) ){
digitalWrite(led1,HIGH);
delay(1000);
digitalWrite(led1,LOW);
delay(1000);
digitalWrite(led2,HIGH);
delay(1000);
digitalWrite(led2,LOW);
delay(1000);
digitalWrite(led3,HIGH);
delay(1000);
digitalWrite(led3,LOW);
delay(1000);
prendido=true;
}
else if ( (leer=='b') && (prendido==true) ){
digitalWrite(led1,LOW);
digitalWrite(led2,LOW);
digitalWrite(led3,LOW);
prendido=false;
}
if ( (leer=='c') && (prendido==false) ){
prendido=false;
}
else if ( (leer=='c') && (prendido==true) ){
digitalWrite(led1,LOW);
digitalWrite(led2,LOW);
digitalWrite(led3,LOW);
prendido=false;
}
}
Practica 3
Tu abuelito tiene un cultivo de grandes y verdes lechugas, este cultivo tiene 3 aspersores de agua y
tu abuelito quiere prender estos aspersores desde su computador solo escribien-do unos valores
por teclado, los aspersores tienen un estado digital (Valor 0 es apagado y valor 1 es prendido).
Debes reali-zar un programa que lea una cadena de tres valores, para este ejercicio los aspersores
los vamos a simular con tres LED 1, 2 y 3 por ejemplo:
Si tu abuelito escribe 000 : Todos los aspersores de agua deben estar apagados
Si tu abuelito escribe 101 : El aspersor 1 y 3 se prenden pero el dos debe estar apagado
Si tu abuelito escribe 001 : El aspersor 1 y 2 se apagan pero el tres debe estar prendido
Cdigo
int led1 = 2;
int led2 = 3;
int led3 = 4;
char leer;
boolean prendido=false;
void setup(){
Serial.begin(9600);
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
pinMode(led3, OUTPUT);
}
void loop(){
leer=Serial.read();
if (leer=='a'&& prendido == true){
digitalWrite(led1,LOW);
digitalWrite(led2,LOW);
digitalWrite(led3,LOW);
prendido=false;
}if (leer=='b'){
digitalWrite(led1,LOW);
digitalWrite(led2,LOW);
digitalWrite(led3,HIGH);
prendido=true;}
if (leer=='c'){
digitalWrite(led1,LOW);
digitalWrite(led2,HIGH);
digitalWrite(led3,LOW);
prendido=true;}
if (leer=='d'){
digitalWrite(led1,HIGH);
digitalWrite(led2,LOW);
digitalWrite(led3,LOW);
prendido=true;}
if (leer=='e'){
digitalWrite(led1,LOW);
digitalWrite(led2,HIGH);
digitalWrite(led3,HIGH);
prendido=true;}
if (leer=='f'){
digitalWrite(led1,HIGH);
digitalWrite(led2,HIGH);
digitalWrite(led3,LOW);
prendido=true;}
if (leer=='g'){
digitalWrite(led1,HIGH);
digitalWrite(led2,LOW);
digitalWrite(led3,HIGH);
prendido=true;}
if (leer=='h'){
digitalWrite(led1,HIGH);
digitalWrite(led2,HIGH);
digitalWrite(led3,HIGH);
prendido=true;}
}
T6
Practica 1
Programa que enciende proporcionalmente un LED cuando llega a su mximo punto de brillo
comienza a apagarse proporcionalmente.
Cdigo
int brillo = 0; //Variable de brillo inicia en 0
int variacion = 5; //Variable de incremento configurada de 5 en 5
int led = 9; //Pin donde se encuentra el LED, salida
//-----------------------------------//Funcion principal
//-----------------------------------void setup () // Se ejecuta cada vez que el Arduino se inicia
{
pinMode(led, OUTPUT); //Configurar el LED como una salida
}
//-----------------------------------//Funcion ciclicla
//-----------------------------------void loop () // Esta funcion se mantiene ejecutando
{ // cuando este energizado el Arduino
// Escritura analoga (PWM) en el LED escribo el valor de brillo
analogWrite(led, brillo);
// Incremento la variable brillo de 5 en 5
brillo = brillo + variacion;
// Nota: PWM ----> 0 - 255
// Si el brillo es 0 o 255
if (brillo == 0 || brillo == 255)
variacion = -variacion; //La variacin se vuelve negativa
delay (30); //Tiempo de incremento en el brillo
}
Practica 2
Tu mam quiere tener unas luces de intensidad variables en la sala de tu casa, quiere poca luz
para los momentos en que la familia comparte para mantener la armona pero requiere bastante luz
cuando realiza sus tejidos, ella quiere tener el control de la intensi-dad de luz mediante un
potencimetro y que la bombilla LED se ilumine de acuerdo a lo graduado por ella. Tu tarea es
realizar el programa que al leer una entrada anloga de un potencimetro (01023) se ajuste el
valor de PWM (0-255) de un LED, recuerda escalar el valor map()
Cdigo
int led = 9; //Pin donde se encuentra el LED, salida
//-----------------------------------//Funcion principal
//-----------------------------------void setup () // Se ejecuta cada vez que el Arduino se inicia
{
pinMode(led, OUTPUT); //Configurar el LED como una salida
}
//-----------------------------------//Funcion ciclicla
//-----------------------------------void loop () // Esta funcion se mantiene ejecutando
{ // cuando este energizado el Arduino
// Escritura analoga (PWM) en el LED escribo el valor de brillo
int val = analogRead(0);
val = map(val, 0, 1023, 0, 255);
analogWrite(led, val);
// Nota: PWM ----> 0 - 255
delay (30); //Tiempo de incremento en el brillo
}
Practica 3
Tu tarea es realizar un programa que lee por Consola Serial la temperatura en C (0-255) luego se
separa por una coma (,) y a continuacin viene el tiempo de horneado en segundos (1-10). El valor
de la temperatura va a ser el PWM que se le va a ajustar al LED y el tiempo de horneado es el
tiempo durante el cual el LED se mantiene encendido a esa temperatura.
T7
Practica 1
Programa que enciende un LED cuando el valor de la entrada anloga comandada por el
potencimetro esta en cierto valor, cuando este valor cambia el LED se apaga, es un sistema con
control ON/OFF
Cdigo
void setup() // Se ejecuta cada vez que el Arduino se inicia
{
Serial.begin(9600); //Inicia comunicacin serial
pinMode(13,OUTPUT); //Configurar el pin 13 como una salida
}
//-----------------------------------//Funcion ciclicla
Practica 2
Un carro de tunnig tiene luces de nen en la parte de abajo, ste es la sensacin de la feria. El
piloto controla las luces (tres LEDs) por medio de un potencimetro al lado de la palanca de
cambios, l tiene tres opciones de luces de acuerdo al valor de lectura del potencimetro que va de
0 a 1023:
0 - 350 Intermitencia de los 3 LED a 100ms
351 - 700 Intermitencia de los 3 LED a 500ms
701 - 1023 Intermitencia de los 3 LED a 1000ms
Cdigo
void setup() // Se ejecuta cada vez que el Arduino se inicia
{
Serial.begin(9600); //Inicia comunicacin serial
pinMode(2,OUTPUT);
pinMode(3,OUTPUT);
pinMode(4,OUTPUT);//Configurar el pin 13 como una salida
}
//-----------------------------------//Funcion ciclicla
//-----------------------------------void loop() // Esta funcion se mantiene ejecutando
{ // cuando este energizado el Arduino
//Guardar en una variable el valor de la lectura anloga
int valor = analogRead(A0);
Serial.println(valor); //Imprime el valor por la consola
//Si el valor es mayor o igual a 500
if (valor >=0&& valor <= 350)
{
digitalWrite(2,HIGH);
delay(100);
digitalWrite(2,LOW);
delay(100);
digitalWrite(3,HIGH);
delay(100);
digitalWrite(3,LOW);
delay(100);
digitalWrite(4,HIGH);
delay(100);
digitalWrite(4,LOW);
delay(100);//Enciende el LED en el pin 13
}
if (valor >=351&& valor <= 700)
{
digitalWrite(2,HIGH);
delay(500);
digitalWrite(2,LOW);
delay(500);
digitalWrite(3,HIGH);
delay(500);
digitalWrite(3,LOW);
delay(500);
digitalWrite(4,HIGH);
delay(500);
digitalWrite(4,LOW);
delay(500); //Enciende el LED en el pin 13
}
if (valor >=701&& valor <= 1023)
{
digitalWrite(2,HIGH);
delay(1000);
digitalWrite(2,LOW);
delay(1000);
digitalWrite(3,HIGH);
delay(1000);
digitalWrite(3,LOW);
delay(1000);
digitalWrite(4,HIGH);
delay(1000);
digitalWrite(4,LOW);
delay(1000); //Enciende el LED en el pin 13
}
//Si el valor es menor a 500
//Retardo de 100ms para ver los datos de la consola
}
Practica 3
El equipo de sonido tiene una perilla para que le subas el volumen y adems cuenta con 5
indicadores luminosos (LED) dispuestos uno tras otro en una lnea recta ( as como lo ves en el
montaje) en la medida que el valor del potencimetro va aumentando al girarlo, se va encendiendo
el LED1, luego el LED2, luego el LED3 y as hasta el LED5. Si llegas al valor de 1023 todos los
LED deberan estar prendidos y si comienzas a girar el potencimetro en sentido contrario se van
apa-gando los LED uno tras otro en el sentido inverso en que se encendieron, al final si ests en el
valor 0 todos los LED deben estar apagados. Generar una sensacin de movimiento.
Cdigo
//Declaramos los leds y los pines en los cuales hay que conectar
int led1 = 12;
int led2 = 11;
int led3 = 10;
int led4 = 9;
int led5 = 8;
void setup(){
//configuramos todos los pines como salidas
Serial.begin(9600);
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
pinMode(led3, OUTPUT);
pinMode(led4, OUTPUT);
pinMode(led5, OUTPUT);
}
void loop(){//Hacemos la lectura analoga del potenciometro
int valorPotenciometro = analogRead(A0);//Apagamos todos los LED's
Serial.println(valorPotenciometro);
digitalWrite(led1, LOW);
digitalWrite(led2, LOW);
digitalWrite(led3, LOW);
digitalWrite(led4, LOW);
digitalWrite(led5, LOW);
T8
Programa que enciende un LED de manera proporcional de acuerdo a la cantidad de luz que incida
en una fotocelda.
Cdigo
void setup() // Se ejecuta cada vez que el Arduino se inicia
{
Serial.begin(9600); //Inicia comunicacin serial
pinMode(9,OUTPUT); //Configurar el pin 9 como una salida de PWM
}
//-----------------------------------//Funcion ciclicla
//-----------------------------------void loop() // Esta funcion se mantiene ejecutando
{ // cuando este energizado el Arduino
//Guardar en una variable el valor de la lectura anloga de la
// fotocelda
int foto = analogRead(A0);
Practica 2
T9
Practica 1
Programa que muestra por pantalla (consola serial) el nmero de veces que el pulsador ha sido
presionado, se realiza un proceso que de acuerdo al nmero de pulsaciones se enciende un LED
//-------------------------------------------------//Declara puertos de entradas y salidas y variables
//-------------------------------------------------int conta = 0,i=0;
//Variable para guardar el conteo de los pulsos
//-----------------------------------//Funcion principal
//-----------------------------------void setup() // Se ejecuta cada vez que el Arduino se inicia
{