Você está na página 1de 14

MATERIALES NECESARIOS

Necesitarás los siguientes componentes electrónicos para poder realizar el


test:

◦ Arduino UNO

◦ Breadboard

◦ Cables eléctricos

◦ Resistencias de 10K y de 1K

◦ 1 Resistencia LDR

◦ 4 pulsadores

◦ 4 leds

◦ 1 display 7 segmentos

EJERCICIOS

1. Utilizando un total de 4 leds, realiza un programa que encienda


secuencialmente cada uno de ellos.

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 soució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.

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);
}
2. Realiza un programa que con dos pulsadores y un led
como salida, implemente las funciones de las puertas AND y
OR.

Vamos a simular dos entradas lógicas (“1” ó “0”) con dos pulsadores,
(pueden ser conmutadores). En este ejemplo usaremos la función AND de
manera que, según el estado de las 2 entradas, obtendremos una señal de
salida (“1” ó “0”) conforme a la tabla de verdad de la operación.

Utiizando una protoboarda monta las entradas en los pines digitales 1 y 2. Y


el led de salida en el pin13 que se encenderá o apagará según la lógica de
una puerta AND respecto a las dos variables de entrada (dos pulsadores)
*
Boole
Función AND con 2 variables
*/

int var1 = 7; // Pin de entrada del pulsador 1


int var2 = 2; // Pin de entrada del pulsador 2
int led = 5; // Pin de salida para el led(rojo)
int estado1 = 0; // Para almacenar el estado de la variable1
int estado2 = 0; // Para almacenar el estado de la variable2
int resultado = 0; // Para almacenar el resultado

void setup() {
pinMode(var1, INPUT); // Iniciliza el pin de entrada 1 como salida
pinMode(var2, INPUT); // Iniciliza el pin de entrada 2 como salida
pinMode(led, OUTPUT); // Iniciliza el pin del led como salida
}

void loop(){
estado1 = digitalRead(var1); // Lee el estado del botón y lo almacena
estado2 = digitalRead(var2); // Lee el estado del botón y lo almacena
resultado = (estado1 && estado2); // Función AND con los dos estados
digitalWrite(led, resultado); // Escribimos el resultado en el led

4. Observa el siguiente código y cópialo en el IDE de Arduino:


#define LED 13
#define PULSADOR 2
void setup() {
pinMode(LED, OUTPUT);
pinMode(PULSADOR, INPUT);
}
void loop() {
do { //Parpadea mientras el pulsador esté activado
digitalWrite(LED, HIGH);
delay(100);
digitalWrite(LED, LOW);
delay(100);
} while(digitalRead(PULSADOR) == HIGH);
}

Verifica, carga el programa y comprueba su ejecución. ¿Qué debería


hacer el programa al activar el pulsador? ¿Y al desactivarlo? ¿Funciona
como debería? ¿Cuál es la razón?

Al iniciar el programa perdería el led y al presionar el pulsador lo apagaríamos.Y al


desactivar el pulsador lo perderíamos

5. Realiza un programa que realice una cuenta atrás del 9 al 0 de forma


constante visualizando el número en un display de 7 segmentos.
const int a = 2;
const int b = 3;
const int c = 4;
const int d = 5;
const int e = 6;
const int f = 7;
const int g = 8;
void setup() { // put your setup code here, to run once:
pinMode(a, OUTPUT);

// pinMode(b, OUTPUT);
pinMode(c, OUTPUT);
pinMode(d, OUTPUT);
pinMode(e, OUTPUT);
pinMode(f, OUTPUT);
pinMode(g, OUTPUT);
}
void loop() { // put your main code here, to run repeatedly: //Escribiendo el
0

digitalWrite(a, HIGH);
digitalWrite(b, HIGH);
digitalWrite(c, HIGH);
digitalWrite(d, HIGH);
digitalWrite(e, HIGH);
digitalWrite(f, HIGH);
digitalWrite(g, LOW);
delay(1000);
// Retardo de 1 segundo. // Escribiendo el 1
digitalWrite(a, LOW);
digitalWrite(b, HIGH);
digitalWrite(c, HIGH);
digitalWrite(d, LOW);
digitalWrite(e, LOW);
digitalWrite(f, LOW);
digitalWrite(g, LOW);
delay(1000);
// Retardo de 1 segundo. // Escribiendo el 2
digitalWrite(a, HIGH);
digitalWrite(b, HIGH);
digitalWrite(c, LOW);
digitalWrite(d, HIGH);
digitalWrite(e, HIGH);
digitalWrite(f, LOW);
digitalWrite(g, HIGH);
delay(1000);
// Retardo de 1 segundo. // Escribiendo el 3
digitalWrite(a, HIGH);
digitalWrite(b, HIGH);
digitalWrite(c, HIGH);
digitalWrite(d, HIGH);
digitalWrite(e, LOW);
digitalWrite(f, LOW);
digitalWrite(g, HIGH);
delay(1000);
// Retardo de 1 segundo. // Escribiendo el 4
digitalWrite(a, LOW);
digitalWrite(b, HIGH);
digitalWrite(c, HIGH);
digitalWrite(d, LOW);
digitalWrite(e, LOW);
digitalWrite(f, HIGH);
digitalWrite(g, HIGH);
delay(1000);
// Retardo de 1 segundo. // Escribiendo el 5
digitalWrite(a, HIGH);
digitalWrite(b, LOW);
digitalWrite(c, HIGH);
digitalWrite(d, HIGH);
digitalWrite(e, LOW);
digitalWrite(f, HIGH);
digitalWrite(g, HIGH);
delay(1000); // Retardo de 1 segundo. // Escribiendo el 6
digitalWrite(a, HIGH);
digitalWrite(b, LOW);
digitalWrite(c, HIGH);
digitalWrite(d, HIGH);
digitalWrite(e, HIGH);
digitalWrite(f, HIGH);
digitalWrite(g, HIGH);
delay(1000); // Retardo de 1 segundo. // Escribiendo el 7
digitalWrite(a, HIGH);
digitalWrite(b, HIGH);
digitalWrite(c, HIGH);
digitalWrite(d, LOW);
digitalWrite(e, LOW);
digitalWrite(f, LOW);
digitalWrite(g, LOW);
delay(1000);
// Retardo de 1 segundo. //Escribiendo el 8
digitalWrite(a, HIGH);
digitalWrite(b, HIGH);
digitalWrite(c, HIGH);
digitalWrite(d, HIGH);
digitalWrite(e, HIGH);
digitalWrite(f, HIGH);
digitalWrite(g, HIGH);
delay(1000);
// Retardo de 1 segundo. //Escribiendo el 9
digitalWrite(a, HIGH);
digitalWrite(b, HIGH);
digitalWrite(c, HIGH);
digitalWrite(d, HIGH);
digitalWrite(e, LOW);
digitalWrite(f, HIGH);
digitalWrite(g, HIGH);
delay(1000); // Retardo de 1 segundo.
}
6. Realiza un programa capaz de ajustar la velocidad de la cuenta
atrás del punto anterior en función de la posición de un potenciómetro. El
tiempo deberá ser configurable entre un mínimo de 100ms y un máximo de
5 segundos por dígito

int a = 2; //For displaying segment "a"


int b = 3; //For displaying segment "b"
int c = 4; //For displaying segment "c"
int d = 5; //For displaying segment "d"
int e = 6; //For displaying segment "e"
int f = 8; //For displaying segment "f"
int g = 9; //For displaying segment "g"

void setup() {

// put your setup code here, to run once:


pinMode(a, OUTPUT); //A
pinMode(b, OUTPUT); //B
pinMode(c, OUTPUT); //C
pinMode(d, OUTPUT); //D
pinMode(e, OUTPUT); //E
pinMode(f, OUTPUT); //F
pinMode(g, OUTPUT); //G
}

void displayDigit(int digit)


{
//Conditions for displaying segment a
if(digit!=1 && digit != 4)
digitalWrite(a,LOW);

//Conditions for displaying segment b


if(digit != 5 && digit != 6)
digitalWrite(b,LOW);

//Conditions for displaying segment c


if(digit !=2)
digitalWrite(c,LOW);

//Conditions for displaying segment d


if(digit != 1 && digit !=4 && digit !=7)
digitalWrite(d,LOW);

//Conditions for displaying segment e


if(digit == 2 || digit ==6 || digit == 8 || digit==0)
digitalWrite(e,LOW);

//Conditions for displaying segment f


if(digit != 1 && digit !=2 && digit!=3 && digit !=7)
digitalWrite(f,LOW);
if (digit!=0 && digit!=1 && digit !=7)
digitalWrite(g,LOW);

}
void turnOff()
{
digitalWrite(a,HIGH);
digitalWrite(b,HIGH);
digitalWrite(c,HIGH);
digitalWrite(d,HIGH);
digitalWrite(e,HIGH);
digitalWrite(f,HIGH);
digitalWrite(g,HIGH);
}

void loop() {

for(int i=0;i<10;i++)
{
displayDigit(i);
delay(1000);
turnOff();
}
}

7. Realiza un programa que varíe la intensidad de un LED de


completamente apagado a completamente encendido. La velocidad de
ejecución del ciclo podrá ser ajustada mediante un potenciómetro

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.
/* Práctica 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);
}
INSTITUTO TECNOLOGICO DE
NUEVO LEON

TAREA: ACTIVIDADES UNIDAD 1

ALUMNO: Morales Rosas Elias

NO. CONTROL: 15480057

MATERIA: Micro controladores

MAESTRO(A): Víctor Manuel Calderón

FECHA: 12/04/18

Você também pode gostar