#include <Arduino.h>
// koneksi sensor suhu
#define SUHU1 A0
#define SUHU2 A1
#define SUHU3 A2
// buat strukture yg dimiliki oleh sebuah sensor
struct tempSensor_t
{
uint8_t koneksi_sensor; //supaya tidak min
String sensorName; //untuk menampung karakter
uint16_t conversion_data; //untuk menampung data konversi dari input potensio
};
tempSensor_t sensT1, sensT2, sensT3; //tiap sens berisi koneksi, karakter, dan konversi data
void setup()
{
Serial.begin(9600);
// kita isi dulu spek masing-masing sensor
sensT1.sensorName = "sensorT1";
sensT1.koneksi_sensor = SUHU1;
sensT2.sensorName = "sensorT2";
sensT2.koneksi_sensor = SUHU2;
sensT3.sensorName = "sensorT3";
sensT3.koneksi_sensor = SUHU3;
}
void loop()
{
// konversi 3 data analog menjadi digital
sensT1.conversion_data = map(analogRead(sensT1.koneksi_sensor), 0, 1023, 0, 100); //untuk mengkonversi angka potensio ke 0-100 derajat
sensT2.conversion_data = map(analogRead(sensT2.koneksi_sensor), 0, 1023, 0, 100);
sensT3.conversion_data = map(analogRead(sensT3.koneksi_sensor), 0, 1023, 0, 100);
// =====================================================================//
tempSensor_t sensMax; //Deklarasi baru untuk sensMax yang berisikan struktur sens T1,T2,T3
sensMax = sensT1;
if (sensMax.conversion_data < sensT2.conversion_data)
{
sensMax = sensT2;
}
if (sensMax.conversion_data < sensT3.conversion_data)
{
sensMax = sensT3;
}
// delay(1000);
// =====================================================================//
// =====================================================================//
tempSensor_t sensMin; ////Deklarasi baru untuk sensMin yang berisikan struktur sens T1,T2,T3
sensMin = sensT1;
if (sensMin.conversion_data > sensT2.conversion_data)
{
sensMin = sensT2;
}
if (sensMin.conversion_data > sensT3.conversion_data)
{
sensMin = sensT3;
}
// delay(1000);
// =====================================================================//
// =====================================================================//
tempSensor_t sensMid;
sensMid = sensT1;
if (sensT1.conversion_data > sensMin.conversion_data)
{
if (sensT1.conversion_data < sensMax.conversion_data){
sensMid = sensT1;
}
}
if (sensT2.conversion_data > sensMin.conversion_data)
{
if (sensT2.conversion_data < sensMax.conversion_data){
sensMid = sensT2;
}
}
if (sensT3.conversion_data > sensMin.conversion_data)
{
if (sensT3.conversion_data < sensMax.conversion_data){
sensMid = sensT3;
}
}
// delay(1000);
// =====================================================================//
// =====================================================================//
float mean; //supaya dapat menampilkan nilai pecahan
float jumlah;
jumlah = sensT1.conversion_data + sensT2.conversion_data + sensT3.conversion_data;
mean = jumlah / 3; //3 karena rumus rata rata
delay(1000);
// =====================================================================//
Serial.println("T1= [ " + String(sensT1.conversion_data) + " ], T2= [ " + String(sensT2.conversion_data) + " ], T3= [ " + String(sensT3.conversion_data) + " ] ");
Serial.println(" ");
Serial.println("Nilai sensor terbesar = " + sensMax.sensorName + " [ " +String(sensMax.conversion_data)+ " °C ]");
Serial.println("Nilai sensor tengah = " + sensMid.sensorName + " [ " +String(sensMid.conversion_data)+ " °C ]");
Serial.println("Nilai sensor terkecil = " + sensMin.sensorName + " [ " +String(sensMin.conversion_data)+ " °C ]");
Serial.println("Nilai Rata-Rata = " + String(mean) + " °C");
Serial.println("##===============ZAIDAN OKE============##");
delay(1000);
}