سفر مبتدی: کشف جادوی تشخیص نور با آردوینو و مقاومت حسگر نور

در دنیایی که تکنولوژی پادشاه است، یک مخترع تنها تصمیم گرفت چیزی واقعاً آشفته خلق کند.
استفاده از چیزی جز یک آردوینو، حسگر نور (LDR)، و یک زنگآنها ماشینی ساختند که می توانست نور را به صدا تبدیل کند.
بنابراین، می خواهید بدانید چگونه این ماشین کوچک آشفته را ساختم؟ بذار کد رو بهت نشون بدم
‘int lightpin= A0;’
این خط شماره پین سنسور نور را مشخص می کند. ما از پین A0 در آردوینو استفاده می کنیم.
‘int buzzpin = 8;’
این خط شماره پین زنگ را مشخص می کند. ما از پین 8 در آردوینو استفاده می کنیم.
”’int lightval;
تاخیر بین المللی؛””
این دو خط متغیرهایی را برای نگه داشتن مقدار سنسور نور و زمان تاخیر برای آژیر تعریف می کنند.
”’راه اندازی void(){
pinMode (لایت پین، INPUT)؛
pinMode (buzzpin، OUTPUT)؛
Serial.begin(9600);
}”
در تابع setup، pinMode را برای سنسور نور و پین های buzzer تنظیم می کنیم. حسگر نور بهعنوان ورودی تنظیم میشود، زیرا ما دادهها را از آن میخوانیم، در حالی که زنگ هشدار بهعنوان OUTPUT تنظیم میشود زیرا دادهها را به آن ارسال میکنیم. ما همچنین ارتباط سریال را با نرخ باود 9600 شروع می کنیم تا بتوانیم ارزش سنسور نور را در مانیتور سریال ببینیم.
””
حلقه خالی(){
lightval = analogRead(lightpin);
تاخیر =(9.0/550.)*lightval-(9.*200./550.)+1.0;
Serial.println(lightval);
digitalWrite (buzzpin،HIGH)؛
تاخیر (تاخیر)؛
digitalWrite (buzzpin، LOW)؛
تاخیر (تاخیر)؛
}”
در تابع حلقه، مقدار سنسور نور را با استفاده از analogRead می خوانیم و آن را در متغیر lightval ذخیره می کنیم. سپس با استفاده از یک فرمول ریاضی، زمان تاخیر برای زنگ را بر اساس آن مقدار محاسبه می کنیم. این فرمول محدوده مقادیر ممکن برای سنسور نور را در نظر می گیرد و آن را به محدوده زمان تاخیر برای زنگ هشدار می دهد.
برای توضیحات بیشتر روی لینک کلیک کنید.
سپس مقدار سنسور نور را با استفاده از Serial.println روی نمایشگر سریال چاپ می کنیم تا بتوانیم نحوه تغییر آن را در زمان واقعی مشاهده کنیم.
در مرحله بعد، از DigitalWrite استفاده می کنیم تا با ارسال یک سیگنال HIGH به پین، زنگ را روشن کنیم. سپس از تاخیر استفاده می کنیم تا برای مدت زمانی برابر با زمان تاخیر محاسبه شده خود منتظر بمانیم و سپس با ارسال یک سیگنال LOW به پین، زنگ را دوباره خاموش کنیم. سپس از یک تاخیر دیگر استفاده می کنیم تا قبل از شروع دوباره حلقه، برای همان مدت زمان منتظر بمانیم.
این توالی روشن و خاموش کردن آژیر در فرکانس تعیین شده توسط زمان تاخیر محاسبه شده، صدایی را ایجاد می کند که بر اساس میزان نور تشخیص داده شده توسط سنسور تغییر می کند.
””
int lightpin= A0;
int buzzpin = 8;
int lightval;
تاخیر بین المللی؛
void setup(){
pinMode (لایت پین، INPUT)؛
pinMode (buzzpin، OUTPUT)؛
Serial.begin(9600);
}
حلقه خالی(){
lightval = analogRead(lightpin);
تاخیر =(9.0/550.)*lightval-(9.*200./550.)+1.0;
Serial.println(lightval);
digitalWrite (buzzpin،HIGH)؛
تاخیر (تاخیر)؛
digitalWrite (buzzpin، LOW)؛
تاخیر (تاخیر)؛
}”