20180123 arduino partitore breadboard01I propose a new measurement experiment using Arduino, working as DAQ (data acquisition instrument). I proceed as described in the article Arduino and Excel with PLX-DAQ and I mount my circuit on breadboard powered by the Arduino board at 5V. I propose to analyze how the resistive voltage divider evolves. I know that when two (or more) series-mounted resistors are affected by the same voltage, this voltage is divided in direct proportion to their size in Ohms.
I do the practical test by mounting on a breadboard a 100kΩ resistor in series with a 100kOhm potenziometer (or trimmer) bridging its central pin with an its side pin (so its resistance varies from 0÷100kΩ).
I perform voltage measurements on the potenziometer using Arduino, changing slowly its resistance over time and collecting data on an Excel spreadsheet using PLX-DAQ. I write the Arduino sketch reported below. Some explanations:

  • I use the A0 pin of Arduino as a probe to measure the voltage: #define sensorPin A0.
  • With statement #define resistorValue 100 I insert the correct resistor value in kOhm. Knowing that the resistance measurement of a resistor is affected by a tolerance and it deviates from its nominal value indicated with the color code, it would be better to enter its resistance value measured with an ohmmeter.
  • To store the voltage coming from the potenziometer I define the variable sensorVoltage.
  • After I calculate the voltage that falls on the resistor using the formula: 5-sensorVoltage, and the potenziometer Ohms with formula: sensorVoltage/((5-sensorVoltage)/resistorValue.
  • With delay(500) I insert 500ms delay between one measurement and the other so the PLX-DAQ-v2.11.xlsm spreadsheet does not crash Excel.

#define sensorPin A0       // select the input pin for the potentiometer
#define resistorValue 100  // resistor in kohm
int sensorValue = 0;       // variable to store the value coming from the sensor 0-1023
float sensorVoltage = 0;  // variable to store the voltage coming from the sensor 0-5V
int cont = 0;

void setup() {
  Serial.begin(9600);
  //Serial.println("CLEARDATA");
  Serial.println("LABEL,t,NUMBER,R-RESISTOR,R-TRIMMER,V-RESISTOR,V-TRIMMER");
}

void loop() {
  // read the value from the sensor
  sensorValue = analogRead(sensorPin);
  // calculate voltage
  sensorVoltage = sensorValue*5.0/1023.0;
  // send value to USB
  Serial.print("DATA,TIME,");
  Serial.print(cont++);
  Serial.print(",");
  Serial.print(resistorValue);
  Serial.print(",");
  Serial.print(sensorVoltage/((5-sensorVoltage)/resistorValue));
  Serial.print(",");
  Serial.print(5-sensorVoltage);
  Serial.print(",");
  Serial.println(sensorVoltage);
  // delay 500ms
  delay(500);
}

The figure below shows a measurement test with data collection in Excel.

20180123 arduino partitore breadboard02


Advertising

Advertising

Advertising

We use cookies

We use cookies on our website. Some of them are essential for the operation of the site, while others help us to improve this site and the user experience (tracking cookies). You can decide for yourself whether you want to allow cookies or not. Please note that if you reject them, you may not be able to use all the functionalities of the site.