Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
OBJETIVOS
El objetivo de esta práctica es realizar un seguidor de luz con un microcontrolador PIC
MARCO TEORICO
Esta practica fue realizada principalmente con los siguientes componentes:
- PIC 16F877A
Cuentan con memoria de programa de tipo EEPROM Flash mejorada, lo que permite
programarlos fácilmente usando un dispositivo programador de PIC. Esta característica
facilita sustancialmente el diseño de proyectos, minimizando el tiempo empleado en
programar los microcontroladores (µC).
Estructura interna:
Características:
Las células de sulfuro del cadmio se basan en la capacidad del cadmio de variar su
resistencia según la cantidad de luz que incide en la célula. Cuanta más luz incide,
más baja es la resistencia. Las células son también capaces de reaccionar a una
amplia gama de frecuencias, incluyendo infrarrojo (IR), luzvisible, y ultravioleta (UV).
- SERVOMOTOR
Caracteristicas:
Está conformado por un motor, una caja reductora y un circuito de control. También
potencia proporcional para cargas mecánicas. Un servo, por consiguiente, tiene un
consumo de energía reducido.
La corriente que requiere depende del tamaño del servo. Normalmente el fabricante
indica cuál es la corriente que consume. La corriente depende principalmente del par,
y puede exceder un amperio si el servo está enclavado.
_ __ ____ ____ _
| | | | | | | | | |
| | | | | | | | | |
_________| |____| |___| |________| |_| |__________
_ _ _ _ _ _
| | | | | | | | | | | |
| | | | | | | | | | | |
_________| |____| |___| |________| |__| |__| |___________
LAYOUT
CODIGO
#include <16f877a.h> //llamado a la libreria del pic 16f877a
#device adc=8 //entrada analogica de 8 bits 0-255
#use delay(clock=4000000)
#fuses xt, NOWDT
#FUSES NOPUT
#FUSES NOPROTECT
#FUSES NODEBUG
#FUSES NOBROWNOUT
#FUSES NOLVP
#FUSES NOCPD
#FUSES NOWRT
int res1,res0,res2,res3;
int16 x1=1700;
int16 y1=18300;
int16 x2=1700;
int16 y2=18300;
void main()
{
set_tris_b(0x00);
setup_adc_ports(all_analog); //especifica canales configurados como analogicos
setup_adc(adc_clock_internal);
setup_adc(ADC_CLOCK_DIV_8);
setup_spi(SPI_SS_DISABLED);
setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
setup_timer_1(T1_DISABLED);
setup_timer_2(T2_DISABLED,0,1);
setup_comparator(NC_NC_NC_NC);
setup_vref(FALSE);
while(true)
{
set_adc_channel(0);
delay_us(20);
res0=read_adc();
set_adc_channel(1);
delay_us(20);
res1=read_adc();
set_adc_channel(2);
delay_us(20);
res2=read_adc();
set_adc_channel(3);
delay_us(20);
res3=read_adc();
// giro derecha 1
if(res0<255&&res0>215)
{
x1=x1+20;
if(x1>2800)
{
x1=2800;
}
y1=y1-20;
if(y1<17200)
{
y1=17200;
}
output_high(PIN_B0);
delay_us(x1);
output_low(PIN_B0);
delay_us(y1);
}
//giro izquierda 2
if(res1<255&&res1>215)
{
x1=x1-20;
if(x1<800)
{
x1=800;
}
y1=y1+20;
if(y1>19200)
{
y1=19200;
}
output_high(PIN_B0);
delay_us(x1);
output_low(PIN_B0);
delay_us(y1);
}
// giro derecha 3
if(res2<255&&res2>215)
{
x2=x2+20;
if(x2>2800)
{
x2=2800;
}
y2=y2-20;
if(y2<17200)
{
y2=17200;
}
output_high(PIN_B1);
delay_us(x2);
output_low(PIN_B1);
delay_us(y2);
}
//giro izquierda 4
if(res3<255&&res3>215)
{
x2=x2-20;
if(x2<800)
{
x2=800;
}
y2=y2+20;
if(y2>19200)
{
y2=19200;
}
output_high(PIN_B1);
delay_us(x2);
output_low(PIN_B1);
delay_us(y2);
}
}
}
MATERIALES
- Pic 16f877A 45 bs
- 4 ldr 12bs
- 2 servomotores 60bs
- 1 cristal de 4 Mhz 2bs
- 4 resistencia de 2.2k 2bs
- 2 capacitores de 15 pf 1bs
CONCLUSIONES
Se realizó un seguidor de luz con un microcontrolador pic 16f877a detectando la luz con 4
fotorresistores LDR posicionado en un brazo y siguiendo la luz satisfactoriamente.
UNIVERSIDAD MAYOR DE SAN SIMON
FACULTAD DE CIENCIAS Y TECNOLOGIA
COCHABAMBA - BOLIVIA