Mostrando entradas con la etiqueta CCS. Mostrar todas las entradas
Mostrando entradas con la etiqueta CCS. Mostrar todas las entradas

domingo, 16 de agosto de 2009

Comunicación Serial entre el PIC18F4520 y el PIC18F2520

Comunicación entre la USART del PIC18F4520 y la USART del PIC18F2520

Universal Synchronous Asynchronous Receiver Transmitter

• Síncrona o asíncrona
• Recibe y transmite
• Operación full duplex asíncrona
• Aplicación típica: comunicación con un PC mediante el protocolo RS232, para lo que necesita un cto para desplazamiento de niveles..

Para poder comunicar por el serial estos 2 pic´s debemos de tomar en cuenta 1 cosa muy importante los 2 dispositivos deben de estar configurados a la misma velocidad (baud)de trasmisión . Para el dispositivo que recibe dependiendo la aplicación que vaya a realizar se pueden o no habilitar las interrupciones por recepción de datos(INT_RDA),esta es muy versátil ya que el dispositivo puede estar realizando otra aplicación sin perder el tiempo de estar checando si le llego o no un dato nuevo, ya que dicha interrupción cuando llega un dato nuevo lo que hace es que salta o sale de la tarea que está realizando y atiende a la rutina de RDA para procesar el dato recibido.

En este ejemplo lo que sea hace es que el pic18f4520(TX)esta censando si hay un 1 o un 0 lógico en sus últimos pines del puerto B(RB7,RB6,RB5),cuando en alguno de ellos se detecte un 1 lógico el PIC transmite un carácter por el serial a una velocidad de 9600 bauds.
EL pic18f2520(RX) está en un ciclo infinito sin hacer nada (como si estuviera en modo sleep) cuando recibe un dato nuevo lo que hace es que sale del ciclo infinito y va a la rutina de RDA en donde procesa el dato y enciende el led correspondiente, cuando termina de encender y apagar el led regresa al ciclo infinito.

Los 2 pic´s fueron programados en el compilador de C(CCS),usando su oscilador interno a 4 MHZ y la velocidad de transmisión a 9600 baud. La aplicación de esto es muy grande ya que se puede realizar una red de nodos en los cuales cada uno este censando o realizando una acción, en redes con comunicación RS485 o en un sinfín de aplicaciones..

Simulacion:

El video se encuentra en la parte derecha abajo del video del glcd touch screen.


Video del funcionamiento:


El codigo,.hex y el archivo de proteus lo puede descargar en la seccion de CCS.

miércoles, 12 de agosto de 2009

L293 + PIC18F4520

Control de Dos Motores DC con un L293 + el Pic18f4520 + Serial
Introducción:

El chip L293A es un driver diseñado para proporcionar corriente a mecanismos impulsores bidireccionales de hasta 1 A. con voltajes entre 4,5 y 36 V. con una capacidad máxima de disipación de potencia de 5 W.

Cada canal de salida es un circuito controlador completo administrado por un Darlington capaz de proporcionar hasta 1 A.

Una característica importante, es que la alimentación de los circuitos del chip es diferente a la alimentación de los canales, lo que da estabilidad al circuito.
Puede funcionar con temperaturas entre 0 y 70 grados y tiene control interno de temperatura, lo que aconseja en caso de altos consumos un cierto nivel de refrigeración del circuito.

De los cuatro canales por pares están controlados por una señal añadida de habilitación, por lo que para controlar un canal de salida se deben enviar dos señales, una al canal y la otra a la habilitación del par de canales.
El L293 necesita una alimentación de 5 volts.

Con este chip se puede controlar todo tipo de dispositivos que necesiten en un momento determinado cierta tensión con un nivel de potencia, relés, lámparas,motores, dentro de un orden lo que sea.

Desarrollo:

Para llevar a cabo el manejo de este chip, se utilizo el pic18f4520 con su oscilador interno a una velocidad de 4 MHZ.
El programa funciona de la siguiente manera, primero se envía del pic18f4520 por la comunicación serial unos mensajes de inicio. Después el usuario debe de seleccionar números dentro del rango 1-5, en donde podremos controlar el motor en modo avance, retroceso o paro. Este programa se desarrollo en el compilador CCS .
Diagrama:


Simulación:

Puede descargar este código en nuestra sección de ccs.

sábado, 4 de abril de 2009

MANEJO DEL SERVO CON CCS

PIC 16F877 + SERVO

Para hacer funcionar un servo por primera vez y ver su recorrido me tuve que idear una simple rutina con la que pude experimentar sin problemas con distintas duraciones de pulsos y así poder comprobar el recorrido del servo standard HS-311 de HITEC.

Mediante un potenciometro introduciremos valores al pic por el adc que pondran el servo en posición de 0º a 180º con esto tendremos un circuito practico de comprobación del recorrido de cualquier servo.

La rutina se basa en un bucle continuo de leer el canal "0" del adc,el tren de impulsos saldrá por la patita RB0 del PIC y conectará directamente con la entrada de pulsos del servo.

La anchura del pulso viene definida por el retardo creado por software y que mantendrá a nivel lógico 1 la salida durante la duración de este. Una vez pase a nivel lógico 0 entrará en funcionamiento otra rutina de retardo con el tiempo suficiente para completar los 20 ms para obtener la frecuencia de 50 Hz necesaria, y se repetirá el proceso indefinidamente.


Este es un sencillo programa para probar el funcionamiento de un servomotor, en los proximos dias se actualizara el blogs con nuevos ejemplos en picbasic,ensamblador,ccs,etc.

El archivo completo se puede descargar en nuestra sección de descargas del blogs..