arduino restructure
This commit is contained in:
41
arduino/main/main.ino
Normal file
41
arduino/main/main.ino
Normal file
@@ -0,0 +1,41 @@
|
||||
// Vehicle Voltage Monitor
|
||||
// Reads 12V-14.4V battery via voltage divider on A0
|
||||
// Outputs to Serial for PC monitoring
|
||||
|
||||
// Pin definitions
|
||||
const int PIN_VBAT = A0; // Vehicle voltage input (via divider)
|
||||
|
||||
// Voltage divider constants
|
||||
// Divider: 100k upper (to Vin), 47k lower (to GND)
|
||||
// Vout = Vin * (47k / (100k + 47k)) = Vin * 0.3197
|
||||
// So Vin = Vout / 0.3197
|
||||
// At 12V: ADC sees 3.84V | At 14.4V: ADC sees 4.60V
|
||||
const float DIVIDER_RATIO = 47.0 / (100.0 + 47.0); // ~0.3197
|
||||
const float ADC_REF = 5.0;
|
||||
const int ADC_MAX = 1023;
|
||||
|
||||
void setup() {
|
||||
Serial.begin(9600);
|
||||
pinMode(LED_BUILTIN, OUTPUT);
|
||||
}
|
||||
|
||||
void loop() {
|
||||
// Read and calculate voltage
|
||||
int rawAdc = analogRead(PIN_VBAT);
|
||||
float vDivider = (rawAdc / (float)ADC_MAX) * ADC_REF;
|
||||
float vBattery = vDivider / DIVIDER_RATIO;
|
||||
|
||||
// Output to serial
|
||||
Serial.print("ADC: ");
|
||||
Serial.print(rawAdc);
|
||||
Serial.print(" | V_bat: ");
|
||||
Serial.print(vBattery, 2);
|
||||
Serial.println("V");
|
||||
|
||||
// Heartbeat blink
|
||||
digitalWrite(LED_BUILTIN, HIGH);
|
||||
delay(50);
|
||||
digitalWrite(LED_BUILTIN, LOW);
|
||||
|
||||
delay(1000); // 1Hz update rate
|
||||
}
|
||||
Reference in New Issue
Block a user