Autor Tema: Semáforo  (Leído 3213 veces)

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

Desconectado Mako22

  • PIC12
  • **
  • Mensajes: 77
Semáforo
« en: 25 de Febrero de 2004, 23:58:00 »
Quisiera hacer este pequeño semáforo, pero tengo una duda:
Para que usa la pata Data (13) y Clock (12), me funcionará sin conectarlas?
Me interesa que el circuito funcione solo sin conectarlo en ningún sitio.



este es el codigo en C:


#include<pic.h>
#include"delay.c"

__CONFIG(11001B);

#define Aspetta 255

void pausa(char ripeti);

main()
{   
   TRISB = 0;

   while(1)
   {
   PORTB = 0x18;   // veicolo verde - pedone rosso
   pausa(22);
   PORTB = 0x1c;   // giallo
   pausa(8);   
   PORTB = 0x22;   // veicolo rosso - pedone verde
   pausa(20);
   PORTB = 0x2;   // da qui" in poi lampeggio verde pedone
   pausa(1);
   PORTB = 0x22;
   pausa(1);
   PORTB = 0x2;
   pausa(1);
   PORTB = 0x22;
   pausa(1);
   PORTB = 0x2;
   pausa(1);
   PORTB = 0x22;
   pausa(1);
   PORTB = 0x2;
   pausa(1);
   PORTB = 0x22;
   pausa(1);
   }

}

void
pausa(char ripeti)  
{
   char x;   
   for(x=0;x<=ripeti;x++)
      DelayMs(Aspetta);
}


Saludos a todos

Desconectado pendexgabo

  • PIC16
  • ***
  • Mensajes: 222
    • www.SosaGabriel.com.ar
RE: Semáforo
« Respuesta #1 en: 26 de Febrero de 2004, 09:04:00 »
buenas, RB7 y RB6 en general estan reservadas para utilizar el ICSP (In Circuit Serial Program) (o algo asi), osea vos el micro lo programas de la forma habitual y si queres utilizas tambien en tu aplicacion las patillas RB7 y RB6, con la salvedad de que a la hora de modificar el firmware que tenes en el micro no necesitas sacarlo del socalo, ya que CLOCK y DATA ingresan por esas patillas.


espero haberte ayudado, por ahi no me esprese bien pero en todo caso otro dia me explayo un poco mejor

saludos
gabriel

Desconectado Mako22

  • PIC12
  • **
  • Mensajes: 77
RE: Semáforo
« Respuesta #2 en: 26 de Febrero de 2004, 09:49:00 »
Quieres decir que si lo monto tal como está sin conectar estas dos patillas, ya funcionará?

Saludos

Desconectado cucaracha

  • PIC24H
  • ******
  • Mensajes: 1409
    • CUCAWEB
RE: Semáforo
« Respuesta #3 en: 26 de Febrero de 2004, 13:04:00 »
Hola Mako. Como bien te indican esto es para el ICSP, osea, para programar en circuito, sin necesidad de quitar el micro e insertarlo en el programador.
Por tanto, si no lo vas a usar pues no lo necesitas para nada.
Puedes eliminar esas dos líneas. Si te fijas, en la de Vpp (voltaje de programación) tiene un diodo que es para que no derive tensión hacia la fuente de 5v cuando se está programando. Pues como no lo vas a usar lo puedes omitir.
Ahora, lo que yo haría es colocar un pulsador a masa donde pone Vpp, osea, un reset, que siempre viene bien.
Y las resistencias de los leds las cambiaría por unas de 330.
Saludos desde Huelva (ESPAÑA)

Desconectado pocher

  • Moderador Local
  • DsPIC30
  • *****
  • Mensajes: 2569
RE: Semáforo
« Respuesta #4 en: 26 de Febrero de 2004, 13:16:00 »
Pués sí debe funcionar. De acuerdo con pendexgabo esos dos pines son para grabar el PIC sin levantarlo de la aplicación.

El compilador debe ser el de HITECH ¿no?

A bote pronto la secuencia que realiza con las temporizaciones correspondientes es:

Peatones     Coches
     R                  V
     R                  V y A
     V                  R
     -                   R
     V                  R
     -                   R
     V                  R
     -                   R
     V                  R
     -                   R
     V                  R

... y vuelta a empezar

Un saludo

