#use delay(clock=20M)
#define ac PIN_A0
#define tap1 PIN_B0
void main(){
setup_comparator(A0_A3_A1_A3);
set_tris_a(0x0E);
while(true){
if (C1OUT)
//output_low(tap1);
output_high(tap1);
else
output_low(tap1);
//output_high(tap1);
}
}:shock: no si que esta mal en el codigo de momento estoy tratando de que cuando el voltaje sea mayor a 1v me encienda un led ya despues de eso toca ver como comparo en otro pin del pic el amperaje alguien me puede orientar el codico que llevo en PIC C Compiler es:.Código: [Seleccionar]#use delay(clock=20M)
#define ac PIN_A0
#define tap1 PIN_B0
void main(){
setup_comparator(A0_A3_A1_A3);
set_tris_a(0x0E);
while(true){
if (C1OUT)
//output_low(tap1);
output_high(tap1);
else
output_low(tap1);
//output_high(tap1);
}
}
(https://i.ibb.co/5WSdZdH/image.png)
#include <18f2550.h>
#device ADC=10
#fuses XT,NOPROTECT,NOWDT,NOBROWNOUT,PUT,NOLVP
#use delay (clock=20M)
#byte porta = 0xf80 // Identificador para el puerto A.
#byte portb = 0xf81 // Identificador para el puerto B.
#byte portc = 0xf82 // Identificador para el puerto C.
#byte portd = 0xf83 // Identificador para el puerto D.
#byte porte = 0xf84 // Identificador para el puerto E.
#use i2c(Master,Fast=100000, sda=PIN_B0, scl=PIN_B1,force_sw)
#include "i2c_Flex_LCD.c"
long valor_adc_lectura_1;
float voltajedc,voltajeac;
void main(){
setup_adc_ports(AN0);
setup_adc(ADC_CLOCK_INTERNAL);
lcd_init(0x4E,16,2);
lcd_backlight_led(ON); //Enciende la luz de Fondo
while(true){
set_adc_channel(0);
delay_us(2);
valor_adc_lectura_1 = read_adc();
voltajedc = (valor_adc_lectura_1*5.0)/1023.0; //calcular DC voltaje
voltajeac = voltajedc*(res1+res2)/res2; //aplica el divisor resistevo ( NO TENGO IDEA PARA QUE ES)
voltajeac = voltajeac+1.4; //suma caida en el puente rectificador ( NO TENGO IDEA PARA QUE ES)
voltajeac = voltajeac/1.4142; //saca RMS ( NO TENGO IDEA PARA QUE ES)
if(voltajedc > 2){ //condicional de 2V
output_high(PIN_B2); //led encendido
}else{
output_low(PIN_B2); //led apagado
}
lcd_clear();
lcd_gotoxy(1,1);
//printf(lcd_putc, "ADC: %Lu", valor_adc_lectura_1);
printf(lcd_putc, "AC: %0.2f", voltajeac);
printf(lcd_putc, "V");
lcd_gotoxy(1,2);
printf(lcd_putc, "DC : %0.2f", voltajedc);
printf(lcd_putc, "V");
delay_ms(100);
//output_high(PIN_B0); //led encendido
//delay_ms(1000);
//output_low(PIN_B0);
//delay_ms(1000);
}
}
pero la idea original es pasar de corriente AC a DC y monstrar en pantalla la corriente AC me faltan son formulas y como aplicar lo alguien me puede ayudar ? en el codigo en () una linea dicen ( NO TENGO IDEA PARA QUE ES)
lo de las formulas no lo entiendo del todo como hago
(https://i.ibb.co/B4SjgfS/Captura.png)
(https://i.ibb.co/Ssskzvg/Captura1.png)
de donde saque el codigo del circuito de conversión de CORRIENTE AC A DC Es el siguiente.
uso este o el que mostré en la imagen anterior ?
(https://i.ibb.co/W5BMf9z/Captura3.png)
sinceramente estoy aprendiendo bajo la marcha compre todo para cuando termine la simulación en proteus pasar lo a lo físico, si entiendo no lo básico pero si por encima el diodo zener es para la protección del pin del microcontrolador pic, pero me come mucho las formulas y como aplicar las a lo que ya tengo. me disculpas mi ignorancia me respondiste muchas duda ((:-))
OK entendido ahora mi pregunta es como hago si en el osciloscopio no me muestra ninguna onda para aplicar la formula :/
(https://i.ibb.co/DCH7txT/Captura4.png)
Tratándose de un 18F2550, yo utilizaría el ADC, en lugar de los comparadores.de donde saque el codigo del circuito de conversión de CORRIENTE AC A DC Es el siguiente.
uso este o el que mostré en la imagen anterior ?
(https://i.ibb.co/W5BMf9z/Captura3.png)
No es conversión de corriente, es conversión de voltaje.
Además yo no veo la necesidad de poner el zener, ya que las entradas del PIC ya tienen diodos clamping que limitan el voltaje.
- Tienes que ingresar para ver archivos adjuntos -
Se tiene que superar la corriente de entrada que según veo son 20ma. Ahora hay que ver la resistencia equivalente del circuito para ver si la supera. Si se hace el equivalente thevenin se puede ver que es bastante alta.
- Tienes que ingresar para ver archivos adjuntos -