সুচিপত্র:

I2C ব্যাকপ্যাক সহ 1602 LCD কীপ্যাড শিল্ড মডিউল: 6 টি ধাপ
I2C ব্যাকপ্যাক সহ 1602 LCD কীপ্যাড শিল্ড মডিউল: 6 টি ধাপ

ভিডিও: I2C ব্যাকপ্যাক সহ 1602 LCD কীপ্যাড শিল্ড মডিউল: 6 টি ধাপ

ভিডিও: I2C ব্যাকপ্যাক সহ 1602 LCD কীপ্যাড শিল্ড মডিউল: 6 টি ধাপ
ভিডিও: LED backpack—show your popularity, my brand, my backpack 2024, জুলাই
Anonim
I2C ব্যাকপ্যাক সহ 1602 LCD কীপ্যাড শিল্ড মডিউল
I2C ব্যাকপ্যাক সহ 1602 LCD কীপ্যাড শিল্ড মডিউল

একটি বৃহত্তর প্রকল্পের অংশ হিসাবে, আমি কিছু সাধারণ মেনু নেভিগেশনের জন্য একটি LCD ডিসপ্লে এবং একটি কীপ্যাড রাখতে চেয়েছিলাম। আমি অন্যান্য কাজের জন্য Arduino এ অনেক I/O পোর্ট ব্যবহার করব, তাই আমি LCD এর জন্য একটি I2C ইন্টারফেস চেয়েছিলাম। তাই আমি DFRobot থেকে 1602 LCD কীপ্যাড শিল্ড মডিউল এবং LCD গুলির জন্য একটি বেনামী I2C সিরিয়াল মডিউল নিয়ে কিছু হার্ডওয়্যার কিনেছি। আমি একটি Arduino ন্যানো সঙ্গে এই ব্যবহার করতে চান। তারপর আমি দেখেছি এই উপাদানগুলিকে একসাথে কাজ করার জন্য কিছু চ্যালেঞ্জ আছে - কিন্তু এটি সম্ভব। তাই আমি আমার অভিজ্ঞতা শেয়ার করতে চাই এবং হয়তো অন্যদের সাহায্য করতে চাই।

এই ছবিটি কাজের ব্রেডবোর্ডের, যা এলসিডিতে বার্তা প্রদর্শন করতে পারে এবং কী প্রেসগুলি সনাক্ত করতে পারে। LCD I2C ইন্টারফেসের মাধ্যমে নিয়ন্ত্রিত হয়, যার মধ্যে LCD ব্যাকলাইটও রয়েছে। পিন A0 তে Arduino দ্বারা কী প্রেসগুলি পাওয়া যায় (এটি A4 এবং A5 বাদে যেকোনো এনালগ পিন হতে পারে যা I2C ইন্টারফেসের জন্য আবদ্ধ থাকে)।

ধাপ 1: যন্ত্রাংশ বর্ণনা - LCD কীপ্যাড শিল্ড মডিউল

যন্ত্রাংশের বিবরণ - এলসিডি কীপ্যাড শিল্ড মডিউল
যন্ত্রাংশের বিবরণ - এলসিডি কীপ্যাড শিল্ড মডিউল

এলসিডি কীপ্যাড শিল্ড মডিউলটিতে একটি সাধারণভাবে ব্যবহৃত 1602 এলসিডি থাকে যা একটি সার্কিট বোর্ডের উপরে মাউন্ট করা থাকে যা চাবি ধারণ করে এবং যা এলসিডি সংযোগের একটি উপসেট নেয় এবং সেগুলিকে সার্কিট বোর্ডের নিচের দিকে হেডার পিনগুলিতে উপলব্ধ করে। আমি বুঝতে পারি যে এই বোর্ডটি একটি Arduino Uno বা অনুরূপের উপরে মাউন্ট করা এবং এটি সেই পরিবেশে কাজ করার জন্য সঠিক পিন লেআউট প্রদান করে। আমি ইবেতে এই মডিউলটি চীনের একজন বিক্রেতার কাছ থেকে কিনেছি। বোর্ডের নিচের (কীপ্যাড) পাশে হেডার পিনগুলি বেশিরভাগ লেবেলযুক্ত কিন্তু উপরের দিকের পিনগুলি, যা এলসিডি ইন্টারফেস, লেবেলযুক্ত নয়। তবে LCD- এর পিনগুলি নিজেই লেবেলযুক্ত।

