Advertisement
Ruslan_nig

tetrix_return_encoder_count_0x49

Mar 19th, 2022
1,344
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. //в цикле крутит мотор туда сюда и считывает значения энкодера
  2. //delay 2000 дан чтобы успела выполниться команда
  3. #include <Wire.h>
  4. uint8_t id = 1;
  5. void setup() {
  6.       Wire.begin();//инициализиурем библиотеку wire
  7.       Serial.begin(9600);
  8. }
  9.  
  10. void loop() {
  11.       Wire.beginTransmission(id);
  12.       Wire.write(0x25);//controller enable
  13.       Wire.endTransmission();
  14.      
  15.   Wire.beginTransmission(id);
  16.  
  17.   //encoder count motor1, всего 6 байт в команде
  18.   Wire.write(0x46);
  19.  
  20.   Wire.write(0x01);//два первые байта это скорость в градусах в сек
  21.   Wire.write(0x68);//hex0168 - это 360 гр/сек
  22.   Wire.write(0x00);
  23.   Wire.write(0x00);
  24.   Wire.write(0x05);
  25.   Wire.write(0xa0);
  26.   Wire.endTransmission();
  27.   delay(2000);
  28.  
  29.   Wire.beginTransmission(id);
  30.   Wire.write(0x49);//Returns the Motor 1 encoder count
  31.   Wire.endTransmission();
  32.   Wire.requestFrom(id,4); //читаем 4 байта
  33.   Serial.print("current position_1 = ");
  34.   while(Wire.available())
  35.   {
  36.     Serial.print((int)Wire.read(),HEX);
  37.   }  
  38.   Serial.println();
  39.  
  40. //второй оборот
  41.   Wire.beginTransmission(id);
  42.   Wire.write(0x46);
  43.   Wire.write(0x01);//два первые байта это скорость в градусах в сек
  44.   Wire.write(0x68);//hex0168 - это 360 гр/сек
  45.   Wire.write(0x00);
  46.   Wire.write(0x00);
  47.   Wire.write(0x0b);
  48.   Wire.write(0x40);
  49.   Wire.endTransmission();
  50.   delay(2000);
  51.  
  52.   Wire.beginTransmission(id);
  53.   Wire.write(0x49);//Returns the Motor 1 encoder count
  54.   Wire.endTransmission();
  55.   Wire.requestFrom(id,4); //читаем 4 байта
  56.   Serial.print("current position_2 = ");
  57.   while(Wire.available())
  58.   {
  59.     Serial.print((int)Wire.read(),HEX);
  60.   }  
  61.   Serial.println();
  62. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement