Haz una pregunta
  Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos
Foros Registrarse ¿Olvidaste tu contraseña?

Temas similares

03/08/2012 #1


ayuda con pic16f877a on off (led) un pulsador en pic c compiler
hola les agradeceria enormemente la ayuda soy nuevo en esto de los pic´s y actualmente estoy trabajando en un sistemade control de un led on off osea al presionar y soltar un boton conectado al (pin_a1) el led que esta en el (pin_b0) enciende quedando encendido y se apaga cuando vuelva a presionar el boton me refiero a un "interruptor digital on of con un boton "

//en pic c compiler//
esto es lo que llevo hasta ahora;

void main()
{
set_tris_a(0b11111111);
set_tris_b(0b00000000);
while(true){
if(input(pin_A1)==0)
output_low(LED);
if(input(pin_A1)==1)
output_high(LED);
}
}

lo pruebo en proteus y al presionar el boton el led enciendo pero cuando lo suelto se apaga y en lealidad lo que quiero es que se quede encendido . y apagarlo presionando el boton otra vez
03/08/2012 #2

Avatar de hamster

Código:
while(true){

if(input(pin_A1)==0)
output_low(LED);

if(input(pin_A1)==1)
output_high(LED);
}
// Tu código hace: Si PINA1 = 0 _ (LED_OFF) * SI PINA1 = 1 _ (LED_ON)
// segun lo que dices deberia de ser
// Si PINA1 = 0 _ (negar_LED y salir hasta que PINA1 sea distinto de 0) ó algo similar
03/08/2012 #3

Avatar de electroconico

EDJMM9 dijo: Ver Mensaje
hola les agradeceria enormemente la ayuda soy nuevo en esto de los pic´s y actualmente estoy trabajando en un sistemade control de un led on off osea al presionar y soltar un boton conectado al (pin_a1) el led que esta en el (pin_b0) enciende quedando encendido y se apaga cuando vuelva a presionar el boton me refiero a un "interruptor digital on of con un boton "

//en pic c compiler//
esto es lo que llevo hasta ahora;

void main()
{
set_tris_a(0b11111111);
set_tris_b(0b00000000);
while(true){
if(input(pin_A1)==0)
output_low(LED);
if(input(pin_A1)==1)
output_high(LED);
}
}

lo pruebo en proteus y al presionar el boton el led enciendo pero cuando lo suelto se apaga y en lealidad lo que quiero es que se quede encendido . y apagarlo presionando el boton otra vez
Puesde usar lo siguiente:

Código:
if(input(pin_A1)==0)    // Si el boton cuando es presionado pasa de 1 a 0 .
   output_toggle(LED); //Cambia de estado
Al usar botones y lo quieras probar en fisico recuerda usar alguna rutina antirebotes.
Para hacerlo facilito agrega un retardo de minimo 20ms despues de presionar el boton.

Saludos!
04/08/2012 #4


muchas gracias funciona al a perfeccion . lo aplique asi


void main()
{


// control on off led en (pin_b2)//

while (true){

if(input(pin_A1)==0){ //presionando boton//
delay_ms(30); //retardo anti rebotes//
if(input(pin_A1)==0)
output_toggle(pin_b2);
while(input(pin_A1)==0);
}

}
}
Respuesta
¿Tienes una mejor respuesta a este tema? ¿Quieres hacerle una pregunta a nuestra comunidad y sus expertos? Registrate

Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos

Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO ©2011, Crawlability, Inc.