Multiple sensor fusion in Arduino - Time & Space Complexity
When combining data from multiple sensors, the time it takes to process all inputs matters.
We want to know how processing time grows as we add more sensors.
Analyze the time complexity of the following code snippet.
const int sensorCount = 5;
int sensorValues[sensorCount];
void readSensors() {
for (int i = 0; i < sensorCount; i++) {
sensorValues[i] = analogRead(i);
}
}
void loop() {
readSensors();
// process sensorValues here
}
This code reads values from multiple sensors one by one and stores them in an array.
Identify the loops, recursion, array traversals that repeat.
- Primary operation: The for-loop reading each sensor value.
- How many times: It runs once per sensor, so sensorCount times.
As the number of sensors increases, the time to read all sensors grows in a straight line.
| Input Size (n) | Approx. Operations |
|---|---|
| 10 | 10 sensor reads |
| 100 | 100 sensor reads |
| 1000 | 1000 sensor reads |
Pattern observation: Doubling the number of sensors doubles the work.
Time Complexity: O(n)
This means the time to read sensors grows directly with the number of sensors.
[X] Wrong: "Reading multiple sensors takes the same time no matter how many sensors there are."
[OK] Correct: Each sensor read takes time, so more sensors mean more total time.
Understanding how sensor reading time grows helps you design efficient embedded systems and shows you can think about performance clearly.
What if we read sensors in parallel using interrupts? How would the time complexity change?