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

You are viewing an older revision! See the latest version

Homepage

Table of Contents

    Teensy 3.2 Quadrature Encoder Motor Control with USB Serial Connection

    /media/uploads/jebradshaw/teensymotexample.jpg

    MC33926 Motor control board Pinout (Pololu board https://www.pololu.com/product/1212)

    MC Board - Teensy

    • 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

    • 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);            
            }
        }
    }
    

    All wikipages