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
- Modulo encoder rotativo magnetico AS5600
- Arduino Board (ad es. Uno, Mega, Nano)
- Breadboard e fili jumper
- 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 ilMODE
Pin seleziona tra le modalità di uscita I2C o analogiche. Per i2c, connettitiMODE
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:
- Apri l'IDE Arduino.
- Vai a Schizzo > Includi la libreria > Gestisci le biblioteche.
- 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
- Collega l'Arduino al tuo computer tramite USB.
- Apri l'IDE Arduino e seleziona il corretto Asse E Porta sotto il Utensili menu.
- Carica il codice facendo clic Caricamento.
- Apri il monitor seriale (Utensili > Monitor seriale) e impostare il tasso di baud su
9600
. - Ruotare il magnete davanti al sensore AS5600. L'angolo in gradi dovrebbe essere visualizzato in tempo reale.
Opzionale: utilizzando la modalità di uscita analogica
- Collegare il
OUT
Pin dell'AS5600 a un perno analogico sull'Arduino (ad es. A0). - 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
- Rilevamento della posizione del motore
- Ecoder della manopola rotante
- Misurazione dell'angolo articolare robotico
- 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!