Autor Tema: Cómo culminar mi primer proyecto con microcontroladores  (Leído 3691 veces)

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

Desconectado fran321

  • PIC10
  • *
  • Mensajes: 5
Cómo culminar mi primer proyecto con microcontroladores
« en: 27 de Diciembre de 2012, 15:57:03 »
Hola a todos. Me ocurre algo que roza lo kafkiano. Como todos sabeis cuando os iniciasteis en microcontroladores, el primer programa cuesta una barbaridad porque, por muy simple que sea, requiere montar todo el chiringuito y que todo funcione bien. Pues bien, ahí estoy yo ahora. Lo tengo todo y funciona cada cosa bien, pero no consigo estrenar mi primer programa con un PIC16F628A sobre la placa board. Lo he simulado con Proteus y me ha costado un montón por aquello de tener que aprender a programar y cómo funciona Proteus, pero funciona perfectamente. Se trata del famoso "coche fantástico". He quemado el PIC, he montado los 8 leds sobre el puerto B y observo que no se mueve nada. Compruebo tensión, resistencias, polaridad, colocación de los leds (patilla larga mirando para el micro y corta a masa) y reviso cien veces el programa (en C), que es éste y está sacado del foro de todopic:

Código: [Seleccionar]
#include <16F628A.h>
#fuses INTRC_IO,NOWDT,NOPROTECT,NOMCLR,NOLVP,PUT,BROWNOUT,NOCPD
#use delay (clock=4000000)
#use standard_io(B)
#byte TRISB=0x85

void main()
{
   int led_on=0b00000001;
   int duracion=50;
   TRISB=0x00;

   do{
     
      do{
         output_b(led_on);
         rotate_left(&led_on,1);
         delay_ms(duracion);
         }while(bit_test(led_on,7)==0);
     
      do{
        output_b(led_on);
         rotate_right(&led_on,1);
         delay_ms(duracion);
         }while(bit_test(led_on,0)==0);
         
      }while(TRUE);
}


Pues bien, probando, descubro que al quitar un led, sea cual sea, y darle la vuelta (cambio la polaridad de ese led), entonces ese led se mantiene encendido y los demás empiezan a hacer el ciclo correctamente. Cuando le toca el turno a ese led concreto, entonces se apaga, es decir, que va al revés. Pero lo curioso es que funciona, aunque no encuentro la explicación por ningún lado. Debe ser algo sencillo que alguien que empieza no es capaz de ver, pero tal vez alguien detecta cual es el problema a simple vista.

Gracias de antemano por vuestra ayuda. Saludos.

Desconectado MGLSOFT

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 7918
Re: Cómo culminar mi primer proyecto con microcontroladores
« Respuesta #1 en: 27 de Diciembre de 2012, 16:42:57 »
Puedes poner tu esquemático??
Para ver como tienes todo conectado??
Todos los dias aprendo algo nuevo, el ultimo día de mi vida aprenderé a morir....
Mi Abuelo.

Desconectado ppyote

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 929
Re: Cómo culminar mi primer proyecto con microcontroladores
« Respuesta #2 en: 27 de Diciembre de 2012, 16:58:12 »
#byte TRISB=0x85 esta mal.... la direccion es 0x86
PPyote... siempre estareis en mi corazon.... Te quiero Hermano...

Desconectado fran321

  • PIC10
  • *
  • Mensajes: 5
Re: Cómo culminar mi primer proyecto con microcontroladores
« Respuesta #3 en: 27 de Diciembre de 2012, 17:16:33 »
Os adjunto el esquema de Proteus. ppyote, he cambiado la dirección de TRISB, pero observo que en tanto en Proteus como en la placa board, todo sigue igual, es decir, en Proteus va perfectamente y en la placa no va, a menos que le de la vuelta a algún led.

Gracias por vuestras respuestas.

Desconectado MGLSOFT

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 7918
Re: Cómo culminar mi primer proyecto con microcontroladores
« Respuesta #4 en: 27 de Diciembre de 2012, 17:51:52 »
Prueba aumentar tu resistencia de cada led, creo que te estas quedando sin capacidad de corriente para manejarlos a todos...
Todos los dias aprendo algo nuevo, el ultimo día de mi vida aprenderé a morir....
Mi Abuelo.

Desconectado fran321

  • PIC10
  • *
  • Mensajes: 5
Re: Cómo culminar mi primer proyecto con microcontroladores
« Respuesta #5 en: 27 de Diciembre de 2012, 18:38:40 »
Pero ¿cómo es posible que al darle la vuelta a un led, ese concreto se encienda todo el rato, cuando la corriente se supone que va de ánodo a cátodo, es decir, de la salida del micro a masa? Además, justo al hacer esto, los demás leds se ponen a funcionar correctamente... Además las corrientes son pequeñísimas al tratarse de leds... Es inexplicable....

Desconectado ppyote

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 929
Re: Cómo culminar mi primer proyecto con microcontroladores
« Respuesta #6 en: 27 de Diciembre de 2012, 20:15:41 »
Pero ¿cómo es posible que al darle la vuelta a un led, ese concreto se encienda todo el rato, cuando la corriente se supone que va de ánodo a cátodo, es decir, de la salida del micro a masa? Además, justo al hacer esto, los demás leds se ponen a funcionar correctamente... Además las corrientes son pequeñísimas al tratarse de leds... Es inexplicable....

puede ser sí polarizas la gnd con -5v y vss con 0v
PPyote... siempre estareis en mi corazon.... Te quiero Hermano...

Desconectado Darkman_A

  • PIC18
  • ****
  • Mensajes: 288
Re: Cómo culminar mi primer proyecto con microcontroladores
« Respuesta #7 en: 27 de Diciembre de 2012, 20:23:54 »
Hola fran321.
Podrias poner una foto con la mejor definicion que puedas de tu montaje.  Es para ver las conecciones.
Saludos.

Desconectado fran321

  • PIC10
  • *
  • Mensajes: 5
Re: Cómo culminar mi primer proyecto con microcontroladores
« Respuesta #8 en: 28 de Diciembre de 2012, 07:53:35 »
Por fin he encontrado lo que pasaba.

La placa board tiene en los bordes superior e inferior, dos filas de contactos cada lado. Yo creia que cada fila conectaba de izquierda a derecha, pero cada una conecta hasta la mitad de la placa, con lo que en realidad hay 4 bandas arriba y otras 4 abajo. Yo tenía conectado el micro a alimentación y a masa pero las salidas del puerto B no iban a masa, sino a una banda desconectada.

Ahora funciona todo y ya puedo continuar. Aun así, sigo sin entender cómo es posible que funcionara al cambiar de posición uno de los led...

Gracias a todos por vuestra ayuda.

Desconectado Darkman_A

  • PIC18
  • ****
  • Mensajes: 288
Re: Cómo culminar mi primer proyecto con microcontroladores
« Respuesta #9 en: 28 de Diciembre de 2012, 10:14:22 »
Por fin he encontrado lo que pasaba.

La placa board tiene en los bordes superior e inferior, dos filas de contactos cada lado. Yo creia que cada fila conectaba de izquierda a derecha, pero cada una conecta hasta la mitad de la placa, con lo que en realidad hay 4 bandas arriba y otras 4 abajo. Yo tenía conectado el micro a alimentación y a masa pero las salidas del puerto B no iban a masa, sino a una banda desconectada.

Ahora funciona todo y ya puedo continuar. Aun así, sigo sin entender cómo es posible que funcionara al cambiar de posición uno de los led...

Gracias a todos por vuestra ayuda.

Hola fran321.
Era que a travez del led invertido el resto de los leds iban a masa. Te quedaba como si tuvieses dos leds en serie. La salida del micro que tenia que encender estaba a Vcc y la del led invertido a GND (porque se suponia que estaba apagado) entonces circulaba corriente entre estas dos patas y travez de los diodos por donde cerraba el circuito. Cuando le tocaba al led invertido, como estaba invertido (diodo en inversa) no circulaba corriente y por eso no prendia.
Ahora se entiende porque funcionaba asi. Me alegro que hayas encontrado la solucion.
Saludos.
« Última modificación: 28 de Diciembre de 2012, 10:17:24 por Darkman_A »

Desconectado fran321

  • PIC10
  • *
  • Mensajes: 5
Re: Cómo culminar mi primer proyecto con microcontroladores
« Respuesta #10 en: 28 de Diciembre de 2012, 12:30:46 »
Exacto. Es eso lo que pasaba, se establecía tensión entre una salida cualquiera (+5V) y la salida cuyo led estaba invertida (0V) y por tanto la corriente atravesaba dos resistencias y dos diodos.

Muchas gracias Darkman_A por haberlo visto tan claro y tan rápido.

Feliz Navidad allí en Argentina (aunque esteis a 40ºC)

Desconectado Darkman_A

  • PIC18
  • ****
  • Mensajes: 288
Re: Cómo culminar mi primer proyecto con microcontroladores
« Respuesta #11 en: 28 de Diciembre de 2012, 15:06:15 »
Exacto. Es eso lo que pasaba, se establecía tensión entre una salida cualquiera (+5V) y la salida cuyo led estaba invertida (0V) y por tanto la corriente atravesaba dos resistencias y dos diodos.

Muchas gracias Darkman_A por haberlo visto tan claro y tan rápido.

Feliz Navidad allí en Argentina (aunque esteis a 40ºC)

Gracias fran321, pero los méritos son tuyos que encontraste la falla. Lo mio fue explicarlo, como se dice acá, "con el diario del lunes" (teniendo la solución).
Feliz Navidad para vos también, y que comiences bien el año.

Desconectado tannke

  • PIC16
  • ***
  • Mensajes: 176
Re: Cómo culminar mi primer proyecto con microcontroladores
« Respuesta #12 en: 30 de Diciembre de 2012, 18:13:27 »
Jejeje, puñeteras boards, tengo 3 pacas, una grande y dos pequeñas, las dos pequeñas aparentemente son iguales, las lineas horizontales (alimentacion) están divididas en 8 segmentos de 5 agujeros cada linea. En una boart está toda la linea unida (8 segmentos) y en la otra esta dividida por la mitad (4 y 4). La primera vez que la usé tambien mi volví loco.

un saludo


 

anything