Example program for the Teensy 3.2 micro-controller board using the QEI quadrature encoder library, the USBSerial.h library for serial port interface, and MotCon.h for motor control
Dependencies:
MotCon2
QEI
USBDevice
mbed
Teensy 3.2 Quadrature Encoder Motor Control with USB Serial Connection
MC Board | Teensy 3.2 |
INV | D5 (Direction Pin) |
SLEW | Vcc (3.3V) |
EN | Vcc (3.3V) |
FB | 220 ohm to ground, 1K in series with 4.7uF low pass to A0 on Teensy (current read) |
!SF | Not Connected |
!PWM / D1 | GND |
PWM/!D2 | D4 (PWM Pin) |
IN1 | GND |
IN2 | Vcc (3.3V) |
VDD | Vcc (3.3V) |
GND | GND |
Vin | Not Connected |
Encoder Channels | Teensy 3.2 |
PhaseA | D2 |
PhaseB | D3 |
// Tensy 3.2 QEI, USBSerial, MotCon example
// J. Bradshaw - 20180111
#include "mbed.h"
#include "USBSerial.h"
#include "MotCon.h"
#include "QEI.h"
QEI enc1(D2,D3,NC,1024, QEI::X2_ENCODING);
MotCon mot(D4, D5); //pwm, dir
USBSerial pc;
Serial ser1(D1,D0); // tx, rx
DigitalOut led1(LED1);
AnalogIn current(A0);
int main() {
wait(2.0);
//pc.baud(9600); //NO BAUD RATE FOR USBSerial object
pc.printf("\r\n%s\r\n", __FILE__); //display the filename (this source file)
//pc.printf("%s %s\n",__TIME__,__DATE__);
pc.printf("Version 1.0 - rev %s J. Bradshaw\r\n", __DATE__);
enc1.reset();
while(1) {
for(float p=0; p<2.0*3.14159; p += 0.01) {
float pwm_dc = sin(p);
mot.mot_control(pwm_dc);
float encoder1 = (float)enc1.getPulses();
//pc.printf("%7.2f %7.2f %5.3f\r\n", pwm_dc, encoder1, current.read());
led1 = !led1;
wait(0.005);
}
}
}
QEI.lib@1:9ffb6825058f, 2018-01-11 (annotated)
- Committer:
- jebradshaw
- Date:
- Thu Jan 11 19:39:34 2018 +0000
- Revision:
- 1:9ffb6825058f
- Parent:
-
0:f429a7e2e92c
Teensy 3.2 motor, encoder, USB serial port test
Who changed what in which revision?
User | Revision | Line number | New contents of line |
jebradshaw |
0:f429a7e2e92c
|
1
|
https://mbed.org/users/aberk/code/QEI/#5c2ad81551aa
|