Regolazione PWM

Ciao,
ho scritto:

#define ENABLE 5
#define DIRA 3
void setup() {
  pinMode(ENABLE,OUTPUT);
  pinMode(DIRA,OUTPUT);
  Serial.begin(9600);
}
void loop() {

  analogWrite(ENABLE,255); //enable on
  digitalWrite(DIRA,HIGH); 
  delay(2000);
  analogWrite(ENABLE,180);
  delay(2000);
  analogWrite(ENABLE,128); 
  delay(2000);
  analogWrite(ENABLE,50); 
  delay(2000);
  analogWrite(ENABLE,128);
  delay(2000);
  analogWrite(ENABLE,180);
  delay(2000);
  analogWrite(ENABLE,255);
  delay(2000);
  digitalWrite(ENABLE,LOW); 
  delay(5000);
}

La mia domanda: perchè la velocità del motore non varia? Arrivato a ENABLE,50 adddirittura si spegne!
Il fine dell'applicazione sarebbe non proprio variare la velocità di un motore, a me servirebbe pilotare un motorino DC per un nastro trasportatore modellino, quindi la velocità del motore deve essere estremamente bassa, quindi ho pensato al PWM...
Mi potreste eventualmente indicare una strada migliore? O farmi capire perchè non funge?
Grazie 1000
Maurizio Filomeni

Quale motorino stai usando per le prove?

Con i PWM puoi diminuire i giri ma un motore a 3000RPM non puoi far girare con 10 RPM.

Ciao Uwe

Se vuoi una bassa velocita’ senza problemi, come dice uwe devi usare un motore con riduttore, non solo il motore … ad esempio, questo o un’altro simile … :wink:

Ringrazio per il vostro consiglio. Comprerò il motore con riduttore... :slight_smile:

Ho acquistato un motorino 65 RPM e funziona alla grande, ora posso pilotarlo tranquillamente con arduino quindi la soluzione è giusta.
Grazie nuovamente.