En paypal.me/10electronica Pueden colaborar con un aporte voluntario para poder continuar con el blog. Muchas gracias por visitar la página.

Entradas populares

jueves, 28 de octubre de 2010

El lenguaje Arduino

El lenguaje


El lenguaje del Arduino está basado en C/C++ y soporta todos las cobstrucciones C estandar y algunas características de C++. Lo vincula con el AVR Libc y permite el uso de cualquiera de sus funciones: mira el manual del usuario para más detalles. Texto extraido de arduino.cc.

[A] Estructura

void setup()

La función setup() es llamada cuando un sketch comienza. Se usa para inicializar variables, modos de pines, etc. La función setup solo se ejecutará una vez, despues de cada encendido o reseteo de la placa Arduino.

void loop()

Despues de crear la función setup(), la cual inicializa y establece los valores iniciales, la función loop() hace precisamente lo que su nombre sugiere, y realiza un bucle infinito, permitiendo a tu programa cambiar y responder.

(1) Estructuras de Control

if
if...else
for
switch case
while
do...while
break
continue
return
goto

(2) Sintaxis Adicional

; (punto y coma)
{} (llaves)
// (comentario de una linea)
/* */ (comentario de múltiples lineas)
#define (mejor usar const)
#include

(3) Operaciones Aritméticas

= (asignamiento)
+ (adición)
- (substracción)
* (multiplicación)
/ (división)
% (módulo)

(4) Operadores de Comparación

== (igual)
!= (no igual)
< (menor)
> (mayor)
<= (menor o igual)
>= (mayor o igual)

(5) Operadores Booleanos

&& (and)
|| (or)
! (not)

(6) Operadores de Acceso a Punteros

* (dereference operator)
& (reference operator)

(7) Operaciones con Bits

& (and)
| (or)
^ (xor)
~ (not)
<< (left)


>> (right)
(8) Operadores de composición

++ (incremento)
-- (decremento)
+= (adición)
-= (substracción)
*= (multiplicación)
/= (división)
&= (and)
|= (or)

[B] Funciones

pinMode(pin, mode)

Configura el pin especificado para ser de entrada o salida. PIN (el número de pin), MODE (o INPUT o OUTPUT).


digitalWrite(pin, value)

Escribe un valor ALTO o BAJO en el pin digital. Si el pin ha sido configurado como OUTPUT, su voltaje se pondrá al valor correspondiente: 5v (o 3.3v) para un valor ALTO, y 0v para un valor BAJO. Si el pin se configuró como INPUT, escribiendo un valor ALTO activará una resistencia pull-up interna de 20K, escribiendo un valor BAJO desactivará el pull-up. PIN (el número de pin), MODE (o INPUT o OUTPUT).


int digitalRead(pin)

Lee el valor del pin digital especificado, o ALTO o BAJO. PIN (el número de pin).


analogReference(type)

Configura el voltaje de referencia usado en la entrada analoógica. Las opciones son: DEFAULT (5v), INTERNAL (1.1v en el ATmega168 y 2.56v en el ATmega8) y EXTERNAL (el voltaje aplicado al pin AREF es usado como referencia).


int analogRead(pin)

Lee el valor del pin analógico especificado. Convierte la entrada entre 0 y 5v en un valor entero entre 0 y 1023. PIN (el número de pin).


analogWrite(pin, value) - PWM

Escribe un valor analógico (onda PWM) en un pin. Puede ser usado para variar la intensidad de un LED o mover un motor a diferentes velocidades. PIN (el número del pin), VALUE (entre 0 y 255).


shiftOut(dataPin, clockPin, bitOrder, value)

Desplaza un byte de datos un bit de cada vez. Empieza por el mas (el de la izquierda) o el menos (el de la derecha) bit significante. Cada bit es escrito por oden en un pin de datos, despues de que un pin reloj conmute para indicar que el bit esta listo. DATAPIN (el pin el cual devuelve cada bit, int), CLOCKPIN (el pin que conmuta cuando el DATAPIN se pone al valor correcto, int), BITORDER (que ordena el desplazamiento de los bit, o MSBFIRST o LSBFIRST), VALUE (el dato a desplazar).


unsigned long pulseIn(pin, value)

Lee un pulso (o ALTO o BAJO) de un pin. Por ejemplo, si el valor es ALTO, pulseIn() espera a que el pin se ponga en ALTO, empieza a contar, espera a que el pin se ponga BAJO y para de contar. PIN (número de pin), VALUE (tipo de pulso a leer, ALTO o BAJO), TIMEOUT (el número de microsegundo a esperar para que empiece el pilso, es opcional, por defecto es de un segundo, unsigned long). Devuelve la longitud del pulso en microsegundos o 0 si no ha empezado el pulso despues del TIMEOUT (unsigned long).


unsigned long millis()

Devuelve el número de milisegundos desde que la placa Arduino empezó a ejecutar el programa. Este número se pondrá a 0 despues de aproximadamente 50 días. Devuelve un unsigned long.


unsigned long micros()

Devuelve el número de microsegundos desde que la placa Arduino empezó a ejecutar el programa. Este número se pondrá a 0 despues de aproximadamente 70 minutos. Devuelve un unsigned long.


delay(ms)

Pausa el programa por un tiempo (en milisegundos) especificado por el parámetro. MS (el número de milisegundos, unsigned long).


delayMicroseconds(us)

Pausa el programa por un tiempo (en microsegundo) especificado por el parámetro. Para delays de mas de unos cuantos microsegundos, deberías usar la función delay(). US (el número de microsegundo, unsigned int).


min(x, y)

Calcula el mínimo de dos números. X (el primer número, de cualquier tipo), Y (el segundo número, de culquier tipo).


max(x, y)

Calcula el máximo de dos números. X (el primer número, de cualquier tipo), Y (el segundo número, de culquier tipo).


abs(x)

Computa el valor absluto de un número. X (el número). Devuelve X si X es mayor o igual a 0, -X si X es menor que 0.


constrain(x, a, b)

Restringe un número para estar en un rango. X (el número a restringir, de cualquier tipo), A (el valor bajo del rango, de cualquier tipo), B (el valor alto del rango, de cualquier tipo). Devuelve X si X esta entre a y b, A si X es menor que A, B si X es mayor que B.


pow(base, exponent)

Calcula el valor de un número elevado a una potencia. BASE (el número, float), EXPONENT (el exponente, float). Devuelve un double.


sqrt(x)

Calcula la raiz cuadrada de un número. X (el número, de cualquier tipo). Devuelve un double.


sin(rad)

Calcula el seno de un ángulo (en radianes). El resultado será entre 1 y -1. RAD (el angulo en radianes, float). Devuelve el seno del ángulo (double).


cos(rad)

Calcula el coseno de un ángulo (en radianes). El resultado será entre 1 y -1. RAD (el angulo en radianes, float). Devuelve el coseno del ángulo (double).


tan(rad)

Calcula la tangente de un ángulo (en radianes). El resultado será entre ifinito y -infinito. RAD (el angulo en radianes, float). Devuelve la tangente del ángulo (double).


randomSeed(seed)

Inicializa el generador de números pseudo-aleatorios, causando que empiece en un punto arbitrario de su secuencia aleatoria. Esta secuencia, aunque es muy larga, y aleatoria, es siempre la misma. LONG, INT (pasa un número para generar la secuencia).


long random(max)

Genera un número pseudo-aleatorio. MAX (valor del límite superior, exlusive). Devuelve un número aleatorio entre 0 y MAX-1, (long)


long random(min, max)

Genera un número pseudo-aleatorio. MIN (valor del límite inferior, inclusive), MAX (valor del límite superior, exlusive). Devuelve un número aleatorio entre MIN y MAX-1, (long)


lowByte()

Extrae el byte de menor orden (el de la derecha) de una palabra (2 bytes). X (un valor de cualquier tipo). Devuelve un byte.


highByte()

Extrae el byte de mayor orden (el de la izquierda) de una palabra (2 bytes). X (un valor de cualquier tipo). Devuelve un byte.


bitRead()

Lee un bit de un número. X (el número del cual leer el bit), N (que bit leer, empezando en 0 para el bit menos significante, el de la derecha). Devuelve el valor del bit (0 o 1).


bitWrite()

Escribe un bit de una variable numérica. X (la variable numérica en la cual escribir), N (que bit del número escribir, empezando en 0 para el bit menos significante), B (el valor a escribir en el bit, 0 o 1).


bitSet()

Activa (escribe un 1) un bit de una variable numérica. X (la variable numérica), N (que bit poner a 1, empezando por 0 para el bit menos significante (el de la derecha).

bitClear()

Desactiva (escribe un 0) un bit de una variable numérica. X (la variable numérica), N (que bit poner a 0, empezando por 0 para el bit menos significante (el de la derecha).


bit()

Computa el valor del bit especificado (bit 0 es 1, bit 1 es 2, bit 2 es 4, etc.). N (el bit cuyo valor queremos computar). Devuelve el valor del bit.


attachInterrupt(interrupt, function, mode)

Especifica una función a llamar cuando una interrupción externa ocurre. INTERRUPT (el número de la interrupción), FUNCTION (la función a la que se llama con la interrupción ocurre), MODE (LOW: lanzar la interrupcion cuando el pin está en bajo, CHANGE: activar la interrupción cuando el pin cambia de valor, RISING: activar la interrupción cuando el pin cambia de bajo a alto, FALLING: activar la interrupción cuando el pin cambia de alto a bajo.


detachInterrupt(interrupt)

Desactiva la interrupción dada. INTERRUPT (número de la interrupción a desactivar (0 o 1).


interrupts()

Reactiva las interrupciones despues de que hayan sido desactivadas por noInterrupts().


noInterrupts()

Desactiva las interrupciones.


Serial: begin(), available(), read(), flush(), print(), println(), write().


[C] Variables

(1) Constantes

HIGH | LOW
INPUT | OUTPUT
true | false
integer constants
floating point constants

(2) Tipos de datos

void
boolean
char
unsigned char
byte
int
unsigned int
word
long
unsigned long
float
double
string
array

(3) Conversion

char()
byte()
int()
word()
long()
float()

(4) Variable Scope & Qualifiers

variable scope
static
volatile
const

(5) Utilidades

sizeof() (sizeof operator)

jueves, 14 de octubre de 2010

Motores PaP o Motores Paso a Paso

1-Motores PaP o Motores Paso a Paso.

 A diferencia de los Motores-CC que giran a todo lo que dan cuando son conectados a la fuente de alimentación, los Motores-PaP solamente giran un ángulo determinado, los primeros sólo disponen de dos terminales de conexión, mientras los otros pueden tener 4, 5 o 6, según el tipo de motor que se trate, por otro lado los motores de corriente continua no pueden quedar enclavados en una sola posición, mientras los motores paso a paso sí.

 Esas son sólo algunas de las diferencias entre ambos tipos de motores, el primer contacto que tuve con uno de estos fue cuando desarmé una disketera de esas antiguas de 5 1/4, y la pregunta era "como ponerlo en funcionamiento...???" hasta que encontré muy buena información al respecto, y aquí vamos...

 Los motores paso a paso son comúnmente utilizados en situaciones en que se requiere un cierto grado de precisión, por ejemplo en las disketeras anteriormente mencionada puedes encontrarlo unido al cabezal haciéndolo avanzar, retroceder o posicionarse en una determinada región de datos alojadas en el disket.

 El ángulo de giro de estos motores es muy variado pasando desde los 90º hasta los 1.8º e incluso 0.72º, cada ángulo de giro, (también llamado paso) se efectúa enviando un pulso en uno de sus terminales, es decir que por ejemplo en motores que tienen 90º de giro por paso, se requiere 4 pulsos para dar una vuelta completa, mientras que en los de 1,8º necesitas 200 pulsos, y en los otros necesitas 500.

 El que tengo aquí a mano tiene un ángulo de giro de 3,6º es decir que necesita 100 pulsos para dar una vuelta completa, esto puede variar según la forma de control que quieras utilizar.

 Los Motores-PaP suelen ser clasificado en dos tipos, según su diseño y fabricación pueden ser Bipolares o Unipolares, aquí tienes un par de imágenes que lo diferencian el uno del otro...



 Espero que hayas notado la diferencia, bueno, es que mientras los Unipolares disponen de dos bobinas independientes los Bipolares parecieran tener 4 debido al terminal central que es el común de cada par de bobinas, pues a eso se debe aquello de los 6 cables y que si unes los terminales Com1 y Com2 tienes un terminal común y 4 terminales de control (es decir 5 cables). Bien, ahora veamos como controlar estos motores...

2- Motores Bipolares

  Si tienes la suerte de toparte con uno de estos,(el que tengo yo lo saqué de un disco duro, :op) deberás identificar los cables 1a, 1b, 2a y 2b, lo cual es muy sencillo, ya que si utilizas un tester puedes medir la resistencia entre cada par de terminales, ya que los extremos 1a y 1b deben tener la misma resistencia que los extremos 2a y 2b, ahora si mides la resistencia en forma cruzada no te marcará nada ya que corresponden a bobinas distintas.

 Bien, pasemos ahora a lo más interesante que es controlar estos motores bipolares.

 El tema es que para hacerlo debes invertir las polaridades de los terminales de las bobinas 1 y 2 en una determinada secuencia para lograr un giro a derecha, y en secuencia opuesta para que gire a izquierda, la secuencia sería la que se muestra en esta tabla...



 Recuerda que 1a y 1b corresponden a un misma bobina, mientras 2a y 2b corresponden a la
otra...

 Esto de invertir polaridades ya lo vimos anteriormente, lo que necesitamos ahora es la interfaz para controlar estos motores, ya que en la mayoría de los casos se hace a través de un microcontrolador, o por medio de la PC y como estos entregan muy poca corriente nos la tenemos que arreglar.

 3-El Driver L293 en el Control de Motores bipolares

  Una de las mejores opciones para controlar estos motores es hacer uso del Driver L293B que ya lo mencionamos anteriormente, el circuito en cuestión sería el siguiente...



 En el esquema L1 y L2 son las bobinas del motor, los diodos D1 a D8 son para proteger al integrado de las sobretensiones generadas por dichas bobinas, las líneas marcadas en azul corresponden a la tensión de alimentación de los motores, mientras la marcada en verde a los niveles TTL de control del integrado, los terminales 1 y 9 se unieron para hacer un solo terminal de habilitación, y finalmente 1a, 1b, 2a y 2b son las entradas de control para la secuencia de las bobinas del motor, este circuito puede servir de base para muchos proyectos, ya sea controlado  por PC o por microcontrolador.

De ahora en más todo se reduce a seleccionar un lenguaje de programación y empezar a codificar las secuencias según la tabla anterior.

4-Motores Unipolares

 Estos motores comparado a los anteriores tienen sus ventajas, a pesar de tener mas de 4 cables son más fáciles de controlar, esto se debe a que tienen un terminal común a ambas bobinas.Una forma de identificar cada uno de los cables es analizar la forma de conexión interna de estos motores.



 En la imagen los dos bobinados del motor se encuentran separados, pero ambos tienen un terminal central el cual lo llamaremos común (Com1, Com2) jeje, esto parece de puertos... :o))
Bueno, en fin, la cuestión es que este motor tiene 6 cables, y ahora vamos a ponerle nombre a cada uno de ellos. Con el multímetro en modo ohmetro comenzamos a medir resistencias por todos los cables y para mayor sorpresa solo se obtienen tres valores distintos y que se repiten varias veces...

- No marca nada
- 47 ohm
- 100 ohm

 Eso me dio a mi, pero analicémoslo un poco...

 100 Ohm es el mayor valor por lo tanto corresponde a los extremos de las bobinas, es decir A-B o bien C-D.

47 Ohm es aproximadamente la mitad de 100, por tanto esa debe ser la resistencia entre el terminal común y ambos extremos de una bobina, por ejemplo entre A-Com1 o B-Com1, o bien en la otra bobina, C-Com2 o D-Com2.

 Lo que queda pendiente es cuando no marca nada, y bueno es que en ese momento se midieron los cables de bobinas distintas.

 Ahora suponte que unes los terminales Com1 y Com2, entonces te quedas con un motor de 5 cables.



 Aquí la resistencia entre cualquier terminal y el común es la misma y aproximadamente la mitad de la resistencia entre los extremos de las bobinas.

 Eso fue para identificar el cable común, ahora vamos por los otros...

 Como unimos los cables comunes de cada bobina los cuatro cables restantes serán A, B, C y D, y esto ya es a lo guapo, conecta el terminal común al positivo de la fuente de alimentación, toma uno de los 4 cables que te quedaron, lo bautizas como A y lo mandas a GND y no lo sacas de ahí hasta que te lo diga, el motor quedará enclavado en una sola posición, ahora abre los ojos bien grandes y sostén otro de los tres que te quedaron, presta mucha atención en esta oportunidad ya que cuando lo conectes a GND el motor dará un primer paso y luego ya le estaremos enseñando a caminar jaja...!!!

Aquí pueden ocurrir 3 cosas

-Que el motor gire a derecha, lo bautizas como B
-Que gire a izquierda, lo nombras D
-Si no pasa nada es C

 Si este último cable era B entonces lo desconectas y manteniendo A Conectado buscas D, es decir que gire a izquierda y bueno, C es el que quedó libre. ahora si ya estamos listos para comenzar.

5- Un Circuito para Ponerlo a Prueba
 Lo que necesitamos ahora es un circuito para manejar este motor, y lo vamos a hacer fácil, mira, te consigues un ULN2003 o un ULN2803, que creo es 4 ó 5 veces más económico que el L293B, y es algo así...



 Se trata de un array de transistores Dárlington capaz de manejar hasta 500mA en sus salidas, sólo debes tener en cuenta que las salidas están invertidas respecto de las entradas, observa el diagrama interno de una de ellas, se puede apreciar que son de colector abierto.

 Bien, ahora montemos el siguiente circuito...



 Y sí..., lo pondremos a funcionar con el puerto paralelo, no es que sea miedoso, pero por si las moscas, le puse 4 diodos 1N4148, y a demás un diodo zener de 12v para proteger al integrado, este circuito lo puedes montar en una placa de pruebas, que creo está demás decirlo.

 Nos queda saber como será la secuencia para poner en marcha estos motores.

 Antes de comenzar a explicarlo observa un momento el esquema del circuito y podrás darte cuenta, que los bobinados del motor requieren un pulso de señal negativa para ser activados, como el ULN tiene sus salidas invertidas, cada vez que envíes un "1" por el pin INn se transformará en "0" a la salida, es decir en el pin OUtn correspondiente.

6- Secuencia para Motores-PaP Unipolares

 Estas secuencias siguen el orden indicado en cada tabla para hacer que el motor gire en un sentido, si se desea que gire en sentido opuesto, sólo se debe invertir dicha secuencia.

Básicamente alcancé a conocer 3 formas de controlar estos motores-PaP, la primera es realizar una secuencia que activa una bobina por pulso...



 La verdad es que con esto bastaría, pero al trabajar con una sola bobina se pierde un poco el torque del motor

 La otra propuesta es activar las bobinas de a dos, en este caso el campo magnético se duplica, y en consecuencia el motor tiene mayor fuerza de giro y retención, la secuencia sería la siguiente...



 Lo que noté con este tipo de secuencia es que los movimientos resultan demasiado bruscos, y encima las baterías no te aguantan mucho tiempo, pero dicen que este es de los más recomendados.

 En estas dos formas de control vistas anteriormente se respetan la cantidad de pasos preestablecidas para cada motor, por ej., si tiene un ángulo de giro de 90º, con 4 pasos das una vuelta completa, pero también puedes hacerlo con 8 pasos, para lo cual deberías programar la siguiente secuencia.



 Esta es una combinación de las dos anteriores, y conocida como secuencia de medio paso, por si te preguntas que pasa con la fuerza de giro, sólo puedo decirte que en este caso es bueno tener en cuenta la inercia del motor cuando este se encuentra en movimiento.

 También deberías saber que hay un tiempo determinado para realizar la secuencia en cada uno de los pasos que se debe dar, ya que si la velocidad de los pulsos es demasiado alta, es posible que el motor se vuelva loco y gire en el sentido que se le ocurra, o bien quedarse titubeando en una sola posición sin saber que demonios hacer, respecto a eso, no queda otra que probar, y ver que pasa...

Ten mucha precaución cuando trabajes con el puerto de tu máquina, ya que cualquier error puede traerte grandes dolores de cabeza...!!!

Autor: R Luis

Reguladores Integrados de Tensión

Todo dispositivo electrónico, desde una supercomputadora hasta un simple destellador, debe necesariamente poseer una parte esencial para su funcionamiento. Me estoy refiriendo a la fuente de alimentación. En efecto, diseñada y realizada de mil formas distintas, siempre se encuentra presente en todo equipo electrónico cualquiera sea su uso o complejidad.
  Es por esto que a la hora de realizar cualquier circuito electrónico práctico, el diseñador debe necesariamente realizar una fuente de alimentación acorde a las necesidades del circuito. La mayoría de las veces se le exigía a ésta que mantuviera la tensión de salida constante para cualquier condición de uso (léase distintas corrientes de salida y distintas tensiones de entrada). En muchas ocasiones diseñar tal fuente resultaba una tarea bastante difícil y tediosa. Se debían asumir compromisos que relacionaban la complejidad del diseño con la estabilidad del mismo. Así, por ejemplo, una pequeña fuente que requería pocos componentes presentaba una regulación pésima, mientras que una que ofrecía una buena estabilidad, precisaba una cantidad faraónica de componentes y, por consiguiente, aumentaba el tiempo y el costo del diseño.
  Afortunadamente las empresas diseñadoras de componentes han puesto fin a esta peripecias, presentando, hace ya algunos años, los reguladores integrados. Estos dispositivos de gran utilidad aúnan todas las ventajas de una completa fuente de alimentación en un solo encapsulado reduciendo el problema de un buen diseño a unos pocos componentes. Veamos, ahora, un poco más en profundidad de qué se trata esto.
Reguladores fijos
  En la mayoría de las aplicaciones se requiere una tensión fija y estable de un determinado valor. La línea de reguladores ideales para este tipo de necesidades es la conocida como LM78XX. Las primera letras y dos número corresponden a la denominación, mientras que las dos últimas XX deben ser reemplazados por la tensión de salida requerida. Las tensiones disponibles de observan en la siguiente tabla:

Número
Tensión de salida
LM7805
5 Voltios
LM7806
6 Voltios
LM7808
8 Voltios
LM7809
9 Voltios
LM7812
12 Voltios
LM7815
15 Voltios
LM7818
18 Voltios
LM7824
24 Voltios
LM7830
30 Voltios


  Cada uno de estos dispositivos posee sólo tres terminales, uno corresponde a la entrada de tensión no regulada, otro es la salida regulada y el restante es la masa, común a ambos. En cuanto al encapsulado, conviene aclarar que, si bien están disponibles en varios tipos, generalmente se los suele encontrar en el encapsulado del tipo TO-220, correspondiente a una corriente de salida de 1 amper.
  Resumiendo, y para comprender completamente la simplicidad de una fuente de alimentación de este tipo, sólo basta observar el diseño de la siguiente figura:
  Como se observa, sólo fueron agregados dos capacitores al circuito integrado. Explicaremos la función de cada uno de ellos. C1, que se halla a la entrada del regulador, filtra la tensión de posibles transitorios y picos indeseables, mientras que C2, que se encuentra a la salida, disminuye la tensión de rizado de salida, a la vez que evita oscilaciones.
  En cuanto a la tensión de entrada, se puede ver que es de un rango muy amplio. Por ejemplo, si el regulador elegido es uno de 12 voltios (LM7812), la tensión de entrada podrá ser de entre 15 y 39 voltios.

  Para realizar una fuente de alimentación fija completa, observemos la figura siguiente que constituye sólo una modificación de la anterior:


  En este diseño partimos directamente de la tensión alterna de red (220v), para lograr una tensión perfectamente estable. Primeramente, como es lógico, la tensión es reducida mediante un transformador. Luego, esta tensión alterna de bajo valor es rectificada por el puente D1, obteniéndose así una señal de onda completa. Después la señal se filtra por medio de C1 consiguiéndose de esta forma una tensión continua no estabilizada, que es inyectada al circuito anterior para su regulación.
Características de las fuentes con reguladores integrados
  Vimos como se puede realizar de forma muy sencilla una fuente de tensión fija regulada. Examinemos ahora las excelentes características que ésta posee a pesar de lo simple de su diseño.
  Comencemos por la regulación de línea, que es un parámetro que establece cuánto varía la tensión de salida frente a variaciones en la tensión de entrada. Es posible comprobar que para un cambio de 20 voltios a la entrada se produce una variación de sólo 4 milésimas de voltio a la salida, con lo cual, podemos suponerla inmune a los cambios de tensión de entrada.
  Otro parámetro importante es la denominada regulación de carga, que indica cuánto varía la tensión de salida cuando la corriente varía de un mínimo al máximo. Nuevamente los resultados obtenidos son excelentes: para una variación de corriente de 1,5 amperes, la tensión de salida solamente se modifica en 10 milésimas de voltio.
  También es vital el denominado rechazo al riple. Este valor indica cuántas veces más chico es el valor de la tensión de rizado a la salida con respecto a la entrada. Con el capacitor de salida se obtienen valores típicos de 75 dB. Esto implica que la tensión de rizado a la salida es 5000 veces menor que a la entrada. Esta característica posibilita la disminución de la capacidad de C1, con la reducción de costo y tamaño que esto trae aparejado.

  Finalmente la corriente que este tipo de dispositivo es capaz de entregar:
Para un LM7805 ésta adopta un valor de 2 amperios. Si, en cambio, se trata de un LM7808 a un 7815 ésta es de 1,5A, mientras para reguladores de tensión superiores la corriente es de 1,2A. Es importante aclarar que estos valores son válidos cuando se utiliza un disipador adecuado y cuando la tensión de entrada no es superior en más 15 voltios con respecto a la de salida. Es decir que Vent-Vsal<15V. Igualmente veremos algunos métodos para obtener mayor corriente de salida de estos dispositivos.
  Otra característica importante de esta línea es la protección térmica y contra corriente excesiva: cuando la corriente que atraviesa al integrado adquiere un valor demasiado elevado o cuando su temperatura es excesiva, el integrado disminuye la tensión de salida en forma automática a cero. Debido a estas últimas características estos dispositivos son casi indestructibles.
  En resumen, con unos pocos componentes es posible fabricar, mediante el uso de reguladores de tensión, una fuente de tensión fija con una salida tipo de 1,5A, cuya salida no varía en más de 15mV para cualquier condición. Este tipo de fuente es más que suficiente para la mayoría de las aplicaciones electrónicas.
Reguladores de tensión negativa
  Hasta ahora hemos conocido los reguladores fijos cuya tensión de salida es positiva con respecto a masa. Sin embargo, también existe la serie análoga a la LM78XX, de similares características, cuyas tensiones de salida son negativas con respecto a tierra. Dicha serie es la 79XX. Donde nuevamente las X son reemplazadas por los valores anteriormente mencionados.
  Las características de esta serie son similares a la anterior en lo que respecta a regulación de carga, de línea, rechazo al rizado y corriente de salida. La única diferencia, además claro está de ser reguladores de tensión negativa, en la distribución de pines en el encapsulado.
  A través de la combinación de ambas series es perfectamente factible el diseño de una fuente de tensión simétrica como la indicada en la figura:
  De esta forma obtenemos una fuente simétrica con las características de la anterior fuente simple. Es necesario aclarar que, aunque no es conveniente, las tensiones de salida del regulador positivo y negativo no tienen por qué ser las mismas. Sin embargo, es recomendable que no sean muy diferentes una de la otra.
Reguladores de tensión variable
  En ciertas ocasiones, sobre todo cuando realizamos alguna aplicación de laboratorio, es necesario disponer de una fuente que posea una tensión de salida regulable. Como no podía ser de otra forma existen distintas formas muy simples de realizarlas con reguladores integrados.
  La primera forma que veremos es a través de la utilización de la, a esta altura conocida, serie LM78XX. Este diseño sirve tanto para generar una fuente regulable, como para una fuente fija que provea un valor de tensión no convencional. Por ejemplo, a través de este circuito es factible el desarrollo de una fuente fija de 7,2V con todas las ventajas que los reguladores integrados ofrecen. Un posible diseño es el siguiente:

  El principio de funcionamiento de esta configuración no resulta para nada complicado. Entre sus terminales GND y OUT del regulador se desarrolla una tensión de XX voltios (recordar el significado de las equis). Esta tensión aparece sobre los bornes de R1 desarrollándose así una corriente I de XX/R1 amperios. Ahora bien, la tensión de salida es I*(R1+R2), osea (XX/R1)*(R1+R2). Es decir que, la tensión de salida es de XX*(R2/R1+1) voltios.
  Si R2 es un potenciómetro, entonces disponemos de una fuente de tensión regulable. Basta variar R2 para que la tensión de salida varíe a un valor deseado. Una vez fijado este valor, se mantiene casi constante ya que sólo depende XX (salida del regulador) que es casi constante. Si, por el contrario, R2 es un Preset o una resistencia fija, La tensión de salida se mantendrá casi constante en el valor prefijado creando así una fuente de tensión de un valor no estándar.
  Un detalle importante a resaltar, que surge de la observación del término entre paréntesis de la expresión de salida, es que la tensión de salida mínima es la propia tensión nominal del regulador, cualquiera sea la relación R2/R1 escogida. Es por este motivo, y teniendo en cuenta que la mínima tensión nominal de la línea 78/79XX es de cinco voltios, que este diseño no es útil para el diseño de una fuente de tensión versátil de laboratorio. Para ello recurriremos a otro tipo de regulador integrado.
El LM317

  Para las aplicaciones en las que se requiere diseñar específicamente una fuente regulable de amplio margen de salida, es altamente recomendable utilizar otro regulador el LM317. En principio sus características son similares a cualquier 78XX, es decir un regulador positivo. Sin embargo, posee una diferencia fundamental que lo hace ideal para fuentes regulables: su tensión de referencia(la XX de la expresión anterior) es de sólo 1,25V, con lo ofrece la posibilidad de un amplio rango de tensiones de salida.
  Un diseño estimativo de una fuente de laboratorio, con las excelentes características de regulación y rechazo de rizado ya comentadas, capaz de proveer una tensión de salida entre 1,25V y 25V es el siguiente:

  Se observa que fueron agregados dos diodos y un capacitor con respecto al último circuito. Tanto D2 como D3 evitan que se descargue el nuevo capacitor incluido a través del integrado. A su vez dicho capacitor (C4 en este caso) mejora el rechazo al rizado elevándolo hasta los 80dB.
  Para obtener el rango de salida indicado en la figura R1 debe ser de 220 ohm, R2 un potenciómetro de 5 kohm y D1 y D2 cualquier diodo pequeño como, por ejemplo, 1N4001.
  En cuanto a la corriente de salida, es de 1,5 amperios si se utiliza un disipador adecuado.
Amplificación de la corriente de salida
  Como ya comentamos, la corriente de salida de un regulador integrado de este tipo es, en el mejor de los caso, de dos amperios. Este valor puede resultar insuficiente para algunas aplicaciones de potencia. Es por este motivo que, a través del agregado de algunos componentes, amplificaremos la corriente de salida hasta casi cualquier valor. El principio básico es el siguiente:

  Observando con detenimiento el diseño, se notará que la corriente de salida circula ahora también por RL. Al hacer esto provoca una caída de tensión sobre esta resistencia que, es a su vez, la tensión VBE que se aplica al transistor T1. Cuando la mencionada tensión que cae sobre RL sea levemente superior a 0,6 voltios T1 comenzará a conducir, evitando de esta forma el grueso de la corriente pase por el regulador. De esta forma, y con el uso de uno o varios transistores adecuados, se puede obtener a la salida del regulador casi cualquier corriente.
  El cálculo de RL Resulta, según lo indicado arriba, muy sencillo. Entonces será:
RL=VBE/IL
  En dónde VBE adopta un valor de 0,7 voltios e IL es la máxima corriente que debe circular por el regulador. Un valor típico para esta corriente es de 1 amperio. Realizando los cálculos obtenemos, que para un regulador estándar, RL es de 0.68 ohm 2W.
  En cuánto a T1, sólo basta decir que puede ser cualquier transistor PNP que soporte la corriente máxima de salida de la fuente. (ADVERTENCIA: dicha corriente es muy superior a IL). Si es de gran valor es recomendable colocar dos o más transistores en configuración Darlington.