Форум самогонщиков Сайт Барахолка Магазин Помощь солдатам

Аппаратная платформа Arduino для автоматизации наших процессов

Форум самогонщиков Автоматика
1 ... 34 35 36 37 38 39 40 ... 66 37
msg31 Научный сотрудник Барнаул 4.6K 2.5K
Отв.720  22 Дек. 13, 06:47
Подскажите, возможна ли защита аналогового входа Ардуины от статического электричества по такой схеме? Это для контроля разлития жидкости на полу будут валяться два контакта, периодически будут считываться показания АЦП ардуины, если обнаруживается не 0, тогда тревога. Пол покрыт линолеумом, соответственно вероятность образования статики 99.9%

zashitavhodovardyini.bmp Аппаратная платформа Arduino для автоматизации наших процессов
zashitavhodovardyini.bmp Аппаратная платформа Arduino для автоматизации наших процессов. Автоматика.
lakmus Специалист С-Петербург 196 49
Отв.721  22 Дек. 13, 16:05
на датчик через напр. 10к , потом цепочка из двух послед диодов (+5-вход-общ) и кондюк не повредит
чтоб 50Hz убрать
да, и датчик зашунтировать напр. 1МОм.
(или я чето не понял?)
alekslug Научный сотрудник винокур, Лобня. 5.2K 1.7K
Отв.722  22 Дек. 13, 16:46, через 42 мин
На линолеуме  статическое напряжение образуется нехило. Обслуживал  на Севере одну координатную телефонную станцию.Она была смонтирована в вагончике. Полы холодные! работать можно было только в валенках.За стеной -50*С. Било током очень сильно. Два шага сделаю  и сразу разряд в виде искры сантиметров 7-10. Привязал на руку провод и заземлил его. Так и ходил привязанный. АТСК на релюхах, квазиэлектронная, Смеющийся  ей статика пополам была. 
msg31 Научный сотрудник Барнаул 4.6K 2.5K
Отв.723  22 Дек. 13, 16:51, через 6 мин
на датчик через напр. 10к , потом цепочка из двух послед диодов (+5-вход-общ) и кондюк не повредит
чтоб 50Hz убрать
да, и датчик зашунтировать напр. 1МОм.
(или я чето не понял?)
lakmus, 22 Дек. 13, 16:05
Ну где-то так... Резюк точно будет только 10кил или 300 ом разницы для напряжения 10Киловольт (а статика такая часто встречается) немного... В общем-то я недавно стал варисторы использовать и убедился, что они зачастую заменяют и диод обратный и кондюк. А в итоге дешевле и, главное, проще делать. Вот и хотел спросить у спецов, достаточно ли просто варисторов?
ironman Академик Синегорье 5.2K 2.7K
Отв.724  22 Дек. 13, 18:39
и сразу разряд в виде искры сантиметров 7-10alekslug, 22 Дек. 13, 18:46
Нихрена се разряд, это уже не разряд, а молния )))
lakmus Специалист С-Петербург 196 49
Отв.725  22 Дек. 13, 19:59
Ну где-то так... Резюк точно будет только 10кил или 300 ом разницы для напряжения 10Киловольт (а статика такая часто встречается) немного... В общем-то я недавно стал варисторы использовать и убедился, что они зачастую заменяют и диод обратный и кондюк. А в итоге дешевле и, главное, проще делать. Вот и хотел спросить у спецов, достаточно ли просто варисторов?msg31, 22 Дек. 13, 16:51
по твоей логике тогда и  1Ом мона ставить Улыбающийся
-варисторы не для того - не спасут они (разве что благодаря своей емкости и утечкам)
-вполне может сгодится RC - цепь - разряд очень короткий и будет изрядно ослаблен
(нуно керамику ставить) заодно и сетевые помехи уменьшит
-параллельный датчику резюк вообще не даст накопится статике
имхо
Alex2x Кандидат наук 325 64
Отв.726  27 Дек. 13, 13:53
Парни, ну нифига у меня не получается измерение мощности с ACS712.
Дома, когда пробовал с 1квт кипятильником, всё получалось.(без "Kemo" пробовал)
Теперь же, когда всё собрал поместу, никак не получается пересчёт.
Меряет неправильно ток, соответственно и мощность не правильно.
Соответственно не могу и дальше автоматику доделать до ума.
С "Ардуино" сигнал пошёл на "Kemo" M150, дальше на "Kemo" M028 и от него на 3квт ТЕН.
Переменным сопротивлением регулируется(мощность показывается неправильно)
http://www.kemo-electronic.de/datasheets/m150.pdf   (описание на русском есть)
http://www.kemo-electronic.de/datasheets/m028.pdf   (описание на русском есть)
#define ACS712PIN A3
#define BETRIEBSSPANNUNG 4.85    // VSS in Volt
#define SENSITIVITY 100        // Empfindlichkeit in mV/A

#define MEDIAN 512

volatile unsigned long sumMesswerte,countMesswerte;

void einMesswert() {
 sumMesswerte += abs(analogRead(ACS712PIN)-MEDIAN);
 countMesswerte++;
}

void auswertung()
{
 char buffer[35];
 int messwert;
 float strom;
 long spannungMV,stromMA;
 if (countMesswerte>=1000)
 {
   noInterrupts();
   messwert= sumMesswerte/countMesswerte;
   sumMesswerte=0;
   countMesswerte=0;
   interrupts();
   spannungMV= messwert / 1023.0 * BETRIEBSSPANNUNG  * 1000L;
   stromMA=spannungMV*1000/SENSITIVITY;
   snprintf(buffer,sizeof(buffer),"%d - %ld mV - %ld mA",messwert,spannungMV,stromMA);
   Serial.println(buffer);
 }
}


void stopTimer0() {
   // ensure that the standard timer interrupts will not
   // mess with msTimer2
   TIMSK0 = 0;
}

ISR(TIMER2_COMPA_vect) {
 einMesswert();
}

void initTimer2() {
   // Timer 2 CTC mode, prescaler 64
   TCCR2B = (1<<WGM22) | (1<<CS22);
   TCCR2A = (1<<WGM21);
   // 249 + 1 == 250 == 250 000 / 1000 =  (16 000 000 / 64) / 1000
   OCR2A = 249;
   // enable Timer 2 interrupts
   TIMSK2 = (1<<OCIE2A);
}


void setup() {
   Serial.begin(9600);
   Serial.println();
   Serial.println("ACS712 Test Program );
   Serial.println();
   initTimer2();
   stopTimer0();
}


void loop() {
 auswertung();
}

ACS712_123.ino 1.4 Кб
lakmus Специалист С-Петербург 196 49
Отв.727  27 Дек. 13, 17:10
sumMesswerte += abs(analogRead(ACS712PIN)-MEDIAN);Alex2x, 27 Дек. 13, 13:53
вообще то надо  не абс - надо и ток и напряжение среднеквадратичное брать -  в квадрат возводить, накапливать, а потом квадратный корень из среднего квадрата-
потому как у фазового управления не синусный сигнал и честно посчитать мощность с абс не получится

почитай напр
Alex2x Кандидат наук 325 64
Отв.728  27 Дек. 13, 19:37
вообще то надо  не абс - надо и ток и напряжение среднеквадратичное брать -  в квадрат возводить, накапливать, а потом квадратный корень из среднего квадрата-
потому как у фазового управления не синусный сигнал и честно посчитать мощность с абс не получится

почитай напр

lakmus, 27 Дек. 13, 17:10
Получается выкинуть это "Kemo" и самому спаять?
Что посоветуете, надёжно работающее?
Alex2x Кандидат наук 325 64
Отв.729  27 Дек. 13, 19:40, через 3 мин
.
lakmus Специалист С-Петербург 196 49
Отв.730  27 Дек. 13, 22:13
Получается выкинуть это "Kemo" и самому спаять?
Что посоветуете, надежно работающее?Alex2x, 27 Дек. 13, 19:37
зачем выкидывать? практически у всех регуляторов не синусный ток(и соотв напряжение) на нагрузке...
это не причина их не использовать - если надо считать мощность(или просто померять напругу на нагрузке) -
надо считать RMS (рут-меан-сквеа) - среднеквадратичное значение - оно не зависит от формы сигнала ...
Alex2x Кандидат наук 325 64
Отв.731  28 Дек. 13, 11:04
зачем выкидывать? практически у всех регуляторов не синусный ток(и соотв напряжение) на нагрузке...
это не причина их не использовать - если надо считать мощность(или просто померять напругу на нагрузке) -
надо считать RMS (рут-меан-сквеа) - среднеквадратичное значение - оно не зависит от формы сигнала ...

lakmus, 27 Дек. 13, 22:13
Пример скеча можешь?
lakmus Специалист С-Петербург 196 49
Отв.732  28 Дек. 13, 13:21
Пример скеча можешь?Alex2x, 28 Дек. 13, 11:04
кусок могу накропать Улыбающийся
//*****************************
long curr,sum_curr_sq,rms_curr;
long volt,sum_volt_sq,rms_volt;
long rms_pow;
int countMesswerte;

#define ACS712PIN 3 // пишешь свой пин
#define VoltPIN   4 // пишешь свой пин

#define MEDIAN_curr 511 // к примеру такое
#define MEDIAN_volt 512 // к примеру

void einMesswert() {
curr=(long)(analogRead(ACS712PIN));
volt=(long)(analogRead(VoltPIN));
 sum_curr_sq = sum_curr_sq + curr*curr;
 sum_volt_sq = sum_volt_sq + volt*volt;
 countMesswerte++;
// средние значения вычтем потом один раз - зачем загружать прерывание
}
void auswertung()
{
 if (countMesswerte>=1000)
 {
long tmp_volt,tmp_curr;
int temp_cnt;
   noInterrupts();
   tmp_volt=sum_volt_sq;
   tmp_curr=sum_curr_sq;
temp_cnt=countMesswerte;
   sum_volt_sq=0;
   sum_curr_sq=0;
   countMesswerte=0;
   interrupts();
// на всякий случай вычисления вынес чтоб не тормозили прерывания
   rms_curr= sqrt(tmp_curr/temp_cnt) - MEDIAN_curr;
   rms_volt= sqrt(tmp_volt/temp_cnt) - MEDIAN_volt;
   rms_pow=rms_curr*rms_volt;
/*
   здесь пишешь свои калибровки (присвоение физ смысла - вольты амперы ватты) напряж. тока и мощности
*/   
 }
}
//*****************************
примерно так, вроде ничё не напутал.
ps: надобно брать выборки раз в сто чаще чем 20мсек - но ардуина может не потянуть
другой  вариант с использованием аналогового умножителя (получить квадрат) и потом усреднить
либо использовать микросхему RMS-TO-DC CONVERTER напр от analog.com
Alex2x Кандидат наук 325 64
Отв.733  28 Дек. 13, 18:29
Ух накропал!
Скажи пожалуйста, что это:
#define VoltPIN   4 //
Откуда взялся этот пин?
Ты считаешь, что RMS-TO-DC CONVERTER лучше(проще, точнее...) чем  ACS712?
И как с ним(RMS-TO-DC CONVERTER) работать?
Какие формулы пересчёта нужны?
Как его подключать?
lakmus Специалист С-Петербург 196 49
Отв.734  28 Дек. 13, 21:00
Ух накропал!
Скажи пожалуйста, что это:
#define VoltPIN   4 //
Откуда взялся этот пин?
Ты считаешь, что RMS-TO-DC CONVERTER лучше(проще, точнее...) чем  ACS712?
И как с ним(RMS-TO-DC CONVERTER) работать?
Какие формулы пересчёта нужны?
Как его подключать?Alex2x, 28 Дек. 13, 18:29
по порядку
-#define VoltPIN   4 //
это пин куда подведено (через транс или еще как) напряжение на нагрузке (напр на ТЭН-не)
я его придумал тк считал что тебе хочется мерять мощность , а она равна вольты умножить на токи
-RMS-TO-DC CONVERTER никак не заменяет датчик тока  ACS712...он может быть полезен чтоб разгрузить процессор (посчитать квадраты и усреднить он может)
-как с ним работать - по русски не знаю(наверн есть - гуглим) но вот аппликэйшн и схемы включения и тд итп
Alex2x Кандидат наук 325 64
Отв.735  28 Дек. 13, 21:15, через 15 мин
...это пин куда подведено (через транс или еще как) напряжение на нагрузке (напр на ТЭН-не)
Можно ли показать схематически, для дальнейшего повторения?
lakmus Специалист С-Петербург 196 49
Отв.736  28 Дек. 13, 22:32
Можно ли показать схематически, для дальнейшего повторения?Alex2x, 28 Дек. 13, 21:15
попробую но я не художник Улыбающийся
.png
.png Аппаратная платформа Arduino для автоматизации наших процессов. Автоматика.
Alex2x Кандидат наук 325 64
Отв.737  28 Дек. 13, 22:46, через 14 мин
А трансформатор обычный  5-10Вт?
И ещё хотел спросить, как отсюда  rms_pow=rms_curr*rms_volt перещитывать в мощность ?
lakmus Специалист С-Петербург 196 49
Отв.738  29 Дек. 13, 00:03
А трансформатор обычный  5-10Вт?
И еще хотел спросить, как отсюда  rms_pow=rms_curr*rms_volt перещитывать в мощность ?Alex2x, 28 Дек. 13, 22:46
-ну да, трансформатор любой, чтоб на вторичной от пика-до-пика было минимум примерно 5Volt когда напруга в сети достигает максимума - напр. 240V.
-мощность  будет  в Ваттах автоматом , когда токи будут в Амперах, а напряжения в Вольтах
пс: диоды пририсовал - их надо  поставить!!!!
IMG00072.jpg
IMG00072.jpg Аппаратная платформа Arduino для автоматизации наших процессов. Автоматика.
Alex2x Кандидат наук 325 64
Отв.739  29 Дек. 13, 16:10
Прости, всё равно не представляю.
Можно ли пример,как сигнал пересчитывать от VoltPIN ?

Сигнал с ACS712 так пересчитывать?
spannungMV= messwert / 1023.0 * BETRIEBSSPANNUNG  * 1000L;
    stromMA=spannungMV*1000/SENSITIVITY;