Je suis en train de tourner le moteur (RMCS-220X couple élevé encodeur DC Servo moteur et pilote) en utilisant l'interface i2c de framboise pi 2 avec le code suivant:bibliothèque wiringPi de Raspberry Pi 2 pour faire tourner le moteur servo DC bidirectionnel
#include <stdio.h>
#include <wiringPi.h>
#include <wiringPiI2C.h>
#define Motoraddrs 0x08 //motor address
int main(void){
int I2C_fd;
wiringPiSetupGpio();
wiringPiSetup();
I2C_fd = wiringPiI2CSetup(Motoraddrs);
wiringPiI2CWriteReg16(I2C_fd, 0x01, 0xff);//spins from low speed of 0x01 to
max 0xff in right side
delay(100);
return 0;
}
Les octets écrits dans la fonction de câblagePiI2CWriteReg16 sont ceux du code suivant qui sont donnés dans la fiche technique du moteur.
/* Voici un exemple d'utilisation de la mise à jour de la variable de vitesse sur la RMCS-220x de transmettre 255 */
I2C_Start(0x10 + 0); // send the slave address of the RMCS-220x and write
bit 0
I2C_Write(1); // send the command variable for speed
I2C_Write(255); // send LSB of 255
I2C_Write(0); // send MSB of 0 to and so Speed of forward 255
I2C_Stop(); // send I2C stop
/* Voici un exemple d'utilisation de la mise à jour de la variable de vitesse sur la RMCS-220x pour inverser 255 et en les lisant */
I2C_Start(0x10 + 0); // send the slave address of the RMCS-220x and
write bit 0
I2C_Write(1); // send the command variable for speed
I2C_Write(1); // send LSB of 1
I2C_Write(255); // send MSB of 255 to and so Speed of backward 255
I2C_Rep_Start(0x10 + 1); // send I2C address with rep start and 1 to read
speed = I2C_Read_Ack(); // read speed LSB byte and ack
speed = I2C_Read_Nak(); // read speed MSB byte and don’t ack
I2C_Stop(); // send I2C stop
dans mon cas avec le code ci-dessus en utilisant la bibliothèque wiringPi, me permettant de faire tourner le moteur dans une seule direction (à droite). Maintenant, je veux le faire pivoter dans la direction gauche aussi.
J'apprécierais vraiment vos suggestions.