Practica Con Arduino
Practica Con Arduino
Practica Con Arduino
MATERIALES
Arduino UNO
Pulsador
Resistencia de 1k
Conectores
Protoboard
Cable USB
DISEÑO y CÓDIGO
//Declara puertos de entradas y salidas
int boton=2; //Pin donde se
encuentra el pulsador, entrada
//Función principal
void setup() // Se ejecuta cada vez que el Arduino se inicia
{
pinMode(boton, INPUT); //Configurar el botón como una entrada
Serial.begin(9600); //Inicia comunicación serial
}
//Función cíclica
void loop() // Esta función se mantiene ejecutando cuando este energizado el Arduino
{
int estado = digitalRead(boton); //Guardar en una variable entera el valor del botón 0 ó 1
if (estado==1) //Condicional para saber estado del pulsador
{
// Pulsado
Serial.println("Pulsado"); //Imprime en la consola serial "Pulsado"
}
else
{
// No está pulsado
Serial.println("NO Pulsado"); //Imprime en la consola serial "NO Pulsado"
}
delay(100); //Retardo para la visualización de datos en la consola
}
//Fin programa
EJERCICIO 1
Una empresa de gaseosas tiene un sistema con dos sensores, uno de ellos indica si la botella se ha
llenado con el líquido y el otro sensor indica si la botella ya tiene la tapa. Para este caso simularemos los
dos sensores por medio de dos pulsadores (S1 y S2).
La rutina se describe de esta manera: si la botella se llena de manera adecuada (se debe activar S1 y
mostrar por consola “Gaseosa llena” luego de ello si tiene la tapa colocada (se debe activar S2 y
mostrar por consola “Gaseosa tapada”, al finalizar el proceso se debe encender un LED que indica que
el proceso terminó bien y además se debe mostrar un mensaje por la consola ―Gaseosa bien
empacada‖. Recuerda que primero se debe activar S1 y luego S2 para que le proceso sea válido.
TUTORIAL ARDUINO #03 – LECTURA SERIAL DE UNA ENTRADA ANÁLOGA
MATERIALES
Arduino UNO
Potenciómetro
Conectores
Protoboard
Cable USB
DISEÑO
CÓDIGO
//Función principal
void setup() // Se ejecuta cada vez que el Arduino se inicia
{
Serial.begin(9600); //Inicia comunicación serial
}
void loop() // Esta función se mantiene ejecutando cuando este energizado el Arduino
{
int valor= analogRead(A0); //Guardar en una variable entera el valor del potenciómetro 0 a 1024
Serial.println(valor); //Imprime en la consola serial el valor de la variable
delay(100); //Retardo para la visualización de datos en la consola
}
//Fin programa
TUTORIAL ARDUINO #04 – ESCRITURA SERIAL
MATERIALES
Arduino UNO
Led
Cable USB
DISEÑO
CÓDIGO
//Declara puertos de entradas y salidas y variables
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
//Función principal
void setup() { // Se ejecuta cada vez que el Arduino se inicia
Serial.begin(9600); //Inicia comunicación serial
pinMode(led, OUTPUT); //Configurar el LED como una salida
}
//Funcion ciclicla
void loop() // Esta función se mantiene ejecutando cuando este energizado el Arduino
{
leer=Serial.read(); //Guardar en una variable el valor de la consola serial
if ( (leer=='a') && (prendido==false) ) // Si es la letra 'a' y además el LED está apagado
{
digitalWrite(led,HIGH); // Enciende el LED
prendido=true; // Actualiza el estado del LED
}
// Si es la letra 'a' y además el LED está encendido
else if ( (leer=='a') && (prendido==true) )
{
digitalWrite(led,LOW); // Apaga el LED
prendido=false; // Actualiza el estado del LED
}
}
//Fin programa
//Funcion ciclicla
void loop() // Esta función se mantiene ejecutando cuando este energizado el Arduino
{
leer=Serial.read(); //Guardar en una variable el valor de la consola serial
if ( (leer=='a') && (prendido==false) ) // Si es la letra 'a' y además el LED está apagado
{
digitalWrite(led1,HIGH); // Enciende el LED1
digitalWrite(led2,HIGH); // Enciende el LED2
digitalWrite(led3,HIGH); // Enciende el LED3
prendido=true; // Actualiza el estado del LED
}
// Si es la letra 'b' y además el LED está encendido
MATERIALES
Arduino UNO
Led
PROTOBOARD
Potenciómetro
Resistencia de 220 ohm
Cable USB
DISEÑO
CÓDIGO
//Función principal
void setup() // Se ejecuta cada vez que el Arduino se inicia
{
Serial.begin(9600); //Inicia comunicación serial
pinMode(13,OUTPUT); //Configurar el pin 13 como una salida
}
//Función cíclica
void loop() // Esta función se mantiene ejecutando cuando este energizado el Arduino
{
int valor = analogRead(A0); //Guardar en una variable el valor de la lectura análoga
Serial.println(valor); //Imprime el valor por la consola
if (valor >= 500) //Si el valor es mayor o igual a 500
{
digitalWrite(13,HIGH); //Enciende el LED en el pin 13 Si el valor es menor a 500
}
else
{
digitalWrite(13,LOW); //Apaga el LED en el pin 13
}
delay(100); //Retardo de 100ms para ver los datos de la consola
}
//Fin programa
EJERCICIO 4
Un carro de tunnig tiene luces de neón en la parte de abajo, éste es la sensación de la feria. El piloto
controla las luces (tres LEDs) por medio de un potenciómetro al lado de la palanca de cambios, él tiene
tres opciones de luces de acuerdo al valor de lectura del potenciómetro 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
TUTORIAL ARDUINO #07: SENSOR LDR
2. MATERIALES
Placa breadboard
5 Diodos LED
5 resistencias de 220 Ω
1 LDR (resistencia dependiente de luz)
1 potenciómetro 50kΩ (uno de 10kΩ también podría ser útil)
1 resistencia de 1kΩ
Cables
3. PROCEDIMIENTO
Se conectarán 5 LED que irán encendiéndose dependiendo del dicho valor de resistencia, ligado
inversamente con la cantidad de luz, de forma que conforme vaya disminuyendo la cantidad de luz, se
irán encendiendo los LED de forma progresiva. Un ejemplo típico podría ser la utilización en farolas
urbanas que van encendiéndose conforme va anocheciendo.
Primero concretamos los pines que vamos a utilizar para los LED. Por orden, utilizaremos el 12, 11, 10, 9
y 8. Unidos mediante un cable a la breadboard, colocamos las resistencias de 220 Ω puesto que
podríamos quemar los diodos por un exceso de calor.
El potenciómetro, por otro lado, es una
resistencia variable que dispone de tres
patillas: entre las dos de sus extremos existe
siempre un valor fijo de resistencia, y entre
cualquiera de esos extremos y la patilla
central tenemos una parte de ese valor
máximo. Es decir, la resistencia máxima que
ofrece el potenciómetro entre sus dos
extremos no es más que la suma de las
resistencias entre un extremo y la patilla
central, y entre la patilla central y el otro
extremo.
Lo utilizamos para determinar el valor
mínimo de la luz que es capaz de detectar el
sensor LDR, de forma que cuando vayamos
a ponerlo en marcha debemos regularlo para un correcto funcionamiento. Si ponemos el valor de la
referencia muy baja, empezarán a funcionar los LED con menos luz ambiente que si ponemos una
referencia elevada.
De forma práctica, conectaremos la patilla central al pin AREF (ofrece un voltaje de referencia externo
para poder aumentar la precisión de las entradas analógicas) que luego le diremos al programa que lo
vamos a usar como referencia externa (moverlo manualmente según el valor mínimo de luz que
queramos detectar). Mientras que cada patilla la conectaremos al ánodo y al cátodo (la patilla de la
izquierda al cátodo, y la de la derecha al ánodo) de la breadboard para unirlo con el sensor y los LED.
Para el sensor, la señal que recibe es una señal analógica que obtenemos del exterior para transformarla
en digital, por lo que colocaremos el cable de entrada en un pin analógico, A0 en nuestro caso. Al
colocar la resistencia de 1kΩ en la parte de arriba del sensor, estamos creando un divisor de tensiones,
de manera que cuanta más luz haya, más tensión tendremos a la entrada de nuestra entrada analógica.
void setup(){
pinMode(pinLed1, OUTPUT); //Establecemos como salida los pines para LED
pinMode(pinLed2, OUTPUT);
pinMode(pinLed3, OUTPUT);
pinMode(pinLed4, OUTPUT);
pinMode(pinLed5, OUTPUT);
void loop()
{
//Guardamos el valor leido en una variable
valorLDR = analogRead(pinLDR);
}
EJERCICIO 6: MONTAJES BÁSICOS: FUNCIONES LÓGICAS
ELEVADOR.
Tenemos un elevador neumático que se puede controlar desde 2 habitaciones contiguas del taller. Para
que el elevador funcione debe estar accionado cualquiera de los 2 pulsadores existentes, pero por
seguridad no funcionará si dos operarios la accionan simultáneamente.
a) Entradas:
A: un pulsador
B: un pulsador
b) Salida o valor de la función:
Motor que acciona el compresor del elevador
3. Puertas Lógicas:
2 puertas NOT
2 puertas AND
1 puerta OR
4. Circuito Lógico
PROGRAMA:
/*
Implementación de Función lógica
*/
void setup() {
pinMode(var1, INPUT); //Init pin de entrada 1 como salida
pinMode(var2, INPUT); //Init pin de entrada 2 como salida
pinMode(led, OUTPUT); //Iniciliza el pin del led como salida
}
void loop(){
A = digitalRead(var1); //Lee el estado 1 y lo almacena
B = digitalRead(var2); //Lee el estado 2 y lo almacena
//Función Lógica ------ R=(â*b)+(a*^b)
resultado = (!A && B) || (A && !B);
digitalWrite(led, resultado); //Escribimos el resultado en el led
}