Citazione:
Originalmente inviato da simone86 Ri eccoci,
in allegato la foto (l'esc è un 160A la lipo è una 6S da 5.000mah e 65C e di seguito lo sketch che uso...
int motore = 9;
int potenziometro =3;
int val = 0;
void setup() {
pinMode(motore, OUTPUT);
}
void loop() {
val=analogRead(potenziometro);
if(val>=0)
analogWrite(motore, val / 2);
} |
Un paio di cose:
1) il comando "if(val>=0) " puoi anche levarlo tanto qualsiasi numero che viene salvato nella variabile "val" è per forza >=0 avendo dichiarato la variabile val un intero (rappresentabile da 0 a 255)
2) il codice è giusto ma non funzionerà a dovere con l'ESC
Premessa:
Il regolatore, viene pilotato con segnali aventi frequenza 50Hz, (periodo 20ms )con "impulsi" di lunghezza compresi tra 1ms e 2 ms che stabiliscono in qualche modo (per farla breve) la velocità del tuo motore.
Ora con il comando AnalogWrite, tu generi si un segnale PWM ma ad una frequenza che non può essere cambiata che di default è 490 Hz. In sostanza è come se tu parlassi italiano a un cinese: nessuna comprensione. Secondo me l'errore che fai è proprio qua anche se mi sembra strano che comunque la ventola giri lo stesso fermandosi poi.
Ripeto: parti usando gli esempi che utilizzano la libreria Servo in cui le temporizzazioni sono settate correttamente.
Citazione:
Originalmente inviato da romoloman Da quando un esc si comanda con analogwrite ???? |
AnalogWrite andrebbe bene per generare un segnale PWM altrimenti che comando useresti? DigitalWrite? Se fosse così dovresti tenere conto anche delle temporizzazioni giuste, duty cicle ecc ecc...con la "servo library" si farebbe prima.