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

Temas similares

19/05/2013 #21


Hola hamito

Si lo que has presentado hasta ahora son los resultados de las simulaciones, no el resultado en un circuito real, podría decirte que es problema del simulador.

Estuve haciendo pruebas con diferentes simuladores y con el que funcionó bien. Prender solo los segmentos necesarios, fue con el LiveWire.

Ten en cuenta un detalle que se debería saber desde el principio: Qué tanta corriente requieren los LED’s que vas a utilizar en la realidad. Cuando armes el circuito ???

saludos
a sus ordenes
19/05/2013 #22


MrCarlos tengo un prototipo con displays a 5 voltios y me eh dado cuenta que ahí también persiste la falla, solo que como son pequeños se nota poco, al querer ampliar cada segmento miniatura por media docena de leds, ahi es cuando se ve la falla. Creo que mi problema esta en la programación, no se si me equivoque ah. saludos MrCarlos y Amigos de Foros de Electrónica.
19/05/2013 #23
Moderador general

Avatar de DOSMETROS

Agregale en la programación un "tiempo muerto" entre segmento y segmento , o entre dígito y dígito.

Saludos !
20/05/2013 #24


ayuda con mi contador
Hola Amigo D@rkbytes mire estoy haciendo un contador descendente con pulsador de programación, eh hecho una placa pequeña osea un prototipo para probar mi proyecto y funciona en un 95% normal, pero quiero agrandar el tamaño de los displays a 6 leds por segmento, y el problema aparece cuando multiplexea los dígitos, eh participado de Foros de Electrónica, por el cual me han ayudado a descartar que es mi programación, me dice Foros de Electrónica que le falta agregarle !!un tiempo muerto! entre dígito y dígito, pero no eh podido ubicar exactamente donde digitar el delayum para obtener resultados favorables, amigo D@rkbytes haber si me das una manito con mi programación, esta en Proton. Aquí te envío una imagen de como se ve mi trabajo y mi programación, haber donde hay que corregir, te agradezco muchísimo de antemano.
Archivos Adjuntos
Tipo de Archivo: rar protonprog.rar (25,9 KB (Kilobytes), 19 visitas)
20/05/2013 #25
Moderador

Avatar de D@rkbytes

Movido aquí:

Tienes que invertir el control en tu programa.
Antes te funcionaba porque seguramente controlabas los displays directamente.
Pero ahora estás usando transistores para controlar los segmentos, y tienes que invertir la polaridad.
Cambia eso en tu programa y al ULN2803 no le veo utilidad, ya que después usas otros transistores.

Suerte.
21/05/2013 #26


Hola amigos del Foro, bueno parece que aun me falta algunas clases de proton, creo lo que dice DOSMETROS que hay que ponerle un tiempo muerto entre dígito y dígito, pero no lo logro aun, bueno quería hacer recordar que eh hecho la experiencia de mi proyecto no solo en protoboard si no también en un prototipo (placa impresa diseñada en eagle) y ahi mi proyecto funciona bien con respecto a la cuenta , pero sí minuciosamente veo como el numero de las unidades se muestra por sobre el numero de las decenas, osea es como un duplicado de las unidades que se monta sobre el numero de las decenas, y al querer ampliar mis segmentos por grupos de leds con resistencias limitadoras, esa poca intensidad de corriente que se ve en los displays chicos (5v) en los disgitos grandes con leds se nota mucho mas.Dos metros haber si me das una manito con mi programa. al inicio del foro esta el esquema de mi proyecto en grande.
muchas Gracias....
21/05/2013 #27

Avatar de Gudino Roberto duberlin

Amigo, reduce la fcia. de barrido, a tal punto que no sea apreciable el parpadeo.
23/05/2013 #28


Hola Gudino Roberto ya reduci la Frecuencia a 5ms pero nada, aquí envió un vídeo de como se ve mi contador falloso. Quizas podra brindarme una ayudita con ese tiempo muerto que me dijo Dos metros aun no logro hacerlo. gracias. ah el video est volteado.

http://www.youtube.com/watch?v=nKA4r...ature=youtu.be
23/05/2013 #29

Avatar de Gudino Roberto duberlin

Amigo, bueno, una imagen vale mas que mil palabras, al parecer los transistores T1 y/o T2, no alcanzan el corte. Chequea mediante un osciloscopio, en los puertos del PIC, las señales que gobiernan las bases de dichos transistores.
02/06/2013 #31


