Управление электродвигателем
  • Введение
  • Аппаратная часть курса
  • Описание платы VBCore
  • Знакомство и работа с Raspberry PI
  • Коллекторный двигатель
    • Устройство коллекторного двигателя
    • Практика. VBCores
      • VBCore VB32G4
      • VB STM32 программатор
      • DC драйвер 15A
      • Arduino IDE
        • Установка ПО
        • Настройка Arduino IDE
      • Библиотека VBCoreG4
      • Практика. Мигание светодиодом с заданной частотой.
    • H-мост
    • Практика. Вращение двигателя
    • ШИМ
      • Практика. Вращение двигателем с разной скоростью
    • Шина CAN
      • Практика: Реализация обмена данными между VB32G4 и Raspberry PI по шине CAN
        • Настройка CAN на RPI
        • Работа с CAN FD на Ардуино
        • Работа с CAN FD через Python
        • Эхо-обмен данными между Rpi и VB32G4
    • Энкодеры
    • Практика: Считывание угла поворота вала двигателя
  • Page 1
Powered by GitBook
On this page
  1. Коллекторный двигатель

Практика: Считывание угла поворота вала двигателя

PreviousЭнкодерыNextPage 1

Last updated 1 year ago

Для работы с датчиком AS5600 вам понадобится скачать библиотеку . Там также имеется несколько рабочих примеров, в которых вам необходимо только подключить заголовочный файл VBCoreG4_arduino_system.h и указать пины SDA и SCL, используя функции setSDA и setSCL из Wire.h. Напомним, что пинами SDA и SCL являются PB_7_ALT1 и PC6. Или же можно просто воспользоваться их именами pinSDA и pinSCL, определенными в библиотеке. Ниже приведен код программы, читающей угол по датчику AS5600

#include <VBCoreG4_arduino_system.h>
#include <Wire.h>
#include <AS5600.h>

#define pinSDA PB_7_ALT1
#define pinSCL PC6

AMS_5600 sensor;

void setup() {
  Wire.setSDA(pinSDA);
  Wire.setSCL(pinSCL);
  Wire.begin();

  Serial.begin(115200);

  Serial.println(">>>>>>>>>>>>>>>>>>>>>>>>>>> ");
  if(sensor.detectMagnet() == 0 ){
    while(1){
        if(sensor.detectMagnet() == 1 ){
            Serial.print("Current Magnitude: ");
            Serial.println(sensor.getMagnitude());
            break;
        }
        else{
            Serial.println("Can not detect magnet");
        }
        delay(1000);
    }
  } 
}

void loop() {
  Serial.println(sensor.getRawAngle());
  delay(1);
}
Seeed_Arduino_AS5600