সুচিপত্র:

Arduino এবং TM1638 LED ডিসপ্লে মডিউল: 11 টি ধাপ
Arduino এবং TM1638 LED ডিসপ্লে মডিউল: 11 টি ধাপ

ভিডিও: Arduino এবং TM1638 LED ডিসপ্লে মডিউল: 11 টি ধাপ

ভিডিও: Arduino এবং TM1638 LED ডিসপ্লে মডিউল: 11 টি ধাপ
ভিডিও: Tutorial : TM1638 Led and Key module for arduino 2024, নভেম্বর
Anonim
Arduino এবং TM1638 LED ডিসপ্লে মডিউল
Arduino এবং TM1638 LED ডিসপ্লে মডিউল

আপনার যদি একটি প্রকল্পে কিছু ব্যবহারকারী ইনপুট এবং আউটপুট যোগ করার জন্য একটি দ্রুত এবং সহজ উপায় প্রয়োজন হয়, এই প্রদর্শন মডিউলগুলি আকর্ষণীয় এবং মজাদার।

তাদের আটটি 7-সেগমেন্ট লাল LED ডিজিট, আটটি লাল/সবুজ LEDs এবং ব্যবহারকারীর ইনপুটের জন্য আটটি বোতাম রয়েছে। ইউনিটগুলি ডেইজি-শৃঙ্খলিত হতে পারে, যা একবারে পাঁচটি পর্যন্ত অনুমতি দেয় এবং প্রতিটি মডিউলের সাথে একটি সংক্ষিপ্ত কেবল অন্তর্ভুক্ত করা হয়, সেইসাথে কিছু সংক্ষিপ্ত স্পেসার এবং বোল্ট, ছবিতে দেখানো হয়েছে।

ধাপ 1:

ছবি
ছবি

পিসিবি একটি পৃষ্ঠের উপরে তোলার জন্য স্পেসারগুলি যথেষ্ট দীর্ঘ, তবে বোর্ডগুলিকে যে কোনও উপযোগী স্থানে মাউন্ট করার জন্য আপনাকে দীর্ঘতর প্রয়োজন হবে। আপনি যদি একটি প্যানেলের পৃষ্ঠের কাছাকাছি মডিউলটি মাউন্ট করতে চান তবে আপনি IDC সকেটগুলিও সরিয়ে ফেলতে পারেন। এটি একটি সহজ desoldering কাজ হবে কারণ এগুলো হল-হোল সকেট।

ধাপ ২:

ছবি
ছবি

বোর্ডটি একটি TM1638 IC দ্বারা নিয়ন্ত্রিত হয়।

এটি "টাইটান মাইক্রো ইলেকট্রনিক্স" এর একটি LED এবং ইন্টারফেস ড্রাইভার আইসি। আপনি পিএমডি ওয়ে থেকে এই আইসিগুলি কিনতে পারেন। আরো বিস্তারিত জানার জন্য আপনি ডেটশীট ডাউনলোড করতে পারেন।

ধাপ 3: শুরু করা - হার্ডওয়্যার

শুরু করা - হার্ডওয়্যার
শুরু করা - হার্ডওয়্যার

হার্ডওয়্যার-একটি Arduino- সামঞ্জস্যপূর্ণ বোর্ডের (বা অন্যান্য MCU) সংযোগ খুবই সহজ। পিনআউটগুলি PCB এর পিছনে দেখানো হয়েছে, এবং ফিতা তারের উপর ফিটিংয়ের সাথে মেলে। আপনি যদি তারের শেষের দিকে তাকান।

উপরের ডান ছিদ্রটি পিন এক, উপরের বাম পিন দুটি, নীচে-ডান পিন নয় এবং নীচে-বাম পিন দশ। অতএব পিনআউটগুলি হল:

  1. Vcc (5V)
  2. GND
  3. CLK
  4. ডিআইও
  5. STB1
  6. STB2
  7. STB3
  8. STB4
  9. STB5
  10. সংযোগ বিচ্ছিন্ন.

Arduino ব্যবহারের জন্য, পিন 1 ~ 4 একটি মডিউল ব্যবহার করার জন্য সর্বনিম্ন প্রয়োজনীয়। প্রতিটি অতিরিক্ত মডিউলের জন্য STB2, STB3, ইত্যাদির সাথে সংযুক্ত আরেকটি ডিজিটাল পিনের প্রয়োজন হবে। অনুগ্রহ করে মনে রাখবেন যে প্রতিটি মডিউল 127mA খরচ করে প্রতিটি LED এর সাথে সম্পূর্ণ উজ্জ্বলতা সেট করে, তাই একাধিক মডিউল এবং Arduino বোর্ডগুলির সাথে অন্যান্য সংযোগের সাথে বাহ্যিক শক্তি ব্যবহার করা বুদ্ধিমানের কাজ হবে।

ধাপ 4: শুরু করা - সফটওয়্যার

সফটওয়্যার - এখান থেকে T1638 লাইব্রেরি ডাউনলোড এবং ইনস্টল করুন। লাইব্রেরির জন্য জিমেইল ডট কম -এ rjbatista কে ধন্যবাদ এবং ধন্যবাদ। স্কেচে মডিউল শুরু করা সহজ। এর সাথে লাইব্রেরি অন্তর্ভুক্ত করুন:

#অন্তর্ভুক্ত

তারপর প্রতিটি মডিউলের জন্য নিম্নলিখিতগুলির মধ্যে একটি ব্যবহার করুন:

TM1638 মডিউল (x, y, z);

x হল Arduino ডিজিটাল পিন যা মডিউল কেবল পিন 4 এর সাথে সংযুক্ত, y হল Arduino ডিজিটাল পিন যা মডিউল কেবল পিন 3 এর সাথে সংযুক্ত এবং z হল স্ট্রব পিন। সুতরাং যদি আপনার 8, 7 এবং 6 পিনের সাথে সংযুক্ত ডেটা, ঘড়ি এবং স্ট্রব সহ একটি মডিউল থাকে তবে আপনি ব্যবহার করবেন:

TM1638 মডিউল (8, 7, 6);

আপনার যদি দুটি মডিউল থাকে, মডিউলের সাথে স্ট্রবটি আরডুইনো ডিজিটাল 6 এর সাথে সংযুক্ত থাকে এবং মডিউল দুইটির স্ট্রব ডিজিটাল 5 এর সাথে সংযুক্ত থাকে, আপনি ব্যবহার করবেন:

TM1638 মডিউল (8, 7, 6); TM1638 মডিউল (8, 7, 5);

এবং আরো মডিউল জন্য। এখন ডিসপ্লে নিয়ন্ত্রণ করতে…

ধাপ 5: দ্বি-রঙ LEDs

দ্বি-রঙের এলইডি
দ্বি-রঙের এলইডি

লাল/সবুজ LEDs নিয়ন্ত্রণ করা সহজ। রেফারেন্সের জন্য তাদের বাম থেকে ডানে শূন্য থেকে সাত নম্বর করা হয়েছে। একটি একক LED চালু বা বন্ধ করতে, নিম্নলিখিতগুলি ব্যবহার করুন:

module.setLED (TM1638_COLOR_RED, x); // LED নম্বর x সেট করে redmodule.setLED (TM1638_COLOR_GREEN, x); // LED নম্বর x কে সবুজ মডিউলে সেট করুন। LED (TM1638_COLOR_RED+TM1638_COLOR_GREEN, 0); // LED নম্বর x কে লাল এবং সবুজের উপর সেট করুন

উপরের পদ্ধতিটি ব্যবহার করা সহজ হতে পারে এটি কিছুটা অদক্ষ। একটি বিবৃতিতে সমস্ত এলইডি সম্বোধন করা একটি ভাল উপায়। এটি করার জন্য আমরা ডিসপ্লেতে হেক্সাডেসিমালে দুই বাইট ডেটা পাঠাই। এমএসবি (সবচেয়ে উল্লেখযোগ্য বাইট) আটটি বিট নিয়ে গঠিত, প্রত্যেকটি একটি সবুজ LED (1) বা বন্ধ (0)। LSB (কমপক্ষে উল্লেখযোগ্য বাইট) লাল LEDs উপস্থাপন করে।

এলইডি নিয়ন্ত্রণ করার জন্য হেক্সাডেসিমাল মান নির্ধারণের একটি সহজ উপায় হল, আপনার কাছে এক সারির এলইডি আছে - প্রথম আটটি সবুজ এবং দ্বিতীয়টি আটটি লাল। প্রতিটি অঙ্কের জন্য 1 এবং বন্ধের জন্য 0 সেট করুন। দুটি বাইনারি সংখ্যাকে হেক্সাডেসিমালে রূপান্তর করুন এবং এই ফাংশনটি ব্যবহার করুন:

module.setLEDs (0xgreenred);

যেখানে সবুজ হল সবুজ LEDs এর জন্য হেক্সাডেসিমাল সংখ্যা এবং লাল হল লাল LEDs এর জন্য হেক্সাডেসিমাল সংখ্যা। উদাহরণস্বরূপ, প্রথম তিনটি এলইডি লাল হিসাবে এবং শেষ তিনটিটি সবুজ হিসাবে চালু করতে, বাইনারি উপস্থাপনা হবে:

00000111 11100000 যা হেক্সাডেসিমালে E007।

তাই আমরা ব্যবহার করব:

module.setLEDs (0xE007);

যা উপরে দেখানো হিসাবে ছবি তৈরি করে।

ধাপ 6: 7-সেগমেন্ট প্রদর্শন

সাংখ্যিক ডিসপ্লে সাফ করতে (কিন্তু নিচের এলইডি নয়), কেবল ব্যবহার করুন:

module.clearDisplay ();

অথবা প্রতিটি সেগমেন্ট এবং সমস্ত এলইডি চালু করতে, নিম্নলিখিতগুলি ব্যবহার করুন

module.setupDisplay (সত্য, 7); // যেখানে 7 তীব্রতা (0 ~ 7 থেকে)

দশমিক সংখ্যা প্রদর্শন করতে, ফাংশনটি ব্যবহার করুন:

module.setDisplayToDecNumber (a, b, false);

যেখানে a হল পূর্ণসংখ্যা, b হল দশমিক বিন্দুর অবস্থান (কোনটির জন্য 0 নয়, 1 সংখ্যা 8, 2, অঙ্ক 7 এর জন্য 4, অঙ্ক 6 এর জন্য 8, অঙ্ক 4 এর জন্য ইত্যাদি), এবং শেষ প্যারামিটার (সত্য/ মিথ্যা) নেতৃস্থানীয় শূন্য চালু বা বন্ধ করে। নিম্নলিখিত স্কেচ এই ফাংশনের ব্যবহার প্রদর্শন করে:

#অন্তর্ভুক্ত // ডাটা পিন 8, ক্লক পিন 9 এবং স্ট্রোব পিন 7 টিএম 1638 মডিউল (8, 9, 7) মডিউল সংজ্ঞায়িত করুন; স্বাক্ষরবিহীন দীর্ঘ a = 1; void setup () {} void loop () {for (a = 10000; a <11000; a ++) {module.setDisplayToDecNumber (a, 4, false); বিলম্ব (1); } এর জন্য (a = 10000; a <11000; a ++) {module.setDisplayToDecNumber (a, 0, true); বিলম্ব (1); }}

… ভিডিওতে দেখানো ফলাফল সহ।

ধাপ 7:

Image
Image

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

tm_1638_scrolling_modules_example.pde

TM1638 লাইব্রেরির সাথে সহজেই অনুসরণ করা হয়। শুধু আপনার লেখাটি লিখুন উপলব্ধ অক্ষর দেখতে, ফাংশন পৃষ্ঠা দেখুন। লক্ষ্য করুন যে ডিসপ্লেটি মাত্র সাতটি সেগমেন্ট, তাই কিছু অক্ষর নিখুঁত নাও হতে পারে, কিন্তু প্রসঙ্গে আপনাকে একটি ভাল ধারণা দেবে-এই ধাপে ভিডিওটি দেখুন।

ধাপ 8:

পরিশেষে, আপনি পৃথকভাবে প্রতিটি অঙ্কের প্রতিটি অংশকে সম্বোধন করতে পারেন। এই অ্যারের বিষয়বস্তু বিবেচনা করুন:

বাইট মান = {1, 2, 4, 8, 16, 32, 64, 128};

প্রতিটি উপাদান 1 ~ 8 অঙ্কের প্রতিনিধিত্ব করে। প্রতিটি উপাদানের মান নির্ধারণ করে যে কোন অঙ্কের কোন বিভাগ চালু হবে। A ~ f, dp সেগমেন্টের জন্য মান হল 1, 2, 4, 6, 16, 32, 64, 128।

module.setDisplay (মান);

ছবি প্রতি হবে।

ধাপ 9:

ছবি
ছবি

স্বাভাবিকভাবেই আপনি প্রতিটি অঙ্কের মান একত্রিত করে আপনার নিজের অক্ষর, প্রতীক, ইত্যাদি তৈরি করতে পারেন। উদাহরণস্বরূপ, নিম্নলিখিত মানগুলি ব্যবহার করে:

বাইট মান = {99, 99, 99, 99, 99, 99, 99, 99};

আমরা এই ধাপে চিত্র অনুযায়ী তৈরি করেছি।

ধাপ 10: বোতাম

বোতামগুলির মানগুলি ফাংশন থেকে একটি বাইট মান হিসাবে ফেরত দেওয়া হয়:

module.getButtons ();

যেহেতু আটটি বোতাম রয়েছে, প্রত্যেকটি একটি বাইনারি সংখ্যার একটি বিট প্রতিনিধিত্ব করে যা একটি বাইট হিসাবে ফেরত দেওয়া হয়। বাম দিকের বোতামটি দশমিক একটি রিটার্ন করে, এবং ডান 128 রিটার্ন করে। মূল্য:

#অন্তর্ভুক্ত // ডেটা পিন 8, ক্লক পিন 9 এবং স্ট্রব পিন 7 টিএম 1638 মডিউল (8, 9, 7) মডিউল সংজ্ঞায়িত করুন; বাইট বোতাম; অকার্যকর সেটআপ () {} অকার্যকর লুপ () {বোতাম = module.getButtons (); module.setDisplayToDecNumber (বোতাম, 0, মিথ্যা); }

এবং ভিডিওতে ফলাফল।

এই ডিসপ্লে বোর্ডগুলি দরকারী এবং আশা করি আপনার প্রকল্পগুলিতে একটি বাড়ি খুঁজে পাবেন। এই পোস্টটি আপনার জন্য pmdway.com দ্বারা আনা হয়েছে - বিশ্বব্যাপী বিনামূল্যে ডেলিভারি সহ নির্মাতা এবং ইলেকট্রনিক্স উত্সাহীদের জন্য সবকিছু অফার করছে।

প্রস্তাবিত: