Come utilizzare l'encoder rotativo magnetico AS5600 con Arduino

How to Use the AS5600 Magnetic Rotary Encoder with Arduino

L'AS5600 è un encoder rotativo magnetico preciso in grado di misurare gli angoli con risoluzione a 12 bit. Comunica tramite I2C o uscita analogica, rendendolo ideale per le applicazioni di robotica, controllo del motore e rilevamento della posizione. Questo tutorial ti guiderà attraverso la connessione e l'utilizzo dell'AS5600 con Arduino.


Cosa avrai bisogno

  1. Modulo encoder rotativo magnetico AS5600
  2. Arduino Board (ad es. Uno, Mega, Nano)
  3. Breadboard e fili jumper
  4. Un computer con l'IDE Arduino installato

Passaggio 1: comprensione del modulo AS5600

L'AS5600 supporta entrambi I2c E Analogico output. In modalità I2C, fornisce dati angolari altamente precisi. La modalità analogica emette una tensione proporzionale all'angolo.

Pinout

Spillo Funzione
VCC Alimentazione (3.3V/5V)
GND Terra
SDA Linea di dati I2C
SCL Linea di orologio i2c
FUORI Uscita analogica (opzionale)
Dir Configurazione della direzione
Modalità Configurazione della modalità di output

Nota: IL DIR il pin configura la direzione di rotazione e il MODE Pin seleziona tra le modalità di uscita I2C o analogiche. Per i2c, connettiti MODE a GND.


Passaggio 2: Cablaggio dell'AS5600 ad Arduino

Modalità I2C (impostazione predefinita)

Collegare l'AS5600 all'Arduino come segue:

Pin AS5600 Arduino Pin
VCC 5v
GND GND
SDA A4
SCL A5

Nota: Per altre schede Arduino, assicurati di utilizzare i pin i2C corretti.


Passaggio 3: installare la libreria richiesta

Per semplificare il lavoro con l'AS5600, installa la libreria "AS5600" da GitHub o il gestore della libreria Arduino.

Passi da installare:

  1. Apri l'IDE Arduino.
  2. Vai a Schizzo > Includi la libreria > Gestisci le biblioteche.
  3. Cerca "AS5600" e fai clic su Installare.

Passaggio 4: caricare il codice

Ecco un codice di esempio per leggere l'angolo dall'AS5600 usando 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
}

Passaggio 5: testare l'installazione

  1. Collega l'Arduino al tuo computer tramite USB.
  2. Apri l'IDE Arduino e seleziona il corretto Asse E Porta sotto il Utensili menu.
  3. Carica il codice facendo clic Caricamento.
  4. Apri il monitor seriale (Utensili > Monitor seriale) e impostare il tasso di baud su 9600.
  5. Ruotare il magnete davanti al sensore AS5600. L'angolo in gradi dovrebbe essere visualizzato in tempo reale.

Opzionale: utilizzando la modalità di uscita analogica

  1. Collegare il OUT Pin dell'AS5600 a un perno analogico sull'Arduino (ad es. A0).
  2. Modifica il codice per leggere la tensione analogica:
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);
}

Applicazioni dell'AS5600

  1. Rilevamento della posizione del motore
  2. Ecoder della manopola rotante
  3. Misurazione dell'angolo articolare robotico
  4. Sistemi di stabilizzazione del gimbal della fotocamera

Risoluzione dei problemi

  • Nessun dato: Verificare le connessioni I2C e assicurarsi che i pin corretti siano definiti nel codice.
  • Valori irregolari: Assicurarsi che il magnete sia posizionato correttamente e allineato con il sensore.
  • Nessuna risposta in modalità analogica: Confermare il MODE Il pin è configurato correttamente.

Conclusione

Hai interfacciato con successo l'encoder rotativo magnetico AS5600 con Arduino per misurare la posizione angolare. Che tu stia usando I2C per letture precise o modalità analogica per semplicità, questo sensore è uno strumento versatile per i progetti che richiedono misurazione rotazionale. Sperimenta ulteriormente integrandolo nei progetti di controllo motorio o robotica!

Lascia un commento

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.