Ви не увійшли.
Сторінки 1
Благодарю, знаю что вопрос глупый, но смутило это противоречие в ДШ) еще раз спасибо.
Доброго времени суток, Господа. Хочу для своих начальных подделок использовать RMS/DC преобразователь. Но в виду моего не идеального знания английского технического есть сомнение, заключается оно в следующем: в даташите AD736 на первой же странице сказано что максимальное входное значение входного сигнала 200 мВ, значения вышел могут быть измерены с помощью делителя напряжения. Но спустя пару страниц (а конкретнее 13) приводится таблица №6 выбора конденсаторов. Где фигурирует диапазон 0-1 В RMS. Так где же зарыта та самая собака? Помогите пожалуйста ответом начинающему найти истину и не сжечь AD736 ненароком).
Лично я хочу с его помощью как раз таки измерять RMS значения синусоидального напряжения 50 Гц в диапазоне 0-1 В, а схему AD736 использовать с питанием от кроны.
Пробовал схему с одним диодом, конденсатором и стабилитроном и результаты также были далеки от удовлетворительных, менял и емкость конденсатора и сам диод. Допускаю что сам совершаю элементарную ошибку, поэтому утверждать неработоспособность этой идеи не буду)
В данный момент сделал смещение 2.5 В и с использованием библиотеки получил значения с погрешность в 5 %.
Пробовал использовать диодный мост, но он вносит огромную нелинейность на таком относительно маленьком диапазоне как 0-5 В.
Я думаю сделав смещение на 2.5 В попробовать использовать данную библиотекуhttps://github.com/MartinStokroos/TrueR … re_rms.ino,может кто-то ее уже использовал? Она даёт результат?
От 0 до 5 В. Сегодня начал изучать тему смещения синусоиды на 2.5 В, но пока слабо представляю реализацию выборки за период в 20 мс,вот. За любой совет буду благодарен.
Доброго времени суток, захотел сделать измерительный элемент с отображением значений для высоковольтного делителя напряжения. С измерением постоянного напряжения и выводом результатов проблем нет, попутно использую внешний АЦП ADS1115, но с переменкой проблемы и я так понял что ардуино не сильно для этого и подходит, хотя находил некоторые проекты в интернете, пробовал следующие варианты:
1) использовать следующую библиотеку https://github.com/MartinStokroos/TrueRMS;
2)следующую схему и код для нее
#include <LiquidCrystal.h> // include Arduino LCD library
// LCD module connections (RS, E, D4, D5, D6, D7)
LiquidCrystal lcd(2, 3, 4, 5, 6, 7);
void setup(void) {
lcd.begin(16, 2); // set up the LCD's number of columns and rows
lcd.setCursor(0, 0);
lcd.print("RMS Voltage:");
analogReference(INTERNAL); // set ADC positive reference voltage to 1.1V (internal)
}
// get maximum reading value
uint16_t get_max() {
uint16_t max_v = 0;
for(uint8_t i = 0; i < 100; i++) {
uint16_t r = analogRead(A3); // read from analog channel 3 (A3)
if(max_v < r) max_v = r;
delayMicroseconds(200);
}
return max_v;
}
// main loop
void loop() {
char buf[10];
// get amplitude (maximum - or peak value)
uint32_t v = get_max();
// get actual voltage (ADC voltage reference = 1.1V)
v = v * 1100/1023;
// calculate the RMS value ( = peak/√2 )
v /= sqrt(2);
sprintf(buf, "%03u Volts", v);
lcd.setCursor(0, 1);
lcd.print(buf);
delay(100);
}
// end of code.
3)пробовал использовать диодный мост вместо одного диода в предыдущей схеме.
Во всех случаях результаты далеки от посредственных, погрешности на мой взгляд огромные (представляют собой крайне не линейный характер и доходят до 30 % от подаваемого значения). В идеале хотел бы измерять переменное напряжение до 5 В с погрешностью в 1 %. Суть моего вопроса вообще насколько это возможно, а если возможно то буду крайне благодарен за совет в его реализации. Находил проекты с использованием ОУ, но сам с ними еще не работал и вообще без году неделю начал изучать ардуино, поэтому изначально искал более казуальное решения.
Изучил эту тему и да, скорее всего это и есть моя ошибка, ибо все размещаю на бредборде, завтра перед работой зайду на радиорынок за конденсаторами. Тонкая материя в которой много подводных камней, но так интереснее.
Спасибо за помощь.
SkepticK пише:... но когда контакты аналоговых входов ADS1115 висят в воздухе, он меряет какие-то наводки, шумы
Не помню, кто из великих сказал: "Есть два типа инженеров: одни создают антенны, а другие тоже создают антенны, но не преднамеренно." :-)
Всегда получал истинное и неподдельное удовольствие от подобного общения на форумах, видимо это уже часть некой культуры коммуникации в интернете. Но это мелочи, во всяком случае, спасибо за ответ, меня просто в виду моей неопытности в этой теме одолевают сомнения (возможно я допустил какую глупую ошибку и как следствие получил вышеупомянутые результаты, хотя с другой стороны в даташите ADS1115 приведена таблица зависимости помех от диапазона измерения и увеличения параметра "DATA RATE", но опять же при просмотре огромного числа роликов на эту тему видел у готовых проектов четкий ноль на вольтметре и подумал о возможном существовании калибровки данного АЦП).
Причем упомянутые мною помехи фиксируются не только на проводах "в воздухе", но и на самих аналоговых входа ADS1115, что меня смутило.
Последнее спасибо за ответ, буду пробовать увеличивать сэмплирование АЦП.
Причем этот "шум" появляется на самих аналоговых входах ADS1115, ибо я просто подключил плату и замерил мультиметром напряжение на контактах А1-А2 ADS1115 и увидел напряжение импульсы напряжения порядка 150 мВ.
Здравствуйте, возникла возможность на работе заиметь точный AC/DC вольтметр c пределом измерения до одного вольта и хоть от энергетики я сам по себе не далек (работал и электромонтером и инженером РЗА), но крайне мельком касался таких тонких материй как микроконтроллеры. Начал смотреть ролики, читать статьи и даташиты, решил что для такого новичка как я оптимальным первым шагом будет реализовать вольтметр постоянного тока с помощью внешнего АЦП ADS1115 c Arduino Uno. Собрал следующую схему:
Использовать решил дифференциальный режим (мне он чисто теоретически показался точнее), питание ардуинка получает с USB, а скетч использую из примеров библиотеки ADS1115:
#include <Adafruit_ADS1X15.h>
Adafruit_ADS1115 ads; /* Use this for the 16-bit version */
//Adafruit_ADS1015 ads; /* Use this for the 12-bit version */
void setup(void)
{
Serial.begin(9600);
Serial.println("Hello!");
Serial.println("Getting differential reading from AIN0 (P) and AIN1 (N)");
Serial.println("ADC Range: +/- 6.144V (1 bit = 3mV/ADS1015, 0.1875mV/ADS1115)");
// The ADC input range (or gain) can be changed via the following
// functions, but be careful never to exceed VDD +0.3V max, or to
// exceed the upper and lower limits if you adjust the input range!
// Setting these values incorrectly may destroy your ADC!
// ADS1015 ADS1115
// ------- -------
ads.setGain(GAIN_TWOTHIRDS); // 2/3x gain +/- 6.144V 1 bit = 3mV 0.1875mV (default)
// ads.setGain(GAIN_ONE); // 1x gain +/- 4.096V 1 bit = 2mV 0.125mV
// ads.setGain(GAIN_TWO); // 2x gain +/- 2.048V 1 bit = 1mV 0.0625mV
// ads.setGain(GAIN_FOUR); // 4x gain +/- 1.024V 1 bit = 0.5mV 0.03125mV
// ads.setGain(GAIN_EIGHT); // 8x gain +/- 0.512V 1 bit = 0.25mV 0.015625mV
// ads.setGain(GAIN_SIXTEEN); // 16x gain +/- 0.256V 1 bit = 0.125mV 0.0078125mV
ads.begin();
}
void loop(void)
{
int16_t results;
int16_t results2;
/* Be sure to update this value based on the IC and the gain settings! */
//float multiplier = 3.0F; /* ADS1015 @ +/- 6.144V gain (12-bit results) */
float multiplier = 0.1875F; /* ADS1115 @ +/- 6.144V gain (16-bit results) */
results = ads.readADC_Differential_0_1();
results2 = ads.readADC_Differential_2_3();
Serial.print("Differential: "); Serial.print(results); Serial.print("("); Serial.print(results * multiplier); Serial.println("mV)");
results = ads.readADC_Differential_0_1();
//Serial.print("Differential2: "); Serial.print(results2); Serial.print("("); Serial.print(results2 * multiplier); Serial.println("mV)");
//results2 = ads.readADC_Differential_2_3();
delay(1000);
}
Разность измерений напряжения даже на самом большом диапазоне с мультиметром APPA у меня порядка 15 мВ, что меня в принципе устраивает, но когда контакты аналоговых входов ADS1115 висят в воздухе, он меряет какие-то наводки, шумы:
Я в мечтах лелею надежду эволюционировать до подключения дисплея и вывода напряжения туда, но хочу видеть четкий ноль, когда провода не подключены к объекту измерения.
Прошу прояснить для меня момент, есть ли возможность получить четкий ноль в данном случае и как? Или это нормальная ситуация, ибо смотря ролики на ютубе у многих заметил такой момент.
Сторінки 1