lunes, 13 de octubre de 2014

Inversor elevador de voltaje 12V-24V con LM555, IRF630 y Bobina

Electrónica industrial y microcontroladores
  circuito es un inversor elevador de voltaje capas de elevar un voltaje de 12V a 24 Voltios o mas, dependiendo del zener usado, con una capacidad de amperaje dependiente del diodo D2 y el transistor mosfet, en este caso sirve el IRF630




 Aca podemos ver el transistor IRF630, recomendado por su gran manejo de corriente.

 Conexiones identificadas del transistor:



 Simbolo usado en el transistor mosfet IRF630


Descargar hojas de datos de transistores IRF630 


La bobina debe ser un toroide con muchas vueltas, no tengo el dato de la cantidad, pero unas 40 estarian bien.







Puerto paralelo serial USB

Adquisición de datos puertos: Serie(RS232) Paralelo(LPT) y USB


Sistemas de adquisicion de datos usando los puertos estandar del PC.

A continuacion veremos uno de los primeros circuitos que hemos desarrollado para este fin.

Este sistema lee la temperatura de 4 sensores y los envia a un pc via 232

Otra version de la tarjeta anterior un poco mejor elaborada.

Tarjeta similar a las anteriores pero que solo sirve para un solo sensor

 Para graficar los datos tenemos un software que los recive los almacena y los grafica una imagen de dicho software la podemos ver a continuacion:



Zero Crossing con microcontrolador PIC, SCR control de compuerta con PIC12F675

Control de disparo en la compuerta de un SCR usando un PIC
Programacion en ASM


Este proyecto esta basado en la caracteristica que tiene el microcontrolador de generar una interrupcion en el pin 2 al recibir una señal que hace un cruze por cero (zero crossing).

Esquematico:


Montaje fisico realizado en 2008






Codigo fuente en ensamblador.


LIST   P=12f675

RADIX HEX

include "P12f675.inc"    ;Definiciones de registros internos

;Palabra de configuracion

__config _CPD_OFF & _BODEN_ON & _MCLRE_OFF & _PWRTE_ON & _WDT_OFF & _XT_OSC & _CP_OFF & _CPD_OFF


CBLOCK  0x20
duty, ContTemp, RegDelayAng1, RegDelayAng2, RegDelayPulso
ENDC
        ORG 0
goto INICIO

ORG 4  ;inicio de la subrutina de interrupcion
        btfss   INTCON,INTF            ; Si La interrupcion corresponde al RBif sigue si no regresa
        retfie
        bcf     INTCON,GIE             ; Desabilitamos el permiso global de interrupciones
        call    pulso
        Bcf     INTCON,INTF
        bsf     INTCON,GIE
        retfie
        

;include "subrutina.lib"   ; para incluir subrutinas y librerias

INICIO
    BANKSEL  OSCCAL
    call 3FFh ;Get the cal value
    movwf    OSCCAL ;Calibrate
    movlw    b'11111110'
    movwf    TRISIO
    movlw    b'01100010'
    movwf    ANSEL 
    BANKSEL  option_reg
    bsf      option_reg,6
    BANKSEL  0
    bsf      gpio,0

    movlw   b'00000101'
    movwf   ADCON0
    movlw   .10
    movwf   duty

    movlw    b'00000111'
    movwf    CMCON
    bsf      INTCON,INTE
    bsf      INTCON,intf
    bsf      INTCON,GIE
;*******************************************************************************************
; Aqui comiensa el programa
KErneL
;XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
    call   GetAdc
    movwf  duty
    movlw  .100
    movwf  ContTemp
    decfsz ContTemp,f
    goto   $-1
    bsf      gpio,0
;XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
;*******************************************************************************************
    goto      KErneL
;XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
; Subrutinas de retardo independientes
;*********************************************************************
; DelayAng: retardo variable para producir un angulo de disparo variable
DelayAng
        movwf      RegDelayAng1
DelayAng1
        movlw      .8
        movwf      RegDelayAng2

        decfsz     RegDelayAng2,f
        goto       $-1

        decfsz     RegDelayAng1,f
        goto       DelayAng1
        return
;*********************************************************************
; Este retardo es para el ancho del pulso de disparo
DelayPulso
        movlw     .80
        movwf     RegDelayPulso
        decfsz    RegDelayPulso,f
        goto      $-1
        return
;*********************************************************************
;XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
GetAdc
   bsf     ADCON0,GO
   btfsc   ADCON0,GO
   goto    $-1
   movf    adresh,w
   return
;XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
pulso
        incf    duty,w
        movlw   .200
        call    DelayAng
        Bcf     gpio,0
        call    DelayPulso
        Bsf     gpio,0
        return



    goto      $


org 0x3ff
retlw 0x34

end


 




Proyecto: Medidor de temperatura Sensor LM35

Electrónica industrial y microcontroladores

Tarjeta electronica que consiste de un PIC12F675(Microcontrolador), un LM35(Medidor de temperatura) y un MAX232(Puerto serie DB9).

Este circuito envia la temperatura leida del sensor de temperatura LM35 y la envia por el puerto serie al programa para la generacion de un grafico


Software listo para graficar la temperatura que es leida por el sensor LM35 y enviada por el microcontrolador por el puerto serie.


Letrero electronico Lanzamensages de 8 caracteres

Electrónica industrial y microcontroladores

Este es un proyecto con microcontrolador PIC16F876A y 8 displays matrix 5x7


Imagen de la matrix:




Placa de control montada:



Este es un lanzamensages electronico didactico, para aprender el prinsipio de funcionamiento para luego desarrollar circuitos mas avanzado.

Caracteristicas:
-. Barrido de caracteres horizontal
-. Programa en ASM.
-. Resolucion de caracteres 5x7
-. Alimentacion 12v



Alarma Sensor Infrarojo con PIC12F629.


Circuito: Alarma Sensor Infrarojo con PIC12F629
Descripcion:
Este dispositivo puede tener un alcance asta de 20 cm de distancia y puede detectar objetos claros que se encuentren en línea de visión con el el sensor. Todo el sistema se encuentra armado y funcionando cuenta con un buzer de cuarzo el cual emite diferentes sonidos según la distancia a la que se encuentre el objeto a detectar.
Placa de circuito Impreso






Contador en display de 30 entradas

Circuito contador diseñado para representar en un display de 12x15cm fabricado con leds, la entrada conectada a tierra respetando el orden de importancia de las entradas. Aplicado a sistemas con multiples swiches para verificar el estado de cada uno, ademas incluye un sistema de alarma con dos relays.
Este dispositivo consta de dos placas, la placa de display y la placa de control:
Placa de display:

Placa de control

numero de entradas elevado, fuente de alimentacion con LM7805 y condensadores, circuito con transistores para el manejo de la otra placa la cual forma dos digitos 8 con 84 leds. Ademas de los dos relevos ya mencionados.

Nota: El color de los leds puede ser escojido de acuerdo a su disponibilidad en el mercado.


Control Remoto codificado Transmisor y Receptor

Circuito electronico para control remoto por infrarojos codificado.
Prototipo transmisor

Prototipo receptor


Detectores de metales BFO con microcontrolador PIC16F628A

Teoría de funcionamiento del detector de metales BFO con PIC

Este detector de metales esta basado en los detectores BFO, o detección por batido de frecuencia, en este caso usamos un microcontrolador para medir la frecuencia del oscilador
Para el oscilador usamos un oscilador LC(bobina condensador) tipo Colpits a transistor.
Funcionamiento del oscilador Colpitts.
El oscilador Colpitts es un tipo de oscilador es muy utilizado en generadores de frecuencia de alta calidad y se usa principalmente para obtener frecuencia por encima de 1 Mhz. Su estabilidad es superior a la del oscilador Hartley.
Para poder lograr la oscilación este circuito utiliza un divisor de tensión formado por dos capacitores: C1 y C2.
De la unión de estos capacitores sale una conexión a tierra. De esta manera la tensión en los terminales superior de C1 e inferior de C2 tendrán tensiones opuestas.
La realimentación positiva se obtiene del terminal inferior de C2 y es llevada a la base del transistor a través de una resistencia y un condensador.
A estas frecuencias sería muy difícil utilizar el oscilador Hartley debido a que las bobinas a utilizar serían muy pequeñas.
La frecuencia de oscilación de este tipo de oscilador está dada por:
fo  = 1 / [2π x ( LC)1/2].

Este oscilador ha sido adaptado y modificado para que pueda trabajar con el microcontrolador.
Este es el esquematico.

El oscilador es mostrado a continuación.

 Funcionamiento
El funcionamiento del microcontrolador para detectar metales se basa en la misma idea de los detectores de batido, pero en este caso el microcontrolador funciona como un frecuencímetro, que mide la frecuencia generada por el oscilador anterior, usando el TMR1.
Para poder medir la frecuencia a través del pin TMR1CKI, utilizamos el siguiente circuito con transistor para adaptar la onda seno a la entrada TTL.

Microcontrolador
El microcontrolador se encarga de arrancar y parar el oscilador, para ayudar a estabilizar la frecuencia ya que todo oscilador varia su frecuencia por cuestiones de temperatura humedad y mil razones mas.
El programa del micro (PIC16F628A) usa dos etapas de detección:
Calibracion: con el led rojo encendido mide varias veces la frecuencia del oscilador promediando varias muestras, hasta que esta frecuencia es lo mas estable posible, cuando es estable, guarda el dato para usarlo para detectar cambios de frecuencia.
Deteccion: led verde encendido, en esta etapa el micro mide la frecuencia promediando varias veces, y luego compara con el valor guardado, si es diferente suena el buzzer y enciende el led azul. Si el valor ha variado de una manera muy constante, el  programa regresa a la calibración, para estabilizarse y dejar de activar la alarma de metal, osea el buzzer.
Diseño del circuito impreso hecho en eagle

El secreto para que el oscilador funcione esta en los condensadores verdes que son los mejores para hacer osciladores estables.


Codigo fuente en Mikroc Pro for PIC
#include 
// Definicion de constantes usadas en el programa
#define Calibr    0b00000001
#define deteccion 0b00000010
#define metal     0b00000100
#define NoOSc     0b00000011

// Esta funcion inicializa el TMR1 para que funcione como frecuencimetro
   void Tmr1Ini(){
   t1con.T1OSCEN=0;  //oscilador externo deshabilitado
   t1con.b2=0;
   t1con.b5=0;
   t1con.b4=0;
   t1con.TMR1CS=1;   //Reloj externo
   t1con.TMR1ON=0;      //TMR1ON
   }

// Funcion que lee el frecuencimetro formado con el TMR1
unsigned OscRd(){
   unsigned  Cont=0;// Variable de 16 bits para almacenar el valor del TMR1
   TMR1H=0;  // Borramos los registros del TMR1
   TMR1L=0;
   t1con.TMR1ON=1; // Habilitamos el TMR1 para que empieze a contar
   delay_ms(200);   // esperamos un tiempo para que cuente todos los pulsos
   t1con.TMR1ON=0; // detenemos el conteo
   Hi(Cont)=TMR1H;     // transferimos los valores de los registros contadores a
   Lo(Cont)=TMR1L;
   return Cont;    // retornamos el valor
   }

void buzzer(){
unsigned short j;
    for(j=0;j<100 16="" bits="" bucle="" buzzer="" cero="" cmcon="0x07;" comparamos="" comprobacion="" configuracion="" de="" del="" delay_ms="" delay_us="" deteccion="" diferentes="" el="" en="" for="" funcionamiento="" i="" if="" j="0;j<5;j++){" leds="" leemos="" main="" micro="" nuevamente="" oscilador="" porta="0b00000000;" portb.b0="0;" portb="0;" prinsipal="" puertos="" registros="" rutina="" short="" si="" son="" t0="OscRd();//" t1="OscRd();" t2="" t3="" tmr1ini="" trisa="0b11111000;" trisb="0b11011110;" una="" unsigned="" usadas="" valores="" variable="" variables="" void="" while="" y="">(T1+3))|(T0<(T1-3)))// y si son diferentes entre ellos
  {T2++; if(t2>2){porta=metal; buzzer();porta=deteccion;T2=0;}}// se ha detectado variacion lo cual indica metal
  else{porta=deteccion;T2=0; }// si no seguimos buscando
  }else{porta=NoOSc;T2=0;}     // fallo del oscilador colpits no tiene bobina o esta bloqueado

  }

}





Contador Programable para motor PP

Contador Programable para motor PP


Botón 1 = Set
Botón 2 = Enter
Botón 3 = B+
Botón 4 = B-
Los leds indican en qué función se encuentra el dispositivo.
OFF LED APAGADO
ON LED ENCENDIDO
A1 OFF --  A2 OFF  --  A3 ON
Esta es la posición inicial, la que tiene por defecto, muestra en pantalla el numero de pasos programados listos para iniciar. Cuando se presiona el botón B+ botón 3 empieza su función, con conteo regresivo.
A1 OFF --  A2 OFF  --  A3 OFF
Posición  de programación de tiempo de paso en retroceso, no se debe tocar ya que si aumenta el tiempo de paso de retroceso se demorara mucho en esa parte, lo programe para que tenga una opción adicional que tal vez la necesite.
A1 ON --  A2 OFF  --  A3 OFF
Programación de tiempo de paso de avance, con esta opción puede programar cuánto dura el motor para dar un paso.
A1 OFF --  A2 ON --  A3 OFF
Programación del  número de pasos que debe dar en avance.
Otras indicaciones:
Cuando el motor está avanzando presenta las siguientes indicaciones:
A1 OFF --  A2 ON  --  A3 ON
El motor está avanzando.
Durante el modo avance puede presionar el botón B- o cuarto botón y detener la marcha, luego puede volver a presionar el botón B+ y arrancara de nuevo.
Si presiona el botón Enter se puede salir del modo avance, y empezara a retroceder, puede presionar el botón B- y se detendrá.
A1 ON --  A2 OFF  --  A3 ON
 En este modo el motor está retrocediendo de forma indefinida, esperando que se pulse el botón B- (cuarto botón) .
Ajuste del número de pasos:
A1 ON --  A2 OFF  --  A3 OFF
Presionando el botón Set Botón 1, una vez los leds estén encendidos en esta posición podremos cambiar el numero de pasos, para hacerlo debemos presionar primero el botón 2(enter) cuando podamos ajustar los pasos lo sabremos por que los dígitos empiezan a titilar, con el botón enter podemos ir cambiando cual digito vamos a cambiar, y con los botones 3 y 4 (B+ y B-) podemos incrementar o disminuir el valor del digito, luego cuando estemos listos presionamos el botón Set, entonces el valor se guardara, para que el motor empiece a andar debemos buscar la posición en la que el motor queda listo para andar, o apagar y encender el dispositivo.
Ajuste del tiempo de avance.
A1 OFF --  A2 ON  --  A3 OFF
En esta posición podemos cambiar el tiempo de avance, se usa el mismo procedimiento que usamos para cambiar el número de pasos.


Proyecto: Diseño de un inversor SMPS utilizando transistores mosfets.

Este inversor es construido usando una fuente oscilada que convierte voltaje DC bajo  a voltaje DC alto y luego un inversor DC-AC. Para el desarrollo nos valemos de transistores mosfets.
Transformador de ferrita y transistores mosfet

 Proyecto armado y terminado, montado en una caja

Caja de ejemplo, imagen tomada de internet.


Proyecto: Medidor electronico LM35 con microcontrolador

Descripcion:
Este circuito funciona como Termometro Electronico digital, indicando la temperatura ambiente en grados centígrados.
Utiliza un PIC 16F873A el cual se programa de tal manera que visualice en dos displays la temperatura detectada en su entrada Análoga; esta a su vez está conectada al sensor, que es un circuito especializado LM35 el cual a su vez genera un voltaje de precisión proporcional a la temperatura de su entorno.

Este voltaje es tomado como referencia para ejecutar internamente la visualización de la temperatura en dos displays de cátodo común conectados al puerto adel PIC y activados en modo multiplexado.

Animacion circuito electronico indicador de temperatura con sensor LM35.

Características: Microcontrolador PIC16F873A, Displays de Cátodo común de gran luminosidad y sensor de temperatura con integrado LM35. Incluye circuito Regulador de voltaje 78l05
Placa de circuito Impreso
Lista de materiales
1 Fuente de poder regulada de 5 VDC
1 PIC 16F873A
1 Base de 28 pines
1 LM35
7 resistencias de 330 ohm a 1/8W
3 resistencias de 2k2 a 1/8W
2 displays de catodo comun
2 2N3904
1 cristal del 4 mhz
1 terminal conector de tornillo para circuito impreso
1 circuito impreso


Proyecto: taximetro electronico con microcontrolador PIC

Sistema de taximetro basico, el cual se basa en entrada de pulsos.



funciones:
  • Carrera minima, ya que le asigna un valor si el total a pagar es menor a la carrera minima.
  • aviso de LIBRE en acrilico y LEDs, el cual se pone intermitente al momento de solicitar el Total a pagar.
Esquema del circuito electronico: