نوع دیگری از ماژول های رله تک کانال که فقط دارای حالت Normaly Open می باشد.
https://telegram.me/ArduinoKaraneJavan
https://telegram.me/ArduinoKaraneJavan
نوع دیگری از ماژول های رله تک کانال که فقط دارای حالت Normaly Open می باشد.
https://telegram.me/ArduinoKaraneJavan
https://telegram.me/ArduinoKaraneJavan
نوع دیگری از ماژول های رله 8 کانال که فقط دارای حالت Normaly Open می باشد.
https://telegram.me/ArduinoKaraneJavan
https://telegram.me/ArduinoKaraneJavan
#آردوینو کاران جوان
✅ اولین کانال آموزش آردوینو در تلگرام
✅ آموزش از صفر تا بینهایت آردوینو
✅ برای عضویت کلیک کنید 👇🏻👇🏻👇🏻 https://telegram.me/ArduinoKaraneJavan
✅ اولین کانال آموزش آردوینو در تلگرام
✅ آموزش از صفر تا بینهایت آردوینو
✅ برای عضویت کلیک کنید 👇🏻👇🏻👇🏻 https://telegram.me/ArduinoKaraneJavan
#آردوینو کاران جوان
✅ اولین کانال آموزش آردوینو در تلگرام
✅ اتوماسیون خانگی و صنعتی
✅ برای عضویت کلیک کنید 👇🏻👇🏻👇🏻 https://telegram.me/ArduinoKaraneJavan
✅ اولین کانال آموزش آردوینو در تلگرام
✅ اتوماسیون خانگی و صنعتی
✅ برای عضویت کلیک کنید 👇🏻👇🏻👇🏻 https://telegram.me/ArduinoKaraneJavan
روز آردوینو Arduino Day
روز آردوینو مصادف با 28 مارس، روزی است که در آن تولد آردینو در سراسر جهان جشن گرفته می شود. در این جشن، آن دسته از کسانی که با آردوینو کار می کنند اطلاعات، پروژه ها و تجربیات خود را با دیگران به اشتراک می گذارند.
همه افرادی که در زمینه کار با آردوینو مشارکت می کنند، می توانند در این جشن شرکت نموده وبا افزدون یک event به مجموعه افرادی که در سالروز تولد آردینو تجربیات خود را به استراک می گذارند، بپیوندند.
برای ایجاد کردن event به این لینک مراجعه کنید:
https://day.arduino.cc/#/
https://telegram.me/ArduinoKaraneJavan
روز آردوینو مصادف با 28 مارس، روزی است که در آن تولد آردینو در سراسر جهان جشن گرفته می شود. در این جشن، آن دسته از کسانی که با آردوینو کار می کنند اطلاعات، پروژه ها و تجربیات خود را با دیگران به اشتراک می گذارند.
همه افرادی که در زمینه کار با آردوینو مشارکت می کنند، می توانند در این جشن شرکت نموده وبا افزدون یک event به مجموعه افرادی که در سالروز تولد آردینو تجربیات خود را به استراک می گذارند، بپیوندند.
برای ایجاد کردن event به این لینک مراجعه کنید:
https://day.arduino.cc/#/
https://telegram.me/ArduinoKaraneJavan
در مورد آردوینو بیشتر بدانیم :
آردوینو چیست و برای چه کارهایی مناسب است ؟
آردوینو (Arduino) یک برد متنباز (open source) برای نمونهسازی میباشد و بر اساس سختافزار و نرمافزار منعطف و ساده پایهریزی و طراحی شده است. آردوینو میتواند محیط اطراف را با استفاده از سنسورهای مختلف حس کند.
برد آردوینو arduino یک گجت قابل برنامه ریزی می باشد. با آردوینو کلی گجت های جذاب می توان ساخت. برگ برنده آردوینو به دلیل پلت فرم نرم افزاری اش می باشد. با آردوینو می توان یک پرینتر ۳ بعدی ساخت، یا یک ماشین نقاشی، یا یک ربات و یا حتی سیستم ساختمان هوشمند را توسط آن پیاده سازی کرد.
میکروکنترلر بکار رفته بر روی برد آردوینو بر اساس زبان برنامهنویسی آردوینو و محیط ویژه کدنویسی آن برنامهریزی شده است و برای کدنویسی به هیچ نرمافزار جانبی و یا کامپایلر دیگری نیاز نیست. پروژهای آردوینو میتوانند به صورت مستقل و یا مرتبط با سایر نرمافزارهای کامپیوتر شخصی باشد. برای مثال میتوان فرمانها را برای کنترل موتورها از طریق پورت یواسبی ارسال نموده و یا دادههای سنسورها را نیز از همین پورت دریافت کرد.
آردوینو یکی از برد های مطرح و پر طرفدار میکروکنترلر می باشد. هدف اصلی ساخت آردوینو این است که امکان استفاده از میکروکنترلرها را برای همه فراهم کند. با استفاده از آردوینو حتی لازم نیست با میکروکنترلری که استفاده میشود، آشنایی داشته باشید.
بله؛ کار با آردوینو به همین سادگی است.
چرا آردوینو ؟
✅ ارزان
در مقایسه با سایر پلت فرم های میکروکنترلر، بردهای آردوینو نسبتاً ارزان هستند. ارزان ترین نسخه از ماژول آردوینو می تواند به صورت دستی مونتاژ شود، و حتی ماژول های آردوینو از پیش مونتاژ شده، کمتراز 50 دلار قیمت دارد.
✅ مستقل از سیستم عامل (Cross-platform)
نرم افزار آردوینو روی سیستم های عامل ویندوز، مکینتاش OSX و لینوکس اجرا می شود. اکثر سیستم های میکروکنترلر منحصر به ویندوز شده اند.
✅ محیط برنامه نویسی شفاف و ساده
محیط برنامه نویسی آردوینو برای استفاده مبتدیان، ساده است، در عین حال جهت استفاده ی کاربران حرفه ای از مزیتها نیز به اندازه کافی منعطف است. برای مدرسان، بر اساس محیط برنامه نویسی Processing به راحتی قابل استفاده است، بدین ترتیب، دانش آموزانی که برنامه نویسی در آن محیط را یاد می گیرند، با ظاهر و باطن آردوینو آشنا خواهند شد.
✅ نرم افزار قابل توسعه و open-source
نرم افزار آردوینو به صورت یک ابزار open-source منتشر شده است که برای توسعه توسط برنامه نویسان باتجربه موجود می باشد. این زبان می تواند از طریق کتابخانه های C++ گسترش یابد، و افرای که می خواهند جزئیات فنی را بفهمند، می توانند از آردوینو گریزی به زبان برنامه نویسی AVR C که زبان پایه ی آن است، بزنند. به طور مشابه اگر بخواهید، می توانید مستقیما کد AVR-C را درون برنامه های آردوینو خود درج کنید.
✅ سخت افزار قابل توسعه و open-source
آردوینو بر اساس میکروکنترلرهای مختلفی از جمله ATMEGA8 و ATMEGA168 شرکت Atmel پایه ریزی شده اند و در حال حاضر تعداد زیادی از میکروکنترلرهای AVR و ARM به عنوان هسته مرکزی این بردها مورد استفاده قرار می گیرند . طرح ماژول ها تحت لیسانس Creative Commons مجوز گرفته اند، بنابراین طراحان با تجربه مدار، می توانند ماژول خود را ساخته، توسعه داده و آن را بهبود ببخشند. حتی کاربران نسبتاً بی تجربه می توانند یک نسخه بردبوردی از ماژول را جهت فهم شیوه کار آن بسازند و هزینه ای جهت آن نپردازند.
✅ مناسب دانشجویان و فارغ التحصیلان مهندسی برق و الکترونیک ، کامپیوتر ، مکانیک ، مکاترونیک ، رباتیک و تمامی علاقمندان
https://telegram.me/ArduinoKaraneJavan
آردوینو چیست و برای چه کارهایی مناسب است ؟
آردوینو (Arduino) یک برد متنباز (open source) برای نمونهسازی میباشد و بر اساس سختافزار و نرمافزار منعطف و ساده پایهریزی و طراحی شده است. آردوینو میتواند محیط اطراف را با استفاده از سنسورهای مختلف حس کند.
برد آردوینو arduino یک گجت قابل برنامه ریزی می باشد. با آردوینو کلی گجت های جذاب می توان ساخت. برگ برنده آردوینو به دلیل پلت فرم نرم افزاری اش می باشد. با آردوینو می توان یک پرینتر ۳ بعدی ساخت، یا یک ماشین نقاشی، یا یک ربات و یا حتی سیستم ساختمان هوشمند را توسط آن پیاده سازی کرد.
میکروکنترلر بکار رفته بر روی برد آردوینو بر اساس زبان برنامهنویسی آردوینو و محیط ویژه کدنویسی آن برنامهریزی شده است و برای کدنویسی به هیچ نرمافزار جانبی و یا کامپایلر دیگری نیاز نیست. پروژهای آردوینو میتوانند به صورت مستقل و یا مرتبط با سایر نرمافزارهای کامپیوتر شخصی باشد. برای مثال میتوان فرمانها را برای کنترل موتورها از طریق پورت یواسبی ارسال نموده و یا دادههای سنسورها را نیز از همین پورت دریافت کرد.
آردوینو یکی از برد های مطرح و پر طرفدار میکروکنترلر می باشد. هدف اصلی ساخت آردوینو این است که امکان استفاده از میکروکنترلرها را برای همه فراهم کند. با استفاده از آردوینو حتی لازم نیست با میکروکنترلری که استفاده میشود، آشنایی داشته باشید.
بله؛ کار با آردوینو به همین سادگی است.
چرا آردوینو ؟
✅ ارزان
در مقایسه با سایر پلت فرم های میکروکنترلر، بردهای آردوینو نسبتاً ارزان هستند. ارزان ترین نسخه از ماژول آردوینو می تواند به صورت دستی مونتاژ شود، و حتی ماژول های آردوینو از پیش مونتاژ شده، کمتراز 50 دلار قیمت دارد.
✅ مستقل از سیستم عامل (Cross-platform)
نرم افزار آردوینو روی سیستم های عامل ویندوز، مکینتاش OSX و لینوکس اجرا می شود. اکثر سیستم های میکروکنترلر منحصر به ویندوز شده اند.
✅ محیط برنامه نویسی شفاف و ساده
محیط برنامه نویسی آردوینو برای استفاده مبتدیان، ساده است، در عین حال جهت استفاده ی کاربران حرفه ای از مزیتها نیز به اندازه کافی منعطف است. برای مدرسان، بر اساس محیط برنامه نویسی Processing به راحتی قابل استفاده است، بدین ترتیب، دانش آموزانی که برنامه نویسی در آن محیط را یاد می گیرند، با ظاهر و باطن آردوینو آشنا خواهند شد.
✅ نرم افزار قابل توسعه و open-source
نرم افزار آردوینو به صورت یک ابزار open-source منتشر شده است که برای توسعه توسط برنامه نویسان باتجربه موجود می باشد. این زبان می تواند از طریق کتابخانه های C++ گسترش یابد، و افرای که می خواهند جزئیات فنی را بفهمند، می توانند از آردوینو گریزی به زبان برنامه نویسی AVR C که زبان پایه ی آن است، بزنند. به طور مشابه اگر بخواهید، می توانید مستقیما کد AVR-C را درون برنامه های آردوینو خود درج کنید.
✅ سخت افزار قابل توسعه و open-source
آردوینو بر اساس میکروکنترلرهای مختلفی از جمله ATMEGA8 و ATMEGA168 شرکت Atmel پایه ریزی شده اند و در حال حاضر تعداد زیادی از میکروکنترلرهای AVR و ARM به عنوان هسته مرکزی این بردها مورد استفاده قرار می گیرند . طرح ماژول ها تحت لیسانس Creative Commons مجوز گرفته اند، بنابراین طراحان با تجربه مدار، می توانند ماژول خود را ساخته، توسعه داده و آن را بهبود ببخشند. حتی کاربران نسبتاً بی تجربه می توانند یک نسخه بردبوردی از ماژول را جهت فهم شیوه کار آن بسازند و هزینه ای جهت آن نپردازند.
✅ مناسب دانشجویان و فارغ التحصیلان مهندسی برق و الکترونیک ، کامپیوتر ، مکانیک ، مکاترونیک ، رباتیک و تمامی علاقمندان
https://telegram.me/ArduinoKaraneJavan
👍1
#آردوینو کاران جوان
✅ اولین کانال آموزش آردوینو در تلگرام
✅ اتوماسیون خانگی و صنعتی
✅ برای عضویت کلیک کنید 👇🏻👇🏻👇🏻 https://telegram.me/ArduinoKaraneJavan
✅ اولین کانال آموزش آردوینو در تلگرام
✅ اتوماسیون خانگی و صنعتی
✅ برای عضویت کلیک کنید 👇🏻👇🏻👇🏻 https://telegram.me/ArduinoKaraneJavan
#آردوینو کاران جوان
✅ اولین کانال آموزش آردوینو در تلگرام
✅ اتوماسیون خانگی و صنعتی
✅ برای عضویت کلیک کنید 👇🏻👇🏻👇🏻 https://telegram.me/ArduinoKaraneJavan
✅ اولین کانال آموزش آردوینو در تلگرام
✅ اتوماسیون خانگی و صنعتی
✅ برای عضویت کلیک کنید 👇🏻👇🏻👇🏻 https://telegram.me/ArduinoKaraneJavan
ورودی آنالوگ
سلام دوستان آردوینوکار
امروز میخواهیم یک مبحث جدید رو با هم کار کنیم.
امروز در مورد نحوه خواندن اطلاعات از ورودی های آنالوگ آردوینو و نمایش آن در پورت سریال کار می کنیم و سپس در مبحث بعدی روی نمایش در LCD کاراکتری و ساخت یک ولتمتر دیجیتال صحبت خواهیم کرد و بعد از آن شروع به ساخت مدارات دزد گیر و کیبرد های تک سیمه آنالوگ و غیره که با استفاده از ورودی آنالوگ امکان پذیر می باشند، خواهیم پرداخت.
برد آردوینو UNO دارای 6 ورودی آنالوگ می باشد که با A0,A1,A2,A3,A4,A5 مشخص شده اند.
در بردهای دیگر آردوینو این تعداد متفاوت می باشد. بعنوان مثال برد آردوینو MEGA2560 دارای 16 ورودی آنالوگ است که با نام A0 الی A15 مشخص شده اند.
ما می توانیم با استفاده از دستور ()analogReaad اطلاعات ورودی آنالوگ را بخوانیم و در داخل پرانتز جلوی دستور شماره پایه آنالوگی را که می خواهیم مقدار آنرا بخوانیم قرار می دهیم.
بعنوان مثال هردو دستور زیر از ورودی آنالوگ شماره 0 یعنی A0 اطلاعات را می خوانند:
int a, b;
a = analogRead(0);
b = analogRead(A0);
لازم به ذکر است که مقدار خوانده شده از ورودی آنالوگ یک عدد است بین 0 تا 1023 بنابراین متغیری که برای ذخیره آن استفاده میکنیم باید حتماً از نوع int یا float باشد.
برای نمایش مقدار خوانده شده در پورت سریال می توانیم بصورت زیر عمل نماییم:
int Analog;
Analog = analogRead(A0);
Serial.println(Analog);
Serial.println(Analog, DEC);
Serial.println(Analog, HEX);
Serial.println(Analog, BIN);
✅ خوب ما در خط اول یک متغیر بنام Analog از نوع int تعریف کردیم.
✅ در خط دوم مقدار آنالوگ ورودی A0 را خواندیم و در متغیر Analog قرار دادیم.
✅ در خط سوم مقدار خوانده شده را عیناً به پورت سریال فرستادیم تا نمایش داده شود.
✅ در خط چهارم مقدار خوانده شده را ابتدا به مقدار دسیمال تبدیل کرده و سپس به پورت سریال فرستادیم تا نمایش داده شود.
✅ در خط پنجم مقدار خوانده شده را ابتدا به مقدار هگزا دسیمال تبدیل کرده و سپس به پورت سریال فرستادیم تا نمایش داده شود.
✅ در خط ششم مقدار خوانده شده را ابتدا به مقدار باینری تبدیل کرده و سپس به پورت سریال فرستادیم تا نمایش داده شود.
هدف از این آموزش یادگیری نحوه خواندن اطلاعات از ورودی های آنالوگ و نحوه تبدیل به مبناهای عددی دیگر جهت نمایش بود. حالا می خواهیم عدد خوانده شده را که در بازه 0 تا 1023 است به بازه مورد نظر خودمان تبدیل نماییم.
بعنوان مثال می خواهیم یک ولتمتر دیجیتالی بسازیم که از صفر تا 5 ولت را اندازه گیری نماید، اگر ما یک پتانسیومتر برداریم و به دو سر کناری آن به ترتیب 5v+ و GND متصل نماییم و سر وسط آنرا به ورودی آنالوگ A0 متصل کنیم با تغییر مقدار پتانسیومتر ما مقداری بین 0 تا 5 ولت در ورودی A0 خواهیم داشت. ولی مقداری که با دستور (analogRead(A0 میخوانیم مقداری بین 0 تا 1023 خواهد بود در حالیکه ما می خواهیم عددی بین 0 تا 5 ولت را در خروجی به ما نشان دهد.
چاره کار استفاده از دستور map است. map یک دستور بسیار قدرتمند است که ما را از بسیاری از فرمول های پیچیده جهت تبدیلات بی نیاز می کند.
int Ain, Volt;
Ain = analogRead(A0);
Volt = map(Ain, 0, 1023, 0, 5);
Serial.println(Volt);
✅ در خط اول ما دو متغیر از نوع int تعریف کردیم.
✅ در خط دوم مقدار ولتاژ پتانسیومتر را می خوانیم و در متغیر Ain قرار می دهیم که مقداری بین 0 تا 1023 است.
✅ در خط سوم دستور map مقدار خوانده شده از ورودی A0 را به همراه بازه آن و بازه جدید که ما تعریف می کنیم و در این مثال 0 تا 5 است از ما می گیرد و خروجی مطلوب را در متغیر Volt فرار میدهد.
✅ در خط چهارم مقدار خوانده شده را به پورت سریال ارسال می کنیم.
ادامه دارد...
#آردوینو کاران جوان
✅ اولین کانال آموزش آردوینو در تلگرام
✅ اتوماسیون خانگی و صنعتی
✅ برای عضویت کلیک کنید 👇🏻👇🏻👇🏻 https://telegram.me/ArduinoKaraneJavan
سلام دوستان آردوینوکار
امروز میخواهیم یک مبحث جدید رو با هم کار کنیم.
امروز در مورد نحوه خواندن اطلاعات از ورودی های آنالوگ آردوینو و نمایش آن در پورت سریال کار می کنیم و سپس در مبحث بعدی روی نمایش در LCD کاراکتری و ساخت یک ولتمتر دیجیتال صحبت خواهیم کرد و بعد از آن شروع به ساخت مدارات دزد گیر و کیبرد های تک سیمه آنالوگ و غیره که با استفاده از ورودی آنالوگ امکان پذیر می باشند، خواهیم پرداخت.
برد آردوینو UNO دارای 6 ورودی آنالوگ می باشد که با A0,A1,A2,A3,A4,A5 مشخص شده اند.
در بردهای دیگر آردوینو این تعداد متفاوت می باشد. بعنوان مثال برد آردوینو MEGA2560 دارای 16 ورودی آنالوگ است که با نام A0 الی A15 مشخص شده اند.
ما می توانیم با استفاده از دستور ()analogReaad اطلاعات ورودی آنالوگ را بخوانیم و در داخل پرانتز جلوی دستور شماره پایه آنالوگی را که می خواهیم مقدار آنرا بخوانیم قرار می دهیم.
بعنوان مثال هردو دستور زیر از ورودی آنالوگ شماره 0 یعنی A0 اطلاعات را می خوانند:
int a, b;
a = analogRead(0);
b = analogRead(A0);
لازم به ذکر است که مقدار خوانده شده از ورودی آنالوگ یک عدد است بین 0 تا 1023 بنابراین متغیری که برای ذخیره آن استفاده میکنیم باید حتماً از نوع int یا float باشد.
برای نمایش مقدار خوانده شده در پورت سریال می توانیم بصورت زیر عمل نماییم:
int Analog;
Analog = analogRead(A0);
Serial.println(Analog);
Serial.println(Analog, DEC);
Serial.println(Analog, HEX);
Serial.println(Analog, BIN);
✅ خوب ما در خط اول یک متغیر بنام Analog از نوع int تعریف کردیم.
✅ در خط دوم مقدار آنالوگ ورودی A0 را خواندیم و در متغیر Analog قرار دادیم.
✅ در خط سوم مقدار خوانده شده را عیناً به پورت سریال فرستادیم تا نمایش داده شود.
✅ در خط چهارم مقدار خوانده شده را ابتدا به مقدار دسیمال تبدیل کرده و سپس به پورت سریال فرستادیم تا نمایش داده شود.
✅ در خط پنجم مقدار خوانده شده را ابتدا به مقدار هگزا دسیمال تبدیل کرده و سپس به پورت سریال فرستادیم تا نمایش داده شود.
✅ در خط ششم مقدار خوانده شده را ابتدا به مقدار باینری تبدیل کرده و سپس به پورت سریال فرستادیم تا نمایش داده شود.
هدف از این آموزش یادگیری نحوه خواندن اطلاعات از ورودی های آنالوگ و نحوه تبدیل به مبناهای عددی دیگر جهت نمایش بود. حالا می خواهیم عدد خوانده شده را که در بازه 0 تا 1023 است به بازه مورد نظر خودمان تبدیل نماییم.
بعنوان مثال می خواهیم یک ولتمتر دیجیتالی بسازیم که از صفر تا 5 ولت را اندازه گیری نماید، اگر ما یک پتانسیومتر برداریم و به دو سر کناری آن به ترتیب 5v+ و GND متصل نماییم و سر وسط آنرا به ورودی آنالوگ A0 متصل کنیم با تغییر مقدار پتانسیومتر ما مقداری بین 0 تا 5 ولت در ورودی A0 خواهیم داشت. ولی مقداری که با دستور (analogRead(A0 میخوانیم مقداری بین 0 تا 1023 خواهد بود در حالیکه ما می خواهیم عددی بین 0 تا 5 ولت را در خروجی به ما نشان دهد.
چاره کار استفاده از دستور map است. map یک دستور بسیار قدرتمند است که ما را از بسیاری از فرمول های پیچیده جهت تبدیلات بی نیاز می کند.
int Ain, Volt;
Ain = analogRead(A0);
Volt = map(Ain, 0, 1023, 0, 5);
Serial.println(Volt);
✅ در خط اول ما دو متغیر از نوع int تعریف کردیم.
✅ در خط دوم مقدار ولتاژ پتانسیومتر را می خوانیم و در متغیر Ain قرار می دهیم که مقداری بین 0 تا 1023 است.
✅ در خط سوم دستور map مقدار خوانده شده از ورودی A0 را به همراه بازه آن و بازه جدید که ما تعریف می کنیم و در این مثال 0 تا 5 است از ما می گیرد و خروجی مطلوب را در متغیر Volt فرار میدهد.
✅ در خط چهارم مقدار خوانده شده را به پورت سریال ارسال می کنیم.
ادامه دارد...
#آردوینو کاران جوان
✅ اولین کانال آموزش آردوینو در تلگرام
✅ اتوماسیون خانگی و صنعتی
✅ برای عضویت کلیک کنید 👇🏻👇🏻👇🏻 https://telegram.me/ArduinoKaraneJavan
👍3
ورودی آنالوگ (ادامه)
حال اگر این مثال را انجام دهید متوجه می شوید که دستور map زاویه چرخش پتانسیومتر را که 270 درجه است به 6 قسمت مساوی تقسیم نموده است. و زمانیکه پتانسیومتر کاملاً به سمت چپ چزخانده شود مقدار 0 را به ما نشان میدهد و کمی بالاتر از آن تا یک قسمت خاصی مربوط به عدد 1 است و بعد تا یک محدوده به همان اندازه مربوط به عدد 2 است و... و در نهایت در انتهای زاویه چرخش پتانسیومتر عدد 5 را نشان می دهد.
حال اگر ما بخواهیم مقدار قراعت شده عدد دقیق تری باشد، و مثلاً اعداد را بصورت 3.49 نشان دهد چکاری انجام دهیم؟
چاره کار کلک رشتی است. ما در تعریف متغیر بجای int از float استفاده می کنیم تا اعداد اعشاری را نشان دهد و بازه تبدیل ولتاژ در دستور map را بجای 0 تا 5 به صفر تا 500 تغییر می دهیم و در نهایت بعد از تبدیل و قبل از نمایش مقدار آنرا بر 100 تقسیم می کنیم تا باز هم حداکثر مقدار نمایش داده شده 5.00 باشد.
float Ain, Volt;
Ain = analogRead(A0);
Volt = map(Ain, 0, 1023, 0, 500);
Volt = Volt/100.0;
Serial.print("Volt = ");
Serial.print(Volt, 2);
Serial.println(" V");
✅ خط 1 تعریف دو متغیر از نوع ممیز شناور.
✅ خط 2 خواندن مقدار پتانسیومتر.
✅ خط 3 تبدیل مقدار خوانده شده به عددی بین 0 تا 500
نکته: با این کار زاویه چرخش پتانسیومتر توسط دستور map به 500 قسمت مساوی تقسیم می شود. و هر قسمت 1/500 از 5 ولت می شود. یعنی هر قسمت 0.01 ولت می شود.
✅ خط 4 تقسیم عدد بدست آمده به 100 جهت تبدیل بازه بین 0.00 تا 5.00
نکته: چون مقدار داخل متغیر Volt از نوع float است عددی که به آن تقسیم میکنیم نیز باید از نوع float باشد بنابراین مقدار 100 را بصورت 100.0 نوشته ایم.
✅ خط 5 عبارت " = Volt" را در پورت سریال نمایش میدهد ولی به خط بعدی نمی رود.
✅ خط 6 عبارت مقدار ولتاژ خوانده شده را تا 2 رقم اعشار در پورت سریال نمایش میدهد و باز هم به خط بعدی نمی رود.
نکته: وقتی یک مقدار اعشاری از نوع float را میخواهیم در خروجی چاپ کنیم میتوانیم به این روش تعداد ارقام اعشار آنرا تعیین کنیم.
✅ خط 7 عبارت " v " را در پورت سریال نمایش میدهد و بعد به خط بعدی می رود.
ادامه دارد...
#آردوینو کاران جوان
✅ اولین کانال آموزش آردوینو در تلگرام
✅ اتوماسیون خانگی و صنعتی
✅ برای عضویت کلیک کنید 👇🏻👇🏻👇🏻 https://telegram.me/ArduinoKaraneJavan
حال اگر این مثال را انجام دهید متوجه می شوید که دستور map زاویه چرخش پتانسیومتر را که 270 درجه است به 6 قسمت مساوی تقسیم نموده است. و زمانیکه پتانسیومتر کاملاً به سمت چپ چزخانده شود مقدار 0 را به ما نشان میدهد و کمی بالاتر از آن تا یک قسمت خاصی مربوط به عدد 1 است و بعد تا یک محدوده به همان اندازه مربوط به عدد 2 است و... و در نهایت در انتهای زاویه چرخش پتانسیومتر عدد 5 را نشان می دهد.
حال اگر ما بخواهیم مقدار قراعت شده عدد دقیق تری باشد، و مثلاً اعداد را بصورت 3.49 نشان دهد چکاری انجام دهیم؟
چاره کار کلک رشتی است. ما در تعریف متغیر بجای int از float استفاده می کنیم تا اعداد اعشاری را نشان دهد و بازه تبدیل ولتاژ در دستور map را بجای 0 تا 5 به صفر تا 500 تغییر می دهیم و در نهایت بعد از تبدیل و قبل از نمایش مقدار آنرا بر 100 تقسیم می کنیم تا باز هم حداکثر مقدار نمایش داده شده 5.00 باشد.
float Ain, Volt;
Ain = analogRead(A0);
Volt = map(Ain, 0, 1023, 0, 500);
Volt = Volt/100.0;
Serial.print("Volt = ");
Serial.print(Volt, 2);
Serial.println(" V");
✅ خط 1 تعریف دو متغیر از نوع ممیز شناور.
✅ خط 2 خواندن مقدار پتانسیومتر.
✅ خط 3 تبدیل مقدار خوانده شده به عددی بین 0 تا 500
نکته: با این کار زاویه چرخش پتانسیومتر توسط دستور map به 500 قسمت مساوی تقسیم می شود. و هر قسمت 1/500 از 5 ولت می شود. یعنی هر قسمت 0.01 ولت می شود.
✅ خط 4 تقسیم عدد بدست آمده به 100 جهت تبدیل بازه بین 0.00 تا 5.00
نکته: چون مقدار داخل متغیر Volt از نوع float است عددی که به آن تقسیم میکنیم نیز باید از نوع float باشد بنابراین مقدار 100 را بصورت 100.0 نوشته ایم.
✅ خط 5 عبارت " = Volt" را در پورت سریال نمایش میدهد ولی به خط بعدی نمی رود.
✅ خط 6 عبارت مقدار ولتاژ خوانده شده را تا 2 رقم اعشار در پورت سریال نمایش میدهد و باز هم به خط بعدی نمی رود.
نکته: وقتی یک مقدار اعشاری از نوع float را میخواهیم در خروجی چاپ کنیم میتوانیم به این روش تعداد ارقام اعشار آنرا تعیین کنیم.
✅ خط 7 عبارت " v " را در پورت سریال نمایش میدهد و بعد به خط بعدی می رود.
ادامه دارد...
#آردوینو کاران جوان
✅ اولین کانال آموزش آردوینو در تلگرام
✅ اتوماسیون خانگی و صنعتی
✅ برای عضویت کلیک کنید 👇🏻👇🏻👇🏻 https://telegram.me/ArduinoKaraneJavan
#آردوینو کاران جوان
✅ اولین کانال آموزش آردوینو در تلگرام
✅ اتوماسیون خانگی و صنعتی
✅ برای عضویت کلیک کنید 👇🏻👇🏻👇🏻 https://telegram.me/ArduinoKaraneJavan
✅ اولین کانال آموزش آردوینو در تلگرام
✅ اتوماسیون خانگی و صنعتی
✅ برای عضویت کلیک کنید 👇🏻👇🏻👇🏻 https://telegram.me/ArduinoKaraneJavan
Lesson_6.ino
237 B
#درس 6: ولت متر دیجیتال https://telegram.me/ArduinoKaraneJavan
مدار مربوط به درس 6
✅ اولین کانال آموزش آردوینو در تلگرام
✅ اتوماسیون خانگی و صنعتی
✅ برای عضویت کلیک کنید 👇🏻👇🏻👇🏻 https://telegram.me/ArduinoKaraneJavan
✅ اولین کانال آموزش آردوینو در تلگرام
✅ اتوماسیون خانگی و صنعتی
✅ برای عضویت کلیک کنید 👇🏻👇🏻👇🏻 https://telegram.me/ArduinoKaraneJavan
ورودی آنالوگ (ادامه)
کالیبراسیون
سلام دوستان امروز میخواهیم روش اتصال سنسور های مختلف به ورودی آنالوگ و کالبراسیون آنها را مورد برسی قرار دهیم.
✅ بعضی از سنسورهای آنالوگ دارای 3 رشته سیم بوده و خروجی آنها بصورت مقاومت متغیر می باشد. و دقیقاً مانند درس 6 می توانیم خروجی آنها را بخوانیم و کنترل نماییم. مانند سنسور ارتفاع، سنسور ولوم دیجیتالی و غیره...
✅ اکثر سنسورهای آنالوگ دیگر نیز بصورت خروجی مقاومتی می باشند، ولی 2 رشته سیم دارند. مانند: فتوسل، NTC ، PTC ، LDR و غیره...
جهت اندازه گیری مقدار سنسور های دو سیمه مقاومتی باید توسط سری نمودن سنسور با یک مقاومت، یک مدار مقسم ولتاژ درست کنیم و سپس ولتاژ خروجی آنرا اندازه گیری نماییم.
نکته: مشکلی که در این نوع خروجی گرفتن بوجود می آید این است که خروجی مدار مقسم ولتاژ که به ورودی آنالوگ آردوینو متصل می گردد، دیگر بین 0 تا 1023 نیست و با توجه به اینکه قطعات تلرانس های مختلفی در دما های مختلف دارند نمیتوانیم از فرمول ثابتی جهت خروجی دقیق استفاده کنیم.
پس چاره کار چیست؟ آیا باز هم باید کلک رشتی بزنیم؟ نه! اینبار باید از کالیبراسیون استفاده نماییم.
ادامه دارد...
https://telegram.me/ArduinoKaraneJavan
کالیبراسیون
سلام دوستان امروز میخواهیم روش اتصال سنسور های مختلف به ورودی آنالوگ و کالبراسیون آنها را مورد برسی قرار دهیم.
✅ بعضی از سنسورهای آنالوگ دارای 3 رشته سیم بوده و خروجی آنها بصورت مقاومت متغیر می باشد. و دقیقاً مانند درس 6 می توانیم خروجی آنها را بخوانیم و کنترل نماییم. مانند سنسور ارتفاع، سنسور ولوم دیجیتالی و غیره...
✅ اکثر سنسورهای آنالوگ دیگر نیز بصورت خروجی مقاومتی می باشند، ولی 2 رشته سیم دارند. مانند: فتوسل، NTC ، PTC ، LDR و غیره...
جهت اندازه گیری مقدار سنسور های دو سیمه مقاومتی باید توسط سری نمودن سنسور با یک مقاومت، یک مدار مقسم ولتاژ درست کنیم و سپس ولتاژ خروجی آنرا اندازه گیری نماییم.
نکته: مشکلی که در این نوع خروجی گرفتن بوجود می آید این است که خروجی مدار مقسم ولتاژ که به ورودی آنالوگ آردوینو متصل می گردد، دیگر بین 0 تا 1023 نیست و با توجه به اینکه قطعات تلرانس های مختلفی در دما های مختلف دارند نمیتوانیم از فرمول ثابتی جهت خروجی دقیق استفاده کنیم.
پس چاره کار چیست؟ آیا باز هم باید کلک رشتی بزنیم؟ نه! اینبار باید از کالیبراسیون استفاده نماییم.
ادامه دارد...
https://telegram.me/ArduinoKaraneJavan
مدار مربوط به درس 7: اتصال فتوسل به ورودی آنالوگ و خواندن مقدار آن https://telegram.me/ArduinoKaraneJavan
ورودی آنالوگ (ادامه)
کالیبراسیون
سلام دوستان امروز میخواهیم روش کالیبره کردن را با هم آموزش دیده و انجام دهیم.
برای این منظور مدار شکل بالا را ببندید تا با هم به تست و آزمایش بپردازیم.
برنامه زیر را در نظر بگیرید:
// ثابتها:
const int sensorPin = A0; // پینی که سنسور به آن وصل میشود
const int ledPin = 9; // به آن وصل می شود LED پینی که
// متغیر ها:
int sensorValue = 0; // مقدار خوانده شده سنسور
int sensorMin = 1023; // حداقل مقدار سنسور
int sensorMax = 0; // حداکثر مقدار سنسور
void setup() {
// روشن کردن LED تا پایان کالیبره شدن دستگاه:
pinMode(13, OUTPUT);
digitalWrite(13, HIGH);
// کالیبره کردن دستگاه در 5 ثانیه اولیه روشن شدن:
// دستور ()millis مدت زمان سپری شده از لحظه روشن شدن دستگاه یا ریست شدن آن تا حالا را بر حسب میلی ثانیه به ما نشان میدهد و پس از گذشت 50 روز صفر می شود و دوباره شروع به شمارش میکند.
// دستور while تا زمانیکه شرط مقابل آن درست باشد دستورات داخل{} را اجرا می کند.
// در طی این 5 ثانیه باید بیشترین نور را به سنسور بتابانیم و همچنین آنرا در تاریکترین محیط نیز قرار دهیم.
while (millis() < 5000) {
sensorValue = analogRead(sensorPin);
// ذخیره بیشترین مقداری که سنسور نشان میدهد.
// در ابتدای برنامه آنرا 0 گذاشتیم تا اکنون بتواند بیشترین مقدار را به خود بگیرد.
if (sensorValue > sensorMax) {
sensorMax = sensorValue;
}
// ذخیره کمترین مقداری که سنسور نشان میدهد.
// در ابتدای برنامه آنرا 1023 گذاشتیم تا اکنون بتواند کمترین مقدار را به خود بگیرد.
if (sensorValue < sensorMin) {
sensorMin = sensorValue;
}
}
// خاموش شدن LED به منظور نمایش اتمام کالیبراسیون
digitalWrite(13, LOW);
}
void loop() {
// خواندن مقدار سنسور:
sensorValue = analogRead(sensorPin);
// اعمال کالیبراسیون روی مقدار خوانده شده از سنسور و تبدیل آن به عددی بین 0 تا 255
sensorValue = map(sensorValue, sensorMin, sensorMax, 0, 255);
// دستور constrain سه تا مقدار می گیرد و یکی را برمی گرداند:
// اگر مقدار اولی از لحاظ عددی بین مقدار دوم و سوم باشد، همان مقدار اولی برمیگردد.
// اگر مقدار اولی از لحاظ عددی کوچکتر از مقدار دوم باشد مقدار دومی برمی گردد.
// اگر مفدار اولی از لحاظ عددی بزرگتر از مقدار سوم باشد مقدار سومی برمیگردد.
// به این صورت مطمئن می شویم که مقداری که خوانده ایم همیشه در بازه مورد نظر ما است و اگر نویز روی آن افتاده باشد با این روش حذف میگردد.
sensorValue = constrain(sensorValue, 0, 255);
// خالا اگر مقدار خوانده شده از سنسور بین 0 و 255 باشد همان مقدار باقی می ماند.
// اگر مقدار خوانده شده کمتر از 0 باشد مقدار خوانده شده برابر 0 می شود.
// اگر مقدار خوانده شده بیشتر از 255 باشد. مقدار خوانده شده برابر 255 می شود.
// تنظیم نور LED بر اساس نور محیط
// دستور analogWrite یک ولتاژ PWM روی پایه مشخص شده تولید می کند که در آینده بطور کلی در این مورد صحبت خواهیم نمود.
analogWrite(ledPin, sensorValue);
}
ادامه دارد...
https://telegram.me/ArduinoKaraneJavan
کالیبراسیون
سلام دوستان امروز میخواهیم روش کالیبره کردن را با هم آموزش دیده و انجام دهیم.
برای این منظور مدار شکل بالا را ببندید تا با هم به تست و آزمایش بپردازیم.
برنامه زیر را در نظر بگیرید:
// ثابتها:
const int sensorPin = A0; // پینی که سنسور به آن وصل میشود
const int ledPin = 9; // به آن وصل می شود LED پینی که
// متغیر ها:
int sensorValue = 0; // مقدار خوانده شده سنسور
int sensorMin = 1023; // حداقل مقدار سنسور
int sensorMax = 0; // حداکثر مقدار سنسور
void setup() {
// روشن کردن LED تا پایان کالیبره شدن دستگاه:
pinMode(13, OUTPUT);
digitalWrite(13, HIGH);
// کالیبره کردن دستگاه در 5 ثانیه اولیه روشن شدن:
// دستور ()millis مدت زمان سپری شده از لحظه روشن شدن دستگاه یا ریست شدن آن تا حالا را بر حسب میلی ثانیه به ما نشان میدهد و پس از گذشت 50 روز صفر می شود و دوباره شروع به شمارش میکند.
// دستور while تا زمانیکه شرط مقابل آن درست باشد دستورات داخل{} را اجرا می کند.
// در طی این 5 ثانیه باید بیشترین نور را به سنسور بتابانیم و همچنین آنرا در تاریکترین محیط نیز قرار دهیم.
while (millis() < 5000) {
sensorValue = analogRead(sensorPin);
// ذخیره بیشترین مقداری که سنسور نشان میدهد.
// در ابتدای برنامه آنرا 0 گذاشتیم تا اکنون بتواند بیشترین مقدار را به خود بگیرد.
if (sensorValue > sensorMax) {
sensorMax = sensorValue;
}
// ذخیره کمترین مقداری که سنسور نشان میدهد.
// در ابتدای برنامه آنرا 1023 گذاشتیم تا اکنون بتواند کمترین مقدار را به خود بگیرد.
if (sensorValue < sensorMin) {
sensorMin = sensorValue;
}
}
// خاموش شدن LED به منظور نمایش اتمام کالیبراسیون
digitalWrite(13, LOW);
}
void loop() {
// خواندن مقدار سنسور:
sensorValue = analogRead(sensorPin);
// اعمال کالیبراسیون روی مقدار خوانده شده از سنسور و تبدیل آن به عددی بین 0 تا 255
sensorValue = map(sensorValue, sensorMin, sensorMax, 0, 255);
// دستور constrain سه تا مقدار می گیرد و یکی را برمی گرداند:
// اگر مقدار اولی از لحاظ عددی بین مقدار دوم و سوم باشد، همان مقدار اولی برمیگردد.
// اگر مقدار اولی از لحاظ عددی کوچکتر از مقدار دوم باشد مقدار دومی برمی گردد.
// اگر مفدار اولی از لحاظ عددی بزرگتر از مقدار سوم باشد مقدار سومی برمیگردد.
// به این صورت مطمئن می شویم که مقداری که خوانده ایم همیشه در بازه مورد نظر ما است و اگر نویز روی آن افتاده باشد با این روش حذف میگردد.
sensorValue = constrain(sensorValue, 0, 255);
// خالا اگر مقدار خوانده شده از سنسور بین 0 و 255 باشد همان مقدار باقی می ماند.
// اگر مقدار خوانده شده کمتر از 0 باشد مقدار خوانده شده برابر 0 می شود.
// اگر مقدار خوانده شده بیشتر از 255 باشد. مقدار خوانده شده برابر 255 می شود.
// تنظیم نور LED بر اساس نور محیط
// دستور analogWrite یک ولتاژ PWM روی پایه مشخص شده تولید می کند که در آینده بطور کلی در این مورد صحبت خواهیم نمود.
analogWrite(ledPin, sensorValue);
}
ادامه دارد...
https://telegram.me/ArduinoKaraneJavan