Hello, so I start learning and using arduino eventhough I have no background in microcontroller and coding.For past couple days I found that arduino can send serial monitors data to excel through this app called ( plx daq ) *sorry if this is not the correct words to put it. I try to build myself a dual axis solar tracker with the PV panel can measure the current and voltage of the panel to view it in excel.
How do I put what I call as PLX DAQ commands to this current and voltage sensor measurement coding? I am so confused with the if brackets and how do I somehow get voltage and current to get viewed in serial monitors and then Excel? I would be very appreciate if someone could help modify this coding. I try to do it myself with putting all plx daq command in if's voltage measurement bracket but what i found is the current will somehow be generated wrongly even with no battery suply.I will put the original coding not created by me here . Thank you so much for support
const byte current_pin = A4;
const byte voltage_pin = A5;
const int max_current_sample_count = 1000;
const int current_sample_interval = 3;
const int voltage_sample_interval = 500;
// voltage divider parameters
const float R1 = 30000;
const float R2 = 7500;
// 5A current sensor parameters
const float current_sensor_scale = 0.0264;
const float current_sensor_offset = -13.385;
float current_sum = 0; // for accumulated measurements
int current_count = 0; // counter for measurements
unsigned long last_current_measure = 0; // for timing the current measurement
unsigned long last_voltage_measure = 0; // for timing the voltagemeasurement
void setup() {
Serial.begin(9600);
}
void loop() {
unsigned long time = millis();
if (time - last_current_measure > current_sample_interval) { // if enough time elapsed to make another measurement
last_current_measure = time; // save the time this action ran
current_sum += current_sensor_scale * analogRead(current_pin) + current_sensor_offset;
current_count++; // increase the counter
if (current_count >= max_current_sample_count) { // when we reached number of samples
// output the average and reset the sum and counter
Serial.print("A = ");
Serial.println(current_sum/current_count);
current_sum = 0;
current_count = 0;
}
}
if (time - last_voltage_measure > voltage_sample_interval) { // if enough time elapsed to make another measurement
last_voltage_measure = time; // save the time this action ran
int value = analogRead(voltage_pin);
float vout = (value * 5) / 1024.0;
float vin = vout / (R2/(R1+R2));
Serial.print("V = ");
Serial.println(vin, 2);
}
}