Go Down

Topic: Problema entrada analogica potenciometro (Read 2204 times) previous topic - next topic

pececito

Hola, soy nuevo  en el mundo de arduino, hoy he tenido tiempo de ponerme con el y lo he conectado a Matlab, lo he intentado conectar a excel...(sin exito completo) y varios circuitos, pero me esta dando un error un poco extraño:

tengo un potenciometro conectado al pin analogico 0

como sospechaba que el fallo de mis programas iva en la direccion de que no respondia el potenciómetro, he intentado comprobarlo:
- El multimetro me indica variación de voltaje al variar el potenciometro
- si conecto un circuito sencillo para variar la intensidad de un led funciona correctamente

El problema surge al intentar conectar el potenciometro al arduino, es como si no me lo leyera y me devuelve siempre el mismo valor constante =S

he probado con este codigo que he escrito para que me diga lo que lee en la entrada analogica donde tengo conectado el potenciometro:

int potPin =0;
void setup()
{
  Serial.begin(9600); // configuro el puerto serie a 9600 baudios/segundo
}
void loop()
{
Serial.println(analogRead(potPin));
  delay(300);
}

y el serial monitor me tira un valor constante de 1023, ¿alguien me puede decir a que es debido? ¿he podido quemar en algun momento las entradas de alguna forma?

gracias de antemano y pido disculpas si me he equivocado de sitio para la pregunta o algo, es mi primera pregunta y esta todo en ingles =S

copachino

has tratado de conectar algo mas a tu entrada analoga??..... si le metiste mas de 5v puede que tengas problema con que la hayas quemado.....

sino metiste mas de 5v prueba otro programilla que te permita lecturas en la entrada analoga A0

puedes probar este yo siempre lo uso para saber si hay lecturas en lo que conecto a esa entrada... ojo que tampoco es que soy experto pero me la he pasado unas semanitas travesiando con mi arduino

Code: [Select]

const int analogInPin = A0; // acá entra la salia del potenciometro

int sensorValue = 0; //



unsigned long time;

void setup() {

Serial.begin(9600);

}

void loop() {

sensorValue = analogRead(analogInPin);

time = micros();

Serial.print(time);

Serial.print("");

Serial.println(sensorValue)

SrDonGato

diferencia entre las patillas

entrada digital = 0

entrada analogica = A0

puedes mirar los ejemplos que vienen con el IDE, se aprende mucho viendo todos los ejemplos, como se hacen ciertas cosas

te dejo el código que viene con el IDE, puedes ver la diferencia de la que te hablo

un saludo

Code: [Select]
/*
  Analog input, analog output, serial output

Reads an analog input pin, maps the result to a range from 0 to 255
and uses the result to set the pulsewidth modulation (PWM) of an output pin.
Also prints the results to the serial monitor.

The circuit:
* potentiometer connected to analog pin 0.
   Center pin of the potentiometer goes to the analog pin.
   side pins of the potentiometer go to +5V and ground
* LED connected from digital pin 9 to ground

created 29 Dec. 2008
Modified 4 Sep 2010
by Tom Igoe

This example code is in the public domain.

*/

// These constants won't change.  They're used to give names
// to the pins used:
const int analogInPin = A0;  // Analog input pin that the potentiometer is attached to
const int analogOutPin = 9; // Analog output pin that the LED is attached to

int sensorValue = 0;        // value read from the pot
int outputValue = 0;        // value output to the PWM (analog out)

void setup() {
  // initialize serial communications at 9600 bps:
  Serial.begin(9600);
}

void loop() {
  // read the analog in value:
  sensorValue = analogRead(analogInPin);           
  // map it to the range of the analog out:
  outputValue = map(sensorValue, 0, 1023, 0, 255); 
  // change the analog out value:
  analogWrite(analogOutPin, outputValue);           

  // print the results to the serial monitor:
  Serial.print("sensor = " );                       
  Serial.print(sensorValue);     
  Serial.print("\t output = ");     
  Serial.println(outputValue);   

  // wait 10 milliseconds before the next loop
  // for the analog-to-digital converter to settle
  // after the last reading:
  delay(10);                     
}

copachino



int potPin =0;

No me habia fijado en tu codigo.... es obvio porque no funciona deberia ser int potPin= A0; si usas solo 0 arduino reconoce que lo vas a conectar en la entrada digital 0

pececito

#4
Jan 26, 2012, 09:46 am Last Edit: Jan 26, 2012, 09:51 am by pececito Reason: 1
Hola de nuevo, muchas gracias por todas las respuestas tan rapidas =P.

he probado todo lo que decís pero sigue sin funcionar siempre me devuelve 1023 incluso cambiando de puerto, ¿como es posible que no funcione ninguno?
si solo hice pruebas con uno de ellos en teoria si se hubiera quemado ¿no se habria quemado solo ese?

Y una preguntita mas, ¿solucionaria el Problema cambiando el ATMega? (digo en caso de que estén fundidos esos puertos, yo creo que si ¿no?

yOPERO

#5
Jan 26, 2012, 11:48 am Last Edit: Jan 26, 2012, 11:52 am by yOPERO Reason: 1
Intenta cambiar el pot o verificar que haces las conexiones correctamente del pot a Arduino.

y haz la prueba con algo simple como esto y verifica que valores te da en el Serial:

Code: [Select]
/*
  AnalogReadSerial
Reads an analog input on pin 0, prints the result to the serial monitor

This example code is in the public domain.
*/

void setup() {
  Serial.begin(9600);
}

void loop() {
  int sensorValue = analogRead(A0);
  Serial.println(sensorValue, DEC);
}
Engineering is the art of
making what you want from
things you can get.

     

[SOLUCIONADO]

pececito

Hola, gracias por las respuestas.

Tampoco me funciona, lo curioso es que con este codigo me suelta 0 continuamente en lugar de 1023 (debe ser que he conectado la alimentación de forma inversa en el potenciometro a como lo probaba anteriormente).

el potenciometro está bien conectado, es un potenciometro lineal de 47KOhm 3 patillas, la primera a +5V, la segunda es la señal (comprobada con multimetro) y la tercera a GND.

Todo lo demas funciona perfectamente, solo me fallan las entradas analogicas =S.

copachino

has probado conectr cualquiero cosa que no sea un potenciometro?

pececito

Hola,

Si, he probado con un programa que ya utilicé anteriormente con el que leía un nunchuck y movia dos servos, ahora eso tampoco funciona por lo que doy por muertos esos puertos.
He comprado dos ATMEGA iguales para poder arreglarlo y por si se rompe otra vez XD.

Este que le fallan esos puertos lo usare en algun circuito que no requiera de ellos puesto que todo lo demas funciona perfectamente.

Muchas gracias por toda la ayuda.

Go Up
 


Please enter a valid email to subscribe

Confirm your email address

We need to confirm your email address.
To complete the subscription, please click the link in the email we just sent you.

Thank you for subscribing!

Arduino
via Egeo 16
Torino, 10131
Italy