সুচিপত্র:

3-ওয়্যার HD44780 এলসিডি 1 ডলারেরও কম জন্য: 5 টি ধাপ
3-ওয়্যার HD44780 এলসিডি 1 ডলারেরও কম জন্য: 5 টি ধাপ

ভিডিও: 3-ওয়্যার HD44780 এলসিডি 1 ডলারেরও কম জন্য: 5 টি ধাপ

ভিডিও: 3-ওয়্যার HD44780 এলসিডি 1 ডলারেরও কম জন্য: 5 টি ধাপ
ভিডিও: #5 I2C লিকুইড ক্রিস্টাল ডিসপ্লে || ESP8266 FLPROG মই যুক্তি 2024, জুলাই
Anonim
1 ডলারেরও কম মূল্যে 3-ওয়্যার HD44780 LCD
1 ডলারেরও কম মূল্যে 3-ওয়্যার HD44780 LCD

এই নির্দেশে আমরা শিখব কিভাবে আমরা HD44780 চিপসেটের উপর ভিত্তি করে একটি এলসিডি SPI বাসে লাগাতে পারি এবং $ 3 এরও কম মূল্যে কেবল 3 টি তার দিয়ে এটি চালাতে পারি। যদিও আমি এই টিউটোরিয়ালে HD44780 আলফানিউমেরিক ডিসপ্লেতে মনোনিবেশ করব, একই নীতিটি অন্য যে কোন LCD এর জন্য একই রকম কাজ করবে যা একটি 8 বিট প্যারালাল ডাটা বাস ব্যবহার করে এবং এটি 16 বিট ডেটা বাসের ডিসপ্লে অনুসারে খুব সহজেই অভিযোজিত হতে পারে । HD44780 (এবং সামঞ্জস্যপূর্ণ) ভিত্তিক আলফানিউমেরিক ডিসপ্লেগুলি সাধারণত 16x2 (16 টি অক্ষরের সমন্বয়ে 2 টি লাইন) এবং 20x4 কনফিগারেশনে পাওয়া যায়, তবে আরও অনেক রূপে পাওয়া যাবে। সবচেয়ে 'জটিল' ডিসপ্লে হবে 40x4 ডিসপ্লে, এই ধরণের ডিসপ্লে বিশেষ কারণ এতে 2 HD44780 কন্ট্রোলার রয়েছে, একটি উপরের দুই সারির জন্য এবং একটি নিচের দুই সারির জন্য। কিছু গ্রাফিক এলসিডির পাশাপাশি দুটি নিয়ামক থাকে। এইচডি 44780 এলসিডিগুলি দুর্দান্ত, এগুলি খুব সস্তা, পাঠযোগ্য এবং এর সাথে কাজ করা বেশ সহজ। কিন্তু তাদের কিছু অসুবিধাও রয়েছে, এই ডিসপ্লেগুলি Arduino এর সাথে সংযুক্ত হওয়ার সময় প্রচুর I/O পিন নেয়। সাধারণ প্রকল্পগুলিতে এটি উদ্বেগের বিষয় নয়, কিন্তু যখন প্রকল্পগুলি বড় হয়ে যায়, অনেকগুলি IO সহ, বা যেখানে নির্দিষ্ট পিনের প্রয়োজন হয় যেমন এনালগ রিড বা PWM- এর জন্য, এই LCD গুলির জন্য ন্যূনতম 6 পিনের প্রয়োজন হতে পারে সমস্যা কিন্তু আমরা একটি সস্তা এবং আকর্ষণীয় উপায়ে এই সমস্যার সমাধান করতে পারি।

ধাপ 1: উপাদানগুলি পাওয়া

