সুচিপত্র:

AVR মাইক্রোকন্ট্রোলার ফিউজ বিট কনফিগারেশন। মাইক্রোকন্ট্রোলারের ফ্ল্যাশ মেমরিতে LED ব্লিঙ্কিং প্রোগ্রাম তৈরি এবং আপলোড করা হচ্ছে।: 5 টি ধাপ
AVR মাইক্রোকন্ট্রোলার ফিউজ বিট কনফিগারেশন। মাইক্রোকন্ট্রোলারের ফ্ল্যাশ মেমরিতে LED ব্লিঙ্কিং প্রোগ্রাম তৈরি এবং আপলোড করা হচ্ছে।: 5 টি ধাপ

ভিডিও: AVR মাইক্রোকন্ট্রোলার ফিউজ বিট কনফিগারেশন। মাইক্রোকন্ট্রোলারের ফ্ল্যাশ মেমরিতে LED ব্লিঙ্কিং প্রোগ্রাম তৈরি এবং আপলোড করা হচ্ছে।: 5 টি ধাপ

ভিডিও: AVR মাইক্রোকন্ট্রোলার ফিউজ বিট কনফিগারেশন। মাইক্রোকন্ট্রোলারের ফ্ল্যাশ মেমরিতে LED ব্লিঙ্কিং প্রোগ্রাম তৈরি এবং আপলোড করা হচ্ছে।: 5 টি ধাপ
ভিডিও: Fuse Bit Settings কেনো প্রয়োজন? AVR Microcontroller | Techshop BD 2024, জুন
Anonim
Image
Image

এক্ষেত্রে আমরা সি কোডে সহজ প্রোগ্রাম তৈরি করব এবং মাইক্রোকন্ট্রোলারের স্মৃতিতে পুড়িয়ে দেব। আমরা আমাদের নিজস্ব প্রোগ্রাম লিখব এবং হেক্স ফাইলটি কম্পাইল করব, এটিমেল স্টুডিওকে সমন্বিত উন্নয়ন প্ল্যাটফর্ম হিসাবে ব্যবহার করে। আমরা আমাদের নিজস্ব প্রোগ্রামার এবং সফটওয়্যার AVRDUDE ব্যবহার করে AVR ATMega328P মাইক্রোকন্ট্রোলারের স্মৃতিতে ফিউজ বিট কনফিগার করব এবং হেক্স ফাইল আপলোড করব।

AVRDUDE - Atmel- এর AVR মাইক্রোকন্ট্রোলারের অন -চিপ স্মৃতি ডাউনলোড এবং আপলোড করার জন্য একটি প্রোগ্রাম। এটি ফ্ল্যাশ এবং EEPROM প্রোগ্রাম করতে পারে, এবং যেখানে সিরিয়াল প্রোগ্রামিং প্রোটোকল দ্বারা সমর্থিত, এটি ফিউজ এবং লক বিট প্রোগ্রাম করতে পারে।

ধাপ 1: অ্যাটমেল স্টুডিও ব্যবহার করে রাইটিং প্রোগ্রাম এবং হেক্স ফাইল কম্পাইল করুন

Atmel স্টুডিও ব্যবহার করে প্রোগ্রাম রাইটিং এবং হেক্স ফাইল কম্পাইল করুন
Atmel স্টুডিও ব্যবহার করে প্রোগ্রাম রাইটিং এবং হেক্স ফাইল কম্পাইল করুন
Atmel স্টুডিও ব্যবহার করে প্রোগ্রাম রাইটিং এবং হেক্স ফাইল কম্পাইল করুন
Atmel স্টুডিও ব্যবহার করে প্রোগ্রাম রাইটিং এবং হেক্স ফাইল কম্পাইল করুন

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

এই প্রকল্পটি সি ব্যবহার করবে, তাই একটি খালি হাড়ের এক্সিকিউটেবল প্রকল্প তৈরি করতে টেমপ্লেট তালিকা থেকে GCC C এক্সিকিউটেবল প্রকল্প বিকল্পটি নির্বাচন করুন।

এরপরে, প্রকল্পটি কোন ডিভাইসের জন্য তৈরি করা হবে তা নির্দিষ্ট করা প্রয়োজন। এই প্রকল্পটি AVR ATMega328P মাইক্রোকন্ট্রোলারের জন্য তৈরি করা হবে।

Atmel স্টুডিওর মূল উৎস সম্পাদক এলাকায় প্রোগ্রামের কোড টাইপ করুন। মূল উৎস সম্পাদক - এই উইন্ডোটি বর্তমান প্রকল্পের উৎস ফাইলগুলির জন্য প্রধান সম্পাদক। সম্পাদকের বানান পরীক্ষা এবং স্বয়ংক্রিয় সম্পূর্ণ বৈশিষ্ট্য রয়েছে।

1. আমাদের কম্পাইলারকে বলতে হবে যে আমাদের চিপ কত গতিতে চলছে যাতে এটি সঠিকভাবে বিলম্ব গণনা করতে পারে।

#ifndef F_CPU

#ডিফাইন F_CPU 16000000UL // কন্ট্রোলার ক্রিস্টাল ফ্রিকোয়েন্সি বলছে (16 MHz AVR ATMega328P) #endif

2. আমরা প্রস্তাবনা অন্তর্ভুক্ত করি, যেখানে আমরা অন্যান্য ফাইল থেকে আমাদের অন্তর্ভুক্ত তথ্য রাখি, যা বৈশ্বিক ভেরিয়েবল এবং ফাংশন সংজ্ঞায়িত করে।

#অন্তর্ভুক্ত // হেডার পিনের উপর তথ্য প্রবাহ নিয়ন্ত্রণ সক্ষম করতে। পিন, পোর্ট ইত্যাদি সংজ্ঞায়িত করে।

#অন্তর্ভুক্ত // হেডার প্রোগ্রামে বিলম্ব ফাংশন সক্ষম করতে

3. প্রস্তাবনার পরে প্রধান () ফাংশন আসে।

int main (void) {

প্রধান () ফাংশনটি অনন্য এবং অন্যান্য সমস্ত ফাংশন থেকে আলাদা। প্রতিটি সি প্রোগ্রামে অবশ্যই একটি প্রধান () ফাংশন থাকতে হবে। মেইন () হল যেখানে AVR আপনার কোড চালানো শুরু করে যখন পাওয়ার প্রথম চালু হয়, তাই এটি প্রোগ্রামের এন্ট্রি পয়েন্ট।

4. আউটপুট হিসাবে PORTB এর পিন 0 সেট করুন।

DDRB = 0b00000001; // আউটপুট হিসাবে PORTB1 সেট করুন

আমরা ডেটা ডাইরেকশন রেজিস্টারে একটি বাইনারি নম্বর লিখে এই কাজটি করি। 1 লেখা তাদের আউটপুট করে, যখন 0 তাদের ইনপুট করে। যেহেতু আমরা আউটপুট হিসাবে কাজ করার জন্য একটি LED সংযুক্ত করছি, আমরা একটি বাইনারি সংখ্যা লিখি, PORT B- এর পিন 0 কে আউটপুট হিসাবে তৈরি করি।

5. লুপ।

যখন (1) {

এই বিবৃতি একটি লুপ, প্রায়ই প্রধান লুপ বা ইভেন্ট লুপ হিসাবে উল্লেখ করা হয়। এই কোড সবসময় সত্য; অতএব, এটি একটি অসীম লুপে বারবার চালায়। এটা কখনোই বন্ধ হয় না। অতএব, LED অনন্তে জ্বলজ্বল করবে, যদি না মাইক্রোকন্ট্রোলার থেকে বিদ্যুৎ বন্ধ থাকে অথবা প্রোগ্রাম মেমরি থেকে কোড মুছে না যায়।

6. পোর্ট PB0 সংযুক্ত LED চালু করুন

PORTB = 0b00000001; // পোর্ট PB0 এর সাথে সংযুক্ত LED চালু করে

এই লাইন, পোর্টবি এর PB0 কে 1 দেয়। PORTB হল AVR চিপের একটি হার্ডওয়্যার রেজিস্টার যাতে 8 পিন থাকে, PB7-PB0, বাম থেকে ডানে যাচ্ছে। শেষে 1 টি রাখলে PB0 থেকে 1 পাওয়া যায়; এটি PB0 উচ্চ সেট করে যা এটি চালু করে। অতএব, পিন PB0 এর সাথে সংযুক্ত LED চালু হবে এবং হালকা হবে।

7. বিলম্ব

_ বিলম্ব_এমএস (1000); // 1-সেকেন্ড বিলম্ব সৃষ্টি করে

এই বিবৃতিটি 1-সেকেন্ড বিলম্ব তৈরি করে, যাতে LED চালু হয় এবং ঠিক 1 সেকেন্ডের জন্য থাকে।

8. PB0 সহ সমস্ত বি পিন বন্ধ করুন

PORTB = 0b00000000; // PB0 সহ সমস্ত বি পিন বন্ধ করে দেয়

এই লাইনটি 8 টি পোর্ট বি পিন বন্ধ করে দেয়, যাতে PB0 বন্ধ থাকে, তাই LED বন্ধ হয়ে যায়।

9. আরেকটি বিলম্ব

_ বিলম্ব_এমএস (1000); // আরেকটি 1-সেকেন্ড বিলম্ব তৈরি করে

এটি আবার 1 সেকেন্ডের জন্য বন্ধ হয়ে যায়, লুপটি আবার শুরু করার আগে এবং লাইনের মুখোমুখি হওয়ার আগে, যা এটিকে আবার চালু করে, প্রক্রিয়াটি পুনরাবৃত্তি করে। এটি অসীমভাবে ঘটে যাতে LED ক্রমাগত জ্বলজ্বল করে এবং বন্ধ করে।

10. রিটার্ন স্টেটমেন্ট

}

ফেরত (0); // এই লাইনটি আসলে কখনই পৌঁছায় না}

আমাদের কোডের শেষ লাইন হল একটি রিটার্ন (0) স্টেটমেন্ট। যদিও এই কোডটি কখনই কার্যকর করা হয় না, কারণ একটি অসীম লুপ আছে যা কখনো শেষ হয় না, আমাদের প্রোগ্রামগুলির জন্য যা ডেস্কটপ কম্পিউটারে চলে, অপারেটিং সিস্টেমের জন্য এটি সঠিকভাবে চালানো হয়েছে কি না তা জানা গুরুত্বপূর্ণ। এই কারণে, আমাদের কম্পাইলার, GCC চায় প্রতিটি প্রধান () একটি রিটার্ন কোড দিয়ে শেষ হোক। AVR কোডের জন্য রিটার্ন কোডগুলি অপ্রয়োজনীয়, যা যেকোনো সমর্থনকারী অপারেটিং সিস্টেমের ফ্রিস্ট্যান্ডিং চালায়; তবুও, কম্পাইলার একটি সতর্কতা উত্থাপন করবে যদি আপনি return () দিয়ে প্রধান শেষ না করেন।

চূড়ান্ত পদক্ষেপ হল প্রকল্পটি নির্মাণ করা। এর অর্থ হল এক্সিকিউটেবল ফাইল (.hex) ফাইল তৈরি করতে সমস্ত অবজেক্ট ফাইলগুলিকে সংকলন করা এবং শেষ পর্যন্ত সংযুক্ত করা। এই হেক্স ফাইলটি ডিবাগ ফোল্ডারের ভিতরে তৈরি করা হয়েছে যা প্রজেক্ট ফোল্ডারের ভিতরে রয়েছে। এই হেক্স ফাইলটি মাইক্রোকন্ট্রোলার চিপে লোড করার জন্য প্রস্তুত।

ধাপ 2: মাইক্রো কন্ট্রোলার ফিউজ বিটের ডিফল্ট কনফিগারেশন পরিবর্তন করা

মাইক্রো কন্ট্রোলার ফিউজ বিটের ডিফল্ট কনফিগারেশন পরিবর্তন করা
মাইক্রো কন্ট্রোলার ফিউজ বিটের ডিফল্ট কনফিগারেশন পরিবর্তন করা
মাইক্রো কন্ট্রোলার ফিউজ বিটের ডিফল্ট কনফিগারেশন পরিবর্তন করা
মাইক্রো কন্ট্রোলার ফিউজ বিটের ডিফল্ট কনফিগারেশন পরিবর্তন করা
মাইক্রো কন্ট্রোলার ফিউজ বিটের ডিফল্ট কনফিগারেশন পরিবর্তন করা
মাইক্রো কন্ট্রোলার ফিউজ বিটের ডিফল্ট কনফিগারেশন পরিবর্তন করা

এটা মনে রাখা গুরুত্বপূর্ণ যে কিছু ফিউজ বিট চিপের কিছু দিক লক করার জন্য ব্যবহার করা যেতে পারে এবং সম্ভাব্যভাবে এটি ইট (এটি ব্যবহার অনুপযোগী) করতে পারে।

মোট 19 টি ফিউজ বিট রয়েছে যা ATmega328P এ ব্যবহৃত হয় এবং সেগুলি তিনটি ভিন্ন ফিউজ বাইটে বিভক্ত। ফিউজ বিটগুলির মধ্যে তিনটি "এক্সটেন্ডেড ফিউজ বাইট" এর মধ্যে রয়েছে, আটটি "ফিউজ হাই বাইট" এবং আটটি "ফিউজ লো বাইট" এর মধ্যে রয়েছে। আরও একটি বাইট আছে যা লক বিট প্রোগ্রাম করার জন্য ব্যবহৃত হয়।

প্রতিটি বাইট 8 বিট এবং প্রতিটি বিট একটি পৃথক সেটিং বা পতাকা। যখন আমরা সেটিং সম্পর্কে কথা বলি, সেটিং না, প্রোগ্রাম না, প্রোগ্রাম না ফিউজ আমরা আসলে বাইনারি ব্যবহার করছি। 1 মানে সেট নয়, প্রোগ্রামড নয় এবং একটি জিরো মানে সেট, প্রোগ্রামড। ফিউজ প্রোগ্রাম করার সময় আপনি বাইনারি নোটেশন বা আরো সাধারণভাবে হেক্সাডেসিমাল নোটেশন ব্যবহার করতে পারেন।

ATmega 328P চিপগুলির একটি বিল্ট ইন আরসি অসিলেটর রয়েছে যার একটি 8 MHz ফ্রিকোয়েন্সি রয়েছে। ঘড়ির উৎস এবং CKDIV8 ফিউজ সক্রিয় হিসাবে এই সেট দিয়ে নতুন চিপ পাঠানো হয়, যার ফলে 1 মেগাহার্টজ সিস্টেম ঘড়ি হয়। শুরুর সময়টি সর্বাধিক এবং টাইম-আউট পিরিয়ড সক্ষম করা আছে।

নতুন ATMega 328P চিপগুলিতে সাধারণত নিম্নলিখিত ফিউজ সেটিংস থাকে:

কম ফিউজ = 0x62 (0b01100010)

উচ্চ ফিউজ = 0xD9 (0b11011001)

বর্ধিত ফিউজ = 0xFF (0b11111111)

আমরা বহিরাগত 16MHz স্ফটিক সহ ATmega 328 চিপ ব্যবহার করব। অতএব, আমাদের সেই অনুযায়ী "ফিউজ লো বাইট" এর বিট প্রোগ্রাম করতে হবে।

1. বিট 3-0 দোলক পছন্দ নিয়ন্ত্রণ করে, এবং 0010 এর ডিফল্ট সেটিং হল ক্যালিব্রেটেড অভ্যন্তরীণ আরসি অসিলেটর ব্যবহার করা, যা আমরা চাই না। আমরা 8.0 থেকে 16.0 মেগাহার্টজ পর্যন্ত লো পাওয়ার ক্রিস্টাল অসিলেটর অপারেশন চাই, তাই বিট 3-1 (CKSEL [3: 1]) 111 এ সেট করা উচিত।

2. বিট 5 এবং 4 স্টার্টআপ সময় নিয়ন্ত্রণ করে, এবং 10 এর ডিফল্ট সেটিং হল পাওয়ার-ডাউন এবং পাওয়ার-সেভ থেকে ছয়টি ঘড়ি চক্রের স্টার্টআপ বিলম্বের জন্য, 14 টি ঘড়ির চক্রের অতিরিক্ত স্টার্টআপ বিলম্ব এবং রিসেট থেকে 65 মিলিসেকেন্ড।

কম পাওয়ারের ক্রিস্টাল অসিলেটরের জন্য নিরাপদ দিকে থাকার জন্য, আমরা পাওয়ার-ডাউন এবং পাওয়ার-সেভ থেকে সর্বাধিক ১ delay,০০০ ঘড়ি চক্রের বিলম্ব চাই, তাই SUT [1] কে 1 এ সেট করা উচিত, এবং অতিরিক্ত স্টার্টআপ বিলম্ব রিসেট থেকে 14 টি ঘড়ি চক্র এবং 65 মিলিসেকেন্ড, তাই SUT [0] 1 তে সেট করা উচিত। উপরন্তু, CKSEL [0] কে 1 এ সেট করা উচিত।

3. বিট 6 PORTB0 তে ঘড়ির আউটপুট নিয়ন্ত্রণ করে, যা আমরা যত্ন করি না। সুতরাং, বিট 6 কে 1 এ সেট করা যেতে পারে।

4. বিট 7 ডিভাইড-বাই -8 অপারেশন নিয়ন্ত্রণ করে এবং 0-এর ডিফল্ট সেটিং-এ বৈশিষ্ট্যটি সক্ষম থাকে, যা আমরা চাই না। সুতরাং, বিট 7 কে 0 থেকে 1 এ পরিবর্তন করতে হবে।

অতএব, নতুন ফিউজ লো বাইট 11111111 হওয়া উচিত, যা হেক্সাডেসিমাল নোটেশনে 0xFF।

"ফিউজ লো বাইট" এর বিট প্রোগ্রাম করার জন্য আমরা আমাদের প্রোগ্রামার (https://www.instructables.com/id/ISP-Programmer-fo…) এবং সফটওয়্যার AVRDUDE ব্যবহার করতে পারি। AVRDUDE একটি কমান্ড-লাইন ইউটিলিটি যা Atmel মাইক্রোকন্ট্রোলার থেকে ডাউনলোড এবং আপলোড করতে ব্যবহৃত হয়।

AVRDUDE ডাউনলোড করুন:

প্রথমত, আমাদের AVRDUDE এর কনফিগারেশন ফাইলে আমাদের প্রোগ্রামারের বর্ণনা যোগ করতে হবে। উইন্ডোজ এ কনফিগারেশন ফাইলটি সাধারণভাবে AVRDUDE এর এক্সিকিউটেবল ফাইলের মতো একই স্থানে রয়েছে।

Avrdude.conf কনফিগারেশন ফাইলে লেখা পাঠান:

# ISPProgv1

প্রোগ্রামার আইডি = "ISPProgv1"; desc = "সিরিয়াল পোর্ট ব্যাং, রিসেট = dtr sck = rts mosi = txd miso = cts"; type = "serbb"; connection_type = সিরিয়াল; রিসেট = 4; sck = 7; mosi = 3; miso = 8;;

AVRDUDE শুরু করার আগে, স্কিম অনুযায়ী আমাদের অবশ্যই মাইক্রোকন্ট্রোলারকে প্রোগ্রামারের সাথে সংযুক্ত করতে হবে।

ডস প্রম্পট উইন্ডো খুলুন।

1. avrdude সমর্থিত প্রোগ্রামারের তালিকা দেখার জন্য টাইপ কমান্ড avrdude -c c। যদি সবকিছু ঠিক থাকে, তালিকায় প্রোগ্রামার আইডি "ISPProgv1" থাকা উচিত

2. এটমেল ডিভাইসের তালিকা দেখতে যেটি avrdude সমর্থিত টাইপ কমান্ড avrdude -c ISPProgv1। তালিকায় Atmel ATMega 328P এর জন্য ডিভাইস m328p থাকা উচিত।

এর পরে, টাইপ করুন avrdude -c ISPProgv1 mp m328p, কমান্ড avrdude কে বলে প্রোগ্রামার কি ব্যবহার করা হচ্ছে এবং Atmel মাইক্রোকন্ট্রোলার কি সংযুক্ত আছে। এটি হেক্সাডেসিমাল নোটেশনে ATmega328P স্বাক্ষর উপস্থাপন করে: 0x1e950f। এটি বর্তমানে ATmega328P এ হেক্সাডেসিমাল নোটেশনে ফিউজ বিট প্রোগ্রামিং উপস্থাপন করে; এই ক্ষেত্রে, ফিউজ বাইট প্রতি কারখানা ডিফল্ট প্রোগ্রাম করা হয়।

পরবর্তীতে, টাইপ করুন avrdude -c ISPProgv1 –p m328p –U lfuse: w: 0xFF: m, এটি একটি কমান্ড যা অ্যাভরডুডকে বলতে হবে কোন প্রোগ্রামার ব্যবহার করা হচ্ছে এবং কি Atmel মাইক্রোকন্ট্রোলার সংযুক্ত করা হয়েছে এবং ফিউজ লো বাইটকে 0xFF এ পরিবর্তন করতে হবে।

এখন ঘড়ি সংকেত কম শক্তি ক্রিস্টাল অসিলেটর থেকে আসা উচিত।

ধাপ 3: ATMega328P মাইক্রোকন্ট্রোলারের স্মৃতিতে প্রোগ্রাম বার্ন করা

ATMega328P মাইক্রোকন্ট্রোলারের স্মৃতিতে প্রোগ্রাম বার্ন করা
ATMega328P মাইক্রোকন্ট্রোলারের স্মৃতিতে প্রোগ্রাম বার্ন করা
ATMega328P মাইক্রোকন্ট্রোলারের স্মৃতিতে প্রোগ্রাম বার্ন করা
ATMega328P মাইক্রোকন্ট্রোলারের স্মৃতিতে প্রোগ্রাম বার্ন করা

প্রথমে, প্রোগ্রামের হেক্স ফাইলটি আমরা AVRDUDE ডিরেক্টরিতে নির্দেশের শুরুতে তৈরি করেছি।

তারপর, ডস প্রম্পট উইন্ডোতে টাইপ করুন কমান্ড avrdude –c ISPProgv1 –p m328p –u –U flash: w: [আপনার হেক্স ফাইলের নাম]

কমান্ড মাইক্রোকন্ট্রোলারের মেমরিতে হেক্স ফাইল লিখে। এখন, মাইক্রোকন্ট্রোলার আমাদের প্রোগ্রামের নির্দেশনা অনুযায়ী কাজ করে। আসুন এটি পরীক্ষা করে দেখি!

ধাপ 4: মাইক্রোকন্ট্রোলার আমাদের প্রোগ্রামের নির্দেশাবলীর সাথে সামঞ্জস্যপূর্ণ কিনা তা পরীক্ষা করুন

মাইক্রোকন্ট্রোলার আমাদের প্রোগ্রামের নির্দেশাবলীর সাথে সামঞ্জস্যপূর্ণ কিনা তা পরীক্ষা করুন
মাইক্রোকন্ট্রোলার আমাদের প্রোগ্রামের নির্দেশাবলীর সাথে সামঞ্জস্যপূর্ণ কিনা তা পরীক্ষা করুন
মাইক্রোকন্ট্রোলার আমাদের প্রোগ্রামের নির্দেশাবলীর সাথে সামঞ্জস্যপূর্ণ কিনা তা পরীক্ষা করুন
মাইক্রোকন্ট্রোলার আমাদের প্রোগ্রামের নির্দেশাবলীর সাথে সামঞ্জস্যপূর্ণ কিনা তা পরীক্ষা করুন
মাইক্রোকন্ট্রোলার আমাদের প্রোগ্রামের নির্দেশাবলীর সাথে সামঞ্জস্যপূর্ণ কিনা তা পরীক্ষা করুন
মাইক্রোকন্ট্রোলার আমাদের প্রোগ্রামের নির্দেশাবলীর সাথে সামঞ্জস্যপূর্ণ কিনা তা পরীক্ষা করুন

AVR ব্লিঙ্কিং LED সার্কিটের পরিকল্পিত চিত্র অনুযায়ী উপাদানগুলিকে সংযুক্ত করুন।

প্রথমত, আমাদের পাওয়ার দরকার, যেমন সব AVR সার্কিট করে। AVR চিপ চালানোর জন্য প্রায় 5 ভোল্ট শক্তি যথেষ্ট। আপনি এটি ব্যাটারি বা ডিসি পাওয়ার সাপ্লাই থেকে পেতে পারেন। আমরা 7 পিন করার জন্য +5V শক্তি সংযোগ করি এবং পিন 8 কে মাটির সাথে রুটিবোর্ডে সংযুক্ত করি। উভয় পিনের মধ্যে, আমরা পাওয়ার সাপ্লাই এর শক্তি মসৃণ করার জন্য একটি 0.1μF সিরামিক ক্যাপাসিটর স্থাপন করি যাতে AVR চিপ একটি মসৃণ পাওয়ার লাইন পায়।

10KΩ রোধকারী ডিভাইসটিকে পাওয়ার অন রিসেট (POR) প্রদান করতে ব্যবহৃত হয়। যখন বিদ্যুৎ চালু হয়, ক্যাপাসিটরের জুড়ে ভোল্টেজ শূন্য হবে তাই ডিভাইস রিসেট হয় (যেহেতু রিসেট সক্রিয় কম), তারপর ক্যাপাসিটরের ভিসিসিতে চার্জ হয় এবং রিসেট অক্ষম হয়ে যায়।

আমরা আমাদের এলইডি এর অ্যানোডকে AVR পিন PB0 এর সাথে সংযুক্ত করি। এটি ATMega328P এর পিন 14। যেহেতু এটি একটি এলইডি, তাই আমরা বর্তমান প্রবাহকে এলইডিতে সীমাবদ্ধ করতে চাই যাতে এটি জ্বলতে না পারে। এজন্য আমরা LED এর সাথে সিরিজে 330Ω রোধক স্থাপন করি। LED এর ক্যাথোড মাটির সাথে সংযুক্ত হয়।

16 মেগাহার্টজ স্ফটিক Atmega328 মাইক্রোকন্ট্রোলারের জন্য ঘড়ি সরবরাহ করতে ব্যবহৃত হয় এবং 22pF ক্যাপাসিটারগুলি স্ফটিকের ক্রিয়াকলাপকে স্থিতিশীল করতে ব্যবহৃত হয়।

এলইডি জ্বালানোর জন্য এই সমস্ত সংযোগ প্রয়োজনীয়। বিদ্যুৎ সরবরাহ।

ঠিক আছে. এক সেকেন্ড বিলম্বের সাথে LED জ্বলছে। মাইক্রোকন্ট্রোলারের কাজ আমাদের কাজের সাথে মিলে যায়।

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

অবশ্যই, এটি একটি LED ফ্ল্যাশ করার জন্য একটি দীর্ঘ প্রক্রিয়া ছিল, কিন্তু সত্য হল যে আপনি সফলভাবে বড় বাধা দূর করেছেন: একটি AVR মাইক্রোকন্ট্রোলার প্রোগ্রাম করার জন্য একটি হার্ডওয়্যার প্ল্যাটফর্ম তৈরি করা, Atmel স্টুডিওকে ইন্টিগ্রেটেড ডেভেলপমেন্ট প্ল্যাটফর্ম হিসাবে ব্যবহার করা, AVRDUDE সফটওয়্যার হিসেবে ব্যবহার করা একটি AVR মাইক্রোকন্ট্রোলার কনফিগার এবং প্রোগ্রামিং।

আপনি যদি আমার বেস মাইক্রোকন্ট্রোলার প্রকল্পগুলিতে আপ টু ডেট রাখতে চান, আমার ইউটিউব সাবস্ক্রাইব করুন! আমার ভিডিও দেখা এবং শেয়ার করা আমি যা করি তা সমর্থন করার উপায়।

ইউটিউব এফওজি চ্যানেলে সাবস্ক্রাইব করুন

প্রস্তাবিত: