// vim: filetype=cpp expandtab shiftwidth=4 softtabstop=4 const int ledPin = 13; // select the pin for the LED const long ADC_REF_MV = 3300; const long ADC_MAX_STEP = 1024; const long OV_FACTOR = 4; // Op. Verstärker Faktor = 4; 10mV = 1dB void sendKeyValue(const char *key, const char *value) { Serial.print(key); Serial.print("="); Serial.println(value); } void sendPinValue(int pin) { long sensorValue, sensorValueMV, sensorValueDBA; char buf[12]; char *sensorKey = "arduino.aX", *sensorKeyMV = "arduino.aX.mv", *sensorKeyDBA = "arduino.aX.dba"; int port = A0 + pin; sensorValue = analogRead(port); sensorKey[9] = '0' + pin; snprintf(buf, 8, "%u", sensorValue); sendKeyValue(sensorKey, buf); sensorValueMV = sensorValue * (ADC_REF_MV*100/ADC_MAX_STEP); sensorKeyMV[9] = '0' + pin; snprintf(buf, 8, "%ld.%03ld", sensorValueMV/100, sensorValue%100); sendKeyValue(sensorKeyMV, buf); sensorValueDBA = sensorValueMV / OV_FACTOR; sensorKeyDBA[9] = '0' + pin; snprintf(buf, 12, "%ld.%04ld", sensorValueDBA/1000, sensorValueDBA%1000); sendKeyValue(sensorKeyDBA, buf); } void setup() { Serial.begin(115200); // declare the ledPin as an OUTPUT: pinMode(ledPin, OUTPUT); // Reference is EXTERNAL (3v) analogReference(EXTERNAL); } void loop() { if (Serial.available() > 0) { digitalWrite(ledPin, HIGH); int pin = Serial.read(); while (Serial.available()) Serial.read(); sendPinValue(pin-'0'); Serial.flush(); digitalWrite(ledPin, LOW); } }