আমি এই প্রকল্পে ব্যবহৃত বেশিরভাগ উপাদানগুলির জন্য আমি TaydaElectronics ব্যবহার করেছি। আপনি এই অংশগুলি ইবেতেও পেতে পারেন, কিন্তু ব্যবহারের সুবিধার জন্য, আমি আপনাকে Tayda এর সাথে লিঙ্ক করব। এটির প্রয়োজন নেই, আমি এটিকে স্থায়ীভাবে ব্যাকলাইট নিষ্ক্রিয় করার উপায় হিসাবে ব্যবহার করেছি ।3 - সিরামিক ক্যাপাসিটর - ক্যাপ্যাসিট্যান্স 0.1µF; ভোল্টেজ 50V1 - ইলেক্ট্রোলাইটিক ক্যাপাসিটর - ক্যাপ্যাসিট্যান্স 10µF; ভোল্টেজ 35V1 - সিরামিক ক্যাপাসিটর - ক্যাপ্যাসিট্যান্স 220pF; ভোল্টেজ 50V1 - NPN -Transistor - part # PN2222A* 1 - 1k Ω Resistor1 - Trimmer Potentiometer - maximum resist 5kΩ1 - 470 Ω Resistor* একটি NPN ট্রানজিস্টরের সাথে সফটওয়্যারের মাধ্যমে চালু না হওয়া পর্যন্ত ব্যাকলাইট বন্ধ থাকবে। আপনি যদি ডিফল্টভাবে ব্যাকলাইট চালু করতে চান, তাহলে একটি PNP টাইপ ট্রানজিস্টার ব্যবহার করুন। প্রদত্ত লাইব্রেরির কোডে পরিবর্তন আনতে হবে, যদিও। এই তালিকার জন্য উপ মোট $ 0.744। পিন শিরোলেখেরও প্রয়োজন নেই, তাই আপনি সেখানে 15 সেকেন্ড সংরক্ষণ করতে পারেন এবং উপ -মোট হবে $ 0.6।

ধাপ 2: আপনার হার্ডওয়্যার #1 জানুন

আপনার হার্ডওয়্যার #1 জানুন
আপনার হার্ডওয়্যার #1 জানুন

এখানে একটি HD44780 LCD এর বাইরে একটি স্ট্যান্ডার্ড পিন রয়েছে, এটি কিছু গ্রাফিক LCD গুলির সাথেও খুব মিল। HD44780 দুটি মোডে কাজ করতে পারে: 1. 4-বিট মোড, যেখানে LCD- এ পাঠানো প্রতিটি বাইটের মধ্যে 2 4-বিট অংশ থাকে। 2. 8-বিট মোড, যার উপর আমরা ফোকাস করব। এলসিডিতে মোট 16 টি পিন, 3 টি কন্ট্রোল পিন এবং 8 টি ডেটা পিন রয়েছে: আরএস - নিয়ন্ত্রণ করে যে আমরা এলসিডিতে কমান্ড বা ডেটা পাঠাতে চাই কিনা। যেখানে 'উচ্চ' মানে ডেটা (একটি অক্ষর) এবং 'নিম্ন' মানে একটি কমান্ড বাইট। R/W - HD44780 নিয়ামক আপনাকে তার RAM থেকে পড়তে দেয়। যখন এই পিনটি 'উচ্চ' হয় তখন আমরা এর ডেটা পিন থেকে ডেটা পড়তে পারি। যখন এটি 'কম' হয় তখন আমরা LCD তে ডেটা লিখতে পারি। যদিও এলসিডি থেকে পড়ার বিকল্প কিছু ক্ষেত্রে উপকারী হতে পারে, আমরা এই টিউটোরিয়ালে এটির উপরে যাব না, এবং আমরা কেবল এই পিনটি গ্রাউন্ড করব যাতে এটি সর্বদা লেখার মোডে থাকে। E - E হল 'সক্ষম' পিন, এই পিনটি 'উচ্চ' তারপর 'নিম্ন' টগল করে তার RAM- এ ডেটা লিখতে এবং শেষ পর্যন্ত স্ক্রিনে প্রদর্শন করতে হয়। 4 -বিট মোডে আমরা শুধুমাত্র 4 টি উচ্চ বিট DB4 -DB7 ব্যবহার করি, এবং 8 বিট মোডে তাদের সবই ব্যবহার করা হয়। VSS - এটি গ্রাউন্ড পিন।, আমরা সহজেই এটিকে Arduino এর + 5v পিন থেকে বিদ্যুৎ সরবরাহ করতে পারি। ব্যাকলাইটের জন্য শক্তির উৎস। কিছু এলসিডি ব্যাকলাইটের সাথে আসে না, এবং শুধুমাত্র 14 টি পিন থাকে। বেশিরভাগ ক্ষেত্রে এই পিনটির জন্য +5v সংযোগেরও প্রয়োজন হয়। -এই ক্ষেত্রে, আপনাকে যা করতে হবে তা হল LED+ এবং গ্রাউন্ড LED- তে প্রয়োগ করা। কিন্তু যদি আপনার এলসিডি ব্যাকলাইটের জন্য একটি অন্তর্নির্মিত প্রতিরোধক না থাকে তবে এটি গুরুত্বপূর্ণ যে আপনি একটি যোগ করুন, অন্যথায় ব্যাকলাইট প্রচুর শক্তি গ্রাস করবে এবং এটি শেষ পর্যন্ত পুড়ে যাবে। বেশিরভাগ ক্ষেত্রে এই এলসিডি যেভাবে আরডুইনোতে যুক্ত করা হয় তা হল এটি 4-বিট মোডে ব্যবহার করে এবং আর/ডাব্লু পিন গ্রাউন্ড করে। এইভাবে আমরা RS, E এবং DB4-DB7 পিন ব্যবহার করি। 4-বিট মোডে চলার আরেকটি ছোট অসুবিধা রয়েছে যে এটি 8-বিট কনফিগারেশনে স্ক্রিনে ডেটা লিখতে দ্বিগুণ সময় নেয়। এলসিডির 37 মাইক্রোসেকেন্ডের 'সেটেলিং' সময় আছে, এর মানে হল আপনি এলসিডিতে পরবর্তী কমান্ড বা ডেটা-বাইট পাঠানোর আগে 37 মাইক্রোসেকেন্ড অপেক্ষা করতে হবে। যেহেতু 4-বিট মোডে আমাদের প্রতিটি বাইটের জন্য দুবার ডেটা পাঠাতে হয়, একক বাইট লিখতে মোট সময় লাগে 74 মাইক্রোসেকেন্ড। এটি এখনও যথেষ্ট দ্রুত, কিন্তু আমি চেয়েছিলাম আমার নকশাটি সর্বোত্তম সম্ভাব্য ফলাফল দেবে। ব্যবহৃত পিনের সংখ্যা নিয়ে আমাদের সমস্যার সমাধান একটি সিরিয়াল টু প্যারালাল কনভার্টারে নিহিত আছে …

ধাপ 3: আপনার হার্ডওয়্যার #2 জানুন

আপনার হার্ডওয়্যার #2 জানুন
আপনার হার্ডওয়্যার #2 জানুন

আমরা যা করব তা হল একটি অ্যাডাপ্টার তৈরি করা যা Arduino থেকে বেরিয়ে আসা একটি সিরিয়াল ধরনের যোগাযোগ গ্রহণ করে এবং তথ্যগুলিকে একটি সমান্তরাল আউটপুটে রূপান্তরিত করে যা আমাদের LCD কে খাওয়ানো যায়। 74HC595 চিপ আসে। শিফট রেজিস্টার চালানোর জন্য এটি খুবই সস্তা এবং সহজ। সংক্ষেপে এটি যা করে তা হল একটি ঘড়ি এবং ডেটা সংকেত যা এটি 8 টি শেষ বিটগুলির সাথে একটি অভ্যন্তরীণ 8 বিট বাফার পূরণ করতে ব্যবহার করে যা 'ক্লক ইন' ছিল। একবার 'ল্যাচ' (ST_CP) পিন 'উচ্চ' আনা হলে এটি এই বিটগুলিকে তার 8 টি আউটপুটে নিয়ে যায়। 595 এর একটি খুব সুন্দর বৈশিষ্ট্য রয়েছে, এটি একটি সিরিয়াল ডেটা আউট পিন (Q7 ') আছে, এই পিনটি ডেইজি চেইন 2 বা তার বেশি 595 এর একসঙ্গে সিরিয়াল টু প্যারালাল অ্যাডাপ্টার তৈরি করতে ব্যবহার করা যেতে পারে যা 16 বা তার বেশি বিট চওড়া। এই প্রকল্পের জন্য আমাদের এই 2 টি চিপের প্রয়োজন হবে। 4-বিট মোডে একক 595 এর সাথে কাজ করার জন্য পরিকল্পিত পরিবর্তন করা যেতে পারে, কিন্তু এটি এই টিউটোরিয়াল দ্বারা আচ্ছাদিত হবে না।

ধাপ 4: এটা সব আপ তারের

ওয়্যারিং ইট অল আপ
ওয়্যারিং ইট অল আপ

এখন যেহেতু আমরা জানি যে আমাদের হার্ডওয়্যার কিভাবে কাজ করে আমরা এটিকে পুরোপুরি সংযুক্ত করতে পারি। পরিকল্পিতভাবে আমরা দেখি 2 595 চিপ ডেইজি একসঙ্গে বেঁধে 16 বিট সমান্তরাল আউটপুট গঠন করে। নিচের চিপটি আসলে প্রধান, এবং উপরেরটি ডেইজিতে শিকলযুক্ত। আমরা এখানে যা দেখছি তা হল নিচের 595 এলসিডির ডেটা পিনগুলিকে 8-বিট কনফিগারেশনে চালাচ্ছে, উপরের চিপটি একটি ট্রানজিস্টর চালু বা বন্ধ করে আরএস সিগন্যাল এবং ব্যাকলাইট নিয়ন্ত্রণ করে। আপনার হার্ডওয়্যার #1 পৃষ্ঠায় এলসিডি ব্যাকলাইট সম্পর্কে *নোটটি মনে রাখবেন, যদি আপনার এলসিডির ব্যাকলাইট প্রতিরোধক না থাকে তবে আপনার সার্কিটে একটি যুক্ত করতে ভুলবেন না। আমার ক্ষেত্রে LCD গুলি আমি ইতিমধ্যেই অন্তর্নির্মিত একটি প্রতিরোধক নিয়ে এসেছি, তাই আমি এই পদক্ষেপটি বাদ দিয়েছি। বৈসাদৃশ্যটি 5K ওহম পটের মাধ্যমে প্রয়োগ করা হয়, একটি পিন GND- এ যায় এবং দ্বিতীয়টি VCC- তে যায় এবং LCD- তে Vo পিন -এ ওয়াইপার যায়। এলসিডি এবং 595 এর ভিসিসি লাইনে ব্যবহৃত ক্যাপাসিটারগুলি ক্যাপাসিটারগুলিকে ডিকপল করছে, তারা হস্তক্ষেপ থেকে মুক্তি পাওয়ার জন্য সেখানে রয়েছে। আপনি যদি ব্রেডবোর্ডে কাজ করেন তবে সেগুলি আবশ্যক নয়, তবে আপনি যদি এই সার্কিটের নিজস্ব সংস্করণটি "ল্যাব অবস্থার" বাইরে ব্যবহার করার জন্য ব্যবহার করেন তবে এটি ব্যবহার করা উচিত। R5 এবং C9 সেই নির্দিষ্ট ক্রমে একটি RC বিলম্ব তৈরি করে, যা নিশ্চিত করে যে 595 এর আউটপুটগুলিতে ডেটা স্থিতিশীল হওয়ার সময় আছে LCD- এ সক্ষম পিনটি 'হাই' সেট করা এবং ডেটা পড়ার আগে। নীচের 595 এর Q7 'উপরের 595 এর সিরিয়াল ডেটা ইনপুটে যায়, এটি 595 এর একটি ডেইজি চেইন তৈরি করে এবং এইভাবে একটি 16 বিট ইন্টারফেস তৈরি করে। Arduino পর্যন্ত ওয়্যারিং সহজ। আমরা একটি 3-তারের কনফিগারেশন ব্যবহার করি, Arduino এর SPI পিন ব্যবহার করে। এটি খুব দ্রুত ডেটা স্থানান্তরের অনুমতি দেয়, এলসিডিতে 2 বাইট পাঠানো সাধারণত 8 মাইক্রোসেকেন্ড লাগে। এটি খুব দ্রুত, এবং এটি আসলে LCD- র ডেটা প্রসেস করতে যতটা সময় নেয় তার চেয়ে অনেক দ্রুত, এইভাবে প্রতিটি লেখার মধ্যে 30 মাইক্রোসেকেন্ডের বিলম্ব প্রয়োজন। SPI ব্যবহার করার একটি খুব বড় সুবিধা হল পিন D11 এবং D13 অন্যান্য SPI ডিভাইসের সাথে ভাগ করা হয়। এর মানে হল যে আপনার যদি ইতিমধ্যেই অন্য একটি উপাদান থাকে যা SPI ব্যবহার করে, যেমন একটি অ্যাকসিলরোমিটার, এই সমাধানটি কেবল সক্রিয় সিগন্যালের জন্য একটি অতিরিক্ত পিন ব্যবহার করবে। পরবর্তী পৃষ্ঠায় আমরা ফলাফল দেখতে পাব। আমি একটি পারফোর্ডে একটি ব্যাকপ্যাক তৈরি করেছি এবং এটি এখন পর্যন্ত আমার জন্য খুব ভাল কাজ করছে।

ধাপ 5: ফলাফল + লাইব্রেরি

ফলাফল + লাইব্রেরি
ফলাফল + লাইব্রেরি
ফলাফল + লাইব্রেরি
ফলাফল + লাইব্রেরি
ফলাফল + লাইব্রেরি
ফলাফল + লাইব্রেরি
ফলাফল + লাইব্রেরি
ফলাফল + লাইব্রেরি

"একটি ছবির মূল্য হাজার শব্দের", আমি এই বক্তব্যের সাথে একমত, তাই এই প্রকল্পের শেষ ফলাফলের কিছু ছবি এখানে দেওয়া হল। এইগুলি সম্পূর্ণ পণ্যের ছবি, ফ্রিজিং পিসিবি ভিউ হল পারফোর্ড লেআউট যা আমি আমার ব্যাকপ্যাক তৈরি করতে ব্যবহার করেছি। আপনি যদি নিজের তৈরি করতে চান তবে আপনি এটি উপকারী হতে পারেন। আমি এটি এত পছন্দ করেছি যে আমি ডিপট্রেস ব্যবহার করে একটি পিসিবি ডিজাইন করেছি এবং 10 টি পিসিবির একটি ব্যাচ অর্ডার করেছি। আমার নিজের জন্য 2 বা 3 ইউনিট লাগবে কিন্তু বাকিগুলো প্রতীকী মূল্যে পাওয়া যাবে যখন আমি সেগুলো পাব। তাই যদি কেউ আগ্রহী হন তাহলে দয়া করে আমাকে জানান। * সম্পাদনা করুন: PCBs এখানে আছে, এবং তারা কাজ করে। আসল পিসিবি সহ এই প্রকল্পের জন্য সম্পূর্ণ ছবির গ্যালারি এখানে। https://imgur.com/a/mUkpw#0 অবশ্যই আমি সবচেয়ে গুরুত্বপূর্ণ জিনিসটি ভুলে যাই নি, এই সার্কিটটি ব্যবহার করার জন্য একটি লাইব্রেরি। এটি Arduino IDE এর সাথে অন্তর্ভুক্ত লিকুইডক্রিস্টাল লাইব্রেরির সাথে সামঞ্জস্যপূর্ণ, তাই আপনি সহজেই আপনার স্কেচের শীর্ষে ঘোষণাকে প্রতিস্থাপন করতে পারেন এবং আপনার স্কেচে অন্য কিছু পরিবর্তন করতে হবে না। একটি উদাহরণ স্কেচ রয়েছে যা দেখায় যে লাইব্রেরির প্রতিটি ফাংশন কীভাবে কাজ করে, তাই এটি পরীক্ষা করে দেখুন।

প্রস্তাবিত: