sábado, 6 de mayo de 2017

Interruptor on/off con PIC 12F675

Hola amigos de la web en esta entrada les propongo la construccion de un modulo interruptor que permite prender y apagar aparatos electrico solo con un boton. El funcionamiento es el siguiente, al pulsar el boton el microcontrolador le manda un pulso alto a la base de un transistor que activa un rele que cierra unos contactos NA. Al volver a pulsar el boton de encendido el microcontrolador pone en bajo la salida que va al transistor que excita el relay y por ende el relay se desactiva y los contactos se abren, este dispositivo en un util en aparatos como amplificadores o luces de noche, sin mas les dejo el video en cuya descripcion podran encontrar los enlaces para bajar el proyecto.
Espero les sirva, saludos y comenten.

miércoles, 22 de marzo de 2017

Sistema de alarma casero con PIC 12F675

Sistema de alarma casero con PIC 12F675


Hola a todos en esta oportunidad les traigo la construccion de un sistema de alarma hogareña hecho con un PIC 12F675 y un modulo de control remoto RF. Aqui el Video en cuya descripcion encontraran los archivos del proyecto:
Aqui les dejo el circuito:


Si les gusto comenten, adios.

martes, 29 de noviembre de 2016

Intermitente con salida 220V

Intermitente con salida 220V

En esta entrada les traigo la forma de hacer un intermitente para una lampara de 220V de forma sencilla. Para que funcione alimentaremos el circuito con 220V y usaremos un triac como dispositivo de salida de energia.Para el papadeo necesitaremos colocar un led intermitente. Aqui el circuito:
Aqui una foto de la plaqueta a la que se le ha agregado un resistencia de 100 ohms 1W y un capacitor de 47nF 400V para filtrado:

Desde Aqui podes bajar el PCB en eagle para armar la placa.

jueves, 10 de noviembre de 2016

Detector de Humedad

Detector de Humedad
Este Circuito les permite detectar humedad en el suelo o lluvia, consta de un PIC 12F675 y algunos componentes. Al mojarse la placa del sensor, emite un sonido y enciende el led conectado  a la salida del PIC. Este es el circuito:

El sensor esta hecho  con una placa de pertinax con dos contactos como los de la figura, uno conectado a 5V y el otro a la resistencia de 10 k.
Aqui les dejo el programa para el PIC HEX. Saludos y que tengan un buen dia, Nestor.

lunes, 31 de octubre de 2016

Probador de continuidad con PIC 12F675

Probador de continuidad con PIC 12F675
Hola en esta entrada les propongo armar un medidor de  continuidad con un PIC 12F675. El circuito es el siguiente:

El circuito esta basado en el uso del conversor analogico digital del PIC y en la libreria tones del CCS.
Como el circuito detecta niveles de voltaje distintos de 0V, puede usarse para medir resistencias de un amplio rango  de valores. Sin mas les dejo el archivo.  Archivos Proyecto .Comenten

miércoles, 12 de octubre de 2016

Como conectar un motor heladera siam 75/90

Como conectar motor heladera SIAM 90/75
Hola en esta oportunidad estoy arreglando una heladera siam 90 que es esta:
Y les voy a decir como conectar el motor para hacer andar la heladera cuando el relay original se quema o queremos cambiarlo, el motor es  este:
Tiene tres cables: Linea arranque t trabajo como todos los compresores de heladera.

Por ultimo les dejo la conexion prometida para que puedan hacer andar y restaurar si vieja siam:

Espero les sirva y hasta la proxima...

martes, 23 de diciembre de 2014

Radio-baliza automatica Hecha con PIC 12F629

Radio-baliza automática

Hola Seguidores del blog, hace un tiempo un conocido de internet me pidio que le ayude con el codigo de una radio-baliza y me puse y salio esta version de radio-baliza automatica hecha con PIC. Por el momento solo emite en codigo morse el mensaje que uno le pone en el codigo del PIC, como por ejemplo su identificacion de emisora. Para emitir un mensaje solo deben agregar al main del codigo esta linea por ejemplo:
                                                      Mensaje="CA6UGT";
                                                      Tx_morse(Mensaje);
con esa linea emitira el mensaje CA6UGT en codigo morse...ustedes lo pueden cambiar por el que sea identificativo de su emisora y antes de emitir habilitar algun PIN no usado para manejar el emisor. Aqui el codigo del PIC:

--------------------------------------------------------------------------------------------------------------------------------
#include <12F629.h>
#FUSES NOWDT                    // No Watch Dog Timer
#FUSES INTRC_IO                 // >>> Oscilador interno, no CLKOUT
#FUSES PUT                      // Power Up Timer
#FUSES NOMCLR                   // Master Clear pin used for I/O
#FUSES BROWNOUT                 // Reset when brownout detected
#FUSES PROTECT                // Code not protected from reading
#FUSES NOCPD                    // No EE protection
#byte PortA=0x05
#use delay(int=4000000,wdt) // Especifica al compilador que hace uso del OSC interno
int8 MedioSeg=0,Segundos=0;
int16 SegundosRestantes=0;
const int8 duracionPunto=100;
int1 bit=0;
unsigned char Mensaje[7]=" ";
#include <Mitones.c>
#include <PuntosRayas.c>
const unsigned char Table[100]={
0b00000001,//032 espacio interpalabra 7 units
0b01101011,//033 ! -ú-ú--
0b01010010,//034 " ú-úú-ú
0b00111011,//035 # --ú-- para usar la ¥
0b10001001,//036 $ úúú-úú-
0b00000001,//037 % No usado
0b00101000,//038 & ú-úúú Wait
0b01011110,//039 ' ú----ú
0b00110110,//040 ( -ú--ú
0b01101101,//041 ) -ú--ú-
0b00000001,//042 * No usado
0b00101010,//043 + ú-ú-ú
0b01110011,//044 , --úú--
0b01100001,//045 - -úúúú-
0b01010101,//046 . ú-ú-ú-
0b00110010,//047 / -úú-ú
0b00111111,//048 0 -----
0b00101111,//049 1 ú----
0b00100111,//050 2 úú---
0b00100011,//051 3 úúú--
0b00100001,//052 4 úúúú-
0b00100000,//053 5 úúúúú
0b00110000,//054 6 -úúúú
0b00111000,//055 7 --úúú
0b00111100,//056 8 ---úú
0b00111110,//057 9 ----ú
0b01111000,//058 : ---úúú
0b01101010,//059 ; -ú-ú-ú
0b00000001,//060 < No usado
0b00110001,//061 = -úúú-
0b00000000,//062 > No usado
0b01001100,//063 ? úú--úú
0b01011010,//064 @ ú--ú-ú
0b00000101,//065 A ú-
0b00011000,//066 B -úúú
0b00011010,//067 C -ú-ú
0b00001100,//068 D -úú
0b00000010,//069 E ú
0b00010010,//070 F úú-ú
0b00001110,//071 G --ú
0b00010000,//072 H úúúú
0b00000100,//073 I úú
0b00010111,//074 J ú---
0b00001101,//075 K -ú-
0b00010100,//076 L ú-úú
0b00000111,//077 M --
0b0000110,//078 N -ú
0b00001111,//079 O ---
0b00010110,//080 P ú--ú
0b00011101,//081 Q --ú-
0b00001010,//082 R ú-ú
0b00001000,//083 S úúú
0b00000011,//084 T -
0b00001001,//085 U úú-
0b00010001,//086 V úúú-
0b00001011,//087 W ú--
0b00011001,//088 X -úú-
0b00011011,//089 Y -ú--
0b00011100,//090 Z --úú
0b00000001,//091 [ No usado
0b00000001,//092 \ No usado
0b00000001,//093 ] No usado
0b00000001,//094 ^ No usado
0b01001101,//095 _ úú--ú-
0b00000001,//096 ` No usado
0b00000101,//097 a ú-
0b00011000,//098 b -úúú
0b00011010,//099 c -ú-ú
0b00001100,//100 d -úú
0b00000010,//101 e ú
0b00010010,//102 f úú-ú
0b00001110,//103 q --ú
0b00010000,//104 h úúúú
0b00000100,//105 i úú
0b00010111,//106 j ú---
0b00001101,//107 k -ú-
0b00010100,//108 l ú-úú
0b00000111,//109 m --
0b00000110,//110 n -ú
0b00001111,//111 o ---
0b00010110,//112 p ú--ú
0b00011101,//113 q --ú-
0b00001010,//114 r ú-ú
0b00001000,//115 s úúú
0b00000011,//116 t -
0b00001001,//117 u úú-
0b00010001,//118 v úúú-
0b00001011,//119 w ú--
0b00011001,//120 x -úú-
0b00011011,//121 y -ú--
0b00011100,//122 z --úú
0b00000001,//123 { No usado
0b00000001,//124 | No usado
0b00000001,//125 } No usado
0b00000001,//126 ~ No usado
0b00000001 //127  No usado
};
void ProducirSonidos()
{
if (bit==0)
   {
   Punto();
   gap();
   }
else
   {
   Raya();
   gap();
   }
}
void Barrido(unsigned char Cmorse)
/*{
int8 i=0,k=0;
int1 codificar=0;
for(i=7;i>=0;--i)
 {
 if (codificar==1)goto Reproducir;
 if(bit_test(Cmorse,i))codificar=1;
 goto nada;
Reproducir:
           bit=bit_test(Cmorse,i);
           ProducirSonidos();
 }
gap();
gap();///separo caracter
nada:++k;
}*/
{
signed int i=7;
while(!bit_test(Cmorse,i))--i;
--i;
while(i>=0)
   {
   bit=bit_test(Cmorse,i);
   ProducirSonidos();
    --i;
   }   

}

//------------------------FIN TABLA MORSE---------------------------------------
void  TIMER1_isr(void)//Función de interrupción por desbordamiento TMR1  
{
      MedioSeg=MedioSeg+1;
      if (MedioSeg==2)
      {
       Segundos=Segundos+1;
       MedioSeg=0;
       SegundosRestantes=SegundosRestantes-1;
      }
Nada: 
      set_timer1(0x0BDC);//(0x0BDC);//carga del TMR1
    //  restart_wdt();
}

void codec(unsigned char letra)
{
int8 indice=0;
unsigned char morse=0;
if(letra==32)Espacio();
else 
   {
   morse=Table[letra-32];
   Barrido(morse);
   }
gap();
gap();
}

void Tx_morse( unsigned char texto[20]) 
{
int x=0;
while(texto[x]!=0)
   {
   codec(texto[x]);
   x++;
   }
}
void main()
{
   //setup_wdt(WDT_1152MS);
   setup_timer_1 ( T1_INTERNAL | T1_DIV_BY_8 ); //Para poder generar 200ms
   setup_comparator(NC_NC);   // Todo digital
   set_tris_a(0xF0);   // 
   output_A(0x00);
   enable_interrupts(INT_TIMER1);
   disable_interrupts(GLOBAL);
   set_timer1(0x0BDC);//set_timer1(0x0BDC);//carga del TMR1
   SegundosRestantes=0;
   delay_ms(1000);
   Mensaje="CA6UGT";
   Tx_morse(Mensaje);
   while(TRUE){
  
              }
}              
--------------------------------------------------------------------------------------------------------------------------------
Aqui un video de la baliza en funcionamiento...
Espero les sirva y comenten si les gusto...