hola amigos del foro
Hola amigos del Foro, bueno estuve alejado de mi pagina favorita de Foros de electronica, por motivos que estaba revisando mi proyecto, Y, eh llegado a una conclusion, de que no es mi circuiteria fisica,treansistores, diosods, nada porque lo eh probado con otra programacion que es un contador hecho en PBP y me funciona requetebien,por favor les pido de favor, revisen mi programación que le eh porteado anteriormente, algun tiempo me esta fallando, gracias por su colaoracion.
02/06/2013 #32

Avatar de DSP

Hola a todos.

Hamito: No se proton, pero lo que si se, es que los pic16 presentan una situación rara en el manejo de sus puertos. Quizas esto no sea el problema en este caso, ni siquiera he revisado detenidamente tu diagrama, solo lo comento para que lo tengas en cuenta:

En los PIC16, cuando escribes un bit del PORTx, el proceso de escritura implica una previa lectura al puerto completo y una operacion logica con el dato a escribir (a nivel byte) y una posterior escritura en el PORT.
En ocasiones existe un error en la lectura previa debido a capacitancias en los pines, (esto depende de tu circuito).

Por ejemplo: escribes un 1 en el PORTA.1 en el cual tienes una capacitancia considerable. Dicha capacitancia se opone al cambio de nivel de voltaje. Inmediatamente despues escribes un bit en el PORTA.2, y, como te lo habia dicho, el pic tiene que leer el puerto completo antes de escribir el nuevo bit, pero resulta que al leer detecta un 0 en el PORTA.1 debido a que el capacitor no se ha cargado aun!!, despues, al volver a escribir resulta que el PIC, a parte de modificar el bit PORTA.2 que requerias, también te modificó el PORTA.1!!

Esto tiene una solución por programación y es tener una variable (en RAM) en la que copies los datos antes de mandarlos a los puertos y cuando necesites escribir un bit lo hagas sobre esa variable y despues escribas el puerto completo, evitando asi operaciones a nivel bit con los puertos

Bueno quizas soy un poco impresizo en mi explicación, pero en las hojas de datos está esa información y no es muy facil de intuir que cuando escribes en un bit el PIC tambien te modifique otro que aparentemente no tiene nada que ver!!
02/06/2013 #33


hola DSP, quiero entender mas tu aporte si me envías un ejemplo sobre como crear la variable en RAM y luego enviar a los puertos, yo creo que ahí puede estar mi problema,un ejemplo por favor DSP. GRACIAS.
03/06/2013 #34

Avatar de DSP

Ok, mira, esto viene bien explicado en la documentación del MikroC. Y no tengo un ejemplo a la mano, pero es algo mas o menos asi (en lenguaje c):


//Variable global
unsigned char copiaPORTA=0;

main() {


initPIC(); //Una funcion x que incializa tus puertos y tu PIC en general;

PORTA=0; //Este tipo de sentencias en las que escribes el puerto completo si son seguras

//Ahora ponemos el bit 1 a 1
copiaPORTA |= 0b00000010;
PORTA = copiaPORTA;


//Ahora ponemos el bit 2 a 1
copiaPORTA |= 0b00000100;
PORTA = copiaPORTA;

//Bucle principal
while(1) {

}
}

//O podrias crear subrrutinas para harlo mas simple por ejemplo
void bitOnPORTA(unsigned char dato,unsigned char nBit)
{
copiaPORTA |= (1<<nBit);
PORTA = copiaPORTA;
}

Este código no ha sido probado, solo es una aproximación para que te des una idea como evitar las instrucciones a nivel bit con los puertos. Y la explicación que adjunto es parte de la documentacion del compilador mikroC.
Archivos Adjuntos
Tipo de Archivo: pdf RMW Problem.pdf (443,3 KB (Kilobytes), 8 visitas)
11/06/2013 #35


Hola amigos del Foro, la verdad reciban mis disculpas por mi falta, no pensé, estuve agotado pensando, modificando mi programacion.Mil disculpas Gracias...
12/06/2013 #36

Avatar de Scooter

A mi me huele a problema con el simulador. Como tiene que evaluar la ecuación de mil leds tarda mas. Si lo haces en la realidad irá bien.
Si quieres salir de dudas simulalo con un led por segmento y si va bien, es por eso.
12/06/2013 #37


hola scooter, ya lo simule en placa (física) y mi problema esta en la programación, por que a mi placa física lo eh probado con otro programa y me funciona de lo mejor,mira este es mi problema...hay una multiplexada fantasma:
http://www.youtube.com/watch?v=nKA4r...ature=youtu.be
mi programacion es esta:
Problemas con multiplexado de 2 displays grandes
Gracias. scooter
23/08/2013 #38


pude resolver mi problema amigos , estuvo en la programacion alfin me salio, gracias
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.