Programma arduino

Pubblicità

Simone.1992

Nuovo Utente
Messaggi
2
Reazioni
0
Punteggio
22
Salve a tutti. Sto scrivendo un codice su arduino dove devo avviare, fermare e invertire il senso di marcia di un motore, tramite il CHIP L293D. Di per se fare l'avvio non è difficile, ma devo fare l'avvio graduato, ovvero che l'avvio deve fare i seguenti step:
-nel primo secondo il motore deve andare al 25% della sua velocità max;
- dopo 2 secondi deve andare al 50%;
-dopo altri 2 secondo deve andare al 75%;
- dopo altri 2 secondi andrà al massimo della velocità.
Constatando che la vecocità va da 0-255, ho provato a buttare giù questo codice, usando la funzione map, ma il motore va direttamente alla velocità massima. ( vi mando solo la parte di codice dell'avvio del motore):

Codice:
int avvio=2;//pin avvio
  int indietro=3;//pincambio direzione
  int pwm=A0;  // pin analogico che determina velocità motore
  int pulsante=4;// pulsante
  int Velocita=0;
  int statoPulsante=0;
  int val=0;
  int Vel_Ril=0;

  void setup()

{
  Serial.begin(9600);
  pinMode(avvio,OUTPUT);
  pinMode(indietro,OUTPUT);
  pinMode(pulsante,INPUT);
  pinMode(pwm,OUTPUT);
 
}

void loop()
 
{
 
    val=analogRead(pwm);
 
    Vel_Ril=map(val,0,1023,0,255);
 
 
 
    int statoPulsante=digitalRead(pulsante);
    digitalWrite(avvio,HIGH);
    digitalWrite(indietro,LOW);
    delay(1000);
 
    if(statoPulsante==1)
    {
  
 
    
  Velocita=64;
  analogWrite(pwm,Velocita);
  delay(1000);
 
 
  Velocita=128;
  analogWrite(pwm, Velocita);
  delay(2000);
 
 
  Velocita=192;
  analogWrite(pwm, Velocita);
  delay(2000);
 
 
  Velocita=255;
  analogWrite(pwm, Velocita);
  delay(2000);
    
 
 
    }
 
}
 
Ultima modifica da un moderatore:
scusa, tu leggi un valore analogico dal pin pwm, e poi setti un duty cycle in uscita sempre sullo stesso pin ?
Duty cycle 255 credo sia 100%
Essendo un pwm, non c'e' solo il duty cycle da settare, ma anche il periodo. Che frequenza usi ?
Vel_Ril non lo usi ?
 
Ultima modifica:
Pubblicità
Pubblicità
Indietro
Top