jueves 26 de noviembre de 2009

LDR y 16f628a

Con este ejemplo empleamos un LDR o fotoresistencia junto con el 16f628a para encender y apagar un led
El sensor podria ser este:
Conectamos el S1 del LDR en el portb.0 y V+ son 5 voltios y GND masa. El led con su resistencia de 330 ohms en el puerto portb.1.
Y este es el programa en PBP 2.46 escrito en Microcode

ldr var portb.0 ;El portb.0 pasa a llamarse ldr
led var portb.1 ;El portb.1 pasa a llamarse led

Inicio: ;Inicia el programa
If ldr = 0 then ;Si ldr es 0 entonces..
HIGH led ; Enciende led
ELSE ;si no (si es un 1)
Low led ;Apaga led
ENDIF ;Fin de la declaración IF...THEN
GOTO inico ;Vuelve a inicio
END ; Fin del programa

Espero que os sea de alguna ayuda!

viernes 20 de noviembre de 2009

Cambio 16f84A al 16f628A

Despues de estar probando durante unos 6 meses con el 16f84A y más de un quebradero de cabeza, decidi, despues de leer algun que otro manual, pasarme al 16f628A. en mi opinion personal, (Un principiante en esto de los microcontroladores) ha tenido más ventajas que inconvenientes.

A groso modo por el hecho de tener un reloj inteno a 4 MHZ que aunque no muy preciso para la mayoria de las practicas sera más que suficiente, y hasta 20Mhz con cristal externo, el hecho de tener 2Kb de memoria interna , casi los mismos pines que el 16f84A y ser mas barato (de 1€ a 2€ más barato).

Para mi el cambio ha sido más que satisfactorio y animo al que este empezando a optar por este microcontrolador. Ademas los cambios en la programación son minimos, por si tienes hechos algunos programas para el 16f84A

Aqui os dejo el datasheet 16f628A para que le hecheis un vistazo.

miércoles 4 de noviembre de 2009

Puente H con transistores pnp y npn

Bien despues de hacer el puente H con TIP, necesitaba uno de menos potencia para mover un motor CC de pequeña potencia.
Despues de hacer el Puente H con los TIP para mover un motor CC de más potencia, en concreto para el motor principal de un coche RC, este puente con transistores es para el motor delantero de dirección, primero pense usar un servo para direccionar las ruedas, pero los servos de los que dispongo son de poca fuerza e iban muy forzados, asi que decidi usar el motor original que consta de un motor CC más 3 cables de control que indican la posición del motor.



Este puente H consta de:
  • 4 Transistores 3904
  • 2 Transistores 8550
  • 4 diodos 1N4007
  • 2 Resistencias 1Kohms
  • 2 resistencias 80 Ohms

Puente H ya montado en su sitio

El esquema y más información AQUÍ

sábado 26 de septiembre de 2009

Puente H con Tip 120 y Tip 125

Este es el puente H que he construido para cambiar el sentido de giro de un motor en CC:


basandome en este esquema que encontré en el Blog de iritoieunapuno a su vez sacado de la pagina de Robotsperu.
Por el momento solo lo he probado con una fuente de 12v y va a las 1000 maravillas y sin problemas de calentamiento aun después de haberlo probado a conciencia, mi intención es hacerlo funcionar mandándole una señal desde el 16f84A, pero tengo que mirarlo con más detenimiento.

Aquí os dejo la imagen del board:

Y aquí, la imagen del Board con los componentes:


Esquema:

Placa de pruebas para pic 16f84a

Esta es mi placa de pruebas para el pic 16f84A. Es pequeña y facil de construir en placa perforada para los que son poco dados a la quimica (como yo) solo lleva:

  • Fuente con 7805
  • 1 Zocalo 18 para el pic
  • 1 Cristal RX 4 Mhz (aunque el 16F84A admite hasta 20Mhz)
  • 2 Condensadores de 22uF
  • 1 Pulsador Reset para MCLR

Y aqui esta el esquema:Solo teneis que añadir el 7805 y ya teneis una mini entradora para el 16F84A
Para hacer las conexiones utilizo cables de Pc ( ledon, reset,power...)

domingo 23 de agosto de 2009

Mi programador TE-20 con led

Despues de estar mucho tiempo buscando un programador pic no muy dificil de construir y por experiencia fiable al 100% (al menos con el 16f84A y el 16f628A) vi este esquema en la pagina de Ortegotronica
con un manual donde esta todo muy bien explicado en el apartado download/TE-20SE.zip.
En principio lo hice por que lleva dos led´s que indican el estado, es la unica diferencia que le veo a otros programadores faciles de construir, aunque a mi parecer demasiado simples.



Este es mi progrador!! ocupa un poco más de espacio que el original pero es igualmente funcional!!

viernes 14 de agosto de 2009

Alarma 16F84 A

Este es el circuito de mi alarma con el pic 16F84A , y aunque en principio es bastante simple espero ir añadiendo y mejorando poco a poco. (dale a la foto para agrandar)

El funcionamiento es simple, cuando enciendes, se pone en marcha el led verde (on) indicando que el PIC esta en funcionamiento y entra un contador de 10 segundos antes de que la alarma quede totalmente armada durante los cuales el led rojo parpadeara hasta quedarse encendido.
ya esta armada, ahora con los 2 pulsadores simulando las puertas del coche, en el pulsador 1 he incluido un retardo de 20 segundos para que de tiempo a apagarla antes de que comience a sonar la sirena, si no se desconecta en esos 20 segundos entrara el relé haciendo sonar el claxon a intervalos de 2 segundos si y 2 no. Si se entra por la puerta del copiloto (pulsador 2) la alarma se dispara automaticamente. La alarma estara sonando durante 1 minuto y si no se desconecta volverá a armarse automaticamente. El programa esta hecho en PBP y no es para nada
complicado. Saludos!!!
PD. en la imagen no lo he puesto pero el rele es alimentado por un 7812 conecado al ULN2003

Bueno aqui les dejo el programa escrito en microcode, compilado con PBP246 y grabado con TE-20 e ic-prog 1.06b. Con Cristal de 4Mhz.

ledon var portb.0 ;nombre al puerto B0
ledarm var portb.1 ;nombre al puerto B1
p1 var portb.2 ;nombre al puerto B2
p2 var portb.3 ;nombre al puerto B3
rele var porta.0 ;nombre al puerto A0
x var byte ;nombre a la variable X

Pmarcha: ;Puesta en marcha
high ledon
for x=0 TO 20 ; repite cinco veces
high ledarm ; enciende led
pause 500 ;espera 500mls
low ledarm ; apaga led utilice comando low que cumple la misma
;funcion que toggle que cambia la configuracion
;de un bit es decir si esta en ALTO LO PASA A BAJO
;y viceversa
pause 500
NEXT ; siguiente hasta que se repite 5 veces

goto siguiente

siguiente:
pause 500
high ledarm
if p1=0 then alarma1 ;si pulsador1 a 0, va a alarma1
if p2=0 then alarma2 ;si pulsador2 a 0, va a alarma2
goto siguiente

alarma1: ;Esta parte da el retardo para apagar la
for x=0 to 40 ;alarma, en este caso son 20seg, en el
high ledon ;caso en el que no se apague pasaria
high ledarm ;a la siguiente etiqueta alarma2
pause 250
low ledon
low ledarm
pause 250
next
goto alarma2

alarma2: ;si no hemos apagado la alarma durante
for x=0 to 15 ;la etiqueta alarma1, o se a activado
high ledarm ;el segundo pulsador (p2) se activa el
high ledon ;rele conectado a una vocina o a un
high rele ;indicador luminoso a intervaluos de
pause 2000 ;2seg encendiendose tambien todos
low ledarm ;led,s del circuito, para saber el
low ledon ;tiempo que va a estar sonando calculamos
low rele ; (pause + pause)* X / 1000
pause 2000 ;donde X es igual al número de repeticiones
next ;FOR.. TO..
goto pmarcha

END ;fin del programa