Documentos de Académico
Documentos de Profesional
Documentos de Cultura
I INTRODUCCIN
II PRCTICAS
1. Prctica 1
1.1. Objetivo . . . . . .
1.2. Destreza . . . . . .
1.3. Diagrama elctrico
1.4. Codigo . . . . . . .
1.4.1. Descripcin
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
8
8
8
8
9
9
2. Prctica 2
2.1. Objetivo . . . . . .
2.2. Destreza . . . . . .
2.3. Diagrama elctrico
2.4. Cdigo . . . . . . .
2.4.1. Descripcin
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
10
10
10
10
11
11
3. Prctica 3
3.1. Objetivo . . . . . .
3.2. Diagrama elctrico
3.3. Cdigo . . . . . . .
3.3.1. Descripcin
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
12
12
12
12
13
4. Prctica 4
4.1. Objetivo . . . . . .
4.2. Diagrama elctrico
4.3. Cdigo . . . . . . .
4.3.1. Descripcin
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
14
14
14
14
15
5. Prctica 5
5.1. Objetivo . . . . . .
5.2. Diagrama elctrico
5.3. Cdigo . . . . . . .
5.3.1. Descripcin
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
16
16
16
16
17
6. Prctica 7
6.1. Objetivo . . . . . .
6.2. Diagrama elctrico
6.3. Cdigo . . . . . . .
6.3.1. Descripcin
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
18
18
18
18
19
7. Prctica 8
7.1. Objetivo . . . . . .
7.2. Diagrama elctrico
7.3. Cdigo . . . . . . .
7.3.1. Descripcin
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
20
20
20
20
20
8. Prctica 9
8.1. Objetivo . . . . . .
8.2. Diagrama elctrico
8.3. Cdigo . . . . . . .
8.3.1. Descripcin
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
21
21
21
21
21
9. Prctica 10
9.1. Objetivo . . . . . .
9.2. Diagrama elctrico
9.3. Cdigo . . . . . . .
9.3.1. Descripcin
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
22
22
22
22
22
10.Prctica 11
23
10.1.Objetivo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
10.2.Cdigo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
10.2.1. Descripcin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
11.Prctica 12
11.1.Objetivo . . . . . .
11.2.Diagrama elctrico
11.3.Cdigo . . . . . . .
11.3.1. Descripcin
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
24
24
24
24
24
12.Prctica 13
25
12.1.Objetivo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
12.2.Cdigo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
12.2.1. Descripcin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
13.Prctica 14
26
13.1.Objetivo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
13.2.Cdigo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
13.2.1. Descripcin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
14.Prctica 15
27
14.1.Objetivo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
14.2.Cdigo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
14.2.1. Descripcin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
15.Prctica 16
28
15.1.Objetivo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
15.2.Caractersticas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
Parte I
INTRODUCCIN
Microcontrolador
El microcontrolador es un circuito integrado de muy alta escala de integracin
que contiene las partes funcionales de un computador:
CPU (Central Processor Unit o Unidad de Procesamiento Central)
Memorias voltiles (RAM), para datos
Memorias no voltiles( ROM, PROM, EPROM) para escribir el programa
Lneas de entrada y salida para comunicarse con el mundo exterior.
Algunos perifricos (comunicacin serial, temporizador, convertidor A/D, etc)
Es decir el microcontrolador es un computador integrado en un solo chip. Integrar
todos estos elementos en un solo circuito integrado a significado desarrollar aplicaciones importantes en la industria al economizar materiales, tiempo y espacio.
ATMEL
ATMEL fabrica los microcontroladores de la familia AVR, esta nueva tecnologa
proporciona todos los beneficios habituales de arquitectura RISC y memoria flash
reprogramable elctricamente. La caracterstica que los identifica a estos microcontroladores de ATMEL es la memoria flash y eeprom que incorpora. AVR compite con
3
Caractersticas
Entre sus caractersticas encontramos:
Organizacin de memoria Flash
Capacidad de memoria EEPROM
Capacidad de memoria SRAM
Carcasa
Frecuencia de tacteado
Perifricos
Cantidad de entradas/salidas
Cantidad de canales PWM
Cantidad de timers 8-bit
Cantidad de timers 16-bit
Montaje
Tensin de trabajo
Cantidad de transductores A/C 10-bit
8kx8bit
512B
512B
DIP28
16MHz
RTC, comparador
23
3
2
1
THT
4.5...5.5V
6 92
Pines
El ATmega 8 cuenta con 26 pines de los cuales:
VCC y GND. Son los pines de alimentacin (+5 v) y tierra (0 v).
XTAL1 y XTAL2. Conectores del cristal de reloj externo.
RESET. Corresponde a la lnea de reset (entrada).
AVCC. Es el pin para conectar la fuente de alimentacin al convertidor A/D.
AREF. Para conectar una tensin de referencia para el conversor.
Puerto C(PC0 .. PC5). Tiene 7 bits, bidireccionales con resistencias internas pull up,
para cada bit.
Puerto B(PB7 .. PB0).
Puerto D (PD0..PD7).
PC6/RESET.
El microcontrolador tiene varios puertos de los cuales podemos hacer uso, estos
puertos los podemos configurar como nosotros queramos, como entrada o como
salida, para poder hacer esto es necesario escribir en los registros del puerto para
darle las instrucciones necesarias. Existen tres principales formas de controlar los
puertos, tomamos como ejemplo el puerto B.
DDR
Para obtener que el puerto B se comporte como entrada, como salida o ambos,
es necesario indicarle esto en el DDR, este registro no activara ni desactivara ningn
pin del microcontrolador, simplemente le indicara al puerto si este ser entrada o
salida.
DDRB=0xFF;
DDRB=255;
DDRB=0b11111111;
//Como Hexadecimal
//Como Decimal
//Como Binario
//Como Hexadecimal
//Como Decimal
//Como Binario
PORT
El PORT controla la salida del puerto, este se usa en caso de que el DDR haya sido seleccionado como salida, un 1 en el PORT indica un nivel alto en el puerto como
salida, un 0 indica que el pin esta en nivel bajo. Varias configuraciones de ejemplo
para el PORT:
PORTB=0xFF;
PORTB=0x00;
PORTB=0x03;
PIN
El PIN es un registro de lectura (notar en la imagen del registro donde dice Read/Write, todos son R), 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. En este caso el
valor del PIN se le puede asignar a una variable la cual guardara el valor del miso, al
momento de ejecutar la instruccin.
valor=PINB; //El valor de PINB es asignado a la variable "valor"
Programacin AVR
Para programar el microcontrolador se hara uso de el software de AVR Studio el
cual utiliza el lenguje C, acontinuacion se describen los detalles del programa.
Esta linea define la frecuencia a la que trabajar el micro, esta definicin sirve para
hacer calculos en algunas librerias, como en la librera delay.h, que requiere saber la
frecuencia del micro para poder calcular los tiempos de espera de sus rutinas.
#include <avr/io.h>
Incluimos la librera avr/io que contiene la informacin de las entradas y salidas del
microcontrolador.
#include <util/delay.h>
Esta librera es necesaria, ya que contiene todas las funciones para poder utilizar los
retardos de tiempo.
while(1){
El ciclo while, es un ciclo que ejecuta todas las instrucciones que se encuentran dentro de sus corchetes, siempre y cuando lo que este dentro del parntesis se cumpla,
en este caso el 1 es lo mismo que TRUE, por lo tanto, siempre se cumple y se ejecutaran cclicamente las instrucciones dentro del while. Esto se hace con la intencin
de que el programa nunca se detenga, y siempre repita lo mismo.
Parte II
PRCTICAS
1. Prctica 1
1.1. Objetivo
Disear un programa que encienda un led, dure 500ms y se apague; esta conmutacin debe darse en cadaterminal del puerto B, del LSB al MSB.
1.2. Destreza
Partiendo del cdigo con el que se logr hacer funcionar el ATMEGA8, disee un
cdigo que resuelva elproblema.
1.4. Codigo
/*
* Practica_1.c
*
* Created: 21/09/2015 08:51:43 AM
*
*/
7
8
9
10
11
12
#include <util/delay.h>
#include <avr/io.h>
13
14
15
16
int main(void)
{
DDRB = 0xFF; // Configurar el puerto B como salidas
17
while(1)
{
PORTB = PORTB | 0x01; // Aplicamos or
_delay_ms(500);
PORTB = PORTB & 0xFE;
_delay_ms(500);
}
18
19
20
21
22
23
24
25
1.4.1. Descripcin
2. Prctica 2
2.1. Objetivo
Disear un programa que muestre los digitos en hexadecimal (01,2,3,4,5,6,7,8,9,A,B,C,D,E,F)
en undisplay 7 segmentos.
2.2. Destreza
El punto clave es guardar los datos en la memoria FLASH usando la libreria
avr/pgmspace.h. Recuerde que solo toma los 4 LSB del puerto D (Puerto D como
entrada). El display est conectado al puerto B.
10
2.4. Cdigo
/*
* Practica_2.c
*
* Created: 21/09/2015 08:51:43 AM
*/
7
8
9
#include <avr/io.h>
#include <avr/pgmspace.h>
10
11
12
13
14
0x3F,
0x66,
0x7F,
0x39,
0x06,
0x6D,
0x67,
0x5E,
0x5B,
0x7D,
0x77,
0x79,
0x4F,
0x07,
0x7C,
0x71};
15
16
17
18
19
20
21
int main(void)
{
unsigned char dato;
DDRD = 0x00;
PORTD = 0x00;
DDRB = 0xFF;
22
while (1)
{
dato = PIND & 0x0F;
PORTB = pgm_read_byte (& tabla[dato]);
}
23
24
25
26
27
28
2.4.1. Descripcin
11
3. Prctica 3
3.1. Objetivo
Disear una ALU (Unidad Aritmtica Lgica) de 4 bits.
3.3. Cdigo
/*
* Practica_3.c
*
* Created: 21/09/2015 09:01:43 AM
*/
12
7
8
#include <avr/io.h>
9
10
11
12
int main(void)
{
unsigned char Dig1, Dig2, R, Oper;
13
DDRB = 0x00
DDRC = 0x00
PORTB= 0x00
PORTC= 0x00
DDRD=0xFF;
14
15
16
17
18
;
;
; // Resistores
; // Resistores
19
while (1)
{
Dig1 = PINB&0x0F ;
Dig2 =(PINB&0xF0)>>4;
Oper = PINC&0x07 ;
20
21
22
23
24
25
switch(Oper)
{
case 0: R = A +
break;
case 1: R = A break;
case 2: R = A *
break;
case 3: R = A &
break;
case 4: R = A |
break;
default: R = 0;
}
PORTD=R;
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
B;
B;
B;
B;
41
42
B;
3.3.1. Descripcin
13
Pull Down
Pull Down
4. Prctica 4
4.1. Objetivo
Mostrar letras (segn las posibilidades)en un display 7 segmentos, formando
una palabra de mnimo 4 letras. Estas letras deben visulizarse cada 400ms. Disear las letras como se hizo en clase.
4.3. Cdigo
/*
* Practica_4.c
*
* Created: 18/09/2015 07:21:54 AM
*/
6
7
14
8
9
#include <avr/io.h>
#include <util/delay.h>
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
int main(void)
{
DDRB = 0xFF;
while(1)
{
PORTB = 0x7D;
_delay_ms(400);
PORTB = 0xF9;
_delay_ms(400);
PORTB = 0x50;
_delay_ms(400);
PORTB = 0x77;
_delay_ms(400);
PORTB = 0x50;
_delay_ms(400);
PORTB = 0x5E;
_delay_ms(400);
PORTB = 0x3F;
_delay_ms(400);
}
}
4.3.1. Descripcin
15
5. Prctica 5
5.1. Objetivo
Disear un registro de corrimiento de bits utilizando el puerto D. Debe ir del LSB
al MSB y viceversa.
5.3. Cdigo
/*
* Proyecto_5.c
*
* Created: 18/09/2015 07:38:21 AM
*/
6
7
8
9
10
11
12
13
int main(void)
{
DDRB = 0xFF;
16
PORTD = 0x01;
while(1)
{
while (PORTB < 0x80)
{
PORTD = PORTD << 1; //Recorrer a la izquierda
_delay_ms(300);
}
while (PORTD > 0x01)
{
PORTD = PORTD >> 1; //Recorrer a la derecha
_delay_ms(300);
}
}
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
5.3.1. Descripcin
17
6. Prctica 7
6.1. Objetivo
Utilizar interrupciones y hacer conmutar el LSB del Puerto B.
6.3. Cdigo
/*
* Proyecto_7.c
*
* Created: 18/09/2015 07:38:21 AM
*/
6
7
8
#include <avr/io.h>
#include <avr/interrupt.h>
9
10
11
12
13
ISR (INT0_vect)
{
PORTB = PORTB^0X01; //OR EXCLUSIVE PARA CONMUTAR LSB
}
14
15
int main ()
18
16
{
DDRD = 0X00; //PUERTO D COMO ENTRADA
PORTD = 0XFF; //RESISTOR PULL UP
17
18
19
DDRB = 0XFF;
20
21
22
23
24
25
26
27
while (1)
{
28
29
asm( "nop" ) ;
30
31
32
6.3.1. Descripcin
19
7. Prctica 8
7.1. Objetivo
Utilizar interrupciones y hacer conmutar el LSB del Puerto B durante 2000ms.
7.3. Cdigo
#define
#include
#include
#include
F_CPU 1000000UL
<avr/io.h>
<avr/interrupt.h>
<util/delay.h>
5
6
7
8
9
10
11
ISR (INT0_vect)
{
PORTB = 0x01;
_delay_ms(2000);
PORTB = 0x00;
}
12
13
14
15
int main(void)
{
DDRD = 0x00;
20
PORTD = 0xFF;
DDRB = 0xFF;
16
17
18
cli ();
19
20
MCUCR = 0x02;
GICR = 0x40;
21
22
23
sei ();
24
25
while(1)
{
PORTB = 0x40;
}
26
27
28
29
30
7.3.1. Descripcin
21
8. Prctica 9
8.1. Objetivo
Realice contador de eventos ascendente y descendente con salida en binario.
8.3. Cdigo
#include <avr/io.h>
#include <avr/interrupt.h>
3
4
5
6
7
8
9
10
ISR (INT0_vect)
{
cuenta ++;
PORTB = cuenta;
}
11
12
13
ISR (INT1_vect)
{
22
cuenta--;
PORTB = cuenta;
14
15
16
17
18
19
20
21
22
int main(void)
{
DDRD = 0x00; //Puerto D como entrada
PORTD = 0xFF; // Configuracion Pull Up
DDRB = 0xFF; // Puerto B como salida
23
24
25
26
27
28
29
while(1)
{
asm ("nop");
}
30
31
32
33
34
8.3.1. Descripcin
23
9. Prctica 10
9.1. Objetivo
Disee un sistema de conteo de 0 a 99 y muestrelos en dos display 7 segmentos.
Cada display representala unidad y la decena.
9.3. Cdigo
5
6
7
8
const char tabla [ ] PROGMEM = { 0x3F, 0x06, 0x5B, 0x4F, 0x66, 0x6D,
0x7D, 0x7F, 0x67, 0x77, 0x7C, 0x39,
0x5E, 0x79, 0x71};
9
10
11
12
13
14
15
16
17
int main(void)
{
int u=0,d=0;
DDRB=0xFF; //CONF COMO SALIDA
DDRD=0xFF; //CONF COMO SALIDA
while(1)
{
while ( d < 9)
24
18
PORTB = pgm_read_byte(&tabla[d]);
_delay_ms(150);
d++;
19
20
21
22
while (u < 9)
{
PORTD = pgm_read_byte(&tabla[u]);
_delay_ms(150);
u++;
}
23
24
25
26
27
28
29
PORTD = 0x3f;
u = 0;
30
31
32
33
d = 0;
}
34
35
36
9.3.1. Descripcin
25
10. Prctica 11
10.1. Objetivo
Generar una seal PWM en modo no invertido, con el ancho de pulso determinado por el valor delpuerto D.
10.2. Cdigo
#include <avr/io.h>
//PWM
int main(void)
{
DDRB = 0xFF; // Conf como salida
PORTD = 0xFF; // Conf como entrada
TCCR2 = 0x69;
8
9
while(1)
{
OCR2 = PIND;
}
10
11
12
13
14
10.2.1. Descripcin
26
11. Prctica 12
11.1. Objetivo
Disee un sistema que mantenga la temperatura de una habitacin en el rango
de 18 y 23 C. Si esmayor a 23 C debe encender un ventilador, si es menor a 18 C un
calefactor. Si se encuentra dentro de los rangos no debe activarse algo.
11.3. Cdigo
3
4
#include <avr/io.h>
5
6
7
8
9
10
int main(void)
{
unsigned int temp;
DDRB = 0xFF;
PORTB = 0x00;
11
27
ADMUX = 0x00;
ADCSRA = 0xC3;
12
13
14
while(1)
{
while (!(ADCSRA & 1 << ADIF)); // Espera fin de conversion
ADCSRA |= 1 << ADIF;
// Limpia bandera
temp = ADCW;
// Obtiene la temperatura
if (temp < sup)
PORTB = 0x01;
else if (temp < inf)
PORTB = 0x02;
else
PORTB = 0x00;
ADCSRA |= 1 << ADSC;
// Inicia conversion
}
15
16
17
18
19
20
21
22
23
24
25
26
27
28
11.3.1. Descripcin
28
12. Prctica 13
12.1. Objetivo
Disee el control de un seguidor de linea, compuesto por dos llantas traseras
manejadas por motoresindependientes y una llanta (bola loca). El mvil debe seguir
una lnea blanca en una superficie de fondonegro. Suponga que los sensores se han
acondicionado de manera que, cuando se encuentran en una zonaoscura presentan
un voltaje mayor a 2.5V y en una zona clara su voltaje est por debajo de ese nivel.
12.2. Cdigo
#include <avr/io.h>
2
3
4
5
6
7
8
9
int main(void)
{
unsigned char sens;
DDRB = 0xFF;
PORTB = 0x03;
ADCSRA = 0x00; // acitva ADC
SFIOR = 0x08; // Conecta multiplexor con AC
10
11
12
13
14
15
16
17
18
19
20
21
22
23
while(1)
{
sens = 0x00;
ACSR = 0x80; // Desact AC
ADMUX = 0x00; // Selecciona Canal 0
ACSR = 0x00; // Activa AC
asm ("nop");
if (!(ACSR & 1 << ACO))
//Si sensor 1 esta en zona oscura
sens |= 0x01;
// Enciende motor 1
ACSR = 0x80;
ADMUX = 0x01;
ACSR = 0x00;
asm ("nop");
24
25
26
27
28
29
30
29
31
32
12.2.1. Descripcin
30
13. Prctica 14
13.1. Objetivo
Disee un cdigo en RobotC for VEX utilizando tres sensores de linea para resolver el problema del "LineFollower".
13.2. Cdigo
13.2.1. Descripcin
31
14. Prctica 15
14.1. Objetivo
Disee un cdigo en RobotC for VEX que logre situar al mvil dentro de un circulo, y una vez situadodentro del circulo evitar que salga. La destreza es utilizar el sensor o los sensores de luz.
14.2. Cdigo
14.2.1. Descripcin
32
15. Prctica 16
15.1. Objetivo
Disee un robot Mvil de ruedas o patas (articulaciones) con las siguientes caractersticas.
15.2. Caractersticas
1.- El robot Mvil deber tener Ruedas o patas. 2.- Las dimensiones del Robot
Mvil no deben exceder las dimensiones de 20x20x40 cm, esto con el fn deque pueda trasladarse y moverse dentro de un laberinto. 3.- Es libre de usar cualquier dispositivo uC o embebido para su control. 4.- Deber tener como mnimo un sensor
ultrasnico en la parte frontal del Mvil. 5.- Deber tener al menos un par de elementos pticos (IRED y Fototransistor) que ayude al Mvil en ladeteccin de lineas
(blancas o negras). 6.- Es necesario que el Mvil se pueda armar y desarmar de manera practica, procurepegarsolo lo necesario,haga uso de tornillera. 7.- Es necesario
que los circuitos electrnicos posibles a usar esten en PCB (Print Circuit Board). 8.El Mvil debe tener un boton de encendido. 9.- Considere la pila ya en el Mvil. 10.Para este corte valorativo (primer Parcial), se pide solo el mecanismo pero listo para
cargar cdigos. 11.-Podr, si as lo desea, tomar algunas recomendaciones vistas en
clase para su contruccon.12.- Recuerde que este practica equivale a 2.5 pts
33