TODOPIC

Microcontroladores PIC => - Niple - => Mensaje iniciado por: dagger en 06 de Mayo de 2022, 18:19:23

Título: ayuda a principíante
Publicado por: dagger en 06 de Mayo de 2022, 18:19:23
Hola a todos...soy un principiante en el tema...ya l comence varias veces y por algun motivo deje....bueno ahora estoy con mas tiempo y me dedique a realizar este simple proyect a travez del Niple 6.6 utilizando un micro PIC 16F877A y un display LCD de 20 x 4.
Bueno realice el proyecto..se compilo perfectamente..hice la simulacion en proteus y funciona PERFECTO...pero en la realidad..es otra  cosa... :5] :5]
enciende el display porque esta alimentado...varia su brillo...pero nada mas y los leds que monitorean la salida fisica del micro tampoco funcionan
Les adjunto archivo niple - proteus - livewire - y asm
Si alguno tiene tiempo para darme una desaznada..lo agradecere......abrazo
Título: Re:ayuda a principíante
Publicado por: Fer_TACA en 07 de Mayo de 2022, 07:39:29
Hola,

En primer lugar tengo que suponer que el montaje físico lo has realizado según el esquema que has adjuntado e independientemente del esquema de Proteus.
Suponiendo esto anterior debería de funcionar  a no ser que haya conexiones mal realizadas o si el montaje es en una protoboard que haya contactos defectuosos.

Importante: Todos los display disponen a demas de los pines de control y línea de datos de dos conexiones adicionales mas marcadas como A y K, que se corresponden con los pines 15 y 16. Estos pines no aparecen en la configuración del dispositivo de Niple.
Pero DEBEN se conectados Si o SI a la alimentación a través de una resistencia para limitar la corriente.

Te adjunto una imagen de una conexion que aunque es para un display de 16x2, sirve perfectamente para uno de 20x4 ya que el numero de pines es igual.

F.









Título: Re:ayuda a principíante
Publicado por: tsu_electronica en 07 de Mayo de 2022, 16:25:06
buenas, ya cheque tu programa y tu simulación y todo en orden, aquí unas preguntas: como estas conectando tu micro físicamente y si tienes fotos mucho mejor otra como y con que estas quemando tu pic y si lo lee y lo graba bien y si ya probaste otro pic si es que tienes, espero puedas aportar mas datos por que el programa y la simulación están bien entonces si puede ser desde el pic el quemador o un cable un puente o hasta la placa o el proto estamos a la espera de mas datos
Título: Re:ayuda a principíante
Publicado por: tsu_electronica en 07 de Mayo de 2022, 16:33:53
jeje bueno un gran detalle que acabo de ver en tu esquemático es la conexión del cristal tal vez y solo tal vez pueda ser eso, tu cristal tiene que ir primero a los pines del pic y después pones los capacitores y los conectas a tierra y en tu esquemático los tienes al revés primero tus capacitores y luego el cristal por esa razón puede que no te haga nada el pic pero como si alimentas todo pues por eso solo prende el lcd chécalo y nos comentas
Título: Re:ayuda a principíante
Publicado por: dagger en 07 de Mayo de 2022, 17:09:27
Gracias a todos por su tiempo...bueno empiezo copn las respuestas
a) si por supuesto la alimentacion en A y K estan puestas...tengo la retroalimentacion y la tension en VEE...puedo controlar el contraste
b) comprobe con el tester en continuidad que cada pata del LCD se corresponda con el PIC
c) el cristal puesto de diferentes maneras trabaja igual....lo comprobe con el osciloscopio
d) probe con otro pic comprado ayer...(a proposito para verificar el funcionamiento del anterior)

Independientemente de que se realice la presentacion en el display....NO TRABAJA EL PROGRAMA....o sea no puedo encender los leds al accionar el pulsador...(en realidad no uso pulsador..uso un sensor al tacto de arduino) y el pulso en la entrada del  PIC esta presente..
les adjunto una foto de la pantalla del grabador que es un clon del pickit 2
Título: Re:ayuda a principíante
Publicado por: DominusDRR en 07 de Mayo de 2022, 22:19:38
Gracias a todos por su tiempo...bueno empiezo copn las respuestas
a) si por supuesto la alimentacion en A y K estan puestas...tengo la retroalimentacion y la tension en VEE...puedo controlar el contraste
b) comprobe con el tester en continuidad que cada pata del LCD se corresponda con el PIC
c) el cristal puesto de diferentes maneras trabaja igual....lo comprobe con el osciloscopio
d) probe con otro pic comprado ayer...(a proposito para verificar el funcionamiento del anterior)

Independientemente de que se realice la presentacion en el display....NO TRABAJA EL PROGRAMA....o sea no puedo encender los leds al accionar el pulsador...(en realidad no uso pulsador..uso un sensor al tacto de arduino) y el pulso en la entrada del  PIC esta presente..
les adjunto una foto de la pantalla del grabador que es un clon del pickit 2

Antes de descargar un programa grande y complejo, podrías probar tu hardware con un simple proyecto que consista en encender y apagar un diodo led de manera periódica.

Una vez determinado que algo tan simple funciona, pasarías al programa que indicas.

Las causas que suelen suceder por las que no funciona un microcontrolador son las siguientes.

1. No hay un voltaje en los pines del microcontrolador. Algunos les gusta energizar al MCU desde el programador (por eso logran programarlo), verifica que exista 5V en los terminales VDD y VSS, .

2. El terminal MCLR debe estar en 5V. De igual manera, cuando lo programas, el programador proporciona el voltaje necesario en ese terminal y por eso la descarga del hexadecimal es satisfactoria, pero una vez que energizas tu sistema, no está presente 5V en ese terminal.

3. El cristal, no está oscilando. Aunque dices que lo has verificado con un osciloscopio, a veces un ruido te hace suponer que si está oscilando, verifica que es la frecuencia que estás viendo corresponde con la del cristal. También podrías utilizar el oscilador interno RC para descartar el problema del oscilador externo.

Título: Re:ayuda a principíante
Publicado por: tsu_electronica en 08 de Mayo de 2022, 01:49:28
amigo difiero un poco con respecto a la posición del cristal ya que si no lo colocas bien tu pic hace cosas extrañas, sin tiempos correctos y en el peor de los casos no hace nada, tal vez si usas proto y quitas los capacitores siga funcionando por la capacitancia en el proto pero en placa es diferente y tal vez te daría la razón que no importa como vaya conectado los capacitores si estuvieran en paralelo a los pines con el cristal pero en tu diagrama los tienes conectados en serie y eh hay la razón del mal funcionamiento.
Título: Re:ayuda a principíante
Publicado por: Fer_TACA en 08 de Mayo de 2022, 07:36:03
Creo que de la forma en que está realizada la conexion de la parte del oscilador, no te va a funcionar nunca.
Te adjunto imagen de como debes de realizar la conexion de la parte del oscilador.
Como puedes ver uno de los extremos de cada uno de los condensadores debe ir a 0V, los extremos cada uno a una conexion del oscilador y de allí a los pines del micro.

F.
Título: Re:ayuda a principíante
Publicado por: DominusDRR en 08 de Mayo de 2022, 10:07:33
amigo difiero un poco con respecto a la posición del cristal ya que si no lo colocas bien tu pic hace cosas extrañas, sin tiempos correctos y en el peor de los casos no hace nada, tal vez si usas proto y quitas los capacitores siga funcionando por la capacitancia en el proto pero en placa es diferente y tal vez te daría la razón que no importa como vaya conectado los capacitores si estuvieran en paralelo a los pines con el cristal pero en tu diagrama los tienes conectados en serie y eh hay la razón del mal funcionamiento.

No sabía que un esquemático estaba adjunto. Y en verdad, ese oscilador nunca va a funcionar. Lo que menciona que el cristal "trabaja", seguramente es ruido que capta el osciloscopio, generalmente de 60Hz de la empresa eléctrica.
Título: Re:ayuda a principíante
Publicado por: dagger en 08 de Mayo de 2022, 23:37:26
Hola...gracias por responder...si si ya corregi la forma de poner el cristal.....pero igualmente no funciona.....ya lo habia hecho anteriormente.
He modificado el circuito de 3 a 4 salidas... porque al fin y al cabo lo que hace el prgrama es seleccionar 4 señales de audio diferentes.....con el diseño anterior utilizaba un CD4051..por eso las salidas bcd pero ahora lo reemplace por un CD4066...asi que tengo 4 salidas.
Compile y grabe al igual que antes....modifique el diseño del proteus y funciono perfactamente....(por supuesto ..solo en proteus..) el protoboard es otra cosa. ((:-)) ((:-)) ((:-))
Ahora estoy armando la plaqueta real..con un zocalo para el PIC...veremos que pasa con todo soldado
Por otro lado...les subire los nuevos archivos y veran que hay un agregado...y realmente espero que me puedan ayudar...hay una entrada A/D que toma una muestra de la señal de audio resultante para que en la ultima linea de la pantalla dibuje un vumetro.
Esa muestra seguramente llegara a 1 voltio asi que supongo habra que hacer un escalado....1 volt=255
Bueno si me pueden ayudar les agradecere
Gracias por su tiempo
Título: Re:ayuda a principíante
Publicado por: tsu_electronica en 09 de Mayo de 2022, 00:19:36
perfecto amigo estaremos atentos a tus nuevas mejoras y también al resultado que tengas en tu placa, personalmente tratare de adquirir el pic para checar en físico tu programa y pasarte los resultados.
Título: Re:ayuda a principíante
Publicado por: dagger en 09 de Mayo de 2022, 00:20:55
aqui estan los archivos
Título: Re:ayuda a principíante
Publicado por: tsu_electronica en 09 de Mayo de 2022, 00:29:03
acabo de checar tus archivos y todo esta bien solo esperamos tus fotos de la placa o si tienes de tu proto.
Título: Re:ayuda a principíante
Publicado por: Fer_TACA en 09 de Mayo de 2022, 09:49:48
Hola...gracias por responder...si si ya corregi la forma de poner el cristal.....pero igualmente no funciona.....ya lo habia hecho anteriormente.
He modificado el circuito de 3 a 4 salidas... porque al fin y al cabo lo que hace el prgrama es seleccionar 4 señales de audio diferentes.....con el diseño anterior utilizaba un CD4051..por eso las salidas bcd pero ahora lo reemplace por un CD4066...asi que tengo 4 salidas.
Compile y grabe al igual que antes....modifique el diseño del proteus y funciono perfactamente....(por supuesto ..solo en proteus..) el protoboard es otra cosa. ((:-)) ((:-)) ((:-))
Ahora estoy armando la plaqueta real..con un zocalo para el PIC...veremos que pasa con todo soldado
Por otro lado...les subire los nuevos archivos y veran que hay un agregado...y realmente espero que me puedan ayudar...hay una entrada A/D que toma una muestra de la señal de audio resultante para que en la ultima linea de la pantalla dibuje un vumetro.
Esa muestra seguramente llegara a 1 voltio asi que supongo habra que hacer un escalado....1 volt=255
Bueno si me pueden ayudar les agradecere
Gracias por su tiempo

Al final, realmente no has dicho donde estaba localizado el problema. Por lo que indicas creo que estabas trabajando sobre una protoboard y si nos realizado nada mas que el cambio de añadir una salida y ahora funciona, cabe suponer que el problema seria por una mala conexion.

Sobre los nuevos ficheros adjuntados:
1º te aconsejaria que la entrada analogica, al ser una sola, la introdujeses por el canal RA0, es decir RA0 pin 2. Esto supondría el cambiar la entrada del botón al pin 33 (RB0).
2º La selección de los menús o presentación de los display yo la realizaría usando las interrupciones bien por flanco ascendente o descendente por el Pin RB0. Tu programa seria mas optimizado.

Si me da tiempo te montaré y adjuntaré  un ejemplo usando la interrupción y la entrada analogica.

F.
Título: Re:ayuda a principíante
Publicado por: dagger en 09 de Mayo de 2022, 10:24:44
Hola Fer-Taca  buen dia....NOO  aun no termine de montar en la plaqueta..asi que NO SE si funciona....en el post anterior me referia que funcionaba en el PROTEUS....pero no en el proto..
Bueno hoy terminare de montar todo y les mando resultados y fotos
Gracias :D :D
Título: Re:ayuda a principíante
Publicado por: Fer_TACA en 09 de Mayo de 2022, 10:33:01
ramiro,

te dejo el fichero de muestra funcionando con la interrupción y con la lectura del canal analogico.
He supuesto que el máximo que vas a leer es 1 voltio.
Para probarlo con simulación he cambiado tu esquema un poco. Solo el esquemático de  Proteus.
Cualquier cosa me dices.

F.
Título: Re:ayuda a principíante
Publicado por: dagger en 10 de Mayo de 2022, 00:47:26
Hola Fer...bueno se me quemaron los papeles... :shock: :shock: :shock: hice los cambios que me sugeristes...boton en RB0 y entrada vumetro a RA0..compile todo bien...cargue el programa en proteus..pero si bien escribe la pantalla de bienvenida..el resto no trabaja
Revise y esta todo bien....la declaracion de bits..el programa....y no funciona.
Supongo algo esta faltando...o habra que eliminarlo y hacerlo desde cero..??
Título: Re:ayuda a principíante
Publicado por: Fer_TACA en 10 de Mayo de 2022, 01:38:40
Luego lo miro, pero simular simula bien en el fichero que te pase.
¿Creaste los nuevos registros?
F.
Título: Re:ayuda a principíante
Publicado por: Fer_TACA en 10 de Mayo de 2022, 05:36:56
Descargado y comprobado.
En los ficheros que has adjuntado has cambiado las entradas a los pines que te dije.
sigues utilizando temporizaciones para detectar las acciones sobre el pulsador. Por eso no va bien el programa. Si realizas repetidas pulsaciones de forma rápida veras que si te cambian las pantallas.

Por este motivo para evitar esos problemas te aconseje que usaras las interrupciones en RB0. Asi evitas también el uso de los delay y te funcciona todo de maravilla.

En el fichero que te adjunte en el post anterior tienes el ejemplo completo de Proteus y el fichero de Niple. En proteus puedes ver que en la fila 4 del LCd ve el valor de la conversión A/D. En valor numérico. Luego si quieres realizar un vúmetro debes de cambiar eso.

¡¡¡¡Revisa el ejemplo que te puse!!!! :mrgreen: :mrgreen: :mrgreen: :mrgreen:

F.
Título: Re:ayuda a principíante
Publicado por: Fer_TACA en 10 de Mayo de 2022, 11:18:21
Te adjunto un nuevo fichero.
Ahora en vez de ver los valores numéricos de la conversion analogica, lo veras como una barra que crece/decrece segun el valor analogico de la entrada. Máximo de 1Voltios.

¡¡¡¡ Es solo un ejemplo., para que veas como se realiza !!!!!!

Habría que optimizarlo. Además al compilar me ocupaba mucha memoria y he tenido que cambiar el modelo del pic por uno de 18F252.
este tiene menos pines que el que tu utilizabas. Pasa de 40 a 28 pines.
El esquema de proteus esta tambien actualizado.

F.
Título: Re:ayuda a principíante
Publicado por: dagger en 10 de Mayo de 2022, 22:46:27
adjunto las primeras fotos del armado del prototipo
el frente - el display presentado y en el cual coloque pines largos para montar la placa proto - la placa proto mopntada  - los 3 reproductores de MP3 - el CD4066 para conmutar.
Aun no estan montados en el frente los sensores de proximidad para el cambio de canales (boton) y los sensores para subir y bajar el volumen que actuan sobre IC DS1669 que lo uso como potenciometro
Título: Re:ayuda a principíante
Publicado por: Fer_TACA en 11 de Mayo de 2022, 13:55:43
Lo que sigo sin entender es como piensas realizar lo que dijiste del "vumetro" dependiendo de la tension analogica.
Por lo demás se ve muy prolijo el montaje.

F.
Título: Re:ayuda a principíante
Publicado por: dagger en 11 de Mayo de 2022, 14:34:17
bueno en un detalle de proteus que mande antes tomo una muestra de la señal de audio resultante que sale del CD4066, la rectific con un !N4148..esta el cap de 10 uf para estabilizar un poco y lo que hago es medir la tension resultante....a mas tension mas barras se iluminan.
La tension de 1 volt...en realidad creo seria de 500mv se corresponde a una cuenta de 255 que equivale a las 16 barras de la linea y asi seguiria la proporcion de menos tension..menos barras
Creo que deberia ser una cosa pr el estilo
 :shock: :shock: :shock:
Título: Re:ayuda a principíante
Publicado por: Fer_TACA en 11 de Mayo de 2022, 14:44:20
Ya pero no me imagino como quieres visualizar las barras. Ese es el probema.
Por cierto, no dijiste que el display era de 20x4?entonces porque representar solo 16 y no 24.

F.
Título: Re:ayuda a principíante
Publicado por: dagger en 11 de Mayo de 2022, 21:44:04
cierto 20..no 16....Queria la ultima linea del display se encienda como un vumetro..aumentando de izquierda a derecha al son de la musica...com un vumetro de leds..o sea que la ultima linea tiene un valor variable
Título: Re:ayuda a principíante
Publicado por: dagger en 11 de Mayo de 2022, 21:53:21
aqui encontre este enlace . yo utilizaria solo un canal...
pagina de internet
http://electgpl.blogspot.com/2015/10/vumetro-con-lcd.html
Título: Re:ayuda a principíante
Publicado por: Fer_TACA en 12 de Mayo de 2022, 01:37:27
Pues entonces revisa el último fichero que adjunte para ver si es así como quieres el vumetro.

El problema con el Pic 16F887A es que además del vumetro quieres que se siga viendo los mensajes en el LCD y eso requiere más memoria para hacer la implementación del la visualización del vumetro y la memoria se queda escasa.

Por eso lo pasé a otro con las capacidad de memoria y como no necesitas tantos pines, utilizé uno de 28. Pero como ya tiendes la placa con uno de 40 puedes usar el 18F4550, por ejemplo. Compila el programa adjuntado con el nuevo micro y listo.

F.
Título: Re:ayuda a principíante
Publicado por: dagger en 13 de Mayo de 2022, 17:10:35
Hola Fer..hoy compre los 18F252....voy a grabarlo y montarlo.
Si el circuito en total funciona bien voy a diseñar un impreso y lo monto como corresponde.
Título: Re:ayuda a principíante
Publicado por: Fer_TACA en 13 de Mayo de 2022, 17:18:18
A mi en la simulación me funciona todo OK, incluido el vumetro funcionando de izquierda a derecha en la fila 4.

Lo único que la relación de la visualización está realizada para 1V
 Si necesitas otra rango máximo de entrada, solo tiene que cambiar dentro del bloque de escalado el valor inicial, el final que está puesto lo puedes dejar en 100 cómo está y de este modo no tienes que cambiar los compradores.
Cualquier duda o aclaración me dices.

F.
Título: Re:ayuda a principíante
Publicado por: dagger en 21 de Mayo de 2022, 18:25:25
Hola..estoy armando el equipo...tuve un inconveniente con los reproductores...no comienzan solos y menos repiten la lista...pero hay una forma para  que lo haga..por lo cual debera hacer una pequeña modificacion al programa...tengo que agregar una salida de estado alto por unos 500 ms unicamente al encender el equipo.
Esta señal mediante un transistor mandara a masa un terminal de los reproductores que hace el play y repeticion de lista en bucle continuo...se los mando a todos al mismo tiempo.
hice un par de capturas de imagen para indicar si es el lugar correcto dentro del programa para hacer esto...
Título: Re:ayuda a principíante
Publicado por: Fer_TACA en 21 de Mayo de 2022, 18:36:06
Yo no lo pondría en ninguno de lo 2 casos que indicas, si quieres que se ejecute una sola vez.
Lo haría antes de la etiqueta de "comienzo rutina"
De esa forma se ejecutaría una sola vez al conectar el equipo.
Al estar después de la etiqueta se repite una vez cada ciclo.
Si lo colocas después de la etiqueta se va a estar repitiendo de forma continua.
Te adjunto como sería.

F.
Título: Re:ayuda a principíante
Publicado por: dagger en 21 de Mayo de 2022, 18:50:17
si si ...tienes razon ahora lo modifico

gracias por responder