সুচিপত্র:

Arduino ভোল্ট মিটার (0-100V ডিসি) - সংস্করণ 2 (ভাল): 3 ধাপ
Arduino ভোল্ট মিটার (0-100V ডিসি) - সংস্করণ 2 (ভাল): 3 ধাপ

ভিডিও: Arduino ভোল্ট মিটার (0-100V ডিসি) - সংস্করণ 2 (ভাল): 3 ধাপ

ভিডিও: Arduino ভোল্ট মিটার (0-100V ডিসি) - সংস্করণ 2 (ভাল): 3 ধাপ
ভিডিও: Complete Test/Review of 10A 0-100V LED DC Volt and Current Meter 2024, জুন
Anonim
Image
Image
ধাপ 1: স্কিম্যাটিক্স
ধাপ 1: স্কিম্যাটিক্স

এই নির্দেশে, আমি একটি ভোল্টমিটার তৈরি করেছি উচ্চ ভোল্টেজ ডিসি (0-100v) পরিমাপ করার জন্য একটি Arduino Nano এবং একটি ADS 1115 ADC ব্যবহার করে আপেক্ষিক নির্ভুলতা এবং নির্ভুলতার সাথে।

এটি ভোল্টমিটারের একটি দ্বিতীয় সংস্করণ যা আমার আগের নির্দেশনা এখানে ব্যবহার করা হয়েছে:

আমি যে পরীক্ষা পরিমাপ নিয়েছিলাম তা সঠিক ছিল, বেশিরভাগই প্রকৃত ভোল্টেজের 0.1v এর মধ্যে একটি স্ট্যান্ডার্ড ভোল্টমিটার দিয়ে পরিমাপ করা হয়েছিল (আমি একটি অ্যাস্ট্রো এআই DM6000AR ব্যবহার করেছি)।

আরডুইনোতে বাহ্যিক ভোল্টেজ রেফারেন্স ব্যবহারের চেয়ে এটি আমার মতে অনেক ভাল এবং সহজ।

সরবরাহ

1 x Arduino Nano - লিঙ্ক

1 x Oled Display (SSD 1306) - লিঙ্ক

1 x ADS 1115 - 16 বিট ADC - লিঙ্ক

1 x 1/4W (যদিও আমি 1W প্রতিরোধক ব্যবহার করার পরামর্শ দিচ্ছি) 1% প্রতিরোধক - 220k ওহম - লিঙ্ক

1 x 1/4W (যদিও আমি 1W প্রতিরোধক ব্যবহার করার পরামর্শ দিচ্ছি) 1% প্রতিরোধক - 10k ওহম - লিঙ্ক

ব্রেডবোর্ড এবং তার - লিঙ্ক

অ্যাস্ট্রো এআই DM6000AR - লিঙ্ক

ইউএসবি পাওয়ার ব্যাংক - লিঙ্ক

9V ব্যাটারি - লিঙ্ক

কানাডিয়ানউইন্টার্স হল অ্যামাজন সার্ভিসেস এলএলসি অ্যাসোসিয়েটস প্রোগ্রামে অংশগ্রহণকারী, একটি অ্যাফিলিয়েট অ্যাডভারটাইজিং প্রোগ্রাম যা অ্যামাজন ডটকম এবং অ্যাফিলিয়েটেড সাইটের সাথে লিঙ্ক করে ফি উপার্জনের মাধ্যম প্রদানের জন্য ডিজাইন করা হয়েছে। এই লিঙ্কগুলি ব্যবহার করে, একটি অ্যামাজন অ্যাসোসিয়েট হিসাবে আমি যোগ্যতা ক্রয় থেকে উপার্জন করি, এমনকি যদি আপনি অন্য কিছু কিনে থাকেন-এবং এটি আপনার কিছু খরচ করবে না।

ধাপ 1: ধাপ 1: পরিকল্পিত

ধাপ 1: স্কিম্যাটিক্স
ধাপ 1: স্কিম্যাটিক্স

আমি উপরের স্কিম্যাটিক্স অনুসারে সমস্ত অংশ সংযুক্ত করেছি।

আমি ADC1115 এর ADDR পিনটি মাটিতে বেঁধে দিলাম। এটি ADC এর ঠিকানা 0x48 সেট করে।

ধাপ 2: ধাপ 2: কোড এবং প্রতিরোধক গণনা

ধাপ 2: কোড এবং প্রতিরোধক গণনা
ধাপ 2: কোড এবং প্রতিরোধক গণনা

আগের নির্দেশের মতো, সার্কিটের ধারণা হল যে পরিমাপ করা ডিসি ভোল্টেজ একটি ভোল্টেজ রোধের মধ্য দিয়ে যায়। স্কেল করা ভোল্টেজ এবং তারপর পড়ার জন্য ADC কনভার্টারের এনালগ পিনে প্রবেশ করে, তারপর I2C এর মাধ্যমে Arduino তে প্রেরণ করা হয় এবং তারপর পুনরায় স্কেল করা হয় এবং OLed ডিসপ্লেতে প্রদর্শিত হয়।

আমি এই ক্ষেত্রে কোডে কোন গড় বা মসৃণতা ব্যবহার করিনি, কারণ রিডিংগুলি বেশ সঠিক বলে মনে হয়। গোলমাল কমাতে, আপনি A0 (ADC তে) এবং মাটির মধ্যে একটি ছোট ক্যাপাসিটর যুক্ত করতে চাইতে পারেন। যদিও এটি আমার পরীক্ষার জন্য প্রয়োজনীয় ছিল না।

একটি জিনিস আমি লক্ষ্য করেছি, যখন কোন ব্যাটারি সংযুক্ত ছিল না তখন কিছুটা শব্দ হয়েছিল (0 ভোল্ট)। আমি ADC মান প্রদর্শন এবং কোডের মাধ্যমে এটি সংশোধন/সমন্বয় করার জন্য Arduino এর সিরিয়াল মনিটর ব্যবহার করেছি।

পূর্ববর্তী নির্দেশের মতো, আমি একটি স্প্রেডশীট তৈরি করেছি যা গণনাকে স্বয়ংক্রিয় করে যদি আপনি ভোল্টেজ ডিভাইডারে বিভিন্ন প্রতিরোধক মান ব্যবহার করতে চান: গুগল শীটের লিঙ্ক

এই প্রকল্পের জন্য আমি যে কোডটি ব্যবহার করেছি তা এখানে:

#অন্তর্ভুক্ত

#অন্তর্ভুক্ত #অন্তর্ভুক্ত #অন্তর্ভুক্ত #Adafruit_ADS1115 বিজ্ঞাপন (0x48); // ADC U8G2_SSD1306_128X64_NONAME_F_HW_I2C u8g2 (U8G2_R0) এর ঠিকানা; // (ঘূর্ণন, [রিসেট]) int calib = 7; // ত্রুটি ফ্লোট ভোল্টেজ কমাতে ADS1115 এর ক্রমাঙ্কনের মান = 0; // ভোল্টেজ ভ্যালু ফ্লোট সংরক্ষণ করতে ব্যবহৃত Radjust = 0.043421905; // ভোল্টেজ ডিভাইডার ফ্যাক্টর (R2 / R1+R2) ভাসা vbat = 0; // হিসাবের পর চূড়ান্ত ভোল্টেজ- ব্যাটারির ভোল্টেজ // দেরী না করে স্বাক্ষরিত দীর্ঘ পূর্ববর্তী মিলিস = 0; // শেষবার স্ক্রিন রিফ্রেশ করার সময় সঞ্চয় করবে // ধ্রুবক পরিবর্তন হবে না: const long interval = 250; // স্ক্রিন রিফ্রেশ করার জন্য ব্যবধান (মিলিসেকেন্ড) অকার্যকর সেটআপ (অকার্যকর) {Serial.begin (9600); u8g2.begin (); ads.begin (); } অকার্যকর লুপ (অকার্যকর) {int16_t adc0; // 16 বিট ADC ইনপুট A0 adc0 = ads.readADC_SingleEnded (0) পড়ছে; ভোল্টেজ = ((adc0 + calib) * 0.1875)/1000; স্বাক্ষরবিহীন দীর্ঘ কারেন্টমিলিস = মিলিস (); vbat = ভোল্টেজ/রেডজাস্ট; // ব্যাটারি সংযোগ বিচ্ছিন্ন হলে নেতিবাচক ভোল্টেজ প্রদর্শন প্রতিরোধ করুন যদি (vbat = ব্যবধান) {previousMillis = currentMillis; u8g2.clearBuffer (); // অভ্যন্তরীণ মেনরি পরিষ্কার করুন // প্যাক ভোল্টেজ ডিসপ্লে - এই পৃষ্ঠায় ফন্ট: https://github.com/olikraus/u8g2/wiki/fntlistall //u8g2.setFont(u8g2_font_fub20_tr); // 20px ফন্ট u8g2.setFont (u8g2_font_fub35_tr); // 35px ফন্ট u8g2.setCursor (1, 42); u8g2.print (vbat, 2); u8g2.setFont (u8g2_font_8x13B_mr); // 10 px ফন্ট u8g2.setCursor (1, 60); u8g2.print ("Volts"); } u8g2.sendBuffer (); // ডিসপ্লে বিলম্বের অভ্যন্তরীণ মেমরি স্থানান্তর (1); }

ধাপ 3: ধাপ 3: আসুন এটি পরীক্ষা করি

ধাপ 3: আসুন এটি পরীক্ষা করি!
ধাপ 3: আসুন এটি পরীক্ষা করি!

এই ভোল্টমিটারটি পরীক্ষা করার জন্য আমি 10x 9v ব্যাটারি ব্যবহার করেছি যা আমি একটি স্থানীয় দোকানে পেয়েছিলাম। এবার আমি 97 ভোল্ট পর্যন্ত পরিমাপ করতে পারলাম! আমি আমার বৈদ্যুতিক সাইকেলের ব্যাটারি প্যাকগুলিতে ভোল্টেজ পরিমাপ করার জন্য এই ভোল্টমিটারটি ব্যবহার করার পরিকল্পনা করছি (তাদের মাঝে মাঝে 72- এর সাথে 24-60v থেকে ভোল্টেজ রয়েছে)।

একবার ইলেকট্রনিক্স একটি পিসিবি এবং একটি ছোট বাক্সে প্যাকেজ করা হলে, এটি একটি সুন্দর এবং বহনযোগ্য ব্যাটারি প্যাক মিটার তৈরি করবে। ওএলইডি -তে গ্রাফিক্স এবং ফন্টগুলি আপনার প্রয়োজন অনুসারে কাস্টমাইজ করা যেতে পারে (যেমন, সহজে পড়ার জন্য বড় ফন্ট)। আমার লক্ষ্য ছিল আমার ডিজিটাল মাল্টি মিটার থেকে খুব বেশি দূরে ওলেড/আরডুইনো মিটারে ভোল্টেজ পড়া। আমি +/- 0, 3v সর্বোচ্চ ব-দ্বীপের লক্ষ্যে ছিলাম।

নির্দেশের শুরুতে আপনি ভিডিও থেকে দেখতে পাচ্ছেন, আমি এটি সংরক্ষণ করতে সক্ষম হয়েছিলাম! অধিকাংশ রিডিং স্পট ছিল!

আমি আশা করি আপনি এই নির্দেশযোগ্য উপভোগ করেছেন এবং আমাকে আপনার চিন্তা জানান!

প্রস্তাবিত: