Follow along with the video below to see how to install our site as a web app on your home screen.
Nota: This feature currently requires accessing the site using the built-in Safari browser.
¿Serán bendecidos por Su Santidad?
http://r28.imgfast.net/users/2811/12/63/89/smiles/2183331314.gif
Saludos C
el ic lm3909 sale muy caro ,asi que estuve buscando como hacer parpadear un led con una sola pila de 1,5 volt y ademas que dure un año la pila,
encontré estos esquemas y probé uno,el de transistores
Ver el archivo adjunto 103700
estos otros esquemas no los probé todavía
le tengo unas ganas al esquema con el 74c14 ,porque puedo usar una parte del ic para el led y el resto para una sirenita/oscilador,asi lo puedo usar de carnada electronica o bien tambien lo puedo usar para usar de campanilla electrónica para indicación sonora luminosa de pike de caña
Ver el archivo adjunto 103705
Ver el archivo adjunto 103706
Ver el archivo adjunto 103707
DOSMETROS dijo:Ahhhh , probá conectarle al trafo de PC otro trafo de PC invertido , pero lo correspondiente a 5V conectado a las salidas de 12
buen noche arena, como esta la gente linda del FORO, una pregunta-... cuanto esta cobrando un electricista por hacer la instalación eléctrica en una casa de 2 habitaciones, cocina, baño... común!!! promedio. se lo agradecería a la ayuda
#include <16F88.h>
#fuses INTRC_IO,NOWDT,PUT,NOPROTECT,NOCPD,NOMCLR,BROWNOUT
#device adc=8
#use delay(clock=4000000)
#use fast_io(A)
#use fast_io(B)
#define D_BCD PIN_A0
#define A_BCD PIN_A1
#define C_BCD PIN_A2
#define B_BCD PIN_A3
#define MUX PIN_A4
#define RELAY PIN_A6
#define UP PIN_B4
#define DOWN PIN_B5
#define WATER PIN_B3
//Inicializamos variables
int set_temp;
float temper, sensor;
//Esta funcion genera los datos binarios necesarios para controlar al 7447
void bcd(int num){
switch(num){
case 0:
output_low(A_BCD);
output_low(B_BCD);
output_low(C_BCD);
output_low(D_BCD);
break;
case 1:
output_high(A_BCD);
output_low(B_BCD);
output_low(C_BCD);
output_low(D_BCD);
break;
case 2:
output_low(A_BCD);
output_high(B_BCD);
output_low(C_BCD);
output_low(D_BCD);
break;
case 3:
output_high(A_BCD);
output_high(B_BCD);
output_low(C_BCD);
output_low(D_BCD);
break;
case 4:
output_low(A_BCD);
output_low(B_BCD);
output_high(C_BCD);
output_low(D_BCD);
break;
case 5:
output_high(A_BCD);
output_low(B_BCD);
output_high(C_BCD);
output_low(D_BCD);
break;
case 6:
output_low(A_BCD);
output_high(B_BCD);
output_high(C_BCD);
output_low(D_BCD);
break;
case 7:
output_high(A_BCD);
output_high(B_BCD);
output_high(C_BCD);
output_low(D_BCD);
break;
case 8:
output_low(A_BCD);
output_low(B_BCD);
output_low(C_BCD);
output_high(D_BCD);
break;
case 9:
output_high(A_BCD);
output_low(B_BCD);
output_low(C_BCD);
output_high(D_BCD);
break;
case 10:
output_low(A_BCD);
output_low(B_BCD);
output_high(C_BCD);
output_high(D_BCD);
break;
case 11:
output_high(A_BCD);
output_high(B_BCD);
output_high(C_BCD);
output_high(D_BCD);
break;
}
}
//Esta funcion separa los digitos y los multiplexa
void display(int numero){
int ones,decs;
ones = numero % 10;
decs = numero / 10;
output_high(MUX);
bcd(decs);
delay_ms(10);
output_low(MUX);
bcd(ones);
delay_ms(10);
}
void main(){
//Configuramos los pueros I/O
set_tris_A(0);
set_tris_B(1);
//Inicializamos el ADC
setup_adc(adc_clock_internal);
setup_adc_ports(sAN5);
//Inicio del programa principal
while(TRUE){
//Lee el sensor de temperatura
set_adc_channel(5);
sensor = read_adc();
temper = (1.96078431372549 * sensor);
//Detecta si hay agua en la tubería
if(input(WATER)){
//Si no hay agua, impide que en relé encienda
if(set_temp != 0){
bcd(10);
output_low(RELAY);
output_toggle(MUX);
}
//Si el agua regresa repentinamente, provoca un delay para evitar dañar la resistencia
}
else{
//Si hay agua, al resto del programa
if(INPUT(UP)){
//Si pulsamos el boton UP, elevaremos la temperatura y mostramos la posición en el display
if(set_temp < 5){
set_temp = set_temp + 1;
}
display(set_temp);
delay_ms(1000);
}
else if(INPUT(DOWN)){
//Si pulsamos el boton DOWN, bajamos la temperatura y mostramos la posición en el display
if(set_temp > 0){
set_temp = set_temp - 1;
}
display(set_temp);
delay_ms(1000);
}
else{
/*Establecido el programa, lo usamos para comparar la temperatura
El relé se encenderá y/o apagará para mantener el rango de temperatura
seleccionada */
switch(set_temp){
//Esta condición apaga todo el circuito
case 0:
output_low(RELAY);
bcd(11);
break;
//Esta condición establece las temperaturas
case 1:
if(temper < 24){
output_high(RELAY);
}
else if(temper > 27){
output_low(RELAY);
}
break;
case 2:
if(temper < 27){
output_high(RELAY);
}
else if(temper > 31){
output_low(RELAY);
}
break;
case 3:
if(temper < 31){
output_high(RELAY);
}
else if(temper > 36){
output_low(RELAY);
}
break;
case 4:
if(temper < 36){
output_high(RELAY);
}
else if(temper > 42){
output_low(RELAY);
}
break;
case 5:
if(temper < 42){
output_high(RELAY);
}
else if(temper > 50){
output_low(RELAY);
}
break;
}
//Mostramos la temperatura actual del agua
if(set_temp > 0){
display(temper);
}
}
}
}
}
Chas gracias don fogoFogonazo dijo:Ese valor es perfectamente admisible
Gracias Don Fogo, por simularlo, mañana bajo el multisim a ver "de que me entero"
DOSMETROS dijo:Multisim 13 y LRPMQLRMP . . . tengo el 12
. . . voy a ver si lo compreo
no me acordaba ¡¡¡¡