Show Posts
Pages: [1]
1  International / Software / Re: codigo funcion on: November 25, 2012, 10:38:24 am
perfecto, muchas gracias, era lo que buscaba  smiley-wink
2  International / Software / codigo funcion on: November 25, 2012, 04:17:06 am
buenas a todos smiley

no consigo encontrar el codigo de la funcion propia de arduino "pulsein" para ver que es lo que hace exactamente,

estoy trabajando en linux y he encontrado las librerias que estan en usr/share/arduino/libraries

pero las funciones por defecto de arduino no consigo  encontrarlas

alguien me podria informar?

gracias  smiley-lol
3  International / Español / Re: variaciones en la senyal del potenciometro al servo on: October 28, 2012, 02:02:24 pm
ok, he alimentado el potenciometro con la tension de arduino, y el servo con una fuente externa, pero hace una cosa extraña, es como si hubiera un retardo, de manera que cuando giro el potenciometro, no gira el servo en seguida, sino que lo hace en dos veces... pero no siempre.

gracias

por cierto, alguien me podria indicar como pegar imagenes en los post? cuando le doy a "inser image" me pone las etiquetas, pero no se que poner dentro.
4  International / Español / Re: variaciones en la senyal del potenciometro al servo on: October 25, 2012, 11:51:05 am
gracias flico por la rapida respuesta. te cuento:

he hecho lo que me has propuesto:
Code:
// Controlling a servo position using a potentiometer (variable resistor)
// by Michal Rinott <http://people.interaction-ivrea.it/m.rinott>

#include <Servo.h>
 
Servo myservo;  // create servo object to control a servo
 
int potpin = 1;  // analog pin used to connect the potentiometer
int i,val;    // variable to read the value from the analog pin
int n=10;
int vector[10];
int valmedio;
int opcion;
int valanterior;
double difper;

void setup()
{
  myservo.attach(9);  // attaches the servo on pin 9 to the servo object
   Serial.begin(9600);   // abrimos el puerto serie a 9600 bps
   opcion = 0;
}
 
 
void loop()
{
 
  if (opcion == 0)//------------------------------------------------------------------------
  {
      val = analogRead(potpin);            // reads the value of the potentiometer (value between 0 and 1023)
      Serial.print("\nValor del potenciometro antes de escalar = ");
        Serial.print(val);
          Serial.print("\n");
      val = map(val, 0, 1023, 0, 179);     // scale it to use it with the servo (value between 0 and 180)
  }//------------------------------------------------------------------------------------

  if(opcion == 1)//----------------------------------------------------------------------
  {
 
      //mediante un bucle cogemos 10 valores i hacemos la media para evitar fluctuaciones
      for(i=0;i<n-1;i++)
      {
        val=analogRead(potpin);
        val=map(val,0,1023,0,179);
        vector[i]=val;
        Serial.print("\nValor n");
        Serial.print(i);
        Serial.print(" = ");
        Serial.print(val);

      }
     
      //calculamos el valor medio del vector
      for(i=0;i<n-1;i++)
      {
        valmedio=valmedio+vector[i];
      }
      valmedio=valmedio/n;
      val=valmedio;
  }//---------------------------------------------------------------------------------------
 
  Serial.print("\nValor anterior =");
  Serial.print(valanterior);
 
  Serial.print("     dif ABS =");
  Serial.print(valanterior-val);
 
  difper= ((valanterior-val)*100/180);
  Serial.print("     dif % = ");
  Serial.print(difper);
 
 
  valanterior = val;
  Serial.print("\nValor enviado al servo =");
  Serial.print(val);
 
  myservo.write(val);                  // sets the servo position according to the scaled value
  delay(1000);                           // waits for the servo to get there
}

y he sacado varias conclusiones:

1.al enviar al servo un valor promedio ha mejorado, ya que si lo envio directamente sin hacer el valor promedio me da una variacion porcentual alrededor de 16%

y al enviar el valor promedio de 10 valores, la variacion porcentual es alrededor de  3% pero puntualmente puede augmentar mucho.


he comprovado que esto solo me ocurre cuando alimento el circuito del servo i el potenciometro con una alimentacion externa a la que me ofrece la placa arduino (que la tengo alimentada directamente del USB y Las masas del arduino y de la alimentacion externa estan conectadas)

He probado con un alimentador que me da 7v y con unas pilas que me dan unos 5 voltios.

Me gustaria saber a que es debido este efecto, me he quedado en blanco, ya no se que probar.

gracias

PD: queria poner una imagen de los resultados que me da el serial monitor, pero no consigo hacerlo, no se si es un  problemapor que estoy usando ubuntu...
5  International / Español / variaciones en la senyal del potenciometro al servo on: October 24, 2012, 12:18:59 pm
he conectado el circuito de la imagen del siguiente link

http://arduino.cc/en/uploads/Tutorial/knob_BB.png

con el programa que viene de ejemplo con el arduino

Code:
// Controlling a servo position using a potentiometer (variable resistor)
// by Michal Rinott <http://people.interaction-ivrea.it/m.rinott>

#include <Servo.h>
 
Servo myservo;  // create servo object to control a servo
 
int potpin = 0;  // analog pin used to connect the potentiometer
int val;    // variable to read the value from the analog pin
 
void setup()
{
  myservo.attach(9);  // attaches the servo on pin 9 to the servo object
   Serial.begin(9600);   // abrimos el puerto serie a 9600 bps
}
 
 
void loop()
{
  val = analogRead(potpin);            // reads the value of the potentiometer (value between 0 and 1023)
  Serial.print("Valor del potenciometro antes de escalar = ");
    Serial.print(val);
      Serial.print("\n");
  val = map(val, 0, 1023, 0, 179);     // scale it to use it with the servo (value between 0 and 180)
  Serial.print("Valor del potenciometro = ");
    Serial.print(val);
      Serial.print("\n");
  myservo.write(val);                  // sets the servo position according to the scaled value
  delay(15);                           // waits for the servo to get there
}

 i el servo no para quieto, siempre esta "temblando", y he comprovado que realmente la señal de entrada , "val" que la muestra en el serial monitor, realmente esta variando todo el rato...

alguien me podria indicar a que puede ser devido?

gracias
Pages: [1]