সুচিপত্র:

উবার আই 2 সি এলসিডি কন্ট্রোলার মডিউল: 6 টি ধাপ
উবার আই 2 সি এলসিডি কন্ট্রোলার মডিউল: 6 টি ধাপ
Anonim
উবার I2C LCD কন্ট্রোলার মডিউল
উবার I2C LCD কন্ট্রোলার মডিউল
উবার I2C LCD কন্ট্রোলার মডিউল
উবার I2C LCD কন্ট্রোলার মডিউল
উবার I2C LCD কন্ট্রোলার মডিউল
উবার I2C LCD কন্ট্রোলার মডিউল

প্রস্তাবনা

একটি HD44780 LCD ভিত্তিক নিয়ামক মডিউল (উপরের ছবি 1) কিভাবে তৈরি করতে হয় তা এই নির্দেশযোগ্য বিশদ। মডিউলটি ব্যবহারকারীকে I2C- এর উপর প্রোগ্রামগতভাবে LCD- এর সমস্ত দিক নিয়ন্ত্রণ করতে দেয়; এলসিডি এবং ডিসপ্লে, কন্ট্রাস্ট এবং ব্যাক আলোর তীব্রতা। যদিও Arduino Uno R3 এটিকে প্রোটোটাইপ করতে ব্যবহৃত হয়েছিল, এটি I2C সমর্থনকারী যেকোনো মাইক্রোকন্ট্রোলারের সাথে সমানভাবে ভালভাবে কাজ করবে।

ভূমিকা

এই নিবন্ধের উপরে উল্লিখিত হিসাবে একটি I2C LCD কন্ট্রোলার মডিউল তৈরির নথিপত্র রয়েছে, এটি প্রাথমিকভাবে একটি ডিজাইন ব্যায়াম হিসাবে নির্ধারিত হয়েছিল যাতে একটি বাস্তব কার্যকরী PCB তৈরি করতে কত সময় লাগবে তা নির্ধারণ করা যায়।

নকশাটি স্ট্যান্ডার্ড জেনেরিক কন্ট্রোলার মডিউল (উপরের ছবি 3) প্রতিস্থাপন করে এবং নির্দেশিকা এবং লাইব্রেরিতে আঁকছে যা আমি আগে তৈরি করেছি।

প্রাথমিক ধারণার প্রোটোটাইপ (উপরের ছবি 2) থেকে সম্পূর্ণ, সম্পূর্ণভাবে পরীক্ষিত PCB (উপরের ছবি 1) পর্যন্ত মোট 5.5 দিন লেগেছে।

আমি কি অংশ প্রয়োজন? নীচে সংযুক্ত উপকরণ বিল দেখুন

আমার কোন সফটওয়্যার দরকার?

  • Arduino IDE 1.6.9,
  • Kicad v4.0.7 যদি আপনি PCB পরিবর্তন করতে চান। অন্যথায় JLCPCB- এ শুধু 'LCD_Controller.zip' পাঠান।

আমি কি সরঞ্জাম প্রয়োজন?

  • মাইক্রোস্কোপ কমপক্ষে x3 (SMT সোল্ডারিং এর জন্য),
  • এসএমডি সোল্ডারিং আয়রন (লিকুইড ফ্লাক্স পেন এবং ফ্লাক্স কোরড সোল্ডার সহ),
  • শক্তিশালী টুইজার (SMT সোল্ডারিং এর জন্য),
  • সূক্ষ্ম প্লায়ার (বিন্দু এবং স্নাব নাকযুক্ত),
  • শ্রবণযোগ্য ধারাবাহিকতা পরীক্ষা সহ DMM।

আমার কোন দক্ষতা দরকার?

  • অনেক ধৈর্য,
  • ম্যানুয়াল দক্ষতা এবং চমৎকার হাত/চোখের সমন্বয় একটি মহান চুক্তি,
  • চমৎকার সোল্ডারিং দক্ষতা।

বিষয় আচ্ছাদিত

  • ভূমিকা
  • সার্কিট ওভারভিউ
  • পিসিবি উত্পাদন
  • সফটওয়্যার ওভারভিউ
  • নকশা পরীক্ষা করা হচ্ছে
  • উপসংহার
  • রেফারেন্স ব্যবহৃত

ধাপ 1: সার্কিট ওভারভিউ

সার্কিট ওভারভিউ
সার্কিট ওভারভিউ

সমস্ত ইলেকট্রনিক্সের একটি পূর্ণ সার্কিট ডায়াগ্রাম উপরের ছবি 1 এ দেওয়া হয়েছে, সাথে নীচের পিডিএফ সহ।

সার্কিটটি নিম্নোক্ত উন্নতি সহ স্ট্যান্ডার্ড PCF8574A I2C LCD কন্ট্রোলার মডিউলের সঠিক প্রতিস্থাপনের জন্য ডিজাইন করা হয়েছিল;

  • I2C ব্যবহারকারী নির্বাচনযোগ্য 3v3 বা 5v সামঞ্জস্য,
  • ডিজিটাল কনট্রাস্ট কন্ট্রোল বা প্রচলিত পট সেটিং,
  • কোয়ার্টিক ইজিং ফাংশন কন্ট্রোল সহ পরিবর্তনশীল ব্যাক লাইট ইনটেনসিটি সিলেকশন মসৃণ ফেইডিং অর্জন করতে।

এলসিডি ডিসপ্লে কন্ট্রোল

এটি I2C- এর সমান্তরাল রূপান্তরের জন্য PCF8574A (IC2) ব্যবহার করে স্ট্যান্ডার্ড I2C LCD কন্ট্রোলার মডিউলের একটি অনুকরণীয়।

এর জন্য ডিফল্ট I2C ঠিকানা হল 0x3F।

3v3 বা 5v I2C সামঞ্জস্য

3v3 অপারেশনের জন্য Q1, Q2 ROpt1, 2, 5 & 6, IC1, C2 এবং C2 ফিট।

যদি 5v অপারেশন প্রয়োজন হয় তাহলে কোন 3v3 কম্পোনেন্টের সাথে মানানসই নয়, তাদের বদলে 0 ওহম রেজিস্টার ROpt 3 এবং 4 দিয়ে প্রতিস্থাপন করুন।

ডিজিটাল কনট্রাস্ট

ডিজিটাল কন্ট্রাস্ট নিয়ন্ত্রণ একটি ডিজিটাল পটেন্টিওমিটার U2 MCP4561-103E/MS এবং C4, R5 ব্যবহারের মাধ্যমে অর্জিত হয়।

যদি একটি প্রচলিত যান্ত্রিক পোটেন্টিওমিটারের প্রয়োজন হয় তবে U2, C4 এবং R5 এর পরিবর্তে PCB, RV1 10K এ লাগানো যেতে পারে। সামঞ্জস্যপূর্ণ potentiometer জন্য BoM দেখুন।

Jumper J6 ব্রিজ করে I2C ঠিকানা হল 0x2E। এটি স্বাভাবিক অপারেশনের জন্য ধরে নেওয়া হয়েছিল যে এটি ব্রিজ করা হয়েছে।

পরিবর্তনশীল ফিরে হালকা তীব্রতা নির্বাচন

পরিবর্তনশীল ব্যাক লাইটের তীব্রতা U1 পিন 6 এবং ATTiny85 এর মাধ্যমে LCD LED ব্যাক লাইটের PWM মডুলেশন দ্বারা নিয়ন্ত্রিত হয়। স্ট্যান্ডার্ড I2C LCD কন্ট্রোলার মডিউল R1, T1 R7 এবং T2 এর সাথে সম্পূর্ণ সামঞ্জস্য বজায় রাখার জন্য +ve সাপ্লাই রেল মডুলেট করতে ব্যবহৃত হয়।

এর জন্য ডিফল্ট I2C ঠিকানা হল 0x08। এটি ব্যবহারকারী নির্বাচনযোগ্য, U1 প্রোগ্রামিং করার পূর্বে কম্পাইল করার সময়।

ধাপ 2: PCB উত্পাদন

পিসিবি উত্পাদন
পিসিবি উত্পাদন
পিসিবি উত্পাদন
পিসিবি উত্পাদন
পিসিবি উত্পাদন
পিসিবি উত্পাদন
পিসিবি উত্পাদন
পিসিবি উত্পাদন

পূর্বে উল্লিখিত হিসাবে এই নির্দেশযোগ্য একটি ব্যায়াম ছিল, প্রাথমিকভাবে একটি নকশা সম্পন্ন করতে কতক্ষণ লাগবে তা নির্ধারণ করার উদ্দেশ্যে (যার একটি বাস্তব উদ্দেশ্য ছিল)।

এই দৃষ্টান্তে আমি শনিবার বিকেলে প্রাথমিক ধারণার কথা ভেবেছিলাম এবং উপরের সন্ধ্যা ছবি 1 দ্বারা প্রোটোটাইপটি সম্পন্ন করেছি। আমার ধারণা হিসাবে বলা হয়েছে, I2C LCD কন্ট্রোলার মডিউলের নিজস্ব ভেরিয়েন্ট তৈরি করা, একই রকম পদচিহ্ন সহ, I2C- এর উপর LCD- র সম্পূর্ণ প্রোগ্রাম্যাটিক কন্ট্রোল দেওয়া।

কিক্যাড v4.0.7 ছবি 2 এবং 3 এর সাথে পরিকল্পিত চিত্র এবং পিসিবি বিন্যাস তৈরি করা হয়েছিল। এটি রবিবার দুপুরে সম্পন্ন হয়েছিল এবং অংশগুলি ফার্নেল থেকে অর্ডার করা হয়েছিল এবং রবিবার সন্ধ্যার মধ্যে পিসিবি জেএলসিপিসিবিতে আপলোড করা হয়েছিল।

বুধবার ফার্নেল থেকে উপাদানগুলি এসেছিল, তারপরে বৃহস্পতিবার জেএলসিপিসিবি থেকে পিসিবিগুলি (আমি জিনিসগুলিকে গতি বাড়ানোর জন্য ডিএইচএল ডেলিভারি পরিষেবা ব্যবহার করেছি) ছবি 4, 5, 6 এবং 7।

বৃহস্পতিবার সন্ধ্যা পর্যন্ত দুটি বোর্ড (3v3 এবং 5v ভেরিয়েন্ট) তৈরি করা হয়েছিল এবং 4 বাই 20 এলসিডি ডিসপ্লেতে সফলভাবে পরীক্ষা করা হয়েছিল। ছবি 8, 9 এবং 10

প্রাথমিক ধারণা থেকে শেষ পর্যন্ত একটি আশ্চর্যজনক 5.5 দিন।

এটা আমাকে বিস্মিত করে যে JLCPCB কত দ্রুত অর্ডার নিতে পারে, একটি ডবল পার্শ্বযুক্ত PTH PCB তৈরি করতে পারে এবং এটি যুক্তরাজ্যে পাঠাতে পারে। উত্পাদনের জন্য 2 দিন এবং বিতরণের জন্য 2 দিন। এটি ইউকে ভিত্তিক পিসিবি নির্মাতাদের তুলনায় এবং দামের একটি ভগ্নাংশে দ্রুত।

ধাপ 3: সফ্টওয়্যার ওভারভিউ

সফটওয়্যার ওভারভিউ
সফটওয়্যার ওভারভিউ
সফটওয়্যার ওভারভিউ
সফটওয়্যার ওভারভিউ

I2C LCD কন্ট্রোলার মডিউল নিয়ন্ত্রণের জন্য প্রয়োজনীয় সফটওয়্যারের তিনটি প্রধান অংশ রয়েছে;

1. LiquidCrystal_I2C_PCF8574 Arduino Library

এখানে পাওয়া

LCD ডিসপ্লে নিয়ন্ত্রণ করতে আপনার Arduino স্কেচে ব্যবহার করা।

দ্রষ্টব্য: এটি জেনেরিক I2C LCD মডিউল কন্ট্রোলারের সাথে সমানভাবে ভাল কাজ করে। শুধুমাত্র এটি দেয় অন্যান্য লাইব্রেরির তুলনায় কার্যকারিতা দেয়।

2. MCP4561_DIGI_POT Arduino লাইব্রেরি

LCD কনট্রাস্টকে প্রোগ্রামগতভাবে নিয়ন্ত্রণ করতে আপনার স্কেচে ব্যবহার করা

এখানে পাওয়া

3. মসৃণ বিবর্ণতা অর্জনের জন্য PWM এবং কোয়ার্টিক ইজিং ফাংশন ব্যবহার করে LCD ব্যাক লাইট লেভেলের প্রোগ্রাম্যাটিক কন্ট্রোল।

পূর্বে উল্লিখিত হিসাবে বোর্ডে একটি একক ATTiny85 রয়েছে যা ডিসপ্লে ব্যাক লাইটের ক্রমান্বয়ে বিবর্ণতা নিয়ন্ত্রণ করতে ব্যবহৃত হয়।

এই সফটওয়্যারের বিবরণ পূর্বের নির্দেশিত 'মসৃণ PWM LED ফেইডিং দ্য ATTiny85' তে দেওয়া হয়েছে

এই ক্ষেত্রে চূড়ান্ত পিসিবি মাত্রাগুলি জেনেরিক এলসিডি কন্ট্রোলার মডিউল হিসাবে একই রাখার জন্য ATTiny85 এর SOIC রূপটি বেছে নেওয়া হয়েছিল। ছবি 1 এবং 2 দেখায় কিভাবে ATTiny85 SOIC প্রোগ্রাম করা হয়েছিল এবং প্রোটোটাইপ সেট আপে পরীক্ষা করা হয়েছিল।

ATTiny85 এ প্রোগ্রাম করা কোডটি ছিল 'Tiny85_I2C_Slave_PWM_2.ino' এখানে উপলব্ধ

কিভাবে আপনার নিজের ATTiny85 প্রোগ্রামার তৈরি করবেন সে সম্পর্কে বিস্তারিত জানার জন্য এই নির্দেশযোগ্য 'ATTiny85, ATTiny84 এবং ATMega328P এর প্রোগ্রামিং দেখুন: Arduino as ISP'

ধাপ 4: নকশা পরীক্ষা করা

নকশা পরীক্ষা করা হচ্ছে
নকশা পরীক্ষা করা হচ্ছে
নকশা পরীক্ষা করা হচ্ছে
নকশা পরীক্ষা করা হচ্ছে

নকশাটি পরীক্ষা করার জন্য আমি 'LCDControllerTest.ino' নামে একটি স্কেচ তৈরি করেছি যা ব্যবহারকারীকে একটি সিরিয়াল টার্মিনাল সংযোগের মাধ্যমে সরাসরি কোন LCD নির্দিষ্ট প্যারামিটার সেট করতে দেয়।

স্কেচটি আমার গিটহাব রিপোজিটরি I2C-LCD- কন্ট্রোলার-মডিউলে পাওয়া যাবে

উপরের ছবি 1 দেখায় 5v I2C কমপ্লায়েন্ট বোর্ড প্রেস 4 4 20 এলসিডি লাগানো এবং ছবি 2 প্রথমবার পরীক্ষা কোড চালানোর সময় ডিফল্ট ডিসপ্লে।

এটি ব্যাক লাইট এবং কনট্রাস্টের জন্য নিম্নলিখিত ডিফল্ট মান ব্যবহার করে;

  • #DISPLAY_BACKLIGHT_LOWER_VALUE_DEFAULT ((স্বাক্ষরবিহীন দীর্ঘ) (10)) নির্ধারণ করুন
  • #DISPLAY_CONTRAST_VALUE_DEFAULT নির্ধারণ করুন ((uint8_t) (40))

আমি দেখেছি এইগুলি 4 বাই 20 এলসিডি ডিসপ্লে দিয়ে ভাল কাজ করেছে যা আমি অতিরিক্ত পড়ে ছিলাম।

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

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

একটি ভুল সাধারণত আপনার সময়সূচীতে কয়েক সপ্তাহ ব্যয় করে এবং মুনাফা মার্জিন (এবং সম্ভবত আপনার কাজ) উড়িয়ে দেয়।

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

সার্কিট ডায়াগ্রামগুলি ট্রেসার দ্বারা তৈরি করা হয়েছিল এবং আপনার নকশা নোটগুলি হাতে হাতে আঁকা হয়েছিল। কপিগুলি ফটো-স্ট্যাটিক্যালভাবে করা হয়েছিল এবং 'ব্লু প্রিন্ট' বলা হত। কারণ সেগুলো ছিল নীল রঙের।

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

সেই সময়ে একজন নির্মাতা হিসাবে, সফটওয়্যার ডেভেলপমেন্ট টুল চেইনের নিছক খরচ নিষিদ্ধ ছিল, আপনি অনিবার্যভাবে হেক্স মানগুলি সরাসরি EPROM (র RAM্যাম/ফ্ল্যাশ যদি আপনি খুব ভাগ্যবান) এ poুকতে বাধ্য হন, তাহলে কী হবে তা নির্ধারণ করতে ফলাফলের আচরণ ব্যাখ্যা করতে কয়েক ঘন্টা ব্যয় করুন আপনার কোডটি কাজ করছিল যদি এটি প্রত্যাশিতভাবে কাজ না করে (বিট 'wiggling' বা সিরিয়াল printf সবচেয়ে জনপ্রিয় ডিবাগ কৌশল। কিছু জিনিস কখনও পরিবর্তন হয় না)। আপনাকে সাধারণত আপনার নিজের লাইব্রেরিগুলি লিখতে হয়েছিল কারণ কোনটিই উপলব্ধ ছিল না (ইন্টারনেটের মতো অবশ্যই কোন সমৃদ্ধ উৎস ছিল না)।

এর অর্থ হল আপনি কীভাবে কাজ করেছেন এবং সৃজনশীলভাবে কম সময় ব্যয় করেছেন তা বোঝার চেষ্টা করার জন্য আপনি অনেক সময় ব্যয় করেছেন।

আপনার সমস্ত ডায়াগ্রামগুলি হাতে আঁকা হয়েছিল, সাধারণত A4 বা A3 এ এবং সেগুলি পুঙ্খানুপুঙ্খভাবে চিন্তা করতে হয়েছিল, সেগুলি বাম থেকে ডানে সংকেত পথের একটি যৌক্তিক প্রবাহ প্রদান করে। সংশোধনের অর্থ সাধারণত আপনাকে একটি নতুন শীট দিয়ে শুরু করতে হবে।

বেশিরভাগ ক্ষেত্রে আপনার চূড়ান্ত সার্কিটটি স্থায়ীত্বের জন্য ভেরোবোর্ড ব্যবহার করে তৈরি করা হয়েছিল এবং এটিকে 'পেশাদার স্পর্শ' দেওয়ার জন্য একটি সাধারণ এবিএস ঘেরে মাউন্ট করা হয়েছিল।

সম্পূর্ণ বিপরীতে, আমি 5.5 দিনের মধ্যে এই পুরো প্রকল্পটি উন্নত মানের ফ্রিওয়্যার ব্যবহার করে একটি পেশাদারী স্ট্যান্ডার্ড পিসিবি তৈরি করেছি। ইচ্ছা যদি আমাকে নিয়ে যেত, আমি এটা আমার নিজের তৈরির 3D মুদ্রিত বাক্সে লাগাতে পারতাম।

এমন কিছু যা আপনি এক দশকেরও কম আগে স্বপ্ন দেখেছিলেন।

কীভাবে জিনিসগুলি আরও ভালভাবে পরিবর্তিত হয়েছে।

ধাপ 6: রেফারেন্স ব্যবহৃত

কিক্যাড স্কিম্যাটিক ক্যাপচার এবং পিসিবি ডিজাইন

কিক্যাড ইডিএ

Arduino ORG সফটওয়্যার ডেভেলপমেন্ট টুল

আরডুইনো

LiquidCrystal_I2C_PCF8574 Arduino Library

এখানে

MCP4561_DIGI_POT Arduino লাইব্রেরি

এখানে

ATTiny85 এর সাথে মসৃণ PWM LED ফেইডিং

এখানে

ATTiny85, ATTiny84 এবং ATMega328P প্রোগ্রামিং: Arduino ISP হিসাবে

প্রস্তাবিত: