সুচিপত্র:

Arduino টাইমার: 8 প্রকল্প: 10 ধাপ (ছবি সহ)
Arduino টাইমার: 8 প্রকল্প: 10 ধাপ (ছবি সহ)

ভিডিও: Arduino টাইমার: 8 প্রকল্প: 10 ধাপ (ছবি সহ)

ভিডিও: Arduino টাইমার: 8 প্রকল্প: 10 ধাপ (ছবি সহ)
ভিডিও: Software Build of LoRa Transmitter, BME280 Sensor based on Arduino ESP32 (EP09) 2024, নভেম্বর
Anonim
Arduino টাইমার: 8 প্রকল্প
Arduino টাইমার: 8 প্রকল্প

Arduino Uno বা Nano তিনটি বিল্ট-ইন টাইমার ব্যবহার করে ছয়টি ডেডিকেটেড পিনে সঠিক ডিজিটাল সিগন্যাল তৈরি করতে পারে। তাদের সেট আপ করার জন্য শুধুমাত্র কয়েকটি কমান্ডের প্রয়োজন হয় এবং চালানোর জন্য কোন CPU চক্র ব্যবহার করা হয় না!

আপনি ATMEGA328 পূর্ণ ডেটশীট থেকে শুরু করলে টাইমার ব্যবহার করা ভয়ঙ্কর হতে পারে, যার 90 টি পৃষ্ঠা তাদের বিবরণে নিবেদিত! বেশ কয়েকটি অন্তর্নির্মিত আরডুইনো কমান্ড ইতিমধ্যে টাইমার ব্যবহার করে, উদাহরণস্বরূপ মিলিস (), বিলম্ব (), স্বন (), অ্যানালগ রাইট () এবং সার্ভো লাইব্রেরি। কিন্তু তাদের সম্পূর্ণ ক্ষমতা ব্যবহার করার জন্য, আপনাকে সেগুলি রেজিস্টারের মাধ্যমে সেট আপ করতে হবে। আমি এখানে কিছু ম্যাক্রো এবং ফাংশন শেয়ার করেছি যাতে এটি সহজ এবং আরও স্বচ্ছ হয়।

টাইমারগুলির খুব সংক্ষিপ্ত ওভারভিউয়ের পরে, 8 টি দুর্দান্ত প্রকল্পগুলি অনুসরণ করুন যা টাইমারগুলির সাথে সংকেত প্রজন্মের উপর নির্ভর করে।

ধাপ 1: প্রয়োজনীয় উপাদান

প্রয়োজনীয় উপাদান
প্রয়োজনীয় উপাদান

সমস্ত 8 টি প্রকল্প তৈরি করতে আপনার প্রয়োজন হবে:

  • একটি Arduino Uno বা সামঞ্জস্যপূর্ণ
  • মিনি প্রোটোবোর্ড সহ একটি প্রোটোটাইপ shাল
  • 6 রুটিবোর্ড জাম্পার তারগুলি
  • 6 টি ছোট ব্রেডবোর্ড জাম্পার (10cm সলিড কোর হুকআপ ওয়্যার থেকে নিজেকে তৈরি করুন)
  • 2 টি কুমির সীসা
  • 1 সাদা 5mm LED
  • একটি 220 ওহম প্রতিরোধক
  • একটি 10kOhm প্রতিরোধক
  • একটি 10kOhm potentiometer
  • 2 সিরামিক 1muF ক্যাপাসিটার
  • 1 ইলেক্ট্রোলাইটিক 10muF ক্যাপাসিটর
  • 2 ডায়োড, 1n4148 বা অনুরূপ
  • 2 মাইক্রো সার্ভো মোটর SG90
  • 1 8 ওহম স্পিকার
  • 20m পাতলা (0.13 মিমি) enameled তারের

ধাপ 2: সিগন্যাল জেনারেশনের জন্য আরডুইনো টাইমারগুলির ওভারভিউ

টাইমার 0 এবং টাইমার 2 হল 8-বিট টাইমার, যার অর্থ হল তারা সর্বাধিক 0 থেকে 255 পর্যন্ত গণনা করতে পারে। টাইমার 1 একটি 16-বিট টাইমার, তাই এটি 65535 পর্যন্ত গণনা করতে পারে। প্রতিটি টাইমারের দুটি সংশ্লিষ্ট আউটপুট পিন রয়েছে: টাইমার 0, 9 এবং 10 টাইমারের জন্য 1, 11 এবং 3 টাইমার 2 এর জন্য। টাইমার প্রতিটি Arduino ঘড়ি চক্র বৃদ্ধি পায়, অথবা একটি হারে যা একটি prescale ফ্যাক্টর দ্বারা হ্রাস করা হয়, যা হয় 8, 64, 256 বা 1024 (32 এবং 128 এছাড়াও টাইমার 2 এর জন্য অনুমোদিত)। টাইমার 0 থেকে 'TOP' এবং তারপর আবার (দ্রুত PWM) বা নিম্নমুখী (ফেজ সঠিক PWM) থেকে গণনা করে। এইভাবে 'TOP' এর মান ফ্রিকোয়েন্সি নির্ধারণ করে। আউটপুট পিন আউটপুট তুলনা রেজিস্টারের মান সেট, রিসেট বা ফ্লিপ করতে পারে, তাই তারা শুল্ক চক্র নির্ধারণ করে। শুধুমাত্র টাইমার 1 এর উভয় আউটপুট পিনের জন্য স্বাধীনভাবে ফ্রিকোয়েন্সি এবং ডিউটি চক্র সেট করার ক্ষমতা রয়েছে।

ধাপ 3: LED ঝলকানি

Image
Image
LED ঝলকানি
LED ঝলকানি
LED ঝলকানি
LED ঝলকানি

8-বিট টাইমারের সাহায্যে সর্বনিম্ন ফ্রিকোয়েন্সি 16MHz/(511*1024) = 30, 6Hz। সুতরাং 1Hz দিয়ে একটি LED ঝলকানি তৈরি করার জন্য, আমাদের টাইমার 1 প্রয়োজন, যা 256 গুণ ছোট, 0.12 Hz ফ্রিকোয়েন্সিগুলিতে পৌঁছতে পারে।

একটি LED কে তার anode (লম্বা লেগ) দিয়ে pin9 এর সাথে সংযুক্ত করুন এবং তার ক্যাথোডটিকে 220 Ohm রোধকের সাথে মাটিতে সংযুক্ত করুন। কোড আপলোড করুন। LED 50%ডিউটি চক্রের সাথে ঠিক 1Hz এ জ্বলজ্বল করবে। লুপ () ফাংশন খালি: টাইমারটি সেটআপ () এ আরম্ভ করা হয় এবং এর জন্য আর মনোযোগের প্রয়োজন নেই।

ধাপ 4: LED ডিমার

Image
Image
LED ডিমার
LED ডিমার
LED ডিমার
LED ডিমার

পালস-প্রস্থ মডুলেশন একটি LED এর তীব্রতা নিয়ন্ত্রণের একটি কার্যকর উপায়। একজন সঠিক চালকের সাথে, ইলেক্ট্রোমোটারের গতি নিয়ন্ত্রণের জন্য এটি একটি পছন্দের পদ্ধতি। যেহেতু সিগন্যালটি 100% চালু বা 100% বন্ধ, তাই সিরিজ প্রতিরোধে কোন শক্তি নষ্ট হয় না। মূলত, এটি চোখের চেয়ে দ্রুত LED ঝলকানোর মতো। 50Hz নীতিগতভাবে যথেষ্ট, কিন্তু এটি এখনও কিছুটা ঝলকানি মনে হতে পারে এবং যখন LED বা চোখ সরানো হয়, তখন একটি বিরক্তিকর অ-ক্রমাগত 'লেজ' হতে পারে। 8-বিট টাইমার সহ 64 এর একটি প্রিস্কেল ব্যবহার করে, আমরা 16MHz/(64*256) = 977Hz পাই, যা উদ্দেশ্য অনুসারে। আমরা টাইমার 2 বাছাই করি, যাতে টাইমার 1 অন্যান্য ফাংশনের জন্য উপলব্ধ থাকে এবং আমরা আরডুইনো টাইম () ফাংশনে হস্তক্ষেপ করি না, যা টাইমার 0 ব্যবহার করে।

এই উদাহরণে দায়িত্ব চক্র, এবং এইভাবে তীব্রতা, একটি potentiometer দ্বারা নিয়ন্ত্রিত হয়। একটি দ্বিতীয় LED পিন 3 এ একই টাইমার দিয়ে স্বাধীনভাবে নিয়ন্ত্রিত হতে পারে।

ধাপ 5: ডিজিটাল-টু-এনালগ কনভার্টার (DAC)

