Autor Tema: Letrero Led por barrido unico. Anuncio parabuses(parada de autobus)  (Leído 2448 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado gab163

  • PIC16
  • ***
  • Mensajes: 111
Hola a todos les quiero compartir un proyecto que realice hace tiempo con algunos leds y un pic, este consiste en una barra de 32 leds que al llegar en el bus, al voltear, o viendo de reojo mostraba un anuncio o imagen oculta, esto por el efecto que provoca la luz en la retina. para ser mas claro les dejo el vídeo de como quedo.


En adición genere un programa en visual basic.net el cual seleccionamos una imagen en dos colores y nos da como resultado el código necesario para mostrar la imagen en la tira de leds,



en el código de visual basic solo hay que cambiar la dirección donde se encuentran el proyecto donde el programa generara el código y solo habrá que compilarlo cargarlo y listo, para el circuito es un pic16f887 con el oscilador interno activado 8MHz  conectamos los leds en orden en cada puerto A B C y D para completar los 32 leds el orden es

Puerto C
Puerto D
Puerto B
Puerto A

Saludos, espero que a alguien le sirva les dejo el archivo Aqui

Desconectado MLO__

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4581
Re: Letrero Led por barrido unico. Anuncio parabuses(parada de autobus)
« Respuesta #1 en: 01 de Junio de 2013, 09:40:40 »
 ((:-))  ((:-))

Esta muy chulo, felicitaciones ... piensas compartir los esquemas y el codigo?

Saludos
El papel lo aguanta todo

Desconectado gab163

  • PIC16
  • ***
  • Mensajes: 111
Re: Letrero Led por barrido unico. Anuncio parabuses(parada de autobus)
« Respuesta #2 en: 01 de Junio de 2013, 15:30:00 »
El código lo genera automáticamente la aplicación de Visual basic el esquemático lo estaré subiendo al rato saludos, y subiré el código que genera la aplicación

Desconectado gab163

  • PIC16
  • ***
  • Mensajes: 111
Re: Letrero Led por barrido unico. Anuncio parabuses(parada de autobus)
« Respuesta #3 en: 19 de Junio de 2013, 01:57:14 »
Bueno tarde pero seguro, les dejo el diagrama los leds tienen que ir de arriba hacia abajo en el orden como esta en el diagrama. Se tiene que generar un proyecto para compilar en ccs la dirección de este se tiene que cambiar en la siguiente linea del código de visual basic
Código: [Seleccionar]
archivo = intru.CreateTextFile("C:\Users\Gabriel\Documents\Proyectos 2012\leds\software\firmware\imagen.c", True)
El código generado por la aplicación de visual basic es:

Código: [Seleccionar]
//*****************************************************************************
//*****************************************************************************
//*****************        Firmware barrido leds        ***********************
//*****************        Dispositivo PIC16F887        ***********************
//*****************              MKPRO                  ***********************
//*****************            Version 1.1              ***********************
//*****************************************************************************
//*****************************************************************************
#include <16f887.h>
#include <stdio.h>
#FUSES NOWDT,intrc_io,NOPUT,NOPROTECT//***********fuses requeridos*************
#use delay(clock=8000000)//******************clock con 8MHz*******************
#byte trisa=0x85
#byte trisb=0x86
#byte trisc=0x87
#byte trisd=0x88
#byte porta=0x05
#byte portb=0x06
#byte portc=0x07
#byte portd=0x08
#byte porte=0x09
#byte trise=0x89
void main(){
int puerto_a[80],puerto_b[80],puerto_c[80],puerto_d[80];
int x,a;
int lineas=20, perspectiva=20;
trisa=0;
trisb=0;
trisc=0;
trisd=0;
trise=0b00000101;
porta=0;
porte=0;
portb=0;
puerto_c[0]=0b00000000;
puerto_d[0]=0b00000000;
puerto_b[0]=0b00000000;
puerto_a[0]=0b00000000;
puerto_c[1]=0b00000000;
puerto_d[1]=0b00000000;
puerto_b[1]=0b00000000;
puerto_a[1]=0b00000000;
puerto_c[2]=0b00000000;
puerto_d[2]=0b00000000;
puerto_b[2]=0b00000110;
puerto_a[2]=0b00000000;
puerto_c[3]=0b10000000;
puerto_d[3]=0b00001111;
puerto_b[3]=0b01110000;
puerto_a[3]=0b00000000;
puerto_c[4]=0b11000000;
puerto_d[4]=0b00011111;
puerto_b[4]=0b10000000;
puerto_a[4]=0b00000001;
puerto_c[5]=0b11100000;
puerto_d[5]=0b00111111;
puerto_b[5]=0b00000000;
puerto_a[5]=0b00000011;
puerto_c[6]=0b11100000;
puerto_d[6]=0b00111111;
puerto_b[6]=0b00000000;
puerto_a[6]=0b00000110;
puerto_c[7]=0b11000000;
puerto_d[7]=0b00011111;
puerto_b[7]=0b00000000;
puerto_a[7]=0b00001100;
puerto_c[8]=0b00000000;
puerto_d[8]=0b00000000;
puerto_b[8]=0b00000000;
puerto_a[8]=0b00001100;
puerto_c[9]=0b00000000;
puerto_d[9]=0b00000000;
puerto_b[9]=0b00000000;
puerto_a[9]=0b00001100;
puerto_c[10]=0b00000000;
puerto_d[10]=0b00000000;
puerto_b[10]=0b00000000;
puerto_a[10]=0b00001100;
puerto_c[11]=0b10000000;
puerto_d[11]=0b00000111;
puerto_b[11]=0b00000000;
puerto_a[11]=0b00001100;
puerto_c[12]=0b11000000;
puerto_d[12]=0b00011111;
puerto_b[12]=0b00000000;
puerto_a[12]=0b00000100;
puerto_c[13]=0b11100000;
puerto_d[13]=0b00111111;
puerto_b[13]=0b00000000;
puerto_a[13]=0b00000110;
puerto_c[14]=0b11100000;
puerto_d[14]=0b00111111;
puerto_b[14]=0b00000000;
puerto_a[14]=0b00000011;
puerto_c[15]=0b11000000;
puerto_d[15]=0b00011111;
puerto_b[15]=0b10000000;
puerto_a[15]=0b00000001;
puerto_c[16]=0b00000000;
puerto_d[16]=0b00000000;
puerto_b[16]=0b01111000;
puerto_a[16]=0b00000000;
puerto_c[17]=0b00000000;
puerto_d[17]=0b00000000;
puerto_b[17]=0b00000000;
puerto_a[17]=0b00000000;
puerto_c[18]=0b00000000;
puerto_d[18]=0b00000000;
puerto_b[18]=0b00000000;
puerto_a[18]=0b00000000;
puerto_c[19]=0b00000000;
puerto_d[19]=0b00000000;
puerto_b[19]=0b00000000;
puerto_a[19]=0b00000000;
   while(1){
      for(x=1;x<lineas-1;x++){
            porta=puerto_a[x];
            portb=puerto_b[x];
            portd=puerto_d[x];
            portc=puerto_c[x];
            delay_us(625);
      }
porta=0;
portb=0;
portc=0;
portd=0;
delay_ms(2);}}
Espero le sirva a alguien.


 

anything