Foro Sobre Pics

bueno tengo entendido que compraste un pic 16f873, si no entiendes lo del modulo de captura lee el datasheet que alli esta bien explicado, es sencillo y este pic lo tiene incorporado, en pocas palabras el modulo de captura mide el tiempo que transcurre entre dos pulsos mediante un timer.

mientras tanto adjunto un ejemplo sencillo de un frecuencimetro que es muy similar a lo que necesitas ya que cuenta pulsos por segundo, solo tienes que agregar los calculos para convertirlos a RPM, el ejemplo muestra los datos en un lcd (en paginas anteriores adjunte un tutorial) y ademas esta explicado y con comentarios....

trabajale un rato y veras que es facil, te recomiendo tambien proteus para que simules todo y comprendas mejor.
 

Archivos adjuntos

  • Ejemplos.rar
    3.6 KB · Visitas: 181
lo mejor que tienen los microcontroladores pics es su velocidad, lo cual es muy bueno si se trabaja desde un compilador en assembler.
Existen micros de ocho bits que casi alcanzan velocidades de micros de 32 bits de otros fabrcantes como los atmel.
Existe comunicacion uart, spi, can, usb, ethernet, inalambrica, entre otras con estos microcontoladore, asi que no son slo una manera de encendes leds sino que permiten crear grandes proyectos y aplicaciones sorprendentes. Lo unico que hay que hacer es tener paciencia y ganas de ponerlos funcionando

saluds y no eliminen el foro
 
hola me puedes colaborar con un codigo que me convierta los datos que recibo del pic al pc en un archivo txt el pic es el 18f4550

te lo recomiendo urgente
 
como asi en un archivo txt??
osea el pic supongo que lo pondras a mandar los datos por serial?
algun software lo recibe lo empaqueta y le da el formato que quieras por ejemplo .txt
o quieres que el PIC te maneje por software algun tipo de terminal de envio de archivos?
 
?

txt? no se para que, pero esas cosas no se preguntan :p (nada peor que uno preguntar algo y que las respuestas sean : y para que?, esto no es yahoooanswers, es laneros carajo! :p)


pues no explicó bien el hombre, pero me imagino que quiere hacer una especie de data logger, tomar medida de algo y ponerla en un archivo cualquiera para tener los datos através de un cierto tiempo.

si no tiene que ser tan "independiente" el manejo del programa, en hyperterminal hay una opcion de capturar texto que creo que es para eso, si usted quiere es un programa que tome los datos por un puerto, y se los ponga en un archivo, en la red hay codigos para eso en varios lenguajes, por ejemplo : http://www.tizag.com/phpT/filewrite.php , para php.

yo para serte sincero, lo haria mas bien con una base de datos, pero no sabria si ud las maneja asi que no me atrevo a decirle que lo haga asi o asá :p:p:p:p:p:p:p


yo personalmente no te puedo ayudar entregandote un programa funcionando, ademas segun entiendo la politica de laneros es que esto no es un portal de tareas :p, pero si especifica mas la cosa, depronto alguien le da el programa funcionando ahi de buenas.

eso si, ensaye en HYPERTERMINAL o alguna terminal parecida(nunca lo he hecho)
 
tengo ganas de hacerme un proyectico que me tenia rondando la cabeza hace meses y ahora que se algo mas de pics quiero animarme a hacerlo, es algo sencillo pero a la vez algo complicado, pero se tiene que poder hacer sea como sea...

la propuesta es esta.

con saber la temperatura del procesador del computador, aumentar o disminuir la velocidad de unos ventiladores de DC por PWM usando un puente H, estas velocidades y temperaturas mostrarlas en un lcd que ira pegado al pc

La parte que a mi razón es complicada no es el contrl de velocidad sino que la adquisicion de datos del PC, es decir como adquiero la temperatura del proce? para poder realizar el control de velocidad de los ventiladores?
 
con saber la temperatura del procesador del computador, aumentar o disminuir la velocidad de unos ventiladores de DC por PWM usando un puente H, estas velocidades y temperaturas mostrarlas en un lcd que ira pegado al pc

La parte que a mi razón es complicada no es el contrl de velocidad sino que la adquisicion de datos del PC, es decir como adquiero la temperatura del proce? para poder realizar el control de velocidad de los ventiladores?
tu vida seria mucho mas facil si simplemente le pegas un sensor de temperatua al disipador del CPU. asi todo funciona independiente de tu compu.
si insistes en utilizar los datos reales de la motherboard pues tendrias 2 opciones
1. ponerle un software que envie por serial los datos de temperatura al PIC.
(pero ese mismo software podria controlar el LCD y el PWM sin usar ningun PIC cierto?)
2. algunas motherboards tienen sus sensores internos de temperatura por I2C y ofrecen unas lineas para conectarse a ese bus I2C entonces conectarias el PIC al bus para leer los datos. esto depende DEMASIADO del caso especial de cada motherboard.

asi que lo que te recomiendo es que leas la temp del disipador !!!
 
tu vida seria mucho mas facil si simplemente le pegas un sensor de temperatua al disipador del CPU. asi todo funciona independiente de tu compu.
si insistes en utilizar los datos reales de la motherboard pues tendrias 2 opciones
1. ponerle un software que envie por serial los datos de temperatura al PIC.
(pero ese mismo software podria controlar el LCD y el PWM sin usar ningun PIC cierto?)
2. algunas motherboards tienen sus sensores internos de temperatura por I2C y ofrecen unas lineas para conectarse a ese bus I2C entonces conectarias el PIC al bus para leer los datos. esto depende DEMASIADO del caso especial de cada motherboard.

asi que lo que te recomiendo es que leas la temp del disipador !!!
si, eso pensaba en hacer, pero pense que se veria poco "estético" pegarle un sensor de temperatura directamente al discipador, pero si no hay de otra, por que esta jijuemadre como que no tiene esas lineas de coneccion al sensor de temp, todo es por bios.

ahora si se hace eso de conectar el sensor de temp, la temperatura que llega al discipador de este cpu es muy poca, es decir no se calienta mucho, ya que es uno de los ultimos quye consume poco vatiaje y no disipa tanta energia en forma de calor, tendria que ser uno muy sensible y saber a que temp puede llegar ese disipador, para tener un setpoint mas o menos de donde a donde puede acelerar los fans.

algo complejo no?:p
 
ahi vaya tanteando cual va a ser su metodo de control del pwm segun como vea los resultados segun lo que le muestra la motherboard
no debe ser tan complicado manejarlo con el sensor en el disipador
simplemente va a tener que ir viendo que temp le muestra la board e ir ajustando el programa del pic hasta encontrar los resultados que usted quiere
 
pero una cosa es lo que muestra el sensor de la board y el otro es lo que marca el disipador que son cosas muy distintas, por obvias razones el disipador mantendrá mas frio que el procesador, a eso es lo que me refiero, pero ps si, tendre que hacer pruebas a puro rivatuner para sacar temperaturas en IDLE y FULL de carga del cpu
 
pues pongalo lo mas cerca posible del procesador

va a manejar todos los abanicos con el mismo PWM o
va a tener varios PWM diferentes?
cuales abanicos va a manejar?
 
idealmente quisiera que me manejara almenos hasta unos 5 fans, que son los que actualmente usa mi pc, y si, por ahora no seria tan necesario un control dividido de fans, ya que la verdad todo depende de una sola fuente de calor.

los fans a usar son los siguientes:

1 Delantero (12 cm)
1 Para el North Bridge (Esta pendiente mientras me ingenio como se lo monto)(8 cm)
2 Traseros (12 cm)
2 Laterales (1 de 12 cm para CPU)(1 de 14 cm)

Obviamente para ello requeriria hacer algunos calculos con la fuente del pc y los mosfet a utilizar para que me aguante la corriente que consumen los fans, ya que pienso cambiar los actuales por unos mas potentes que me generen mas caudal de aire.

mmm... si buena idea, tendré que ingeniarmelas para pegar esa vaina ahi y que no se caiga. Ahora tengo es que pensar mas que todo en el hardware a usar para el proyecto y costos, ya que es un propuesta y pienso cumplir con dicho cometido para pasearme un ratico por el salon de los moddings de laneros, ya que la idea no es nada mala y sencilla de hacer por otros laneros que tambien les guste este tema del modding que generalmente son muchos y se le miden a todo con tal de engallar el pc:p
 
idealmente quisiera que me manejara almenos hasta unos 5 fans, que son los que actualmente usa mi pc, y si, por ahora no seria tan necesario un control dividido de fans, ya que la verdad todo depende de una sola fuente de calor.

los fans a usar son los siguientes:

1 Delantero (12 cm)
1 Para el North Bridge (Esta pendiente mientras me ingenio como se lo monto)(8 cm)
2 Traseros (12 cm)
2 Laterales (1 de 12 cm para CPU)(1 de 14 cm)
serian 3 fuentes de calor, el cpu la gpu y el chipset

esperemos que el fan delantero no se active nunca,

el del CPU lo deja a la mother?
que CPU tiene???
 
serian 3 fuentes de calor, el cpu la gpu y el chipset

esperemos que el fan delantero no se active nunca,

el del CPU lo deja a la mother?
que CPU tiene???
la vuelta del gpu la veo complicada por el emcapsulado que posee

por que no habria de activarse?

POR SUPUESTO!!!! como le voy a dejar mi CPU que me costó tanto a un dispositivo que hay muchas propabilidades que pueda fallar por X o Y motivo, lo que si pretendo es el que esta posicionado delante de este, el que tiene el cono pegado a la tapa lateral.

Tengo un Core 2 Cuad Q6600 G0, como lo muestra mi firma.
 
como va con eso?
ya empezo?
claro, ya estoy diseñando el programa y seleccionando algunas de la rutinas a usar de mi "banco" programas. La finalizacion como tal, fisicamente de este proyecto puede ser algo demorada ya que por estas fechas ando paila con Mr. $:muerto:

lo unico por ahora sin gastar un solo centavo es termianar y debuguear el programa de tal forma que quede lo mas pulido posible, finalmente simular en proteus y esperar a que consiga la plata que haciendo calculos al aire sale cariñosito el chiste ya que pienso comprar unos fans de buen caudal de aire y algunos materiales que me hacen falta.
 
Buento tengo un problema, es el sigte.

mi micro llega a una parte de la rutina en que debe leer los datos del sensor y visualizarlos constantemente, ahi no hay problema. al momento de generarse un interrupcion que es la de salir de lo que este haciendo y reinicie el lcd y las variables, se pierde el proce por que hay ciertos call y return involucrados en la visualizacion del lcd y lectura del puerto analogo, lo resolvi aumentando un delay de espera a 300mS, pero esto me afecta el refresco de los datos del lcd.

como lo puedo solucionar sin que me afecte el refresh del lcd??

gracias de cualquier forma.

este es mi cod

INICIO CLRF PORTC
CLRF PORTD
CLRF NUM_MENU
CLRF NUM_RPM
CLRF REGX
BSF STATUS,5
MOVLW B'00000110'
MOVWF TRISC
CLRF TRISD
BSF OPTION_REG,7
MOVLW B'00000111'
MOVWF OPTION_REG
BCF STATUS,5
MOVF PORTB,0
MOVLW B'00001000'
MOVWF INTCON
CALL LCD
MOVF PORTB,0
MOVLW B'10001000'
MOVWF INTCON
CALL CONFI_ADC
PARE BTFSS REGX,0
GOTO PARE
CALL MULTIPLICACION1
CALL ADC1
GOTO TERMINAR_ADC


TERMINAR_ADC CALL DEL300
BSF ADCON0,2
GOTO PARE

END
el programa se queda leyendo el puerto analogo, pasandolo a la multiplicacion, luego pasandolo de bin a bcd y finalmente de bcd a ASCII, sospecho que el problema debe estar en en CALL ADC1, ya que en ese punto hay varios call y return llamando a mostrar dato en lcd y llamando a una posicion del lcd, tambien convirtiendo de bin a bcd y bcd a ascii mejor dicho...:S
 

Los últimos temas