Image
Image
ডিজিটাল টু অ্যানালগ কনভার্টার (DAC)
ডিজিটাল টু অ্যানালগ কনভার্টার (DAC)
ডিজিটাল টু অ্যানালগ কনভার্টার (DAC)
ডিজিটাল টু অ্যানালগ কনভার্টার (DAC)

আরডুইনোতে সত্যিকারের এনালগ আউটপুট নেই। কিছু মডিউল একটি প্যারামিটার (ডিসপ্লে কনট্রাস্ট, ডিটেকশন থ্রেশহোল্ড ইত্যাদি) নিয়ন্ত্রণ করতে একটি এনালগ ভোল্টেজ নেয়। মাত্র একটি ক্যাপাসিটর এবং রোধের সাহায্যে, টাইমার 1 ব্যবহার করে 5mV বা তার চেয়ে ভালো রেজোলিউশনের এনালগ ভোল্টেজ তৈরি করা যায়।

একটি কম পাস ফিল্টার একটি এনালগ ভোল্টেজের জন্য PWM সংকেতকে 'গড়' করতে পারে। একটি ক্যাপাসিটর একটি প্রতিরোধকের মাধ্যমে একটি PWM পিনের সাথে সংযুক্ত থাকে। বৈশিষ্ট্যগুলি PWM ফ্রিকোয়েন্সি এবং প্রতিরোধক এবং ক্যাপাসিটরের মান দ্বারা নির্ধারিত হয়। 8-বিট টাইমারের রেজোলিউশন 5V/256 = 20mV হবে, তাই আমরা 10-বিট রেজোলিউশন পেতে টাইমার 1 বেছে নিই। আরসি সার্কিট হল ফার্স্ট-অর্ডার লো-পাস ফিল্টার এবং এতে কিছু তরঙ্গ থাকবে। আরসি সার্কিটের টাইম-স্কেল তরঙ্গ কমাতে PWM সিগন্যালের সময়ের চেয়ে অনেক বড় হওয়া উচিত। 10-বিট নির্ভুলতার জন্য আমরা যে সময়টি পাই তা হল 1024/16MHz = 64mus। যদি আমরা 1muF ক্যাপাসিটর এবং 10kOhm প্রতিরোধক ব্যবহার করি, RC = 10ms। পিক-টু-পিক তরঙ্গ সর্বাধিক 5V*0.5*T/(RC) = 16mV, যা এখানে যথেষ্ট বলে বিবেচিত হয়।

লক্ষ্য করুন যে এই DAC এর একটি খুব উচ্চ আউটপুট প্রতিবন্ধকতা (10kOhm) আছে, তাই ভোল্টেজটি উল্লেখযোগ্যভাবে হ্রাস পাবে যদি এটি কারেন্ট টানে। এটি এড়ানোর জন্য, এটি একটি opamp দিয়ে বাফার করা যেতে পারে, অথবা R এবং C এর অন্য সংমিশ্রণ নির্বাচন করা যেতে পারে, উদাহরণস্বরূপ 10muF সহ 1kOhm।

উদাহরণস্বরূপ, DAC আউটপুট একটি potentiometer দিয়ে চালিত হয়। পিন 10 এ টাইমার 1 দিয়ে দ্বিতীয় স্বাধীন DAC চ্যানেল চালানো যেতে পারে।

ধাপ 6: মেট্রোনোম

Image
Image
মেট্রোনোম
মেট্রোনোম
মেট্রোনোম
মেট্রোনোম

একটি মেট্রোনোম সঙ্গীত বাজানোর সময় তালের ট্র্যাক রাখতে সাহায্য করে। খুব সংক্ষিপ্ত ডালের জন্য, আরডুইনো টাইমার আউটপুট সরাসরি একটি স্পিকারে খাওয়ানো যেতে পারে, যা স্পষ্টভাবে শ্রবণযোগ্য ক্লিক তৈরি করবে। একটি পোটেন্টিওমিটারের সাহায্যে, বিট ফ্রিকোয়েন্সি 39 ধাপে 40 থেকে 208 বিট প্রতি মিনিটে নিয়ন্ত্রিত হতে পারে। প্রয়োজনীয় নির্ভুলতার জন্য টাইমার 1 প্রয়োজন। ফ্রিকোয়েন্সি নির্ধারণকারী 'TOP' এর মান লুপ () ফাংশনের ভিতরে পরিবর্তিত হয় এবং এর জন্য মনোযোগ প্রয়োজন! আপনি এখানে দেখেন যে WGM মোড স্থির ফ্রিকোয়েন্সির অন্যান্য উদাহরণের থেকে আলাদা: এই মোড, OCR1A রেজিস্টার দ্বারা TOP এর সাথে সেট করা আছে, এতে দ্বিগুণ বাফারিং রয়েছে এবং TOP অনুপস্থিত এবং দীর্ঘ সমস্যা থেকে রক্ষা করে। যাইহোক, এর মানে হল আমরা শুধুমাত্র 1 টি আউটপুট পিন ব্যবহার করতে পারি।

