#include <Arduino.h>
const int vinPin = A5; // Analog input pin for voltage measurement
const float referenceVoltage = 5.0; // Voltage reference (5V)
const float resistors[] = {10000.0, 1000.0, 100.0}; // Array of reference resistor values
const int numResistors = sizeof(resistors) / sizeof(resistors[0]); // Number of reference resistors
void setup() {
Serial.begin(9600); // Start serial communication
}
void loop() {
for (int i = 0; i < numResistors; i++) {
float resistance = measureResistance(resistors[i]);
if (resistance > 0.0) {
Serial.print("Resistance: ");
Serial.print(resistance);
Serial.print(" Ohms (using ");
Serial.print(resistors[i]);
Serial.println(" ohm reference)");
break; // Stop loop after finding valid measurement
}
}
delay(1000); // Delay between measurements
}
float measureResistance(float referenceResistor) {
// Read voltage from analog input pin
//int analogValue = analogRead(vinPin);
int analogValue = 100;
// Calculate voltage based on reference voltage and resolution
float voltage = (analogValue / 1023.0) * referenceVoltage;
// Check if voltage is within valid range for this reference resistor
if (voltage < 0.1 || voltage > 4.9) {
return 0.0; // Invalid measurement, return 0
}
// Calculate resistance using voltage divider formula
return referenceResistor * (referenceVoltage - voltage) / voltage;
}