aprendiendo sobre pics

#1
Hola, a todos gracias a los aportes de este foro y a la paciencia de algunos compañeros e comenzado a programar mis primeros pics; comenze con assembler pero lo he dejado de lado y estoy con el basic y me ha dado buen resultado el cambio aunque tambien sigue leyendo sobre assembler para dominarlos los dos.
Mi pregunta es la siguiente es como puedo comparar un voltaje para realizar una instruciion ....., me explico por ejemplo si quisiera hacer que el pic me mande una señal cuando un voltaje de referencia llega a un punto o que este dentro de un rango como se podria hacer eso creo q usando la entrada analoga del pic o algo asi, si me explican por favor le agradecere loque me importa es la explicacion no el programa, aunque como dije trabajo con basic. lo que quiero hacer es un protector de bateria baja y alta, y el pic puede ser caulquiera, gracias.
 
#2
Hola postor


Mira desgraciadamente no se programar en basic pero creo que tengo una pequeña explicacion... eso lo puedes hacer como tu dijiste con las entradas analogicas del PIC que uses, siendo un protector para bateria tienes que ver que voltaje seria el que verifiques, ya que las patas analogicas solo aguantan 5v de entrada, digamos que el voltaje que verifiques sea de 24v y quieres medirlo pero sin quemar la entrada del PIC eso se soluciona con un simple divisor de voltaje, o con amplificadores operacionales.

Espero haberte ayudado en algo.

Saludos
 
#3
No manejo bien basic, pero tienes 2 opciones, IF:THEN:ELSE o CASE

PHP:
IF variable<5 THEN (accion1) ELSE (accion2)
PHP:
Switch variable
CASE 5
accion 1
CASE 6
accion 2
Case ELSE
accion erronea
La sintaxis puede no ser la correcta, pero alguien que sepa mas de basic te puede dar un ejemplo mas especifico...
 
#4
postor: Depende.... del nivel de voltaje de las señales que quieras manejar...
Si empleas un op amp puedes producir una señal compatible con la entrada de un PIC y procesarla. El op amp seria algo asi como un ADC de un solo bit.

Tambien usar la entrada analoga de un PIC y entonces tienes mas resolucion
Saludos.
 
#5
Hola, compañeros gracias por las respuestas. se que los pics no soportan voltajes que excedan los 5v por lo que entiendo que debo usar divisores de tension , con esa instruccion creo que es la que se hace IF,THEN. y sobre usar opam claro que se como usarlos Tecnogirl(hola de nuevo) , pero lo que deseo es la explicacion. me abre la mente lo de chico3001 y se que estoy cerca. realmente lo que quiero es saber este uso que tiene esa entrada por ejemplo. "puedo decirle si el voltaje que se encuentra en esa entrada en menor que 4v entonces dar salida en otro pin" , es decir con quien comparo este voltaje o si solo le tengo que dar una referencia en el mismo programa creado, espero me hayan entendido mi inquietud. el programa realmente no importa aunque no sea en basic lo que quiero es saber como usar esa entrada como comparador. gracias compañeros.
 
#6
Lo haces de ambas maneras... si vas a comparar contra un valor que nunca cambia entonces das el valor de comparacion como una constante (IF valor<4 THEN....), en cambio si vas a comparar contra un valor que puede cambiar entonces das el valor de comparacion como una variable (IF valor<comparacion THEN .....)
 
#8
Primeramente deverias de determinar si la la tension de la bateria la vas a comprobar utilizando los comparadores analogicos, o bien utilizaras el conversor A/D.
Yo soy de la opinion que siempre hay que elegir el componente mas economico que te ofrezca las prestaciones que necesitas. Para ello puedes utilizar unicamente los comparadores de un pic de 8 pines como el 12f629, o bien de 18 como el 16f628A.

Los comparadores puedes utilizarlos mediante una tension de referencia exterior, o bien utilizar el modulo interno de referencia, el cual dispone de mas de 20 valores de tension distintos.
Puedes ir conmutando la tension de referencia interior para saber cual es la tension que mides.
 
#9
Hola pepechip me podrias dar algun ejemplo(preferiblemente en basic).
es decir la comparacion de voltajes usando las entradas analogicas del micro es que por mas que intento no me sale. por ejemplo
si por la entrada analogica tengo menor 3.5v entonces salida a otro puerto. algo asi espero haberme entendido
si no me responden antes le digitare el programa para que me puedan ayudar con mas conocimiento de el problema. gracias.
 
#10
Hola a todos ando un poco perdido con una declaracion que no me deja avanzar en mi aprendizaje con los pic. Les cuento voy en eso de programar para hacer que me funcionen leds como un semaforo y lo he logrado de maravilla he hecho algunos proyecticos en diferentes formas y me sale muy bien pero ahi uno que no me sale es uno que utiliza la declaracion de la variante de repeticion aqui les dejo como lo escribi para que me digan cual es el problema.

repe var byte 'crea la variante de repeticion llamada repe
inicio: 'inicio
portb=%111111 'enciende todas las señales
pause 500 'pausa por 1/2 seg

semaforo: 'inicio de programa
portb=%100001 'enciende B0(led rojo 2) y B5(led verde 1)
pause 9000 'pausa de 9 segs

for repe=1 to 6 'repite todo el contenido siguiente hasta next 6 veces
portb=%000001 'enciende B0(rojo 2) solamente
pause 250 'pausa 250 milisegundos
portb=%100001 'enciende B0(rojo 2 ) y verde (verde 1) , creando parpadeo en led verde 1
pause 250 'pause 250 miliseg
next 'salta a la proxima declaracion dando fin a las repeticiones
pause 250 'pause 250 mlsgs

portb=%010001 'enciende B4(rojo 2) y B0(amarillo 1)
pause 3000 'pausa 3 segs
portb=%001100 'enciende B3(rojo 2) y verde B2(verde 1)
pause 9000 'pausa 9 segs

for repe=1 to 5 'repite todo el contenido siguiente hasta next 6 veces
portb=%001000 'enciende B3( rojo 1)
pause 250 'pausa de 250 milisgs
portb=%001100 'enciende B2(verde 2) y B3(rojo 1), creando parpadeos en led verde 2
pause 250 'pausa de 250 milisgs
next 'salta la proxima declaracion dando fin a las repeticiones
pause 250 'pausa de 250 milisgs

portb=%001010 'enciende B1( amarillo 2) y B3 (rojo 1)
pause 3000 'pausa de 3 segs
goto semaforo ' ir a semaforo
end 'fin de programa


el semaforo debe parapadear en verde antes de pasar a amarillo. gracias por la ayuda de ante mano.
 
#12
Hola el semaforo me funciona bien, es decir 9 seg en verde y rojo despues 3seg en amarillo y rojo , despues pasa de verde a rojo y de rojo a verde y ura 9 seg es lo que quiero y lo hace pero no parpadea antes de cambiar de verde a amarillo es decir las repeticiones no me trabajan, espero me hayas entendido
 
#14
hola, en un ejemplo que posee el manual que tengo cambia pero no con las misma cantidad de repeticiones, aunque no me dice que puedo o no poner las misma cantidad de repeticiones puede ser eso mi problema probare y les cuento. gracias
 
#15
Una recomendacion siempre util al programar es evitar el uso de las sentencias "GOTO" siempre trae inconvenientes. Porque no probas con algun bucle infinito para el semaforo global? no conozco basic pero por ejemplo en C podrias usar
"DO{
semaforo
}WHILE(1);"

Si todavia tenes dudas con el conversor puedo explicarte algo de eso, por lo menos en forma conceptual.

Saludos
 
#16
Hola, perdon por el tiempo sin contestar, lo probe sin repetir las mismas veces y creando una variante de repeticion diferente y me funciono)(aunque no entiendo porque no funciona con solo una), hola AleMarque y brujo, gracias por sus aportes aunque si les digo que necesito apreder a usar el pic como comparador de tension usando las entrdas analogicas(uso el 16f628a) lo que me ppuedan añadir sobre el mimsmo gracias.
 
#17
Hola quisiera que me contesten algo cuales son los datos mas importantes en tomar en cuenta al leer un data sheet de un pic, se que todo es bueno saberlo pero cuales son los puntos mas importantes a la hora de elegir un pic leyendo el datasheet
 
#18
Lo normal que buscas son los siguientes puntos:

- Numero de pines y encapsulado
- Memoria RAM
- Memoria ROM
- Modulos adicionales (ADC, DAC, USART, etc)
- Velocidad de operacion
- Voltaje de operacion
- Temperatura de operacion
 
#19
Teniendo en cuenta los puntos principales que menciona Chico3001 y tambien saber que uso le daras... ya que como leí alguna vez en este foro:
Para que matar a un perro con una granada si lo puedes matar con un palo...
yo pues dejandote tambien algo... yo reviso si trabajan con oscilador interno...
 

Temas similares

Arriba