আউটপুট পিনে কীভাবে সত্য এনালগ ভোল্টেজ আউটপুট করা যায়


12

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

এখানে আমার কোড সম্পর্কিত অংশ রয়েছে:

int pwmOutput = 11;
int pwm = 0;

void compareNewOldVoltageYes(void)
{
  if(pv_Vnew > pv_Vold && pwm != 255)
  {
    ++pwm;           //increasing value
  }
  else if(pwm != 0)
  {
    --pwm;           //decreasing
  }
}

void compareNewOldVoltageNo(void)
{
  if(pv_Vnew > pv_Vold && pwm != 0)
  {
    --pwm;
  }
  else if(pwm != 255)
  {
    ++pwm;
  }
}

void loop() 
{
   reading();
   PowerCalculation();

   if(pv_NewP > pv_OldP)
   {
      compareNewOldVoltageYes();
   }
   else
   {
      compareNewOldVoltageNo();
   }

   analogWrite(pwmOutput, pwm);           //analogWrite

   float displayPWMvolt = pwm * 0.0196;

   Serial.print("Output Voltage: ");
   Serial.print(displayPWMvolt);
   Serial.println(" V");

   pv_OldP = pv_NewP;

   Serial.print("Previous Power: ");
   Serial.print(pv_OldP);
   Serial.println(" W");

}

সার্কিটরি হিসাবে, আউটপুট পিন 11 1 ওহম প্রতিরোধকের এবং তারপরে জিএনডিতে সংযুক্ত হচ্ছে। (আমি যেখানে ভোল্টেজ পরিমাপ করেছি) আমি আরডুইনো ইউনো বোর্ড ব্যবহার করছি।

আপডেট :

@ ড্যাটাএ-র মন্তব্যে যেমন বলা হয়েছে, পিডব্লিউএম ভোল্টেজ আউটপুট দেয় না। বোর্ড পরিবর্তন না করে আউটপুট ভোল্টেজের কোনও উপায় আছে কি?


পিএস এনালগ রাইটিং পিডব্লিউএম ব্যবহার করে এবং এটি এনালগ ভোল্টেজ উত্পাদন করে না।
ডেটা হা

@ ডাটহ্যা এর অর্থ কি এইভাবে করা যায় না? এনালগ ভোল্টেজ আউটপুট দেওয়ার জন্য আরও একটি কাজ আছে?
বাইটেক

@ রাসেল উত্তর দেখুন arduino.stackex بدل. com
Quetions/

@dpw আমি মনে করি না যে আমার প্রোগ্রামটিকে তার বাহ্যিক প্রোগ্রামিং পোর্টের মাধ্যমে একটি বৈদ্যুতিন লোডের সাথে সংযোগ স্থাপন করতে হবে এবং 0-5V ব্যবহার করে এটি নিয়ন্ত্রণ করতে হবে works
বাইটেক

পিডাব্লুএম একটি নির্দিষ্ট ভোল্টেজ আউটপুট দেয়, বা আমি আমাদের লর্ড 1734 সালের বছরে একটি জলদস্যু 8
user400344

উত্তর:


11

আপনার কাছে মূলত তিনটি বিকল্প রয়েছে:

  1. একটি আরডুইনো ডিউতে স্যুইচ করুন যার একটি বিল্ট-ইন ডিএসি রয়েছে যা সত্যিকারের ভোল্টেজকে আউটপুট দেয়।
  2. আপনার জন্য ভোল্টেজ তৈরি করতে একটি বাহ্যিক ডিএসি চিপ (যেমন এমসিপি 4821/2) যুক্ত করুন
  3. পিডাব্লুএম পিনে একটি লো-পাস ফিল্টার (আরসি নেটওয়ার্ক) ব্যবহার করুন।

তিনটি বিকল্পের মধ্যে আমি সাধারণত একটি এমসিপি 4822 ব্যবহার করি কারণ এটি সেরা ফলাফল দেয় এবং ডিউ ব্যবহারের চেয়ে বেশি খরচ হয় না।


ধন্যবাদ. অপশন 2 টি সত্যই ভাল লাগছে, তবে সময়ের সীমাবদ্ধতার কারণে আমি অপশন 3 নিয়ে এগিয়ে গিয়েছিলাম এবং আমার ফলাফলগুলি পেয়েছি।
বাইটেক

1
অথবা একটি "দরিদ্র লোকের ডিএসি" হিসাবে একটি আর -2 আর মই ব্যবহার করুন
আন্ড্রে হল্জনার

1
@ আন্ডারহোলজনার আমি একটি আর -2 আর মইকে ডিএসি চিপের মতোই গণনা করি তবে আপনার গড় আরডুইনোতে এটি ব্যবহারিক করার জন্য অনেক বেশি তার দিয়ে with
মাজনকো

@ মাজেঙ্কো আমি কেবল যুক্ত করতে চেয়েছিলাম যে সেখানে একটি "ডিজিটাল পোটেনিওমিটার" বা "ডিজিপট" রয়েছে যা ডিআইপি -8 চিপের ভিতরে বেশিরভাগ আর -2 আর মই রয়েছে। তারা DACs পরে সস্তা হয়। (উদাহরণস্বরূপ X9C103)
ফিলিপ ফ্রানিক

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

7

5 ভি-তে, 1 ওহম প্রতিরোধক 1 এ ডুবে যাওয়ার চেষ্টা করবে এবং 40 এমএ স্পেস ছাড়িয়ে যাবে। আপনার পিনটি সুরক্ষিত করতে দয়া করে কমপক্ষে একটি 5 / 0.040 = 125 ওহম প্রতিরোধক ব্যবহার করুন। এবং যদি আপনি আপনার প্রতিরোধকের এবং স্থলটির মধ্যে ক্যাপাসিটারটি রাখেন তবে ক্যাপাসিটরের আরসি সার্কিট পিডব্লিউএমকে একটি এনালগ ভোল্টেজকে মসৃণ করবে।

দয়া করে প্রস্তাবিত @ রাসেল উত্তরটি 47 কে রেজিস্টর এবং 1 ইউএফ ক্যাপাসিটার দিয়ে চেষ্টা করুন , আপনি আপনার বৈদ্যুতিন লোডের সাথে ব্যবহারের জন্য জংশনে একটি এনালগ ভোল্টেজ পাবেন।


2

আমি যতদূর জানি আরডুইনোগুলির এডিসি (অ্যানালগ থেকে ডিজিটাল রূপান্তরকারী) রয়েছে তবে কোনও ডিএসি (ডিজিটাল থেকে অ্যানালগ রূপান্তরকারী) নেই। সুতরাং আপনি ডিজিটাল মানের উপর ভিত্তি করে কোনও পিন থেকে একটি সেট ভোল্টেজ আউটপুট দিতে পারবেন না।


2
এআরএম ভিত্তিক আরডুইনোদের সাধারণত কমপক্ষে একটি ড্যাক চ্যানেল থাকে।
KIIV

0

না .. আরডুইনো থেকে এনালগ ভোল্টেজ পাওয়ার কোনও উপায় নেই। আপনি যেটা করতে পারেন তা হ'ল আর্দুইনাকে লিনিয়ারে বাক ভোল্টেজ রূপান্তরকারী হিসাবে ব্যবহার করা বা ভোল্টেজ নিয়ামক, সূচক এবং মোসফেট ট্রানজিস্টর ব্যবহার করে বুস্ট মোড। আপনাকে এমন কোনও মেগা বা ডুলর্ম ব্যবহার করতে হবে যা একটি পিডব্লিউএম ফ্রিকোয়েন্সি সরবরাহ করে যা স্ট্যান্ডার্ড 50o হার্জ হিসাবে অন্য।

শুভকামনা


0

সরাসরি কোনও রাস্তা নেই।

@ মাজেঙ্কো ছাড়াও

বিকল্প উপায়: আপনি ক্রমাগত স্তর সরবরাহ করতে L293d এর মতো এইচ ব্রিজ ব্যবহার করতে পারেন। অনেকগুলি ডাই ইনভার্টার সার্কিট এই কৌশলটি ব্যবহার করছে।

http://www.instructables.com/id/How-to-Make-an-Inverter-Using-ARDUINO/?ALLSTEPS

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.