Go Down

Topic: Problema funzione maps Arduino. (Read 920 times) previous topic - next topic

As_Needed

Ho fatto un altro test: ho provato solo in un verso e la funzione map rispetta la proporzione dettata!! Parte con 50. A questo punto, sono più confuso di prima dato che non capisco quale possa essere il problema...
Infatti almeno io non riesco a capire quale sia il problema, la proporzione la fa, non mi viene in mente il perché se passa da 0 fa così... Forse a qualcun'altro può venire in mente. ;)
Ciao!
MY PWS!
http://forum.arduino.cc/index.php?topic=413560.0
http://meteoflaminia.zapto.org:4600

baldursgate

Salve ho risolto il problema... Cioè almeno per la mia applicazione questa scelta va più che bene. Praticamente non lo faccio passare per lo zero ma definisco un piccolo intervallo dove i motori stanno fermi e non fanno niente. Ecco l'inizio del loop ( in questo caso considerate il centro come 1°, valore empirico...):
Code: [Select]
void loop() {
  int vel;
  int buttonState=digitalRead(button);
  float y=ypr[2] * 180/M_PI;
  Serial.print("                    y=   ");
  Serial.println(y);
  digitalWrite(R_EN,HIGH);
  digitalWrite(L_EN,HIGH);
     
     if(buttonState==1) {
     if(y>=2.00f) {
       
      // vel=map(y, 2, 42, 40, 200);
       vel = map(int(y * 10), 50, 400, 20, 255);
       analogWrite(LPWM,vel+50);
       //Serial.print("Destra");
       }
       else analogWrite(LPWM,0);
    if(y<0.00f) {
       
      // vel=map(y, 0, -40, 40, 200);
        vel = map(int(y * 10), -50, -400, 20, 255);
       analogWrite(RPWM,vel+50);
       }
       else analogWrite(RPWM,0);
       }
       else  {analogWrite(RPWM,0); analogWrite(LPWM,0);}
       // Serial.print("Sinistra");
       
   Serial.print("VEL=  ");
   Serial.println(vel);
   

Ciao e grazie per l'aiuto :)

As_Needed

Di niente! Anche se sarei curioso se qualcuno sapesse il perché.. ma se dici che va bene cosi.
Ciao!
MY PWS!
http://forum.arduino.cc/index.php?topic=413560.0
http://meteoflaminia.zapto.org:4600

Go Up