Haz una pregunta
  Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos
Foros Registrarse ¿Olvidaste tu contraseña?

Temas similares

23/03/2011 #1

Avatar de leandro0012

[AYUDA] Problema Pic 16f876a Led parpadeante
Hola, soy nuevo en el tema de los pics, les planteo mi problema: Quiero hacer un led parpadeante/intermitente con un pic. Para eso estoy utilizando un pic 16f876a, un led y un protoboard. El problema es que no lo logro hacer funcionar, uso como entrada de alimentacion una bateria de 3.7 volts, poniendo el positivo en el pin 20 (vdd) y el negativo en el pin 19(vss). Luego pongo un led que haga contacto con el negativo y la otra pata la pongo en el pin RB0 (pin 21). Cual es el resultado? el led queda siempre prendido.

El programa funciona perfectamente bien, debido a que lo simule en proteus y los resultados son los esperados.

Lenguaje: C. Programa: CCS.
Codigo:

Código:
#include <16f876a.h>                    //pic a utilizar   
#use delay (clock=4000000)         //Fosc=4Mhz
#use fast_io(b)

///PROGRAMA
void main()
{

   setup_adc_ports(NO_ANALOGS);
   setup_adc(ADC_OFF);
   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_ccp1(CCP_OFF);
   setup_comparator(NC_NC_NC_NC);
   setup_vref(FALSE);

   
   set_tris_b(0x00);    
   disable_interrupts(GLOBAL);  
   output_b(0x00);
   while(true){
   
   delay_ms(500);
   output_high(pin_b0);
   delay_ms(500);
   output_low(pin_b0);
  
   };
}
Por favor, necesitaría su ayuda, soy muy novato en esto y no tengo idea de cómo hacer que funcione.

Para aclarar más lo que quiero hacer y cómo es el estado del proyecto adjunte 2 fotos con el protoboard, el pic y el led, 1 diagrama del pic, 2 imagenes de simulacion en proteus.

Gracias.
23/03/2011 #2

Avatar de smd10

leandro0012 dijo: Ver Mensaje
Luego pongo un led que haga contacto con el negativo y la otra pata la pongo en el pin RB0 (pin 21).
Poniendo el LED directamente al pic y a masa sin ninguna resistencia, estas forzando a que el PIC tenga que entregar más intensidad que la que puede entregar. Y esto suele ocasionar a veces que el Pic no haga lo que debería hacer! Así que ponle una resistencia antes del LED, posiblemente te solucione el problema (calcula el valor de la resistencia para que caigan en ella los restantes 1,7v y sobre unos 20mA)
Saludos y bienvenido al mundo de los PICs!!
23/03/2011 #3


Por defecto el Watchdog esta habilitado en tu PIC. Por eso se resetea el programa una y otra vez y nunca llega a la parte donde apagas el PIC. En Proteus funciona porque el Watchdog en Proteus esta inhabilitado.
En CCS PICC el WDT se inhabilita así
#FUSES NOWDT
Pruébalo.
23/03/2011 #4

Avatar de leandro0012

Introduje la linea para desactivar el watchdog y ahora el led no prende. Para hacer pruebas removí la linea, y ahora tampoco prende, nose que podria haber pasado. Comprobe si andaba el led y anda perfectamente y el pic al parecer tambien, ya que con el programador puedo leer bien los datos. Tambien proble con el multímetro para que no se produsca un problema como dijo smd10, y no obtuve nada. que podria estar funcionando mal?
24/03/2011 #5

Avatar de snakewather

Hola bueno si ya hiciste toda la onfiguracion en el pic y esta bien entoces falta a la hora de programar el PIC si lo haces con el Winpic 800 checa los pasos y los Fuses que se te activan alomejor se te desactiva o desactivan demas solo deben de activarse los que configuraste

tipo de OScilador
codigo de proteccion CPD
WDTE el perro guardian
PWRTE retardo al encendido


ha otra cosa el led conectalo con una resistecia de 270 ohms lo mas seguro es que ya valio el primero que usaste por que lo conectaste directo, y deberias de conseguirte una fuente mejor de 5vcd.

aqui postee un tuto para el winpic y el ICprog checalo:

Curso tutorial del PIC16F877
24/03/2011 #6

Avatar de leandro0012

snakewather dijo: Ver Mensaje
Hola bueno si ya hiciste toda la onfiguracion en el pic y esta bien entoces falta a la hora de programar el PIC si lo haces con el Winpic 800 checa los pasos y los Fuses que se te activan alomejor se te desactiva o desactivan demas solo deben de activarse los que configuraste

tipo de OScilador
codigo de proteccion CPD
WDTE el perro guardian
PWRTE retardo al encendido


ha otra cosa el led conectalo con una resistecia de 270 ohms lo mas seguro es que ya valio el primero que usaste por que lo conectaste directo, y deberias de conseguirte una fuente mejor de 5vcd.

aqui postee un tuto para el winpic y el ICprog checalo:

Curso tutorial del PIC16F877

Primero que todo gracias. Puedo programarlo directamente con el pickit 2 ? así es como lo estoy haciendo y al parecer graba bien los datos.
Otra pregunta, puedo desarrollar mi proyecto solo con el pic , el led y la resistencia ? o es necesario un oscilador, etc?

Muchas gracias por todas las respuestas!

Tambien quiero aclarar que para poder programar tengo que desactivar la escritura en EEPROM porque sino me tira el siguiente error : "Programming failed at EE data address 0x0010" y lo uncio que hay para grabar en la EEPROM es todo FF (FF FF FF FF ...). Eso puede influir en el PIC ?
24/03/2011 #7

Avatar de snakewather

Si tienes que ponerle un oscilador en las patillas correspondientes junto con sus capacitores
recuerda todo lo que no uses de opciones como EEPROM, ADC, Watch dog Timer no lo actives.

Guiate con esta imagen para el oscilador este permite que se ejecuten los ciclos de reloj de las instrucciones sin este no pasa nada en el PIC.

puede ser de 4 6 8 16 o 20Mhz segun lo configures en tu programa. con uno de 4 esta bien para empezar
Imágenes Adjuntas
Tipo de Archivo: jpg sist min 16F84.jpg (30,3 KB (Kilobytes), 31 visitas)
24/03/2011 #8

Avatar de leandro0012

snakewather dijo: Ver Mensaje
Si tienes que ponerle un oscilador en las patillas correspondientes junto con sus capacitores
recuerda todo lo que no uses de opciones como EEPROM, ADC, Watch dog Timer no lo actives.

Guiate con esta imagen para el oscilador este permite que se ejecuten los ciclos de reloj de las instrucciones sin este no pasa nada en el PIC.

puede ser de 4 6 8 16 o 20Mhz segun lo configures en tu programa. con uno de 4 esta bien para empezar
entonces por eso no estaba funcionando el pic. El sabado compraré el oscilador junto con la resistencia para probar el proyecto. Despues voy a postear los resultados.

Gracias!
25/03/2011 #9

Avatar de leandro0012

Una pregunta más, que más tengo que poner aparte del oscilador? una resistencia en el MCLR? si es asi, como lo hago? Por favor necesitaria ayuda en eso, ya que soy nuevo en este tema y no entiendo nada.

PD: alguien me podria pasar por MP un msn para hablar esto? porque se esta haciendo un tema muy largo para algo simple.
27/03/2011 #10

Avatar de leandro0012

Compre el oscilador pero nose como conectarlo. Es de cristal de 12 Mhz. Probe poniendo un lado en el OSC1 (pin 9) y otro en el OSC2 (pin 10) y sigue sin andar. Inverti los lados ( osea el que estaba en el pin 10 paso al pin 9 y viceversa) y el led se queda apagado, no parpadea. Necesitaria alguna explicación para conectarlo y saber si hace falta algo más que el oscilador.

Gracias de antemano
27/03/2011 #11

Avatar de smd10

Lo conectaste tal como sale en la imagen que puso Snakewather?? Con los dos condensadores??
(Ah, y da igual la orientacion de como conectes el oscilador, no tiene polaridad)
27/03/2011 #12

Avatar de leandro0012

smd10 dijo: Ver Mensaje
Lo conectaste tal como sale en la imagen que puso Snakewather?? Con los dos condensadores??
(Ah, y da igual la orientacion de como conectes el oscilador, no tiene polaridad)
Necesito los dos condensadores? Segun tengo entendido los osciladores HS se conectan directamente. Reitero, soy nuevo en esto asi que probablemente este equivocado.
28/03/2011 #13

Avatar de snakewather

Haz lo que esta en la imagen que te puse tiene que llevar los condensadores sino no sirve
28/03/2011 #14

Avatar de leandro0012

No puede ser asi? :

Segun veo en este video está asi y funciona
28/03/2011 #15

Avatar de snakewather

Puede que en el video se este utilizando un resonador que ya trae integrados los capacitores
ese si se colocaria asi como tu dices pero si es un cristal entonces debe de llevar los capacitores.

tu tienes un cristal por eso no te funciona como resonador OK.
28/03/2011 #16

Avatar de leandro0012

Tema solucionado
Tema solucionado, compre un oscilador nuevo y lo conecte. Luego conecte la alimentacin de +5 v a MCLR con 1 Kohm.

Gracias a todos por aportar su ayuda!.
Respuesta
¿Tienes una mejor respuesta a este tema? ¿Quieres hacerle una pregunta a nuestra comunidad y sus expertos? Registrate

Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos

Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO ©2011, Crawlability, Inc.