Haz una pregunta
  Foros de Electrónica » Temas de Interés » Autotrónica, La Electrónica en movimiento
Foros Registrarse ¿Olvidaste tu contraseña?

Temas similares

16/04/2012 #121


Disculpen, saludos a todos! De igual forma que Dj Bala hare el tacometro que nuestro buen amigo Rijiru aporto para el 16F682A, pero es la primera vez que trabajo con un PIC, mi pregunta es que software deberia emplear y como hago para introducir el software al PIC fisicamente hablando, que pines deberia conectar y a que puerto del ordenador. Si alguien me pudiera ayudar con esto, le estoy desde ya muy agradecido.
19/04/2012 #122


DacidDiaz dijo: Ver Mensaje
Disculpen, saludos a todos! De igual forma que Dj Bala hare el tacometro que nuestro buen amigo Rijiru aporto para el 16F682A, pero es la primera vez que trabajo con un PIC, mi pregunta es que software deberia emplear y como hago para introducir el software al PIC fisicamente hablando, que pines deberia conectar y a que puerto del ordenador. Si alguien me pudiera ayudar con esto, le estoy desde ya muy agradecido.

Hola Maestro.
Te sugiero que uses CSS como compilador para la programación o algun otro producto en C# ya que tienen libreria y ahorra trabajo al armar proyectos con PIC.
Y para "quemar" dicho PIC debes unar entrenadores o programadores que se vender en el mercado por menos de $200 AR o hacerte si te das mañana uno que publicaron aca en el foro. Algunos son con puerto Rs232 y otros USB. La mayoria no necesitan Driver y trabajan bajo S.O windows y Linux.
un ABrazo.

PD: yo tmb estoy siguiendo el tema del velocimetro para volcarlo en un PIC16F877A (c/ coonvertidor ADC).
14/05/2012 #123


Rijiru dijo: Ver Mensaje
Bueno, te dejo el programa en lenguaje C, este si lo puedes alterar

Código:
#include <16f628A.h>
#fuses INTRC, NOWDT, NOPUT, NOMCLR, NOBROWNOUT, NOLVP, NOCPD, NOPROTECT
#use delay(clock=4000000)
#include <lcd_b.c>
int time0, time1;
int16 pulses0, pulses, rpm, time;
int1 rpmbit;
void rpm_get()
{
 rpm=60*pulses;
 if(pulses0!=pulses)
 {
 printf(lcd_putc,"\fRpm \n%Lu", rpm);
 delay_ms(1500);
 }
 pulses=0;
 time1=0;
}
void main()
{
 set_tris_a(0x1F);
 rpm=0;
 time=0;
 time0=0;
 time1=time0;
 pulses=0;
 pulses0=pulses;
 rpmbit=1;
 lcd_init();
 lcd_putc("\fBienvenido\n");
 output_low(PIN_A7);
 do
 {
  diagnostico();
  if(input(PIN_A1))
  {
   if((input(PIN_A0))&&(rpmbit==1))
   {
    pulses++;
    rpmbit=0;
   }
   if((!input(PIN_A0))&&(rpmbit==0))
   {
   rpmbit=1;
   }
   time0++;
   if(time0>=250)
   {
    time1++;
    time0=0;
    if(time1>=4)
    {
     time0=0;
     if(pulses<1)
     {
      lcd_putc("\frpm < 60\nO sin giro");
      delay_ms(500);
     }
     else
     {
      rpm_get();
      pulses0=pulses;
     }
    }
   }
  }
  if(input(PIN_A2))
  {
   output_toggle(PIN_A7);
   if(!input(PIN_A1))
   {
    lcd_putc("\fMotor Apagado");
   }
   delay_ms(500);
  }
  delay_ms(1);
 }
 while(1);
}

solo que el PIN_A2 lo dejas a "1" originalmente se diseño para activar un motor y medir sus RPM's




Saludos



hola amigo vi tu programacion y al copiarla a el programa c y compilar detecta un error con el lcd quisiera saber si tienes una libreria para el programador c porque cuando modifico el archivo en proteus a lcd .c y compilo el programa con el isis el display no muestra simulacion... gracias

---------- Actualizado después de 5 minutos ----------

Rijiru dijo: Ver Mensaje
Bueno, te dejo el programa en lenguaje C, este si lo puedes alterar

