اینجا دیدید که چطور اولین گام رو برای شروع کارمون در آموزش آردوینو برداشتیم. شاید یک LED چشمکزن، ساده به نظر بیاد؛ اما طبق یک افسانهی قدیمی کسی که یکبار LEDD ها رو خاموش روشن کنه نفرین اونها تا پایان عمر گریبانش رو میگیره و نمیتونه هیچ پروژهای رو بدون روشن خاموش کردن اونها به پایان برسونه!
حالا که این نفرین گریبانمون رو گرفته، بهتره بیشتر باهاش آشنا بشیم!
توی نمونه کدی که استفاده کردیم دوتا تابع اصلی وجود داشت، یکی Setup و اون یکی هم Loop.
تابع Setup اینجا مختصری دربارهاش توضیح دادهشده و بهطور خلاصه ما توی این پروژه برای پیکربندی وضعیت پینها ازش استفاده کردیم. پین چیه؟ پین پینه دیگه! رو بوردتون نگاه کنید. توی دو طرفش تعداد زیادی ازش وجود داره. شما اول باید تو همین تابع Setup تکلیف خودتون و بوردتون رو با این پینها مشخص کنید. فعلاً همینقدر میدونم که میتونیم وضعیت ورودی یا خروجی بودنشون رو مشخص کنیم.
تابع Loop هم که باز اینجا دربارهاش توضیح دادهشده و تا وقتی جان در بدن دارد مرتباً تکرار میشه!
ما توی این پروژه کار هیجانانگیزی کردیم و مقداری رو توی خروجی یک پایه قرار دادیم! با همین یک خط دستور digitalWrite اعلام کردیم مقدار HIGH که ۱ هست و یا مقدار LOW که همون صفر هست رو توی خروجی قرار بده.
C++
1
2
3
4
5
6
7
8
9
10
11
12
voidsetup(){
// initialize digital pin LED_BUILTIN as an output.
pinMode(LED_BUILTIN,OUTPUT);
}
// the loop function runs over and over again forever
voidloop(){
digitalWrite(LED_BUILTIN,HIGH);// turn the LED on (HIGH is the voltage level)
delay(1000);// wait for a second
digitalWrite(LED_BUILTIN,LOW);// turn the LED off by making the voltage LOW
delay(1000);// wait for a second
}
برای پروژه دوم هم دست به دامان LED میشیم. این بار تلاش کردم نور LED رو بهجای خاموش روشن شدن یک باره، از کمنور به پرنور برسونم.
با جستجو متوجه شدم که بجای HIGH و LOW میشه مقداری بین 0 تا 255 رو بر روی خروجی پایه قرار داد بنابراین کد زیر رو نوشتم:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
intbrightness=0;
intsteps=5;
// the setup function runs once when you press reset or power the board
voidsetup(){
// initialize digital pin LED_BUILTIN as an output.
pinMode(LED_BUILTIN,OUTPUT);
}
// the loop function runs over and over again forever
voidloop(){
digitalWrite(LED_BUILTIN,brightness);
brightness+=steps;
if(brightness<=0||brightness>=255)steps=-steps;
delay(30);
}
متأسفانه LED داخلی بورد بهقدری کوچیکه که با چشم غیرمسلح این تغییر نور رو نمیشه حس کرد! بنابراین وقتش رسیده که از دوست قدیمیمون، بِرِد بورد استفاده کنیم. اگه شما هم کلاً ریست فکتوری کردید و یادتون رفته اصلاً این موجود سوراخ سوراخ چی بود یه گوگل کوتاهی در مورد نحوه اتصال ردیفها و ستونها انجام بدین.
همونطور که میبینید، چند موجود عجیب و جدید وارد پروسهی پیچیدهی آموزش ما شدند! یک مقاومت شل و ول که بهم توصیه شد برای جلوگیری از سوختن LED ازش استفاده کنم و یک سیم که دوتا سرش پین داره و راحت توی برد بورد قرار میگیره.
پایه شماره ۳ رو با مقاومت به پایه مثبت LED متصل کردم و با اون سیم هم اتصالی بین پایه زمین بورد (که با GND مشخصشده) و پایه زمین LED برقرار کردم.
توی برنامه، LED_BULTIN رو با شماره ۳ (که میتونست هر پایه دیگهای باشه) جایگزین کردم و برنامه رو اجرا کردم.
LED روشن شد اما نه اونطور که باید میشد؛ یعنی همچنان مثل قبل بهصورت صفر و یک روشن میشد. بعد از حدود ۴۰ دقیقه کاوش فهمیدم که خوب طبیعتاً وقتی از تابع digitalWrite استفاده میکنید نمیتونید مقادیری غیر از صفر و یک داشته باشید، پس analogWrite رو جایگزین کردم و شد آنچه شد!
ریموت کنترل امروزه کاربرد زیادی پیدا کرده است؛ از ریموتهای درب بازکن تا ریموتهای دزدگیر و کنترل روشنایی همه از یک اصول اولیه پیروی میکنند و آنهم ارسال اطلاعات بهصورت بیسیم است....
امنیت همیشه و در همهی اعصار، مقولهی مهم و قابلتوجه ای بوده و همیشه نوع بشر به دنبال امنیت بیشتر، دست به ابداعات و اختراعات گوناگونی زده است. ریموت کنترل یکی از این اختراعات است. در این مقاله، به بررسی امنیت انواع ریموتهای کنترل خواهیم پرداخت....
دیدگاه ها
0 دیدگاه