Создать термометр на лампе ИН-9

angersos
angersos аватар
Offline
Зарегистрирован: 09.06.2016

Создать термометр на лампе ИН-9, подключить датчик температу и регулировать спомощью мосфета.

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Создавайте! Возражений нет.

angersos
angersos аватар
Offline
Зарегистрирован: 09.06.2016

А помочь?

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

А что, кто-то просил о помощи? Не видел, наверное модераторы пост потёрли.

NeiroN
NeiroN аватар
Offline
Зарегистрирован: 15.06.2013

вот статья вам поможет http://robocua.blogspot.ru/2015/11/9.html

Тем про пид регуляторы тоже полно. Но можно и свой велосипед изобрести - считать разницу целевой и текущей темпиратуры и преобразовывать это в шим на мосфет. Большая разница - включен постоянно, маленькая разница 50% мощьности и так далее мощьность зависит от темпиратуры.

ИН-9 похоже тоже шимом рулится.

angersos
angersos аватар
Offline
Зарегистрирован: 09.06.2016

Но нам нужно запихнуть это в ардуино нано, разве можно?

Yarik.Yar
Offline
Зарегистрирован: 07.09.2014

Если нужно, то всё можно.

А вообще, помощь на нашем форуме - дело добровольное, мы тут не подряжались помогать каждому встречному-поперечному...

angersos
angersos аватар
Offline
Зарегистрирован: 09.06.2016

Кто желает помогает, а не пишет что не поможет. Если человек лучше понимает и разбирается в этом  меня это ему плюс.

angersos
angersos аватар
Offline
Зарегистрирован: 09.06.2016

Вечер добрый нашол на просторах интерн. вот такой скетч термометр на термисторе

// подключаем две библиотеки для работы с LCD и математических вычислений
#include <LiquidCrystal.h>
#include <math.h>


LiquidCrystal lcd(12, 11, 10, 5, 4, 3, 2); // инициализируем LCD

int backLight = 13;

void setup(void) {
  pinMode(backLight, OUTPUT);
  
  digitalWrite(backLight, HIGH); 
  lcd.begin(16, 2);             
  lcd.clear();                  
  lcd.setCursor(0,0);   

}

 // создаем метод для перевода показаний сенсора в градусы Цельсия 
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(4));  // считываем показания с сенсора
  lcd.clear();
  lcd.setCursor(0,0);
  lcd.print("Temperature is:");
  lcd.setCursor(0,1);
  lcd.print(temp);
  lcd.print(" C");
  
  }


void loop(void) {
  printTemp(); // вызываем метод, созданный ранее
  delay(1000);
}

Вопрос нужна скачать библиотеку математических вычислений?

#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <math.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);


int backLight = 13;

void setup(void) {
  pinMode(backLight, OUTPUT);
  
  digitalWrite(backLight, HIGH); 
             
  lcd.clear();                  
  lcd.setCursor(0,0);   

}

 // создаем метод для перевода показаний сенсора в градусы Цельсия 
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(2));  // считываем показания с сенсора
  lcd.clear();
  lcd.setCursor(0,0);
  lcd.print("Temperature is:");
  lcd.setCursor(0,1);
  lcd.print(temp);
  lcd.print(" C");
  
  }


void loop(void) {
  printTemp(); // вызываем метод, созданный ранее
  delay(1000);
}

Но на экране нет ничего.

yul-i-an
yul-i-an аватар
Offline
Зарегистрирован: 10.12.2012

Вот пример ПИ регулятора (медленный шим). http://arduino.ru/forum/proekty/pi-regulyator-otopleniya
Вот еще http://arduino.ru/forum/programmirovanie/upravlenie-tenami-propuskom-per...
На просторах форума поищите, поиск сверху.

angersos
angersos аватар
Offline
Зарегистрирован: 09.06.2016

Спасибо буду пробовать!

Можно ваш код?

yul-i-an
yul-i-an аватар
Offline
Зарегистрирован: 10.12.2012

angersos пишет:

Спасибо буду пробовать!

Можно ваш код?

Какая часть интересует?

Jeka_M
Jeka_M аватар
Онлайн
Зарегистрирован: 06.07.2014

angersos пишет:

Вопрос нужна скачать библиотеку математических вычислений?

Не нужнА, эта библиотека входит в состав Arduino IDE.

yul-i-an
yul-i-an аватар
Offline
Зарегистрирован: 10.12.2012

Я думаю что для начала необходимо научится выводить на Ваш индикатор значения.

Затем научится мерять температуру и отоброжать её на индекаторе.

Далее управлять нагревателем исходя из полученой и желаемой температуры по какомунибудь закону регулирования.

А потом можно добавить всякие плюшки типа меню и т.п.

angersos
angersos аватар
Offline
Зарегистрирован: 09.06.2016

С горем попалам буду пробовать, тк я в этом не спец.