সুচিপত্র:

শিফট রেজিস্টার ব্যবহার করে LED ম্যাট্রিক্স: 7 টি ধাপ (ছবি সহ)
শিফট রেজিস্টার ব্যবহার করে LED ম্যাট্রিক্স: 7 টি ধাপ (ছবি সহ)

ভিডিও: শিফট রেজিস্টার ব্যবহার করে LED ম্যাট্রিক্স: 7 টি ধাপ (ছবি সহ)

ভিডিও: শিফট রেজিস্টার ব্যবহার করে LED ম্যাট্রিক্স: 7 টি ধাপ (ছবি সহ)
ভিডিও: 16 ноября 2023 г. Подкаст: Наконец-то! Большой канал высказывается! @moreperfectunion 2024, জুলাই
Anonim
শিফট রেজিস্টার ব্যবহার করে LED ম্যাট্রিক্স
শিফট রেজিস্টার ব্যবহার করে LED ম্যাট্রিক্স
শিফট রেজিস্টার ব্যবহার করে LED ম্যাট্রিক্স
শিফট রেজিস্টার ব্যবহার করে LED ম্যাট্রিক্স
শিফট রেজিস্টার ব্যবহার করে LED ম্যাট্রিক্স
শিফট রেজিস্টার ব্যবহার করে LED ম্যাট্রিক্স

এই নির্দেশযোগ্যটি অনলাইনে উপলব্ধ অন্যদের তুলনায় আরও সম্পূর্ণ ব্যাখ্যা হতে পারে। উল্লেখযোগ্যভাবে, এটি LED555 দ্বারা নির্দেশিত LED Marquee- এর তুলনায় আরো হার্ডওয়্যার ব্যাখ্যা প্রদান করবে।

লক্ষ্য

এই নির্দেশযোগ্য শিফট রেজিস্টার এবং উচ্চ পার্শ্ব ড্রাইভারগুলির সাথে জড়িত ধারণাগুলি উপস্থাপন করে। 8x8 এলইডি ম্যাট্রিক্স দিয়ে এই ধারণাগুলিকে চিত্রিত করে আমি আপনার প্রকল্পের জন্য প্রয়োজনীয় আকার এবং বিন্যাসের সাথে খাপ খাইয়ে এবং প্রসারিত করার জন্য প্রয়োজনীয় সরঞ্জাম সরবরাহ করার আশা করি।

অভিজ্ঞতা এবং দক্ষতা

আমি এই প্রকল্পটিকে মাঝারি অসুবিধা হিসাবে রেট দেব:

  • আপনার যদি ইতিমধ্যে মাইক্রোকন্ট্রোলার প্রোগ্রামিং এবং LEDs এর সাথে কাজ করার অভিজ্ঞতা থাকে তবে এই প্রকল্পটি আপনার জন্য সম্পূর্ণ করা এবং লাইটের বৃহত্তর অ্যারে স্কেল করা মোটামুটি সহজ হওয়া উচিত।
  • আপনি যদি কেবল মাইক্রোকন্ট্রোলার দিয়ে শুরু করছেন এবং একটি বা দুটি LED ফ্ল্যাশ করেছেন তবে আমাদের বন্ধু গুগলের কিছু সাহায্যে আপনি এই প্রকল্পটি সম্পন্ন করতে সক্ষম হবেন।
  • যদি আপনার মাইক্রোকন্ট্রোলার বা প্রোগ্রামিং নিয়ে খুব কম বা কোন অভিজ্ঞতা না থাকে তবে এটি সম্ভবত আপনার নিজের মধ্যে যা করা উচিত তার বাইরে। আরও কিছু শিক্ষানবিশ প্রকল্প চেষ্টা করে দেখুন এবং যখন আপনি মাইক্রোকন্ট্রোলারদের জন্য আরো কিছু লেখার অভিজ্ঞতা পাবেন তখন ফিরে আসুন।

অস্বীকৃতি এবং ক্রেডিট

প্রথমত, আমি একজন বৈদ্যুতিক প্রকৌশলী নই। যদি আপনি এমন কিছু দেখেন যা ভুল, বা সেরা অনুশীলন নয়, দয়া করে আমাকে জানান এবং আমি সংশোধন করব। আপনার নিজের ঝুঁকিতে এটি করুন! আপনি কি করছেন তা আপনার জানা উচিত অথবা আপনি আপনার কম্পিউটার, আপনার মাইক্রোকন্ট্রোলার, এমনকি নিজের ক্ষতি করতে পারেন। আমি ইন্টারনেট থেকে অনেক কিছু শিখেছি, বিশেষ করে ফোরামগুলি থেকে: https://www.avrfreaks.net আমি ব্যবহার করছি একটি ফন্ট সেট যা ks0108 ইউনিভার্সাল সি লাইব্রেরির সাথে এসেছে। এটি এখানে দেখুন:

ধাপ 1: অংশ

অংশ তালিকা

সাধারণ যন্ত্রাংশ

একটি 8x8 এলইডি গ্রিড তৈরি করতে এবং সেগুলি নিয়ন্ত্রণ করতে আপনার প্রয়োজন হবে:

  • আপনার পছন্দের 64 এলইডি
  • LEDs জন্য 8 প্রতিরোধক
  • 1 কলামের জন্য শিফট রেজিস্টার
  • 1 সারির জন্য ড্রাইভার অ্যারে
  • 8 ড্রাইভার অ্যারে স্যুইচ করার জন্য প্রতিরোধক
  • 1 মাইক্রোকন্ট্রোলার
  • মাইক্রোকন্ট্রোলারের জন্য 1 ঘড়ির উৎস
  • 1 টি প্রোটোটাইপিং বোর্ড
  • 1 পাওয়ার সাপ্লাই
  • হুক-আপ তার

নির্দিষ্ট অংশ এখানে ব্যবহার করা হয়েছে

এই নির্দেশের জন্য আমি নিম্নলিখিত ব্যবহার করেছি:

  • 64 সবুজ LEDs (Mouser অংশ #604-WP7113GD)
  • LEDs জন্য 8 220ohm 1/4 ওয়াট প্রতিরোধক (Mouser অংশ #660-CFS1/4CT52R221J)
  • শিফট রেজিস্টার সহ 1 HEF4794 LED ড্রাইভার (Mouser part #771-HEF4794BPN)
  • 1 mic2981 হাই-ভোল্টেজ হাই-কারেন্ট সোর্স ড্রাইভার অ্যারে (Digikey part #576-1158-ND)
  • 8 3.3 kohm 1/4 ওয়াট প্রতিরোধক ড্রাইভার অ্যারে স্যুইচ করার জন্য (রেডিও শ্যাক অংশ #271-1328)
  • 1 Atmel ATmega8 মাইক্রোকন্ট্রোলার (Mouser অংশ #556-ATMEGA8-16PU)
  • মাইক্রোকন্ট্রোলার ঘড়ির উৎসের জন্য 1 12MHz স্ফটিক (মাউজার অংশ #815-এবি -12-বি 2)
  • 1 2200-হোল প্রোটোটাইপিং বোর্ড (রেডিও শ্যাক অংশ #276-147)
  • রূপান্তরিত ATX পাওয়ার সাপ্লাই: এই নির্দেশযোগ্য দেখুন
  • সলিড কোর 22-awg হুক-আপ ওয়্যার (রেডিও শ্যাক অংশ #278-1221)
  • Solderless breadboard (Radio Shack part #276-169 (আর পাওয়া যায় না, চেষ্টা করুন: 276-002)
  • AVR ড্রাগন (Mouser অংশ #556-ATAVRDRAGON)
  • ইক্রোস টেকনোলজিস দ্বারা ড্রাগন রাইডার 500: এই নির্দেশযোগ্য দেখুন

যন্ত্রাংশ সংক্রান্ত নোট

সারি এবং কলাম ড্রাইভার: সম্ভবত এই প্রকল্পের সবচেয়ে কঠিন অংশ সারি এবং কলাম ড্রাইভার বাছাই করা হয়। প্রথমত, আমি মনে করি না যে একটি আদর্শ 74HC595 শিফট রেজিস্টার এখানে একটি ভাল ধারণা কারণ তারা LEDs এর মাধ্যমে আমরা যে ধরনের বর্তমান পাঠাতে চাই তা পরিচালনা করতে পারে না। এই কারণেই আমি HEF4794 ড্রাইভারটি বেছে নিলাম কারণ এটি বর্তমান বর্তমানকে সহজেই ডুবিয়ে দিতে পারে যখন সমস্ত 8 টি এলইডি এক সারিতে চালু থাকে। আমাদের একটি সারি চালকের প্রয়োজন হবে যা একাধিক কলামকে একসঙ্গে স্ট্রিং করার জন্য পর্যাপ্ত কারেন্ট উৎস করতে পারে। মাইক 2981 500mA পর্যন্ত সরবরাহ করতে পারে। এই কাজটি সম্পাদনকারী একমাত্র অন্য অংশটি হল UDN2981 (digikey অংশ #620-1120-ND) যা একটি ভিন্ন নির্মাতার একই অংশ। যদি আপনি এই অ্যাপ্লিকেশনটিতে ভাল কাজ করে এমন অন্যান্য হাই-সাইড ড্রাইভার সম্পর্কে জানেন তবে দয়া করে আমাকে একটি বার্তা পাঠান। একাধিক ম্যাট্রিক্সকে একসঙ্গে স্ট্রিং করে একটি বড় LED অ্যারে তৈরি করা যেতে পারে এবং "মডুলার কনসেপ্টস" ধাপে আলোচনা করা হবে। যদি আপনি একটি বড় অ্যারে চান, এক সময়ে প্রয়োজনীয় সমস্ত অংশ অর্ডার করুন একটি সুবিধাজনক প্যাকেজে 8x8, 5x7 এবং 5x8 LED ম্যাট্রিক্স পাওয়া যায়। এগুলি একটি DIY ম্যাট্রিক্সের পরিবর্তে সহজ হওয়া উচিত। ইবে এগুলোর জন্য ভালো উৎস। মাউসারের কিছু 5x7 ইউনিট পাওয়া যায় যেমন অংশ #604-TA12-11GWA। আমি সস্তা সবুজ এলইডি ব্যবহার করেছি কারণ আমি শুধু খেলছি এবং মজা করছি। উচ্চ-উজ্জ্বলতার উপর বেশি ব্যয় করা, উচ্চ-দক্ষতার LEDs আপনাকে অনেক বেশি দর্শনীয় দেখানোর ডিসপ্লে তৈরি করতে দেয় … যদিও এটি আমার জন্য যথেষ্ট ভাল! নিয়ন্ত্রণ হার্ডওয়্যার: ম্যাট্রিক্স একটি Atmel AVR মাইক্রোকন্ট্রোলার দ্বারা নিয়ন্ত্রিত হয়। এর জন্য আপনার একজন প্রোগ্রামার লাগবে। কারণ আমি প্রোটোটাইপ করছি আমি ড্রাগন রাইডার 500 ব্যবহার করছি যার জন্য আমি সমাবেশ এবং ব্যবহারের নির্দেশাবলী উভয়ই লিখেছি। এটি প্রোটোটাইপিংয়ের জন্য একটি সহজ হাতিয়ার এবং আমি এটি অত্যন্ত সুপারিশ করি।

ধাপ 2: ম্যাট্রিক্স

জরায়ু
জরায়ু
জরায়ু
জরায়ু
জরায়ু
জরায়ু

আমি এই প্রকল্পের জন্য আমার নিজস্ব LED ম্যাট্রিক্স তৈরি করব 5mm এলইডি এবং রেডিও শ্যাক থেকে একটি প্রোটোটাইপিং বোর্ড ব্যবহার করে। এটি লক্ষ করা উচিত যে আপনি ইবে সহ বিভিন্ন উত্স থেকে 8x8 ডট ম্যাট্রিক্স নেতৃত্বাধীন মডিউল কিনতে পারেন। তাদের এই নির্দেশের সাথে ঠিক কাজ করা উচিত।

নির্মাণ বিবেচনা

এলইডিএসকে সারিবদ্ধ করতে হবে যাতে তারা একই কোণে একই দিকের মুখোমুখি হয়। আমি আমার জন্য সবচেয়ে সহজ বিকল্প খুঁজে পেয়েছি LED ফ্লাস এর বডিটি বোর্ডে রাখা এবং সেখানে একটি ছোট প্লেক্সিগ্লাস এবং একটি ক্ল্যাম্প দিয়ে ধরে রাখা। প্লেক্সিগ্লাস প্রোটোটাইপিং বোর্ডের সাথে সমান্তরাল ছিল তা নিশ্চিত করার জন্য আমি যে সারিতে কাজ করছিলাম তার থেকে কয়েক ইঞ্চি দূরে কয়েকটা এলইডি লাগিয়ে দিলাম। আমাদের সারি এবং কলাম চালকের পছন্দের কারণে আমাদের প্রয়োজন সারি দ্বারা সংযুক্ত অ্যানোড (LED এর ধনাত্মক সীসা) এবং ক্যাথোড (LED এর নেতিবাচক সীসা) কলাম দ্বারা সংযুক্ত। কন্ট্রোল ওয়্যার এই প্রোটোটাইপের জন্য আমি সলিড কোর (একক কন্ডাকটর) হুক-আপ ওয়্যার ব্যবহার করছি। এটি একটি ঝালহীন রুটিবোর্ডের সাথে ইন্টারফেস করা খুব সহজ হবে। আপনার প্রকল্প অনুসারে একটি ভিন্ন সংযোজক প্রকার ব্যবহার করতে বিনা দ্বিধায়।

ম্যাট্রিক্স নির্মাণ

1. প্রোটোটাইপিং বোর্ডে LEDS এর প্রথম কলাম রাখুন। প্রতিটি এলইডি -র জন্য আপনার পোলারিটি সঠিক কিনা তা দুবার পরীক্ষা করুন, যদি আপনি পরে বুঝতে পারেন তবে এটি ঠিক করা খুব কঠিন হবে। বোর্ডে LED এর উভয় লিড সোল্ডার। নিশ্চিত করুন যে তারা সঠিকভাবে একত্রিত হয়েছে (অদ্ভুত কোণে নয়) এবং ক্যাথোড লিডগুলি বন্ধ করুন। নিশ্চিত করুন যে আপনি অ্যানোড সীসাটি ক্লিপ করবেন না, আমাদের পরে এটির প্রয়োজন হবে তাই কেবল এটি নির্দেশ করুন। কঠিন কোর তারের একটি টুকরা থেকে অন্তরণ সরান। বোর্ডের স্তরে প্রতিটি ক্যাথোডে এই তারের টুকরাটি বিক্রি করুন।

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

5. 1-4 পুনরাবৃত্তি করুন যতক্ষণ না আপনার কাছে সমস্ত এলইডি থাকে এবং সমস্ত কলাম বাস সোল্ডার হয়। একটি সারি বাস তৈরি করতে, 90 ডিগ্রি কোণে বেশ কয়েকটি অ্যানোড লিড বাঁকুন যাতে তারা একই সারির অন্যান্য অ্যানোড লিডগুলি স্পর্শ করে।

  • নীচে এর বিস্তারিত ছবি আছে।
  • শর্ট সার্কিট তৈরি করে কলাম বাসের সংস্পর্শে এগুলো যেন না আসে সেদিকে খেয়াল রাখুন।

7. প্রতিটি জংশনে লিড সোল্ডার করুন এবং অতিরিক্ত অ্যানোড লিড বন্ধ করুন।

চূড়ান্ত এলইডি গত শেষ anode স্টিকিং ছেড়ে। এটি সারি ড্রাইভার নিয়ন্ত্রণ তারের সংযোগ করতে ব্যবহার করা হবে।

8. সমস্ত সারি বাস বিক্রি না হওয়া পর্যন্ত অংশ 6 এবং 7 পুনরাবৃত্তি করুন। নিয়ন্ত্রণ তার সংযুক্ত করুন।

  • আমি সারির জন্য লাল কঠিন কোর তার এবং কলামের জন্য কালো ব্যবহার করেছি।
  • প্রতিটি কলামের জন্য একটি এবং প্রতিটি সারির জন্য একটি তারের সংযোগ করুন। প্রতিটি বাসের শেষে এটি সহজেই করা যায়।

গুরুত্বপূর্ণ

এই LED ম্যাট্রিক্সে কোন বর্তমান সীমাবদ্ধ প্রতিরোধক নেই। যদি আপনি প্রতিরোধক ছাড়াই এটি পরীক্ষা করেন তবে আপনি সম্ভবত আপনার LEDs পুড়িয়ে ফেলবেন এবং এই সমস্ত কাজ কিছুই হবে না।

ধাপ 3: কন্ট্রোল হার্ডওয়্যার

কন্ট্রোল হার্ডওয়্যার
কন্ট্রোল হার্ডওয়্যার
কন্ট্রোল হার্ডওয়্যার
কন্ট্রোল হার্ডওয়্যার

আমাদের LED ম্যাট্রিক্সের কলাম এবং সারি নিয়ন্ত্রণ করতে হবে। ম্যাট্রিক্সটি তৈরি করা হয়েছে যাতে আনোড (LED এর ভোল্টেজ সাইড) সারি গঠন করে এবং ক্যাথোডস (LED এর গ্রাউন্ড সাইড) কলামগুলি তৈরি করে। এর মানে হল আমাদের সারির চালকের বর্তমান সোর্স প্রয়োজন এবং আমাদের কলাম ড্রাইভারকে ডুবে যেতে হবে। এইভাবে আমি মাত্র চারটি মাইক্রোকন্ট্রোলার পিনের সাহায্যে প্রায় সীমাহীন কলাম নিয়ন্ত্রণ করতে পারি। কেবলমাত্র তিনটি ব্যবহার করা সম্ভব যদি এনাবল আউটপুট পিনটি সরাসরি ভোল্টেজের সাথে সংযুক্ত থাকে। আমি শিফট রেজিস্টার সহ HEF4794 LED ড্রাইভার নির্বাচন করেছি। এটি একটি স্ট্যান্ডার্ড 74HC595 এর চেয়ে একটি ভাল বিকল্প কারণ এটি 8 টি LEDs এক সময়ে থাকলে বর্তমান বর্তমানকে সহজেই ডুবিয়ে দিতে পারে। উচ্চ দিকে (সারিগুলির বর্তমান উৎস) আমি একটি mic2981 ব্যবহার করছি পরিকল্পিত একটি UDN2981 দেখায়, আমি বিশ্বাস করি এই দুটি বিনিময়যোগ্য। এই ড্রাইভার 500mA পর্যন্ত কারেন্ট সোর্স করতে পারে। কারণ আমরা এক সময়ে শুধুমাত্র 1 সারি চালাচ্ছি এটি এই চিপের জন্য 33 টি কলাম পর্যন্ত বিস্তারের জন্য অনেক সুযোগ দেয় ("মডুলার কনসেপ্ট" ধাপে এর উপর আরো)।

কন্ট্রোল হার্ডওয়্যার নির্মাণ

এই নির্দেশযোগ্য জন্য আমি শুধু এই সার্কিট breadboarded আছে। আরো স্থায়ী সমাধানের জন্য আপনি নিজের সার্কিট বোর্ড খোদাই করতে চান অথবা প্রোটোটাইপিং বোর্ড ব্যবহার করতে চান। সারি চালক

  • মাইক্রো 2981 (বা ইউডিএন 2981) ব্রেডবোর্ডে রাখুন
  • পিন 9 কে ভোল্টেজের সাথে সংযুক্ত করুন (এটি পরিকল্পিতভাবে বিভ্রান্তিকর)
  • পিন 10 কে গ্রাউন্ডে সংযুক্ত করুন (এটি পরিকল্পিতভাবে বিভ্রান্তিকর)
  • 1-8 পিনের সাথে সংযোগকারী 3k3 প্রতিরোধক সন্নিবেশ করান
  • ATmega8 (PD0-PD8) এর পোর্ট D থেকে 8 টি প্রতিরোধকের সাথে সংযোগ করুন
  • LED ম্যাট্রিক্সের 8 সারি কন্ট্রোল ওয়্যারগুলিকে 11-18 পিনের সাথে সংযুক্ত করুন (মনে রাখবেন যে আমি LEDs এর সর্বনিম্ন সারিটি পিন 18 এবং সর্বোচ্চ সারিটি পিন 11 এর সাথে সংযুক্ত করেছি)।

2. কলাম ড্রাইভার

  • Hef4794 ব্রেডবোর্ডে রাখুন
  • পিন 16 কে ভোল্টেজের সাথে সংযুক্ত করুন
  • পিন 8 কে মাটিতে সংযুক্ত করুন
  • পিন 4-7 এবং 11-14 এ 220 ওহম প্রতিরোধক সংযুক্ত করুন।
  • LED ম্যাট্রিক্স থেকে 8 টি কলাম কন্ট্রোল তারের সাথে সংযুক্ত করুন 8 টি প্রতিরোধক যা আপনি কেবল সংযুক্ত করেছেন।
  • AT1ga8 এর PC0 এর সাথে Pin1 (Latch) সংযুক্ত করুন
  • ATmega8 এর PC1 এর সাথে Pin2 (Data) সংযুক্ত করুন
  • ATmega8 এর PC2 এর সাথে Pin3 (Clock) সংযুক্ত করুন
  • ATmega8 এর PC3 এর সাথে Pin15 (আউটপুট সক্ষম করুন) সংযুক্ত করুন

3. ঘড়ি ক্রিস্টাল

একটি 12MHz স্ফটিক এবং লোড ক্যাপাসিটারগুলিকে পরিকল্পিতভাবে সংযুক্ত করুন

4. আইএসপি

পরিকল্পিতভাবে দেখানো হিসাবে প্রোগ্রামিং হেডার সংযুক্ত করুন

5. ফিল্টারিং ক্যাপাসিটর এবং পুল-আপ প্রতিরোধক

  • ATmega8 এ সরবরাহ করা ভোল্টেজ ফিল্টার করা ভাল। ATmega8 এর পিন 7 এবং 8 এর মধ্যে 0.1uf ক্যাপাসিটর ব্যবহার করুন
  • রিসেট পিনটি ভাসমান রেখে দেওয়া উচিত নয় কারণ এটি এলোমেলো রিসেট করতে পারে। এটিকে ভোল্টেজের সাথে সংযুক্ত করতে একটি রোধক ব্যবহার করুন, প্রায় 1k ভাল কিছু হওয়া উচিত। আমি পরিকল্পিত একটি 10k প্রতিরোধক ব্যবহার করেছি।

6. নিশ্চিত করুন যে আপনি +5v নিয়ন্ত্রিত শক্তি ব্যবহার করছেন। রেগুলেটর ডিজাইন করা আপনার ব্যাপার।

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

্জগ

হ্যাঁ, সবকিছুর মতোই একটা কৌশল আছে। কৌতুক হল যে একবারে 8 টিরও বেশি LEDs আলোকিত হয় না। এটি ভালভাবে কাজ করার জন্য, কিছুটা চতুর প্রোগ্রামিং প্রয়োজন। আমি যে ধারণাটি বেছে নিয়েছি তা হল টাইমার ইন্টারাপ্ট ব্যবহার করা। ডিসপ্লে ইন্টারাপ্ট কিভাবে সরল ইংরেজিতে কাজ করে তা এখানে:

  • টাইমার একটি নির্দিষ্ট বিন্দু পর্যন্ত গণনা করে, যখন বাধাপ্রাপ্ত হয় সেবার রুটিন চালানো হয়।
  • এই রুটিনটি নির্ধারণ করে যে কোন সারিটি পরবর্তী প্রদর্শিত হবে।
  • পরবর্তী সারির জন্য তথ্য একটি বাফার থেকে দেখানো হয় এবং কলাম ড্রাইভারে স্থানান্তরিত করা হয় (এই তথ্যটি "ল্যাচড" নয় তাই এটি এখনও প্রদর্শিত হয়নি)।
  • সারি চালক বন্ধ, কোনো LEDs বর্তমানে জ্বলছে না।
  • কলাম চালক যে তথ্যটি আমরা দুই ধাপ আগে স্থানান্তরিত করেছি তাতে "লেচ" করা হয়েছে বর্তমান তথ্য প্রদর্শনের জন্য।
  • সারি ড্রাইভার তারপর আমরা প্রদর্শন করা হয় নতুন সারি বর্তমান প্রদান করে।
  • ইন্টারাপ্ট সার্ভিস রুটিন শেষ হয় এবং পরবর্তী বাধা না হওয়া পর্যন্ত প্রোগ্রাম স্বাভাবিক প্রবাহে ফিরে আসে।

এটি খুব দ্রুত ঘটে। বাধা প্রতি 1 mSec নিক্ষেপ করা হয়। এর মানে হল যে আমরা প্রতি 8 mSec এ একবার পুরো ডিসপ্লে রিফ্রেশ করছি। এর মানে হল 125Hz এর ডিসপ্লে রেট। উজ্জ্বলতা সম্পর্কে কিছু উদ্বেগ রয়েছে কারণ আমরা মূলত একটি 1/8 ডিউটি চক্রে LEDs চালাচ্ছি (সেগুলি 7/8 বন্ধ)। আমার ক্ষেত্রে আমি একটি দৃশ্যমান ঝলকানি ছাড়া একটি পর্যাপ্ত উজ্জ্বল প্রদর্শন পেতে সম্পূর্ণ LED ডিসপ্লে একটি অ্যারে মধ্যে ম্যাপ আউট করা হয়। বিরতির মধ্যে অ্যারে পরিবর্তন করা যেতে পারে (পারমাণবিকতার বিষয়ে সচেতন থাকুন) এবং পরবর্তী বিরতির সময় প্রদর্শনীতে উপস্থিত হবে। এই নির্দেশযোগ্য। আমি সোর্স কোড (সি তে লেখা এবং AVR-GCC- এর সাথে সংকলিত) পাশাপাশি হেক্স ফাইলটি সরাসরি প্রোগ্রামে অন্তর্ভুক্ত করেছি। আমি সমস্ত কোড মন্তব্য করেছি তাই শিফট রেজিস্টারে ডেটা কিভাবে পেতে হয় এবং সারি রিফ্রেশ কিভাবে কাজ করে সে সম্পর্কে যেকোনো প্রশ্ন পরিষ্কার করার জন্য আপনাকে এটি ব্যবহার করতে হবে। ks0108 সার্বজনীন সি লাইব্রেরি। সেই লাইব্রেরিটি এখানে পাওয়া যাবে:

শিফট রেজিস্টার: কিভাবে

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

  • ল্যাচ - এই পিনটি শিফট রেজিস্টারকে বলে যখন নতুন প্রবেশ করা ডেটাতে স্যুইচ করার সময় হয়
  • ডেটা - 1 এবং 0 এর শিফট বলছে কি পিন সক্রিয় করতে হবে এই পিনে প্রাপ্ত হয়।
  • ঘড়ি - এটি মাইক্রোকন্ট্রোলার থেকে পাঠানো একটি পালস যা শিফট রেজিস্টারকে তথ্য পড়া এবং যোগাযোগ প্রক্রিয়ার পরবর্তী ধাপে যেতে বলে
  • আউটপুট সক্ষম করুন - এটি একটি অন/অফ সুইচ, হাই = অন, লো = অফ

এটা আপনার বিডিং করা

ল্যাচ কম সেট করা শিফট রেজিস্টারকে বলে যে আমরা এটি লিখতে যাচ্ছি।

ধাপ 2: শিফট রেজিস্টারে আপনি যে লজিক ভ্যালু পাঠাতে চান তাতে ডেটা পিন সেট করুন ধাপ 3: ক্লক পিন হাই সেট করুন, শিফট রেজিস্টারকে বর্তমান ডেটা পিন ভ্যালুতে পড়তে বলুন

বর্তমানে শিফট রেজিস্টারে থাকা অন্যান্য সমস্ত মান 1 পয়েন্টে স্থানান্তরিত হবে, যা ডেটা পিনের বর্তমান লজিক ভ্যালুর জন্য জায়গা তৈরি করবে।

ধাপ 4: ক্লক পিন লো সেট করুন এবং 2 এবং 3 ধাপগুলি পুনরাবৃত্তি করুন যতক্ষণ না সমস্ত ডেটা শিফট রেজিস্টারে পাঠানো হয়।

পরবর্তী ডেটা ভ্যালুতে পরিবর্তন করার আগে ঘড়ির পিন কম সেট করতে হবে। এই পিনটিকে উচ্চ এবং নিম্নের মধ্যে টগল করা যা "ঘড়ির পালস" তৈরি করে শিফট রেজিস্টারটি জানতে হবে প্রক্রিয়াটির পরবর্তী ধাপে কখন যেতে হবে।

ধাপ 5: ল্যাচ উচ্চ সেট করুন

এটি শিফট রেজিস্টারকে স্থানান্তরিত সমস্ত ডেটা নিতে এবং আউটপুট পিনগুলি সক্রিয় করতে এটি ব্যবহার করতে বলে। এর মানে হল যে আপনি ডাটা দেখতে পাবেন না কারণ এটি স্থানান্তরিত হচ্ছে; আউটপিন পিনগুলিতে কোনও পরিবর্তন হবে না যতক্ষণ না ল্যাচ উচ্চ সেট করা হয়।

ধাপ 6: আউটপুট উচ্চ সক্ষম সেট করুন

  • অন্য তিনটি কন্ট্রোল পিনের সাথে যা ঘটছে না কেন, সক্ষম আউটপুটটি উচ্চতর সেট না করা পর্যন্ত কোনও পিন আউটপুট থাকবে না।
  • আপনি যদি চান তবে এই পিনটি সর্বদা উঁচুতে রাখা যেতে পারে

ক্যাসকেডিংয়ের জন্য দুটি পিন ব্যবহার করতে পারেন, ওএস এবং ওএস 1। ওএস দ্রুত বর্ধনশীল ঘড়ির জন্য এবং ওস 1 ধীর গতির ঘড়ির জন্য। এই পিনটিকে পরবর্তী শিফট রেজিস্টারের ডাটা পিনে হুক করুন এবং এই চিপ থেকে ওভারফ্লো পরবর্তীটিতে প্রবেশ করা হবে। আপডেটের শেষ

প্রদর্শনকে সম্বোধন করে

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

প্রোগ্রামিং

প্রোগ্রামিং নিয়ে এখানে বিস্তারিত আলোচনা করা হবে না। আমি আপনাকে সতর্ক করব যে আপনি একটি DAPA প্রোগ্রামিং কেবল ব্যবহার করবেন না কারণ আমি বিশ্বাস করি আপনি একবার চিপটি 12MHz এ চালানোর সময় প্রোগ্রাম করতে পারবেন না। অন্যান্য সকল স্ট্যান্ডার্ড প্রোগ্রামারদের কাজ করা উচিত (STK500, MKII, ড্রাগন, প্যারালাল/সিরিয়াল প্রোগ্রামার, ইত্যাদি।) ফিউজ: 12MHz ক্রিস্টালফিউজ: 0xC9lfuse: 0xEF

কর্মে

একবার আপনি চিপ প্রোগ্রাম করার সময় ডিসপ্লেটি "হ্যালো ওয়ার্ল্ড!" স্ক্রোল করা উচিত। এখানে ক্রিয়ায় LED ম্যাট্রিক্সের একটি ভিডিও। ভিডিওর মান বেশ কম কারণ আমি এটি আমার ডিজিটাল ক্যামেরার ভিডিও ফিচার দিয়ে করেছি এবং সঠিক ভিডিও বা ওয়েবক্যাম নয়।

ধাপ 5: মডুলার ধারণা

মডুলার ধারণা
মডুলার ধারণা
মডুলার ধারণা
মডুলার ধারণা
মডুলার ধারণা
মডুলার ধারণা
মডুলার ধারণা
মডুলার ধারণা

এই প্রকল্পটি মাপযোগ্য। আপনার বিদ্যুৎ সরবরাহ কতটা বর্তমান প্রদান করতে পারে তা একমাত্র সত্য সীমাবদ্ধ ফ্যাক্টর হবে। (অন্য বাস্তবতা হল আপনার কাছে কতগুলি LED এবং রেজিস্টার শিফটার আছে)।

গণিত

আমি প্রায় 15mA (5V-1.8vDrop/220ohms = 14.5mA) এ LEDs চালাচ্ছি। এর মানে আমি মাইক 2981 ড্রাইভার (500mA/15mA = 33.3) দিয়ে 33 টি কলাম চালাতে পারি। 8 দ্বারা বিভক্ত আমরা দেখতে পারি যে এটি আমাদের 4 টি শিফট রেজিস্টার একসাথে স্ট্রিং করতে দেয়। এছাড়াও বিবেচনা করুন যে আপনার সমস্ত 32 টি কলাম বাম থেকে ডানে প্রসারিত করার দরকার নেই। আপনি পরিবর্তে একটি 16x16 অ্যারে তৈরি করতে পারেন যা 8x32 অ্যারের মতো একইভাবে তারযুক্ত। এটি 4 বাইটে স্থানান্তরিত করে সমাধান করা হবে…। প্রথম দুইটি নবম সারির জন্য এলইডি -তে স্থানান্তরিত হবে, দ্বিতীয় দুটি বাইট প্রথম সারিতে স্থানান্তরিত হবে। উভয় সারি সারি চালকের একটি পিন দ্বারা সোর্স করা হবে।

ক্যাসকেডিং শিফট রেজিস্টার

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

একাধিক সারি ড্রাইভার

সারি ড্রাইভার (mic2981) 32 কলাম চালানোর জন্য পর্যাপ্ত কারেন্ট উৎস করতে পারে। আপনি যদি 32 টিরও বেশি কলাম চান? একাধিক মাইক্রোকন্ট্রোলার পিন ব্যবহার না করে একাধিক সারির ড্রাইভার ব্যবহার করা সম্ভব।আপনি যদি এক সময়ে আলো করা সম্ভবের চেয়ে বেশি কলাম ব্যবহার করেন তবে অতিরিক্ত সারি চালকরা প্রয়োজনীয় কারেন্ট সরবরাহ করতে পারেন। মাইক্রোকন্ট্রোলার থেকে একই ইনপুট পিন ব্যবহার করা হয় তাই সারিগুলির স্ক্যানিং পরিবর্তন করার প্রয়োজন নেই। অন্য কথায়, প্রতিটি ড্রাইভার 8x32 ব্লকের জন্য সারি নিয়ন্ত্রণ করে। যদিও 64 টি কলামে একই ধরনের শারীরিক সারি বসানো থাকতে পারে, আমরা প্রথম 32 টি কলামের 8 টি সারির জন্য একটি চালক ব্যবহার করে, এবং দ্বিতীয় 32 টি কলামের 8 সারির জন্য একটি চালক ব্যবহার করে সারি বাসগুলিকে দুটি ভাগে ভাগ করি। এর একটি পরিকল্পিত উদাহরণ নিচে দেওয়া হল। সম্ভাব্য ভুলগুলি: ১। একই সংখ্যক কলাম সহ একাধিক সারির ড্রাইভার ব্যবহার করবেন না। এটি করার অর্থ হল যে প্রতিটি শিফট রেজিস্টার পিন এক সময়ে একাধিক LED চালিত হবে। প্রতিটি সারির চালকের জন্য আপনার অবশ্যই 8 টি প্রতিরোধক (3k3) সেট থাকতে হবে, একাধিক সারির চালকদের জন্য একটি সেট কাজ করবে না কারণ এটি গেটগুলি স্যুইচ করার জন্য প্রয়োজনীয় কারেন্ট সরবরাহ করবে না।

উদাহরণ স্বরূপ

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

ধাপ 6: উপসংহার

সম্ভাব্য সংযোজন

I2CI এই ডিজাইনে অব্যবহৃত দুটি ওয়্যার ইন্টারফেস (I2C) পিন রেখে গেছে। বেশ কয়েকটি আকর্ষণীয় সম্ভাবনা রয়েছে যা এই দুটি পিন ব্যবহার করতে পারে। একটি I2C EEPROM সংযোজন অনেক বড় বার্তা সংরক্ষণের অনুমতি দেবে। মেগা 8 কে একটি I2C সামঞ্জস্যপূর্ণ ডিসপ্লে ড্রাইভারে পরিণত করার জন্য প্রোগ্রামিং ডিজাইন করার সম্ভাবনাও রয়েছে। এটি আপনার LED অ্যারেতে I2C বাসের উপর দিয়ে পাস করার মাধ্যমে একটি USB সক্ষম ডিভাইস থাকার সম্ভাবনা খুলে দেবে। এটি মেনু সিস্টেমের মাধ্যমে বার্তাগুলিকে প্রোগ্রাম করার অনুমতি দেবে।এই নির্দেশের জন্য আমি শুধুমাত্র কয়েকটি ডিসপ্লে ফাংশন প্রয়োগ করেছি। একজন শুধু ডিসপ্লেতে অক্ষর লেখেন, অন্যজন ডিসপ্লেতে অক্ষর স্ক্রল করে। মনে রাখা গুরুত্বপূর্ণ বিষয় হল যে আপনি আলোতে যা দেখেন তা একটি ডেটা অ্যারেতে উপস্থাপন করা হয়। যদি আপনি ডেটা অ্যারে পরিবর্তন করার জন্য ক্লিয়ারার উপায় নিয়ে আসেন, তাহলে লাইটগুলিও একইভাবে পরিবর্তিত হবে। এটি একটি স্টিরিও সহ সংকেত বিশ্লেষক হিসাবে ব্যবহার করা যেতে পারে। স্ক্রলিং উপরে থেকে নীচে বা নীচে থেকে প্রয়োগ করা যেতে পারে, এমনকি বাম থেকে ডানেও। শুভ কামনা মজা কর!

ধাপ 7: অনুসরণ করুন

অনুসরণ করুন
অনুসরণ করুন
অনুসরণ করুন
অনুসরণ করুন
অনুসরণ করুন
অনুসরণ করুন
অনুসরণ করুন
অনুসরণ করুন

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

সার্কিট বোর্ডের বৈশিষ্ট্য

  • শিফট রেজিস্টারগুলি পৃথক বোর্ডে থাকে যা প্রদর্শনের আকার বাড়ানোর জন্য একসঙ্গে ডেইজি বেঁধে রাখা যায়।
  • কন্ট্রোলার বোর্ডের নিজস্ব পাওয়ার রেগুলেটর আছে তাই এটি যে কোনও পাওয়ার সোর্স দ্বারা চালানো যেতে পারে যা 7v-30v (9v ব্যাটারি বা 12v বেঞ্চ সরবরাহ উভয়ই আমার জন্য ঠিক কাজ করে)।
  • 6 পিন ISP হেডার অন্তর্ভুক্ত করা হয়েছে যাতে মাইক্রোকন্ট্রোলারটি বোর্ড থেকে সরিয়ে না দিয়ে পুনরায় প্রোগ্রাম করা যায়।
  • 4-পিন হেডার ভবিষ্যতে I2C বাসের ব্যবহারের জন্য উপলব্ধ। এটি একটি ইপ্রমের জন্য আরো বার্তা সঞ্চয় করার জন্য ব্যবহার করা যেতে পারে বা এমনকি এটি অন্য একটি মাইক্রোকন্ট্রোলার দ্বারা নিয়ন্ত্রিত একটি ক্রীতদাস ডিভাইস (RSS টিকার কেউ?)
  • Moment টি ক্ষণস্থায়ী পুশ বাটন ডিজাইনে অন্তর্ভুক্ত করা হয়েছে। আমি এই বোতামগুলির ব্যবহার অন্তর্ভুক্ত করার জন্য ভবিষ্যতে ফার্মওয়্যারটি পরিবর্তন করতে পারি।

সমাবেশ

আমাকে প্লেক্সিগ্লাস, এঙ্গেল বন্ধনী, 6x32 মেশিন স্ক্রু, বাদাম এবং ওয়াশার, সেইসাথে থ্রেড হোলগুলিতে একটি ট্যাপ সেট দিন এবং আমি কিছু তৈরি করতে পারি।

লেট ইট গ্লোতে দ্বিতীয় পুরস্কার!

প্রস্তাবিত: