সুচিপত্র:

আরডুইনো - পাইজো থ্রি বাটন পিয়ানো: 4 টি ধাপ
আরডুইনো - পাইজো থ্রি বাটন পিয়ানো: 4 টি ধাপ

ভিডিও: আরডুইনো - পাইজো থ্রি বাটন পিয়ানো: 4 টি ধাপ

ভিডিও: আরডুইনো - পাইজো থ্রি বাটন পিয়ানো: 4 টি ধাপ
ভিডিও: Arduino Programming basic (while, millis, tone, noTone & random) || আরডুইনো প্রোগ্রামিং বেসিক। 2024, নভেম্বর
Anonim
Image
Image

থ্রি-বাটন পিয়ানো হল নতুনদের জন্য একটি প্রকল্প যা Arduino ব্যবহার করে কিছু অভিজ্ঞতা আছে।

আমি প্রথমবারের মতো পাইজো বাজারের সাথে খেলার সময় এটি তৈরি করার চেষ্টায় অসাবধানতাবশত ভেসে গিয়েছিলাম। এটা খুব জোরে ছিল! বজারকে শান্ত করার জন্য বিভিন্ন পদ্ধতি বের করার চেষ্টা করে এবং টোন () এবং noTone () ফাংশন ব্যবহার করে বিভিন্ন ফ্রিকোয়েন্সি চেষ্টা করে, আমি বুঝতে পেরেছিলাম যে আমার Arduino এর অন্যান্য প্রিয় উপাদানগুলির সাথে পাইজো বুজারকে মিশ্রিত করা মজাদার হতে পারে কিট: বোতাম এবং potentiometer।

প্রয়োজনীয় উপকরণগুলির মধ্যে রয়েছে:

  • 1 আরডুইনো
  • 1 ব্রেডবোর্ড
  • 1 ইউএসবি কেবল
  • জাম্পার তার (বিভিন্ন রং)
  • 1 330 কিলো-ওহম প্রতিরোধক
  • 1 পাইজো বুজার
  • 3 পুশ বোতাম
  • 1 পটেন্টিওমিটার

ধাপ 1: পাইজো বুজার

পাইজো বুজার
পাইজো বুজার

শুরু করার জন্য, Arduino এর রুটিবোর্ডে পাইজো সেট আপ করুন। এর একপাশে (খাটো লেগ সাইড) মাটিতে দৌড়াতে হবে। অন্য দিকে (দীর্ঘ পায়ের দিক) একটি ডিজিটাল ইনপুট পিনের সাথে সংযোগ করতে হবে। আমি এটি 8 এর সাথে সংযুক্ত করা বেছে নিয়েছি।

ধাপ 2: পুশ বোতাম

পুশ বোতাম
পুশ বোতাম
পুশ বোতাম
পুশ বোতাম

পরবর্তী, এটি পুশ বোতাম সেট আপ করার সময়। পাইজোর মতো, পুশ বোতামগুলিকে মাটিতে এবং একটি ডিজিটাল ইনপুট পিনের সাথে সংযুক্ত করতে হবে।

ধাপ 3: পটেন্টিওমিটার

পোটেন্টিওমিটার
পোটেন্টিওমিটার
পোটেন্টিওমিটার
পোটেন্টিওমিটার

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

ডান পা: নেগেটিভ বার (গ্রাউন্ড)

মধ্য পা: এনালগ পিন 0

বাম পা: পজিটিভ বার

ধাপ 4: কোড

এই প্রকল্পের জন্য কোড লেখার সময়, আমি কয়েকটি নির্দিষ্ট ধরণের ফাংশনের তথ্য উল্লেখ করেছি:

স্বর ()

noTone () (আমি এটি ব্যবহার করে শেষ করিনি। আমি ফ্রিকোয়েন্সি "0" এর পরিবর্তে সেট করেছি।)

মানচিত্র ()

পাইজো বাজারের প্রথমবার ব্যবহারকারীদের জন্য আরেকটি চমৎকার রেফারেন্স এখানে পাওয়া যাবে। পাইজো বাজারের শব্দ পরিবর্তন করার ধারণাটি সহজ মনে হলেও প্রথমে এটি কিছুটা অপ্রতিরোধ্য হতে পারে!

স্বন () ফাংশন তিনটি ভাগে বিভক্ত করা যেতে পারে:

  1. পিন (যে পিনটি পাইজো বুজারের সাথে সংযুক্ত)
  2. ফ্রিকোয়েন্সি (হার্টজে শব্দের ফ্রিকোয়েন্সি)
  3. সময়কাল (মিলিসেকেন্ডে প্রদত্ত শব্দের সময়কাল)

মূলত, এটি এর মতো দেখাচ্ছে: স্বন (পিন, ফ্রিকোয়েন্সি, সময়কাল)। তৃতীয় উপাদান (সময়কাল) alচ্ছিক, যখন অন্য দুটি বাজারের কাজ করার জন্য প্রয়োজনীয়। টোন ফাংশনের "ফ্রিকোয়েন্সি" কম্পোনেন্ট হল যাকে "শব্দ" হিসাবে ভাবা যায় যা বাজারের দ্বারা উত্পাদিত হচ্ছে।

আপনি আরও লক্ষ্য করবেন যে কোডটিতে কোডের অন্য দুটি বিট রয়েছে। আরডুইনোকে বলার জন্য কিছু যদি/অন্য স্টেটমেন্ট সেট করা থাকে যদি বিভিন্ন বোতাম চাপানো হয় এবং সেই সাথে "ফ্রিকোয়েন্সি = 0" দিয়ে সেট আপ করার জন্য কোন বোতাম চাপানো হচ্ছে না। If/else স্টেটমেন্টের মধ্যে, ম্যাপ () ফাংশনগুলি ফ্রিকোয়েন্সিগুলির একটি সেটের উপর পোটেন্টিওমিটারের স্কেল ম্যাপ করতে ব্যবহৃত হয়। এগুলো পরিবর্তন করা যায়! বিভিন্ন ফ্রিকোয়েন্সি ভ্যালু নিয়ে ঘুরে দেখুন পিজো থেকে আপনি কী আলাদা শব্দ পেতে পারেন।

আমি এখানে তিন বোতামের পিয়ানো তৈরি করতে যে কোডটি ব্যবহার করেছি তা দেখুন বা নীচে দেখুন।

int piezoPin = 8; // পাইজোতে সংযুক্ত পিন সেট আপ করুন।

int sensorPin = 0; // সেন্সরের সাথে সংযুক্ত পিন সেট করুন (potentiometer)। int sensorValue = 0;

int বাটন 1 = 5; // বোতামগুলির সাথে সংযুক্ত ইনপুট পিনগুলি সেট আপ করুন।

int button2 = 4; int button3 = 3;

int ফ্রিকোয়েন্সি = 0;

const int delayTime = 500; // টোন () ফাংশনে বিলম্বের সময়ের ভেরিয়েবলের জন্য একটি ধ্রুবক সেট করুন।

অকার্যকর সেটআপ() {

pinMode (button1, INPUT_PULLUP); pinMode (button2, INPUT_PULLUP); pinMode (button3, INPUT_PULLUP); }

অকার্যকর লুপ () {

sensorValue = analogRead (sensorPin); // সেন্সর পড়ুন। // তিনটি বোতামের প্রত্যেকটির জন্য ফ্রিকোয়েন্সিগুলির একটি সেটে পোটেন্টিওমিটারের বিভিন্ন মানগুলি মানচিত্র করুন। যদি (digitalRead (button1) == LOW) {ফ্রিকোয়েন্সি = ম্যাপ (সেন্সরভ্যালু, 0, 1023, 400, 499); } অন্যথায় যদি (digitalRead (button2) == LOW) {ফ্রিকোয়েন্সি = ম্যাপ (সেন্সরভ্যালু, 0, 1023, 500, 599); } অন্যথায় যদি (digitalRead (button3) == LOW) {ফ্রিকোয়েন্সি = মানচিত্র (sensorValue, 0, 1023, 600, 699); } অন্য {ফ্রিকোয়েন্সি = 0; } স্বর (পাইজোপিন, ফ্রিকোয়েন্সি, বিলম্বের সময়); // ভেরিয়েবলের সাথে টোন () ফাংশন সেট আপ করুন। }

প্রস্তাবিত: