Encoder Incremental con Labview-Arduino UNO

Hola amigos,

Soy nuevo por acá, llegue a vuestro foro leyendo mucha de la información que han compartido, esta me ha sido muy útil.

Bueno, les comparto mi duda y espero puedan ayudarme. Lo que quiero usar un Encoder Incremental para poder medir Posición angular, solo eso por ahora.

Para ello dispongo de un encoder HONTKO HTR-m2-360-2c, la placa Arduino UNO y el software LABVIEW 2013 en mi caso.

Eh logrado hacerlo funcionar bajo pura programación arduino, logro ver bien la cantidad de pulsos que se generan en el monitor serial. Pero el desafio es lograrlo ahora en LABVIEW para hacerlo mas didactico.

Espero puedan ayudarme.

Comparto con ustedes lo logrado hasta el momento en las fotos que pueden ver al final:

1 Encoder Conectado al Arduino Funcionando correctamente
2 Encoder programado en arduino y Funcionando: Esos 1/2/3/4/5 etc... son los pulsos que da el encoder hacia la derecha y con signo - hacia la Izquierda.
3 Programacion con Labview. Diagrama de Bloques.
4 Interfaz Labview Canal A y Canal B.
5 Tambien lo eh probado con un Escudo Encoder o Encoder Shield y funciona bien:
Este lo pueden encontrar por un valor mucho mas bajo en tiendas...

Finalmente les adjunto el codigo arduino logrado:

int PinA = 3; // Pin A del Encoder en Canal Digital 3
int PinB = 4; // Pin B del Encoder en Canal Digital 4
int Posicion = -1; // Conteo, desde -1 ya que parte contando sin movimiento
int PinAX = LOW; //
int n = LOW; //

void setup () {
pinMode (PinA, INPUT);
pinMode (PinB, INPUT);
Serial.begin (115200);
}
// Lectura de los Canales A y B

void loop () {
n = digitalRead (PinA);
if ((PinAX == LOW) && (n == HIGH)) {
if (digitalRead (PinB) == LOW) {
Posicion --;
} else {
Posicion ++;
}


Serial.println (Posicion);


}
PinAX = n;
}

por ultimo les comparto el dataSheet del encoder utilizado:
3w.orbitalsystems.net/PDF/Industrial%20Automation/rotary-encder-htr-m2.pdf
en mi caso 360 pulsos por vuelta.


PD: Estoy recien comenzando con LABVIEW por lo que probablemente tenga errores y espero puedan ayudarme.

PD2: No puedo subir links ni fotos desde otro lado por eso el formato de las imagenes y el link. (Soy Nuevo)

Las fotos las pueden ver abajo, como les comentaba no puedo adjuntarlas por ser nuevo. Saludos!!
 

Adjuntos

  • 00.jpg
    00.jpg
    51.1 KB · Visitas: 51
  • 01.jpg
    01.jpg
    59.6 KB · Visitas: 53
  • 02.jpg
    02.jpg
    30.6 KB · Visitas: 53
  • 03.png
    03.png
    16.2 KB · Visitas: 53
  • 04.png
    04.png
    21.1 KB · Visitas: 59
Última edición:
Bueno, creo que solo te falla el análisis de los datos que llegan por el puerto serie. Nunca antes había visto esos bloques LINX, así que no sé qué puede estar fallando. Yo probaría a mandar cada valor entre dos caracteres diferentes, por ejemplo paréntesis, y que el código de LabVIEW detecte el primer paréntesis, el segundo, y que el texto entre ambos lo convierta a número.

Es la forma que se me ocurre, aunque puede haber muchas otras. Hace tiempo que no toco LabVIEW, pero me parece que en la pestaña de Strings tienes todo lo que necesitas para hacerlo.

Si lo consigues ya nos cuentas ;)

Saludos.
 
Atrás
Arriba