Pages: [1]   Go Down
Author Topic: Problema potenciometro y arduino  (Read 1058 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 18
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

hola chicos , tengo un patinete electrico y quiero incorporar arduino y un "motor drive", tengo parte echo que es muy sencillo pero mi problema es uqe no consigo que el motor quede parado, porque el puño que hace de potenciometro no lllega a 0. sino que segun lo que e registrado con el arduino y el monitor, el valor que podriamos llamar 0 del potenciometro en verdad es 175 y maximo 875. por tanto el motor siempre esta girando. tengo echo esto, aver si me podeis echar una manilla. pues val <=175; val = 0; para que cuando lea 175 o menor del supuesto valor 0, se pare el motor pero eta siempre parado. gracias de ante mano

Quote
int SyRen50 = 9; // LED conectado al pin digital 9
int analogPin = 3;   // potenciómetro conectado al pin 3
int val = 175;         // variable en el que se almacena el dato leído

void setup()
{
  pinMode(SyRen50, OUTPUT);   // salida analogica SyRen50
}

void loop()
{
  
  val = analogRead(analogPin);   // lee la tensión en el pin del potenciometro
  for (val <= 175; val = 0;)
  analogWrite(SyRen50, val / 4);  // los valores de analogRead van desde 0 a 1023
                                  // y los valores de analogWrite values van desde 0 a 255,
                                  // por eso ajustamos el ciclo de trabajo a el valor leído dividido por 4.
}

Logged

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

consegui hacerlo con mapping, pues un rango de 175 a 875  pero cuando en la salida pasa de 125 a 126 me pega un tiron, como si se accelerara mucho que puede ser

int potenciometro = A3;   // potenciómetro conectado al pin 3
int SyRen50 = 9;         // SyRen50 conectado al pin digital 9
int sensorValue = 0; // leer valor de la olla
int valor = 0;             // variable en el que se almacena el dato leído

void setup()
{
  pinMode(SyRen50, OUTPUT);   // salida analogica SyRen50
}

void loop()
{
 
  sensorValue = analogRead(potenciometro);  // lee la tensión en el pin del potenciometro
  valor = map(sensorValue, 175, 875, 0, 255);
  analogWrite(SyRen50 , valor);  // los valores de analogRead van desde 0 a 1023
                                  // y los valores de analogWrite values van desde 0 a 255,
                                  // por eso ajustamos el ciclo de trabajo a el valor leído dividido por 4.
}
Logged

Offline Offline
Jr. Member
**
Karma: 1
Posts: 72
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

No entiendo porque te da calores entre 175 y 875.

Deberias tener el rango completo. Lo tienes bien conectado? De que resistencia es el potenciometro? No será de escala logaritmica?
Logged

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

es un puño acelerador de un patinete. y no tiene el rango completo.

puede ser logaritmico?? no lo sabia. es que por ejemplo cuando creo que comente antes. cuando pasa de 125 a 126 se acelera mucho el motor, puede ser debido a eso?
Logged

Offline Offline
Jr. Member
**
Karma: 1
Posts: 72
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Comprueba la resistencia con un polimetro, y asi sabras si el pote es lineal o logaritmico.
Si es lineal, a igual recorrido del puño, debes de tener iguales saltos de resistencia.

Los potes logaritmicos se suelen usar para audio, pero lo mismo este puño lo es tambien por algun tema del par del motor o algo asi.

Logged

Pages: [1]   Go Up
Jump to: