Ruslan_nig

baseCodeTest_speed_split

Dec 28th, 2021
1,273
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include <Wire.h>
  2. uint8_t id1 = 50;
  3. uint8_t id2 = 55;
  4.  
  5. void controllerEnable(uint8_t c_id){ //отправляет команду 0x25
  6.   Wire.beginTransmission(c_id);
  7.   Wire.write(0x25);
  8.   Wire.endTransmission();
  9.   }
  10.  
  11. 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
  12. //c_id это адрес драйвера, speedMotor - с какими моторами работаем(здесь не использ), speedMotor- величина скорости
  13. {
  14.   //выделяем первый байт скорости, накладываем маску, обнуляем последние 8 бит
  15.   uint16_t speedFirstByte = speedMotor & 0b1111111100000000;
  16.   speedFirstByte = speedFirstByte >> 8;
  17.   //выделяем второй байт скорости, обнуляем первые 8 бит
  18.   uint16_t speedSecondByte = speedMotor & 0b0000000011111111;
  19.  
  20.   Wire.beginTransmission(c_id);
  21.   Wire.write(0x43); //Sets the speed parameter for Motor 1 in degrees per second
  22.   Wire.write(speedFirstByte);//два байта на один мотор, это против часовой
  23.   Serial.print("speedFirstByte HEX format = ");
  24.   Serial.println(speedFirstByte,HEX);
  25.   Serial.print("speedSecondByte HEX format = ");
  26.   Serial.println(speedSecondByte,HEX);  
  27.   Wire.write(speedSecondByte);    
  28.   Wire.endTransmission();
  29. }
  30.  
  31. void stopMotors(uint8_t c_id){
  32.   Wire.beginTransmission(c_id);
  33.   Wire.write(0x42);
  34.   Wire.endTransmission();
  35. }
  36.  
  37. void setup() {
  38.       Wire.begin();//инициализиурем библиотек wire
  39.       Serial.begin(9600);
  40.       controllerEnable(id1);
  41.  
  42. speedTwoMotors(id1,1,300);
  43. delay(60000);
  44. stopMotors(id1);
  45. }
  46.  
  47. void loop() {}
Advertisement
Add Comment
Please, Sign In to add comment