دستور digitalWrite در آردوینو (روشن و خاموش کردن پین)

این دستور وضعیت پین دیجیتالی مورد نظر ما را تعیین میکند که میتواند HIGH
یا LOW
باشد.
اگر پین با دستور pinMode
در حالت OUTPUT پیکربندی شده باشد ، ولتاژ آن روی مقداری که تعیین میکنیم تنظیم میشود. یعنی با مقدار HIGH در پین 5 ولت (یا 3.3 ولت در برد های 3.3 ولت) قرار میگیرد و با قرار دادن وضعیت پین روی LOW، ولتاژ 0 یا همان GND در این پین قرار میگیرد.
اگر پین به صورت INPUT پیکربندی شده باشد، digitalWrite مقاومت پول آپ داخلی را فعال (HIGH) و غیرفعال (LOW) میکند. برای فعال سازی مقاومت پول آپ داخلی، بهتر است در دستور pinMode، حالت پین را روی INPUT_PULLUP قرار دهید.
اگر pinMode () را روی OUTPUT تنظیم نکنید و یک LED را به پین متصل کنید، هنگام قرار دادن پین در حالت HIGH، ممکن است LED کم نور به نظر برسد. در این شرایط آردوینو مقاومت داخلی پول آپ را فعال کرده است.
دستور digitalWrite
digitalWrite(pin, value)
- pin: به جای pin باید نام پین که میخواهید وضعیت دیجیتالی آن را تعیین کنید را بنویسید.
- value: در این پارامتر میتوانید مقدار
HIGH
یاLOW
را بنویسید. با نوشتن HIGH، ولتاژ + در این پین قرار میگیرد و با نوشتن LOW، این پین تبدیل به GND میشود.
به طور مثال اگر با برد آردوینو اونو، میخواهید پین 12 را در حالت ولتاژ +5 قرار دهید، باید دستور را به صورت digitalWrite(12, HIGH) بنویسید.
چه چیزی را بر میگرداند؟
هیچ چیز
نمونه کد با دستور digitalWrite
کد زیر پین 13 را روشن و خاموش (Toggle) میکند. در این کد از دستور digitalWrite استفاده میشود.
void setup() { pinMode(13, OUTPUT); // تنظیم پین دیجیتالی 13 در حالت خروجی } void loop() { digitalWrite(13, HIGH); // HIGH کردن پین دیجیتالی 13 delay(1000); // تاخیر به مدت 1 ثانیه digitalWrite(13, LOW); // LOW کردن پین دیجیتالی 13 delay(1000); // تاخیر به مدت 1 ثانیه }
نکات:
- پین های ورودی آنالوگ در آردوینو اونو، آردوینو نانو و … dukd همان نام A0، A1 و … میتوانند با دستور digitalWrite روشن و خاموش شوند.
دستورات مرتبط:
سلام ممنون از سایت خوبتون
یک سوال داشتم
اینکه چطور میتونم دو تا LED رو همزمان روشن کنم
ممنون میشم کدش رو بگید
سلام عزیز
دوبار دستور Digital Write و pinMode را قرار بدهید. برای یادگیری برنامه نویسی آردوینو به صورت حرفه ای، دوره آموزش آردوینو را مشاهده کنید.
سلام
با توجه به اینکه اکثر ماژول های رله توی بازار Active Low هستند
و پینهای میکرو تا قبل از رسیدن به دستورات پیکربندی پینها در حالت Low قرار دارند ( که این امر باعث روشن شدن لحظه ای رله میشود )
چه راهکاری برای این منظور پیشنهاد میکنید ؟؟؟
سلام عزیز
اکثر رله های موجود در بازار اکتیو LOW نیستند. شما میتوانید هر نوع که میخواهید را تهیه کنید در فروشگاه آیرنکس هر دو موجود هست.
برای رفع این مشکل یک مقاومت پول آپ در پایه سیگنال رله قرار بدهید.
سلام
مطالب خیلی خلاصه ، مفید و مختصر بودن و البته بسیار عالی
ممنون از شما که برای تهیه این مطالب زحمت می کشید.
من یه سوال داشتم ، من تازه دارم برنامه نویسی رو شروع می کنم ، می خوام بدونم چجوری می تونم با *یک* دستور digitalWrite از *دو تا پین* خروجی بگیرم؟
برای مثال من می خوام که از پایه های دیجیتال ۱۳ و ۱۲ به عنوان OUTPUT ، با یک کد digitalWrite ، خروجی بگیرم
می شه لطفا من رو راهنمایی کنید؟
ممنون می شم اگه تو واتساپ بهم پیام بدید
سلام عزیز، خوشحالم که آیرنکس براتون مفید بوده. امکان انجام این کاری که فرمودین نیست.