Comment utiliser le codeur rotatif magnétique AS5600 avec Arduino

How to Use the AS5600 Magnetic Rotary Encoder with Arduino

L'AS5600 est un codeur rotatif magnétique précis capable de mesurer les angles avec une résolution 12 bits. Il communique via I2C ou la sortie analogique, ce qui le rend idéal pour les applications de robotique, de contrôle du moteur et de détection de position. Ce tutoriel vous guidera à travers la connexion et l'utilisation de l'AS5600 avec Arduino.


Ce dont vous aurez besoin

  1. Module d'encodeur rotatif magnétique AS5600
  2. Board Arduino (par exemple, Uno, Mega, Nano)
  3. Fils de planche à pain et de cavalier
  4. Un ordinateur avec l'ide Arduino installé

Étape 1: Comprendre le module AS5600

L'AS5600 prend en charge les deux I2C et Analogique sorties. En mode I2C, il fournit des données d'angle très précises. Le mode analogique sort une tension proportionnelle à l'angle.

Brochage

Épingle Fonction
VCC Alimentation (3,3 V / 5V)
GND Sol
SDA Ligne de données I2C
SCL Ligne d'horloge i2c
DEHORS Sortie analogique (facultative)
Diron Configuration de direction
MODE Configuration du mode de sortie

Note: Le DIR PIN configure la direction de rotation et le MODE PIN sélectionne les modes de sortie I2C ou analogiques. Pour i2c, connectez-vous MODE à GND.


Étape 2: Câblage de l'AS5600 à Arduino

Mode I2C (par défaut)

Connectez l'AS5600 à l'Arduino comme suit:

AS5600 PIN Épingle arduino
VCC 5V
GND GND
SDA A4
SCL A5

Note: Pour d'autres cartes Arduino, assurez-vous d'utiliser les broches I2C correctes.


Étape 3: Installez la bibliothèque requise

Pour faciliter le travail avec l'AS5600, installez la bibliothèque "AS5600" à partir de GitHub ou du gestionnaire de bibliothèque Arduino.

Étapes à installer:

  1. Ouvrez l'ide Arduino.
  2. Aller à Esquisser > Inclure la bibliothèque > Gérer les bibliothèques.
  3. Recherchez "AS5600" et cliquez Installer.

Étape 4: Téléchargez le code

Voici un exemple de code pour lire l'angle de l'AS5600 en utilisant 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
}

Étape 5: tester la configuration

  1. Connectez l'Arduino à votre ordinateur via USB.
  2. Ouvrez l'ide Arduino et sélectionnez le bon Conseil et Port sous Outils menu.
  3. Téléchargez le code en cliquant Télécharger.
  4. Ouvrez le moniteur en série (Outils > Moniteur en série) et régler le taux de bauds sur 9600.
  5. Faites tourner l'aimant devant le capteur AS5600. L'angle en degrés doit être affiché en temps réel.

Facultatif: Utilisation du mode de sortie analogique

  1. Connectez le OUT PIN de l'AS5600 à une broche analogique sur l'Arduino (par exemple, A0).
  2. Modifiez le code pour lire la tension analogique:
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);
}

Applications de l'AS5600

  1. Détection de position du moteur
  2. Encodeurs de bouton rotatif
  3. Mesure de l'angle de l'articulation robotique
  4. Systèmes de stabilisation du cardan de la caméra

Dépannage

  • Aucune donnée: Vérifiez les connexions I2C et assurez-vous que les broches correctes sont définies dans le code.
  • Valeurs erratiques: Assurez-vous que l'aimant est correctement positionné et aligné avec le capteur.
  • Aucune réponse en mode analogique: Confirmer le MODE La broche est configurée correctement.

Conclusion

Vous avez réussi à interfacer le codeur rotatif magnétique AS5600 avec Arduino pour mesurer la position angulaire. Que vous utilisiez I2C pour des lectures précises ou en mode analogique pour la simplicité, ce capteur est un outil polyvalent pour les projets nécessitant une mesure de rotation. Expérimentez plus loin en l'intégrant dans des projets de contrôle moteur ou de robotique!

Laissez un commentaire

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.