5

In recent project, I have to take reading from MAP sensor. So basically, we used analog pin for this. But in my case, I don't get proper result which actually I want.

When I'm taking readings through multi-meter then I got proper readings. Means when I start the vehicle then it's show 0.99 V. When I provide full throttle then voltage also increase and it's reach to 1.66 V. And finally when suddenly come back to normal throttle then also voltage decrease around like 0.48 V and then within a second again show normal 0.99 V.

Here, when I'm taking readings from MAP sensor through multi-meter then I'm providing ground to multi-meter. And when I taking readings from MAP sensor through Arduino then I'm not providing any ground to Arduino. Because I think it may be damage my Arduino.

So, I think this is also one possibility and may be possible that's why I'm not getting that type of voltage output through Arduino.

Here, the ground which I provide to multi-meter is from 12V DC battery which is used in CNG Auto rickshaw. So, that's why I'm not providing ground to Arduino. So, give me some suggestions about this. What should I do for this. Providing ground to Arduino or not.

Here, it's my code.

int kMAP1 = 0;
float kMAP2 = 0;

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

void loop() 
{
  kMAP1 = analogRead(A0);
  kMAP2 =  kMAP1 * (5.0 / 1023.0);

  Serial.print("MAP1: ");
  Serial.print(kMAP1);

  Serial.print("\t");

  Serial.print("      MAP2: ");
  Serial.println(kMAP2);

  delay(1000);
}

And it's my serial monitor output.

MAP1: 490         MAP2: 2.39
MAP1: 433         MAP2: 2.12
MAP1: 270         MAP2: 1.32
MAP1: 0           MAP2: 0.00
MAP1: 447         MAP2: 2.18
MAP1: 401         MAP2: 1.96
MAP1: 518         MAP2: 2.53
MAP1: 487         MAP2: 2.38
MAP1: 344         MAP2: 1.68
MAP1: 374         MAP2: 1.83
MAP1: 611         MAP2: 2.99
MAP1: 429         MAP2: 2.10
MAP1: 647         MAP2: 3.16
MAP1: 668         MAP2: 3.26
MAP1: 460         MAP2: 2.25
MAP1: 489         MAP2: 2.39
MAP1: 278         MAP2: 1.36
MAP1: 277         MAP2: 1.35
MAP1: 318         MAP2: 1.55
MAP1: 383         MAP2: 1.87
MAP1: 238         MAP2: 1.16
MAP1: 237         MAP2: 1.16
MAP1: 134         MAP2: 0.65
MAP1: 191         MAP2: 0.93
MAP1: 230         MAP2: 1.12
MAP1: 308         MAP2: 1.51
MAP1: 479         MAP2: 2.34
MAP1: 388         MAP2: 1.90
MAP1: 544         MAP2: 2.66
MAP1: 518         MAP2: 2.53
MAP1: 419         MAP2: 2.05
MAP1: 544         MAP2: 2.66 
MAP1: 586         MAP2: 2.86
MAP1: 544         MAP2: 2.66
MAP1: 575         MAP2: 2.81
MAP1: 184         MAP2: 0.90
MAP1: 202         MAP2: 0.99
MAP1: 883         MAP2: 4.32
MAP1: 671         MAP2: 3.28
MAP1: 884         MAP2: 4.32
MAP1: 487         MAP2: 2.38
MAP1: 403         MAP2: 1.97
MAP1: 184         MAP2: 0.90
MAP1: 426         MAP2: 2.08
MAP1: 412         MAP2: 2.01
MAP1: 428         MAP2: 2.09
MAP1: 434         MAP2: 2.12
MAP1: 420         MAP2: 2.05
MAP1: 312         MAP2: 1.52
MAP1: 414         MAP2: 2.02
MAP1: 435         MAP2: 2.13
MAP1: 405         MAP2: 1.98
MAP1: 418         MAP2: 2.04
MAP1: 515         MAP2: 2.52
MAP1: 462         MAP2: 2.26
MAP1: 578         MAP2: 2.83
MAP1: 332         MAP2: 1.62
MAP1: 330         MAP2: 1.61
MAP1: 164         MAP2: 0.80
MAP1: 425         MAP2: 2.08
MAP1: 345         MAP2: 1.69
MAP1: 226         MAP2: 1.10
MAP1: 0           MAP2: 0.00
MAP1: 97          MAP2: 0.47
MAP1: 872         MAP2: 4.26
MAP1: 55          MAP2: 0.27
MAP1: 492         MAP2: 2.40
MAP1: 531         MAP2: 2.60
MAP1: 1023        MAP2: 5.00
MAP1: 43          MAP2: 0.21
MAP1: 6           MAP2: 0.03
3
  • 1
    For this to be a valid question here, you would need to provide a link to the data sheet of the sensor and a schematic of the circuit that powers it and connects it the arduino. Jan 16, 2017 at 7:04
  • @ChrisStratton Ok. Got it. I will upload soon.
    – Hasan
    Jan 16, 2017 at 7:38
  • @jwpat7 Now, it's readable.
    – Hasan
    Jan 16, 2017 at 7:39

3 Answers 3

4

The ground does need to be connected. I have also added a RC filter to stabilize the sensor reading.

Connection :

Arduino 5V ----> MAP Vcc

Arduino GND ----> MAP GND

Arduino Analog Pin A0 <---- RC Filter <---- MAP Output pin

Using this connection, I get the proper readings.

Readings on Serial Monitor :

// When Vehicle not start //
MAP1: 376         MAP2: 1.84
MAP1: 376         MAP2: 1.84
MAP1: 376         MAP2: 1.84
MAP1: 376         MAP2: 1.84
MAP1: 376         MAP2: 1.84
MAP1: 376         MAP2: 1.84
MAP1: 376         MAP2: 1.84
MAP1: 376         MAP2: 1.84
MAP1: 376         MAP2: 1.84
MAP1: 376         MAP2: 1.84
MAP1: 376         MAP2: 1.84
MAP1: 376         MAP2: 1.84
MAP1: 376         MAP2: 1.84
MAP1: 376         MAP2: 1.84

//When start vehicle//
MAP1: 343         MAP2: 1.68
MAP1: 332         MAP2: 1.62
MAP1: 341         MAP2: 1.67
MAP1: 255         MAP2: 1.25
MAP1: 215         MAP2: 1.05
MAP1: 336         MAP2: 1.64
MAP1: 320         MAP2: 1.56
MAP1: 321         MAP2: 1.57
MAP1: 308         MAP2: 1.51
MAP1: 316         MAP2: 1.54
MAP1: 326         MAP2: 1.59
MAP1: 326         MAP2: 1.59
MAP1: 325         MAP2: 1.59
MAP1: 177         MAP2: 0.87
MAP1: 219         MAP2: 1.07
MAP1: 216         MAP2: 1.06
MAP1: 220         MAP2: 1.08
MAP1: 208         MAP2: 1.02
MAP1: 211         MAP2: 1.03

//Provide full throttle//
MAP1: 319         MAP2: 1.56
MAP1: 324         MAP2: 1.58
MAP1: 341         MAP2: 1.67
MAP1: 349         MAP2: 1.71
MAP1: 353         MAP2: 1.73
MAP1: 352         MAP2: 1.72
MAP1: 352         MAP2: 1.72
MAP1: 356         MAP2: 1.74
MAP1: 357         MAP2: 1.74
MAP1: 359         MAP2: 1.75
MAP1: 355         MAP2: 1.74
MAP1: 354         MAP2: 1.73
MAP1: 327         MAP2: 1.60

//Suddenly come back to normal throttle//
MAP1: 181         MAP2: 0.88
MAP1: 181         MAP2: 0.88
MAP1: 192         MAP2: 0.94
MAP1: 205         MAP2: 1.00
MAP1: 201         MAP2: 0.98  
MAP1: 210         MAP2: 1.03
MAP1: 218         MAP2: 1.07
MAP1: 222         MAP2: 1.09

//Provide full throttle again//
MAP1: 309         MAP2: 1.51
MAP1: 375         MAP2: 1.83
MAP1: 395         MAP2: 1.93
MAP1: 376         MAP2: 1.84
MAP1: 261         MAP2: 1.28
MAP1: 360         MAP2: 1.76
MAP1: 307         MAP2: 1.50
MAP1: 361         MAP2: 1.76
MAP1: 259         MAP2: 1.27

//Suddenly back again normal throttle//
MAP1: 156         MAP2: 0.76

//Again provide full throttle//
MAP1: 295         MAP2: 1.44
MAP1: 267         MAP2: 1.30
MAP1: 287         MAP2: 1.40
MAP1: 372         MAP2: 1.82
MAP1: 380         MAP2: 1.86
MAP1: 375         MAP2: 1.83
MAP1: 229         MAP2: 1.12
MAP1: 359         MAP2: 1.75
MAP1: 339         MAP2: 1.66
MAP1: 337         MAP2: 1.65
MAP1: 359         MAP2: 1.75
MAP1: 344         MAP2: 1.68

//Again suddenly back to normal throttle//
MAP1: 121         MAP2: 0.59
MAP1: 164         MAP2: 0.80
MAP1: 202         MAP2: 0.99 

//Again provide full throttle//
MAP1: 310         MAP2: 1.52
MAP1: 339         MAP2: 1.66
MAP1: 356         MAP2: 1.74
MAP1: 361         MAP2: 1.76
MAP1: 274         MAP2: 1.34

//Again suddenly back to normal throttle//
MAP1: 127         MAP2: 0.62
MAP1: 178         MAP2: 0.87
MAP1: 221         MAP2: 1.08
MAP1: 247         MAP2: 1.21
MAP1: 224         MAP2: 1.09

//Again provide full throttle//
MAP1: 292         MAP2: 1.43
MAP1: 278         MAP2: 1.36
MAP1: 265         MAP2: 1.30
MAP1: 367         MAP2: 1.79
MAP1: 328         MAP2: 1.60
MAP1: 358         MAP2: 1.75

//Again suddenly back to normal throttle//
MAP1: 182         MAP2: 0.89
MAP1: 174         MAP2: 0.85
MAP1: 242         MAP2: 1.18
MAP1: 253         MAP2: 1.24
MAP1: 261         MAP2: 1.28

//Vehicle stop//
MAP1: 307         MAP2: 1.50
MAP1: 360         MAP2: 1.76
MAP1: 375         MAP2: 1.83
MAP1: 375         MAP2: 1.83    
MAP1: 375         MAP2: 1.83
MAP1: 376         MAP2: 1.84
MAP1: 375         MAP2: 1.83
MAP1: 375         MAP2: 1.83
MAP1: 376         MAP2: 1.84
MAP1: 376         MAP2: 1.84
MAP1: 377         MAP2: 1.84 
MAP1: 377         MAP2: 1.84
MAP1: 377         MAP2: 1.84
MAP1: 377         MAP2: 1.84
1

Although the circuit isn't shown and description isn't perfectly clear, evidently there is some question about how to connect up the various grounds.

Voltage, being “the difference in electric potential energy between two points per unit electric charge” [ref Voltage article in Wikipedia], is measured between two points in an electric circuit. If the two points are in unrelated and isolated circuits meaningful measurements can't be taken.

In typical MAP sensor circuits, the sensor output is relative to automotive ground, so your Uno's analog ground should be connected to automotive ground. Whether this is electrically safe depends on several things:
• Sensor output voltage range – The multimeter readings showed a safe range. The range is narrow compared to the Uno ADC's default +5V range; if you want a bit or two more resolution, you could either set up a 2 V external ADC reference, or could amplify the sensor output up to a range of about 5 V, or could use a unity gain op amp circuit followed by a voltage divider to get into a 0-to-1.1 V range, and use the internal 1.1 V bandgap reference.
• Uno power supply ground voltage – If the Uno's supply is isolated, its ground can be connected to automotive ground with no problem. Or, if its supply ground already connects to automotive ground, no problem. Where a problem might occur is if you measure a large voltage between automotive ground and Uno ground. If so, connect a 100 Ω resistor between the two grounds and measure the voltage across it. If the voltage is near zero, you can connect the grounds or could leave them connected by a small resistor like that. If, on the other hand, some appreciable voltage appears across the resistor, or if it disappears in a puff of smoke, then they can't connect safely and you would need to use a different power supply for the Uno that doesn't have such a problem.
• Ground wire topology – The wiring path from Uno ground to automotive ground should not share any segments with high current devices. In normal operation, or in case of a load dump, several volts difference can arise between the ends of a piece of ground wire to a high current device.

0

I once used an arduino to check the map sensor on my ford f150. As an FYI, I will state that the ford map gave a digital pulse as output for the engine computer and was not analogue as the one you seem to be using. I'm only commenting here for others who might be having trouble with a MAP sensor, so that they realize that some give pulse outputs and not voltage outputs. So, I'm not sure about your map sensor, or turning the pulses into an average reading, but I simply used the interrupt to count pulses over a second and then recorded those readings over several minutes of drive time. (I was having intermittent engine stumbling and I was ruling out the various sensors as causing the trouble.) I was checking to make sure the MAP sensor didn't completely drop out from time to time. In the end, it was my ignition module giving out due to heat fatigue that was the problem. But, I can say that with a handful of resistors and a probe I was able to check all the sensors in the vehicle in short time...except for the oxygen sensor which I was afraid to damage due to its sensitivity.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.