Vous êtes sur la page 1sur 4

LENGUAJE ENSAMBLADOR LABORATORIO II

CONTADOR 0 A 9 - CON DISPLAY

En este laboratorio se trabajar el uso de un display de siete segmentos ctodo, como un


contador de 0 a 9, el contador aumentar progresivamente con un retardo de 1 segundo.

Materiales
Arduino UNO
Display de 7 segmentos ctodo comn
7 resistencias 220ohm

Registros de puertos
Es necesario saber que los registros nos permiten una manipulacin ms rpida de los pines de
E/S de nuestro Arduino UNO. Por lo cual el microcontrolador de esta placa tiene tres puertos:
Pin digital de 8-13
Pines de entrada analgica
Pines digitales 0-7
Debido a esto cada uno de estos puertos est controlado por tres registros los cuales se definen
por DDR, PORT y PIN.

Registro DDR Determina si el pin es entrada o salida. Ejemplo: DDRD= B00001111;


Dnde:
D es el puerto a controlar; B indicamos que es el cdigo binario; 0 =entrada 1=salida
Con este ejemplo estamos declarando que la mitad de nuestro puerto sea entrada y la otra parte
salida, como resultado evitamos escribir varias veces pinMode(x,OUTPUT) para declarar cada
pin.
Con respecto al ejemplo anterior se toma el primer nmero de la derecha que es el menos
significativo por lo tanto la relacin de los pines ser de la siguiente manera:

Numero insertado 0 0 0 0 1 1 1 1
Pin de Arduino 7 6 5 4 3 2 1 0

Por otra parte si queremos hacerlo en forma decimal solo bastara con 31 y esto sera igual a
activar los primeros cuatro pines como salida DDRD=31 o DDRD=255 si queremos activar todo
el puerto como salida.

Registro PORT Controlada si el pin esta en alto o bajo. PORTD=10101010


En cuanto a este ejemplo le asignamos que los pines 1, 3, 5, 7 estn en estado alto mientras que
los pines 0, 2, 4, 6 estn en estado bajo.

Registro PIN
Lee el estado de los pines de entrada establecidos. PIND
Se lee todo el puerto que se ha configurado como entrada. Este registro nos da un 1 si a un pin
del microcontrolador se le est alimentando externamente, y un cero si esta en nivel bajo de
voltaje.

Display 7 segmentos
Puesto que un display de 7 segmentos no son ms que siete LEDs nos sirve para mostrar
nmeros o caracteres encendiendo o apagando cada uno ellos. Por consiguiente a cada uno de
los LEDs se le denomina segmento, los cuales para activarlos basta con conectar el comn a
tierra y voltaje en el segmento que deseemos activar (en este caso que es ctodo comn).

Mg. OSWALDO DANIEL CASAZOLA CRUZ ARDUINO


LENGUAJE ENSAMBLADOR LABORATORIO II

Programa
void setup()
{
DDRD=255; //Se declara todo el puerto como salida
}
void loop()
{
//Al puerto "D" le asignamos los valores obtenidos haciendo una pausa de 1segundo entre cada
numero
PORTD=0x7E; //0
delay(1000);
PORTD=0x30; //1
delay(1000);
PORTD=0x6D; //2
delay(1000);
PORTD=0x79; //3
delay(1000);
PORTD=0x33; //4
delay(1000);
PORTD=0x5B; //5
delay(1000);
PORTD=0x5F; //6
delay(1000);
PORTD=0x70; //7
delay(1000);
PORTD=0x7F; //8
delay(1000);
PORTD=0x7B; //9
delay(1000);
}

Mg. OSWALDO DANIEL CASAZOLA CRUZ ARDUINO


LENGUAJE ENSAMBLADOR LABORATORIO II

SENSOR DE PROXIMIDAD

En este laboratorio aprenderemos el uso del sensor ultrasonidos HC-SR04 (sensores para medir
distancias o superar obstculos, entre otras posibles funciones), Este sensor en concreto tiene
un rango de distancias sensible entre 3cm y 3m con una precisin de 3mm.
En este caso vamos a utilizarlo para la medicin de distancias. Esto lo consigue enviando un
ultrasonido (inaudible para el odo humano por su alta frecuencia) a travs de uno de la pareja
de cilindros que compone el sensor (un transductor) y espera a que dicho sonido rebote sobre
un objeto y vuelva, retorno captado por el otro cilindro.

Qu recibimos en el sensor?
El tiempo que transcurre entre el envo y la recepcin del ultrasonido.

Cmo vamos a traducir dicho tiempo en distancia?


Aprovechando que la velocidad de dicho ultrasonido en el aire es de valor 340 m/s, o 0,034
cm/microseg (ya que trabajaremos con centmetros y microsegundos). Para calcular la distancia,
recordaremos que v=d/t (definicin de velocidad: distancia recorrida en un determinado
tiempo). De la frmula anterior despejamos d, obteniendo d=vt, siendo v la constante
anteriormente citada y t el valor devuelto por el sensor a la placa Arduino. Tambin habr que
dividir el resultado entre 2 dado que el tiempo recibido es el tiempo de ida y vuelta.

Material
Sensor ultrasonidos HC-SR04 de Electrohobby
El sensor consta de 4 pines: "VCC" conectado a la salida de 5V de la placa, "Trig"
conectado al pin digital de la placa encargado de enviar el pulso ultrasnico, "Echo" al
pin de entrada digital que recibir el eco de dicho pulso y "GND" a tierra.
Placa Arduino UNO
Cables
Cable USB
Protoboard

Mg. OSWALDO DANIEL CASAZOLA CRUZ ARDUINO


LENGUAJE ENSAMBLADOR LABORATORIO II

PROGRAMA
long distancia;
long tiempo;
void setup(){
Serial.begin(9600);
pinMode(9, OUTPUT); /*activacin del pin 9 como salida: para el pulso ultrasnico*/
pinMode(8, INPUT); /*activacin del pin 8 como entrada: tiempo del rebote del ultrasonido*/
}

void loop(){
digitalWrite(9,LOW); /* Por cuestin de estabilizacin del sensor*/
delayMicroseconds(5);
digitalWrite(9, HIGH); /* envo del pulso ultrasnico*/
delayMicroseconds(10);
tiempo=pulseIn(8, HIGH); /* Funcin para medir la longitud del pulso entrante. Mide el
tiempo que transcurrido entre el envo
del pulso ultrasnico y cuando el sensor recibe el rebote, es decir: desde que el pin 12
empieza a recibir el rebote, HIGH, hasta que
deja de hacerlo, LOW, la longitud del pulso entrante*/
distancia= int(0.017*tiempo); /*frmula para calcular la distancia obteniendo un valor
entero*/
/*Monitorizacin en centmetros por el monitor serial*/
Serial.println("Distancia ");
Serial.println(distancia);
Serial.println(" cm");
delay(1000);
}

Mg. OSWALDO DANIEL CASAZOLA CRUZ ARDUINO