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

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

Форум самогонщиков Автоматика
1 ... 17 18 19 20 21 22 23 ... 66 20
Alex2x Кандидат наук 325 64
Отв.380  17 Апр. 13, 10:50
Вчера попробовал с  REF192.
Спаял как в ДШ.На входе было примерно 4.8-4.9в, на выходе 4.5 как заявлено в ДШ.
Ничего не изменилось.На ЛЦД нулевая точка гуляет от 0.00 до 0.65.
Пошевелишь провода, плату-снова гуляет.
Что не так?


#include <LiquidCrystal.h>

#define MEDIAN   512
#define MEAS_INT 1000  // 1sec
#define ACS_ADC  A0
#define K_ACS    0.09   //für 20A version

LiquidCrystal lcd(22, 23, 24, 25, 26, 27, 28);
int backLight = 29;

void setup() {
 pinMode(backLight, OUTPUT);
 digitalWrite(backLight, HIGH);
 lcd.begin(20, 4);
 lcd.setCursor(0, 0);
 lcd.print("I=");
 analogReference(EXTERNAL);
 analogRead(ACS_ADC);
 Serial.begin(9600);
 
}

void loop()
{
 Serial.println(analogRead(ACS_ADC));
 uint32_t sum2=0;
 uint16_t n=0;
 uint32_t StartTime, StopTime;
 int16_t adc;
 uint32_t avrg=0xFFFF;
 float I;
 
 StartTime=millis()+1;
 StopTime=StartTime+MEAS_INT;
 while(StartTime>millis());
 while(StopTime>millis())
 {
   adc=(MEDIAN-analogRead(ACS_ADC));
   sum2+=(uint32_t)adc*adc;
   n++;
 }
 if (n>0)
 {
   avrg=sqrt(sum2/n);
 }

 I=(float)avrg*5/(K_ACS*1024);
 lcd.setCursor(2, 0);
 lcd.print(I);
 lcd.print("A   ");
}
P4170199_thumb.jpg
P4170199_thumb.jpg Аппаратная платформа Arduino для автоматизации наших процессов. Автоматика.
P4170200_thumb.jpg
P4170200_thumb.jpg Аппаратная платформа Arduino для автоматизации наших процессов. Автоматика.
Sambedded Кандидат наук Vancouver 376 87
Отв.381  17 Апр. 13, 11:04, через 15 мин
Вопросы:
-Что ты имеешь в виду под "нулевой точкой" - когда ток через 712 не течет?
- Если да, то подключи на  выход 712 хороший вольтметр и посмотри плавает ли напряжение.
- отключи 712-ю от Ардуино, сделай делитель из 2х резисторов по паре килоом и подключи к нему аналоговый вход, посмотри стабильность.
Alex2x Кандидат наук 325 64
Отв.382  17 Апр. 13, 11:12, через 8 мин
Вопросы:
-Что ты имеешь в виду под "нулевой точкой" - когда ток через 712 не течет?
- Если да, то подключи на  выход 712 хороший вольтметр и посмотри плавает ли напряжение.
- отключи 712-ю от Ардуино, сделай делитель из 2х резисторов по паре килоом и подключи к нему аналоговый вход, посмотри стабильность.
Sambedded, 17 Апр. 13, 11:04

Да, когда ток через 712 не течет.
На тот момент напруга на выходе 712 не плавала. Вечером ещё раз попробую.
Также пробовал запитывать 712 от REF194, остаётся по прежнему.На пару соток садится напруга.(4,5в)
Alex2x Кандидат наук 325 64
Отв.383  18 Апр. 13, 11:28
Сейчас снова пробовал.
На входе 712й- 4.930, на выходе- 2.474.
Долго не висел 5-8сек.
Собрал делитель из 2х сопр. 2кОм.
На выходе делителя было 2.439в.
Эти 2.439в подал на аналоговый вход ардуины.

Вообщем напруга была от 2.436 до 2.441, потом вниз пошла до 2.435.
На ЛЦД высвечивалось 2.71А.(2.66, 2.77)
ironman Академик Синегорье 5.2K 2.7K
Отв.384  18 Апр. 13, 11:33, через 6 мин
На входе 712й- 4.930, на выходе- 2.474.Alex2x, 18 Апр. 13, 11:28
Мне казалось, что на вход нужно от опорника 4.5 вольта подавать
и в расчете
I=(float)avrg*5/(K_ACS*1024);
Вместо 5 вольт прописать 4.5
Alex2x Кандидат наук 325 64
Отв.385  18 Апр. 13, 11:37, через 4 мин
Мне казалось, что на вход нужно от опорника 4.5 вольта подавать
и в расчете
I=(float)avrg*5/(K_ACS*1024);
Вместо 5 вольт прописать 4.5
ironman, 18 Апр. 13, 11:33

Делал я и так тоже.
И чувствительность датчика менял(в скетче не 0.1,а 0.09)
Уже начинает вскипать разум возмущённый. Смеющийся
m16 Модератор Тамбов 1.9K 1K
Отв.386  18 Апр. 13, 12:07, через 31 мин
adc=(MEDIAN-analogRead(ACS_ADC));Alex2x, 17 Апр. 13, 10:50


if  MEDIAN > analogRead  then  adc=(MEDIAN - analogRead(ACS_ADC)); (отрицательная полуволна)

if MEDIAN < analogRead  then  adc=(analogRead(ACS_ADC)- MEDIAN); (положительная полуволна)

как думаешь, у кого из нас ошибка?
ironman Академик Синегорье 5.2K 2.7K
Отв.387  18 Апр. 13, 13:30
m16, смотри вторую строку

   adc=(MEDIAN-analogRead(ACS_ADC));
  sum2+=(uint32_t)adc*adc;

при перемножении adc*adc всегда будет плюс (минус на минус дает плюс) и без всяких проверок.

Ну а нулевая точка всёравно плавает от 0.05 до 0.65Alex2x, 12 Апр. 13, 11:00
Ты её один раз возьми в переменную как среднеквадратичное значение.
m16 Модератор Тамбов 1.9K 1K
Отв.388  18 Апр. 13, 15:13
согласен, был неправ , вспылил.
Sambedded Кандидат наук Vancouver 376 87
Отв.389  19 Апр. 13, 00:07
При использовании резисторного делителя напряжения питания и при установке опорного  напряжения от питания же - считываемая величина при таком усреднении как в данном случае плавать не должна. Скорее всего что-то не так с монтажем (наводки. или плохие контакты )
Alex2x Кандидат наук 325 64
Отв.390  19 Апр. 13, 10:00
Вчера снова невозможно было попасть на форум.
О плохих контактах в монтаже уже думал.
Заметил, если на минус станавлюсь щупом прям на внешнем блоке питания-вроде бы стабильно и напруги чуть больше. А если меряю непосредственно на АЦС712 то-немного плывёт.
Попробую на другой плате-отпишусь.
Alex2x Кандидат наук 325 64
Отв.391  19 Апр. 13, 10:16, через 16 мин
Ну а нулевая точка всёравно плавает от 0.05 до 0.65Ты её один раз возьми в переменную как среднеквадратичное значение.ironman, 18 Апр. 13, 13:30
Можно по подробнее?
Alex2x Кандидат наук 325 64
Отв.392  19 Апр. 13, 22:55
Вот как обещал.
Думаю получилось. Можно так оставлять.
Напруга плавала в соединениях. Поставил на шильду, которую буду впоследствии использовать и
всё устаканилось. Единственное, думаю надо экранировать АЦС712. Отводишь подальше от всех проводов и ардуины-0,00, подводишь 0,05
P4190223_thumb.jpg
P4190223_thumb.jpg Аппаратная платформа Arduino для автоматизации наших процессов. Автоматика.
P4190229_thumb.jpg
P4190229_thumb.jpg Аппаратная платформа Arduino для автоматизации наших процессов. Автоматика.
P4190234_thumb.jpg
P4190234_thumb.jpg Аппаратная платформа Arduino для автоматизации наших процессов. Автоматика.
asvar Специалист Крога 163 30
Отв.393  29 Апр. 13, 13:01
Поделюсь написанным кодом для управления клапаном отбора. Управление по принципу как у клапанов Игорь223 (надеюсь автор не будет против, т.к. всё написано с нуля, опираясь на видеоуроки с описанием работы такого клапана)
Фишка в том что паузы открытия/закрытия клапана регулируются без delay(). Главный недостаток такого подхода заключается в том, что во время выполнения delay() программа "замораживается" и не может выполнять других действий.
Вобщем ничего особо заумного, но зато работает.
Говорите, будем дописывать вместе, если что не так.
svarnoy Профессор Жуковский. 9K 4.6K
Отв.394  29 Апр. 13, 13:21, через 21 мин
Поделюсь написанным кодомasvar, 29 Апр. 13, 13:01
Дребезжит при выключении на меге.
И привязку к температуре от ДС18Б20 надобы
asvar Специалист Крога 163 30
Отв.395  29 Апр. 13, 13:31, через 10 мин
У меня мега 2650 - ничего не дребезжит - но еще проверю.

Проверил - пока висел светодиод вместо реле, дребезга не было. Подключил реле - реально дребезг. Буду копать.

К температуре кому надо привяжут.

ЗЫ: Порпавил, прикрутил вывод значения потенциометра на экран. Дребезг исправил.
svarnoy Профессор Жуковский. 9K 4.6K
Отв.396  29 Апр. 13, 17:41
ЗЫ: Порпавилasvar, 29 Апр. 13, 13:31
Негрузится скетч.Мега 2560.
asvar Специалист Крога 163 30
Отв.397  29 Апр. 13, 19:08
Убрал всё лишнее
выкладываю еще раз
svarnoy Профессор Жуковский. 9K 4.6K
Отв.398  29 Апр. 13, 21:58
asvar Спасибо.
Работает,недребезжит.
К температуре кому надо привяжут.asvar, 29 Апр. 13, 13:31
Мне например надо,но с моими способностями к програмированию,такая возможность стремится к нулю.
Так если эту програмулину привязать к температуре,то получится часть полновесной автоматики.
sharky98 Новичок Нижний Новгород 5 3
Отв.399  12 Июня 13, 17:44
Доброго времени суток! Благодаря этой статье и предоставленным программам, собрал автоматику на управление дистилляцией и ректификацией. В основе конструкции модуль arduino,  индукционная плита. Дистиллятор и ректификационная колонна были приобретены. Процесс контролируется по трем датчикам температуры: температура в баке, температура в месте отбора и температура воды на выходе их аппарата. Управление процессом организованно на замыкании контактов кнопок плитки, а работа плиты определяется по снятию напряжения со светодиода на плите. В случае сбоя, программа восстанавливает нормальный режим работы. Использовал индукционную плиту для нагрева как самый дешевый и быстрый способ автоматизировать процесс. Испарительный куб изготовлен из листовой нержавейки, но несмотря на это, нагрев происходит нормально и без подгорания. Если есть заинтересовавшиеся, фотографии, схемы и программу выложу.