Código:
#include <16f628A.h>
#fuses INTRC, NOWDT, NOPUT, NOMCLR, NOBROWNOUT, NOLVP, NOCPD, NOPROTECT
#use delay(clock=4000000)
#include <lcd_b.c>
int time0, time1;
int16 pulses0, pulses, rpm, time;
int1 rpmbit;
void rpm_get()
{
 rpm=60*pulses;
 if(pulses0!=pulses)
 {
 printf(lcd_putc,"\fRpm \n%Lu", rpm);
 delay_ms(1500);
 }
 pulses=0;
 time1=0;
}
void main()
{
 set_tris_a(0x1F);
 rpm=0;
 time=0;
 time0=0;
 time1=time0;
 pulses=0;
 pulses0=pulses;
 rpmbit=1;
 lcd_init();
 lcd_putc("\fBienvenido\n");
 output_low(PIN_A7);
 do
 {
  diagnostico();
  if(input(PIN_A1))
  {
   if((input(PIN_A0))&&(rpmbit==1))
   {
    pulses++;
    rpmbit=0;
   }
   if((!input(PIN_A0))&&(rpmbit==0))
   {
   rpmbit=1;
   }
   time0++;
   if(time0>=250)
   {
    time1++;
    time0=0;
    if(time1>=4)
    {
     time0=0;
     if(pulses<1)
     {
      lcd_putc("\frpm < 60\nO sin giro");
      delay_ms(500);
     }
     else
     {
      rpm_get();
      pulses0=pulses;
     }
    }
   }
  }
  if(input(PIN_A2))
  {
   output_toggle(PIN_A7);
   if(!input(PIN_A1))
   {
    lcd_putc("\fMotor Apagado");
   }
   delay_ms(500);
  }
  delay_ms(1);
 }
 while(1);
}

solo que el PIN_A2 lo dejas a "1" originalmente se diseño para activar un motor y medir sus RPM's




Saludos

hola amigo quisiera saber porque cuando compilo el programa en C sale un erro con el lcd
y no se deja compilar, bien luego lo modifico a lcd. c y esta bien el programa ya no detecta error ahi sino en la variable diagnostico y dice que no esta definida, la otra es que soluciono el eeror dejando la variable diagnostico con // pero el simulador proteus no me deja ver nada en el display. sera algun problema de librerias quisiera sabe si tienes una por ahi para que me la prestes
20/05/2012 #124


Hola soy nobato y quisiera hacer el tacometro propuesto por RIJIRU, seria posible que me pasaran todos los archivos fuentes para poner a andar el tacometro y al mismo tiempo intentar entender el codigo?. Gracias..
24/05/2012 #125


hola
Rijiru dijo: Ver Mensaje
Bueno, te dejo el programa en lenguaje C, este si lo puedes alterar

Código:
#include <16f628A.h>
#fuses INTRC, NOWDT, NOPUT, NOMCLR, NOBROWNOUT, NOLVP, NOCPD, NOPROTECT
#use delay(clock=4000000)
#include <lcd_b.c>
int time0, time1;
int16 pulses0, pulses, rpm, time;
int1 rpmbit;
void rpm_get()
{
 rpm=60*pulses;
 if(pulses0!=pulses)
 {
 printf(lcd_putc,"\fRpm \n%Lu", rpm);
 delay_ms(1500);
 }
 pulses=0;
 time1=0;
}
void main()
{
 set_tris_a(0x1F);
 rpm=0;
 time=0;
 time0=0;
 time1=time0;
 pulses=0;
 pulses0=pulses;
 rpmbit=1;
 lcd_init();
 lcd_putc("\fBienvenido\n");
 output_low(PIN_A7);
 do
 {
  diagnostico();
  if(input(PIN_A1))
  {
   if((input(PIN_A0))&&(rpmbit==1))
   {
    pulses++;
    rpmbit=0;
   }
   if((!input(PIN_A0))&&(rpmbit==0))
   {
   rpmbit=1;
   }
   time0++;
   if(time0>=250)
   {
    time1++;
    time0=0;
    if(time1>=4)
    {
     time0=0;
     if(pulses<1)
     {
      lcd_putc("\frpm < 60\nO sin giro");
      delay_ms(500);
     }
     else
     {
      rpm_get();
      pulses0=pulses;
     }
    }
   }
  }
  if(input(PIN_A2))
  {
   output_toggle(PIN_A7);
   if(!input(PIN_A1))
   {
    lcd_putc("\fMotor Apagado");
   }
   delay_ms(500);
  }
  delay_ms(1);
 }
 while(1);
}

solo que el PIN_A2 lo dejas a "1" originalmente se diseño para activar un motor y medir sus RPM's




Saludos
quisiera saber a que te refieres con <lcd_b.c> ya que mi programa no compila y saca error toca solo dejarlo en lcd.c pero en proteus no simula gracias..
26/05/2012 #126

Avatar de COSMICO

Hola amigo rijiru.
Ahora lo que necesito es pasar este tacometro a velocimetro en metros por minuto.
Tengo estos datos.

velocidad maxima 200rpm.
tiempo en segundos :0,005
pulsos por vuelta del motor :1
diametro del disco acoplado al motor: 32cm.
radi: 5.09

Medir velocidad lineal o tangencial.

VL= 2*3.1416*5.09
-------------------------= 6396.2976 cm/min
0.005

pasando a metros:
6396.2976
-------------=63.93 m/min
100

Que opinas ?
26/05/2012 #127


Hola alguien podria pasarme el proyecto completo? es de urgencia, el codigo de riu no incluye las librerias que uso.. porfa!
15/08/2012 #128


Hola; yo necesitaria hacer un tacometro pero con micro de motorola, con el freescale. Utilizando un motor paso a paso el cual tiene una ruedita del mouse (dentada) la cual tiene entre medio un fotosensor, teengo q medir las RPM, y no se bien como programar el MC908Qb4, el mismo programa en C que hay posteado funcionara?
16/08/2012 #129


Tacometro con velocidad regulada de motor con teclado 4x4
Que onda camaradas, les traigo este proyecto para que lo revisen y a ver si a alguien le sirve para la escuela o para pasar el rato. Usa el pic 18f4550, un teclado matricial 4x4, timer 0 y 1 internos del pic, y para hacer la medición un led emisor y un fototransistor y un oscilador xtral externo de 4MHz. Para la compilación se usa el PIC C,la librería "kbd_lib.c" la pueden quitar y poner la que viene de stock en el PIC C "kbd.c".
Cualquier duda o pregunta andaré por aquí, suerte!.
Archivos Adjuntos
Tipo de Archivo: zip tacometro.zip (2,8 KB (Kilobytes), 451 visitas)
17/09/2012 #130


hey gallodraft no tendras el diagrama en proteus esq lo q pasa q no encuentro el fototransistor y no se si me falte alguna libreria o el proteus q tengo es antigua espero tu respuesta...urge...
17/09/2012 #131


Dj BaLa dijo: Ver Mensaje
Hola manuelguillen, mira utilice lo que compartio Rijiru en la primera pagina, yo grabe en el pic el .Hex que viene en la carpeta, pero también esta en lenguaje C para modificar el programa. El Pic que utilice es el 16f628A tiene 18 pines. Y un integrado 74HC14 compuerta NOT para evitar los rebotes tiene 14 pines. El único cambio que hice, fue cambiar el optoacoplador, por fototransistor infrarrojo y un fotodiodo emisor infrarrojo. Que cumplen la misma función que el optoacoplador. Adjunto el archivo que compartio Rijiru, con una modificacion de alimentacion en el LCD 16X2 del proteus.


oye amigo abri el archivo en C estoy utlizando PIC C Compiler en la version y me marca un error pone una ventana y luego dice file not found y no se porq soy nuevo en esto espero pronto tu respuesta...

---------- Actualizado después de 3 minutos ----------

gallodraft dijo: Ver Mensaje
Que onda camaradas, les traigo este proyecto para que lo revisen y a ver si a alguien le sirve para la escuela o para pasar el rato. Usa el pic 18f4550, un teclado matricial 4x4, timer 0 y 1 internos del pic, y para hacer la medición un led emisor y un fototransistor y un oscilador xtral externo de 4MHz. Para la compilación se usa el PIC C,la librería "kbd_lib.c" la pueden quitar y poner la que viene de stock en el PIC C "kbd.c".
Cualquier duda o pregunta andaré por aquí, suerte!.
hola amigo oye quize compilar el archivo q viene en diagrama en c pero me marca un error kbd_init(); me dice q undefined identifier...espero tu respuesta...
Imágenes Adjuntas
Tipo de Archivo: png Sin título.png (150,9 KB (Kilobytes), 37 visitas)
Tipo de Archivo: png Sin título1.png (139,3 KB (Kilobytes), 35 visitas)
17/09/2012 #132


chuu dijo: Ver Mensaje
hey gallodraft no tendras el diagrama en proteus esq lo q pasa q no encuentro el fototransistor y no se si me falte alguna libreria o el proteus q tengo es antigua espero tu respuesta...urge...
Que tal, no lo tengo en proteus, y recuerdo que al simularlo( en la computadora de otra compañero) usamos un push button para hacer el trabajo del fototransistor, o sea manualmente mandabamos pulsos de señal al pic, lo puedes hacer también con un generador de funciones, metiendole una señal a una determinada frecuencia y simularlo, no es complicado, pero para mi se me hizo más fácil usando el push.

---------- Actualizado después de 8 minutos ----------

chuu dijo: Ver Mensaje
oye amigo abri el archivo en C estoy utlizando PIC C Compiler en la version y me marca un error pone una ventana y luego dice file not found y no se porq soy nuevo en esto espero pronto tu respuesta...

---------- Actualizado después de 3 minutos ----------



hola amigo oye quize compilar el archivo q viene en diagrama en c pero me marca un error kbd_init(); me dice q undefined identifier...espero tu respuesta...
Que tal, si ya lo quise correr y también me sale eso,algo raro porque si lo hago con la librería kbd_lib.c me compila sin problema, intenta con ese código del teclado y compilalo, a ver que changos hace, debería funcionarte sin problema, me avisas si te funcionó.
Archivos Adjuntos
Tipo de Archivo: zip kbd_lib.zip (1,1 KB (Kilobytes), 122 visitas)
18/09/2012 #133


no se si voy bien...
gallodraft dijo: Ver Mensaje
Que tal, no lo tengo en proteus, y recuerdo que al simularlo( en la computadora de otra compañero) usamos un push button para hacer el trabajo del fototransistor, o sea manualmente mandabamos pulsos de señal al pic, lo puedes hacer también con un generador de funciones, metiendole una señal a una determinada frecuencia y simularlo, no es complicado, pero para mi se me hizo más fácil usando el push.

---------- Actualizado después de 8 minutos ----------



Que tal, si ya lo quise correr y también me sale eso,algo raro porque si lo hago con la librería kbd_lib.c me compila sin problema, intenta con ese código del teclado y compilalo, a ver que changos hace, debería funcionarte sin problema, me avisas si te funcionó.


hola amigos oye me paso algo si me compila pero nose q tan malo es que me aparescan esto lo q te muestro en la imagen te paso todo el programa completo y quisiera saber si tengo errores...gracias...

Código:
#include <18f4550.h>
#fuses XT, NOWDT, NOPROTECT, NOLVP
#use delay (clock=4000000)
#include <kbd_lib.c>
#include <lcd.c>
#use standard_io(A)
int16 counter=0;

#int_timer1
void timer1_isr(void)
{
counter=get_timer0();   //lectura contador TMR0
counter=counter*60; //conversion a rpm
   lcd_gotoxy(1,1);
   printf(lcd_putc,"%6ld rpm",counter);
   lcd_gotoxy(1,2);
   printf(lcd_putc,"rpm");
   set_timer0(0);
   set_timer1(3036);
}
void main()
{
   char k, kant='0';          //k valor tecla, kant valor anterior
   char PWMH=0, PWML=0;       //semiperiodo alto y bajo
   lcd_init();
   kbd_init();
   port_b_pullups(true);
   
   setup_timer_0(rtcc_ext_l_to_h|rtcc_div_1);
   setup_timer_1(t1_internal|t1_div_by_4);
   set_timer0(0);
   set_timer1(3036);
   enable_interrupts(int_timer1);
   enable_interrupts(global);
   
   while(1)
   {
      k=kbd_getc();   //se lee la tecla pulsada en ascii
      if (k=='\0')   //si no se pulsa una tecla se queda el valor anterior
         k=kant;
      
      if ((k=='*') || (k=='#'))            //si se pulsa * o # se asigna cero
         k='0';
         
      kant=k;         //se guarda tecla pulsada
      k=k-48;         //de ascii a valor numérico
      PWMH=k*28;        //valor tecla y periodo alto
      PWML=255-PWMH;      //Semiperiodo bajo
      
      for (PWMH;PWMH>0;PWMH--)   //Obtiene salida nivel alto
      {
         output_high (pin_A0);
      }
      
      for (PWML;PWML>0;PWML--)   //obtiene salida nivel bajo
      {
         output_low (pin_A0);
      }
      
   }
}
Imágenes Adjuntas
Tipo de Archivo: png erroosss.png (10,6 KB (Kilobytes), 50 visitas)
18/09/2012 #134

Avatar de COSMICO

son advertencias que saca el compilador,pero programa el pic
que esto no afecta.
Al trabajar con interrupciones, y esta ser llamada, se desasctiva para impedir reentradas erroneas
en una solo interrupcion.
Si esto no fuera asi, el micro quedaria en un bucle infinito, y no podra salir de ahí
18/09/2012 #135


aaaa.ok gracias te lo agradesco esq como soy nuevo en la programacion salen dudas....
19/09/2012 #136


Rijiru dijo: Ver Mensaje
Solo una pregunta mas, El PIN 3 lo tienes conectado a un diodo Zener o a un arreglo RC?
hola Rijiru quisiera saber si el programa q tienes para el tacometro con pic16f628A podria servir para pic 18f4550 y no sabria q tanto cambira el diagrama y el programa tendria q ser otro??? la verdad soy muy novato en esto de los pic apenas ando aprendiendo....espero tu respuesta gracias...
19/09/2012 #137


electrohack dijo: Ver Mensaje
hola amigo vi tu programacion y al copiarla a el programa c y compilar detecta un error con el lcd quisiera saber si tienes una libreria para el programador c porque cuando modifico el archivo en proteus a lcd .c y compilo el programa con el isis el display no muestra simulacion... gracias

---------- Actualizado después de 5 minutos ----------




hola amigo quisiera saber porque cuando compilo el programa en C sale un erro con el lcd
y no se deja compilar, bien luego lo modifico a lcd. c y esta bien el programa ya no detecta error ahi sino en la variable diagnostico y dice que no esta definida, la otra es que soluciono el eeror dejando la variable diagnostico con // pero el simulador proteus no me deja ver nada en el display. sera algun problema de librerias quisiera sabe si tienes una por ahi para que me la prestes



hola amigo a mi me pasa lo mismo al compilar el lenguaje q pones aqui espero y puedas postear el archivo en C o que puedas ayudarnos con el tema... gracias espero tu respuesta...saludos
24/09/2012 #138


electrohack dijo: Ver Mensaje
quisiera saber a que te refieres con <lcd_b.c> ya que mi programa no compila y saca error toca solo dejarlo en lcd.c pero en proteus no simula gracias..


q tal amigo soy novato en esto tengo una pregunta porq no usas un crystal de conexion para el PIC, ps me han dicho q tods los pic llevan crystal oscilador... espero tu respueta gracias...
12/11/2012 #139


Hola Rijiru, estoy ,modificando tu tacometro digital con el objetivo de omitir el boton de inicio, ya que solamente lo estoy ocupando como sensor, para un trabajo en el instituto, por lo tanto seria ideal si pudieras compartir la libreria o biblioteca del lcd_b.c estare al espera de tu respuesta y nuevamente gracias por el aporte.
21/11/2012 #140


hola buenas
trate de armar el taco metro propuesto por Dj BaLa o bueno el diagrama publicado en la primera parte pero tengo un pequeño problema con respecto a la instalación del opto acoplador hacia el lcd y por otro lado en la ultima prueba que realice el pic 16f628 no responde pero sinenvargo al momento de escribir y borrar el código mediante el pic kit 2 no detecta ninguna falla quisa alguien me pueda ayudar
gracias
¿Tienes una mejor respuesta a este tema? ¿Quieres hacerle una pregunta a nuestra comunidad y sus expertos? Registrate

Buscar más temas sobre:
Lupa Autotrónica, La Electrónica en movimiento

Sistemas electrónicos utilizados en vehículos de transporte.

Cerrar
Foros de Electrónica » Temas de Interés » Autotrónica, La Electrónica en movimiento

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