Desconectado Mako22

  • PIC12
  • **
  • Mensajes: 77
RE: Semáforo
« Respuesta #5 en: 27 de Febrero de 2004, 00:08:00 »
Bueno, el tema del compilador era el segundo paso que tenia que mirar, pero ya que mencionais uno miraré de usar ese.

Una cosa, ya que yo de C estoy bastante pegado??
podeis decirme un par de cosas sobre este programita?

La secuencia tendría que ser así:

Vehículos: verde --> ambar --> rojo y otra vez verde --> vuelve a empezar.

Mientras el de vehículos está verde el de peatones está rojo, cuando el de vehículos pasa a rojo, entonces el de peatones pasa a verde ( no antes ). Luego antes de que el de vehículos pase a verde, unos 10 segundos antes, el de peatones pasa a rojo.

La duración de fases, debería ser así:
vehículos --> fase roja unos 2 minutos
                     fase verde unos 2 minutos
                     fase ambar unos 20 segundos
¿ Que modificaciones tendría que hacer en el programa para que esto fuera así, pues no creo que el programa sea así?

Saludos a todos

Desconectado pocher

  • Moderador Local
  • DsPIC30
  • *****
  • Mensajes: 2569
RE: Semáforo
« Respuesta #6 en: 27 de Febrero de 2004, 00:29:00 »
Yo uso el compilador de CCS, en el foro es el que más se utiliza, te lo recomiendo. Pega un vistazo por el almacen, allí encontrarás el manual traducido.

Te había puesto la secuencia, pero ha salido por pantalla bastante mal. A ver si ahora sale mejor:

Peatones ---- Coches
---- R ------------- V-----

---- R ----------- V y A --

---- V --------------R ----
--sin luz ---------- R -----

estas dos últimas se repiten 3 veces más, y por último:

--- V ------------- R ------

Vuelta a empezar.

Los tiempos no los he mirado, puedes probarlo a ver que tal, y si no te gusta cambiamos los encendidos y apagados.

PD. Espero no haberme equivocado en la secuencia, la miré ayer rápidamente


Desconectado Mako22

  • PIC12
  • **
  • Mensajes: 77
RE: Semáforo
« Respuesta #7 en: 27 de Febrero de 2004, 00:43:00 »
OK ! gracias y que tengas un buen día.

Desconectado pocher

  • Moderador Local
  • DsPIC30
  • *****
  • Mensajes: 2569
RE: Semáforo
« Respuesta #8 en: 27 de Febrero de 2004, 02:28:00 »
El programa retocado para CCS es el siguiente:

#include<16F84.h>
#fuses XT, NOWDT, NOPUT, NOPROTECT
#use delay(clock=4000000)

#define Aspetta 255

void pausa(char ripeti);

main()
{
set_tris_b(0x00);

while(1)
{
output_B(0x18); // veicolo verde - pedone rosso
pausa(22);
output_B(0x1c); // giallo
pausa(8);
output_B(0x22); // veicolo rosso - pedone verde
pausa(20);
output_B(0x2); // da qui" in poi lampeggio verde pedone
pausa(1);
output_B(0x22);
pausa(1);
output_B(0x2);
pausa(1);
output_B(0x22);
pausa(1);
output_B(0x2);
pausa(1);
output_B(0x22);
pausa(1);
output_B(0x2);
pausa(1);
output_B(0x22);
pausa(1);
}

}

void
pausa(char ripeti)
{
char x;
for(x=0;x<=ripeti;x++)
delay_ms(Aspetta);
}

Funciona bien. Temporizaciones aproximadas con PROTEUS:

6.3s --> 2.3s --> 5.3s --> 0.5s --> 0.5s etc

Un saludo

Desconectado Mako22

  • PIC12
  • **
  • Mensajes: 77
RE: Semáforo
« Respuesta #9 en: 27 de Febrero de 2004, 05:59:00 »
Gracias por la rapidez en tu ayuda. Cunato me sea posible montarlo te dire como me ha funcionado.

Saludos

Desconectado Mako22

  • PIC12
  • **
  • Mensajes: 77
RE: Semáforo
« Respuesta #10 en: 01 de Marzo de 2004, 15:03:00 »
Pocher, muchas gracias por todo.

Funcionando a la Primera !!


Saludos


 

anything