আরডুইনো এসপিডাব্লুএম জেনারেটর সার্কিট - কোড বিশদ এবং ডায়াগ্রাম

আরডুইনো এসপিডাব্লুএম জেনারেটর সার্কিট - কোড বিশদ এবং ডায়াগ্রাম

এই পোস্টে আমরা শিখি কিভাবে আরডুইনোর মাধ্যমে সাইন ওয়েভ পালস-প্রস্থ-মডিউলেশন বা এসপিডাব্লুএম তৈরি করা যায়, যা খাঁটি সাইন ওয়েভ ইনভার্টার সার্কিট বা অনুরূপ গ্যাজেট তৈরি করতে ব্যবহার করা যেতে পারে।



দ্য আরডুইনো কোডটি আমার দ্বারা বিকাশিত, এবং এটি আমার প্রথম আরডিনো কোড, ... এবং এটি দেখতে বেশ সুন্দর দেখাচ্ছে

এসপিডাব্লুএম কি?

আমি ইতিমধ্যে ব্যাখ্যা করেছি ওপ্যাম্পগুলি ব্যবহার করে কীভাবে এসপিডাব্লুএম তৈরি করা যায় আমার আগের একটি নিবন্ধে, আপনি কীভাবে পৃথক উপাদান ব্যবহার করে এটি তৈরি করা যেতে পারে এবং এর গুরুত্ব সম্পর্কে এটি বোঝার জন্য যেতে পারেন।





মূলত, এসপিডাব্লুএম যা সাইন ওয়েভ পালস প্রস্থের মড্যুলেশনকে বোঝায়, এটি এক ধরণের পালস মড্যুলেশন যেখানে ডালগুলি সাইনোসয়েডাল তরঙ্গরূপ অনুকরণ করার জন্য মডিউল করা হয়, যাতে মডিউলটি খাঁটি সাইন ওয়েভের বৈশিষ্ট্য অর্জন করতে সক্ষম হয়।

এসপিডাব্লুএম বাস্তবায়নের জন্য ডালগুলি প্রাথমিক সংক্ষিপ্ত প্রশস্ততাগুলির সাথে পরিমিত করা হয় যা ধীরে ধীরে চক্রের কেন্দ্রস্থলে আরও বিস্তৃত হয় এবং অবশেষে চক্রটি শেষ করার জন্য শেষে সংকীর্ণ হয়।



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

ভিডিও ডেমো

এটি একটি এসপিডাব্লুএম চক্র গঠন করে এবং অ্যাপ্লিকেশন ফ্রিকোয়েন্সি (সাধারণত 50Hz বা 60Hz) দ্বারা নির্ধারিত একটি নির্দিষ্ট হারে এটি পুনরাবৃত্তি করে। সাধারণত, এসপিডাব্লুএম বিদ্যুৎ ডিভাইসগুলির যেমন ড্রাইফ বা বিজেটিগুলি ইনভার্টার বা রূপান্তরকারীগুলিতে চালনার জন্য ব্যবহৃত হয়।

এই বিশেষ মড্যুলেশন প্যাটার্নটি নিশ্চিত করে যে সাধারণত ফ্ল্যাট স্কোয়ার ওয়েভ চক্রগুলিতে সাক্ষী হঠাৎ হাই / লো ভোল্টেজ স্পাইকের পরিবর্তে ক্রমবর্ধমান চক্রগুলি পরিবর্তিত গড় ভোল্টেজ মানকে (আরএমএস মানও বলা হয়) দিয়ে কার্যকর করা হয়।

এই ধীরে ধীরে এসপিডব্লিউএম-তে পিডাব্লুএমএম সংশোধন করা ইচ্ছাকৃতভাবে কার্যকর করা হয়েছে যাতে এটি স্ট্যান্ডার্ড সাইনওয়েভ বা সাইনোসাইডাল ওয়েভফর্মের তাত্পর্যপূর্ণভাবে উত্থিত / পতনের প্যাটার্নটি ঘনিষ্ঠভাবে প্রতিস্থাপন করে, তাই নাম সাইনওয়েভ পিডব্লিউএম বা এসপিডাব্লুএম।

আরডুইনো দিয়ে এসপিডাব্লুএম তৈরি করা

উপরোক্ত বর্ণিত এসপিডাব্লুএম সহজেই কয়েকটি বিচ্ছিন্ন অংশ ব্যবহার করে প্রয়োগ করা যেতে পারে এবং আরডুইনো ব্যবহার করা সম্ভবত এটি আপনাকে ওয়েভফর্ম পিরিয়ডগুলির সাথে আরও সঠিকতা পেতে সক্ষম করবে।

নিম্নলিখিত আরডুইনো কোড প্রদত্ত অ্যাপ্লিকেশনটির জন্য উদ্দেশ্যে করা এসপিডাব্লুএম বাস্তবায়নের জন্য ব্যবহার করা যেতে পারে।

গোশ !! এটি দুর্দান্তভাবে দুর্দান্ত দেখাচ্ছে, যদি আপনি এটি কীভাবে সংক্ষিপ্ত করতে জানেন তবে অবশ্যই আপনার শেষের দিকে এটি নির্দ্বিধায় বোধ করতে পারেন।

// By Swagatam (my first Arduino Code)
void setup(){
pinMode(8, OUTPUT)
pinMode(9, OUTPUT)
}
void loop(){
digitalWrite(8, HIGH)
delayMicroseconds(500)
digitalWrite(8, LOW)
delayMicroseconds(500)
digitalWrite(8, HIGH)
delayMicroseconds(750)
digitalWrite(8, LOW)
delayMicroseconds(500)
digitalWrite(8, HIGH)
delayMicroseconds(1250)
digitalWrite(8, LOW)
delayMicroseconds(500)
digitalWrite(8, HIGH)
delayMicroseconds(2000)
digitalWrite(8, LOW)
delayMicroseconds(500)
digitalWrite(8, HIGH)
delayMicroseconds(1250)
digitalWrite(8, LOW)
delayMicroseconds(500)
digitalWrite(8, HIGH)
delayMicroseconds(750)
digitalWrite(8, LOW)
delayMicroseconds(500)
digitalWrite(8, HIGH)
delayMicroseconds(500)
digitalWrite(8, LOW)
//......
digitalWrite(9, HIGH)
delayMicroseconds(500)
digitalWrite(9, LOW)
delayMicroseconds(500)
digitalWrite(9, HIGH)
delayMicroseconds(750)
digitalWrite(9, LOW)
delayMicroseconds(500)
digitalWrite(9, HIGH)
delayMicroseconds(1250)
digitalWrite(9, LOW)
delayMicroseconds(500)
digitalWrite(9, HIGH)
delayMicroseconds(2000)
digitalWrite(9, LOW)
delayMicroseconds(500)
digitalWrite(9, HIGH)
delayMicroseconds(1250)
digitalWrite(9, LOW)
delayMicroseconds(500)
digitalWrite(9, HIGH)
delayMicroseconds(750)
digitalWrite(9, LOW)
delayMicroseconds(500)
digitalWrite(9, HIGH)
delayMicroseconds(500)
digitalWrite(9, LOW)
}
//-------------------------------------//

পরবর্তী পোস্টে আমি কীভাবে উপরের আরডিনো ভিত্তিক এসপিডাব্লুএম জেনারেটরটি ব্যবহার করব তা ব্যাখ্যা করব একটি খাঁটি সাইনওয়েভ ইনভার্টার সার্কিট করুন .... পড়তে থাক!

উপরোক্ত এসপিডাব্লুএম কোডটির কার্যকারিতা বাড়ানোর জন্য মিঃ অ্যাটন আরও উন্নত করেছিলেন, যা নীচে দেওয়া হয়েছে:

/*
This code was based on Swagatam SPWM code with changes made to remove errors. Use this code as you would use any other Swagatam’s works.
Atton Risk 2017
*/
const int sPWMArray[] = {500,500,750,500,1250,500,2000,500,1250,500,750,500,500} // This is the array with the SPWM values change them at will
const int sPWMArrayValues = 13 // You need this since C doesn’t give you the length of an Array
// The pins
const int sPWMpin1 = 10
const int sPWMpin2 = 9
// The pin switches
bool sPWMpin1Status = true
bool sPWMpin2Status = true
void setup()
{
pinMode(sPWMpin1, OUTPUT)
pinMode(sPWMpin2, OUTPUT)
}
void loop()
{
// Loop for pin 1
for(int i(0) i != sPWMArrayValues i++)
{
if(sPWMpin1Status)
{
digitalWrite(sPWMpin1, HIGH)
delayMicroseconds(sPWMArray[i])
sPWMpin1Status = false
}
else
{
digitalWrite(sPWMpin1, LOW)
delayMicroseconds(sPWMArray[i])
sPWMpin1Status = true
}
}
// Loop for pin 2
for(int i(0) i != sPWMArrayValues i++)
{
if(sPWMpin2Status)
{
digitalWrite(sPWMpin2, HIGH)
delayMicroseconds(sPWMArray[i])
sPWMpin2Status = false
}
else
{
digitalWrite(sPWMpin2, LOW)
delayMicroseconds(sPWMArray[i])
sPWMpin2Status = true
}
}
}




পূর্ববর্তী: জোল চোর থেকে 8 এক্স অতিরিক্ততা - প্রমাণিত ডিজাইন পরবর্তী: পুরো প্রোগ্রাম কোড সহ আরডুইনো খাঁটি সাইন ওয়েভ ইনভার্টার সার্কিট