সুচিপত্র:

একক LCD লাইন স্ক্রোল করুন: 4 টি ধাপ (ছবি সহ)
একক LCD লাইন স্ক্রোল করুন: 4 টি ধাপ (ছবি সহ)

ভিডিও: একক LCD লাইন স্ক্রোল করুন: 4 টি ধাপ (ছবি সহ)

ভিডিও: একক LCD লাইন স্ক্রোল করুন: 4 টি ধাপ (ছবি সহ)
ভিডিও: মামলা করার পূর্বে ৫টি বিষয় ভেবে চিন্তে করুন #শাহাদাত 2024, নভেম্বর
Anonim
Image
Image

তরল ক্রিস্টাল লাইব্রেরির দুটি দরকারী ফাংশন রয়েছে scrollDisplayLeft () এবং scrollDisplayRight ()। এই ফাংশনগুলি পুরো ডিসপ্লে স্ক্রোল করে। অর্থাৎ, তারা 1602 এলসিডি এবং 2004 এলসিডিতে চারটি লাইন উভয় স্ক্রোল করে। আমাদের প্রায়শই যা প্রয়োজন তা হ'ল পুরো ডিসপ্লেটি স্ক্রোল করার পরিবর্তে এই ডিসপ্লেগুলিতে একটি একক লাইন স্ক্রোল করার ক্ষমতা।

এই নির্দেশযোগ্য দুটি অতিরিক্ত ফাংশন প্রদান করে, scrollInFromRight (পাঠ্য প্রদর্শন করার জন্য লাইন, স্ক্রোল করা হবে) এবং scrollInFromLeft (পাঠ্য প্রদর্শন করার লাইন, স্ক্রোল করা স্ট্রিং)। এই দুটি ফাংশন যা দুটি ফাংশনের সাথে মিলিয়ে এলসিডি স্ক্রিনে লাইনগুলি স্ক্রোল করে, স্ক্রোললাইনরাইট (পাঠ্য প্রদর্শন করার লাইন, স্ক্রোল করার জন্য স্ট্রিং) এবং স্ক্রোললাইন লেফট (পাঠ্য প্রদর্শনের জন্য লাইন, স্ক্রোল করা স্ট্রিং) আমার আগের নির্দেশযোগ্য থেকে, যা উপস্থাপিত হয়েছে স্ক্রিন থেকে লাইনগুলি স্ক্রোল করার ফাংশন, কিভাবে এলসিডি স্ক্রিনে টেক্সট উপস্থাপন করা যায়, বা তা থেকে সরানো যায় তা নিয়ন্ত্রণ করার জন্য আমাদের বেশ কয়েকটি শক্তিশালী উপায় প্রদান করে।

ধাপ 1: কি প্রয়োজন

হুকআপ
হুকআপ

- একটি 1602 বা 2004 LCD স্বতন্ত্র প্রদর্শন, বা LCD ieldাল

- 2004 LCD ডিসপ্লে ব্যবহারের বিষয়ে নীচের নোট দেখুন

- একটি Arduino UNO R3 বা ক্লোন

- একটি কম্পিউটারে আরডুইনো সংযোগ করার জন্য একটি ইউএসবি কেবল

- একটি অর্ধ-আকার, 400 টাই পয়েন্ট, রুটিবোর্ড

- আরডুইনো আইডিই

- একটি পরীক্ষামূলক প্ল্যাটফর্ম (alচ্ছিক, কিন্তু সহায়ক)

