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
Hasan
  • 1,476
  • 14
  • 28

3 Answers3

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

Hasan
  • 1,476
  • 14
  • 28
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.

James Waldby - jwpat7
  • 8,840
  • 3
  • 17
  • 32
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.