TODOPIC
Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: pajaro en 12 de Abril de 2009, 20:59:11
-
hola Amigos
tengo una pregunta para ustedes...!
¿En CCS como se asignan eventos a un puerto?
me explico, quiero poner en el puertod pin2, un led1, seria PIN_D2, como
se hace eso con un #define led1 PIN_D2? lo probe y no me funciona, la idea es usar un nombre o un id , esto es posible ?
¿se podria usar lo mismo con los pulsadores?
un saludo.
-
si que puedes pero tienes que definir de diferente forma....
esto esta sacado del manual del ccs
El argumento para las funciones de entrada y salida es una dirección de
bit. Por ejemplo, para el bit 3º del port A (byte 5 de los SFR) tendría un valor
dirección de 5*8+3=43.
Esto se puede definir como sigue: #define pin3_portA 43.
Los pines o patillas de los dispositivos estan definidos como PIN_XX en los
archivos de cabecera *.H. Éstos, se pueden modificar para que los nombres de
los pines sean más significativos para un proyecto determinado.
en la datashell te indica el byte de los SFR.... osea la direccion del puerto....
-
Hola.
Solo con #define LED1 pin_d2 es suficiente. Recuerda que debes colocarlo antes del programa principal. Al definirlo de esa manera ya podras usarlo, p.e:
#define pulsador1 pin_a0
#define LED1 pin_d2
...
void main (void)
{
if(input_state(pulsador1))
output_high(LED1);
else
output_low(LED1);
}
Saludos
-
hola Amigos
Gracias por vuestra rapida ayuda.
Un saludo.
-
hola..
otra dudilla!
para saber si se pulso o no un pulsador se suele usar esto o hay otra forma mejor:
#define LED1 PIN_C1
#use fast_io(A)
if(!input(PIN_A0)) // si esta a uno
{
output_high(LED1); //enciende led1
}
mi rompecabezas es el siguiente:
si tienes definido el pin A0 como entrada, como puede ser que simulandola con proteus en cuanto le pulsas una vez,
es como si se quedara en clavada.
Que explicacion puede tener.
un saludo.
-
Como asi? no entiendo tu duda.
-
aqui pongo un ejemplo que espero aclare tus dudas :mrgreen:
/* Enciende LED en RA3, con pulsador en RA0 */
/* Apaga LED en RA3, con pulsador en RA1 */
/*----------------------------------------------------------------------*/
#include <16F877.h>
#fuses XT,NOWDT,NOPROTECT,NOLVP,PUT,BROWNOUT,NOCPD,NOWRT
#use delay (clock=4000000)
main()
{
set_tris_a(0x37); // RA3 salida, el resto entradas
// 0x37=0011 0111=XX11 0111, no existen RA6-7
output_bit(PIN_A3,0); // Pin RA3 = 0
while(1)
{
if(input(PIN_A0)) // Si RA0=1
output_bit(PIN_A3,1); // Pin RA3 = 1
if(input(PIN_A1)) // Si RA1=1
output_bit(PIN_A3,0); // Pin RA3 = 0
}
}
y aca adjunto el diagrama
salu_2 a to_2
PD: sumergete mas en el foro y veras que hallaras mejores respuestas
-
Para mi los #DEFINE son de lo mas util! pero hay algo que me gusta AUN MAS! los #BIT!!!
por ejemplo, quieres que el pin A1 sea un led:
#bit LED 0x05.1
0x05 es la direccion del puerto A, y 1 es el bit que queremos usar.
De esa manera podemos encender o apagar un led como si de una variable se tratara:
LED = 1; //enciende led
LED = 0; //apaga led
es mucho mas practico que el define, en el que tendrias que hacer
output_high(LED);
el #bit sirve tambien para leer entradas, por ejemplo si tienes un pulsador lo puedes leer de la misma manera que tratabamos al led:
if(PULSADOR == 0){ ... }
mira cuando te conviene usar un define y cuando un bit.
Eso si, recuerda que para usar #BIT tienes que usar el puerto con FAST_IO, y hacer un tris (decir que pines son de entrada y cuales de salida) al inicio del programa.
Salu2
-
Hola Amigos
Querria preguntar unas dudillas, relacionadas con eventos.
Para encender un led me lo mostraron con anterioridad, con CCs el encendido de un led y el hacer sonar un zumbador
funcionan de la misma forma verdad, no hay función especifica verdad?
nivel alto salida
tiempo
nivel bajo bajo
Un saludo.
-
Hola.
Aplica el mismo concepto, lo unico seria que el zumbador no va conectado directamente al PIC si no que lo haces mediante un transistor.
-
Yo tenia un zumbador que medi y consumia menos de 20mA... lo conecte directamente al pic y funciono durante un tiempo, pero ahora hace ruidos extraños... no se si sera que el valor de corriente que medi es una media, y que los valores pico sean mas altos... porque debe ser que me estoy cargando el pin del pic... suena como ahogado :lol:
-
Por cierto pajaro, piensa que en el fondo activar un led no es mas que poner el pin a 5v... y eso sera lo mismo para un led, que para un transistor o para un zumbador... con lo cual no hay funciones especificas para zumbadores....
Salu2
PS: hay zumbadores activos y pasivos. Los activos suenan (vibran) por si mismos solo dandoles voltaje, mientras que los pasivos tienes que enviar tu la señal pulsante (de unos 2khz) para que suenen.
-
Hola.
Los dos zumbadores son activos -necesitan fuente externa-, la diferencia es que uno es piezoelectrico por lo que hay que enviarles la frecuencia a la cual deben sonar.
-
a mi el chino de sureelectronics me vendio los zumbadores como "pasivos" y "activos".... lo que si esta claro es que necesitan fuente externa todos :mrgreen:
-
hola Amigos
mi zumbador es como un condensador de los gordos y cortos, una pata más larga que la otra con polaridad + y -
al ponerle la polaridad correcta de tension pita,y menudos pitidos, pero no da ninguna nota.
un saludo.
-
Seee ... es mas por concepto ... lo activo necesita fuente para funcionar lo pasivo funciona sin mas ...... :mrgreen:
hola Amigos
mi zumbador es como un condensador de los gordos y cortos, una pata más larga que la otra con polaridad + y -
al ponerle la polaridad correcta de tension pita,y menudos pitidos, pero no da ninguna nota.
Pues que la da, la da ... el pitido debe estar ya sintonizado a alguna frecuencia ....
-
Hola amigos
adjunto una foto y un archivos de sonido .
no creo que sea un piezo electrico, hay forma de saber si es un piezo electrico.
creo que es este:
http://www.endrich.com/es/site.php/55515
Un saludo
-
Es "como diria yo" un zumbador piezoelectrico activo... es decir, tiene el piezoelectrico y ademas un circuito oscilador que hace que el piezoelectrico suene..
Que nota es? pues la verdad ni me baje el achivo de audio porque no te sabre decir, pero que mas da? No le estaras dando demasiadas vueltas a esto?
Salu2
-
Hola amigos
Anteriormente lo hacia sonar mediante tensión, y sonaba un pitido de miedo, :-/
como puedo hacer para que cambie el tipo de pitodo,
de aguado a grave se puede controlar con el PIC podria emitir notas, con este componente
Un saludo
-
No, en principio no puedes.... es el propio buzzer el que emite la nota, ya que tiene un circuito propio que hace "vibrar" a determinada frecuencia el piezoelectrico. Quizas puedes hacer una prueba, y enviar desde el pic una frecuencia y ver que sonido emite el zumbador, ya que la suma de las dos frecuencias puede resultar en un sonido diferente... pero dudo que quede bien... Si quieres crear notas comprate un zumbador piezoelectrico "pasivo" (sin circuito vibrador)... tendras que crear tu las frecuencias desde el pic
salu2
-
hola Amigos
si conecto un altavoz a un pic es posible crear sonidos con el pic
sin necesidad de zumbador, se puede hacer, se que para pc en c se puede hacer
conun pic sera posible.
Un saludo.
-
Recuerda que un pic no puede entregar mucha corriente por sus pines... tendras que poner un transistor, o mejor un amplificador de audio para controlar un altavoz
Salu2
-
Hola Amigos
Se le podria poner como circuito adaptador al zumbador, el transistor y la resistencia, para el control de corriente,
como el de la figura 18-2, miren aqui (http://www.pic16f84a.org/index.php?option=com_content&view=article&id=66:practicas-del-libro-en-proteus&catid=43:proteus&Itemid=87)
¿se podría usar un BC547 de estos tipicos faciles de encontrar?
Un Saludo.
-
si pajaro, tal cual el diagrama podrias ponerlo al zumbador.... pero te recomiendo que te leas el articulo de redpic sobre transistores, que tiene en su pagina y tambien en el foro, para saber como calcular la resistencia, y que transistor elegir.
-
Hola Amigo MArttin
Me has leido la mente esa es la pregunta que pretendia formular, jejeje...
Voy a ver lo encuentro ese hilo y lo enlazare aca pero que el proximo que lo lea le sea más facil,
tu sabes el nombre del hilo.
Un saludo.
-
Hola Amigo Marttyn
Me has leido la mente esa es la pregunta que pretendia formular, jejeje...
Soy mago 8)
Transistores en la pagina de RedPic (http://picmania.garcia-cuervo.net/electronica_basica.php#TRANS1)
Sobre transistores, por RedPic, en el foro (http://www.todopic.com.ar/foros/index.php?topic=14117.0)
Salu2
-
Hola amigos
Otro evento que queria poder controlar con el pic, es la conexión de estos potenciometros digitales en formato DIP, que puden llevar de 1 a varios interuptores, que poseen 256 pasos creo o menos, son posibles conectarlos por SPI o I2C, me recomiendan alguno en especial.
¿En proteus hay algunos,.. fisicamente serian equivalente a alguno en realidad,?¿Cual me recomiendan?.Me han hablado.. que es muy facil su control, pero que hay que tener sumo cuidado al elegirlos!
alguna recomendacion?
Un saludo
-
Hola pajaro! deberias abrir un nuevo hilo, o buscar si yae trato este tema en el foro. No creo que debas hacer de este post un centro de resolucion de dudas. No recibiras las respuestas que buscas sobre un potenciometro digital si estas en el subforo de C, y menos con un titulo como "Pulsadores - LED - y otros eventos con CCS".
-
hola Marrty
Lo puse aqui, pensadon que esta relacionado con eventos que se pueden tener con un pic, lo puse bajo c, por que he tratado de hacerlos funcionar bajo C usando CCS pense que podia ponerlo en este mismo hilo.
hay otros hilos, relacionados en el foro pero, no termino de comprender y posiblemente termine enlazando algunos aqui, para que el próximo que lea el hilo, le se más facil de lo que me fue a mi.
De todas formas, te agradezco, tu buena fe y estoy abierto a recomendaciones.
Un saludo
-
hola amigos
siguiendo el consejo del amigo Marrtin he abierto un hilo, con la idea de buscar y recopilar en un solo post toda la información del foro y de fuera de el sobre los potenciometros digitales, clases, tipos de comunicación, pasos que soportan, tensiones de operación, amperios de consumo, tambien intentaré hacer una comparativa y saber en este foro cuales son los más usado, cuales son los mejores en cuanto a calidad y cuales se deben de elegir, en comparacion, calidad, precio y prestaciones.
El simulador Proteus nos trae por defecto unos cuantos siendo compatibles con los que nosotros podemos tener en la realidad.
Como se puden programar utilizado el c DE CCS, y otras cosas relacionadascon el tema.
http://www.todopic.com.ar/foros/index.php?topic=26056.msg213291#msg213291
un saludo.
un saludo.