Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <Wire.h>
- uint8_t id1 = 50;
- uint8_t id2 = 55;
- void controllerEnable(uint8_t c_id){ //отправляет команду 0x25
- Wire.beginTransmission(c_id);
- Wire.write(0x25);
- Wire.endTransmission();
- }
- void speedTwoMotors(uint8_t c_id, uint8_t motor, uint16_t speedMotor)//Sets the speed parameters for Motor 1 and Motor 2 in degree per second
- //c_id это адрес драйвера, speedMotor - с какими моторами работаем(здесь не использ), speedMotor- величина скорости
- {
- //выделяем первый байт скорости, накладываем маску, обнуляем последние 8 бит
- uint16_t speedFirstByte = speedMotor & 0b1111111100000000;
- speedFirstByte = speedFirstByte >> 8;
- //выделяем второй байт скорости, обнуляем первые 8 бит
- uint16_t speedSecondByte = speedMotor & 0b0000000011111111;
- Wire.beginTransmission(c_id);
- Wire.write(0x43); //Sets the speed parameter for Motor 1 in degrees per second
- Wire.write(speedFirstByte);//два байта на один мотор, это против часовой
- Serial.print("speedFirstByte HEX format = ");
- Serial.println(speedFirstByte,HEX);
- Serial.print("speedSecondByte HEX format = ");
- Serial.println(speedSecondByte,HEX);
- Wire.write(speedSecondByte);
- Wire.endTransmission();
- }
- void stopMotors(uint8_t c_id){
- Wire.beginTransmission(c_id);
- Wire.write(0x42);
- Wire.endTransmission();
- }
- void setup() {
- Wire.begin();//инициализиурем библиотек wire
- Serial.begin(9600);
- controllerEnable(id1);
- speedTwoMotors(id1,1,300);
- delay(60000);
- stopMotors(id1);
- }
- void loop() {}
Advertisement
Add Comment
Please, Sign In to add comment