Autor Tema: optoacoplador y pic  (Leído 2281 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado erick

  • PIC10
  • *
  • Mensajes: 4
optoacoplador y pic
« en: 07 de Octubre de 2017, 22:34:35 »
Buenas, tengo dudas respecto al uso de un optoacoplador, pues pretendo contar los pulsos emitidos al cortar la señal entre el sensor mediante el giro de un motor y luego transformar estos pulsos a RPM, pero no logro hallar la forma de contar esos pulsos o el comando adecuado para ello en microcode;Hasta ahora he logrado hacer esto en arduino, pero como ya mencione nose como hacerlo en pic

// Conexion de la entrada de la interrupcion 0 por el PIN 2
// Configurar el monitor serial a 57600 Baudios para visualizar los RPM


volatile int contador = 0; // Variable entera que se almacena en la RAM del Micro

void setup() {
Serial.begin(57600);
attachInterrupt(0,interrupcion0,RISING); // Interrupcion 0 (pin2)
} // LOW, CHANGE, RISING, FALLING

void loop() {
delay(999); // retardo de casi 1 segundo
Serial.print(contador*30); // Como son dos interrupciones por vuelta (contador * (60/2))
Serial.println(" RPM"); // El numero 2 depende del numero aspas de la helise del motor en prueba
contador = 0;
}

void interrupcion0() // Funcion que se ejecuta durante cada interrupion
{
contador++; // Se incrementa en uno el contador
}

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re:optoacoplador y pic
« Respuesta #1 en: 07 de Octubre de 2017, 22:54:38 »
De la misma forma que lo estas haciendo, como no uso BASIC, te voy a dar las ideas nomas, vos vas a ser el encargado de ver como se realiza. Y despues te voy a hacer una pregunta.

- En el PIC hay siempre un pin que se puede configurar por interrupcion por flanco y es el RB0 o INT
  Con ese pin podrias hacer lo mismo que estas haciendo vos, vas a tener una funcion de interrupcion la cual vas a aumentar una variable, y en tu loop principal vas a leer ese valor.

- Otra forma es usar el Timer, y configurarlo para que tome los pulsos externos, de esa forma la suma de pulsos se maneja por hardware, y la unica interrupcion que necesitas es por si se produce un overflow del Timer. Cuando queres lees la cantidad de pulsos y luego pones a 0 el timer para comenzar de vuelta.

Mi pregunta para vos es... ¿ Por que sabiendo programar en C/C++ como para Arduino, te vas a otro lenguaje como BASIC ?, ¿Porque no usar cualquiera de los otros compiladores como XC8, CCS, MikroC, que son exclusivamente C?

Desconectado erick

  • PIC10
  • *
  • Mensajes: 4
Re:optoacoplador y pic
« Respuesta #2 en: 08 de Octubre de 2017, 12:33:52 »
Mi pregunta para vos es... ¿ Por que sabiendo programar en C/C++ como para Arduino, te vas a otro lenguaje como BASIC ?, ¿Porque no usar cualquiera de los otros compiladores como XC8, CCS, MikroC, que son exclusivamente C?


Lo que ocurre es que es un pequeño proyecto donde debo solucionar lo que ya mencione, apartir de dos lenguajes distintos de programacion, que nos sirve para explorar nuevos compiladores y no seguir en los mismos


 

anything