সুচিপত্র:

প্রোগ্রামে অবিশ্বাস্যভাবে সহজ !: 10 টি ধাপ
প্রোগ্রামে অবিশ্বাস্যভাবে সহজ !: 10 টি ধাপ

ভিডিও: প্রোগ্রামে অবিশ্বাস্যভাবে সহজ !: 10 টি ধাপ

ভিডিও: প্রোগ্রামে অবিশ্বাস্যভাবে সহজ !: 10 টি ধাপ
ভিডিও: ছাত্রজীবন ও কর্মজীবনে ফ্রিল্যান্সিং করার কার্যকরী ৩টি স্কিল | Freelancing এর হাতেখড়ি 2024, নভেম্বর
Anonim
Image
Image
অবিশ্বাস্যভাবে সহজ প্রোগ্রাম!
অবিশ্বাস্যভাবে সহজ প্রোগ্রাম!

আজ, আমি STM32 কোর, L476RG সম্পর্কে কথা বলব, যা আল্ট্রা লো পাওয়ারের মুখ। আপনি এটি চিত্রের বাম দিকে দেখতে পারেন। এই ডিভাইসে দুটি মহিলা পিন বার রয়েছে, প্রতিটি পাশে একটি, যা আরডুইনো ieldালের সংযোগকারী ছাড়া আর কিছুই নয়। এই মহান, না?

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

অবশেষে, আজ প্রকল্পের বিষয়ে, আমরা L476RG ছাড়াও দুটি DS18b20 সেন্সর ব্যবহার করব। সুতরাং আমরা L476RG ব্যবহার করে একটি সাধারণ সমাবেশ করব, MBED পরিবেশে একটি লাইব্রেরি আমদানি করব, MBED পরিবেশে একটি প্রোগ্রাম তৈরি করব এবং USB / সিরিয়ালের মাধ্যমে L476RG থেকে ডেটা পাব।

আমি ইতিমধ্যে এই ভিডিওতে L476RG সম্পর্কে একটু কথা বলেছি: একটি মাইক্রোকন্ট্রোলার প্রোগ্রাম করার সহজ উপায়, যেখানে আমি দেখিয়েছি কিভাবে MBED পরিবেশ কনফিগার করতে হয়, যা অনলাইনে আছে।

কিছু লোক যারা আমার ভিডিওগুলি অনুসরণ করে তারা আমাকে জিজ্ঞাসা করছে যে STM32 ESP32 কে প্রতিস্থাপন করে কিনা। আমি একটি কথা বলি: এটি প্রতিস্থাপন করে না এবং এটি পারে না, কারণ এগুলি দুটি সম্পূর্ণ ভিন্ন জিনিস।

এই STM32 চিপ একটি মাইক্রোকন্ট্রোলার, অথবা বরং; এটি ESP32 এর মতো "জিনিসের গুচ্ছ" নয়। সুতরাং নামটি দেখতে অনুরূপ হতে পারে, তবে সেগুলি সম্পূর্ণ ভিন্ন। STM32 একটি সাধারণ উদ্দেশ্য মাইক্রোকন্ট্রোলার, যেমন একটি PIC, একটি Atmel, উদাহরণস্বরূপ।

ধাপ 1: ব্যবহৃত সম্পদ

ব্যবহৃত সম্পদ
ব্যবহৃত সম্পদ

1 কোর L476RG

2 DS18b20 সেন্সর (আমরা বাজারে সাধারণ জলরোধী মডিউল ব্যবহার করি)

1 4k7 প্রতিরোধক

মিনি প্রোটোবোর্ড

সংযোগের জন্য জাম্পার

ধাপ 2: সমাবেশ

সমাবেশ
সমাবেশ

আমরা প্রাথমিকভাবে তাপমাত্রা সেন্সরগুলির একটি ব্যবহার করে সমাবেশ করব।

এর শক্তি হবে 5V।

ডাটা লাইনে (1-ওয়্যার) একটি পুল-আপ করতে 4k7 রোধক ব্যবহার করা হবে।

আমরা A0 পিন ব্যবহার করে ডেটা পড়ব।

ধাপ 3: এমবিইডিতে নতুন প্রোগ্রাম

এমবিইডিতে নতুন প্রোগ্রাম
এমবিইডিতে নতুন প্রোগ্রাম
এমবিইডিতে নতুন প্রোগ্রাম
এমবিইডিতে নতুন প্রোগ্রাম
এমবিইডিতে নতুন প্রোগ্রাম
এমবিইডিতে নতুন প্রোগ্রাম

একবার আপনার অ্যাকাউন্টটি এমবিইডিতে সেট আপ হয়ে গেলে এবং এটি অ্যাক্সেস করলে, আমরা একটি নতুন প্রোগ্রাম তৈরি করব। এটি করার জন্য, "আমার প্রোগ্রাম" এ ডান ক্লিক করুন এবং "নতুন প্রোগ্রাম …" নির্বাচন করুন

নিশ্চিত করুন যে "প্ল্যাটফর্ম" আপনি যে বোর্ডটি ব্যবহার করছেন তার সাথে সামঞ্জস্যপূর্ণ।

আমরা এখন "টেমপ্লেট" এ ক্লিক করি।

আমরা উদাহরণের উপর ভিত্তি করে একটি প্রোগ্রাম তৈরি করব, "UART ব্যবহার করে পিসিতে একটি বার্তা প্রদর্শন করুন"।

"প্রোগ্রামের নাম" এ প্রোগ্রামের নাম লিখুন।

"এই প্রোগ্রাম এবং লাইব্রেরিগুলি সর্বশেষ পুনর্বিবেচনায় আপডেট করুন" বিকল্পটি পরীক্ষা করুন।

আপনার প্রোগ্রামের জন্য একটি নতুন ফোল্ডার তৈরি করা হবে, ডিফল্ট MBED লাইব্রেরি এবং main.cpp ফাইল সহ।

সবকিছু ভালভাবে কাজ করছে কিনা তা পরীক্ষা করার জন্য আপনি এটি ব্যবহার করতে পারেন। এটি করার জন্য, কেবল এটি সংকলন করুন এবং এটি প্ল্যাটফর্মে অনুলিপি করুন।

আপনার পছন্দের একটি সিরিয়াল টার্মিনাল ব্যবহার করে, আপনি নিম্নলিখিত বার্তাগুলি পেতে পারেন।

ধাপ 4: DS18b20 লাইব্রেরি আমদানি করা

DS18b20 লাইব্রেরি আমদানি করা
DS18b20 লাইব্রেরি আমদানি করা

যেহেতু Ds18b20 এর জন্য লাইব্রেরির বিভিন্ন সংস্করণ রয়েছে, আমরা একটি url ব্যবহার করে আমদানি করব যাতে আপনার উদাহরণ একই লাইব্রেরি ব্যবহার করে।

ধাপ 5: এমবিইডিতে নতুন প্রোগ্রাম

এমবিইডিতে নতুন প্রোগ্রাম
এমবিইডিতে নতুন প্রোগ্রাম
এমবিইডিতে নতুন প্রোগ্রাম
এমবিইডিতে নতুন প্রোগ্রাম

"উৎস URL" ক্ষেত্রটিতে পূরণ করুন: https://os.mbed.com/users/Sissors/code/DS1820/ এবং আমদানি ক্লিক করুন।

আপনার DS1820 লাইব্রেরি আপনার প্রোগ্রাম ফোল্ডারে উপস্থিত হওয়া উচিত।

ধাপ 6: সোর্স কোড

অন্তর্ভুক্ত

আমরা প্রয়োজনীয় লাইব্রেরি অন্তর্ভুক্ত করে শুরু করেছি।

#অন্তর্ভুক্ত "mbed.h" // inclusão da biblioteca padrão do MBED#include "DS1820.h" // inclusão da biblioteca do sensor DS1820

আমরা ধ্রুবক সংজ্ঞায়িত করি যা ব্যবহৃত পিনের প্রতিনিধিত্ব করবে।

উল্লেখ্য, DS18b20 হল 1-ওয়্যার যোগাযোগের একটি সেন্সর। এই কারণে, আমরা লাইব্রেরি ব্যবহার করি যা ডিভাইসের সাথে যোগাযোগের পুরো প্রোটোকল পরিচালনা করবে। এর মধ্যে পড়ার কমান্ড পর্যন্ত প্রতিটি ডিভাইস চিহ্নিত করা অন্তর্ভুক্ত।

#ডিফাইন PINO_DE_DADOS A0 // define o pino para leitura dos dados#define MAX_SENSORES 16 // define o número máximo para o vetor de sensores

আমরা একটি ভেক্টর তৈরি করি যা ডেটা লাইনের সাথে সংযুক্ত 16 টি সম্ভাব্য ডিভাইসের প্রতিটিকে নির্দেশ করবে।

DS1820* সেন্সর [MAX_SENSORES]; // cria um vetor com 16 posições para os sensores

আমরা প্রধান () পদ্ধতিটি শুরু করি, যেখানে, DS1820 লাইব্রেরিতে থাকা "unassignedProbe ()" পদ্ধতি ব্যবহার করে, আমরা যোগাযোগের লাইনে সমস্ত উপলব্ধ ডিভাইসের সন্ধান করি।

আমরা সেন্সর ভেক্টর কে এমন দৃষ্টান্ত দিয়ে পূরণ করি যা উপলব্ধ প্রতিটি সেন্সরকে প্রতিনিধিত্ব করবে।

আমরা এটি শেষ না হওয়া পর্যন্ত করি বা যতক্ষণ না আমরা সর্বাধিক 16 টি সেন্সরে পৌঁছাই।

int main () {int encontrados = 0; যখন (DS1820:: unassignedProbe (PINO_DE_DADOS)) {// inicia a procura por sensors sensor [encontrados] = new DS1820 (PINO_DE_DADOS); // cria uma instancia para o sensor encontrado encontrados ++; যদি (encontrados == MAX_SENSORES) // verifica se atingiu o máximo de sensores break; }

আমরা লাইনে পাওয়া সেন্সরের সংখ্যা পাঠাই।

printf ("Dispositivos encontrado (s): %d / r / n / n", encontrados);

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

printf ("Dispositivos encontrado (s): %d / r / n / n", encontrados); যখন (1) {সেন্সর [0]-> রূপান্তর তাপমাত্রা (সত্য, DS1820:: all_devices); // solicita a leitura de temperatura para todos os dispositivos encontrados for (int i = 0; itemperature ()); //। । । e retorna a temperatura printf ("\ r / n"); অপেক্ষা করুন (1); }

ধাপ 7: প্রাপ্ত তথ্য

তথ্য পেয়েছি
তথ্য পেয়েছি

একটি একক সেন্সর ব্যবহার করে, আমরা নিম্নলিখিত সিরিয়াল আউটপুট প্রাপ্ত।

ধাপ 8: আরো সেন্সর সহ

আরো সেন্সর সহ
আরো সেন্সর সহ
আরো সেন্সর সহ
আরো সেন্সর সহ

কোডটি পরীক্ষা করার জন্য, আমরা যোগাযোগের লাইনে আরেকটি সেন্সর প্রবর্তন করি, কেবল প্রথম সেন্সরের সাথে সমান্তরালে এটি সংযুক্ত করে।

নতুন সেন্সর সংযুক্ত করার আগে সমাবেশ বন্ধ করতে ভুলবেন না।

সমাবেশটি পুনরায় চালু করার সময়, আমরা সোর্স কোডে কোনও পরিবর্তন ছাড়াই নিম্নলিখিত আউটপুট পেয়েছি।

ধাপ 9: উৎস দেখুন

#অন্তর্ভুক্ত "mbed.h" // inclusão da biblioteca padrão do MBED #অন্তর্ভুক্ত "DS1820.h" // inclusão da biblioteca do sensor DS1820 #define PINO_DE_DADOS A0 // define o pino para leitura dos dados #define MAX_SENSORES 16 // define 16 o número máximo para o vetor de sensores DS1820* sensor [MAX_SENSORES]; // cria um vetor com 16 posições para os sensores int main () {int encontrados = 0; যখন (DS1820:: unassignedProbe (PINO_DE_DADOS)) {// inicia a procura por sensors sensor [encontrados] = new DS1820 (PINO_DE_DADOS); // cria uma instancia para o sensor encontrado encontrados ++; যদি (encontrados == MAX_SENSORES) // verifica se atingiu o máximo de sensores break; } printf ("Dispositivos encontrado (s): %d / r / n / n", encontrados); যখন (1) {সেন্সর [0]-> রূপান্তর তাপমাত্রা (সত্য, DS1820:: all_devices); // solicita a leitura de temperatura para todos os dispositivos encontrados for (int i = 0; itemperature ()); //। । । e retorna a temperatura printf ("\ r / n"); অপেক্ষা করুন (1); }}

ধাপ 10: ফাইল

পিডিএফ

অন্যান্য

প্রস্তাবিত: