Mostrar voltaje sin usar ADC

Voy a usar un lm2596 y lo enciendo y apago del on off
Acá otro como vos; PWM LM2596 buck converter?
No se qué tan rapido es ese pin, y mucho menos qué tan rapido reacciona el LM. Ademas ese pin no es para esa finalidad.

Te conviene, como dice al final, usar el PWM del microcontrolador, y reemplazar el potenciometro, pasando a analógico al PWM.
O usar algun potenciometro digital y controlar via I2C o SPI.
Luego con un ADC del mismo microcontrolador realizas la lectura del voltaje.
todos quieren que use el adc
Porque no te aclaras.
El ADC (Analog Digital Converter, Conversor Analógico Digital), sirve para obtener una señal analógica (tu voltaje), y convertirlo en digital (lo que entiende el microcontrolador).
Lo que necesitas es el contrario para controlar, osea DAC (Digital Analog Converter, Conversor Digital Analógico), que convierte datos digitales (desde tu microcontrolador), a analógicos (voltaje de salida variable).
Lee cómo usar el PWM como DAC. Y si quieres, en vez de usar el módulo PWM (que seria lo lógico y conveniente), puedes crear mediante código tu propio PWM (problemas de retardo, desincronizacion, etc)
 
Última edición:
¿Para aprender ? buenisimo, nunca me quedo claro ESO.
Entendía que era para un trabajo o un berretin personal.
Como sea, si se puede con una PIC, pero no lo recomiendo en lenguaje "C" , si en assembler del fabricante.
Primero hay que escribir la rutina interrupcion de refresco del display para que no parpadee nunca y refreque a 50Hrtz
Ademas hay que usar un watch dog para que el ciclo no varie y funcione por RAFAGAS.
En el funcionamiento por RAFAGA, se hace un ciclo completo con todas las tareas necesarias y se descanza en un bucle INFINITO al final del ciclo.
De ese bucle infinito lo saca la INTERRUPCION , en el bucle se leen los teclados pulsados que ocurran o de algun otro evento o variable a controlar.
La rutina de teclado se programa como sigue :
1-Se espera un cambio de estado de tecla de 0 a 1.
2-Se entra en un bucle de espera a que retorne de 1 a 0 para dar por concluida la pulsación.
(No hacerlo de esta manera induce a errores y reniegos por parte del usuario)
3- recien se procede a cumplir con la orden.
Un ser humano tarda como mínimo 10 milsegundos en pulsar una tecla y liberarla.Es importante para programar teclados y no llorar.
El programa debe HACER todo A LA VEZ sin parar. Lo dificil es coordinar todo eso adecuadamente. Haga un plan no escriba a tontas y a locas.

Algo a tener en cuenta en la PICS es NO hacer abuso de la EPPROM interna. Su vida útil es limitada. Sirve para datos a largo plazo calibración anual, no para grabar datos a cada rato porque termina rompiendose.

Le adjunto en este .rar un sistema operativo que hice por 2004, que simula un PLC , funciona y hace bastante de lo que le escribo en este topico. No es el definitivo pero le va a dar una idea de como se hace ciertas cosas. (No es fácil le adelanto)
 

Adjuntos

  • sopt0pl2.rar
    4.9 KB · Visitas: 10
Última edición:
Si fuera un trabajo ya me hubieran echado como 2 años que estoy con esto, busque programadores en Argentina para que me orienten pero.... en fin sin palabras ahora estoy haciendo un curso por Internet para mejorar y volví con esta idea, se que va salir, gracias a todos por contestar
 
Usa un divisor de tensión y el convertidor ADC que ya estás usando actualmente.
Si así me funciona bien, pero pasa que quiero encender y apagar la fuente del pin on/off y cuando la apago no muestra valor en el lcd, tengo que encender para que se vea, por eso pensé un contador de 0 a 17 y que vayan concatenado con el ciclo activo, si es 5 volr=17 volt, tendría que funcionar no estaría 100% precisó pero andaría bien
 
Si así me funciona bien, pero pasa que quiero encender y apagar la fuente del pin on/off y cuando la apago no muestra valor en el lcd, tengo que encender para que se vea, por eso pensé un contador de 0 a 17 y que vayan concatenado con el ciclo activo, si es 5 volr=17 volt, tendría que funcionar no estaría 100% precisó pero andaría bien
No entiendo absolutamente nada.
Si la fuente está apagada mostrará 0, suponiendo que el indicador se alimente de otro sitio.
Lo del contador y todo eso, no lo entiendo.
 
En estos tiempos donde la electrónica se ha convertido en una especie de ensamblaje de legos, no le veo sentido el tener a disposición todas las herramientas para un propósito, y no querer usarlas. Yo lo veo como querer sacar un tornillo sin usar destornillador y querer darse golpes en el pecho por ser el primero que lo hizo.

Ojalá tengas éxito en tu proyecto, de todo corazón.
 
Pero como ya te puse, NO está pensado ese pin para ese uso, por eso al apagar obtienes los 0V.
Aparte de eso, seguro ni siquiera tienes un capacitor a la salida del LM, porque con carga puede ser, pero sin carga deberia marcarte algo superior a 0.
Haz lo que te dije, controla el pin que llevaria el potenciometro, o usa otro método con otros componentes que estén mas adecuado para eso (transistores varios, bobinas, diodos, etc).
Mira en el foro, que hay mucho material. Busca una fuente regulable digital
 
Si entendí bien o se explico bien el asunto, para que el display LCD, muestre el último valor leido de la fuente
despues de apagarse, hay 2 opciones básicas que no son ningun secreto.
1- El LCD debe tener su propia fuente o batería que lo alimente, a pesar de apagar la fuente ó el PIC ó
2- Hay que desconectar el bus del LCD , antes de apagar la fuente para que conserve el dato y ademas éste último siga recibiendo alimentación de algun origen (bateria , o lo que sea) ( No puedo creer que ésdte tópico tenga ya 7 páginas) :rolleyes: :unsure: 😝
 
Si entendí bien o se explico bien el asunto, para que el display LCD, muestre el último valor leido de la fuente
despues de apagarse, hay 2 opciones básicas que no son ningun secreto.
1- El LCD debe tener su propia fuente o batería que lo alimente, a pesar de apagar la fuente ó el PIC ó
2- Hay que desconectar el bus del LCD , antes de apagar la fuente para que conserve el dato y ademas éste último siga recibiendo alimentación de algun origen (bateria , o lo que sea) ( No puedo creer que ésdte tópico tenga ya 7 páginas) :rolleyes: :unsure: 😝
Poneme un ejemplo de cómo sería? Así acordamos las páginas, no es así, el ciclo activo tiene que ir con lo que muestro en el lcd, esta el adjunto para verlo! Gracias

Ahí pude hacerlo funcionar, lo único no se porque cuando presiono el pulsador el el primer pulso se va al máximo, subo el archivo con el código y la simulación en proteus , gracias
 

Adjuntos

  • Nueva carpeta (5).zip
    135.7 KB · Visitas: 11
Ahí pude hacerlo funcionar, lo único no se porque cuando presiono el pulsador el el primer pulso se va al máximo, subo el archivo con el código y la simulación en proteus , gracias
Porque cuando presionas ingresa al while(!input_state(pin_incr)) y aquí mientras sigas presionando se va a ejecutar lo que hay dentro de ese while y viendo tu código lo que haces es incrementar tu variable.
Prueba y déjalo así: while(input_state(pin_incr)) {...};
 
Poneme un ejemplo de cómo sería? Así acordamos las páginas, no es así, el ciclo activo tiene que ir con lo que muestro en el lcd, esta el adjunto para verlo! Gracias
Se lo que es un ciclo activo en general, pero en vuestro proyecto, hace hojas que me pregunto a que le llama usted el ciclo activo.
Si hay un ciclo activo para usted,¿a que le llama ciclo pasivo en su proyecto ? :rolleyes: Así terminamos con los neologismos. :rolleyes:😝 ... y avanzamos
 
Así desde afuera es un sinsentido de la A a la Z.
El único sentido que tenía era estudiar por aprender aunque no tuviera sentido el resultado, si aprender y distraerse no es el objetivo, entonces ya...
 
Atrás
Arriba