Creazione un oggetto servo e sua calibrazione

1- Per prima cosa è necessario creare un oggetto Arduino includendo la libreria Servo.

>> a = arduino('COM4', 'Uno', 'Libraries', 'Servo');

2- Creare successivamente un oggetto Servo (il servomotore è attaccato al pin D4).

>> s = servo(a, 'D4')
s = 
  Servo with properties:
    Pin: 'D4'
    MinPulseDuration: 5.44e-04 (seconds)
    MaxPulseDuration: 2.40e-03 (seconds)

Se il servomotore non funziona correttamente è necessario impostare i valori dell'intervallo di larghezza di impulso nella scheda tecnica del servomotore per calibrare il motore in modo che ruoti nell'intervallo previsto. L'esempio qui sotto riportato imposta la larghezza dell'impulso da 700e-6 a 2300e-6 secondi corrispondenti ad una rotazione da 0 a 180 gradi.

>> s = servo(a, 'D4', 'MinPulseDuration', 700e-6, 'MaxPulseDuration', 2300e-6)
s = 
  Servo with properties:
    Pin: 'D4'
    MinPulseDuration: 7.00e-04 (seconds)
    MaxPulseDuration: 2.30e-03 (seconds)

Scrivere e leggere la posizione del servo

Lo sketch qui sotto riportato modifica la posizione dell'albero del servomotore da 0 (minimo) a 1 (massimo) con incrementi di 0.2, corrispondenti a 36 gradi e visualizza la posizione corrente ogni volta che la posizione cambia.

a = arduino('COM4', 'Uno', 'Libraries', 'Servo');
s = servo(a, 'D4', 'MinPulseDuration', 700e-6, 'MaxPulseDuration', 2300e-6);
for angle = 0:0.2:1
    writePosition(s, angle);
    current_pos = readPosition(s);
    current_pos = current_pos*180;
    fprintf('Current motor position is %d degrees\n', current_pos);
    pause(2);
end

L'output sarà il seguente:

Current motor position is 0 degrees
Current motor position is 36 degrees
Current motor position is 72 degrees
Current motor position is 108 degrees
Current motor position is 144 degrees
Current motor position is 180 degrees

Cancellare gli oggetti

Quando la connessione non è più necessaria i due oggetti (che fanno riferimento ad Arduino e al sensore si7021) possono essere cancellati

>> clear s a
Ultime modifiche: mercoledì, 3 gennaio 2024, 21:23