DEV Community

jay jordan
jay jordan

Posted on

notebook heater

include "U8glib.h"

int analogInput = 0;
int Percent ; //We want it as a whole number
float Voltageout = 0.0;
float Voltage = 0.0; //We want it with decimal places
float R1 = 97000.0; //resistance
float R2 = 10000.0; //resistance
int value = 0;

U8GLIB_SH1106_128X64 u8g(10, 9, 12, 11, 13); // pinout, see page

void draw(void)
{
u8g.setFont(u8g_font_helvB14r); // font
u8g.drawStr(19, 16, "BATTERY");
u8g.setPrintPos(7,55);
u8g.setFont(u8g_font_helvB18r);
u8g.println(Percent); //Prints Percent
u8g.println("%");
u8g.setPrintPos(63,55);
u8g.setFont(u8g_font_helvB18r); //A slightly larger font
u8g.println(Voltage); //Prints the voltage
u8g.println("V");
u8g.drawRFrame(0, 23, 128, 1, 0);
}
void setup(){
pinMode(analogInput, INPUT);
}
void loop(){
value = analogRead(analogInput);
Voltageout = (value * 5.0) / 1024.0;
Voltage = Voltageout / (R2/(R1+R2));
if (Voltage<1) {
Voltage=0.0; // get rid of unwanted readings
}
if (Voltage>5.00) { // if Reading are too large
Voltage= Voltage/10;
Percent = ((Voltage-3)/(4.2-3))100; //votage divided by max cell votage times 100 = the cells current percentage
}
u8g.firstPage();

do
{
draw();

}
while( u8g.nextPage() );
delay(500);
/

включить

включить <дальнюю температуру.h>

определить вывод ДАТЧИКА 2 // Вывод Arduino, подключенный к контакту DQ датчика DS18B20

определить вывод RELAY_PIN A5 // Вывод Arduino, подключенный к реле, которое подключено к нагревательному элементу

TEMP_THRESHOLD_UPPER = 20; // верхний порог температуры, который, в свою очередь, связан с нагревательным элементом, измените желаемое значение на
int const TEMP_THRESHOLD_LOWER = 15; // нижний порог температуры, измените желаемое значение на

OneWire(SENSOR_PIN); // настройте экземпляр OneWire сдатчиками
(&OneWire); // передайте OneWire в библиотеку DallasTemperature

// температура в Градусах Цельсия

void .
Serial.begin(9600); // инициализировать последовательные
датчики.begin(); // инициализировать
pinMode датчика(RELAY_PIN, ВЫХОД); // инициализировать цифровой вывод в качестве выходного
}

loop void() {
sensors.requestTemperatures(); // отправить команду для получения температуры
temperature = sensors.getTempCByIndex(0); / / считывание температуры в градусах Цельсия

если(температура > TEMP_THRESHOLD_UPPER) {
Серийный номер.println(,,,)"Нагревательный элемент выключен");
digitalWrite(RELAY_PIN, НИЗКИЙ уровень); // выключить
} else if(температура < TEMP_THRESHOLD_LOWER){
Serial.println("Нагревательный элемент включен");
digitalWrite(RELAY_PIN, ВЫСОКИЙ уровень); // включить
}

задержка(500) ;
}

Top comments (0)