Librairie pour contrôler un moteur connecté à un contrôleur SDC21XX

Dependencies:   CANopen_Node Roboteq_SDC_serie

Dependents:   TCP_Server_Example

Fork of SDC21XX_Motor by Pierre David

Revision:
1:a677037eca0a
Parent:
0:1c0bc44980e0
Child:
2:30acd3c5d5da
--- a/SDC21XX_Motor.h	Wed Jun 01 15:03:34 2016 +0000
+++ b/SDC21XX_Motor.h	Mon Jul 11 11:02:54 2016 +0000
@@ -1,3 +1,49 @@
+/**************************************************/
+/* SDC21XX_Motor class : 
+        - Contains :    RB, a Roboteq instance used to communicate with the SDC21XX controller
+                        channel, range from 1 to 2, indicates the channel to which the motor is physically connected
+                        reductor, ratio to use to determine the right angle of the motor
+                        enc_resolution, number of ticks from the encoder per rotation of the motor, before the reductor
+
+        - Methods :     1 constructor, containing a node identifier, a CAN pointer, the channel of the motor, the reductor and the encoder resolution,
+                            the Roboteq object is instanciated during the instanciation of the SDC21XX_motor object
+                        1 constructor, using a pointer to a Roboteq object instead of node identifier and CAN pointer
+                        Getters and setters for every variable
+                        Go- and GetAngle, to move the selected axis, using reductor and encoder resolution
+*/
+/**************************************************/
+
+/**************************************************/
+/* Example programm
+#include "mbed.h"
+#include "SDC21XX_Motor.h"
+
+CAN can(p30, p29);
+Roboteq Robot_Moteur1(4, &can);
+SDC21XX_Motor moteur1(&Robot_moteur, 1, 70, 1000);
+SDC21XX_Motor moteur1(&Robot_moteur, 2, 50, 512);
+
+
+int main(void)
+{
+    
+    for(;;)
+    {
+        wait(3.0);
+        moteur1.GoAngle(1000);
+        moteur2.GoAngle(-1000);
+        wait(3.0);
+        moteur1.GoAngle(-1000);
+        moteur2.GoAngle(1000);
+    }
+}
+
+
+/**************************************************/
+
+
+
+
 #ifndef SDC21XX_MOTOR_H
 #define SDC21XX_MOTOR_H
 
@@ -10,7 +56,8 @@
         
         public :
         
-        SDC21XX_Motor(uint8_t _node_id, CAN * _can, uint8_t _channel, uint32_t _reductor);
+        SDC21XX_Motor(uint8_t _node_id, CAN * _can, uint8_t _channel, uint32_t _reductor, uint32_t _enc_resolution);
+        SDC21XX_Motor(Roboteq *_RB, uint8_t _channel, uint32_t _reductor, uint32_t _enc_resolution);
         void GoAngle(int16_t _angle);
         int16_t GetAngle();
         void SetChannel(uint8_t _channel);
@@ -29,6 +76,7 @@
         Roboteq RB;
         uint8_t channel;
         uint32_t reductor;
+        uint32_t enc_resolution;
         
         
     };//end class