সুচিপত্র:

একটি রোটারি এনকোডার ব্যবহার করে নকিয়া 5110 এলসিডিতে আরডুইনো মেনু: 6 টি ধাপ (ছবি সহ)
একটি রোটারি এনকোডার ব্যবহার করে নকিয়া 5110 এলসিডিতে আরডুইনো মেনু: 6 টি ধাপ (ছবি সহ)

ভিডিও: একটি রোটারি এনকোডার ব্যবহার করে নকিয়া 5110 এলসিডিতে আরডুইনো মেনু: 6 টি ধাপ (ছবি সহ)

ভিডিও: একটি রোটারি এনকোডার ব্যবহার করে নকিয়া 5110 এলসিডিতে আরডুইনো মেনু: 6 টি ধাপ (ছবি সহ)
ভিডিও: 1. what is Encoder & How many types of Encoder? এনকোডার কি, কতো প্রকার ও কি কি? এবং এদের কাজ কি কি? 2024, নভেম্বর
Anonim
Image
Image
একটি রোটারি এনকোডার ব্যবহার করে নকিয়া 5110 এলসিডিতে আরডুইনো মেনু
একটি রোটারি এনকোডার ব্যবহার করে নকিয়া 5110 এলসিডিতে আরডুইনো মেনু

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

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

আসুন এখন দেখি কিভাবে এই প্রকল্পটি তৈরি করা যায়।

ধাপ 1: সমস্ত যন্ত্রাংশ পান

সব যন্ত্রাংশ পান
সব যন্ত্রাংশ পান

এই প্রকল্পটি নির্মাণের জন্য প্রয়োজনীয় অংশগুলি নিম্নরূপ:

  • একটি Arduino Uno ▶
  • একটি নোকিয়া 5110 এলসিডি ডিসপ্লে ▶
  • একটি রোটারি এনকোডার ▶
  • একটি ছোট ব্রেডবোর্ড -
  • কিছু তার ▶
  • পাওয়ার ব্যাংক ▶

প্রকল্পের খরচ খুবই কম, এটি $ 10 এরও কম। নীচের ভিডিওর বিবরণে আমি যে সমস্ত অংশ ব্যবহার করি তার জন্য আপনি লিঙ্কগুলি খুঁজে পেতে পারেন।

ধাপ 2: নোকিয়া 5110 এলসিডি ডিসপ্লে

Image
Image
প্রকল্প নির্মাণ
প্রকল্প নির্মাণ

নকিয়া 5110 আমার আরডুইনো প্রজেক্টের জন্য আমার প্রিয় ডিসপ্লে।

নোকিয়া 5110 একটি মৌলিক গ্রাফিক এলসিডি স্ক্রিন যা মূলত একটি সেল ফোন স্ক্রিন হিসাবে তৈরি করা হয়েছিল। এটি PCD8544 কন্ট্রোলার ব্যবহার করে যা একটি লো পাওয়ার CMOS LCD কন্ট্রোলার/ড্রাইভার। এই কারণে এই ডিসপ্লেতে একটি চিত্তাকর্ষক শক্তি খরচ রয়েছে। এটি শুধুমাত্র 0.4mA ব্যবহার করে যখন এটি চালু থাকে কিন্তু ব্যাকলাইট নিষ্ক্রিয় থাকে। স্লিপ মোডে থাকা অবস্থায় এটি 0.06mA এর কম ব্যবহার করে! এটি একটি অন্যতম কারণ যা এই প্রদর্শনটিকে আমার প্রিয় করে তোলে। PCD8544 একটি সিরিয়াল বাস ইন্টারফেসের মাধ্যমে মাইক্রোকন্ট্রোলারকে ইন্টারফেস করে। এটি আরডুইনো দিয়ে ডিসপ্লে ব্যবহার করা খুব সহজ করে তোলে। আপনাকে কেবল 8 টি তারের সংযোগ করতে হবে।

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

আপনি এটি এখানে পেতে পারেন: ▶

ধাপ 3: রোটারি এনকোডার

Image
Image

একটি ঘূর্ণমান এনকোডার, যাকে শাফ্ট এনকোডারও বলা হয়, একটি ইলেক্ট্রো-মেকানিক্যাল ডিভাইস যা একটি খাদ বা অক্ষের কৌণিক অবস্থান বা গতিকে এনালগ বা ডিজিটাল কোডে রূপান্তর করে। রোটারি এনকোডারগুলি অনেক অ্যাপ্লিকেশনে ব্যবহার করা হয় যার জন্য সুনির্দিষ্ট শ্যাফ্টের সীমাহীন ঘূর্ণন প্রয়োজন-যার মধ্যে রয়েছে শিল্প নিয়ন্ত্রণ, রোবটিক্স, বিশেষ উদ্দেশ্য ফটোগ্রাফিক লেন্স, কম্পিউটার ইনপুট ডিভাইস (যেমন অপটোমেকানিক্যাল ইঁদুর এবং ট্র্যাকবল), নিয়ন্ত্রিত স্ট্রেস রিওমিটার এবং ঘোরানো রাডার প্ল্যাটফর্ম।

এই প্রজেক্টে আমরা যে রোটারি এনকোডার ব্যবহার করতে যাচ্ছি তা খুবই সস্তা এনকোডার। এটিতে একটি বোতাম রয়েছে এবং এটি কাজ করার জন্য আমাদের কেবল 5 টি তারের সংযোগ করতে হবে। আমি একটি ঘূর্ণমান এনকোডার কিভাবে ব্যবহার করতে হয় তার বিস্তারিত টিউটোরিয়াল প্রস্তুত করেছি। আপনি এখানে সংযুক্ত ভিডিওটি খুঁজে পেতে পারেন।

এই রোটারি এনকোডারের খরচ খুবই কম। এর দাম প্রায় ১.৫ ডলার।

আপনি এটি এখানে পেতে পারেন ▶

ধাপ 4: প্রকল্প নির্মাণ

Image
Image
প্রকল্প নির্মাণ
প্রকল্প নির্মাণ
প্রকল্প নির্মাণ
প্রকল্প নির্মাণ

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

আমি ডিসপ্লেটি একটি ছোট ব্রেডবোর্ডে রেখেছি। আসুন প্রথমে ডিসপ্লেটি সংযুক্ত করি। ডিসপ্লের প্রথম পিন যা রিসেট করা হয় তা Arduino Uno- এর ডিজিটাল পিন 3, দ্বিতীয় পিনটি ডিজিটাল পিন 4, তৃতীয় পিনটি ডিজিটাল পিন 5, চতুর্থ পিন ডিজিটাল পিন 11 এবং পঞ্চম পিন ডিজিটাল পিন 13. পরবর্তী পিন হল Vcc। আমরা Vcc কে ব্রেডবোর্ডের পজিটিভ রেলের সাথে এবং ব্রেডবোর্ড পজিটিভ রেলকে Arduino এর 3.3V আউটপুটের সাথে সংযুক্ত করি। ডিসপ্লের জন্য পরবর্তী পিন হল ব্যাকলাইট। যেহেতু আমরা সফটওয়্যারের মাধ্যমে এটি নিয়ন্ত্রণ করতে চাই আমরা এটিকে ডিজিটাল পিন 7 এর সাথে সংযুক্ত করি। শেষ পিনটি GND। আমরা GND কে ব্রেডবোর্ডের নেগেটিভ রেলের সাথে এবং ব্রেডবোর্ডের নেগেটিভ রেলকে Arduino GND এর সাথে সংযুক্ত করি।

এখন আমাদের যা করতে হবে তা হল রোটারি এনকোডার সংযুক্ত করা। প্রথম পিনটি হল GND এবং আমরা এটিকে ব্রেডবোর্ডের নেগেটিভ রেলের সাথে সংযুক্ত করি। পরবর্তী পিন হল Vcc এবং আমরা এটিকে ব্রেডবোর্ডের পজিটিভ রেলের সাথে সংযুক্ত করি। পরের পিনটি SW এবং আমরা এটিকে এনালগ পিন 2 এর সাথে সংযুক্ত করি। পরবর্তী পিনের নাম DT এবং আমরা এটিকে এনালগ পিনের সাথে সংযুক্ত করি। পরিশেষে পিন CLK এনালগ পিন 0. এর সাথে সংযুক্ত থাকে। আপনি এই প্রকল্পের পরিকল্পিত চিত্র দেখতে পারেন নীচের ভিডিওটির বর্ণনা।

এখন আমরা প্রকল্পটি শক্তিশালী করতে প্রস্তুত। আপনি দেখতে পাচ্ছেন, প্রকল্পটি সূক্ষ্মভাবে কাজ করছে, এবং মেনু প্রত্যাশা অনুযায়ী কাজ করছে! অসাধারণ, আসুন এখন প্রকল্পের সফটওয়্যার দেখি।

ধাপ 5: প্রকল্পের কোড

প্রকল্পের কোড
প্রকল্পের কোড