ধাপ 2: যন্ত্রাংশ বর্ণনা - I2C সিরিয়াল মডিউল

যন্ত্রাংশ বর্ণনা - I2C সিরিয়াল মডিউল
যন্ত্রাংশ বর্ণনা - I2C সিরিয়াল মডিউল

সিরিয়াল মডিউলে I2C এর জন্য স্বাভাবিক 4-পিন হেডার আছে এবং লেবেলবিহীন হেডার পিনের একটি সেট যা আমি বুঝি LCD মডিউলের নীচে সরাসরি প্লাগ করার উদ্দেশ্যে। এলসিডিতে লেবেলগুলি অধ্যয়ন করে, আমি সিরিয়াল মডিউলে পিনের কাজগুলি সনাক্ত করতে সক্ষম হয়েছিলাম।

এই মডিউলটি IC PCF8574T এর উপর ভিত্তি করে তৈরি করা হয়েছে যা I2C প্রোটোকলকে শেষ করে, ঠিকানা নিয়ন্ত্রণের জন্য 3 টি পিন (20 থেকে 27) এবং 8 টি ডিজিটাল ইনপুট/আউটপুট পিন P0 থেকে P7 রয়েছে। PCF8574T এর ডেটা শীট অনুসারে, প্রতিটি I/O পিনের একটি FET থাকে যাতে এটি LOW রাজ্যের জন্য মাটিতে টানতে পারে এবং কমপক্ষে 20ma ডুবে যেতে পারে। উচ্চ রাজ্যে, এটি একটি ক্ষণস্থায়ী সক্রিয় পুল-আপ এবং তারপর প্রায় 0.1 এমএ একটি চলমান পুল-আপ বর্তমান আছে

এই মডিউলে, P3 ব্যতীত সমস্ত ডিজিটাল I/O পিনগুলি কেবল শিরোনাম পিনগুলিতে (ছবির ডানদিকে) নিয়ে আসা হয়। P3 এর ক্ষেত্রে, এটি একটি ট্রানজিস্টরের গোড়ার সাথে সংযুক্ত থাকে ("LED" লেবেলের ঠিক উপরের ডানদিকে ছবিতে দৃশ্যমান)। সেই ট্রানজিস্টরের নির্গতকারীটি Vss (স্থল) এর সাথে সংযুক্ত এবং সংগ্রাহক হেডার পিন 16 এর সাথে সংযুক্ত, যেখানে এটি LCD ব্যাকলাইট নিয়ন্ত্রণ করতে ব্যবহার করা যেতে পারে। ট্রানজিস্টরের কারণে, লজিক স্টেটটি সফ্টওয়্যার লাইব্রেরিতে অনুমিত হওয়ার বিপরীতে বিপরীত হয়। অর্থাৎ, P3 পিন কম হলে LCD ব্যাকলাইট চালু থাকে এবং P3 পিন বেশি হলে বন্ধ থাকে।

ট্রানজিস্টারের লেবেলটি L6 বলে যা আমার গবেষণা অনুসারে সম্ভবত এটি একটি MMBC1623L6 তৈরি করে যার সর্বনিম্ন বর্তমান লাভ 200। 0.1 এমএ বেস কারেন্টের সাথে, এটি তার সংগ্রাহক (মডিউল পিন 16) এ একটি নিম্ন অবস্থা বজায় রাখতে সক্ষম হওয়া উচিত। কমপক্ষে 20mA কালেক্টর কারেন্ট সহ।

উপরন্তু এই মডিউলটিতে 10K পটেনশিয়োমিটার +5 এবং গ্রাউন্ডের মধ্যে সংযুক্ত রয়েছে, যার ভেরিয়েবল সীসা পিন 3 (ছবির নীচে থেকে তৃতীয়) এ নিয়ে আসা হয়েছে। LCD এর সাথে সরাসরি সংযুক্ত হলে, এই পাত্রটি LCD এর বৈসাদৃশ্য নিয়ন্ত্রণ করবে। যাইহোক, যে ফাংশনটি LCD ieldাল একটি পৃথক অনুরূপ পাত্র দ্বারা প্রদান করা হয়, তাই সিরিয়াল মডিউল এই পাত্র কোন ফাংশন আছে

আমি PCF8574T এর INT পিনের সাথে কোন সংযোগ খুঁজে পাইনি।

আপডেট 22 আগস্ট 2019

উপরে উল্লিখিত হিসাবে, PCF8574 এর 3 ঠিকানা নিয়ন্ত্রণ পিন রয়েছে। এগুলি ব্যাকপ্যাক বোর্ডে প্যাডগুলিতে আনা হবে বলে মনে হয় যেখানে তাদের A0, A1 এবং A2 লেবেলযুক্ত। তাদের ছবিতে দেখা যাবে। আমি এটি পরীক্ষা করিনি, কিন্তু এটা প্রায় নিশ্চিত মনে হচ্ছে যে এই পিনের একটি বা একাধিক সংলগ্ন প্যাডে ব্রিজ করে, I2C ঠিকানা 20 থেকে 27 পর্যন্ত পরিসরে নিয়ন্ত্রণ করা যায়। PCF8574A যার PCF8574 এর সাথে অভিন্ন কার্যকারিতা রয়েছে কিন্তু 0x38 থেকে 0x3F পর্যন্ত ঠিকানা পরিসীমা জুড়ে।

আপনার ডিভাইসটি আসলে যে ঠিকানাটি ব্যবহার করে তা একটি I2CScanner দিয়ে চেক করা যায়। বিভিন্ন উৎস থেকে পাওয়া সহজ কয়েকটি I2C স্ক্যানার রয়েছে। Https://github.com/farmerkeith/I2CScanner এ এটি পাওয়া কিছু ডিভাইস সনাক্ত করে।

ধাপ 3: সংযোগ

সংযোগ
সংযোগ

চৈতন্য এম 17 কে ধন্যবাদ যিনি ফ্রিজিং ডায়াগ্রাম প্রদান করেছেন যা সংযোগ বর্ণনা করে, নিচে বর্ণিত হয়েছে।

শক্তি:

এলসিডি মডিউলে "5.0V" লেবেলযুক্ত নীচের দিকে একটি পিন রয়েছে। ডানদিকে, এর সংলগ্ন দুটি লেবেলবিহীন পিন যা উভয়ই স্থল।

বাম হাতের প্রান্তে I2C ইন্টারফেস সহ সিরিয়াল মডিউল ধরে রাখা, নীচের প্রান্তে 16 টি পিন রয়েছে। এর মধ্যে প্রথমটি স্থল, এবং এর মধ্যে দ্বিতীয়টি হল +5v। আরেকটি বিকল্প হল পাওয়ারের জন্য I2C ইন্টারফেসে নিচের দুটি পিন ব্যবহার করা, কিন্তু উপরে বর্ণিত পিনগুলি ব্যবহার করা আমার কাছে আরও সুবিধাজনক মনে হয়েছে।

I2C ইন্টারফেস। সিরিয়াল মডিউলে, উপরের পিনটি এসসিএল (ঘড়ি) এবং এটি আরডুইনো এ 5 তে যায়। দ্বিতীয় পিন ডাউন SDA (ডেটা) এবং এটি Arduino A4 এ যায়।

এলসিডি প্রিন্ট ইন্টারফেস। সিরিয়াল মডিউল এবং এলসিডি কীপ্যাড ieldালের মধ্যে connections টি সংযোগ রয়েছে, সবগুলোই কোন লেবেলবিহীন পিনের মধ্যে। আমি এলসিডি মডিউলে ডান থেকে বামে গণনা করে তাদের চিহ্নিত করব, প্রথম পিনটি 1 হিসাবে। এখানে 8 টির 2 টি ব্লক আছে, তাই তারা 1 থেকে 16 পর্যন্ত যায়। ঠিক আছে, এর মধ্যে 16 টিও রয়েছে। উপরন্তু আমি প্রতিটি তারের একটি লেবেল দেই, যা সিরিয়াল মডিউল ছাড়া সরাসরি সংযোগের ক্ষেত্রে Arduino এর সমতুল্য পিন যা সাধারণত সেই ফাংশনের সাথে যুক্ত থাকে।

সুতরাং 6 টি ডেটা সংযোগ হল:

আরডুইনো সমতুল্য // সিরিয়াল মডিউল পিন // এলসিডি কীপ্যাড মডিউল পিন

D4 // 11 // 5 D5 // 12 // 6 D6 // 13 // 7 D7 // 14 // 8 D8 // 4 // 9D9 // 6 // 10

এলসিডি ব্যাকলাইট নিয়ন্ত্রণ: এটি আরও একটি সংযোগ ব্যবহার করে:

আরডুইনো সমতুল্য // সিরিয়াল মডিউল পিন // এলসিডি কীপ্যাড মডিউল পিন

D10 // 16 // 11

কীপ্যাড ইন্টারফেস: এটি "A0" লেবেলযুক্ত নিচের দিকে LCD মডিউল পিন থেকে একটি একক তার ব্যবহার করে, Arduino এ A0 পিন করতে। অন্তত এটা বেশ সহজ ছিল!

ধাপ 4: আরএসটি কী ব্যবহারযোগ্য করে তোলা অন্যান্য 5 কীগুলির মতো

আরএসটি সরাসরি আরডুইনো ন্যানোর রিস্টার্ট ইনপুটের সাথে সংযুক্ত হতে পারে।

যাইহোক আপনি যদি RST কীটি সফটওয়্যারে অন্যান্য জিনিসের জন্য ব্যবহারযোগ্য হতে চান, তাহলে LCD কীপ্যাড ieldালের নিচের দিকে RST পিন এবং A0 পিনের মধ্যে 15K রেসিস্টর সংযুক্ত করে এটি করা যেতে পারে।

এটি নিম্নরূপ কাজ করে: +5V এবং ডান কী এর মধ্যে একটি 2K প্রতিরোধক রয়েছে। তারপরে প্রতিটি কীগুলির জন্য ক্রমবর্ধমান বড় প্রতিরোধকগুলির একটি শৃঙ্খলা (ইউপি কীতে 330 আর, ডাউন কীতে 620 আর, বাম কীতে 1 কে এবং সিলেক্ট কীতে 3 কে 3) সমস্ত কী (আরএসটি কী সহ) সংযুক্ত হয় 10 বিট A/D কনভার্টারের সাথে সংযুক্ত হলে (Arduino Nano A0 এর জন্য) তারা প্রায় নিম্নলিখিত মান প্রদান করে:

ডান = 0; উপরে = 100; নিচে = 260; বাম = 410; নির্বাচন করুন = 640

আরএসটি -তে 15 কে প্রতিরোধকের সাথে, এটি প্রায় 850 বিতরণ করে।

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

ধাপ 5: সফটওয়্যার

দরকারী সফটওয়্যার অবশ্যই পাঠকের জন্য একটি ব্যায়াম। যাইহোক আপনাকে শুরু করতে, আপনি আমার পরীক্ষা সফ্টওয়্যারটি দেখতে পারেন। আমি NewLiquidCrystal লাইব্রেরি ব্যবহার করেছি, যার মধ্যে I2C ইন্টারফেসের জন্য সমর্থন রয়েছে। এটা সব ঠিক কাজ, একবার আমি লাইব্রেরি সঠিকভাবে ইনস্টল করা আছে।

মূল পয়েন্টটি ছিল ব্যাকলাইট অফ এবং অন কমান্ডের মেরুতা বিপরীত করা (I2C মডিউলে ট্রানজিস্টরের কারণে পার্টস বর্ণনা বিভাগে ব্যাখ্যা করা হয়েছে)।

আপডেট 22 আগস্ট 2019

আপনার যদি LCD ডিসপ্লে কাজ না করতে সমস্যা হয়, তাহলে দয়া করে একটি I2C স্ক্যানার ব্যবহার করে আপনার সিরিয়াল ব্যাকপ্যাকের I2C ঠিকানাটি পরীক্ষা করুন। একটি উপযুক্ত স্ক্যানার সংযুক্ত করা হয়েছে। তারপর প্রয়োজন হলে বিবৃতিতে প্রথম প্যারামিটার সমন্বয় করুন

LiquidCrystal_I2C lcd (0x27, 2, 1, 0, 4, 5, 6, 7);

ধাপ 6: পর্যালোচনা এবং আলোচনা

আপনি দেখতে পারেন আমি প্রধান ফাংশন কাজ পেয়েছিলাম।

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

অসুবিধা হল এই এলসিডি কীপ্যাড মডিউলটি একটি বাক্সে ইনস্টল করার জন্য সেট আপ করা হয়নি। যে কোন ধরণের বাক্স। 6 টি কী এর বোতামগুলি LCD স্ক্রিনের স্তরের নীচে, যাতে মডিউলটি যদি একটি বাক্সে (যেমন idাকনাতে) মাউন্ট করা হয় LCD সার্কিট বোর্ডের উপরের অংশটি theাকনার নীচের অংশে ফ্লাশ করে, উপরের দিকে চাবিগুলি 7াকনার শীর্ষে প্রায় 7 মিমি নীচে।

সম্ভাব্য সমাধানগুলি হল:

ক) এটি সহ্য করুন। Lাকনাতে অ্যাক্সেস গর্তগুলি ড্রিল করুন এবং বোতামগুলি টিপতে একটি সরঞ্জাম (যেমন উপযুক্ত ব্যাসের একটি নিচু বুনন সূঁচ) ব্যবহার করুন।

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

গ) বিদ্যমান বোতামগুলি সরান এবং তাদের লম্বা বোতাম দিয়ে প্রতিস্থাপন করুন। নতুন বোতামগুলি প্রায় 13 মিমি উঁচু হতে হবে যাতে তারা প্রকল্প বাক্সের idাকনা দিয়ে চালানো যায়)। প্রতিস্থাপন বোতাম সুইচ 13mm সহ উচ্চতার একটি পরিসরে সহজেই পাওয়া যায়।

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

আমি সমাধান c) উপরে যাওয়ার পরিকল্পনা করছি, এবং আমি কিভাবে যাব তা দেখুন।

তথ্যের আরেকটি স্নিপেট যা আগ্রহী হতে পারে:

ব্যাকলাইট চালু থাকাকালীন, এই প্রকল্পের বর্তমান খরচ হল: Arduino Nano 21.5 ma; সিরিয়াল মডিউল 3.6 ma; এলসিডি মডিউল 27.5 এমএ; মোট 52 mA

ব্যাকলাইট অফের সাথে, এই প্রকল্পের বর্তমান খরচ হল: Arduino Nano 21.5 ma; সিরিয়াল মডিউল 4.6 ma; এলসিডি মডিউল 9.8 এমএ; মোট 36 mA

প্রস্তাবিত: