Код (C++): //градусник #include <math.h> #include <LiquidCrystalRus.h> // подключаем экран LiquidCrystalRus lcd(1, 2, 3, 4, 5, 6); // (RS, E, DB4, DB5, DB6, DB7) void setup() { lcd.begin(16, 2); // Задаем размерность экрана lcd.clear(); lcd.setCursor(0, 0); // Устанавливаем курсор в начало 1 строки } // создаем метод для перевода показаний сенсора в градусы Цельсия double Getterm(int RawADC) { double temp; temp = log(((10240000/RawADC) - 10000)); temp = 1 / (0.001129148 + (0.000234125 * temp) + (0.0000000876741 * temp * temp * temp)); temp = temp - 273.15; return temp; } // создаем метод для вывода на экран показаний сенсора void printTemp(void) { double temp = Getterm(analogRead(31)); // считываем показания с сенсора lcd.clear(); lcd.setCursor(0,0); lcd.print("Water Volt "); lcd.setCursor(11,0); lcd.print("Oil"); lcd.setCursor(0,1); lcd.print(temp); lcd.setCursor(10,1); lcd.print(temp); } void loop() { printTemp(); // вызываем метод, созданный ранее delay(1000); } Код (C++): //Вольт амперметр на ардуино. #include <Wire.h> #include <LiquidCrystalRus.h> // подключаем экран LiquidCrystalRus lcd(1, 2, 3, 4, 5, 6); // (RS, E, DB4, DB5, DB6, DB7) int analogInput = 30; //вход вольтметра int ampInput = 31; //вход амперметра float vin = 0; //входное напряжение float ain = 0; //входной ток мА void setup() { lcd.begin(16, 2); // Задаем размерность экрана pinMode(analogInput, INPUT); // вход МК 30 пин pinMode(ampInput, INPUT); // вход МА 31 пин } void loop() { vin = float(analogRead(analogInput))/19.75; //растёт напряжения ain = float(analogRead(ampInput))*1.45; //расчёт силы тока мА lcd.setCursor(0, 0); lcd.print("Volt = "); //вывод напряжения lcd.print(vin); lcd.setCursor(0, 1); lcd.print("mA = "); // вывод миллиампер lcd.print(ain); delay(500); }
Код (C++): #include <Wire.h> #include <math.h> #include <LiquidCrystalRus.h> // подключаем экран LiquidCrystalRus lcd(1, 2, 3, 4, 5, 6); // (RS, E, DB4, DB5, DB6, DB7) int analogInput = 30; //вход вольтметра int ampInput = 31; //вход амперметра float vin = 0; //входное напряжение float ain = 0; //входной ток мА void setup() { pinMode(analogInput, INPUT); // вход МК 30 пин pinMode(ampInput, INPUT); // вход МА 31 пин lcd.begin(16, 2); // Задаем размерность экрана lcd.clear(); // lcd.setCursor(0, 0); // Устанавливаем курсор в начало 1 строки -- не нужно, т.к. при clear это уже делается } // создаем метод для перевода показаний сенсора в градусы Цельсия double Getterm(int RawADC) { double temp; temp = log(((10240000 / RawADC) - 10000)); temp = 1 / (0.001129148 + (0.000234125 * temp) + (0.0000000876741 * temp * temp * temp)); temp = temp - 273.15; return temp; } // создаем метод для вывода на экран показаний сенсора void printTemp(void) { double temp = Getterm(analogRead(31)); // считываем показания с сенсора lcd.clear(); //lcd.setCursor(0, 0); -- не нужно, т.к. при clear это уже делается lcd.print("Water Volt "); lcd.setCursor(11, 0); lcd.print("Oil"); lcd.setCursor(0, 1); lcd.print(temp); lcd.setCursor(10, 1); lcd.print(temp); } void printPower() { vin = float(analogRead(analogInput)) / 19.75; //растёт напряжения ain = float(analogRead(ampInput)) * 1.45; //расчёт силы тока мА lcd.clear(); //lcd.setCursor(0, 0); -- не нужно, т.к. при clear это уже делается lcd.print("Volt = "); //вывод напряжения lcd.print(vin); lcd.setCursor(0, 1); lcd.print("mA = "); // вывод миллиампер lcd.print(ain); } void loop() { printTemp(); // измеряем и отображаем температуру delay(1000); printPower(); // измеряем и отображаем напряжение и ток delay(1000); }