এই প্রকল্পে আমরা 4 টি লাইব্রেরি ব্যবহার করি। আমরা প্রদর্শনের জন্য দুটি লাইব্রেরি ব্যবহার করি, এবং দুটি ঘূর্ণমান এনকোডারের জন্য।

  1. Adafruit GFX:
  2. নোকিয়া 5110:
  3. এনকোডার লাইব্রেরি:
  4. টাইমার ওয়ান লাইব্রেরি:

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

int menuitem = 1; int ফ্রেম = 1; int পৃষ্ঠা = 1; int lastMenuItem = 1;

এছাড়াও 3 টি অত্যন্ত গুরুত্বপূর্ণ গ্লোবাল ভেরিয়েবল, ভেরিয়েবল পেজ, ভেরিয়েবল মেনুটেম এবং ভেরিয়েবল ফ্রেম। ভেরিয়েবল পেজ মনে রাখে কোন UI স্ক্রিন স্ক্রিনে প্রদর্শিত হয়। সুতরাং, যদি পৃষ্ঠা ভেরিয়েবল 1 হয়, আমরা মূল UI স্ক্রিনে থাকি, এবং যদি ভেরিয়েবল 2 হয় আমরা সেকেন্ডারি UI স্ক্রিনে থাকি যেখানে আমরা একটি ভেরিয়েবলের মান নির্ধারণ করি। মেনু আইটেম নির্বাচিত মেনু আইটেম মনে রাখে। সুতরাং, যদি এর মান 1 হয়, প্রথম মেনু আইটেম নির্বাচন করা হয়, তাই drawMenu ফাংশনটি অবশ্যই সাদা অক্ষর দিয়ে এই মেনু আইটেমটিকে কালো হিসাবে আঁকতে হবে। মেনু আইটেম 2 হলে দ্বিতীয় মেনু আইটেম নির্বাচন করা হয় এবং তাই। ফ্রেম ভেরিয়েবল, মেনুর কোন অংশটি স্ক্রিনে প্রদর্শিত হয় তা মনে রাখে। যেহেতু আমরা যে মেনু তৈরি করেছি তাতে items টি আইটেম রয়েছে এবং আমরা তাদের মধ্যে একটি সময়ে মাত্র display টি প্রদর্শন করতে পারি, তাই আমাদের জানতে হবে কোন কোন আইটেম স্ক্রিনে প্রদর্শিত হয়। ফ্রেম ভেরিয়েবল, আমাদের ঠিক এইটা বলে। যদি ফ্রেম ভেরিয়েবলের মান 1 হয়, আমরা প্রথম তিনটি মেনু আইটেম প্রদর্শন করি, যদি এটি 2 হয়, আমরা 2, 3, 4 ইত্যাদি প্রদর্শন করি।

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

স্ট্রিং menuItem1 = "কনট্রাস্ট"; স্ট্রিং menuItem2 = "ভলিউম"; স্ট্রিং মেনু আইটেম 3 = "ভাষা"; স্ট্রিং menuItem4 = "অসুবিধা"; স্ট্রিং মেনু আইটেম 5 = "লাইট: অন"; স্ট্রিং menuItem6 = "রিসেট";

বুলিয়ান ব্যাকলাইট = সত্য;

int বিপরীত = 60; int ভলিউম = 50;

স্ট্রিং ভাষা [3] = {"EN", "ES", "EL"};

int selectedLanguage = 0;

স্ট্রিং অসুবিধা [2] = {"EASY", "HARD"};

int নির্বাচিত অসুবিধা = 0;

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

এই মেনুর পিছনে মূল ধারণা। আমরা সমস্ত মেনু আইটেম এবং পৃষ্ঠাগুলির জন্য একই পদ্ধতি অনুসরণ করি। কোডটি জটিল, এটি 400 লাইনেরও বেশি। এটি জটিল বলে মনে হচ্ছে তবে আপনি যদি এটি নিজে চেষ্টা করেন তবে আপনি এটি আরও সহজে বুঝতে পারবেন এবং আপনি এটি পরিবর্তন করতে, এটি প্রসারিত করতে এবং আপনার নিজের প্রকল্পগুলিতে এটি ব্যবহার করতে সক্ষম হবেন। বরাবরের মতো আপনি এখানে সংযুক্ত কোডটি খুঁজে পেতে পারেন।

ধাপ 6: প্রকল্পটি পরীক্ষা করা

প্রকল্পটি পরীক্ষা করা হচ্ছে
প্রকল্পটি পরীক্ষা করা হচ্ছে

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

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

প্রস্তাবিত: