Loading...
Pages: 1 2 [3]   Go Down
Author Topic: consulta. PID u otro modo- para posicion de motor-avances  (Read 3689 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 6
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hola nicko, gracias por responder y además tan rapido!! Jejeje
Te comento: yo estoy usando tu codigo para controlar un sistema electrohidraulico con dos electrovalvulas una para subir y otra para bajar, con el potenciometro para saber en que posición estan, lo de regular el pwm es para poder variar la velocidad del fluido hidráulico...
Estas electrovalvulas están accionadas por un par de mosfet irf520, perono consigo que en los pines 9/10 del arduino entreguen una tensión superior a los 2,5V aún poniendo el pwm al 100%, y por consiguiente las electrovalvulas no son capaces de funcionar ya que estas trabajan a 12V y sólo llegan 5V, cuando tenga el sistema a medio funcionar te lo enseño!!
Logged

Offline Offline
Newbie
*
Karma: 1
Posts: 46
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

hola jesus. mira el pwm en realidad es para controlar la velocidad de los motores. pero no es que estan conectados los motores directamente al arduino. el arduino tiene poca capacidad de alimentar.
podrias utilizar en todo caso reles. con el arduino abres un rele que active la electrovalvula. o bien podrias construirte el puente h que yo utilizo. te lo recomiendo puesto que es facil de hacer. fijate que la direccion esta al comienzo del post. pero por mensaje privado te lo puedo pasar y aclarar algunas dudas de la construccion.
prueba  en todo caso el uso de rele. fijate que en este foro hay algunos post al respecto incluso en los tutoriales de la pagina.
suerte. y me parece muy interesante lo que estas haciendo smiley-grin
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 6
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Gracias nicko por tu respuesta, ya esta solucionado... no me había fijado en el rango del pwm 0a255 y yo puse 100 y pensé que era el 100% del pwm pero luego puse 255 y va perfecto, te comento, las electovalvulas están gobernadas por los pines 9/10 que tu conectas al puente h pero yo los conecté directamente a un par de mosfet irf 520 con una resistencia de 10k a masa y listo, y los potenciometros son de diferente resistencia uno del otro, el del mando es 1.4k y el de posición 4k y funciona perfecto!! ahora tengo que agregarle el control del pwm por potenciometro! ya subiré fotos y algun video...un saludo
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 6
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Nicko aqui tienes las primertas pruebas...
 https://www.dropbox.com/sh/bmd0tamkqmmxdpo/_5u8SbymC2



Bueno aqui  está el código del compañero NICKO_ESX modificado para controlar un elevador electrohidraulico de un tractor... cuando tenga un rato y busque un simulador de arduino cuelgo el esquema!Un saludo a tod@s

Code:
/*
Control de elevador electrohidraulico de tractor New Holland TN90F
 
 */
 
int pinSensor = A0;    // Entrada para el potenciómetro.posicion actual del elevador, indicado por los leds.
int pinSensor2 = A1; //potenciometro de posicion, mando
int pinLed2= 10; // pin de bajar,  señal para el mosfet de electrovalvula de bajar
int pinLed = 9; //pin de subir, señal para el mosfet de electrovalvula de subir
int valorSensor = 0;   // variable para el valor del sensor.
int posact = 0; //creo que es necesario que la variable empiece de cero.
int valorSensor2 = 0; //variable para el potenciometro 2
int sigpos = 0; // abreviatura de siguiente posición, valor que seria enviado por serial.
int difvalors =0; //diferencia entre sigpos y valor sensor
int pinSensor3 = A2;//potenciometro velocidad (pwm) de bajada
int valorSensor3 =0;//variable potenciometro 3
int pwmbajar = valorSensor3;//valor del sensor para ajustar el pwm de electrovalvula de bajada
void setup() {
  // Declaramos el pin del Led como salida:
  pinMode(pinLed, OUTPUT);
  pinMode(pinLed2, OUTPUT);
  Serial.begin(9600);
   pwmbajar = map(valorSensor3, 0, 1024, 0 ,255 );
}
 
void loop() {
   
 
  valorSensor2 = analogRead (pinSensor2)/2;//lee los datos del potenciometro 2 de posicion requerida
    int sigpos = valorSensor2 ;
  valorSensor = analogRead(pinSensor)/2; //valorsensor igual al valor del potenciometro de posicion actual
  valorSensor3 = analogRead(pinSensor3)/4;//lee los valores del potenciometro de regular velocidad de bajada
  difvalors = abs (sigpos - valorSensor);
 
 
  Serial.print ("valorSensor");
  Serial.println ( valorSensor); // para chequear en que posición esta el potenciometro del elevador
  delay(1); //le doy delay para que se pueda leer los datos impresos. de lo contrario pasan demaciado rapido
  Serial.print ("valor del sensor sig");
  Serial.println(valorSensor2); //posición del potenciometro 2
  delay(1);
  //en este caso si el valor siguiente es menor al del potenciometro, , seria el de subida del elevador
   if (sigpos < valorSensor  && difvalors > 5) {
    digitalWrite (pinLed, HIGH);
    analogWrite (pinLed, 220); //pwm
    digitalWrite (pinLed2,LOW);
    delay(1);
  }
// en este caso si el valor siguiente es superior al del potenciometro, ,  seria el de bajada del elevador
else if (sigpos > valorSensor  && difvalors > 5)  {
  digitalWrite (pinLed2, HIGH);
  analogWrite (pinLed2,pwmbajar = valorSensor3);//pwm
  digitalWrite (pinLed,LOW);
  delay(1);
}
//en este caso al ser iguales los valores se apagarian las dos electrovalvulas
else if (sigpos == valorSensor || difvalors < 5) {
  digitalWrite (pinLed2, LOW);
  digitalWrite (pinLed, LOW);
 delay(1); }


 
 
 

 
}
« Last Edit: January 29, 2013, 04:15:42 pm by jesustoural » Logged

Offline Offline
Newbie
*
Karma: 1
Posts: 46
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

oooo que bueno esta eso jesus. podrias abrir un post propio con ese proyecto. me resulta interesante.
esta bueno eso de manejar las electrovalvulas. me intereso tambien lo de los mosfet. podrias explicar todo en un post. es interesante D
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 6
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

luego de un largo día "parriba" y "pabajo" he logrado hacer algo...
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 6
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ok, modulo recien "cocinado" con arduino mini 05 y listo para montar en el tractor, os adjunto las fotos del modulo y el archivo en pcbwizard, ahora tengo que abrir un post para no ensuciar este!

S
https://www.dropbox.com/sh/bxjd4jacfcbnfuq/OOAs8rVamb
« Last Edit: February 02, 2013, 07:09:14 am by jesustoural » Logged

Offline Offline
Newbie
*
Karma: 1
Posts: 46
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

ooo super interesante ese trabajo. esperamos el post entero amigo. podrias publicarlo dentro de proyectos supongo
Logged

Pages: 1 2 [3]   Go Up
Print
 
Jump to: