Cum se folosește codificatorul rotativ magnetic AS5600 cu Arduino

How to Use the AS5600 Magnetic Rotary Encoder with Arduino

AS5600 este un codificator rotativ magnetic precis capabil să măsoare unghiuri cu rezoluție pe 12 biți. Comunică prin I2C sau o ieșire analogică, ceea ce îl face ideal pentru robotică, controlul motorului și aplicațiile de detectare a poziției. Acest tutorial vă va ghida prin conectare și utilizarea AS5600 cu Arduino.


Ce vei avea nevoie

  1. AS5600 modul de codificator rotativ magnetic
  2. Arduino Board (de exemplu, Uno, Mega, Nano)
  3. Tablă de pâine și jumper
  4. Un computer cu IDE Arduino instalat

Pasul 1: Înțelegerea modulului AS5600

AS5600 acceptă ambele I2c şi Analog ieșiri. În modul I2C, oferă date unghiulare extrem de precise. Modul analogic iese o tensiune proporțională cu unghiul.

Pinout

Ac Funcţie
VCC Sursă de alimentare (3.3V/5V)
GND Sol
SDA Linia de date I2C
SCL Linia de ceas I2C
Afară Ieșire analogică (opțional)
Dir Configurarea direcției
Mod Configurarea modului de ieșire

Nota: DIR PIN configurează direcția de rotație și MODE PIN selectează între I2C sau moduri de ieșire analogice. Pentru I2C, conectați MODE la GND.


Pasul 2: Cablarea AS5600 către Arduino

Modul i2c (implicit)

Conectați AS5600 la Arduino după cum urmează:

Pin AS5600 Pinul Arduino
VCC 5V
GND GND
SDA A4
SCL A5

Nota: Pentru alte plăci Arduino, asigurați -vă că utilizați pinii I2C corecți.


Pasul 3: Instalați biblioteca necesară

Pentru a face mai ușor lucrul cu AS5600, instalați biblioteca „AS5600” de la GitHub sau Managerul Bibliotecii Arduino.

Pași pentru instalare:

  1. Deschideți IDE Arduino.
  2. Du -te la Schiţa > Include biblioteca > Gestionați bibliotecile.
  3. Căutați „AS5600” și faceți clic pe Instala.

Pasul 4: Încărcați codul

Iată un exemplu de cod pentru a citi unghiul din AS5600 folosind I2C:

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

AS5600 encoder;

void setup() {
  Serial.begin(9600);
  Wire.begin();

  if (!encoder.begin()) {
    Serial.println("AS5600 not detected. Check connections.");
    while (1);
  }

  Serial.println("AS5600 initialized.");
}

void loop() {
  // Read the current angle in degrees
  float angle = encoder.getAngle();
  Serial.print("Angle: ");
  Serial.print(angle);
  Serial.println(" degrees");

  delay(100); // Update every 100ms
}

Pasul 5: Testați configurarea

  1. Conectați Arduino la computer prin USB.
  2. Deschideți IDE Arduino și selectați corect Bord şi Port sub Instrumente meniu.
  3. Încărcați codul făcând clic pe Încărcați.
  4. Deschideți monitorul în serie (Instrumente > Monitor în serie) și setați rata de transfer la 9600.
  5. Rotiți magnetul în fața senzorului AS5600. Unghiul în grade trebuie afișat în timp real.

Opțional: Utilizarea modului de ieșire analogică

  1. Conectați OUT Pinul AS5600 la un pin analog de pe Arduino (de exemplu, A0).
  2. Modificați codul pentru a citi tensiunea analogică:
const int analogPin = A0;

void setup() {
  Serial.begin(9600);
  pinMode(analogPin, INPUT);
}

void loop() {
  int value = analogRead(analogPin); // Read analog voltage
  float angle = map(value, 0, 1023, 0, 360); // Convert to degrees

  Serial.print("Analog Angle: ");
  Serial.print(angle);
  Serial.println(" degrees");

  delay(100);
}

Aplicațiile AS5600

  1. Sensionarea poziției motorului
  2. Codificatoare rotative ale butonului
  3. Măsurarea unghiului articular robotizat
  4. Sisteme de stabilizare a gimbalului camerei

Depanare

  • Fără date: Verificați conexiunile I2C și asigurați -vă că pinii corecți sunt definiți în cod.
  • Valori neregulate: Asigurați -vă că magnetul este poziționat corect și aliniat cu senzorul.
  • Fără răspuns în modul analogic: Confirmați MODE PIN -ul este configurat corect.

Concluzie

Ați interfațat cu succes codificatorul rotativ magnetic AS5600 cu Arduino pentru a măsura poziția unghiulară. Indiferent dacă utilizați I2C pentru lecturi precise sau modul analog pentru simplitate, acest senzor este un instrument versatil pentru proiectele care necesită măsurare de rotație. Experimentați în continuare integrându -l în proiecte de control motor sau robotică!

Lasă un comentariu

Notice an Issue? Have a Suggestion?
If you encounter a problem or have an idea for a new feature, let us know! Report a problem or request a feature here.