premetto che sono completamente nuovo nel mondo Arduino e che il know how, in campo elettrotecnico, è altrettanto limitato....
Sono un appassionato di Droni e guardando su Youtube ho trovato alcuni tutorial su come usare Arduino per testare la funzionalità dell'accoppiata: esc motori usando l'uscita pwm di arduino e un potenziometro collecato sul pin analogico.
(in pratica l'equivalente dell'esperimento potenziometro che comanda un led).
Ora siccome sono curioso come una scimmia e voglio imparare e non usare il copia incolla vi rompo i coDroni perchè quardando lo sketch mi è vento un dubbio....
Lo schema di funzionamento è simile come detto a quello led potenziometro ed in particolare:
Si collega il Potenziometro ad un pin analogico es A0
Il motore si collega all'esc e l'esc alimentato separatamente si collega ad un pin pwm es il 9.
dopo di che si mappa il segnala analogico da dare in pasto all'esc per far girare il motore.
La differenza con il led è che si usa la libreria
servo.write(....)
Alla fine quindi lo sketch tipo è questo:
Codice: Seleziona tutto
Servo myservo; //ma che fantasia
int val, p;
void setup ()
myservo.attach(9);
void loop()
p = analogRead(A0);
val = map(p, 0, 1023, 1000, 2000);
myservo.write(val);
delay(20);
1. la funzione map :
sul digitale l'uscita non ammette valori solo da 1 a 255 (come per il led?) l'aver messo una scala da 1000 a 2000 non compromette il funzionamento? o i valori 1000 e 2000 sono da considerarsi come una scala dei possibili valori da 1 a 255 ??? ossia i 256 possibili valori sono poi ridivisi in piccoli multipli ed aumentare il potenziomentro quindi causa un aumento veramente basso del motore????
2. la funzione myservo.write() dovrebbe avere una sintassi tipo Syntax
servo.write(angle) dove angle: the value to write to the servo, from 0 to 180
quindi dargli un valore tra 1000 e 2000 che senso ha?
Deduco che: per l'esc (che è diverso da un servo) il valore non sia un angolo ma appunto il valore pwm per far aumentare la velocità di rotazione???
Ma dove è documentato cio''?????