#ifndef DualVNH5019MotorShieldMegaSeveralCards_h #define DualVNH5019MotorShieldMegaSeveralCards_h #include class DualVNH5019MotorShieldMegaSeveralCards { public: // CONSTRUCTORS DualVNH5019MotorShieldMegaSeveralCards(); // Default pin selection. DualVNH5019MotorShieldMegaSeveralCards( unsigned char INA1, unsigned char INB1, unsigned char EN1DIAG1, unsigned char CS1, unsigned char INA2, unsigned char INB2, unsigned char EN2DIAG2, unsigned char CS2, unsigned char INA3, unsigned char INB3, unsigned char EN3DIAG3, unsigned char CS3, unsigned char INA4, unsigned char INB4, unsigned char EN4DIAG4, unsigned char CS4, unsigned char INA5, unsigned char INB5, unsigned char EN5DIAG5, unsigned char CS5, unsigned char INA6, unsigned char INB6, unsigned char EN6DIAG6, unsigned char CS6); // User-defined pin selection. // PUBLIC METHODS void init(); // Initialize TIMER 1 (or timer 3 for mega) set the PWM to 20kHZ. void setM1Speed(int speed); // Set speed for M1. void setM2Speed(int speed); // Set speed for M2. void setM3Speed(int speed); // Set speed for M3. void setM4Speed(int speed); // Set speed for M4. void setM5Speed(int speed); // Set speed for M5. void setM6Speed(int speed); // Set speed for M6. void setSpeeds(int m1Speed, int m2Speed, int m3Speed, int m4Speed, int m5Speed, int m6Speed); // Set speed for both M1 and M2. void setM1Brake(int brake); // Brake M1. void setM2Brake(int brake); // Brake M2. void setBrakes(int m1Brake, int m2Brake); // Brake both M1 and M2. unsigned int getM1CurrentMilliamps(); // Get current reading for M1. unsigned int getM2CurrentMilliamps(); // Get current reading for M2. unsigned char getM1Fault(); // Get fault reading from M1. unsigned char getM2Fault(); // Get fault reading from M2. unsigned int getM3CurrentMilliamps(); // Get current reading for M3. unsigned int getM4CurrentMilliamps(); // Get current reading for M4. unsigned char getM3Fault(); // Get fault reading from M3. unsigned char getM4Fault(); // Get fault reading from M4. unsigned int getM5CurrentMilliamps(); // Get current reading for M5. unsigned int getM6CurrentMilliamps(); // Get current reading for M6. unsigned char getM5Fault(); // Get fault reading from M5. unsigned char getM6Fault(); // Get fault reading from M6. private: unsigned char _INA1; unsigned char _INB1; #if defined(__AVR_ATmega168__)|| defined(__AVR_ATmega328P__) static const unsigned char _PWM1 = 9; static const unsigned char _PWM2 = 10; #endif #if defined(__AVR_ATmega128__) || defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__) static const unsigned char _PWM1 = 6; static const unsigned char _PWM2 = 45; static const unsigned char _PWM3 = 44; static const unsigned char _PWM4 = 46; static const unsigned char _PWM5 = 8; static const unsigned char _PWM6 = 7; #endif unsigned char _EN1DIAG1; unsigned char _CS1; unsigned char _INA2; unsigned char _INB2; unsigned char _EN2DIAG2; unsigned char _CS2; unsigned char _EN3DIAG3; unsigned char _CS3; unsigned char _INA3; unsigned char _INB3; unsigned char _EN4DIAG4; unsigned char _INA4; unsigned char _INB4; unsigned char _CS4; unsigned char _EN5DIAG5; unsigned char _CS5; unsigned char _INA5; unsigned char _INB5; unsigned char _EN6DIAG6; unsigned char _INA6; unsigned char _INB6; unsigned char _CS6; }; #endif