Pages: [1]   Go Down
Author Topic: Multiple analog inputs measure same value  (Read 290 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 3
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hi everyone,
First I am a newbie with Arduino, so maybe my problem is really simple...
I want to measure different inputs as a function of time using 4 different analogic inputs (A0, A1, A2, A3) of my Arduino Due. From now I have just plugged A0 and A1 to a 1.5V battery and grounded A2 and A3. My problem is that most of the time my Due measures the wrong input.

Here is a draw of my circuit:


Here is my code:
Code:
///Assign pins:
//Pin of the analog input 1:
byte SensorPin1 = 0;
//Pin of the analog input 2:
byte SensorPin2 = 1;
//Pin of the analog input 1:
byte SensorPin3 = 2;
//Pin of the analog input 2:
byte SensorPin4 = 3;

///Define variables:
//Time (in ms):
unsigned long Time0;
//Analog measure input 1:
unsigned int Analog1;
//Analog measure input 2:
unsigned int Analog2;
//Analog measure input 3:
unsigned int Analog3;
//Analog measure input 4:
unsigned int Analog4;


///Stepup:
void setup()
{
  //Initialize serial port (speeds: 9600, 14400, 19200, 28800, 38400, 57600, 115200):
  Serial.begin(9600);
  
  //Turn the resoltion to 12 bits:
  analogReadResolution(12);
}

///Functionning loop:
void loop()
{
  //Measure time:
  Time0=millis();
    
  //Measure analog inputs:
  Analog1=analogRead(SensorPin1);
  Analog2=analogRead(SensorPin2);
  Analog3=analogRead(SensorPin3);
  Analog4=analogRead(SensorPin4);

  //Return data:
  Serial.print(Time0);
  Serial.print(" , ");
  Serial.print(Analog1);
  Serial.print(" , ");
  Serial.print(Analog2);
  Serial.print(" , ");
  Serial.print(Analog3);
  Serial.print(" , ");
  Serial.println(Analog4);
}

Here is what I get:
2 , 1880 , 1885 , 1885 , 6
29 , 1884 , 4 , 3 , 1884
56 , 1886 , 6 , 4 , 1883
83 , 1885 , 6 , 4 , 1872
110 , 1885 , 5 , 3 , 1884

I would be really grateful if one of you have an idea to help me !
Thanks in advance...


« Last Edit: February 03, 2014, 01:57:20 pm by jbares » Logged

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

Anybody ??  smiley
Logged

Venezuela
Offline Offline
Sr. Member
****
Karma: 12
Posts: 429
Ground.......ground........always ground
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Hello jbares,

I ran your code on my DUE and it works perfectly.
I tested it using a 1.5VDC AA battery without the 100ohm resistor. Here the output:

Quote
...
21123 , 2003 , 2005 , 0 , 0
21153 , 2005 , 2004 , 0 , 0
21183 , 2004 , 2002 , 0 , 0
21214 , 2005 , 2005 , 0 , 0
21244 , 2004 , 2005 , 0 , 0
21274 , 2006 , 2005 , 0 , 0
21304 , 2005 , 2005 , 0 , 0
21334 , 2005 , 2005 , 0 , 0
21364 , 2004 , 2005 , 0 , 0
21395 , 2006 , 2005 , 0 , 0
21425 , 2005 , 2005 , 0 , 0
21455 , 2004 , 2006 , 0 , 0
21485 , 2005 , 2006 , 0 , 0
21515 , 2005 , 2004 , 0 , 0
21545 , 2005 , 2005 , 0 , 0
21576 , 2005 , 2005 , 0 , 0
21606 , 2005 , 2005 , 0 , 0
21636 , 2005 , 2006 , 0 , 0
...

It seems to me that your battery could be dead and your wiring could be wrong.
I would recommend you to run the test with a different battery (preferably new)  and double check your wiring.
Regards, Palliser
Logged

0
Offline Offline
Shannon Member
****
Karma: 159
Posts: 10409
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

1.5.5 is broken for analogRead() on > 1 pin.  This is a known bug that should be
fixed in the nightly builds and the next release, 1.5.3 should work too, but
is slower.
Logged

[ I won't respond to messages, use the forum please ]

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

smiley Problem solved !!  smiley  Thanks alot !
I used 1.5.3 as you suggested MarkT and everything works fine !
Also, thank you Palliser for taking some time to look at my problem.
I can move forward now and look more interesting things than a battery voltage...
Logged

Pages: [1]   Go Up
Jump to: