Jump to content
RIMUS1989i

Измерение переменки от трех источников.

Recommended Posts

Всем здравствуйте! Есть необходимость метирить переменное напряжение от трех источников 220v. И питание получать от них же. (1.) Набросал схемку, будет ли она мерить и с какой точностью? измерять думаю в диапазоне от 150 до 250в. по идее точность будет 0.1 вольт. (2.) Но какие подводные камни я могу поймать? (3.) Или придется еще и операционный усилитель лепить на каждый вход АЦП?

схема измерителя.JPG

Share this post


Link to post
Share on other sites

Все будет ... аналогично делается "переключатель фаз" ...

Зачем выходы КРЕН-ок соединил?

Зачем такие емкости? Инерционность пол-дня?

Share this post


Link to post
Share on other sites
19 минут назад, KRAB сказал:

Зачем выходы КРЕН-ок соединил?

При пропадании  питания на двух линиях полюбому будет напряжение на МК. можно конечно три диода вместо кренок и оду кренку.

22 минуты назад, KRAB сказал:

Зачем такие емкости?

Тоже подумал об этом, тогда вот вариант.

схема измерителя 2.JPG

@KRAB

Share this post


Link to post
Share on other sites

Литиевые батарейки Fanso для систем телеметрии и дистанционного контроля

Системы телеметрии находят все более широкое применение во многих отраслях на промышленных и коммунальных объектах. Требования, предъявляемые к условиям эксплуатации приборов телеметрии и, как следствие, источников питания для них, могут быть довольно жесткими. Fanso предоставляет широкую линейку продукции, рассчитанной на различные условия эксплуатации, что позволяет подобрать батарейку для каждого конкретного применения, в том числе и для устройств телеметрии.

Подробнее

Наверно по входам АЦП надо поставить защитные стабилитроны.

Для измерения от 150 до 250 надо масштабировать сигнал с помощью ОУ. Сейчас измерения 0 до 250 и показания будут через 0.25 В

Share this post


Link to post
Share on other sites
1 час назад, RIMUS1989i сказал:

Тоже подумал об этом

Ёмкости С2. С3 и С7 уменьшать нельзя. Они соединены в резисторами и постоянная времени RC = 20мс для последнего варианта. Значит на них будет пульсирующее напряжение 100Гц с большим размахом, и АЦП намеряет хрен знает что.

Либо оставить такие маленькие совсем выбросить эти конденсаторы и в программе ловить максимум напряжения.

Edited by Yurkin2015

Share this post


Link to post
Share on other sites
                     

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

Компэл совместно с Texas Instruments 23 октября 2019 приглашают на вебинар, посвященный системам-на-кристалле для построения ультразвуковых расходомеров жидкостей и газов на базе ядра MSP430. Вебинар проводит Йоханн Ципперер – эксперт по ультразвуковым технологиям, непосредственно участвовавший в создании данного решения. На вебинаре компания Texas Instruments представит однокристальное решение, позволяющее создавать точные недорогие счетчики жидкостей и газов.

Подробнее...

По последней схеме.

После 7805 еще емкость нужна. Добавить еще и керамические емкости 1мкФ около цифрового питания, 1мкф и 100 нФ окло аналогового. ВНа плате расположить максимально близко к процу.Насчёт методики измерения - я бы выкинул емкости перед диодами совсем. Потом делал набор измерений за период, больший 10 мс, т е  гарантированный захват полуволны целиком, после чего искал наборе значений максимум и умножал на 0,7 для получения действующего значения.

Ну и в довесок - на мостах падает сколько-нибудь вольт, причём падение относительно стабильное. Его надо бы тоже учесть, а то 1 В, упавший на мосту, даст 20 В ошибки на высокой стороне трансформатора.

 

Edited by Стальной

Share this post


Link to post
Share on other sites
24 минуты назад, Стальной сказал:

Ну и в довесок - на мостах падает сколько-нибудь вольт, причём падение относительно стабильное. Его надо бы тоже учесть, а то 1 В, упавший на мосту, даст 20 В ошибки на высокой стороне трансформатора.

А еще у трансформаторов, как и у диодов, параметры разнятся. Плюс при нагреве меняются. По хорошему надо взять датчики напряжения, той же фирмы LEM и не парить мозги

Share this post


Link to post
Share on other sites
1 час назад, snn_krs сказал:

Для измерения от 150 до 250 надо масштабировать сигнал с помощью ОУ. Сейчас измерения 0 до 250 и показания будут через 0.25 В

Да в принципе я так и думал, в первом посте я про это спросил. Ну, а с другой стороны погрешность даже в один вольт мне не страшна.

2 минуты назад, BARS_ сказал:

А еще у трансформаторов, как и у диодов, параметры разнятся. Плюс при нагреве меняются. По хорошему надо взять датчики напряжения, той же фирмы LEM и не парить мозги

Ссылку можно на такие датчики? Цена какая у них?

Share this post


Link to post
Share on other sites
11 минуту назад, RIMUS1989i сказал:

погрешность даже в один вольт

Вся проблема в том, что во-первых, коэффициент трансформации точно неизвестен, а во-вторых, напряжение будет зависеть от нагрузки. Так что точность будет +/- лапоть.

 

13 минуты назад, RIMUS1989i сказал:

Ссылку можно на такие датчики?

LV25-P/SP5 зовутся. Есть и попроще датчики

Share this post


Link to post
Share on other sites
2 минуты назад, BARS_ сказал:

Вся проблема в том, что во-первых, коэффициент трансформации точно неизвестен,

А подстроичником подстроить не вариант? Три трансформатора будут одинаковые, а конкретно уже по факту подстроить по образцовому прибору.

5 минут назад, BARS_ сказал:

напряжение будет зависеть от нагрузки.

Нагрузка: МК, и пару реле порядка 20-30мА ток срабатывания. Трансформаторы приглядел за 250р. 12вольт 300ма. И основная задача в этой схеме контролировать наличие на трех источниках, и параллельно питаться от них. А по ходу дела мерить напряжение с погрешностью даже до 2х вольт, в случае выхода за пределы измеряемого напряжения (например от 180 до 238в) отключаться от него. Есть такие приборы переключатели фаз, но они не подходят под мои нужды, вот и решил заморочиться с МК.

14 минуты назад, BARS_ сказал:

LV25-P/SP5 зовутся. Есть и попроще датчики

Подобные датчики я видел, но цены у них заоблачные. 18К отдать за датчики... неее .... не готов.

Share this post


Link to post
Share on other sites
1 минуту назад, RIMUS1989i сказал:

А подстроичником подстроить не вариант?

Трансформатор нагреется - напряжение поплывет.

 

2 минуты назад, RIMUS1989i сказал:

Нагрузка: МК, и пару реле порядка 20-30мА ток срабатывания.

Так вот нагрузка меняется - напряжение плывет. Впрочем, никто не мешает провести эксперимент. Может все будет не так уж и плохо. Только питание АЦП у МК по человечески сделать надо.

 

2 минуты назад, RIMUS1989i сказал:

цены у них заоблачные

Так есть проще датчики, я же говорил.

Share this post


Link to post
Share on other sites
1 минуту назад, BARS_ сказал:

Только питание АЦП у МК по человечески сделать надо.

Да это понятно... не первый раз проектирую схему, это так наброски, возможно и внешний ИОН прилеплю. 

4 минуты назад, BARS_ сказал:

Впрочем, никто не мешает провести эксперимент.

На макетке опробую, латр есть.

Share this post


Link to post
Share on other sites
4 часа назад, RIMUS1989i сказал:

измерять думаю в диапазоне от 150 до 250в

Можно на оптронах попробовать,  по методу уравновешивания  токов .   Верхний график ток через R4 , нижний через  R1

  5b1008c8deb50_.thumb.jpg.ed96c7183578433e07dc1859ec3cb7c8.jpg

--------

У Гутникова  "Интегральная электроника в измерительных устройствах "  стр.54  есть про измерение с помощью трансформаторов . Если не найдете и будет интересно могу скинуть скан . Но вероятно  в других источниках  тоже есть .

Edited by colorad

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

  • Similar Content

    • By Вячеслав_НС
      Здравствуйте ! подскажите , какую лучше библиотеку использовать (и где ее взять) для управления i2c atmega8 в atmel studio 7  .  задача - управлять atmega8 по i2c ,  цап  PCF8591T .
      понимаю , в интернете много примеров и библиотек , но хотелось бы пример максимально простой и точно рабочий . т.к. пока что все мои попытки не привели к успеху ... то Atmel Studio 7 при компиляции ругается на несуществующий файл ( к примеру - "stream.h") при использовании библиотеки i2c , то еще какие то грабли .
    • By artos5
      Приветствую всех на этом форуме!
      Есть необходимость измерять сигнал при помощи данного АЦП. С помощью этого АЦП можно измерять 4 аналоговых не дифференциальных сигнала . Схема следующая:
      Schematic_Temp_opto_sens_V2_20190817124112.pdf
      Картинками с более низким разрешением:
      библиотеку за основу взял эту:
      https://github.com/nsaspook/nidaq700/blob/master/supermoon/example/ADS1220.c
      Путем незначительного допиливания, получилась такая библиотека:
       
      Поправил только эти функции:
      void ADS1220SendByte(unsigned char Byte) { unsigned char Result = 0x01, i=0, flg=0; MOSI_LO; Delay_us(1); for(i=0;i<8;i++) { SCK_LO; //ADC_CLK=0 Delay_us(4); if (flg) MOSI_LO; Delay_us(1); SCK_HI; //ADC_CLK=1 Delay_us(1); if (Byte&Result){ MOSI_HI; flg=1; } else MOSI_LO; Delay_us(4); Result<<=1; } SCK_LO; //ADC_CLK=0 } unsigned char ADS1220ReceiveByte(void) { unsigned char Result = 0, i=0; for(i=0;i<8;i++) { Result<<=1; SCK_LO; //ADC_CLK=0 Delay_us(5); //Delay_us(5); SCK_HI; //ADC_CLK=1 Delay_us(3); if (MISO) Result++; Delay_us(2); } SCK_LO; //ADC_CLK=0 return Result; } И добавил эту функцию:
      void ADS1220Config_MUX_GAIN(uint8_t mux, uint8_t gain) { unsigned Temp; ADS1220ReadRegister(ADS1220_0_REGISTER, 0x01, &Temp); // clear prev value; Temp &= 0x0f; Temp |= gain; Temp |= mux; // write the register value containing the new value back to the ADS ADS1220WriteRegister(ADS1220_0_REGISTER, 0x01, &Temp); ADS1220ReadRegister(ADS1220_1_REGISTER, 0x01, &Temp); // clear prev DataRate code; Temp &= 0x1f; Temp |= (ADS1220_DR_600 + ADS1220_CC); // Set default start mode to 600sps and continuous conversions // write the register value containing the new value back to the ADS ADS1220WriteRegister(ADS1220_1_REGISTER, 0x01, &Temp); } ADS1220.h :
      в результате получаю такую осциллограмму :

      То есть , постоянно считывается 0.
      А вот регистры конфигурации:
      Задаю номер входа MUX и усиление :
       

       
      Читаю данные так:
      ADS1220Config_MUX_GAIN(ADS1220_MUX_0_G, ADS1220_GAIN_1); HAL_Delay(10); temp_[0] = ADS1220ReadData(); Это для 0 канала. 
      Пробовал и так:
      ADS1220SetChannel(ADS1220_MUX_0_G); ADS1220SetGain(ADS1220_GAIN_1); temp_[0] = ADS1220ReadData(); Результат аналогичный. Кто что подскажет? Может кто заметит какой косяк в коде? Уже голова дымит ..
    • By Антон Плюшкин
      В общем есть небольшая тривиальная задача - сделать свитюльку. Контроллер управляет светодиодиками, цвета меняются, людишки довольны.
      Схема проста: Attiny44a -> 2n3904 x3 -> RGB-светодиод.
      Собрал, протестил, всё норм, но!
      Как только в коде я использую функцию задержки - _delay_ms (util/delay.h) - контроллер повисает!
      #define F_CPU 16000000UL #include <avr/io.h> #include <util/delay.h> int main(void) { // Input/Output Ports initialization // Port A initialization // Function: Bit7=Out Bit6=Out Bit5=In Bit4=In Bit3=In Bit2=In Bit1=In Bit0=In DDRA=(1<<DDA7) | (1<<DDA6) | (0<<DDA5) | (0<<DDA4) | (0<<DDA3) | (0<<DDA2) | (0<<DDA1) | (0<<DDA0); // State: Bit7=0 Bit6=0 Bit5=T Bit4=T Bit3=T Bit2=T Bit1=T Bit0=T PORTA=(0<<PORTA7) | (0<<PORTA6) | (0<<PORTA5) | (0<<PORTA4) | (0<<PORTA3) | (0<<PORTA2) | (0<<PORTA1) | (0<<PORTA0); // Port B initialization // Function: Bit3=In Bit2=Out Bit1=In Bit0=In DDRB=(0<<DDB3) | (1<<DDB2) | (0<<DDB1) | (0<<DDB0); // State: Bit3=T Bit2=0 Bit1=T Bit0=T PORTB=(0<<PORTB3) | (0<<PORTB2) | (0<<PORTB1) | (0<<PORTB0); // Timer/Counter 0 initialization // Clock source: System Clock // Clock value: 16000,000 kHz // Mode: Phase correct PWM top=0xFF // OC0A output: Non-Inverted PWM // OC0B output: Non-Inverted PWM // Timer Period: 0,031875 ms // Output Pulse(s): // OC0A Period: 0,031875 ms Width: 0 us // OC0B Period: 0,031875 ms Width: 0 us TCCR0A=(1<<COM0A1) | (0<<COM0A0) | (1<<COM0B1) | (0<<COM0B0) | (0<<WGM01) | (1<<WGM00); TCCR0B=(0<<WGM02) | (0<<CS02) | (0<<CS01) | (1<<CS00); TCNT0=0x00; OCR0A=0x00; OCR0B=0x00; // Timer/Counter 1 initialization // Clock source: System Clock // Clock value: 16000,000 kHz // Mode: Ph. correct PWM top=0x00FF // OC1A output: Non-Inverted PWM // OC1B output: Disconnected // Noise Canceler: Off // Input Capture on Falling Edge // Timer Period: 0,031875 ms // Output Pulse(s): // OC1A Period: 0,031875 ms Width: 0 us // Timer1 Overflow Interrupt: Off // Input Capture Interrupt: Off // Compare A Match Interrupt: Off // Compare B Match Interrupt: Off TCCR1A=(1<<COM1A1) | (0<<COM1A0) | (0<<COM1B1) | (0<<COM1B0) | (0<<WGM11) | (1<<WGM10); TCCR1B=(0<<ICNC1) | (0<<ICES1) | (0<<WGM13) | (0<<WGM12) | (0<<CS12) | (0<<CS11) | (1<<CS10); TCNT1H=0x00; TCNT1L=0x00; ICR1H=0x00; ICR1L=0x00; OCR1AH=0x00; OCR1AL=0x00; OCR1BH=0x00; OCR1BL=0x00; // Timer/Counter 0 Interrupt(s) initialization TIMSK0=(0<<OCIE0B) | (0<<OCIE0A) | (0<<TOIE0); // Timer/Counter 1 Interrupt(s) initialization TIMSK1=(0<<ICIE1) | (0<<OCIE1B) | (0<<OCIE1A) | (0<<TOIE1); // External Interrupt(s) initialization // INT0: Off // Interrupt on any change on pins PCINT0-7: Off // Interrupt on any change on pins PCINT8-11: Off MCUCR=(0<<ISC01) | (0<<ISC00); GIMSK=(0<<INT0) | (0<<PCIE1) | (0<<PCIE0); // USI initialization // Mode: Disabled // Clock source: Register & Counter=no clk. // USI Counter Overflow Interrupt: Off USICR=(0<<USISIE) | (0<<USIOIE) | (0<<USIWM1) | (0<<USIWM0) | (0<<USICS1) | (0<<USICS0) | (0<<USICLK) | (0<<USITC); // Analog Comparator initialization // Analog Comparator: Off // The Analog Comparator's positive input is // connected to the AIN0 pin // The Analog Comparator's negative input is // connected to the AIN1 pin ACSR=(1<<ACD) | (0<<ACBG) | (0<<ACO) | (0<<ACI) | (0<<ACIE) | (0<<ACIC) | (0<<ACIS1) | (0<<ACIS0); ADCSRB=(0<<ACME); // Digital input buffer on AIN0: On // Digital input buffer on AIN1: On DIDR0=(0<<ADC1D) | (0<<ADC2D); // ADC initialization // ADC disabled ADCSRA=(0<<ADEN) | (0<<ADSC) | (0<<ADATE) | (0<<ADIF) | (0<<ADIE) | (0<<ADPS2) | (0<<ADPS1) | (0<<ADPS0); unsigned char VL_OCR0A = 0, VL_OCR0B = 0, VL_OCR1A = 0; OCR0A = 0; OCR0B = 0; OCR1A = 0; while(1) { _delay_ms( 100 ); VL_OCR0A = VL_OCR0A + 1; VL_OCR0B = VL_OCR0B + 1; VL_OCR1A = VL_OCR1A + 1; if( VL_OCR0A >= 250 ){ VL_OCR0A = 0; } if( VL_OCR0B >= 250 ){ VL_OCR0B = 0; } if( VL_OCR1A >= 250 ){ VL_OCR1A = 0; } OCR0A = VL_OCR0A; OCR0B = VL_OCR0B; OCR1A = VL_OCR1A; } } Т.е. если указать задержку в начале цикла, то светодиод не светится вообще.
      Если задержку убрать - светодиод немного подсвечивает всеми цветами.
      while(1) { _delay_ms( 100 ); // <--- ЗАДЕРЖКА --- VL_OCR0A = VL_OCR0A + 1; VL_OCR0B = VL_OCR0B + 1; VL_OCR1A = VL_OCR1A + 1; if( VL_OCR0A >= 250 ){ VL_OCR0A = 0; } if( VL_OCR0B >= 250 ){ VL_OCR0B = 0; } if( VL_OCR1A >= 250 ){ VL_OCR1A = 0; } OCR0A = VL_OCR0A; OCR0B = VL_OCR0B; OCR1A = VL_OCR1A; } Где я накосячил?
      З.Ы.: Замечаний по поводу оптимизации кода, излишних переменных и п.р. прошу не писать - изощряюсь как могу ибо не пойму почему не работает
    • By LegionKC
      Добрый день.
      Экспериментирую с платой TP4056 и MK ATmega8, конкретнее - пытаюсь собрать простенькое зарядное устройство с выводом параметров при зарядке/разрядке на АЦП МК. Для измерения тока нашел ACS712. Думаю, что получится выводить ток при зарядке (т.е. когда идет питание на TP4056 и нагрузка отключена) и при разрядке (питание выключено, нагрузка подключена). Нагрузка - резистор. Возникла проблема с измерением напряжения на АКБ. Вернее, проблема с отсутствием идей как это сделать. Может какую-нибудь схему делителя напряжения нужно сделать? Прошу помочь советом. Схему из пэинта прилагаю.
      Спасибо.
       

    • By pryanic
      Доброго времени суток. Понадобилось разобраться с АЦП.  Основной материал использовал Евстифеева (микроконтроллеры семейства мега) и учебный курс Di-Halt.
      На первый раз задача простая - обработать напряжение с переменного резистора и послать по UART в терминал. С терминалом уже кое-что делал, так что тут вряд ли косяк есть.
      Кратко опишу программу: каждую секунду в обработчике прерывания таймера (не совсем точно, прерывание по переполнению Т0) запускаю преобразование АЦП установкой в 1 бита ADSC. 
      В обработчике прерывания АЦП читаю байт ADCH (выравнивание по левому краю ADLAR=1) и шлю по уарт. Но в терминал приходят одни FF независимо от положения движка потенциометра (подключен к PC1 средним контактом, крайними на землю и AVCC)
       
       
      ADC_test.zip
  • Сообщения

    • Молодец, что начал сам. Тебе повезло, что  полез тогда именно в свой собственный аппарат, а не на наш форум, за помощью, где тебя  послали бы к мастеру,  в школу на уроки по физике,  запросили бы 100 долларов, заставили бы  срисовать плату, а в итоге призвали бы не уродовать аппарат, потому что  знаний у тебя ровно ноль.
    • Микросхема "новая" вообще может левак, перемаркировка. Вообще то схема на эту мс есть в даташите и можно было с ней разбираться. Но управление конечно идет с процессора и надо смотреть питания и не греется ли она.
    • Марка Вольтметр В7-27А/1 Страна производитель СССР Год выпуска 1981 Состояние техническое, неисправный показывает перегрузку или набор чисел, внутри все на месте, есть пару замененных электролитических конденсаторов. Как достался так и продаю! Косметика на 4 отсутствует заглушка на верхней крышке есть потертости на корпусе. Комплект сам прибор могу в довесок кинуть различных кабелей, если это вам нужно конечно. Цена по сути металла. 6500 рублей Если есть вопросы все в ЛС и по существу, или на почту istomindimavolga@mail.ru Отправлю ТК выгоднее будет Энергия или ПЭК 400-600 рублей примерно. Можно и почтой но из-за веса может выйти дорого, могу рассчитать предметно! Оплата на карту СБ.  
    • Подозреваю что что то не ладное вот с этой микросхемой aci7210ee909-01.Это блютуз ,радио,мульти медио и управление стерео усилителем.
    • Посмотри вот это реле давления https://akvabak.ru/product/beziskrovoe-rele-davleniya-brd-10m-2-5/ Помимо кучи полезных вещей, там есть и ограничение частоты включений и индикация неисправности ГА как раз по времени наполнения. Меня смущает только цена и электронный датчик давления. Механический надежнее )
    • SamVal   все отлично , сделано и сказано.
    • А чего Вы ожидали? У Вас КРАВ внятно спросил -   
  • Покупай!

×
×
  • Create New...