Arduino এর সাথে LCD 1602 সংযোগ করা: বর্ণনা, ফাংশন, নির্দেশাবলী, বৈশিষ্ট্য, সমস্যা এবং সমাধান

সুচিপত্র:

Arduino এর সাথে LCD 1602 সংযোগ করা: বর্ণনা, ফাংশন, নির্দেশাবলী, বৈশিষ্ট্য, সমস্যা এবং সমাধান
Arduino এর সাথে LCD 1602 সংযোগ করা: বর্ণনা, ফাংশন, নির্দেশাবলী, বৈশিষ্ট্য, সমস্যা এবং সমাধান
Anonim

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

আরডুইনো সংযোগের জন্য LCD 1602 ডিসপ্লে
আরডুইনো সংযোগের জন্য LCD 1602 ডিসপ্লে

LCD 1602

ডিসপ্লেগুলির মধ্যে অনেকগুলি বিকল্পের মধ্যে, আমি HD4478 কন্ট্রোলারের উপর ভিত্তি করে LCD1602 ডিসপ্লেটি একক করতে চাই৷ দুটি রঙে এই প্রদর্শন রয়েছে: নীল পটভূমিতে সাদা অক্ষর, একটি হলুদ পটভূমিতে কালো অক্ষর। আরডুইনোতে LCD 1602 সংযোগ করলেও কোনো সমস্যা হবে না, যেহেতু একটি বিল্ট-ইন লাইব্রেরি রয়েছে এবং আপনাকে অতিরিক্ত কিছু ডাউনলোড করতে হবে না। ডিসপ্লে শুধুমাত্র দামেই নয়, আকারেও আলাদা। প্রায়শই রেডিও অপেশাদাররা 16 ব্যবহার করেx 2, অর্থাৎ 16টি অক্ষরের 2টি লাইন। কিন্তু সেখানে 20 x 4 আছে, যেখানে 20টি অক্ষরের 4টি লাইন আছে। আরডুনোর সাথে lcd 1602 ডিসপ্লে সংযোগ করার ক্ষেত্রে মাত্রা এবং রঙ কোন ভূমিকা পালন করে না, তারা একইভাবে সংযুক্ত। দেখার কোণ হল 35 ডিগ্রী, প্রদর্শনের প্রতিক্রিয়া সময় 250 এমএস। -20 থেকে 70 ডিগ্রি সেলসিয়াস তাপমাত্রায় কাজ করতে পারে। কাজ করার সময়, এটি স্ক্রিনের জন্য 4 mA এবং ব্যাকলাইটের জন্য 120 mA ব্যবহার করে৷

LCD 1602 ডিসপ্লে পিনআউট
LCD 1602 ডিসপ্লে পিনআউট

এটি কোথায় ব্যবহৃত হয়?

এই ডিসপ্লে শুধুমাত্র রেডিও অপেশাদারদের মধ্যেই নয়, বড় নির্মাতাদের মধ্যেও এর জনপ্রিয়তা রয়েছে। উদাহরণস্বরূপ, প্রিন্টার, কফি মেশিনগুলিও LCD1602 ব্যবহার করে। এটি তার কম দামের কারণে, চীনা সাইটগুলিতে এই প্রদর্শনের 200-300 রুবেল খরচ হয়। এটি সেখানে কেনার যোগ্য, যেমন আমাদের দোকানে এই ডিসপ্লের মার্জিন অনেক বেশি৷

Arduino এর সাথে সংযোগ করুন

Arduino Nano এবং Uno-এর সাথে LCD 1602 কানেক্ট করা আলাদা নয়। আপনি দুটি মোডে ডিসপ্লের সাথে কাজ করতে পারেন: 4 বিট এবং 8। একটি 8-বিট ডিসপ্লের সাথে কাজ করার সময়, নিম্ন এবং উচ্চতর উভয় বিট ব্যবহার করা হয় এবং একটি 4-বিটের সাথে, শুধুমাত্র নীচেরগুলি। 8-বিট নিয়ে কাজ করার কোনও বিশেষ বিষয় নেই, যেহেতু সংযোগের জন্য আরও 4টি পরিচিতি যুক্ত করা হবে, যা যুক্তিযুক্ত নয়, কারণ গতি বেশি হবে না, প্রদর্শন আপডেটের সীমা প্রতি সেকেন্ডে 10 বার। সাধারণভাবে, lcd 1602 কে Arduino এর সাথে সংযোগ করতে প্রচুর তারের ব্যবহার করা হয়, যা কিছু অসুবিধার কারণ হয়, তবে বিশেষ ঢাল রয়েছে, তবে এর পরে আরও কিছু। ফটোটি আরডুইনো ইউনোতে ডিসপ্লের সংযোগ দেখায়:

আরডুইনোতে ডিসপ্লে সংযোগ করা হচ্ছে
আরডুইনোতে ডিসপ্লে সংযোগ করা হচ্ছে

কোড উদাহরণ:


অন্তর্ভুক্ত //প্রয়োজনীয় লাইব্রেরি যোগ করুন LiquidCrystal lcd(7, 6, 5, 4, 3, 2); // (RS, E, DB4, DB5, DB6, DB7) void setup(){ lcd.begin(16, 2); // সেট স্ক্রিন ডাইমেনশন lcd.setCursor(0, 0); // লাইন 1 lcd.print ("হ্যালো, ওয়ার্ল্ড!") এর শুরুতে কার্সার সেট করুন; // ডিসপ্লে টেক্সট এলসিডি। সেট কার্সার(0, 1); // লাইন 2 এর শুরুতে কার্সার সেট করুন lcd.print("fb.ru"); // আউটপুট টেক্সট } অকার্যকর লুপ(){ }

কোডটি কী করে? প্রথমত, ডিসপ্লের সাথে কাজ করার জন্য লাইব্রেরি সংযুক্ত। উপরে উল্লিখিত হিসাবে, এই লাইব্রেরিটি ইতিমধ্যেই Arduino IDE-তে অন্তর্ভুক্ত করা হয়েছে এবং আপনাকে এটি ডাউনলোড এবং ইনস্টল করার প্রয়োজন নেই। এর পরে, পিনের সাথে সংযুক্ত পরিচিতিগুলিকে সংজ্ঞায়িত করা হয়েছে: যথাক্রমে RS, E, DB4, DB5, DB6, DB7। তারপর পর্দার আকার সেট করা হয়। যেহেতু আমরা 16 টি অক্ষর এবং 2 লাইন সহ একটি সংস্করণ নিয়ে কাজ করছি, আমরা এই ধরনের মান লিখি। আমরা প্রথম লাইনের শুরুতে কার্সার সেট করি এবং আমাদের প্রথম লেখা Hello World প্রদর্শন করি। এর পরে, দ্বিতীয় লাইনে কার্সার রাখুন এবং সাইটের নাম প্রদর্শন করুন। এখানেই শেষ! Arduino Uno-এর সাথে lcd 1602 সংযোগ করার বিষয়টি বিবেচনা করা হয়েছিল৷

I2C কি এবং কেন এটি প্রয়োজন?

উপরে উল্লিখিত হিসাবে, ডিসপ্লে সংযোগ করতে অনেক পিন লাগে। উদাহরণস্বরূপ, যখন একাধিক সেন্সর এবং একটি এলসিডি ডিসপ্লে 1602 পরিচিতিগুলির সাথে কাজ করে তখন যথেষ্ট নাও হতে পারে। প্রায়শই, রেডিও অপেশাদাররা Uno বা ন্যানো সংস্করণ ব্যবহার করে, যেখানে অনেক পরিচিতি নেই। তখন লোকেরা বিশেষ ঢাল নিয়ে এসেছিল। উদাহরণস্বরূপ, I2C। এটি আপনাকে মাত্র 4 পিনের সাথে ডিসপ্লে সংযোগ করতে দেয়। এটি দুই গুণ কম। I2C মডিউল উভয়ই আলাদাভাবে বিক্রি হয়, যেখানে আপনাকে এটি নিজে সোল্ডার করতে হবে এবং ইতিমধ্যেই সোল্ডার করা হয়েছেLCD ডিসপ্লে 1602.

LCD ডিসপ্লে 1602 এর জন্য I2C মডিউল
LCD ডিসপ্লে 1602 এর জন্য I2C মডিউল

I2C মডিউলের সাথে সংযোগ

I2C এর সাথে Arduino Nano-এর সাথে LCD 1602 কানেক্ট করতে অল্প জায়গা লাগে, মাত্র 4 পিন: গ্রাউন্ড, পাওয়ার এবং 2 ডেটা আউটপুট। আমরা Arduino-এ যথাক্রমে 5V এবং GND-এ পাওয়ার এবং গ্রাউন্ড সংযোগ করি। অবশিষ্ট দুটি পরিচিতি: SCL এবং SDA যেকোনো এনালগ পিনের সাথে সংযুক্ত। ফটোতে আপনি I2C মডিউল দিয়ে lcd 1602 কে arduino এর সাথে সংযোগ করার একটি উদাহরণ দেখতে পারেন:

I2C মডিউল ব্যবহার করে সংযোগ প্রদর্শন করুন
I2C মডিউল ব্যবহার করে সংযোগ প্রদর্শন করুন

প্রোগ্রাম কোড

যদি একটি মডিউল ছাড়া একটি ডিসপ্লের সাথে কাজ করার জন্য শুধুমাত্র একটি লাইব্রেরি ব্যবহার করার প্রয়োজন হয়, তাহলে একটি মডিউলের সাথে কাজ করার জন্য দুটি লাইব্রেরি প্রয়োজন৷ তাদের মধ্যে একটি ইতিমধ্যে Arduino IDE - ওয়্যারে রয়েছে। আরেকটি লাইব্রেরি, LiquidCrystal I2C, আলাদাভাবে ডাউনলোড করে ইনস্টল করতে হবে। আরডুইনোতে লাইব্রেরি ইনস্টল করতে, ডাউনলোড করা আর্কাইভের বিষয়বস্তু লাইব্রেরি রুট ফোল্ডারে আপলোড করতে হবে। I2C ব্যবহার করে কোডের উদাহরণ:


include include LiquidCrystal_I2C lcd(0x27, 16, 2); // ডিসপ্লে ভ্যায়েড সেটআপ সেট আপ করুন () { lcd.init(); lcd.backlight();// প্রদর্শন ব্যাকলাইট চালু করুন lcd.print("FB.ru"); lcd.setCursor(8, 1); lcd.print("LCD 1602"); } void loop() {// কার্সারকে সেকেন্ড লাইন এবং নাল ক্যারেক্টারে সেট করুন। lcd.setCursor(0, 1); // আরডুইনো lcd.print(millis()/1000 শুরু করার পর থেকে সেকেন্ডের সংখ্যা প্রিন্ট আউট করুন; }

আপনি দেখতে পাচ্ছেন, কোডটি প্রায় একই।

আমি কিভাবে আমার নিজের প্রতীক যোগ করব?

এই ডিসপ্লেগুলির সমস্যা হল যে সেখানে নেই৷সিরিলিক এবং চিহ্নের জন্য সমর্থন। উদাহরণস্বরূপ, আপনাকে ডিসপ্লেতে কিছু অক্ষর লোড করতে হবে যাতে এটি প্রতিফলিত করতে পারে। এটি করার জন্য, প্রদর্শন আপনাকে আপনার 7 টি অক্ষর তৈরি করতে দেয়। টেবিলটি উপস্থাপন করুন:

0 0 0 1 0
0 0 0 0 1
1 1 0 0 1
0 0 0 0 1
1 1 0 0 1
0 0 0 0 1
0 0 0 1 0
0 0 0 0 0

যদি 0 - সেখানে কিছুই নেই, যদি 1 - এটি একটি ছায়াযুক্ত এলাকা৷ উপরের উদাহরণে, আপনি "স্মাইলিং স্মাইলি" চরিত্রের সৃষ্টি দেখতে পারেন। আরডুইনোতে একটি উদাহরণ প্রোগ্রাম ব্যবহার করে, এটি দেখতে এইরকম হবে:


include include // প্রয়োজনীয় লাইব্রেরি অন্তর্ভুক্ত করুন // Smile প্রতীক বিটমাস্ক বাইট স্মাইল[8]={ B00010, B00001, B11001, B00001, B11001, B00001, B00010,}; লিকুইডক্রিস্টাল এলসিডি (7, 6, 5, 4, 3, 2); // (RS, E, DB4, DB5, DB6, DB7) void setup(){ lcd.begin(16, 2); // সেট স্ক্রিন মাত্রা lcd.createChar(1, হাসি); // অক্ষর সংখ্যা 1 lcd.setCursor(0, 0) তৈরি করুন; // লাইন 1 lcd.print("\1") এর শুরুতে কার্সার সেট করুন; // স্মাইলি প্রদর্শন করুন (অক্ষর নম্বর 1) - "\1" } void loop(){ }

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

LCD 1602 এ কাস্টম অক্ষর যোগ করা হচ্ছে
LCD 1602 এ কাস্টম অক্ষর যোগ করা হচ্ছে

সমস্যা যেখানে ডিসপ্লে কাজ নাও করতে পারে

এমন কিছু সময় আছে যখন ডিসপ্লে কাজ করে না। উদাহরণস্বরূপ, এটি চালু হয়, কিন্তু অক্ষর দেখায় না। অথবা এটি মোটেও চালু হয় না। প্রথমে, আপনি পরিচিতিগুলিকে সঠিকভাবে সংযুক্ত করেছেন কিনা তা দেখুন। আপনি যদি I2C ছাড়া আরডুইনোতে lcd 1202 কানেক্ট করতেন, তাহলে তারে জট পাকানো খুব সহজ, যার কারণে ডিসপ্লেটি ভুলভাবে কাজ করতে পারে। এছাড়াও আপনাকে নিশ্চিত করতে হবে যে ডিসপ্লে কন্ট্রাস্ট বাড়ানো হয়েছে, যেহেতু ন্যূনতম কনট্রাস্টে এটি LCD 1602 চালু আছে কি না তাও দেখা যাচ্ছে না। যদি এটি সাহায্য না করে, তবে সম্ভবত সমস্যাটি পরিচিতিগুলির সোল্ডারিংয়ে থাকতে পারে, এটি I2C মডিউল ব্যবহার করার সময়। এছাড়াও, ডিসপ্লে কাজ না করার একটি সাধারণ কারণ হল I2C ঠিকানার ভুল সেটিং। আসল বিষয়টি হ'ল অনেক নির্মাতা রয়েছে এবং তারা একটি আলাদা ঠিকানা সেট করতে পারে, আপনাকে এটি এখানে সংশোধন করতে হবে:


LiquidCrystal_I2C lcd(0x27, 16, 2);

বন্ধনীতে আপনি দুটি মান দেখতে পাবেন, 0x27 এবং 16, 2 (16, 2 হল ডিসপ্লে সাইজ, এবং 0x27 হল শুধুমাত্র I2C ঠিকানা)। এই মানগুলির পরিবর্তে, আপনি 0x37 বা 0x3F রাখার চেষ্টা করতে পারেন। ঠিক আছে, আরেকটি কারণ হল একটি ত্রুটিপূর্ণ এলসিডি 1602। আরডুইনোর জন্য প্রায় সবকিছুই চীনে তৈরি, তা বিবেচনা করে আপনি 100% নিশ্চিত হতে পারবেন না যে কেনা হয়েছে।পণ্যটি ত্রুটিপূর্ণ নয়।

LCD 1602 সুবিধা এবং অসুবিধা

আসুন LCD 1602 এর ভালো-মন্দের দিকে তাকাই।

ফল

  • দাম। এই মডিউলটি চাইনিজ স্টোরগুলিতে খুব সাশ্রয়ী মূল্যে কেনা যায়। দাম 200-300 রুবেল। কখনও কখনও এমনকি একটি I2C মডিউল দিয়েও বিক্রি হয়৷
  • সংযোগ করা সহজ। সম্ভবত আজকাল I2C ছাড়া কেউ LCD 1602 সংযোগ করে না। এবং এই মডিউলটির সাথে, সংযোগটি মাত্র 4 পিন নেয়, তারের কোন "জাল" থাকবে না।
  • প্রোগ্রামিং। রেডিমেড লাইব্রেরিগুলির জন্য ধন্যবাদ, এই মডিউলটির সাথে কাজ করা সহজ, সমস্ত ফাংশন ইতিমধ্যে নিবন্ধিত। এবং যদি আপনার চরিত্রটি যোগ করতে হয় তবে এটি মাত্র কয়েক মিনিট সময় নেয়।

অপরাধ

হাজার হাজার রেডিও অপেশাদারদের ব্যবহারের সময়, কোনও বড় বিয়োগ চিহ্নিত করা হয়নি, শুধুমাত্র একটি বিয়ে কেনার ঘটনা রয়েছে, যেহেতু চাইনিজ ডিসপ্লে বিকল্পগুলি প্রধানত ব্যবহৃত হয়৷

এই নিবন্ধটি আলোচনা করেছে কিভাবে LCD 1602 ডিসপ্লেকে Arduino এর সাথে সংযুক্ত করতে হয় এবং এই ডিসপ্লের সাথে কাজ করার জন্য নমুনা প্রোগ্রামও উপস্থাপন করা হয়েছে। এটি সত্যিই এটির বিভাগে সেরাদের মধ্যে একটি, এটি শুধু নয় যে হাজার হাজার রেডিও অপেশাদার তাদের প্রকল্পের জন্য এটি বেছে নেয়!

প্রস্তাবিত: