Отговори на тема  [ 41 мнения ]  Отиди на страница Предишна  1, 2, 3
Замяна на ОУ 
Автор Съобщение
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Чет Апр 16, 2009 12:26 am
Мнения: 2636
Местоположение: София
Мнение Re: Замяна на ОУ
Тримера дели от около 18 волта на 2.3 волта. Фаза-нула имам малък траф и след него е греца.
За защита на входовете да сложа ценери или нещо друго, моля дай линк да прочета .
Е така е схемата, само без ценера, ще го сложа, и без тоя 100 микро накрая.
Изображение


Вто Ное 08, 2022 4:33 pm
Профил
Online
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Чет Фев 03, 2005 1:21 am
Мнения: 10574
Местоположение: София
Мнение Re: Замяна на ОУ
Така свързан ценерът е достатъчен.
НО! Последователно на тримера, над него, трябва да има резистор. Както е свързан в момента, ако усилиш волюмето на макс, от ценера ще остане една тел. Че може и микроконтролера да се поболее.
Ардуинска му работа... :D
Не пестете от компоненти които струват стотини, все още не са дефицитни, а липсата им би създала куп главоболия.

Ако кондензаторите ще са по-големшки, е хубаво да има и диод към захранване.


Вто Ное 08, 2022 4:54 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Чет Апр 16, 2009 12:26 am
Мнения: 2636
Местоположение: София
Мнение Re: Замяна на ОУ
ОК
Ще го оправя.


Вто Ное 08, 2022 5:04 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Чет Апр 16, 2009 12:26 am
Мнения: 2636
Местоположение: София
Мнение Re: Замяна на ОУ
Cekins написа:

Колкото до програмата - виждам че се вземат максималните стойности само - да де ама той тока може и въобще да няма синусоидална форма. Тая сметка на база максимална стойност по 0.7 е само за синусоида. А той (тока) никога не е освен ако не са само активни товари.


Искаш да кажеш че два климатика, три компа, два хладилника и малко LED лампи ще прецакат синусоидата, или може да си пристига прецакана от комшиите примерно. С колко може да сбърка сметката при кофти синусоида, с половин един ампер примерно което за моето измерване не е фатално.


Вто Ное 08, 2022 7:50 pm
Профил
Online
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Чет Фев 03, 2005 1:21 am
Мнения: 10574
Местоположение: София
Мнение Re: Замяна на ОУ
Всеки класически изправител, като тоя на твоята схема дозарежда кондензаторите само във върха на синусоидата.
И всеки такъв дава своят принос за гореспоменатото. Колкото по-мощен е, толкова по-добре се отбелязва.

Ако климатиците са инверторни имат PFC.

Всъщност защо не свържеш осцилоскоп след трафчето, без изправител, и не видиш какво се случва?


Вто Ное 08, 2022 9:00 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Сря Апр 20, 2005 11:02 am
Мнения: 8873
Местоположение: Разград
Мнение Re: Замяна на ОУ
Всичките тия консуматори най-много прецакват синусуидата. Единствено готварската ти печка и сешоара на жена ти не я прецакват. Щях да кажа и бойлера, ама предполагам че бойлера ти не е на ток. А да не говорим че ако климатиците не са инверторни, направо си изместват фазата на тока спрямо фазата на напрежението. Тогава ако си на домашна партида нямаш грижи, ама ако си на промишлена, ти мерят и косинус и ти слагат глоба за това.


Сря Ное 09, 2022 2:49 pm
Профил ICQ
Online
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Чет Фев 03, 2005 1:21 am
Мнения: 10574
Местоположение: София
Мнение Re: Замяна на ОУ
Cekins написа:
Всичките тия консуматори най-много прецакват синусуидата. Единствено готварската ти печка и сешоара на жена ти не я прецакват...

И двете твърдения не са верни. Особено второто. На ниска степен сешоара работи през диод и докарва постояннотоков офсет на мрежата.
От което пък мощните трансформатори започват да бръмчат. Особено тороидалните.
Същото важи и за евтините котлони за готвене.


Сря Ное 09, 2022 3:40 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Сря Фев 13, 2013 2:35 pm
Мнения: 1748
Мнение Re: Замяна на ОУ
За това се ползва да речем ADE7953 и си в джаза. 2 тока също мери. Галваничното разделяне - с WiFi.


Сря Ное 09, 2022 3:45 pm
Профил WWW
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Чет Апр 16, 2009 12:26 am
Мнения: 2636
Местоположение: София
Мнение Re: Замяна на ОУ
Климатиците са нови инверторни, бойлерите са на ток, котлоните на газ.
Да на домашна партида съм, но не знам какво отчита елмера, мога да му чета показанията само.
Ся снощи сложих друг код на Ардуиното и дава малка разлика сравнено с тоя дето го качих тук, тая вечер ще пусна и новия да си кажете мнението кой да ползвам.
Това последното дори и да го купя няма да мога да го запоя я вероятно е и много пари. Да купувам трифазен елмер за контролен няма файда щото и да има разлика в мой ущърб енергото няма да го признае и те тека.


Сря Ное 09, 2022 8:13 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Нед Сеп 26, 2004 8:21 pm
Мнения: 27949
Местоположение: София
Мнение Re: Замяна на ОУ
Значи, ако искаш да мериш ток е едно, ако искаш да мериш и енергия става сложно и е малко безсмислено освен ако не го влагаш в някакъв продукт. Иначе аз за мойто приложение направих ето това, бях проспал факта че АЦп-то има PGA , и не ми трябва повторите след интегратора, та съвсем стаднартна схема на изправител с ОУ. Мисля да го пробвам и с конкретно тоя ОУ, малко по диагонал му четох спецификацията но мисля ще стане, спестява ми още доларче :)
На входа на ТТ съм си сложил делител че не е ясно какъв ТТ ще се използва, тоя дето съм го набелязал за сега влиза идеално в обхвата на ADC без да го деля.


Прикачени файлове:
cs interface.jpg
cs interface.jpg [ 44.11 KiB | Прегледано 506 пъти ]
Чет Ное 10, 2022 12:07 am
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Чет Апр 16, 2009 12:26 am
Мнения: 2636
Местоположение: София
Мнение Re: Замяна на ОУ
Ето новия код
Код:
#include "ACS712.h"

ACS712::ACS712(ACS712_type type, uint8_t _pin) {
   pin = _pin;

   // Different models of the sensor have their sensitivity:
   switch (type) {
      case ACS712_05B:
         sensitivity = 0.185;
         break;
      case ACS712_20A:
         sensitivity = 0.100;
         break;
      case ACS712_30A:
         sensitivity = 0.025;
         break;
   }
}

int ACS712::calibrate() {
   uint16_t acc = 0;
   for (int i = 0; i < 10; i++) {
      acc += analogRead(pin);
   }
   zero = acc / 10;
   return zero;
}

void ACS712::setZeroPoint(int _zero) {
   zero = _zero;
}

void ACS712::setSensitivity(float sens) {
   sensitivity = sens;
}

float ACS712::getCurrentDC() {
   int16_t acc = 0;
   for (int i = 0; i < 10; i++) {
      acc += analogRead(pin) - zero;
   }
   float I = (float)acc / 10.0 / ADC_SCALE * VREF / sensitivity;
   return I;
}

float ACS712::getCurrentAC(uint16_t frequency) {
   uint32_t period = 1000000 / frequency;
   uint32_t t_start = micros();

   uint32_t Isum = 0, measurements_count = 0;
   int32_t Inow;

   while (micros() - t_start < period) {
      Inow = analogRead(pin) - zero;
      Isum += Inow*Inow;
      measurements_count++;
   }

   float Irms = sqrt(Isum / measurements_count) / ADC_SCALE * VREF / sensitivity;
   return Irms;
}

Код:
#ifndef ACS712_h
#define ACS712_h

#include <Arduino.h>

#define ADC_SCALE 1023.0
#define VREF 5.0
#define DEFAULT_FREQUENCY 50

enum ACS712_type {ACS712_05B, ACS712_20A, ACS712_30A};

class ACS712 {
public:
   ACS712(ACS712_type type, uint8_t _pin);
   int calibrate();
   void setZeroPoint(int _zero);
   void setSensitivity(float sens);
   float getCurrentDC();
   float getCurrentAC(uint16_t frequency = 50);

private:
   int zero = 512;
   float sensitivity;
   uint8_t pin;
};

#endif

Код:
#include "ACS712.h"
#include <Wire.h>
#include <hd44780.h>                       // main hd44780 header
#include <hd44780ioClass/hd44780_I2Cexp.h> // i2c expander i/o class header

hd44780_I2Cexp lcd; // declare lcd object: auto locate & config exapander chip

// LCD geometry
const int LCD_COLS = 20;
const int LCD_ROWS = 4;
/*
  This example shows how to measure the power consumption
  of devices in 230V electrical system
  or any other system with alternative current
*/

// We have 30 amps version sensor connected to A0 pin of arduino
// Replace with your version if necessary
ACS712 sensor(ACS712_30A, A0);

void setup() {
  Serial.begin(9600);
  lcd.begin(LCD_COLS, LCD_ROWS);
  // Print a message to the LCD.
  lcd.backlight();

  // calibrate() method calibrates zero point of sensor,
  // It is not necessary, but may positively affect the accuracy
  // Ensure that no current flows through the sensor at this moment
  // If you are not sure that the current through the sensor will not leak during calibration - comment out this method
  Serial.println("Calibrating... Ensure that no current flows through the sensor at this moment");
  sensor.calibrate();
  Serial.println("Done!");
}

void loop() {
  // We use 230V because it is the common standard in European countries
  // Change to your local, if necessary
  float U = 230;

  // To measure current we need to know the frequency of current
  // By default 50Hz is used, but you can specify desired frequency
  // as first argument to getCurrentAC() method, if necessary
  float I = sensor.getCurrentAC();

  // To calculate the power we need voltage multiplied by current
  float P = U * I;

  Serial.println(String("I = ") + I + " A");
  Serial.println(String("P = ") + P + " Watts");
  lcd.setCursor(3, 0);
  lcd.print(String("I = ") + I + " A");
  lcd.setCursor(1, 1);
  lcd.print(String("P=") + P + "   W");
 
 

  delay(1000);
}

Пак казвам искам да меря само ток, тва че има ред и показва няква мощност която не е вярна не го коментираме.
Пускам и ACS712.h ACS712.cpp щото май там е смятането и преправих mV/A
и пускам стария код да са заедно
Код:
const int sensorIn = A0;      // pin where the OUT pin from sensor is connected on Arduino
int mVperAmp = 25;           // this the 5A version of the ACS712 -use 100 for 20A Module and 66 for 30A Module
int Watt = 0;
double Voltage = 0;
double VRMS = 0;
double AmpsRMS = 0;


void setup() {
  Serial.begin (9600);
  Serial.println ("ACS712 current sensor");
     
}

void loop() {

  Serial.println ("");
 
  Voltage = getVPP() -0.01;
  VRMS = (Voltage/2.0) *0.707;   //root 2 is 0.707
  AmpsRMS = (VRMS * 1000)/mVperAmp;

  Serial.print(AmpsRMS);
  Serial.print(" Amps RMS  ---  ");
  Watt = (AmpsRMS*230/1.0);      // 1.3 is an empirical calibration factor
  Serial.print(Watt);
  Serial.println(" W");
}


float getVPP()
{
  float result;
  int readValue;                // value read from the sensor
  int maxValue = 0;             // store max value here
  int minValue = 1023;          // store min value here
 
   uint32_t start_time = millis();
   while((millis()-start_time) < 1000) //sample for 1 Sec
   {
       readValue = analogRead(sensorIn);
       // see if you have a new maxValue
       if (readValue > maxValue)
       {
           /*record the maximum sensor value*/
           maxValue = readValue;
       }
       if (readValue < minValue)
       {
           /*record the minimum sensor value*/
           minValue = readValue;
       }
   }
   
   // Subtract min from max
   result = ((maxValue - minValue) * 5.0)/1023;
     
   return result;
}

Ще съм благодарен ако кажете кой код да ползвам, и двата работят и дават няква малка разлика над 4 ампера която не е много важна.


Чет Ное 10, 2022 4:32 am
Профил
Покажи мненията от миналия:  Сортирай по  
Отговори на тема   [ 41 мнения ]  Отиди на страница Предишна  1, 2, 3

Кой е на линия

Потребители разглеждащи този форум: 0 регистрирани и 4 госта


Вие не можете да пускате нови теми
Вие не можете да отговаряте на теми
Вие не можете да променяте собственото си мнение
Вие не можете да изтривате собствените си мнения
Вие не можете да прикачвате файл

Търсене:
Иди на:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Designed by ST Software for PTF.
Хостинг и Домейни