Sei sulla pagina 1di 10

SEGUIDOR DE LUZ

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

Los PIC16F87X forman una subfamilia de microcontroladores PIC (Peripheral


Interface Controller) de gama media de 8 bits, fabricados por Microchip Technology Inc..

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:

Estos microcontroladores tienen la memoria de programa y la memoria de datos


separadas, lo que se conoce como arquitectura Harvard. Esta configuración interna permite
entre otras cosas acceder a las instrucciones de programa y a los datos simultáneamente
a través de buses diferentes, lo que mejora notablemente la velocidad de proceso de estos
dispositivos.
- LDR

Una fotorresistencia es un componente electrónico cuya resistencia disminuye con el


aumento de intensidad de luz incidente. Puede también ser llamado fotorresistor,
fotoconductor, célula fotoeléctrica o resistor dependiente de la luz, cuyas siglas, LDR, se
originan de su nombre en inglés light-dependent resistor. Su cuerpo está formado por una
célula fotorreceptora y dos patillas. En la siguiente imagen se muestra su símbolo
eléctrico.

Características:

Su funcionamiento se basa en el efecto fotoeléctrico. Un fotorresistor está hecho de


un semiconductor de alta resistencia como el sulfuro de cadmio, CdS. Si la luz que
incide en el dispositivo es de alta frecuencia, los fotones son absorbidos por las
elasticidades del semiconductor dando a los electrones la suficiente energía para
saltar la banda de conducción. El electrón libre que resulta, y su hueco asociado,
conducen la electricidad, de tal modo que disminuye la resistencia. Los valores típicos
varían entre 1 MΩ, o más, en la oscuridad y 100 Ω con luz brillante.

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

Un servomotor (también llamado servo) es un dispositivo similar a un motor de


corriente continua que tiene la capacidad de ubicarse en cualquier posición dentro de
su rango de operación, y mantenerse estable en dicha posición.1

Un servomotor es un motor eléctrico que puede ser controlado tanto en velocidad


como en posición.

Es posible modificar un servomotor para obtener un motor de corriente continua que,


si bien ya no tiene la capacidad de control del servo, conserva la fuerza, velocidad y
baja inercia que caracteriza a estos dispositivos.

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.

En otras palabras, un servomotor es un motor especial al que se ha añadido un


sistema de control (tarjeta electrónica), un potenciómetro y un conjunto de engranajes.
Con anterioridad los servomotores no permitían que el motor girara 360 grados, solo
aproximadamente 180; sin embargo, hoy en día existen servomotores en los que
puede ser controlada su posición y velocidad en los 360 grados. Los servomotores
son comúnmente usados en modelismo como aviones, barcos, helicópteros y trenes
para controlar de manera eficaz los sistemas motores y los de dirección.
Los servomotores hacen uso de la modulación por ancho de pulsos (PWM) para
controlar la dirección o posición de los motores de corriente continua. La mayoría trabaja
en la frecuencia de los 50 hertz, así las señales PWM tendrán un periodo de
veinte milisegundos. La electrónica dentro del servomotor responderá al ancho de la señal
modulada. Si los circuitos dentro del servomotor reciben una señal de entre 0,5 a 1,4
milisegundos, éste se moverá en sentido horario; entre 1,6 a 2 milisegundos moverá el
servomotor en sentido antihorario; 1,5 milisegundos representa un estado neutro para los
servomotores estándares. A continuación se exponen ejemplos de cada caso:

Señal de ancho de pulso modulado:

_ __ ____ ____ _
| | | | | | | | | |
| | | | | | | | | |
_________| |____| |___| |________| |_| |__________

Motor en sentido horario (ejemplo 0,7 ms):

_ _ _ _ _ _
| | | | | | | | | | | |
| | | | | | | | | | | |
_________| |____| |___| |________| |__| |__| |___________

Motor neutral (1,5ms):

___ ___ ___ ___ ___ ___


| | | | | | | | | | | |
| | | | | | | | | | | |
_________| |____| |___| |___| |__| |__| |_____
Motor en sentido antihorario (ejemplo 1,8ms):

______ ______ ______ ______ ______


| | | | | | | | | |
| | | | | | | | | |
_________| |____| |___| |___| |__|
|____

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

DISEÑO DE SISTEMAS DIGITALES II


BRAZO SEGUIDOR DE LUZ

Estudiantes: Joaquin Antonio Herbas Sejas


Alvaro Gerardo Junior Sivila Ramirez
Docente: Ing. José Urrutia Medrano
Carrera: Ingeniería Electrónica

COCHABAMBA - BOLIVIA

Potrebbero piacerti anche