ধাপ 7: সাউন্ড স্পেকট্রাম

Image
Image
শব্দ বর্ণালী
শব্দ বর্ণালী
শব্দ বর্ণালী
শব্দ বর্ণালী

মানুষ 20Hz থেকে 20kHz পর্যন্ত সাউন্ড ফ্রিকোয়েন্সিগুলির মাত্রার 3 টিরও বেশি আদেশ শুনতে পারে এই উদাহরণটি একটি পোটেন্টিওমিটার দিয়ে পূর্ণ বর্ণালী তৈরি করে। ডিসি কারেন্ট ব্লক করার জন্য স্পিকার এবং আরডুইনো এর মধ্যে একটি 10muF ক্যাপাসিটর রাখা হয়। টাইমার 1 একটি বর্গাকার তরঙ্গ উৎপন্ন করে। এখানে ওয়েভফর্ম জেনারেশন মোড হল ফেজ-সঠিক PWM। সেই মোডে, কাউন্টারটি যখন শীর্ষে পৌঁছায় তখন পিছনে গণনা শুরু করে, যার ফলস্বরূপ ডালগুলি তাদের গড় স্থির হয়, এমনকি যখন ডিউটি চক্র পরিবর্তিত হয়। যাইহোক, এটি এমন একটি সময়কালেরও ফলাফল দেয় যা (প্রায়) দ্বিগুণ, এবং এটি কেবলমাত্র প্রিস্কেল 8 এর সাথে, টাইমার 1 সম্পূর্ণ শ্রাব্য বর্ণালীকে কভার করে, প্রিস্কেল পরিবর্তন করার প্রয়োজন ছাড়াই। এছাড়াও এখানে, যেহেতু TOP- এর মানটি চলতে চলতে পরিবর্তন করা হচ্ছে, OCR1A ব্যবহার করে শীর্ষটি সমস্যা হ্রাস করে।

ধাপ 8: Servo মোটর

Image
Image
সার্ভো মোটরস
সার্ভো মোটরস
সার্ভো মোটরস
সার্ভো মোটরস

শক্তিশালী সার্ভো লাইব্রেরি আছে, কিন্তু যদি আপনার ড্রাইভ করার জন্য মাত্র দুটি সার্ভস থাকে, তাহলে আপনি এটি সরাসরি টাইমার 1 দিয়ে করতে পারেন, এবং এইভাবে CPU, মেমরির ব্যবহার কমিয়ে আনতে পারেন এবং বাধা এড়াতে পারেন। জনপ্রিয় SG90 servo একটি 50Hz সংকেত নেয়, এবং পালস দৈর্ঘ্য অবস্থান কোড করে। টাইমার 1 এর জন্য আদর্শ। ফ্রিকোয়েন্সি স্থির করা হয়েছে, তাই পিন 9 এবং পিন 10 এর উভয় আউটপুট সার্ভিসগুলি স্বাধীনভাবে চালানোর জন্য ব্যবহার করা যেতে পারে।

ধাপ 9: ভোল্টেজ ডাবলার এবং ইনভার্টার

ভোল্টেজ ডাবলার এবং ইনভার্টার
ভোল্টেজ ডাবলার এবং ইনভার্টার
ভোল্টেজ ডাবলার এবং ইনভার্টার
ভোল্টেজ ডাবলার এবং ইনভার্টার
ভোল্টেজ ডাবলার এবং ইনভার্টার
ভোল্টেজ ডাবলার এবং ইনভার্টার

কখনও কখনও আপনার প্রকল্পের জন্য 5V বা negativeণাত্মক ভোল্টেজের চেয়ে বেশি ভোল্টেজের প্রয়োজন হয়। এটি একটি MOSFET চালানো, একটি পাইজো উপাদান চালানো, একটি opamp শক্তি, বা একটি EEPROM রিসেট হতে পারে। যদি বর্তমান ড্র যথেষ্ট ছোট হয়, ~ 5mA পর্যন্ত, একটি চার্জ পাম্প সবচেয়ে সহজ সমাধান হতে পারে: একটি টাইমার থেকে একটি স্পন্দিত সংকেতের সাথে সংযুক্ত মাত্র 2 ডায়োড এবং দুটি ক্যাপাসিটারগুলি arduino 5V থেকে 10V দ্বিগুণ করার অনুমতি দেয়। অনুশীলনে, 2 টি ডায়োড ড্রপ রয়েছে, তাই এটি ডাবলারের জন্য 8.6V বা ইনভার্টারের জন্য -3.6V এর মতো হবে।

স্কোয়ার ওয়েভের ফ্রিকোয়েন্সি ডায়োডের মাধ্যমে পর্যাপ্ত চার্জ পাম্প করার জন্য যথেষ্ট হওয়া উচিত। একটি 1muF ক্যাপাসিটর 5muC পরিবর্তন করে যখন ভোল্টেজ 0 এবং 5V এর মধ্যে পরিবর্তিত হয়, তাই 10mA কারেন্টের জন্য ফ্রিকোয়েন্সি কমপক্ষে 2kHz হতে হবে। অনুশীলনে, একটি উচ্চতর ফ্রিকোয়েন্সি ভাল, কারণ এটি তরঙ্গ হ্রাস করে। টাইমার 2 0 থেকে 255 গণনা ছাড়াই গণনা করে, ফ্রিকোয়েন্সি 62.5kHz, যা ভাল কাজ করে।

ধাপ 10: ওয়্যারলেস পাওয়ার ট্রান্সফার

Image
Image
ওয়্যারলেস পাওয়ার ট্রান্সফার
ওয়্যারলেস পাওয়ার ট্রান্সফার
ওয়্যারলেস পাওয়ার ট্রান্সফার
ওয়্যারলেস পাওয়ার ট্রান্সফার

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

প্রথমে কয়েল প্রস্তুত করুন। আমি 2 কুণ্ডলী তৈরির জন্য 8.5 সেমি ব্যাসের একটি কাগজ রোল এবং 0.13 মিমি ব্যাসের এনামেল্ড তার ব্যবহার করেছি: 20 টি পালক সহ প্রাথমিক, 50 টি পালা সহ মাধ্যমিক। N windings এবং R ব্যাসার্ধ R সহ এই ধরনের কুণ্ডলীর স্ব-প্রবর্তন হল ~ 5muH * N^2 * R. সুতরাং N = 20 এবং R = 0.0425 এর জন্য L = 85muH দেয়, যা কম্পোনেন্ট টেস্টারের মাধ্যমে নিশ্চিত করা হয়েছিল। আমরা 516kHz ফ্রিকোয়েন্সি সহ একটি সংকেত তৈরি করি, যার ফলে 2pi*f*L = 275Ohm এর প্রতিবন্ধকতা দেখা দেয়। এটি যথেষ্ট উচ্চ যে Arduino overcurrent মধ্যে যেতে না।

সবচেয়ে কার্যকরভাবে কুণ্ডলী চালানোর জন্য, আমরা একটি সত্য এসি উৎস ব্যবহার করতে চাই। একটি কৌশল আছে যা করা যেতে পারে: টাইমারের দুটি আউটপুট বিপরীত পর্যায়ে চালানো যেতে পারে, একটি আউটপুট উল্টে দিয়ে। এটি একটি সাইন ওয়েভের সাথে আরও সাদৃশ্যপূর্ণ করার জন্য, আমরা ফেজ-সঠিক PWM ব্যবহার করি। এইভাবে, পিন 9 এবং 10 এর মধ্যে, ভোল্টেজ উভয় 0V, পিন 9 +5V, উভয় 0V, পিন 10 +5V এর মধ্যে বিকল্প। প্রভাবটি স্কোপ ট্রেস থেকে ছবিতে দেখানো হয়েছে (1024 প্রিস্কেল সহ, এই খেলনার সুযোগে খুব বেশি ব্যান্ডউইথ নেই)।

9 এবং 10 পিন করার জন্য প্রাথমিক কুণ্ডলী সংযুক্ত করুন। যখন সেকেন্ডারি কুণ্ডলী প্রাথমিকের কাছাকাছি আনা হয়, তখন LED উজ্জ্বলভাবে জ্বলে ওঠে।

প্রস্তাবিত: