Como encender LEDs a determinadas temperaturas usando LM35 en PROTEUS con Amplificador Operacional
HTML-код
- Опубликовано: 13 окт 2024
- Aprende a encender un dispositivo de acuerdo con el rango de temperatura mediante amplificadores operacionales simulados en Proteus
DE 10 .... COMO SIEMPRE...!!! LIKE X MAS VIDEOS SOBRE COMPONENTES ELECTRONICOS.
Me ha servido muchísimo. GRACIAS!!
De nada. Mucho éxito en tu circuito 👍🏻😀
Gran video! disculpa la molestia pero tengo una duda urgente, yo tengo que hacer algo parecido pero fisicamente, es decir, tengo que hacer un sensor igual, con lm35 y comparadores pero con dos leds, el primero (verde) prende en igual o mayor a 35 y que cuando llegue a ser igual o mayor a 45 (el segundo led rojo) se apague el verde y se mantenga el rojo. me urge saber, ¿no tendrias un diagrama a la mano de ello? en serio te lo agradeceria muchisimo :( saludos!
Felicidades por los 2000 subs 👌🏻
Gracias. La comunidad crece todos los días. Saludos.
Hola podrías conectarlo a un PIC, a cualquier PIC que desees solamente que expliques cómo se utiliza con una pantalla LM016L
Muchas gracias estimado, te pasaste
De nada. Mucho éxito. Saludos
hola. como puedo controlar la temperatura para el conjelador y el refrijerador de una nevera, calibrando la tenperatura con un ponteciometro.
Buen día. Son dos sensores independientes? Uno para el congelador y otro para el refrigerador? Es un solo compresor?
Gran video gracias
Saludos
Excelente video 👌🏻
Gracias. Saludos. 🖐🏻
Una pregunta.. como hago que para que cuando pase el umbral de la temp mayor prenda el led rojo y active un ventilador? Gracias!!
Hola. Seria un ventilador de alterna o de corriente directa?
ruclips.net/video/uMVthZzMrt0/видео.html
Hola, como podria hacer un Diseño del sensor de temperatura de 0-5 V que corresponda al rango de 20 grados a 100 grados con un LM35
Hola Omar, excelente vídeo. Una consulta, si es que se puede, ¿Cómo podría añadir un potenciómetro a mi circuito de control de T° de un horno para poder fijar la T° que yo quisiera? Mi problema está en la programación si pudieras guiarme o al menos aclararme, porfavor, gracias.
Hola gracias. Si hablas de programación entiendo que lo vas a hacer con un microcontrolador. En la entrada el sensor y la salida debe tener aumentos o disminuciones de PWM en función de la temperatura en el caso de corriente directa. O control por TRIAC en el caso de alterna. Si solo lo quieres manual. El potenciómetro hazle una conversión ADC y vinculalo al PWM
@ElectroOmar Esta es mi programación sin potenciómetro para un DSPIC33FJ32MC202 de 12 bits, sé que tengo q conectar el potenciómetro en el pin AR1, pero no sé en qué parte de la programación tengo añadir o modificar, para que me funcione, gracias señor Omar héroe de la Electrónica Programable.
#include "config.h"
#include
#include "reloj.h"
#include "xlcd.h"
#include
/********************DEFINICION DE MACROS**************************************/
#define SETPOINT 1.25
#define PIN_CONTROL LATBbits.LATB8
/*******************DEFINICION DE VARIABLES GLOBALES***************************/
uint16_t data; //LEER EL ADC
float temp; //TEMPERATURA
float val;
uint8_t tick;
//PROTOTIPO DE FUNCIONES
void TIMER_Cofig(void);
void GPIO_Init(void);
void ADC_Config(void);
void Hardware_Init(void);
/************************funcion prinicipal************************************/
int main(void) {
Hardware_Init();
LCD_Init(); //RS = RB6, RW = RB5, E = RB4
delay_ms(0.1);
printf(" UNAC - FIEE");
LCD_setCursor(1,0);//SE MUEVE A LA SEGUNDA FILA
printf("SIST. DE CONTROL");
delay_ms(1500);
LCD_clear();
printf("**PRESS START**");
LATAbits.LATA4 = 0;
while(1){
if(PORTBbits.RB7){
delay_ms(100);
while(PORTBbits.RB7);
break;
}
}
LATAbits.LATA4 = 1;
while(1){
val = (float)(5.0/4095)*data;
temp = (1/0.025)*val;
if(val < SETPOINT)
PIN_CONTROL = 1;
else
PIN_CONTROL = 0;
if(tick>=100){
LCD_clear();
printf("temp->%.1f",temp);
LCD_setCursor(1,0);
printf("val->%.2f",val);
tick = 0;
}
delay_ms(1);
}
}
/***********************DEFINCION DE FUNCIONES**********************************/
void Hardware_Init(void){
TIMER_Cofig();
GPIO_Init();
ADC_Config();
}
void TIMER_Cofig(void){
T1CON = 0;
T1CONbits.TCKPS = 0x1; //PSC->8
PR1 = 625-1; //1ms
//INTERRUPCIONES DEL TIMER
IFS0bits.T1IF = 0;
IPC0bits.T1IP = 1; //PRIORIDAD 1
IEC0bits.T1IE = 1; //SE ACTIVA LA INTERRUPCION POR TIMER
T1CONbits.TON = 1; //SE ACTIVA EL CONTEO
}
void GPIO_Init(void){
TRISBbits.TRISB7 = 1; //ENTRADA
TRISBbits.TRISB8 = 0; //SALIDA ->CONTROL
TRISAbits.TRISA4 = 0; //SALIDA
}
void ADC_Config(void){
AD1PCFGL = 0xFFFF; //inicialmente se desactiva todas los pines adc
/*0. Se selecciona 10-bit o 12-bit*/
AD1CON1bits.AD12B = 1; //se selecciona 12 bit
/*1. Seleccione los pines del puerto como entradas analógicas (AD1PCFGH o AD1PCFGL ).*/
AD1PCFGLbits.PCFG0 = 0; //AN0
TRISAbits.TRISA0 = 1; //entrada analogica
/*2. Seleccione la fuente de referencia de voltaje para que coincida con el rango
* esperado en las entradas analógicas (AD1CON2 ).*/
AD1CON2bits.VCFG = 0; //AVDD-AVss
/*3. Seleccione el reloj de conversión analógico para que coincida con la
* velocidad de datos deseada con el reloj del procesador (AD1CON3 ).*/
AD1CON3bits.ADCS = 1; //2 · TCY = TAD
/*4. Determine cuántos canales de muestreo y retención se utilizarán
* (AD1CON2 y AD1PCFGH o AD1PCFGL ).*/
AD1CON2bits.CHPS = 0;
/*5. Seleccione la muestra apropiada/secuencia de conversión (AD1CON1 y AD1CON3 ).*/
AD1CON1bits.SSRC = 0; //CONVERSION MANUAL
AD1CON1bits.ASAM = 1; //MUESTREO AUTOMATICO
/*6. Seleccione la forma en que se presentan los resultados de conversión
* en el búfer (AD1CON1 ).*/
AD1CON1bits.FORM = 0; //enteros
/*7. SELECCIÓN DE ENTRADA ANALÓGICA PARA CONVERSIÓN*/
AD1CHS0bits.CH0SA = 0; // Channel 0 positive input is AN0
AD1CHS0bits.CH0NA = 0; //0 = Channel 0 negative input is VREF
/*8. Encienda el módulo ADC (AD1CON1 ).*/
AD1CON1bits.ADON = 1;
/*9. Configure la interrupción de ADC (si es necesario):
a) Borrar el bit AD1IF.
b) Seleccione la prioridad de interrupción de ADC.*/
}
//RUTINA DE SERIVICIO DE LA INTERRUPCION
void __attribute__((__interrupt__, no_auto_psv)) _T1Interrupt(void){
IFS0bits.T1IF = 0;
tick++;
AD1CON1bits.SAMP = 0; // Start converting
while (!AD1CON1bits.DONE); // Conversion done?
AD1CON1bits.DONE = 0; // Clear conversion done status bit
data = ADC1BUF0;
}
//ESTA FUNCION SIRVE PARA EL USO DE LA FUNCION PRINTF
int write(int handle, void *buffer, unsigned int len)
{
int i;
switch (handle)
{
case 0: // handle 0 corresponds to stdout
case 1: // handle 1 corresponds to stdin
case 2: // handle 2 corresponds to stderr
default:
for (i=0; i
Yo creo que debes ponerlo al principio dentro del ciclo principal...para que este muestreando frecuentemente y hagas con ese dato en digital lo que tu quieras.
Hola podrías ayudarme con un circuito para autoclave con el dispositivo LM35 que al llegar a una temperatura de 40 grados se me active un LED y al aumentar a los 42 grados se me desactive según el tiempo programado por un timer se lo agradecería
Hola. Lo de los 40 grados no tiene problema es como cualquiera de los videos de la lista de reproducción. Para el timer que mencionas.... debes poner otro comparador en 42 y la salida en lugar de mandarlo al LED...lo mandas al trigger del 555. Solo Recuerda que se activa con un flanco de bajada cuando baja a 1/3 del Vcc.
Como estableces la referencia se 12 V?
Hola. Necesitarías a partir de un voltaje un poco más alto por ejemplo 14 crear la divisora der voltaje. Otra opción sería hacerlo con zener.
💡💡🌟👍
Cómo podría hacer eso mismo pero con 6 leds, lo estuve intentando por dos días y lo que me salió fue como un patrón en el cual encienden 1 si y el otro no, al aumentar la temperatura se va corriendo el patrón hasta que solo queda un LED encendido
Entiendo. ¿Ya revisaste este otro video del canal?
ruclips.net/video/T65FQrvPpA8/видео.html
@@ElectroOmar sip aunque ya el instructor nos indico como hacerlo con relés y transistores, igualmente gracias.
Que estés bien. Saludos
Por qué será que cuando bajo la temperatura (para el cambio de rojo a verde) no prende el led verde, pero si prende al aumentarla?
Hola. Pon un voltímetro en el terminal inversor del amplificador cuyo LED de el problema y monitorea ese voltaje de referencia para rastrear la causa.
@@ElectroOmar Muchísimas gracias!
Y si necesito programar con arduino, cómo sería?
Necesitas acondicionar la señal para que la reciba el pin de entrada para hacer la conversión analógica digital. La entrada debe tener voltaje de 0 a 5 volts