প্রয়োজনীয় আইটেম হল একটি এলসিডি স্ক্রিন হয় 1602 বা 2004 [যদি 2004 ব্যবহার করা হয় তবে এটি সমস্যা ছাড়াই কাজ করবে lcd.begin () ফাংশনটি পরিবর্তন করে ডান দিক থেকে স্ক্রোল করে প্রতিফলিত করে যে আপনি এখন একটি 20 অক্ষর x 4 লাইন ব্যবহার করছেন প্রদর্শন [2004 ডিসপ্লে ব্যবহার করে বাম দিক থেকে স্ক্রোল করার জন্য, s crollInFromLeft () ফাংশনের একটি কোড পুনর্লিখন আবশ্যক]। একটি LCD ছাড়াও একটি Arduino UNO বা ক্লোন, Arduino IDE, এবং একটি USB তারের প্রয়োজন হবে একটি কম্পিউটারের সাথে Arduino সংযোগ করতে।

এখানে দেখানো স্বতন্ত্র LCD এর পরিবর্তে একটি LCD ieldাল ব্যবহার করা যেতে পারে। যদি এমন হয়, তাহলে নিচের স্কেচে LCD এর জন্য পিন অ্যাসাইনমেন্ট পরিবর্তন করতে হবে।

- স্বাধীন 1602 এলসিডি ডিসপ্লের জন্য আমি আমার স্কেচগুলিতে নিম্নলিখিত পিন অ্যাসাইনমেন্ট ব্যবহার করেছি:

// লিকুইডক্রিস্টাল (rs, enable, d4, d5, d6, d7)

লিকুইডক্রিস্টাল এলসিডি (12, 11, 5, 4, 3, 2);

এবং লিকুইড ক্রিস্টাল লাইব্রেরি LiquidCrystal.h অন্তর্ভুক্ত।

- LCD ieldালের জন্য, আমি আমার স্কেচগুলিতে নিম্নলিখিত পিন অ্যাসাইনমেন্ট ব্যবহার করি, এবং লিকুইড ক্রিস্টাল লাইব্রেরি LiquidCrystal.h অন্তর্ভুক্ত করেছি।

// লিকুইডক্রিস্টাল (rs, enable, d4, d5, d6, d7)

লিকুইডক্রিস্টাল এলসিডি (8, 13, 9, 4, 5, 6, 7);

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

আমি একটি "পরীক্ষামূলক প্ল্যাটফর্ম" ব্যবহার করে Arduino UNO কে অর্ধ-আকার, 400 টাই পয়েন্ট, রুটিবোর্ডের সাথে সংযুক্ত করেছি। (আমার একটি পূর্বের নির্দেশাবলী দেখুন, "Arduino UNO R3 এর জন্য পরীক্ষামূলক প্ল্যাটফর্ম, ব্যবহারের জন্য এটি কীভাবে প্রস্তুত করা যায়")। যাইহোক, একটি পরীক্ষামূলক প্ল্যাটফর্মের প্রয়োজন নেই, যদিও আমার জন্য এটি এলসিডিকে ইউএনওর সাথে সংযুক্ত করাকে অনেক সহজ এবং দ্রুত করে তোলে।

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

ধাপ 2: সংযোগ

এলসিডি একটি ব্রেডবোর্ডে প্লাগ করা হয় এবং তারপর হুকআপ তারগুলি রুটিবোর্ড থেকে আরডুইনোতে যথাযথ পিনগুলিতে সংযুক্ত করা হয় (আমার ব্যবহৃত সংযোগগুলির বিষয়ে আপনার কোন প্রশ্ন থাকলে ধাপ 2 দেখুন)।

আমি এই প্রকল্পের জন্য একটি Lালের পরিবর্তে একটি স্বতন্ত্র এলসিডি পছন্দ করেছি কারণ এটি আমার জন্য আরও সন্তোষজনক ছিল, এবং আমাকে সহজেই দেখার অনুমতি দেয় যে কোন পিনগুলি পাওয়া যায়। এটি আমাকে একটি entালের potentiometer এর পরিবর্তে একটি knob আছে এমন একটি potentiometer ব্যবহার করতে দেয় যা অবশ্যই একটি স্ক্রু ড্রাইভার দিয়ে সমন্বয় করতে হবে।

স্বতন্ত্র LCD একটি পৃথক 10k ওহম potentiometer ব্যবহার প্রয়োজন। উপরে উল্লিখিত হিসাবে, আমি একটি গাঁট দিয়ে ব্যবহার করেছি যার ওয়াইপারটি তৃতীয় এলসিডি পিনের সাথে সংযুক্ত (ডান দিক থেকে আপনার মুখোমুখি এলসিডি পিনের সাথে গণনা করা)। এলসিডির বৈসাদৃশ্য নিয়ন্ত্রণের জন্য পোটেন্টিওমিটার ব্যবহার করা হয়। 1602 এবং 2004 এর জন্য সংযোগগুলি একই রকম। অক্ষর দুই লাইন দ্বারা প্রদর্শিত হয় একটি 20 অক্ষর দ্বারা চার লাইন এক দ্বারা।

সংযুক্ত ফটোগ্রাফগুলির দিকে তাকালে আমি যে হুকআপটি ব্যবহার করেছি তা পরীক্ষামূলক প্ল্যাটফর্ম এবং 10 কে পোটেন্টিওমিটার সহ দেখায়।

ধাপ 3: স্কেচ

স্কেচ
স্কেচ
স্কেচ
স্কেচ
স্কেচ
স্কেচ

আরডুইনো আইডিইতে কেবল সংযুক্ত স্কেচটি প্রবেশ করুন। অনুগ্রহ করে মনে রাখবেন যে নির্দেশযোগ্য সাইট প্রায়ই লক্ষণের চেয়ে বড় এবং কম সব এবং তাদের মধ্যে থাকা পাঠ্য সরিয়ে দেয়। এইভাবে, নিশ্চিত হোন এবং পাঠ্যটি অন্তর্ভুক্ত করুন, #অন্তর্ভুক্ত করুন LiquidCrystal.h এবং LiquidCrystal.h শব্দগুলিকে চিহ্নের চেয়ে বড় এবং কমের ভিতরে আবদ্ধ করুন।

// একটি এলসিডি স্ক্রিনে অক্ষরগুলি স্ক্রোল করার জন্য স্কেচ

#অন্তর্ভুক্ত // এখানে কী প্রয়োজন তা সম্পর্কে পাঠ্য নোট দেখুন, যেমন, LiquidCrystal.h ভিতরে আবদ্ধ

// চিহ্নের চেয়ে বড় এবং কম

// এই সাইটটি প্রায়ই প্রতীকগুলির চেয়ে বড় ও কম এবং তাদের মধ্যে থাকা পাঠ্য সরিয়ে দেয়

// লিকুইডক্রিস্টাল (rs, enable, d4, d5, d6, d7)

লিকুইডক্রিস্টাল এলসিডি (12, 11, 5, 4, 3, 2);

// একটি তরল ক্রিস্টাল বস্তু হিসাবে এলসিডি ঘোষণা করুন

int i = 0;

int j = 0;

int k = 0;

int delayTime2 = 350; // শিফটের মধ্যে বিলম্ব

void scrollInFromRight (int line, char str1 ) {

// লিখেছেন আর জর্ডান ক্রেইন্ডলার জুন 2016

আমি = strlen (str1);

জন্য (j = 16; j> = 0; j--) {

lcd.setCursor (0, লাইন);

জন্য (k = 0; k <= 15; k ++) {

lcd.print (""); // পরিষ্কার লাইন

}

lcd.setCursor (j, line);

lcd.print (str1);

বিলম্ব (বিলম্ব সময় 2);

}

}

void scrollInFromLeft (int line, char str1 ) {

// লিখেছেন আর জর্ডান ক্রেইন্ডলার জুন 2016

i = 40 - strlen (str1);

লাইন = লাইন - 1;

জন্য (j = i; j <= i+16; j ++) {

জন্য (k = 0; k <= 15; k ++) {

lcd.print (""); // পরিষ্কার লাইন

}

lcd.setCursor (j, line);

lcd.print (str1);

বিলম্ব (বিলম্ব সময় 2);

}

}

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

Serial.begin (9600);

Serial.println ("পরীক্ষা শুরু হচ্ছে …");

lcd.begin (16, 2);

lcd.clear ();

lcd.print ("শুধুমাত্র পরীক্ষা");

}

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

lcd.clear ();

scrollInFromRight (0, "ডান থেকে লাইন 1");

scrollInFromRight (1, "ডান থেকে লাইন 2");

lcd.clear ();

scrollInFromLeft (0, "বাম দিক থেকে লাইন 1");

scrollInFromLeft (1, "লাইন 2 বাম থেকে।");

lcd.clear ();

scrollInFromRight (0, "ডান থেকে লাইন 1");

scrollInFromLeft (1, "বাম থেকে লাইন 2।");

lcd.clear ();

}

দুটি ফাংশন: স্ক্রোলইনফ্রোমরাইট (টেক্সট প্রদর্শনের জন্য লাইন, স্ক্রোল করার জন্য স্ট্রিং) এবং স্ক্রোলইনফ্রোমলেফট (পাঠ্য প্রদর্শন করার লাইন, স্ক্রোল করা স্ট্রিং) এলসিডি স্ক্রিনে স্ক্রোল করা লাইনগুলিকে নিয়ন্ত্রণ করতে আপনার স্কেচে স্থানান্তরিত করা যেতে পারে। এই ফাংশনগুলি স্ক্রিনে নতুন পাঠ্য স্থানান্তর করার একটি মার্জিত উপায় প্রদান করে।

যখন নির্দেশযোগ্য স্কেচে দুটি ফাংশনের সাথে মিলিত হয় "একটি এলসিডি লাইনকে বাম বা ডানে স্ক্রোল করুন, কীভাবে" চারটি ফাংশন এলসিডি ডিসপ্লেতে এবং বাইরে পাঠ্য স্ক্রোল করার মার্জিত উপায় সরবরাহ করে। এই ফাংশনগুলি আপনাকে একবারে একটি লাইন স্ক্রোল করার অনুমতি দেয়, এবং ফাংশনগুলির মতো পুরো ডিসপ্লেটি স্ক্রোল করার প্রয়োজন হয় না, scrollDisplayLeft () এবং scrollDisplayRight ()।

এই স্ক্রোলিং ক্ষমতা আমাদেরকে লাইনগুলিকে বেশি সময় উপস্থাপন করতে দেয় যা ডিসপ্লে সাধারণত দেখাতে সক্ষম। অর্থাৎ, 1602 ডিসপ্লের জন্য আমরা প্রতি লাইনে শুধুমাত্র 16 টি অক্ষরের মধ্যে সীমাবদ্ধ নই (যদিও একটি সময়ে শুধুমাত্র 16 টি দেখাবে), এবং 2004 এর জন্য আমরা প্রতি লাইনে 20 টি অক্ষরের মধ্যে সীমাবদ্ধ নই।

একটি সরাইয়া হিসাবে, আপনি আপনার প্রয়োজন মেলে স্ক্রল মধ্যে প্রদর্শন সময় সমন্বয় করতে চাইতে পারেন।

ধাপ 4: পরে

এখানেই শেষ এটা পেতে ওখানে যাও. এই ফাংশনগুলি এবং আমার আগের নির্দেশাবলী থেকে দুটি আপনার যে কোনও স্কেচে যোগ করা যেতে পারে যা একটি LCD ব্যবহার করে এবং পাঠ্য প্রদর্শন করে। উল্লিখিত হিসাবে, দীর্ঘ লাইন ব্যবহার করার ক্ষমতা একটি নির্দিষ্ট সুবিধা যা স্ক্রোলিং ব্যবহারের মাধ্যমে সম্ভব।

আপনি যদি কোন প্রশ্ন বা অতিরিক্ত তথ্যের জন্য আমার সাথে যোগাযোগ করতে চান, অথবা উপস্থাপিত এলাকায় আমার জ্ঞান প্রসারিত করতে চান, আমি [email protected] এ যোগাযোগ করা যেতে পারে। (দয়া করে আমার সাথে যোগাযোগ করতে দ্বিতীয় 'i' কে 'e' দিয়ে প্রতিস্থাপন করুন।

প্রস্তাবিত: