فهرست مطالب:
- مرحله 1: تظاهرات
- مرحله 2: منابع مورد استفاده
- مرحله 3: بلوک نمودار
- مرحله 4: طرح
- مرحله 5: LM386 - سنجاق کردن
- مرحله 6: AmpOp - دیفرانسیل (تفریق کننده)
- مرحله 7: AmpOp - Inverter Adder
- مرحله 8: Maple Mini - Pinage
- مرحله 9: Maple Mini - Pinning - a / D مورد استفاده در ضبط
- مرحله 10: مونتاژ
- مرحله 11: نمودار با داده های به دست آمده
- مرحله 12: محاسبه مقدار RMS
- مرحله 13: کد منبع
- مرحله 14: فایل ها
تصویری: اندازه گیری ولتاژ AC True-RMS: 14 مرحله
2024 نویسنده: John Day | [email protected]. آخرین اصلاح شده: 2024-01-30 08:56
امروز ، ما از STM32 Maple Mini برای خواندن AC استفاده می کنیم. در مثال ما ، مقدار RMS شبکه برق را دریافت می کنیم. این برای کسانی که مایل به نظارت بر شبکه برق برای اینترنت اشیا هستند بسیار مفید است. سپس یک برنامه کاربردی با استفاده از قدرت محاسباتی Maple Mini ایجاد می کنیم ، یک مدار الکترونیکی که قادر به دریافت سیگنال 127Vac است ، و همچنین محاسبه مربع میانگین ریشه (RMS) را بر روی نمونه ها اعمال می کنیم.
مرحله 1: تظاهرات
در مونتاژ امروز ما STM32 را داریم ، علاوه بر مدار آنالوگ خود ورودی 110 را داریم. برای جلوگیری از ضربه ، مقاومتی را که 110 وارد می کند جدا کنید.
مدار کاملا حساس است. من با 110 وارد می شوم ، اما با استفاده از تقسیم ولتاژ آن را 168 بار کاهش می دهم و در تقویت کننده عملیاتی قرار می دهم که چندین عملکرد دارد.
ما همچنین چند خازن اختیاری برای فیلتر منبع داریم. اگر منبع شما از کیفیت خوبی برخوردار است ، نیازی به استفاده از آنها ندارید.
ورودی AD از طریق اسیلوسکوپ محاسبه می شود که در آن شما یک سینوسی را مشاهده می کنید که 110 نیست (اما به خوبی شکل گرفته است). نکته دیگر این است که ولتاژ در شبکه برق ما 110 نیست (در واقع 127 ولت است). اما همانطور که در حال گذراندن یک تثبیت کننده هستیم ، آن را به 115 ولت تنظیم می کند.
مقدار نمایش داده شده در مانیتور سریال همان چیزی است که در RMS محاسبه می شود ، یعنی مقداری که توسط Fluke Meter مشخص می شود.
مرحله 2: منابع مورد استفاده
• جامپرها
• مپل مینی
• Protoboard
• تقویت کننده LM386
• منبع متقارن (+ 5V و -5V)
• تریمپات 10 دور چند دور (یا پتانسیومتر)
• چهار خازن پلی استر 100nF
• سه مقاومت 10k
• چهار مقاومت 470k
• یک مقاومت 5k6
• یک دیود زنر 1n4728A
مرحله 3: بلوک نمودار
مرحله 4: طرح
این مداری است که من بر اساس ویژگی هایی که معتقدم برای این اندازه گیری بهترین است ، ایجاد کردم ، اما چندین مثال دیگر وجود دارد که می توان در اینترنت یافت.
مرحله 5: LM386 - سنجاق کردن
LM386 دارای دو تقویت کننده برای تهویه یا تقویت سیگنال است.
مرحله 6: AmpOp - دیفرانسیل (تفریق کننده)
مرحله 7: AmpOp - Inverter Adder
مرحله 8: Maple Mini - Pinage
پین های مشخص شده روی:
قرمز >> 3V3 تحمل
سبز >> تحمل 5 ولت
مرحله 9: Maple Mini - Pinning - a / D مورد استفاده در ضبط
در اینجا تأکید می کنم که پینی که من استفاده کردم D11 است که (در نامگذاری STMicroelectronics) PA0 است.
مرحله 10: مونتاژ
برای مدار ما ، شما به یک منبع متقارن نیاز دارید ، مانند منبع مورد نظر ما برای این پروژه. در غیر این صورت ، شما به دو منبع نیاز دارید.
مرحله 11: نمودار با داده های به دست آمده
مرحله 12: محاسبه مقدار RMS
مرحله 13: کد منبع
کد منبع - تعاریف و ثابت ها
در ابتدا ، قرائت پین را به عنوان D11 و ثابت های مختلف مورد استفاده در محاسبات تعریف کردیم.
#deitine leituraTensao D11 // AD CH0 no pino PA0 // valor teórico divisor de tensão = 168.85714285714285714286 const float fatorDivisor = 168.40166345742404792461؛ // valor teórico do ganho de amplificação = 1.0 const float fatorAmplificador = 1.0؛ // Valor usado na multiplicação da leitura const float fatorMultiplicacao = fatorDivisor * fatorAmplificador؛ // Valor teórico da Tensão de alimentação Vcc = 3.3V const float Vcc = 3.3؛ // valor teórico do offset do amplificador = Vcc /2.0؛ const float offSet = 1.66؛ // fator teórico da conversão do AD = 3.3 / 4095.0 const float fatorAD = Vcc / 4095.0؛ const int amostras = 71429؛ // resulta em 1، 027 segundos para cada atualização // const int amostras = 35715؛ // resulta em 0، 514 segundos para cada atualização
کد منبع - متغیرهای جهانی
اکنون ، ما برخی از متغیرهای جهانی را تعریف می کنیم.
شناور Vrms = 0.0 ؛ // armazena o valor rms da tensãofloat Vmax = 0.0؛ // armazena o valor máximo deteado float Vmin = 10000.0؛ // armazena o valor mínimo deteado float Vmed = 0.0؛ // armazena o valor médio entre Vmáx e Vmín
کد منبع - راه اندازی ()
پورت سریال را با سرعت 1 مگابیت بر ثانیه شروع کنید. ما پورت AD را به عنوان ورودی تنظیم کردیم و 5 ثانیه قبل از شروع به جمع آوری داده ها منتظر ماندیم. زمان آماده به کار اختیاری است.
void setup () {Serial.begin (1000000)؛ // inicia a porta serial em 1Mbps pinMode (leituraTensao، INPUT)؛ // ajusta a porta do AD como entrada delay (5000)؛ // aguarda 5s antes de iniciar a coleta. (اختیاری)}
کد منبع - حلقه () - متغیرهای جمع آوری داده ها را شروع می کند
در حلقه ، متغیری برای تکرار داریم. در اینجا ، ما مقادیر AD را در 0.0 ذخیره می کنیم و متغیر VRMS را نیز در 0.0 راه اندازی مجدد می کنیم.
حلقه خالی () {int i = 0؛ // variável para iteração float leitura = 0.0؛ // armazena as leituras AD Vrms = 0.0؛ // reinicia a variável Vrms
کد منبع - محاسبه های جداگانه برای هر نمونه را ضبط و اجرا می کند
در این مرحله ، اگر i از نمونه کوچکتر است ، یک چرخه نمونه گیری را شروع می کنیم تا به تعداد نمونه ها برسم. ما analogRead را برای خواندن پورت آنالوگ و محاسبه مجموع مربعات ولتاژهای خوانده شده اجرا می کنیم. در نهایت ، تکرار کننده را افزایش می دهیم.
while (i <amostras) {// inicia um ciclo de amostragem até que i alcance o número de amostras leitura = analogRead (leituraTensao) ؛ // اما a porta analógica //Serial.println(leitura) ؛ // Descomente se quiser ver o sinal bruto do AD Vrms = Vrms + pow (((leitura * fatorAD) - offSet) ، 2.0) ؛ // محاسبه a soma dos quadrados das tensões lidas i ++؛ // افزایش یا تکرار}
کد منبع - محاسبات عمومی نمونه ها و شناسایی حداکثر ، حداقل و متوسط
ما از واقعیت ضرب برای تعیین مقدار واقعی ولتاژها استفاده می کنیم. ما حداکثر یا حداقل مقدار را تشخیص می دهیم و میانگین حداکثر و حداقل مقادیر فعلی را محاسبه می کنیم.
// Aplicando fator de multiplicação para determinar o valor real das tensões Vrms = (sqrt (Vrms /amostras)) * fatorMultiplicacao؛ // detea se é um um valor é máximo if (Vrms> Vmax) {Vmax = Vrms؛ } // detea se é um um valor mínimo if (Vrms <Vmin) {Vmin = Vrms؛ } // calcula a média dos valores máximo e mínimo atuais Vmed = (Vmax + Vmin) /2.0؛
کد منبع - گزینه های خروجی
ما سه گزینه برای "رسم" مقدار خروجی داریم. ما خروجی را برای پلاتر سریال Arduino IDE قالب بندی کرده ایم ، مانند CSV یا Jason.
// saída formatada para plotter serial IDE Arduino Serial.print (Vrms، 3)؛ Serial.print ("،") ؛ Serial.print (Vmax ، 3) ؛ Serial.print ("،") ؛ Serial.print (Vmin ، 3) ؛ Serial.print ("،") ؛ Serial.println (Vmed ، 3) ؛ /* // saída formatada como json Serial.print ("{" instante (ms) ":")؛ Serial.print (millis ())؛ Serial.print ("،") ؛ Serial.print ("\" Vrms (V) ":")؛ Serial.print (Vrms ، 3) ؛ Serial.print ("،") ؛ Serial.print ("\" Vmax (V) ":")؛ Serial.print (Vmax ، 3) ؛ Serial.print ("،") ؛ Serial.print ("\" Vmin (V) ":")؛ Serial.print (Vmin ، 3) ؛ Serial.print ("،") ؛ Serial.print ("\" Vmed (V) ":")؛ Serial.print (Vmed ، 3) ؛ Serial.println ("}") ؛ * / /* // saída formatada como CSV Serial.print (millis ())؛ Serial.print ("،") ؛ Serial.print (Vrms ، 3) ؛ Serial.print ("،") ؛ Serial.print (Vmax ، 3) ؛ Serial.print ("،") ؛ Serial.print (Vmin ، 3) ؛ Serial.print ("،") ؛ Serial.println (Vmed ، 3) ؛ */}
مرحله 14: فایل ها
دانلود فایلها:
من نه
توصیه شده:
اندازه گیری زمان (ساعت اندازه گیری نوار): 5 مرحله (همراه با تصاویر)
Time Time (Tape Measure Clock): برای این پروژه ، ما (Alex Fiel & amp؛ Anna Lynton) یک ابزار اندازه گیری روزانه تهیه کردیم و آن را به ساعت تبدیل کردیم! طرح اولیه این بود که یک نوار اندازه گیری موجود را موتور کنید. در ساخت آن ، ما تصمیم گرفتیم که راحت تر بتوانیم پوسته خودمان را ایجاد کنیم
اندازه گیری ولتاژ اندازه جیبی DIY: 5 مرحله
اندازه گیری ولتاژ DC اندازه جیبی DIY: در این مقاله به شما نشان می دهم که چگونه می توانید ولتاژ DC اندازه جیب DIY را با زنگ پیزو برای بررسی مدار توسط خودتان بسازید. تنها چیزی که نیاز دارید دانش اولیه در زمینه الکترونیک و کمی زمان است. اگر س questionال یا مشکلی دارید می توانید
اندازه گیری فرکانس منبع تغذیه و ولتاژ با استفاده از آردوینو: 6 مرحله
اندازه گیری فرکانس منبع تغذیه و ولتاژ با استفاده از آردوینو: مقدمه: هدف این پروژه اندازه گیری فرکانس و ولتاژ منبع تغذیه است که بین 220 تا 240 ولت تا 50 هرتز در هند است. من از آردوینو برای ضبط سیگنال و محاسبه فرکانس و ولتاژ استفاده کردم ، شما می توانید از هر میکروکنترل دیگری استفاده کنید
اندازه گیری ولتاژ DC با استفاده از آردوینو: 5 مرحله
اندازه گیری ولتاژ DC با استفاده از آردوینو: در این پروژه به شما نحوه اندازه گیری ولتاژ DC تا 50 ولت با استفاده از آردوینو را نشان می دهم و نمایش در قسمت ماژول صفحه نمایش OLED نیاز به آردوینو صفحه نمایش خنک نشده 10 کیلو اهم مقاومت 1 کیلو اهم مقاومت کابل ضربه گیر
استفاده از مدار برای اندازه گیری ولتاژ دروازه دیجیتال: 7 مرحله
استفاده از مدار برای اندازه گیری ولتاژهای دروازه دیجیتال: مدارهای دیجیتال عموماً از منابع 5 ولت استفاده می کنند. ولتاژهای دیجیتال که از 5v -2.7 ولت در سری TTL (نوعی تراشه دیجیتال یکپارچه) زیاد در نظر گرفته می شوند و دارای مقدار 1. ولتاژ دیجیتال هستند فرم 0-0.5 کم در نظر گرفته می شود و دارای