#include <OneWire.
h>
#include <DallasTemperature.h>
#define ONE_WIRE_BUS 2 // Pin data untuk sensor DS18B20
#define PWM_PIN 10 // Pin PWM output
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);
void setup() {
[Link](9600);
[Link](); // Inisialisasi sensor
pinMode(PWM_PIN, OUTPUT);
}
void loop() {
[Link](); // Minta pembacaan suhu
float temperatureC = [Link](0); // Ambil suhu dalam °C
// Pastikan sensor terbaca dengan benar
if (temperatureC == DEVICE_DISCONNECTED_C) {
[Link]("Error: Sensor tidak terdeteksi!");
return;
}
// Hitung tegangan berdasarkan suhu menggunakan rumus linier
float voltage = 0.0342 * temperatureC + 1.752;
// Hitung PWM berdasarkan tegangan dengan rumus linier
int pwmValue = (int)(50.99 * voltage + 0.036); // PWM = 50.99 * voltage +
0.036
// Batasi PWM agar tetap dalam rentang 0-255
pwmValue = constrain(pwmValue, 0, 255);
analogWrite(PWM_PIN, pwmValue); // Atur output PWM
// Output ke Serial Monitor
[Link]("Suhu: ");
[Link](temperatureC);
[Link](" °C, Tegangan: ");
[Link](voltage);
[Link](" V, PWM: ");
[Link](pwmValue);
delay(1000); // Tunggu 1 detik sebelum pembacaan berikutnya
}