const float BETA = 3950;
// PINs
const int sliderPin = 12;
const int tempPin = 32;
const int pirPin = 34;
// variable for storing the potentiometer value
int sliderValue = 0;
int tempValue = 24;
int pirValue = 0;
const int delayMS = 500;
void setup() {
// put your setup code here, to run once:
Serial.begin(115200);
analogReadResolution(10);
pinMode(sliderPin, INPUT);
pinMode(tempPin, INPUT);
pinMode(pirPin, INPUT);
}
void convertSlider(int val) {
int bit16 = val*16;
int bit12 = val;
int bits8 = val/16;
//Serial.print("slideValue in 16bit: ");
//Serial.println(bit16);
//Serial.print("slideValue in 12bit: ");
//Serial.println(val);
//Serial.print("slideValue in 8bit: ");
//Serial.println(bits8);
float voltage = val * (3.3 / 1023.0);
float procent = val * (100 / 1023.0);
Serial.print("Slider Voltage: ");
Serial.println(voltage);
Serial.print("Slider Procent: ");
Serial.print(procent);
Serial.println("%");
}
void convertTemp(int val) {
float voltage = val * (3.3 / 4095.0);
float procent = val * (100 / 4095.0);
Serial.print("Temp Voltage: ");
Serial.println(voltage);
Serial.print("Procent: ");
Serial.print(procent);
Serial.println("%");
// Calc Celsius
float celsius = 1 / (log(1 / (1023. / val - 1)) / BETA + 1.0 / 298.15) - 273.15;
Serial.print("Temperature: ");
Serial.print(celsius);
Serial.println(" °C");
}
void convertPIR(int val) {
// convert from 12bit
bool motion = val/4095;
// If movement detetected
if(motion) {
Serial.print("Motion detected!");
}
}
void loop() {
// Temperature
tempValue = analogRead(tempPin);
convertTemp(tempValue);
// Slider
sliderValue = analogRead(sliderPin);
convertSlider(sliderValue);
// PIR
pirValue = analogRead(pirPin);
convertPIR(pirValue);
delay(delayMS);
}