PID это по суте силовой ключ с опторозвязкой ну и к нему нужен код соответственно и библиотека.А функцыя его в том чтобы поддерживать заданую температуру .
Привет. Нет, ПИД это Пропорционально-Интегрально-Дифференциальный регулятор. На пальцах трудно объяснить его работу, но только он может максимально быстро, четко и без проскоков стабилизировать заданный параметр меняя силу воздействия по сложному закону. Конечно если правильно настроен. Примерно как круиз-контроль на автомобиле. В большом инкубаторе он очень нужен и в маленьком лишним не будет.
Он AC или DC? На постоянку MOSFET, на переменку симистор или твердотельные реле на что угодно. Да хоть и обычные реле, поворот же не часто происходит. На моих раз в 2 часа. Чаще чем раз в час не делают и считается вредным. Я не проверял лично, но солидарен.
ето вы походу о подключении питания, но там 4 провода, подавал 12в постоянного тока, он лишь дёргался... схож с шаговиком по поведению, вот и как таким управлять? ;)
Ну скорее всего шаговик и есть. Покрутите за вал. У шагового будут шаги пальцами ощущаться. Вам не понятна программная или аппаратная часть управления шаговым двигателем? И назовите его модель.
ось крутится свободно, нет увеличения сопротивления при замыкании контактов(как у шаговиков), даташит нигде не нашёл, мутант какой-то попался.. ;) 4 PIN...
MADE IN JAPAN NO. 020-024-0045-319-SS
24 VOLTS, 19 OHM RESISTANCE, 50129-2, Applied Motion Products, INC.
Ну, трудно что-то сказать наверняка. Может асинхронник трехфазный, с обмотками звездой. Может однофазный с пусковой обмоткой, может просто две обмотки для разных оборотов.Может постоянного тока с внешним возбуждением. Может сельсин. Может там геркон для измерения оборотов... разберите его чтоль.
Здравствуйте ребята,, уже третий день я стараюсь собрат инкубатор под управлением Ардуино Уно,но с программированием не очень справляюсь,, и увидел ваш проект,,, помогите пожалусто собират, я применяю ,,Ардуино уно р3,, ,,Arduino LCD Keypad Shield ,, и ,, ДХТ-11,, датчик ,, подскажите пожалуйста коды для ардуино
Здравствуйте ребята,, уже третий день я стараюсь собрат инкубатор под управлением Ардуино Уно,но с программированием не очень справляюсь,, и увидел ваш проект,,, помогите пожалусто собират, я применяю ,,Ардуино уно р3,, ,,Arduino LCD Keypad Shield ,, и ,, ДХТ-11,, датчик ,, подскажите пожалуйста коды для ардуино
Вот немного видео моего проекта инкубатора с ПИД регуляторами. Почтовый ящик не видно отсюда. Цену трудно назвать без точного техзадания. Если есть интерес, пишите в комментариях на канале, обсудим. Не стот тему засорять.
свой инкубатор сделал из новосибирской наседки, у которой сломался регулятор температуры. для измерения температуры/влажности использовал 2 DHT22. Один в центре, второй в углу. В центре на крышке установлен вертилятор 12 см от компьютера. Когда края инкубатора остывают на 0.2 град по отношению к середине (для этого и 2 датчика), вентилятор включается вверх (не несколько секунд), обдувая нагреватели. Нагреватели остались от наседки (пластины с резисторами). к одной из пластин приклеен DHT11. Поддержание температуры в инкубаторе достигается поддержанием температуры на нагревателе в определенном диапазоне. Эксперементальным путем пришел к выводу, что так температура держится стабильнее (видимо по причине инертности датчиков в инкубаторе). Температура нагревателя подстраивается, в зависимости от динамики температуры в инкубаторе. ограничения DHT11 - не видит температуру выше 60, и нагреватель выше греть не получается. Контроллер поддерживает разную температуру в разные дни инкубации (по какой-то дикой таблице с просторов интернета), равно как и смотрит переворачивать ли яйца. Для этого он отслеживает время с начала инкубации. На случай отключения электричества, каждый час записывает время в пром. так-же записывает температуру, которую надо поддерживать на нагревателе. Поворот яиц сделал анологично стандартной в наседке (у меня его не было). Используется двигатель от микроволновки, на шкив которого прикручена Г образная железка. к ней прямая тяга, которая двигает решетку туда - сюда. поддержание влажности не делал, на тот момент не было нужных деталей а время поджимало. В этом году собираюсь сделать инкубатор яиц на 500, там хочу попробовать поддерживать влажность и автоматическое проветривание. Для чтения с DHT11,DHT22 и для работы с дисплеем 1602 использовал готовые библиотеки, опять-же с просторов интернета.
про китайские DHT22 - их показания при одной температуре несколько отличаются, немного более заявленной погрешности. Поэтому каждый поверял медицинским градусником и записывал разницу в пром контроллера. далее при работе инкубатора учитываю эту разницу.
кто помогбы с доработкой кода? идея такая, нужен таймер который показывалбы время работы порта в режиме HIGH, с момента включения ардуины (часы, минуты, может и секунды) , это нужно для расчота потребления електричества на обогрев.. есть в наличиИ RTC.... часики, возможно пригодятся для защиты от ресета? или можно (желательно) обойтись без них?
Дорогой Zlod Не хотите ли поделится скетчем а то инкубатор нужен сейчас а времени нет самому огород городить потому как я понимаю сколько на это нужно времени и сил.
ось крутится свободно, нет увеличения сопротивления при замыкании контактов(как у шаговиков), даташит нигде не нашёл, мутант какой-то попался.. ;) 4 PIN...
MADE IN JAPAN NO. 020-024-0045-319-SS
24 VOLTS, 19 OHM RESISTANCE, 50129-2, Applied Motion Products, INC.
ОШИБАЕШЬСЯ у меня второй год работает отлично погрешность влажности 2% а температуру я сделал из трёх DS18B20 и использую среднеарифметическую а DHT22 как работал так и будет работать
Не отвечает Ваша Дуська на звонок. Может порт не тот, может драйвер не тот, может плата Ардуино не та выбрана, может загрузчик затерт программатором. Если Про Мини, то может быть еще провода от конвертера не так подключены. А может она совсем того, померла.
Я хочу внести материалы с кодом, со схемами и возможно с картинками на свой блог. Есть такой вопрос, это чьё-то ноу хау? Код в открытом доступе? Чтобы не получилось так, что я нарушил чьи-то права...
Я хочу внести материалы с кодом, со схемами и возможно с картинками на свой блог. Есть такой вопрос, это чьё-то ноу хау? Код в открытом доступе? Чтобы не получилось так, что я нарушил чьи-то права...
Если ты укажешь откуда ты взял эти материалы, коды схемы, и не будешь это все использовать для получения дополнительной прибыли, а только в личных целях, то публикуй на здоровье, если же захочешь на этом заработать денег - спрашивай на это разрешение у автора.
Всем привет, тоже тут понадобился инкубатор, склеил за вечер коробку, написал программу, из куском взятых из инета, вот выкладываю может кому поможет. работает на ПИД регулировании контроль температуры на DS1820, влажность ОТОБРАЖАЕТСЯ с DHT22 нагрев Лампой 40ВТ через реле. Температуру держит+-0,1гр. Прогромирование температуры через сериал с компа, отсчет работы программы в ППЗУ
#include <class_noDELAY.h>
noDELAY W_Minut; // таймер отсчета времени работы программы
noDELAY W_cHasov; // таймер записи в eeprom
noDELAY W_humi; // таймер опроса датчмка влажности
#include <OneWire.h> // библиотека датчика температуры ds1820
#include <PID_v1.h> // библиотека ПИД контролера
#include <EEPROM.h> // библиотека ППЗУ
#include <dht.h> // библиотека датчика влажности
dht DHT; // иницианализация
#define DHT22_PIN 5 // указание пина подключения датчика DHT22
#define RELAY_PIN 6 // указание пина подключения реле нагрева
#define FRELAY_PIN 3 // противопожарное реле
// Резервируем адреса ППЗУ
#define eepromM 0 //минут работает система
#define eepromH 1 //часов работает система
#define eepromS 2 //Суток системы
#define eepromT 3 //Температура работает система
//define eepromH4 4 //? работает система
//#define eepromH5 5 //? работает система
double Setpoint; // Требуемое показание датчика температуры умноженное на 10;
double Input, Output; // температура передаваемая а ПИД, Размер окна возвращаемый ПИДом
// Определяем агрессивные и консервативные параметры PID управления
//double aggKp=40, aggKi=2, aggKd=10;
//double consKp=1, consKi=0.05, consKd=0.25;
//double consKp=900, consKi=20, consKd=50;
//int WindowSize = 3000;
//double consKp=2800, consKi=820, consKd=2000;
//int WindowSize = 9000; //размер окна для реле
double consKp=5800, consKi=1620, consKd=4000; // Определяем начальные параметры согласно библиотеке Подобраны експериментально для окна 9000
int WindowSize = 9000; //размер окна для реле
PID myPID(&Input, &Output, &Setpoint, consKp, consKi, consKd, DIRECT); // Иницианализация ПИД
unsigned long windowStartTime; // начало окна
OneWire ds(7); // DS18S20 Датчик на ноге 7
byte addr[1][8]; // Адрес датчика, массив 1х8
double tempToPID; // Переменная для отправки температуры с датчика на PID управление
int HighByte, LowByte, TReading; // Переменные для работы DS18S20: старший и младший байты и итоговая температура
//char buf[20]; // пока писал коментарии нашел лишнее объявлени, полезно писать коментарии :))
bool askTemperature = 0; // флаг - температура запрошена!
int Tc_100; // тут увроде хранится Т от датчика 1820
int timeWhenAskTemperature; // для отслеживания времени расчета температуры датчиком 1820 можно переделать на nodeley, но взята из инета без изменения
int millisNow; // для отслеживания времени расчета температуры датчиком 1820 можно переделать на nodeley, но взята из инета без изменения
unsigned long Swork,Hwork,Mwork; // Переменная для записи режима и температуры в EEPROM;
// int
unsigned long mil1;
int dela;
void setup(void)
{
dela=0;
windowStartTime = millis(); // определяем начало окна
//tell the PID to range between 0 and the full window size
myPID.SetOutputLimits(0, WindowSize); // определяем диапазон работы ПИД
pinMode(RELAY_PIN, OUTPUT); // Реле пин в режиме выхода
pinMode(FRELAY_PIN, OUTPUT); // Реле пин в режиме выхода
Serial.begin(9600);
ds.search(addr[0]); // Определим адрес нашего единственного датчика
myPID.SetMode(AUTOMATIC); // Включаем PID
Mwork = (EEPROM.read(eepromM)); // Прочитаем из памяти часы работы;
// получим диапазон 0-60
if (Mwork>=60) { // Если там чушь, установим 0 часов.
Mwork = 0;
}
Hwork = (EEPROM.read(eepromH)); // Прочитаем из памяти часы работы;
// получим диапазон 0-60
if (Hwork>=26) { // Если там чушь, установим 0 часов.
Hwork = 0;
}
Swork = (EEPROM.read(eepromS)); // Прочитаем из памяти сутки работы;
// получим диапазон 0-24
if (Swork>=31) { // Если там чушь, установим 0 суток.
Swork = 0;
}
Setpoint = (EEPROM.read(eepromT))+200; // Прочитаем из памяти необходимую температуру;
// поскольку там БАЙТ (знач. менее 255) - добавим 200
// получим диапазон 20,0-45,5.
if (Setpoint>410 || Setpoint <300 ) { // Если там чушь, установим 37,5 градуса.
Setpoint = 375;
}
W_Minut.start();
W_cHasov.start();
W_humi.start();
digitalWrite(FRELAY_PIN, LOW);
}
void loop(void) {
char incomingByte;
//delay (dela);
W_humi.read(2500);
if (W_humi.tick) {int chk = DHT.read22(DHT22_PIN);
switch (chk)
{
case DHTLIB_OK:
break;
case DHTLIB_ERROR_CHECKSUM:
Serial.print("Checksum error,\t");
break;
case DHTLIB_ERROR_TIMEOUT:
Serial.print("Time out error,\t");
break;
default:
Serial.print("Unknown error,\t");
break;
}
}
if (Serial.available() > 0) { //если есть доступные данные
// считываем байт
incomingByte = Serial.read();
Serial.println();
Serial.print(" incomingByte= ");Serial.println(incomingByte);
if (incomingByte == 'R') {
Mwork=0;Hwork=0;Swork=0;
}
if (incomingByte == '?') {Serial.println();Serial.println(" 'R' - Restatrt time, '+' - UP T, '-' - Down T");}
if (incomingByte == '?') {Serial.println();Serial.println(" 'M''H' - time +, 'm''h' - time - .");delay (5000);}
if (incomingByte == '+') {Setpoint=(Setpoint+1);Serial.println(" UP ");}
if (incomingByte == '-') {Setpoint=(Setpoint-1);Serial.println(" Down ");}
if (incomingByte == 'M') {Mwork=(Mwork+1);Serial.println(" Time correct ");}
if (incomingByte == 'm') {Mwork=(Mwork-1);Serial.println(" Time correct ");}
if (incomingByte == 'H') {Hwork=(Hwork+1);Serial.println(" Time correct ");}
if (incomingByte == 'h') {Hwork=(Hwork-1);Serial.println(" Time correct ");}
if (EEPROM.read(eepromM)!=Mwork) { EEPROM.write(eepromM, (byte) (Mwork));Serial.println("M Save");}
if (EEPROM.read(eepromH)!=Hwork) { EEPROM.write(eepromH, (byte) (Hwork));Serial.println("H Save"); }
if (EEPROM.read(eepromS)!=Swork) { EEPROM.write(eepromS, (byte) (Swork));Serial.println("S Save"); }
if (EEPROM.read(eepromT)!=(Setpoint-200)) { EEPROM.write(eepromT, (byte) (Setpoint-200));Serial.println("T Save");delay (500); }
delay (500);
}
W_Minut.read(59958);
if (W_Minut.tick) {
dela=(dela+1);
Serial.println();
Serial.print(( "mili= ")); // выводим
Serial.print(millis()); // общее время
Serial.print(( "/")); //
Serial.print(dela); // количество циклов W_Minut
Serial.print(("="));
Serial.print(millis()/dela); // Среднее время выполнения W_Minut по результатам
//за сутки это - 60000 прибавить к "W_Minut.read(59958)" строка 156 для корекции времени
// Serial.print(mil1);
// mil1=millis();
// delay(dela);
Mwork=Mwork+1;Serial.print(" M+ ");delay (500);
//Serial.print ("----------");
//Serial.println (Mwork);Serial.print("M=");Serial.println(Mwork);
if (Mwork >= 60) {
Mwork=Mwork-60;Serial.print(" M=0 ");Serial.println(Mwork);
if (Hwork >= 23) {
Hwork=Hwork-23;Swork=Swork+1;Serial.print(" h=0 S+ ");Serial.println(Hwork);
if (EEPROM.read(eepromM)!=Mwork) { EEPROM.write(eepromM, (byte) (Mwork));Serial.println("M Save");delay (500); }
if (EEPROM.read(eepromH)!=Hwork) {EEPROM.write(eepromH, (byte) (Hwork));Serial.println("H Save1");}
if (EEPROM.read(eepromS)!=Swork) {EEPROM.write(eepromS, (byte) (Swork));Serial.println("S Save1");}
}
else {
Hwork=Hwork+1;Serial.print(" H+ ");
if (EEPROM.read(eepromM)!=Mwork) { EEPROM.write(eepromM, (byte) (Mwork));Serial.println("M Save");delay (500); }
if (EEPROM.read(eepromH)!=Hwork) { EEPROM.write(eepromH, (byte) (Hwork));Serial.println("H Save");delay (500); }
if (EEPROM.read(eepromS)!=Swork) { EEPROM.write(eepromS, (byte) (Swork));Serial.println("S Save");delay (500); } }
}
// Serial.print (" h=");
// Serial.print (Hwork);
// Serial.print (" s=");
// Serial.print (Swork);
//Serial.println (Mwork);
Serial.println();
}
Serial.print( "S=");
Serial.print(Swork);
Serial.print( " h=");
Serial.print(Hwork);
Serial.print( " min=");
Serial.print(Mwork);
Serial.print("(");
Serial.print (EEPROM.read(eepromM));
Serial.print(") ");
Serial.print((millis()%60000)/1000);
Serial.print (" \t");
Serial.print("T="); // заданная температура
Serial.print (Setpoint/10);
Serial.print("(");
Serial.print (EEPROM.read(eepromT)+200);
Serial.print(")");
Serial.print(", Input "); // текущая температура
Serial.print(Input/10);
// Serial.print ((millis() ));
Serial.print ("");
Serial.print(",\t H=");
Serial.print(DHT.humidity, 1);
Serial.print(" T=");
Serial.print(DHT.temperature, 1);
Serial.print(",\t");
Serial.print("Output ");
Serial.print(Output);
Serial.println();
W_cHasov.read(600100);
if (W_cHasov.tick) {
if (EEPROM.read(eepromM)!=Mwork) {EEPROM.write(eepromM, (byte) (Mwork));Serial.println("M Save1"); }
if (EEPROM.read(eepromH)!=Hwork) {EEPROM.write(eepromH, (byte) (Hwork));Serial.println("H Save1");}
if (EEPROM.read(eepromS)!=Swork) {EEPROM.write(eepromS, (byte) (Swork));Serial.println("S Save1");}
if (EEPROM.read(eepromT)!=(Setpoint-200)) {EEPROM.write(eepromT, (byte) (Setpoint-200));Serial.println("T Save"); }
}
byte i;
byte data[12];
millisNow = millis(); // Узнаем текущее время;
if (!askTemperature) { // Если не запрашивали температуру с датчика - запросим;
ds.reset(); // Ниже - стандартная процедура чтения датчика;
ds.select(addr[0]);
ds.write(0x44,1); // Старт расчетов датчика;
askTemperature = true; // Подъем флага - температура запрошена!
timeWhenAskTemperature = millisNow; // Запомним время запроса температуры;
}
// Нужна задержка для расчета 850 миллисекунд, алгоритм ниже ее реализует;
if (askTemperature & (millisNow-timeWhenAskTemperature) >850) { // Если температура запрошена и прошло более 850 мс
ds.reset();
ds.select(addr[0]);
ds.write(0xBE); // Указание на будущее чтение;
for ( i = 0; i < 9; i++) { // Читаем 9 bytes;
data[i] = ds.read();
}
LowByte = data[0];
HighByte = data[1];
TReading = (HighByte << 8) + LowByte;
Tc_100 = (6 * TReading) + TReading / 4; // Стандартная операция пересчета для DS18b20 (100 * 0.0625) или 6.25;
tempToPID = (double) Tc_100/100;
//Serial.print(tempToPID);
//Serial.print(" = tempToPID: ");
//lcd.setCursor(0, 0); // Печатаем на ЖК;
//lcd.print("t=");
//lcd.print(tempToPID);
//lcd.print("\x99""c");
Input = tempToPID*10; // Пишем текущую (тепературу х 10) в переменную для передачи в PID;
askTemperature = false; // Сбросили флаг о запросе температуры;
}
if (Input>=400) {digitalWrite(FRELAY_PIN, HIGH);} // если температура привысила предел отключаем 2е реле
if (Input<=370) {digitalWrite(FRELAY_PIN, LOW);} // если температура остылавключаем 2е реле
double gap = abs(Setpoint-Input);
if(gap<2)
{
myPID.SetTunings(consKp, consKi, consKd);
// myPID.SetTunings(aggKp, aggKi, aggKd);
}
else
{
// myPID.SetTunings(aggKp, aggKi, aggKd);
myPID.SetTunings(consKp, consKi, consKd);
}
myPID.Compute();
/************************************************
* turn the output pin on/off based on pid output
************************************************/
if (millis() - windowStartTime > WindowSize)
{ //time to shift the Relay Window
windowStartTime += WindowSize;
}
if (Output < millis() - windowStartTime) digitalWrite(RELAY_PIN, HIGH);
else digitalWrite(RELAY_PIN, LOW);
//analogWrite(3,Output); // А к этой ноге и присоединен блок вентиляторов!
// Serial.print("Output ");
// Serial.print(Output);
// Serial.print(", Input ");
// Serial.print(Input);
// Serial.print( " Tc_100 ");
// Serial.print(Tc_100);
// Serial.println(" = Output");
}
Всем привет, тоже тут понадобился инкубатор, склеил за вечер коробку, написал программу, из куском взятых из инета, вот выкладываю может кому поможет. работает на ПИД регулировании контроль температуры на DS1820, влажность ОТОБРАЖАЕТСЯ с DHT22 нагрев Лампой 40ВТ через реле. Температуру держит+-0,1гр. Прогромирование температуры через сериал с компа, отсчет работы программы в ППЗУ
Я так понял ты в память по адресу 0 минуты пишешь, т.е 1440 раз за сутки, тут информация была, что ERROM расчитана на порядка 100 тыс записей, т.е тебе хватит ее на 69,4 дня, с отладкой примерно на три инкубации куриных яиц. Потом микроконтроллер можно выкидывать.
Всем привет, тоже тут понадобился инкубатор, склеил за вечер коробку, написал программу, из куском взятых из инета, вот выкладываю может кому поможет. работает на ПИД регулировании контроль температуры на DS1820, влажность ОТОБРАЖАЕТСЯ с DHT22 нагрев Лампой 40ВТ через реле. Температуру держит+-0,1гр. Прогромирование температуры через сериал с компа, отсчет работы программы в ППЗУ
Я так понял ты в память по адресу 0 минуты пишешь, т.е 1440 раз за сутки, тут информация была, что ERROM расчитана на порядка 100 тыс записей, т.е тебе хватит ее на 69,4 дня, с отладкой примерно на три инкубации куриных яиц. Потом микроконтроллер можно выкидывать.
Не, не так. Проект будет коммерческий - восстановление работоспособности за 1тыр., ибо МК относится к расходным материалам. Плохо если, он зараза, начнет по 2-3 миллиона циклов выдерживать (гоняли где то для опыта). )))))))
Я так понял ты в память по адресу 0 минуты пишешь, т.е 1440 раз за сутки, тут информация была, что ERROM расчитана на порядка 100 тыс записей, т.е тебе хватит ее на 69,4 дня, с отладкой примерно на три инкубации куриных яиц. Потом микроконтроллер можно выкидывать.
Нет у меня пишется раз в 10 минут это 694 дня, 2 года непрерывной работы, программа работает 8 дней еще осталось 9 свою задачу выполняет, если вам не надо время работы программы можете вообще отключить запись в ПЗУ, или писать раз в час.
И чего вы так реагируете, как будто вас заставляют ей пользоваться, я выложил свой рабочий вариант, кому подойдет хорошо, не подойдет еще лучше. Мне вот предложенные тут не подошли, я же по этому поводу не устраиваю демонстраций
andreyt, ну что Вы так отреагировали? Сказали, что не самое лучшее решение. Исправлять или нет, дело Ваше. Использовать или нет, дело юзера. Вот и весь конфликт.
минуты пишутся что бы время не сбивалось при ресете контроллера, время нужно для включения охлаждения по времени и для поворота яиц, но дети и так в очередь стоят что бы яйца певорачивать, поэтому пока что не реализованно. вообще инкубатор делал для детей по их многочисленным просьбам. вот вам фото можете покритиковать https://yadi.sk/i/JbGz9ak83FmTHy
Мне вот предложенные тут не подошли, я же по этому поводу не устраиваю демонстраций
какие "демонстрации", обидеть вообще не было желания, да и разбираться с чужим кодом мало кому просто так захочется, я мельком глянул, посоветовал, что так делать не стоит, да и врядли ты свой комп или ноут будешь хранить в инкубатории, чтобы туда данные скидывать. Инкубатор или автономный, или имеет какие-то средтва доставки до сервера, где данные собираются, буть то радиоканал, Wi-Fi,изернет и т.п. Конечно отладку или хобби я не рассматриваю. Для своего проекта я наоборот пытался собрать все самое лучшее (по моему мнению), что было предложено здесь на сайте., и если бы что-то меня заинтерисовало в твоем, добавил бы в свой проект. По крайней мере, ничего нового в твоем проекте я не увидел. может и ошибаюсь, попробуй переубеди.
PID это по суте силовой ключ с опторозвязкой ну и к нему нужен код соответственно и библиотека.А функцыя его в том чтобы поддерживать заданую температуру .
Привет. Нет, ПИД это Пропорционально-Интегрально-Дифференциальный регулятор. На пальцах трудно объяснить его работу, но только он может максимально быстро, четко и без проскоков стабилизировать заданный параметр меняя силу воздействия по сложному закону. Конечно если правильно настроен. Примерно как круиз-контроль на автомобиле. В большом инкубаторе он очень нужен и в маленьком лишним не будет.
откопал вот такой актуатор (возможно подойдёт для переворота), 24в, 19ом, 4пин... какой контроллер посоветуете?
Он AC или DC? На постоянку MOSFET, на переменку симистор или твердотельные реле на что угодно. Да хоть и обычные реле, поворот же не часто происходит. На моих раз в 2 часа. Чаще чем раз в час не делают и считается вредным. Я не проверял лично, но солидарен.
ето вы походу о подключении питания, но там 4 провода, подавал 12в постоянного тока, он лишь дёргался... схож с шаговиком по поведению, вот и как таким управлять? ;)
Ну скорее всего шаговик и есть. Покрутите за вал. У шагового будут шаги пальцами ощущаться. Вам не понятна программная или аппаратная часть управления шаговым двигателем? И назовите его модель.
ось крутится свободно, нет увеличения сопротивления при замыкании контактов(как у шаговиков), даташит нигде не нашёл, мутант какой-то попался.. ;) 4 PIN...
MADE IN JAPAN NO. 020-024-0045-319-SS
24 VOLTS, 19 OHM RESISTANCE, 50129-2, Applied Motion Products, INC.
http://gridchoice.com/catalog/used-actuator-motor-501292-p-5197.html
Ну, трудно что-то сказать наверняка. Может асинхронник трехфазный, с обмотками звездой. Может однофазный с пусковой обмоткой, может просто две обмотки для разных оборотов.Может постоянного тока с внешним возбуждением. Может сельсин. Может там геркон для измерения оборотов... разберите его чтоль.
Здравствуйте ребята,, уже третий день я стараюсь собрат инкубатор под управлением Ардуино Уно,но с программированием не очень справляюсь,, и увидел ваш проект,,, помогите пожалусто собират, я применяю ,,Ардуино уно р3,, ,,Arduino LCD Keypad Shield ,, и ,, ДХТ-11,, датчик ,, подскажите пожалуйста коды для ардуино
Здравствуйте ребята,, уже третий день я стараюсь собрат инкубатор под управлением Ардуино Уно,но с программированием не очень справляюсь,, и увидел ваш проект,,, помогите пожалусто собират, я применяю ,,Ардуино уно р3,, ,,Arduino LCD Keypad Shield ,, и ,, ДХТ-11,, датчик ,, подскажите пожалуйста коды для ардуино
коды есть в теме... дхт11 только для влажности годится изза погрешности температуры в 2 градуса... дхт 22 или DS18B20 лучьше.. ;)
там несколько коди ест катори из них лучьше?
Код ещё сырой. В готовый инкубатор его наверное никто не внедрял. Может Вам будет проще купить готовый прибор?
Хочу купить у вас это устройство, сколько стоит?
Напишите мне на почту.
Это кому вопрос?
Хочу купить у вас это устройство (инкубатор).
Какая цена?
Напишите мне ответ на почтовый ящик!
Вопрос ко всем на этом форуме, кто может сделать это устройство .
http://www.youtube.com/watch?v=PzV-B6Z6D9I
Вот немного видео моего проекта инкубатора с ПИД регуляторами. Почтовый ящик не видно отсюда. Цену трудно назвать без точного техзадания. Если есть интерес, пишите в комментариях на канале, обсудим. Не стот тему засорять.
свой инкубатор сделал из новосибирской наседки, у которой сломался регулятор температуры. для измерения температуры/влажности использовал 2 DHT22. Один в центре, второй в углу. В центре на крышке установлен вертилятор 12 см от компьютера. Когда края инкубатора остывают на 0.2 град по отношению к середине (для этого и 2 датчика), вентилятор включается вверх (не несколько секунд), обдувая нагреватели. Нагреватели остались от наседки (пластины с резисторами). к одной из пластин приклеен DHT11. Поддержание температуры в инкубаторе достигается поддержанием температуры на нагревателе в определенном диапазоне. Эксперементальным путем пришел к выводу, что так температура держится стабильнее (видимо по причине инертности датчиков в инкубаторе). Температура нагревателя подстраивается, в зависимости от динамики температуры в инкубаторе. ограничения DHT11 - не видит температуру выше 60, и нагреватель выше греть не получается. Контроллер поддерживает разную температуру в разные дни инкубации (по какой-то дикой таблице с просторов интернета), равно как и смотрит переворачивать ли яйца. Для этого он отслеживает время с начала инкубации. На случай отключения электричества, каждый час записывает время в пром. так-же записывает температуру, которую надо поддерживать на нагревателе. Поворот яиц сделал анологично стандартной в наседке (у меня его не было). Используется двигатель от микроволновки, на шкив которого прикручена Г образная железка. к ней прямая тяга, которая двигает решетку туда - сюда. поддержание влажности не делал, на тот момент не было нужных деталей а время поджимало. В этом году собираюсь сделать инкубатор яиц на 500, там хочу попробовать поддерживать влажность и автоматическое проветривание. Для чтения с DHT11,DHT22 и для работы с дисплеем 1602 использовал готовые библиотеки, опять-же с просторов интернета.
про китайские DHT22 - их показания при одной температуре несколько отличаются, немного более заявленной погрешности. Поэтому каждый поверял медицинским градусником и записывал разницу в пром контроллера. далее при работе инкубатора учитываю эту разницу.
кто помогбы с доработкой кода? идея такая, нужен таймер который показывалбы время работы порта в режиме HIGH, с момента включения ардуины (часы, минуты, может и секунды) , это нужно для расчота потребления електричества на обогрев.. есть в наличиИ RTC.... часики, возможно пригодятся для защиты от ресета? или можно (желательно) обойтись без них?
Дорогой Zlod Не хотите ли поделится скетчем а то инкубатор нужен сейчас а времени нет самому огород городить потому как я понимаю сколько на это нужно времени и сил.
Лучше всего использовать психрометрический способ измерения влажности 100% измерение
а есть уже готовый код доделаный?
Привет всем я свой доделал полность в автоматическом режиме 21 день
Ну а кодик выложи глянуть
Можете скинуть скетч?Sergik112@bigmir.net
ось крутится свободно, нет увеличения сопротивления при замыкании контактов(как у шаговиков), даташит нигде не нашёл, мутант какой-то попался.. ;) 4 PIN...
MADE IN JAPAN NO. 020-024-0045-319-SS
24 VOLTS, 19 OHM RESISTANCE, 50129-2, Applied Motion Products, INC.
http://gridchoice.com/catalog/used-actuator-motor-501292-p-5197.html
типичный шаговик от стрых флоппи дисков, были такие диски в виде больших конвертов в 80-х
управлять двойным Н мостом, таким например
http://ru.aliexpress.com/item/New-Dual-H-Bridge-DC-Stepper-Motor-Drive-C...
Я делал на Flprog
1. Для кода есть тег {code}
2. И как тут можно что-то понять? Вижу ПИД. Больше ничего не вижу.
flp бы сразу показал чтоли.
я сейчас его доделываю потому, что пид подвисает из за того что DHT22 опрашивается один раз за 2 секунды
DHT22 в инкубаторе месяц не проживет.
DHT22 в инкубаторе месяц не проживет.
ОШИБАЕШЬСЯ у меня второй год работает отлично погрешность влажности 2% а температуру я сделал из трёх DS18B20 и использую среднеарифметическую а DHT22 как работал так и будет работать
я бы конечно сделал бы на сухом и влажном дт но я незнаю как сделать на контроллере психрометрическую таблицу
HTU21 оптимально. И термометр хороший и гигрометр. Только в фильтр от пыли спрятать.
Здрастуйте у мене така проблемка я новичок допоможіть ісправити ошипку.
Не отвечает Ваша Дуська на звонок. Может порт не тот, может драйвер не тот, может плата Ардуино не та выбрана, может загрузчик затерт программатором. Если Про Мини, то может быть еще провода от конвертера не так подключены. А может она совсем того, померла.
Приветствую, ребят!
Я хочу внести материалы с кодом, со схемами и возможно с картинками на свой блог. Есть такой вопрос, это чьё-то ноу хау? Код в открытом доступе? Чтобы не получилось так, что я нарушил чьи-то права...
Приветствую, ребят!
Я хочу внести материалы с кодом, со схемами и возможно с картинками на свой блог. Есть такой вопрос, это чьё-то ноу хау? Код в открытом доступе? Чтобы не получилось так, что я нарушил чьи-то права...
Если ты укажешь откуда ты взял эти материалы, коды схемы, и не будешь это все использовать для получения дополнительной прибыли, а только в личных целях, то публикуй на здоровье, если же захочешь на этом заработать денег - спрашивай на это разрешение у автора.
Всем привет, тоже тут понадобился инкубатор, склеил за вечер коробку, написал программу, из куском взятых из инета, вот выкладываю может кому поможет. работает на ПИД регулировании контроль температуры на DS1820, влажность ОТОБРАЖАЕТСЯ с DHT22 нагрев Лампой 40ВТ через реле. Температуру держит+-0,1гр. Прогромирование температуры через сериал с компа, отсчет работы программы в ППЗУ
Всем привет, тоже тут понадобился инкубатор, склеил за вечер коробку, написал программу, из куском взятых из инета, вот выкладываю может кому поможет. работает на ПИД регулировании контроль температуры на DS1820, влажность ОТОБРАЖАЕТСЯ с DHT22 нагрев Лампой 40ВТ через реле. Температуру держит+-0,1гр. Прогромирование температуры через сериал с компа, отсчет работы программы в ППЗУ
Я так понял ты в память по адресу 0 минуты пишешь, т.е 1440 раз за сутки, тут информация была, что ERROM расчитана на порядка 100 тыс записей, т.е тебе хватит ее на 69,4 дня, с отладкой примерно на три инкубации куриных яиц. Потом микроконтроллер можно выкидывать.
Всем привет, тоже тут понадобился инкубатор, склеил за вечер коробку, написал программу, из куском взятых из инета, вот выкладываю может кому поможет. работает на ПИД регулировании контроль температуры на DS1820, влажность ОТОБРАЖАЕТСЯ с DHT22 нагрев Лампой 40ВТ через реле. Температуру держит+-0,1гр. Прогромирование температуры через сериал с компа, отсчет работы программы в ППЗУ
Я так понял ты в память по адресу 0 минуты пишешь, т.е 1440 раз за сутки, тут информация была, что ERROM расчитана на порядка 100 тыс записей, т.е тебе хватит ее на 69,4 дня, с отладкой примерно на три инкубации куриных яиц. Потом микроконтроллер можно выкидывать.
Не, не так. Проект будет коммерческий - восстановление работоспособности за 1тыр., ибо МК относится к расходным материалам. Плохо если, он зараза, начнет по 2-3 миллиона циклов выдерживать (гоняли где то для опыта). )))))))
Бред какойто
Бред какойто
Бред, порождает бред. А вот долбить с такой частотой EEPROM действительно не стоит.
Я не дурак ну а нахрен всё писать в еепром!!!????
Нужно отправлять на комп в базу и сделать автономность
Я вот делал на 18 шт eht22 отправлял всё в EXEL с помощью макросов все графики
если нужно сохранять данные пожалуйста есть микро сд
лично я пишу всё в FLPROG
и код получается меньше
Я так понял ты в память по адресу 0 минуты пишешь, т.е 1440 раз за сутки, тут информация была, что ERROM расчитана на порядка 100 тыс записей, т.е тебе хватит ее на 69,4 дня, с отладкой примерно на три инкубации куриных яиц. Потом микроконтроллер можно выкидывать.
Нет у меня пишется раз в 10 минут это 694 дня, 2 года непрерывной работы, программа работает 8 дней еще осталось 9 свою задачу выполняет, если вам не надо время работы программы можете вообще отключить запись в ПЗУ, или писать раз в час.
И чего вы так реагируете, как будто вас заставляют ей пользоваться, я выложил свой рабочий вариант, кому подойдет хорошо, не подойдет еще лучше. Мне вот предложенные тут не подошли, я же по этому поводу не устраиваю демонстраций
andreyt, ну что Вы так отреагировали? Сказали, что не самое лучшее решение. Исправлять или нет, дело Ваше. Использовать или нет, дело юзера. Вот и весь конфликт.
минуты пишутся что бы время не сбивалось при ресете контроллера, время нужно для включения охлаждения по времени и для поворота яиц, но дети и так в очередь стоят что бы яйца певорачивать, поэтому пока что не реализованно. вообще инкубатор делал для детей по их многочисленным просьбам. вот вам фото можете покритиковать
https://yadi.sk/i/JbGz9ak83FmTHy
Для 20 яиц, корпус сильно могучий. В таком штук 400-500 выводить можно.)))
Мне вот предложенные тут не подошли, я же по этому поводу не устраиваю демонстраций
какие "демонстрации", обидеть вообще не было желания, да и разбираться с чужим кодом мало кому просто так захочется, я мельком глянул, посоветовал, что так делать не стоит, да и врядли ты свой комп или ноут будешь хранить в инкубатории, чтобы туда данные скидывать. Инкубатор или автономный, или имеет какие-то средтва доставки до сервера, где данные собираются, буть то радиоканал, Wi-Fi,изернет и т.п. Конечно отладку или хобби я не рассматриваю. Для своего проекта я наоборот пытался собрать все самое лучшее (по моему мнению), что было предложено здесь на сайте., и если бы что-то меня заинтерисовало в твоем, добавил бы в свой проект. По крайней мере, ничего нового в твоем проекте я не увидел. может и ошибаюсь, попробуй переубеди.