সুচিপত্র:
- ধাপ 1: MCP23008 তারের
- ধাপ 2: একটি বোর্ড গঠন
- ধাপ 3: একটি লাইব্রেরি মডিউল ব্যবহার করা
- ধাপ 4: কিট কার প্রোগ্রাম
- ধাপ 5: 7 সেগমেন্ট LED
- ধাপ 6: উপসংহার
ভিডিও: NODEMCU LUA ESP8266 MCP23008 8 বিট পোর্ট এক্সপেন্ডার আইসি: 6 ধাপ
2024 লেখক: John Day | [email protected]. সর্বশেষ পরিবর্তিত: 2024-01-30 08:02
MCP23008 সিরিয়াল ইন্টারফেস সহ 8-বিট I/O এক্সপেন্ডার এবং 1.8 থেকে 5.5 ভোল্টের মধ্যে কাজ করে, তাই ESP8266, Arduino, Raspberry Pi, PIC Chips এবং আরও অনেক কিছুর জন্য আদর্শ।
যদি আপনি MCP23017 এ আমার অন্যান্য নির্দেশযোগ্য দেখে থাকেন, আপনি হয়তো ভাবছেন যে আমি MCP23008 এর জন্য কেন একটি করছি, কারণ এটি সত্যিই একই জিনিসের একটি ছোট সংস্করণ।
কারণগুলি হল যে এর রেজিস্টারগুলি নাম এবং সংখ্যা উভয় ক্ষেত্রেই আলাদা এবং আমি কীভাবে তৈরি লাইব্রেরি মডিউল ব্যবহার করতে হয় তা দেখাতে চাই। NodeMCU লুয়া ব্যবহার করার সময় সবাই পারদর্শী নয়, তাই আমি MCP23008 ব্যবহার করার পাশাপাশি প্রোগ্রামিংয়ের এই দিকটি দেখাতে চাই।
লাইব্রেরি এবং প্রোগ্রাম github.com এ পাওয়া যায়।
MCP23008 এর জন্য ডেটশীট মাইক্রোচিপ থেকে পাওয়া যায়।
ধাপ 1: MCP23008 তারের
MCP23008 IC একটি সহজ বিন্যাস এবং একটি বোর্ড তৈরি করা এর জন্য বাস্তবিকভাবে সহজ। আপনি একটি রুটি বোর্ডে সার্কিট স্থাপন করতে পারেন।
আমার বোর্ডে পিন সংযোগ
- পিন 18 (VDD) থেকে 3v3
- GND থেকে 9 (VSS) পিন করুন
- পিন 7 (NC) থেকে GND (প্রয়োজনীয় নয়)
- পিন 1 (এসসিএল) থেকে ইএসপি জিপিআইও 2
- পিন 2 (SDA) থেকে ESP GPIO0
- GND থেকে 5 (A0) পিন করুন
- GND থেকে 4 (A1) পিন করুন
- GND থেকে 3 (A2) পিন করুন
- পিন 6 (RESET) থেকে 3v3
পোর্ট পোর্টে Gnd- এ পড়ার জন্য পিন সংযুক্ত করুন (পিন 10 - 17)
দ্রষ্টব্য: এখানে I2C ঠিকানা বাসে 0x20 ঠিকানায় MCP23008 ব্যবহার করার জন্য সমস্ত ঠিকানা পিন Gnd এর সাথে সংযুক্ত।
যদি আপনি 0x21 ঠিকানা ব্যবহার করেন তাহলে A0 3.3V এর সাথে সংযুক্ত হবে, A1 এবং A2 Gnd এর সাথে সংযুক্ত থাকবে।
একইভাবে যদি ঠিকানা 0x22 ব্যবহার করে তাহলে A1 কে 3.3V এর সাথে A0 এবং A2 Gnd এর সাথে সংযুক্ত করতে হবে।
ইত্যাদি…
ধাপ 2: একটি বোর্ড গঠন
আমি আমার বোর্ড নির্মাণের জন্য 25 মিমি x 64 মিমি (9 সারি x 25 গর্ত) ভেরো স্ট্রিপ বোর্ড ব্যবহার করেছি। এটি কিছুটা শক্ত, কিন্তু যেহেতু আপনার প্রয়োজনীয় বেশিরভাগ পিনগুলি আইসি -র উভয় পাশে রয়েছে, এটি যা করতে হবে তার জন্য এটি পর্যাপ্ত।
আমি পোর্ট A এর জন্য 8 টি পিন এবং 8 টি হেডার সকেট ব্যবহার করেছি যাতে আমি আমার বিভিন্ন মডিউল এবং বিভিন্ন প্রকল্পের জন্য অন্যান্য ওয়্যারিং প্লাগ করতে পারি। আমি অতিরিক্ত Gnd এবং 3.3V পিন যোগ করেছি কারণ আমি মনে করি সর্বদা মডিউলগুলিকে সংযুক্ত করার সময় এগুলির অভাব রয়েছে।
ধাপ 3: একটি লাইব্রেরি মডিউল ব্যবহার করা
লাইব্রেরি মডিউলগুলিতে সাধারণত সাব-রুটিন, ফাংশন এবং ভেরিয়েবলের একটি নির্বাচন থাকে যা অন্য প্রোগ্রাম দ্বারা অ্যাক্সেস করা যায়। প্রোগ্রাম নিজেই চালায় না, কিন্তু কলিং প্রোগ্রাম দ্বারা এর কাজগুলি অ্যাক্সেস করা যায়। এর অর্থ হল আপনি লাইব্রেরির মধ্যে আপনার উপ-রুটিন রাখতে পারেন এবং যখনই তাদের প্রয়োজন হয় তখন তাদের কল করতে পারেন, একটি ছোট কলিং প্রোগ্রাম তৈরি করুন। আপনার যদি একই উপ-রুটিন ব্যবহার করে বিভিন্ন প্রোগ্রাম থাকে তবে এটি আরও মূল্যবান হয়ে ওঠে, আপনাকে প্রতিটি প্রোগ্রামে সাব-রুটিন অন্তর্ভুক্ত করার দরকার নেই।
দ্রষ্টব্য: mcp23008.lua প্রোগ্রামটি অন্যান্য প্রোগ্রামের মতো ESP8266 মেমরিতে লোড করা প্রয়োজন।
লাইব্রেরি কাজ করছে তা দেখানোর জন্য আমি এখানে github.com প্রোগ্রামগুলির পাশাপাশি একটি সহজ প্রোগ্রাম (test.lua) অন্তর্ভুক্ত করেছি।
আপনার প্রোগ্রামে লাইব্রেরি অন্তর্ভুক্ত করার অন্তত 2 টি উপায় রয়েছে।
প্রয়োজন ("mcp23008")
mcp23008.begin (0x0, gpio2, gpio0, i2c. SLOW)
অথবা
mcp = প্রয়োজন ("mcp23008")
mcp.begin (0x0, gpio2, gpio0, i2c. SLOW)
উপরের দুটিই একই কাজ করে, কিন্তু দ্বিতীয় পদ্ধতিটি আপনাকে প্রোগ্রামের নামের পরিবর্তে আপনার নিজের পরিবর্তনশীল ব্যবহার করতে দেয়।
ধাপ 4: কিট কার প্রোগ্রাম
আমি KittCar23008.lua প্রোগ্রাম এবং KittLib.lua অন্তর্ভুক্ত করেছি যা লাইব্রেরি ব্যবহার করে কিভাবে এইভাবে প্রোগ্রাম লিখতে হয় তার পার্থক্য দেখায়। উভয় প্রোগ্রাম একই কাজ করে।
8 টি LED প্লাগ ইন ইবে থেকে একটি কিট হিসাবে পাওয়া যায় এবং এটি একটি 8 চ্যানেল প্রবাহিত ওয়াটার লাইট LED DIY কিট, চীন থেকে 99p হিসাবে পরিচিত। আপনি নিজেই এটি বিক্রি করতে হবে।
দ্রষ্টব্য: যদি KittLib.lua প্রোগ্রামটি চালাতে আপনার কোন সমস্যা হয়, তাহলে MCP23008 RESET পিনটি Gnd এর সাথে মুহূর্তের সাথে সংযুক্ত করার চেষ্টা করুন। আমি জানি এটি একটি সরাসরি শর্ট সার্কিট দেবে (যেহেতু এটি 3.3V এর সাথে সংযুক্ত) এবং আপনাকে অন্য সবকিছু পুনরায় সেট করতে হবে। এটি 10 ওহম প্রতিরোধকের মাধ্যমে Gnd এর সাথে সংযোগ করে কাজ করে, সম্ভবত এটি করার একটি ভাল উপায়।
আমি এটাও খুঁজে পেয়েছি যে Kit. Lib.lua test.lua চালানোর পরে কোন সমস্যা ছাড়াই চলবে (আমাকে জিজ্ঞাসা করো না কেন?)
আমি KittLib.lua প্রোগ্রাম সমস্যা সমাধানের জন্য বিভিন্ন উপায় চেষ্টা করেছি, কিন্তু এখন পর্যন্ত এটি কেন ক্র্যাশ হয় তার কোন যৌক্তিক কারণ খুঁজে পাচ্ছি না। কেউ কি কোন ধারনা আছে?
আমি নিজে এই সমস্ত প্রোগ্রাম লিখিনি, তাই আমি বলতে পারছি না কেন একটি সমস্যা আছে, যদিও কোডিং দেখার পর, স্পষ্টতই কিছু ভুল বলে মনে হচ্ছে না।
ধাপ 5: 7 সেগমেন্ট LED
উপরে KittCar.lua প্রোগ্রামের মতো, আমি একটি 7 সেগমেন্ট LED ডিসপ্লে চালানোর জন্য একটি স্বতন্ত্র এবং একটি লাইব্রেরি নির্ভর প্রোগ্রাম অন্তর্ভুক্ত করেছি।
আবার, উভয় প্রোগ্রাম একই কাজ করে, কিন্তু কিভাবে নিজের বা অন্য কারো লেখা লাইব্রেরি মডিউল ব্যবহার করতে হয় তা প্রদর্শন করুন।
ধাপ 6: উপসংহার
আমি লুয়া পরিবেশে কোড মডিউলগুলি কীভাবে ব্যবহার করতে হয় তা দেখানোর চেষ্টা করেছি এবং একই সময়ে এটি একটি নির্দিষ্ট আইসিতে প্রয়োগ করব।
যদিও এটি করতে আমার সমস্যা হয়েছে, আমি মনে করি যে এই মডিউলগুলি কীভাবে কাজ করে তা দেখানোর পাশাপাশি বাস্তব জীবনের প্রয়োগ প্রদর্শন করার জন্য যথেষ্ট আছে।
প্রস্তাবিত:
কিভাবে মোটো ব্যবহার করে সার্ভো মোটর চালানো যায়: মাইক্রো দিয়ে বিট: বিট: 7 টি ধাপ (ছবি সহ)
কিভাবে মোটো ব্যবহার করে সার্ভো মোটর চালানো যায়: বিট মাইক্রো: বিট: মাইক্রো: বিট এর কার্যকারিতা বাড়ানোর একটি উপায় হল স্পার্কফুন ইলেকট্রনিক্সের মোটো: বিট নামে একটি বোর্ড ব্যবহার করা (প্রায় $ 15-20)। এটি জটিল দেখায় এবং এর অনেক বৈশিষ্ট্য রয়েছে, তবে এটি থেকে সার্ভো মোটর চালানো কঠিন নয়। মোটো: বিট আপনাকে অনুমতি দেয়
রাস্পবেরি পাই MMA8452Q 3-অক্ষ 12-বিট/8-বিট ডিজিটাল অ্যাকসিলরোমিটার পাইথন টিউটোরিয়াল: 4 ধাপ
Raspberry Pi MMA8452Q 3-Axis 12-bit/8-bit Digital Accelerometer Python Tutorial: MMA8452Q হল একটি স্মার্ট, লো-পাওয়ার, তিন-অক্ষ, ক্যাপাসিটিভ, 12 বিট রেজোলিউশনের মাইক্রো-মেশিন অ্যাকসিলরোমিটার। নমনীয় ব্যবহারকারী প্রোগ্রামযোগ্য বিকল্পগুলি অ্যাক্সিলরোমিটারে এম্বেডেড ফাংশনগুলির সাহায্যে সরবরাহ করা হয়, দুটি বাধায় কনফিগারযোগ্য
একটি মাইক্রো প্রোগ্রামিং: বিট রোবট এবং জয়স্টিক: মাইক্রো পাইথন সহ বিট কন্ট্রোলার: 11 টি ধাপ
একটি মাইক্রো প্রোগ্রামিং: বিট রোবট এবং জয়স্টিক: মাইক্রোপাইথন সহ বিট কন্ট্রোলার: রোবোক্যাম্প ২০১ For-এর জন্য, আমাদের গ্রীষ্মকালীন রোবটিক্স ক্যাম্প, ১০-১ aged বছর বয়সী তরুণরা বিবিসি মাইক্রো: বিট ভিত্তিক 'অ্যান্টওয়েট রোবট', পাশাপাশি প্রোগ্রামিং একটি মাইক্রো: বিট একটি রিমোট কন্ট্রোল হিসাবে ব্যবহার করতে। যদি আপনি বর্তমানে রোবোক্যাম্পে থাকেন, স্কি
রাস্পবেরি পাই MMA8452Q 3-অক্ষ 12-বিট/8-বিট ডিজিটাল অ্যাকসিলরোমিটার জাভা টিউটোরিয়াল: 4 ধাপ
Raspberry Pi MMA8452Q 3-Axis 12-bit/8-bit Digital Accelerometer Java Tutorial: MMA8452Q হল একটি স্মার্ট, লো-পাওয়ার, থ্রি-অক্ষ, ক্যাপাসিটিভ, মাইক্রো-মেশিন অ্যাকসিলরোমিটার যার রেজুলেশন 12 বিট। নমনীয় ব্যবহারকারী প্রোগ্রামযোগ্য বিকল্পগুলি অ্যাক্সিলরোমিটারে এম্বেডেড ফাংশনগুলির সাহায্যে সরবরাহ করা হয়, দুটি বাধায় কনফিগারযোগ্য
NODEMCU LUA ESP8266 MCP23017 16 বিট পোর্ট এক্সপেন্ডার আইসি সহ: 6 টি ধাপ (ছবি সহ)
MCP23017 16 বিট পোর্ট এক্সপেন্ডার আইসি সহ NODEMCU LUA ESP8266: MCP23017 একটি বোর্ড তৈরি করার জন্য অপেক্ষাকৃত সহজ IC, কারণ এর চিপের উভয় পাশে পোর্ট A এবং B আছে এবং পিনগুলি ক্রমানুসারে আছে। একইভাবে I2C ঠিকানা বাস হল এই আইসিতে 2 টি পিন রয়েছে যা অব্যবহৃত