Sei sulla pagina 1di 25

CARGADOR DE BATERIAS 12V

Tal como dijimos en un artículo que publicamos hace ya unos 8 años, si tuvo la tentación
de cargar una batería de níquel-cadmio de 12V a partir de otra batería idéntica, habrá
comprobado, sin duda alguna, que dicha misión es imposible de conseguir a pesar de
que las tensiones nominales de los depósitos "sean idénticas" y que una de ellas esté
completamente cargada.

La razón es bien sencilla: contrariamente a lo que podía pensarse por el valor de su


tensión nominal, fijada en 1,2V, un elemento de batería (acumulador) exige una tensión
de carga más elevada, próxima a 1,4V por elemento. Por consiguiente, para poder
cargarse de forma correcta, una batería de 12V, constituida por 10 celdas, exige una
tensión aproximada de 14V.

Para conseguir esta tensión, proponemos el armado de una fuente que incluye un
doblador de tensión, basado en el conocido circuito integrado 555. Este circuito genera
una señal oscilante de forma de onda cuadrada que hace que la salida en la pata 3 pase
alternativamente, entre los estados de masa y 12V.

En el circuito de la figura 1, cuando la pata 3 del 555 está a nivel lógico bajo (conectada
a masa), C3 se carga a través de D2 y de D3 hasta que la tensión en sus bornes sea de
una magnitud próxima a 12V. Si la pata 3 está a nivel lógico alto (conectada a la tensión
de alimentación), la tensión en el punto de unión de C3/D3 pasará a un valor dos veces
más grande, puesto que el polo negativo de C3 está ya a 12V y la tensión en los bornes
de este capacitor cargado es también de 12V. Note que el diodo D3 está polarizado en
forma inversa y se bloquea, mientras estará en estado de conducción, en estas
condiciones, C4 debería cargarse con una tensión superior a 12V y llegar en teoría a los
24V. En la práctica, la carga apenas sobrepasa algunos volt la tensión de fuente, que es
más de 12V, lo que resulta suficiente para nuestros propósitos.

A la salida del doblador de tensión nos encontramos con un regulador hecho a partir de
un transistor NPN con un zener como referencia. Podría colocar un BC548 en lugar del
TIP31, dado que la corriente de carga será pequeña, sin embargo, por seguridad,
aconsejamos el empleo del transistor de potencia.

Se debe ajustar la tensión de salida por medio de VR1 para que sea levemente superior
a los 14V, aunque si viera que en carga no hay corriente, deberá aumentar este valor.
Lo ideal sería que con una batería descargada y conectando un amperímetro en serie,
la corriente de carga sea del orden de los 10mA a 20mA.
Cabe aclarar que la corriente que deberá entregar la fuente es superior a este valor (llega
a unos 25mA) a consecuencia de que el integrado consume corriente.

Cabe aclarar que las baterías empleadas en sistemas de seguridad poseen una
capacidad del orden de los 8 ampere/hora lo cual supone que si la cargamos a razón de
10mA/hora tardaría unos 40 días en cargarse totalmente (si estuviera descargada por
completo). Sin embargo, esto no ocurre dado que el acumulador se encuentra en
condiciones de carga las 24 horas del día. Para baterías de capacidad igual a
500mA/hora, el tiempo de carga sería de aproximadamente igual a un día.

En la próxima edición explicaremos el funcionamiento de una central de alarma


microcontrolada de 4 zonas (3 instantáneas y una demorada) a partir del uso de un
PICAXE08. A dicha central deberá agregarle un cargador como el que estamos
presentando y una fuente de alimentación (para lo cual daremos sugerencias de diseño).
Como elemento de aviso podrá utilizar sirenas (daremos un circuito), un discador
telefónico, una luz potente, etc. y como sensores podrá elegir entre una gran cantidad
de variables. De esta manera, Ud. contará con un sistema de seguridad de buen
desempeño con un costo realmente bajo.
Concepto de cargador de batería
La batería de nuestro auto en algún momento se terminará, Para ello existe la
alternativa de construir estos aparatos de forma casera con algunos materiales que
posiblemente tengas en tu cochera y además nos permitirá ahorrarnos algo en
dinero.

Un cargador de baterías casero para auto es una herramienta sumamente práctica


que nos permite resolver ese mal momento cuando no es posible encender el motor
de tu moto, quizás por estar por un largo tiempo estacionar sin utilizar, peor aun en
temporadas de invierno el frío suele afectar causando la perdida o agotamiento de
carga.
Un cargador de batería para auto casero, es una alternativa a bajo costo, y es sin
duda, una de las consultas más realizadas en la Internet, bien sea para proyectos
universitarios, o emprendedores que ofrecen un equipo sencillo con la función básica
de cargar baterías de 12V para poner en marcha autos y motos cuya batería haya
perdido carga.
Efectivamente, un cargador de batería auto casero aunque es algo poco moderno y
el tiempo de recarga no puede competir jamás con un cargador moderno, no
obstante es una opción para nada despreciable que podría interesarte, veamos
algunos aspectos básicos que debes conocer sobre estos cargadores especialmente
si cuentas con un auto para desplazarte.
La función básica de un cargador de batería de auto casero es suministrarle corriente
para su operatividad óptima, además se puede elaborar este aparato de forma tal
que disponga una o las dos modalidades de carga, lenta o rápida.
La modalidad de carga rápida puede cargar en un periodo de 4 a 6 horas
aproximadamente, mientras que la carga lenta podría demorar hasta unas 24 hrs.

Aunque la carga rápida parezca la forma más eficiente para recargar la batería de
tu auto o moto, expertos aseguran que esta modalidad podría restarle durabilidad a
la vida útil de su batería. Contrariamente, un cargador de carga lenta evitará que se
causen daños a la batería por sobrecarga.
Para la construcción exitosa de un cargador de batería de automóvil casero, en primer
lugar se debe construir la placa de circuito, para luego soldar en ella los elementos
respetando su sentido. Los diodos dejaron de usarse.
El funcionamiento adecuado de este dispositivo garantizará una óptima carga a su
batería, pero es necesario seguir los procedimientos estrictamente para evitar dañar
la batería o sobrecalentar esta por proveer mayor corriente de lo necesario.
Un cargador de batería para un coche de 12 V debe suministrar una tensión superior al
de la batería, es por ello que no es posible cargar una batería de 12 V empleando
otra, a menos que se incluya una dobladora de tensión que permitiría aumentar los
12 V a la entrada para admitir una batería a partir de otra.
Para mayores detalles sobre un cargador casero de motos estaremos realizando en
próximas entregas un análisis sobre su elaboración casera.

Lenguaje c
Contenido
 1 Ventaja del lenguaje
 2 Estructura de Programación en “C”
 3 Comentarios , variables y constantes
 4 Funciones
 6 Repeticiones
 7 Sentencia for
 8 Fuente

2. Ventaja del lenguaje


La programación en C tiene una gran facilidad para escribir código compacto y
sencillo a su misma vez. En el lenguaje C no tenemos procedimientos como en
otros lenguajes solamente tenemos funciones los procedimientos los simula y
esta terminante mente prohibido escribir funciones , procedimientos y los
comandos en mayúscula todo se escribe en minúsculas (a no ser las constantes
J ) Los archivos en la C se escriben en texto puro de ASCII del Dos si se escribe
en WORD por ejemplo el mismo incluye muchos códigos no entendidos por el
compilador y generara errores ;una vez escrito se debe pasar a compilar el
archivo; los archivos tienen 2 Extensiones archivo.C que es el archivo a compilar
el que contiene todas los procedimientos funciones y código de nuestro programa
y archivo.h que es las librerías que contienen las funciones de nuestro programa.
(NOTA : El compilador genera Archivos con extensión .EXE). Cada instrucción
que pasemos a poner en C va segida de un punto y coma para decirle al
compilador que hasta ahí llega la instrucción simula un Enter del teclado.
Ejemplo: clrscr(); /* borra la pantalla */

Estructura de Programación en “C”


3.

Ejemplo
Encabezados <ficheros.h> en el se almacenan las funciones que trae el lenguaje
propio o las funciones nuestras se les llaman Librerías. Las funciones de C dan
mucha potencia al programador en podemos realizar los programas con mucha
potencia y facilidad de código.
Constantes simbólicas en el se definen las constantes de nuestro programa es lo
único que se escribe en mayúsculas. ej.: #define ENERO 31
Nota: (las constantes son variables que conservan el mismo valor todo el
programa una vez que incluimos una constante en nuestro programa el
compilador va a sustituir el texto contenido en la constante por el texto del
mismo.)
Cabecera de funciones es la llamadas a las funciones que se encuentran el
mismo programa y al final del.
Función principal MAIN() en el se desarrollara todo el código del programa las
llamadas a funciones procedimientos etc. (es una función que sé autoejecuta
cuando se compila el programa).
Comentarios , variables y constantes
4.

Nota: Para incluir en nuestro programa comentarios muy necesario para que
otros programadores entiendan lo que quisimos hacer y nosotros mismos el con
el tiempo. /* Esto es un comentario */
En C++ los comentarios se pueden hacer en una linea con // (//en c++ esto es un
comentario)
Tipo de Variables en C
Definición: Para la definición de variables de debe poner primero el tipo de
variable a definir y luego el nombre de la variable ( si queremos inicializarla
podemos a continuación poniendo = valor) y si queremos definir mas de una
variable del mismo tipo podemos poniendo una coma a continuación. Ejemplo:
int contador; /* define una variable con el nombre contado
r de tipo entero */
int cont = 0 ; /* inicializando cont con 0 */
int cont , cont2, contn = 0; /* definición de mas de una va
riable */
float científica = 10.1
int cont = cont +1;
int cont = cont2;
TRABAJANDO CON ESTRUCTURAS También se pueden definir tipo de
variables con varias variables dentro llamada estructuras de variables (muy
precido a los registros Grande DBASE ....) dentro de un registro nosotros
podemos agrupar un conjunto de variables bajo un mismo nombre por ejemplo
tengo una ficha de cliente donde tiene nombre , dirección ,teléfono ; en la misma
ficha yo podría preguntar por cliente.nombre o cliente.telefono etc.
Tipo de definición

Struct nombre {
Tipo variable1
Tipo variable2
Tipo variablex
};
struct nombre nombre_dela_variable;

Constantes :

#define nombre texto_deremplazo

Las constantes son variables que se mantienen todo el programa con un mismo
valor. Cada vez que nosotros llamamos a una constante lo que hacemos es
remplazar la constante por su valor. No se debe poner ; después de la definición.
Ej.:
#define MAXLINEAS 24
#define MINOMBRE “Federico”
#define ARCHIVO “C:\autoexec.bat”
y cuando en mi programa yo haga por ejemplo printf(“Autor : %s”,MINOMBRE);
se sustituirá el contenido de la constante por el contenido de la misma
printf(“Autor : %s”,”Federico”); se pueden definir constantes de tipo macro que se
tocara en el próximo capitulo.
Un ejemplo que para los amantes de turbo pascal les puede gustar
// Ejemplo realizado para clase de definicion de varialbes.
#include <stdio.h> // inclusión de librerías.
#include <stdlib.h>
#include <conio.h>

// definición de constantes.
#define BEGIN {
#define END }
#define WRITELN( texto ) printf("%s\n",texto)
#define READLN(variable) gets(variable)
#define PAUSA getch()

void main()
BEGIN
char var[255];
clrscr();
WRITELN("hola");
READLN( var );
WRITELN( var);
PAUSA;
END

Funciones
5.

Una función es una parte del código independiente del programa que se llama
dentro de él, como dijimos anteriormente C no tiene procedimientos solamente
funciones los procedimientos los simula con funciones que no devuelven nada
(Void) la estructura de la funciones en C y es los elementos mas fuertes del
lenguaje. El desarrollo de una función es:
Tipo_de_valor_retorno nombreFunción( lista de argumentos ){
declaracion de variables locales a la función
codigo ejecutable
return ( exprecion ) // optativo
}
las variables de nuestras funciones son locales es decir que solamente viven
cuando se esta ejecutando la llamada a la función; el código ejecutable son las
sentencias que el programa utiliza para funcionar y el valor de retorno es el
resultado que va a devolver la misma función ( si se dice que una función retorna
un entero en el return se debe poner un entero como valor de devolución Ej: esta
función de ejemplo cuenta cuantos caracteres existen dentro de una variable que
se le pase como parámetro.

Sentencias de comparación y repeticiones


6.

Instrucción IF La sentencia if permite comparar 2 valores entre si. Por medio de


la condición cuando se cumple (TRUE) entra a realizar la accion1 si no pasa a
cumplir la accion2

if ( condición_logica )
{ ....
acción 1
....
}
else
{ .....
acción 2
.....
}

Sentencia SWITCH La sentencia switch puede comparar una variable con mas
de un posible resultado Si ustedes tubieron el gusto de programar en clipper la
sentencia es muy parecida a Case.

Switch (variable)
{
case comparacion1 : .....
accion...
break
.....
case comparacion n : .....
accion...
break
default : ..... /* en caso de que no se cumpla ninguna...*/
accion...
break
}

Repeticiones
7.

Es el mas usado en su sintaxis puesto que es muy parecido al de otros lenguajes


como clipper pascal visual basic....
While primero evalúa la condición y no se cumple entra en el ciclo While hasta
que la condición se cumpla.

While (condición)
{
....
sentencias
....
}

Sentencia for
8.

La sentencia for o para permite ejecutar un conjunto de sentencias evaluando la


condición central del for.

For ( variable = valor inicial ; condición ; incremento)


{...
....
sentencias....
...
....
}

Punteros :
C permite el manejo de punteros a memoria de una forma fácil y ágil por medio
de punteros podremos desarrollar funciones que no devuelvan un solo valor sino
que devuelvan mas valores a su misma vez. solamente tenemos que tener en
cuenta un par de cosas y podemos acceder a posiciones de memoria de las
variables apuntado hacia ella, & dirección hacia donde apunta el objeto o variable
Manejo de archivos en C
Para el manejo de archivos en C tenemos que tomar en cuenta varias partes
primero la parte de apertura , el modo de trabajo y luego cerrar el archivo
(necesario para no perder datos o que el archivo quede en memoria corrupto).
Al abrir una archivo tenemos que tener en cuenta el modo de apertura del mismo
si es de lectura, escritura, creación, binario etc.
Primero tenemos que definir la variable que va a contener en el la información de
el comportamiento del archivo ( si existe, si se produjo un error al grabar al
recuperar etc.) Las variables de tipo archivo se definen como punteros ej.

FILE *archivo

Esto solamente define una variable de tipo de archivo la informaci


ón de el archivo se encuentra almacenada en un puntero hacia el mis
mo.

Archivo = fopen ( "Nombre_fisico", "modo");


En el modo de apertura del archivo podemos tener en cuenta si el archivo se
quiere crear (w) si el archivo es de solo lectura (r) modo binario (b) etc.

Fuente
9.

 Rena, F. Manual de Programación en C para principiantes y avanzados.,


El PIC16F84 es un microcontrolador a 8 bits de la familia PIC perteneciente a la Gama
Media (según la clasificación dada a los microcontroladores por la misma empresa
fabricante) Microchip.

Se trata de uno de los microcontroladores más populares del mercado actual, ideal para
principiantes, debido a su arquitectura de 8 bits, 18 pines, y un conjunto de
instruccionesamigable para memorizar y fácil de entender, internamente consta de:

 Memoria Flash de programa (1K x 14 bits).


 Memoria RAM (68 registros x 8 bits).
 Un temporizador/contador (timer de 8 bits).
 Un divisor de frecuencia.
 Varios puertos de entrada-salida (13 pines en dos puertos, 5 pines el puerto A y 8
pines el puerto B).
Otras características son:

 Manejo de interrupciones (de 4 fuentes).


 Perro guardián (watchdog).
 Bajo consumo.
 Frecuencia de reloj externa máxima 10MHz. (Hasta 20MHz en nuevas versiones). La
frecuencia de reloj interna es un cuarto de la externa, lo que significa que con un reloj
de 20Mhz, el reloj interno sería de 5Mhz y así pues se ejecutan 5 Millones de
Instrucciones por Segundo (5 MIPS)
 No posee conversores analógicos-digital ni digital-analógicos.
 Pipe-line de 2 etapas, 1 para búsqueda de instrucción y otra para la ejecución de la
instrucción (los saltos ocupan un ciclo más).
 Repertorio de instrucciones reducido (RISC), con tan solo 35 instrucciones distintas.
 4 tipos distintos de instrucciones, orientadas a byte, orientadas a bit, operación entre
registros, de salto.

 MOVLW 20h
 MOVWF FSR
 CLRF INDF
 INCF FSR, 1
 CLRF INDF

 MOVLW k: (Move Literal to W) Es una instrucción que carga en el registro de


trabajo W, un literal (constante) k, que en este caso es 20h.
 MOVWF f: (Move W to File), Copia el contenido del registro W a la posición de
memoria f. En este caso, FSR representa una dirección de memoria. FSR es el
registro usado para direccionamiento indirecto. En FSR se carga la dirección de
memoria que se va a direccionar con INDF (otro registro).
 CLRF f: (Clear File), Pone en 0 el registro en la posición de memoria f.
 INCF f: (Increment File), Incrementa en uno el valor almacenado en la posición de
memoria f. .l.
 Este otro programa permite poner a valor lógico uno la salida RB0 del
microcontrolador cuando se detecta un valor lógico uno en la entrada RA0 mediante
el uso de saltos incondicionales GOTO (ir a...):

 SIGUE BTFSS PORTA,0 ; testea el pin RA0 del


PORTA, si encuentra un "1" salta una instrucción, de lo
contrario continua
 GOTO APAGA ; salta a la subrutina APAGA
 GOTO ENCIENDE ; salta a la subrutina
ENCIENDE
 APAGA BCF PORTB,0 ; pone en "0" el pin RB0 del
PORTB
 GOTO SIGUE ; vuelve al testeo
 ENCIENDE BSF PORTB,0 ; pone en "1" el pin RB0 del
PORTB
 GOTO SIGUE ; todo de nuevo
 Lenguajes de programación

 Microcontroladores PIC – Programación en C con ejemplos

El microcontrolador ejecuta el programa cargado en la memoria Flash. Esto se denomina


el código ejecutable y está compuesto por una serie de ceros y unos, aparentemente sin
significado. Dependiendo de la arquitectura del microcontrolador, el código binario está
compuesto por palabras de 12, 14 o 16 bits de anchura. Cada palabra se interpreta por
la CPU como una instrucción a ser ejecutada durante el funcionamiento del
microcontrolador. Todas las instrucciones que el microcontrolador puede reconocer y
ejecutar se les denominan colectivamente Conjunto de instrucciones. Como es más fácil
trabajar con el sistema de numeración hexadecimal, el código ejecutable se representa
con frecuencia como una serie de los números hexadecimales denominada código Hex.
En los microcontroladores PIC con las palabras de programa de 14 bits de anchura, el
conjunto de instrucciones tiene 35 instrucciones diferentes.

 LENGUAJE ENSAMBLADOR

Como el proceso de escribir un código ejecutable era considerablemente arduo, en


consecuencia fue creado el primer lenguaje de programación denominado ensamblador
(ASM). Siguiendo la sintaxis básica del ensamblador, era más fácil escribir y comprender
el código. Las instrucciones en ensamblador consisten en las abreviaturas con
significado y a cada instrucción corresponde una localidad de memoria. Un programa
denominado ensamblador compila (traduce) las instrucciones del lenguaje ensamblador
a código máquina (código binario).

HEste programa compila instrucción a instrucción sin optimización. Como permite


controlar en detalle todos los procesos puestos en marcha dentro del chip, este lenguaje
de programación todavía sigue siendo popular.

 Ventajas de lenguajes de programación de alto nivel

A pesar de todos los lados buenos, el lenguaje ensamblador tiene algunas desventajas:

 Incluso una sola operación en el programa escrito en ensamblador consiste en


muchas instrucciones, haciéndolo muy largo y difícil de manejar.

 Cada tipo de microcontrolador tiene su propio conjunto de instrucciones que un


programador tiene que conocer para escribir un programa

 Un programador tiene que conocer el hardware del microcontrolador para escribir


un programa

Programa escrito en C (El mismo programa compilado al código ensamblador):


Los lenguajes de programación de alto nivel (Basic, Pascal, C etc.) fueron creados con
el propósito de superar las desventajas del ensamblador. En lenguajes de programación
de alto nivel varias instrucciones en ensamblador se sustituyen por una sentencia. El
programador ya no tiene que conocer el conjunto de instrucciones o características del
hardware del microcontrolador utilizado. Ya no es posible conocer exactamente cómo se
ejecuta cada sentencia, de todas formas ya no importa. Aunque siempre se puede
insertar en el programa una secuencia escrita en ensamblador. Si alguna vez ha escrito
un programa para un microcontrolador PIC en lenguaje ensamblador, probablemente
sepa que la arquitectura RISC carece de algunas instrucciones. Por ejemplo, no hay
instrucción apropiada para multiplicar dos números. Por supuesto, para cada problema
hay una solución y éste no es una excepción gracias a la aritmética que permite realizar
las operaciones complejas al descomponerlas en un gran número operaciones más
simples. En este caso, la multiplicación se puede sustituir con facilidad por adición
sucesiva (a x b = a + a + a + ... + a). Ya estamos en el comienzo de una historia muy
larga... No hay que preocuparse al utilizar uno de estos lenguajes de programación de
alto nivel como es C, porque el compilador encontrará automáticamente la solución a
éste problema y otros similares. Para multiplicar los números a y b, basta con escribir
a*b.

 Lenguaje C

El lenguaje C dispone de todas las ventajas de un lenguaje de programación de alto nivel


(anteriormente descritas) y le permite realizar algunas operaciones tanto sobre los bytes
como sobre los bits (operaciones lógicas, desplazamiento etc.). Las características de C
pueden ser muy útiles al programar los microcontroladores. Además, C está
estandarizado (el estándar ANSI), es muy portable, así que el mismo código se puede
utilizar muchas veces en diferentes proyectos. Lo que lo hace accesible para cualquiera
que conozca este lenguaje sin reparar en el propósito de uso del microcontrolador. C es
un lenguaje compilado, lo que significa que los archivos fuentes que contienen el código
C se traducen a lenguaje máquina por el compilador. Todas estas características hicieron
al C uno de los lenguajes de programación más populares.
La figura anterior es un ejemplo general de lo que sucede durante la compilación de
programa de un lenguaje de programación

Teclado matricial

Un teclado matricial es un simple arreglo de botones conectados en filas y colúmnas, de


modo que se pueden leer varios botones con el mínimo número de pines requeridos. Un
teclado matricial 4×4 solamente ocupa 4 lineas de un puerto para las filas y otras 4 lineas para
las colúmnas, de este modo se pueden leer 16 teclas utilizando solamente 8 líneas de un
microcontrolador. Si asumimos que todas las columnas y filas inicialmente están en alto (1
lógico), la pulsación de un botón se puede detectar al poner cada fila a en bajo (0 lógico) y
checar cada columna en busca de un cero, si ninguna columna está en bajo entonces el 0 de
las filas se recorre hacia la siguiente y así secuencialmente.

Un modo simple de detectar la tecla presionada es incrementar una variable con la cuenta de
las teclas revisadas, de este modo al detectaruna pulsación el valor de la cuenta será el valor
de la tecla presionada. Si al final no se presionó ninguna tecla la variable se pone a cero y la
cuenta vuelve a comenzar. El puerto B del microcontrolador 16f628 (así como en el
16f877) viene preparado especialmente para el control de un teclado matricial 4×4. Para
tener siempre un valor de 1 lógico en las colúmnas del teclado (parte alta del puerto B del
pic) es necesario conectar resistencias de pull-up, sin embargo el puerto B cuenta con
resistencias de pull-up integradas, de ese modo es posible trabajar con un teclado matricial
sin necesidad de ningún componente externo.
Concepto de pantalla LCD: 16*2
¿Qué es un LCD?

El LCD (Liquid Crystal Dysplay) o pantalla de cristal líquido es un dispositivo empleado


para la visualización de contenidos o información de una forma gráfica, mediante
caracteres, símbolos o pequeños dibujos dependiendo del modelo. Está gobernado por
un microcontrolador el cual dirige todo su funcionamiento.
En este caso vamos a emplear un LCD de 16x2, esto quiere decir que dispone de 2
filas de 16 caracteres cada una. Los píxeles de cada símbolo o carácter, varían en
función de cada modelo.
¿Como es su conexionado?
En la siguiente imagen de Proteus se puede observar la estructura de sus pines.
Lo podemos dividir en los Pines de alimentación, pines de control y los pines del bus
de datos bidireccional. Por lo general podemos encontrar ademas en su estructura los
pines de Anodo de led backlight y cátodo de led backlight.

Pines de alimentación:

Vss: Gnd
Vdd: +5 voltios
Vee: corresponde al pin de contraste, lo regularemos con un potenciómetro de 10K
conectado a Vdd.

Pines de control:

RS: Corresponde al pin de selección de registro de control de datos (0) o registro de


datos(1). Es decir el pin RS funciona paralelamente a los pines del bus de datos.
Cuando RS es 0 el dato presente en el bus pertenece a un registro de
control/instrucción. y cuando RS es 1 el dato presente en el bus de datos pertenece a
un registro de datos o un carácter.
RW: Corresponde al pin de Escritura (0) o de Lectura(1). Nos permite escribir un dato
en la pantalla o leer un dato desde la pantalla.
E: Corresponde al pin Enable o de habilitación. Si E(0) esto quiere decir que el LCD no
esta activado para recibir datos, pero si E(1) se encuentra activo y podemos escribir o
leer desde el LCD.

Pines de Bus de datos:


El Bus de datos bidireccional comprende desde los pines D0 a D7. Para realizar la
comunicación con el LCD podemos hacerlo utilizando los 8 bits del bus de datos(D0 a
D7) o empleando los 4 bits mas significativos del bus de datos(D4 a D7). En este caso
vamos a explicar la comunicación con el bus de 4 bits.

¿DDRAM y CGROM?

Son las dos zonas de memoria del LCD.


La memoria DDRAM(Data Display Ram): corresponde a una zona de memoria
donde se almacenan los caracteres que se van a representar en pantalla. Es
decir es la memoria donde se almacenan los caracteres a mostrar con su
correspondiente posición.

La memoria CGROM es una memoria interna donde se almacena una tabla con
los caracteres que podemos visualizar en el lcd. En la imagen podemos ver un
ejemplo de la tabla con un contenido de 192 caracteres.

La memoria CGRAM(Character Generator Ram): en ella se pueden almacenar


nuestros propios caracteres.
La librería del LCD:
Para poder visualizar los caracteres o símbolos en el LCD es necesario que en
el programa de código fuente a emplear, incluyamos la librería de este.
En este caso empleamos la librería "lcd.c", la cual hemos modificado. Siempre
que utilicemos una librería de este tipo tendremos que analizarla para saber
cuales son los pines de control y los pines para el Bus de datos, en este caso
podemos observar que están definidos al comienzo de la misma.

#define LCD_ENABLE_PIN PIN_D0


#define LCD_RS_PIN PIN_D1
#define LCD_RW_PIN PIN_D2
#define LCD_DATA4 PIN_D4
#define LCD_DATA5 PIN_D5
#define LCD_DATA6 PIN_D6
#define LCD_DATA7 PIN_D7

En el resto de la librería se puede encontrar todas las estructuras necesarias


así como las funciones que nos permiten utilizar nuestro LCD.
Podemos encontrar funciones como :

lcd_init: inicializa el lcd.


lcd_gotoxy: establece la posicion de escritura en el lcd.
lcd_putc: nos muestra un dato en la siguiente posición del lcd, podemos
emplear funciones como \f para limpiar el display, \n cambio a la segunda línea,
\b mueve una posición atrás.
lcd_getc(x,y): devuelve caracteres a la posición x,y.
Otras funciones: lcd_send_nibble(BYTE n), lcd_send_byte(BYTE address,
BYTE n).

Aquí se puede ver un ejemplo de una sencilla programación en una Pic control, y
muestra de datos en el LCD, son datos inespecíficos que no muestran ninguna
información.
Rectificador de media onda

Circuito rectificador de media onda

Es construido con un diodo ya que este puede mantener el flujo de corriente en una sola
dirección, se puede utilizar para cambiar una señal de CA a una de CC. En la figura I. se
muestra un circuito rectificador de media onda. Cuando la tensión de entrada es positiva,
el diodo se polariza en directo y se puede sustituir por un corto circuito. Si la tensión de
entrada es negativa el diodo se polariza en inverso y se puede remplazar por un circuito
abierto. Por tanto cuando el diodo se polariza en directo, la tensión de salida a través de
la carga se puede hallar por medio de la relación de un divisor de tensión. Sabemos
además que el diodo requiere 0.7 voltios para polarizarse, así que la tensión de salida
está reducida en esta cantidad (este voltaje depende del material de la juntura del diodo).
Cuando la polarización es inversa, la corriente es cero, de manera que la tensión de
salida también es cero. Este rectificador no es muy eficiente debido a que durante la
mitad de cada ciclo la entrada se bloquea completamente desde la salida, perdiendo así
la mitad de la tensión de alimentación. El voltaje de salida en este tipo de rectificador es
aproximadamente 0.45 veces el voltaje eficaz de la señal de entrada

 Rectificador de onda completa

El puente rectificador de onda completa es un circuito electrónico utilizado en la conversión de


una corriente alterna en continua. Este puente rectificador está formado por 4 diodos. Existe una
configuración en donde se tiene un diodo, esta se le conoce de media. El rectificador de onda
completa, tiene 4. Recordemos antes que nada, que el diodo, se puede idealizar como un
interruptor. Si el voltaje es positivo y mayor que el voltaje en directa, el diodo conduce.
Recordemos que el voltaje en directa de un diodo de silicio esta sobre los 0.7V. Si el diodo esta
polarizado en inversa no conduce. Gracias a esto podemos generar dos caminos de nuestro puente
rectificador de onda completa. Uno para la primera mitad del periodo, que es positiva y otro para
la segunda, que es negativa.

 FILTRADO Y REGULACIÓN DE UN PUENTE RECTIFICADOR DE


ONDA COMPLETA

El puente rectificador de onda completa es un dispositivo formado por cuatro diodos,


como se vio con anterioridad. Además de la etapa de rectificación, es importante
mencionar que es necesario eliminar la componente de AC. En este caso
un capacitor con capacitancia, relativamente alta, puede mantener el voltaje del sistema.
Debido a cuestiones de que la impedancia de la carga modifica el comportamiento del
capacitor, tenemos que buscar los valores del capacitor ideales. A medida que
incrementa la corriente, el factor de riso incrementa, y el voltaje RMS decrementa. A
continuación se presenta el rectificador de onda completa, considerando una carga y con
un capacitor.

Figura 4: Rectificador de onda completa con interruptor para carga.


Las respuestas de este sistema, son las siguientes. Primero con el interruptor abierto, esto
es el voltaje de salida sin carga.

Figura 5: Rectificador de onda completa sin carga.


Después con el interruptor cerrado, esto es, con el voltaje de salida, considerando la
carga.
https://hetpro-store.com/TUTORIALES/rectificador-de-onda-
completa/

Potrebbero piacerti anche