Kuinka käyttää AS5600 -magneettista kiertokooderia Arduinon kanssa

How to Use the AS5600 Magnetic Rotary Encoder with Arduino

AS5600 on tarkka magneettinen kiertokooderi, joka pystyy mittaamaan kulmat 12-bittisellä resoluutiolla. Se kommunikoi I2C: n tai analogisen lähdön kautta, mikä tekee siitä ihanteellisen robotiikan, moottorin ohjauksen ja asennon tunnistussovelluksille. Tämä opetusohjelma opastaa sinua yhdistämällä ja käyttämällä AS5600: ta Arduinon kanssa.


Mitä tarvitset

  1. AS5600 Magneettinen kiertokooderimoduuli
  2. Arduino Board (esim. UNO, Mega, Nano)
  3. Leipälevy- ja hyppyjohdot
  4. Tietokone, jossa Arduino IDE on asennettu

Vaihe 1: AS5600 -moduulin ymmärtäminen

AS5600 tukee molempia I2C ja Analoginen Tulokset. I2C -tilassa se tarjoaa erittäin tarkan kulmatiedot. Analoginen tila tuottaa jännitteen, joka on verrannollinen kulmaan.

Pinot

Nasta Funktio
VCC Virtalähde (3,3 V/5 V)
Hölynpöly Pohja
SDA I2C -datalinja
SCL I2C -kellolinja
Ulkona Analoginen lähtö (valinnainen)
Lika Suuntakokoonpano
Tila Lähtötilan kokoonpano

Huomaa: Se DIR nasta määrittää pyörimissuunnan ja MODE PIN -PINTI valitsee I2C: n tai analogisen lähtötilan välillä. Yhdistä i2c: lle MODE Gnd.


Vaihe 2: AS5600: n johdotus Arduinolle

I2C -tila (oletus)

Yhdistä AS5600 Arduinoon seuraavasti:

AS5600 -nasta Arduino -nasta
VCC 5V
Hölynpöly Hölynpöly
SDA A4
SCL A5

Huomaa: Varmista muille Arduino -levyille, että käytät oikeita I2C -nastat.


Vaihe 3: Asenna vaadittu kirjasto

Asenna "AS5600" -kirjasto GitHubista tai Arduino Library Managerista.

Asennettava vaiheet:

  1. Avaa Arduino IDE.
  2. Mennä jhk Luonnos > Sisällytä kirjasto > Hallitse kirjastoja.
  3. Etsi "AS5600" ja napsauta Asentaa.

Vaihe 4: Lataa koodi

Tässä on esimerkkikoodi, joka luetaan kulma AS5600: sta käyttämällä I2C: tä:

#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
}

Vaihe 5: Testaa asennus

  1. Kytke Arduino tietokoneeseen USB: n kautta.
  2. Avaa Arduino IDE ja valitse oikea Hallitus ja Satama alla Työkalut valikko.
  3. Lataa koodi napsauttamalla Ladata.
  4. Avaa sarjamonitori (Työkalut > Sarjamonitori) ja aseta baud -arvo 9600.
  5. Kierrä magneettia AS5600 -anturin edessä. Kulma asteina tulisi näyttää reaaliajassa.

Valinnainen: Analoginen lähtötilan käyttö

  1. Yhdistä OUT AS5600: n nasta analogiseen nastaan ​​Arduinossa (esim. A0).
  2. Muokkaa koodia analogisen jännitteen lukemiseen:
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);
}

AS5600: n sovellukset

  1. Moottorin asennon tunnistus
  2. Kiertokooderit
  3. Robottisen nivelkulman mittaus
  4. Kameran gimbal -stabilointijärjestelmät

Vianetsintä

  • Ei tietoja: Varmista I2C -yhteydet ja varmista, että oikeat nastat on määritelty koodissa.
  • Virheelliset arvot: Varmista, että magneetti on oikein sijoitettu ja kohdistettu anturin kanssa.
  • Ei vastausta analogisessa tilassa: Vahvistaa MODE PIN on määritetty oikein.

Johtopäätös

Olet onnistuneesti liittänyt AS5600 -magneettisen kiertokooderin Arduinon kanssa kulman asennon mittaamiseksi. Käytätkö I2C: tä tarkkoihin lukemiin tai analogiseen tilaan yksinkertaisuuden vuoksi, tämä anturi on monipuolinen työkalu pyörivää mittausta vaativille projekteille. Kokeile edelleen integroimalla se moottorin ohjaus- tai robotiikkaprojekteihin!

Jätä kommentti

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.