el 555 es sin lugar a dudas el integrado mas conocido y mas versatil del planeta
¿pero ke es esta minuscula cajita negra de ocho patitas?
¿cual es su gracias?
el 555 es un circuito multivibrador y se puede encontrar en las tiendas de electronica como un pequeño circuito integrado su encapsulado es dual in line(doble linea)de 8 patitas pero vamos a unn definicion sencilla de multivibrador:
MULTIVIBRADOR: es un circuito electrónico capaz de generar una señal de onda cuadrada a su salida
esta señal a su vez puede ser de 2 tipos:
veamos ahora cada una de sus 8 patitas o pines y la funcion de cada una de ellas
1-MULTIVIBRADOR MONOESTABLE: este funcionamiento conciste en generar una señal accionada por un pulsador conectado entre el pin numero 2 y la tierra o masa el cual genera un cambio de estado a su salida su formula es al siguiente :
donde R1 y C1 son las resistencias asociadas a este circuito veamos ahora una imagen de la respectiva simulacion en proteus
2-MULTIVIBRADOR ASTABLE: este conciste en la generacion de una onda cuadrada la cual posee2 estados un alto y un bajo
esto es controlado por las resistencias y condensadores asociados pudiendo seleccionar los tiempos para esta señal como su frecuencia ademas esta señal puede ser fija como variable a la variación de esta señal
ElectroPic
ROBO-SHICO-SHICO

sábado, 5 de noviembre de 2011
Control de un motor Unipolar de Paso a Paso
en esta oportunidad controlaremos un motor paso a paso unipolar usando para ello el 16f628a
//////////////////////////////////////////////////////codigo////////////////////////////////////////////////////////////////////////////////////
#include <16f628a.h>
#fuses XT //especifica ke utilizara un cristal de cuarzo
#fuses PUT //espera unos milisegundos antes de iniciar
#fuses BROWNOUT //si la tencion no es suficiente para el pic este se reinicia
#use standard_io(b)
#use delay(clock=4000000)//especifica los 4Mhz del cristal de cuarzo
void main()
{
set_tris_a(00001);
set_tris_b(00000000);
do{
//aki va la nueva seccion de codigo usando IF
if(input(PIN_A0)==1)
{
output_high(pin_b0);
delay_ms(50);
output_low(pin_b0);
delay_ms(50);
//
output_high(pin_b1);
delay_ms(50);
output_low(pin_b1);
delay_ms(50);
//
output_high(pin_b2);
delay_ms(50);
output_low(pin_b2);
delay_ms(50);
//
output_high(pin_b3);
delay_ms(50);
output_low(pin_b3);
delay_ms(50);
}
else
{
output_low(pin_b0);
output_low(pin_b1);
output_low(pin_b2);
output_low(pin_b4);
}
}while(true);
}
//////////////////////////////////////////////////////codigo////////////////////////////////////////////////////////////////////////////////////
#include <16f628a.h>
#fuses XT //especifica ke utilizara un cristal de cuarzo
#fuses PUT //espera unos milisegundos antes de iniciar
#fuses BROWNOUT //si la tencion no es suficiente para el pic este se reinicia
#use standard_io(b)
#use delay(clock=4000000)//especifica los 4Mhz del cristal de cuarzo
void main()
{
set_tris_a(00001);
set_tris_b(00000000);
do{
//aki va la nueva seccion de codigo usando IF
if(input(PIN_A0)==1)
{
output_high(pin_b0);
delay_ms(50);
output_low(pin_b0);
delay_ms(50);
//
output_high(pin_b1);
delay_ms(50);
output_low(pin_b1);
delay_ms(50);
//
output_high(pin_b2);
delay_ms(50);
output_low(pin_b2);
delay_ms(50);
//
output_high(pin_b3);
delay_ms(50);
output_low(pin_b3);
delay_ms(50);
}
else
{
output_low(pin_b0);
output_low(pin_b1);
output_low(pin_b2);
output_low(pin_b4);
}
}while(true);
}
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
aki les adjudico uan simulacion en proteus
ahora hagamos algo mas interesante en nuestro proyecto controlemos el sentido del giro en nuestro motor
///////////////////////////////////////////////////codigo/////////////////////////////////////////////////////////
#include <16f628a.h>
#fuses XT //especifica ke utilizara un cristal de cuarzo
#fuses PUT //espera unos milisegundos antes de iniciar
#fuses BROWNOUT //si la tencion no es suficiente para el pic este se reinicia
#use standard_io(b)
#use delay(clock=4000000)//especifica los 4Mhz del cristal de cuarzo
void main()
{
set_tris_a(00011); //fijate aki emos puesto el bit del pin BA1 en 1 esto es para poder aktivar
//el segundo pulsador ubicado en ese pin
set_tris_b(00000000);
do{
//aki va la nueva seccion de codigo usando IF
if(input(PIN_A0)==1)
{
output_high(pin_b0);
delay_ms(50);
output_low(pin_b0);
delay_ms(20);
//
output_high(pin_b1);
delay_ms(50);
output_low(pin_b1);
delay_ms(20);
//
output_high(pin_b2);
delay_ms(50);
output_low(pin_b2);
delay_ms(20);
//
output_high(pin_b3);
delay_ms(50);
output_low(pin_b3);
delay_ms(20);
}
if(input(PIN_A1)==1)
{
output_high(pin_b3);
delay_ms(50);
output_low(pin_b3);
delay_ms(20);
//
output_high(pin_b2);
delay_ms(50);
output_low(pin_b2);
delay_ms(20);
//
output_high(pin_b1);
delay_ms(50);
output_low(pin_b1);
delay_ms(20);
//
output_high(pin_b0);
delay_ms(50);
output_low(pin_b0);
delay_ms(20);
}
else
{
output_low(pin_b0);
output_low(pin_b1);
output_low(pin_b2);
output_low(pin_b4);
}
}while(true);
}
usando un pulsador para encender un led usando lenguaje C con un 16f628a
siguiendo con la pekeña leccion anterior ahora usaremos un pulsador para activar nuestro led del proyecto anterior la unica gran diferencia es ke ahora ocuparemos un pulsador y agregaremos nuevas lineas a nuestro codigo usando la sentencia IF y utilizando para ello el pin del puerto A0
el codigo es el siguiente:
//////////////////////////////////////////////////////////codigo///////////////////////////////////////////////////////////////////
#include <16f628a.h>
#fuses XT //especifica ke utilizara un cristal de cuarzo
#fuses PUT //espera unos milisegundos antes de iniciar
#fuses BROWNOUT //si la tencion no es suficiente para el pic este se reinicia
#use standard_io(b)
#use delay(clock=4000000) //especifica los 4Mhz del cristal de cuarzo
void main()
{
set_tris_a(00001);
set_tris_b(00000000);
do{
//aki va la nueva seccion de codigo usando IF
if(input(PIN_A0)==1) //la entarda "input" de PIN_A0 cumple la funcion de
{ //si el pulsador esta presionado entonces
//ejecuta el sigiente codigo
output_high(pin_b0); //output_high salida del pin BO en alto "lo enciende"
delay_ms(50); //aki va el retardo en milisegundos en el cual el led estara encendido
output_low(pin_b0); //apago el led con la salida del pin OUTPUT_LOW del pin B0
delay_ms(50); //mantengo apagado el led durante 50 milisegundos
//si te fijas amigo mio te daras kuenta ke esto genera una
} //oscilacion la cual permite el encender y apagar el led
else //ELSE cumple otro codigo si no se cumple IF
{ //en este caso mantiene apagado el led si no se a
output_low(pin_b0); //presionado el pulsador manteniendo la salida en bajo
//OUTPUT_LOW del pin B0
}
}while(true);
}
aki una pekeña iamgen de la simulacion en proteus:
el codigo es el siguiente:
//////////////////////////////////////////////////////////codigo///////////////////////////////////////////////////////////////////
#include <16f628a.h>
#fuses XT //especifica ke utilizara un cristal de cuarzo
#fuses PUT //espera unos milisegundos antes de iniciar
#fuses BROWNOUT //si la tencion no es suficiente para el pic este se reinicia
#use standard_io(b)
#use delay(clock=4000000) //especifica los 4Mhz del cristal de cuarzo
void main()
{
set_tris_a(00001);
set_tris_b(00000000);
do{
//aki va la nueva seccion de codigo usando IF
if(input(PIN_A0)==1) //la entarda "input" de PIN_A0 cumple la funcion de
{ //si el pulsador esta presionado entonces
//ejecuta el sigiente codigo
output_high(pin_b0); //output_high salida del pin BO en alto "lo enciende"
delay_ms(50); //aki va el retardo en milisegundos en el cual el led estara encendido
output_low(pin_b0); //apago el led con la salida del pin OUTPUT_LOW del pin B0
delay_ms(50); //mantengo apagado el led durante 50 milisegundos
//si te fijas amigo mio te daras kuenta ke esto genera una
} //oscilacion la cual permite el encender y apagar el led
else //ELSE cumple otro codigo si no se cumple IF
{ //en este caso mantiene apagado el led si no se a
output_low(pin_b0); //presionado el pulsador manteniendo la salida en bajo
//OUTPUT_LOW del pin B0
}
}while(true);
}
aki una pekeña iamgen de la simulacion en proteus:
encender un led con 16f628a en lenguaje c
hola amigos en esta oportunidad aprenderemos a programar un pic o microcontrolador en este caso es el 16F628a en CCS() y la finalidad sera encender un led usando el 16f628a con un cierto retardo paso a paso
y para ello necesitamos tener instalado el PROTEUS y el CCS en nuestro computador
antes que nada el pic16f628a aki les dejo un pekeño diagrama sobre sus pines
en esta oportunidad ocuparemos los 2 puertos pero solo un pin de cada uno para encender nuestro led
este sera el pin RA-0 y el RB-0
para ello empezamos con el codigo:
///////////////////////////////////////////////////////////////codigo//////////////////////////////////////////////////////////////////////////
// las dobles barras son comentarios no son parte del codigo ni son compiladas siempre y cuando esten en al //misma linea
#include <16f628a.h> //especifico la libreria del pic en este caso 16f628a
#fuses XT //especifica ke utilizara un cristal de cuarzo
#fuses PUT //espera unos milisegundos antes de iniciar
#fuses BROWNOUT //si la tencion no es suficiente para el pic este se reinicia
//#use standard_io(b)
#use delay(clock=4000000) //especifica los 4Mhz del cristal de cuarzo
void main() //funcion principal
{
set_tris_a(00001); //configuramos el puerto A como entrada la darle 1 al primer bit
set_tris_b(00000000); //configuramos el puerto B como salida al dejar
//el primer bit en 0 pero como vees en este caso los deje todos en 0
do{ //aki iniciamos un cilo
output_low(pin_b0); //la salida del pin-B0 la dejamos en 0 o apagado
delay_ms(50); //aki le damos un retardo de 50 milisegundos
output_high(pin_b0); //la salida del pin-B0al dejamos como 1 o encendido
delay_ms(50); //nuevamente el mismo retardo de los 50 milisegundos
}while(true);
}
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
ahora viene la simulacion en proteus he aki una imagen:
y para ello necesitamos tener instalado el PROTEUS y el CCS en nuestro computador
antes que nada el pic16f628a aki les dejo un pekeño diagrama sobre sus pines
en esta oportunidad ocuparemos los 2 puertos pero solo un pin de cada uno para encender nuestro led
este sera el pin RA-0 y el RB-0
para ello empezamos con el codigo:
///////////////////////////////////////////////////////////////codigo//////////////////////////////////////////////////////////////////////////
// las dobles barras son comentarios no son parte del codigo ni son compiladas siempre y cuando esten en al //misma linea
#include <16f628a.h> //especifico la libreria del pic en este caso 16f628a
#fuses XT //especifica ke utilizara un cristal de cuarzo
#fuses PUT //espera unos milisegundos antes de iniciar
#fuses BROWNOUT //si la tencion no es suficiente para el pic este se reinicia
//#use standard_io(b)
#use delay(clock=4000000) //especifica los 4Mhz del cristal de cuarzo
void main() //funcion principal
{
set_tris_a(00001); //configuramos el puerto A como entrada la darle 1 al primer bit
set_tris_b(00000000); //configuramos el puerto B como salida al dejar
//el primer bit en 0 pero como vees en este caso los deje todos en 0
do{ //aki iniciamos un cilo
output_low(pin_b0); //la salida del pin-B0 la dejamos en 0 o apagado
delay_ms(50); //aki le damos un retardo de 50 milisegundos
output_high(pin_b0); //la salida del pin-B0al dejamos como 1 o encendido
delay_ms(50); //nuevamente el mismo retardo de los 50 milisegundos
}while(true);
}
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
ahora viene la simulacion en proteus he aki una imagen:
Suscribirse a:
Entradas (Atom)