۱۲ بهمن
۱۲ بهمن
ربات سازان اساک
/* Blink Turns on an LED on for one second, then off for one second, repeatedly. */ // the setup function runs once when you press reset or power the board void setup() { // initialize digital pin 13 as an output. pinMode(2, OUTPUT); } // the loop function runs over and over again forever void loop() { digitalWrite(2, HIGH); // turn the LED on (HIGH is the voltage level) delay(1000); // wait for a second digitalWrite(2, LOW); // turn the LED off by making the voltage LOW delay(1000); // wait for a second }
Please open Rubika to view this post
VIEW IN RUBIKA۱۲ بهمن
ربات سازان اساک
اگر سوالی دارید در گروه در جریان بگذارید
Please open Rubika to view this post
VIEW IN RUBIKA۱۲ بهمن
ربات سازان اساک
سلام به شما ما میخواهیم بهشما سنسور نشت گاز را یاد بدهیم
Please open Rubika to view this post
VIEW IN RUBIKA۱۲ بهمن
۱۲ بهمن
ربات سازان اساک
همانطور که می بینید این ماژول دارای ۴ پایه است که دو پایه مربوط به تغذیه ماژول است (GND,VCC) و باید به ولتاژ ۵ ولت متصل کنید, همچنین دقت کنید که جریان مصرفی این ماژول ۱۸۰ میلی امپر می باشد. دو پایه دیگر خروجی انالوگ و دیجیتال ماژول است که بسته به نیاز می توان از خروجی دیجیتال (D0) یا خروجی انالوگ (A0) استفاده کرد. تغییرات ولتاژ خروجی در حالت آنالوگ بین ۰ تا ۵V است, که با افزایش غلظت گاز ولتاژ خروجی بالاتر می رود. در این پروژه ی اموزشی ما از هر دو خروجی این ماژول استفاده خواهیم کرد.
Please open Rubika to view this post
VIEW IN RUBIKA۱۲ بهمن
۱۲ بهمن
ربات سازان اساک
در این پروژه از برد اردوینو UNO استفاده می کنیم. عملکرد پروژه به این صورت است که سنسور بطور مداوم میزان گاز موجود در محیط را اندازه گیری می کند و به صورت درصدی, روی یک LCD کاراکتری نمایش می دهد. همچنین در صورتی که میزان گاز از مقداری که مشخص می کنیم بیشتر شود یک بازر هشدار دهنده به صدا در می اید. شماتیک این پروژه به صورت زیر است :
Please open Rubika to view this post
VIEW IN RUBIKA۱۲ بهمن
ربات سازان اساک
در زیر برنامه این پروژه را مشاهده می کنید که توضیحات خط به خط ان نوشته شده است, اگر سوالی داشتید می تونید در قسمت نظرات مطرح کنید.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
//////// WWW.EMIC.IR ////////
#include <LiquidCrystal.h> // lcd معرفي کتابخانه //
//متصل شود LCD تابع زیر مشخص می کند که کدام پین های اردوینو به//
LiquidCrystal lcd(13, 12, 11, 10, 9, 8, 7);
void setup() {
//اردوینو مشخص میکند ADC دستور زیر مقدار ولتاژ مبنا یا رفرنس را برای کار با واحد//
analogReference(DEFAULT);
pinMode(A0, INPUT); //(پین انالوگ 0) A0 ورودی کردن پین//
pinMode(0, INPUT_PULLUP); //ورودی کردن پین 0 اردوینو//
pinMode(1, OUTPUT); //خروجی کردن پین 1 اردوینو//
lcd.begin(16, 2); // LCD پيکره بندي //
}
void loop() {
float a ; //خوانده شده از پین اردوینو در ان adc برای ریختن مقادیر a تعریف متغیر//
int MQ9 , P;
P = digitalRead(0); //میریزد P دستور روبرو هر مقداری که در پین صفر اردوینو هست را در متغیر//
if(P==1) digitalWrite(1, 0); //برابر 1 بود پین یک اردوینو برابر صفر می شود P در صورتی که متغیر//
if(P==0) digitalWrite(1, 1); //برابر 0 بود پین یک اردوینو برابر یک می شود P در صورتی که متغیر//
a = analogRead(A0); //(عددی بین 0 تا 1023) a در متغیر adc ریختن مقادیر//
MQ9 = (a * 100) / 1023 ; // دستور روبرو عدد خوانده شده بين 0 تا 1023 را در بازه ي 0 تا 100 تبديل مي کند //
lcd.clear(); // LCD پاک کردن //
lcd.print("Gas amount= "); //روی ال سی دی Gas amount نوشتن عبارت//
lcd.print(MQ9); // نوشتن درصد گاز موجود در محیط که در بالا بدست اوردیم روی ال سی دی //
lcd.print("%"); //نوشتن علامت % روی ال سی دی//
lcd.setCursor(2, 1); // رفتن به ستون 2 و سطر 1 //
lcd.print("WWW.EMIC.IR"); // LCD روي WWW.EMIC.IR نوشتن //
delay(500); // ايجاد تاخير به مدت نیم ثانيه //
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
//////// WWW.EMIC.IR ////////
#include <LiquidCrystal.h> // lcd معرفي کتابخانه //
//متصل شود LCD تابع زیر مشخص می کند که کدام پین های اردوینو به//
LiquidCrystal lcd(13, 12, 11, 10, 9, 8, 7);
void setup() {
//اردوینو مشخص میکند ADC دستور زیر مقدار ولتاژ مبنا یا رفرنس را برای کار با واحد//
analogReference(DEFAULT);
pinMode(A0, INPUT); //(پین انالوگ 0) A0 ورودی کردن پین//
pinMode(0, INPUT_PULLUP); //ورودی کردن پین 0 اردوینو//
pinMode(1, OUTPUT); //خروجی کردن پین 1 اردوینو//
lcd.begin(16, 2); // LCD پيکره بندي //
}
void loop() {
float a ; //خوانده شده از پین اردوینو در ان adc برای ریختن مقادیر a تعریف متغیر//
int MQ9 , P;
P = digitalRead(0); //میریزد P دستور روبرو هر مقداری که در پین صفر اردوینو هست را در متغیر//
if(P==1) digitalWrite(1, 0); //برابر 1 بود پین یک اردوینو برابر صفر می شود P در صورتی که متغیر//
if(P==0) digitalWrite(1, 1); //برابر 0 بود پین یک اردوینو برابر یک می شود P در صورتی که متغیر//
a = analogRead(A0); //(عددی بین 0 تا 1023) a در متغیر adc ریختن مقادیر//
MQ9 = (a * 100) / 1023 ; // دستور روبرو عدد خوانده شده بين 0 تا 1023 را در بازه ي 0 تا 100 تبديل مي کند //
lcd.clear(); // LCD پاک کردن //
lcd.print("Gas amount= "); //روی ال سی دی Gas amount نوشتن عبارت//
lcd.print(MQ9); // نوشتن درصد گاز موجود در محیط که در بالا بدست اوردیم روی ال سی دی //
lcd.print("%"); //نوشتن علامت % روی ال سی دی//
lcd.setCursor(2, 1); // رفتن به ستون 2 و سطر 1 //
lcd.print("WWW.EMIC.IR"); // LCD روي WWW.EMIC.IR نوشتن //
delay(500); // ايجاد تاخير به مدت نیم ثانيه //
}
Please open Rubika to view this post
VIEW IN RUBIKA۱۲ بهمن
ربات سازان اساک
همانطور که در بالا گفته شد, در این پروژه ما از هر دو خروجی انالوگ و دیجیتال این ماژول استفاده خواهیم کرد. خروجی دیجیتال ماژول که با D0 مشخص شده, در زمانی که سنسور گازی را در محیط حس نکند برابر یک منطقی یا ۵ ولت است و زمانی که سنسور گاز را در محیط تشخیص دهد برابر ۰ منطقی (۰ ولت) می شود. حساسیت خروجی دیجیتال ماژول از طریق پتانسیومتری که در پشت برد ماژول است تنظیم می شود. در این پروژه ما به این دلیل خروجی دیجیتال ماژول را به پایه 0 برد اردوینو یونو متصل کرده ایم, تا اردوینو خروجی را برای ما برعکس کند, یعنی زمانی که خروجی ماژول ۱ منطقی است برد اردوینو پایه 1 خود را 0 کند و زمانی که خروجی ماژول 0 است برد اردوینو پایه 1 خود را ۱ منطقی کند. به این ترتیب زمانی که سنسور گازی را تشخیص داد, بازری که از طریق ترانزیستور و مقاومت به پایه 1 برد اردوینو متصل است فعال می شود و زمانی که گازی در محیط نبود (یا مقدار ان کم بود) بازر غیرفعال است. از انجایی که جریان خروجی پایه های برد اردوینو کم است و نمی تواند یک بازر را راه اندازی کند ما از یک مدار راه انداز شامل ترانزیستور و مقاومت استفاده کرده ایم.
همانطور که گفته شد خروجی انالوگ ماژول در بازه ۰ تا ۵ ولت تغییر می کند که این تغییرات به غلظت یا میزان گاز موجود در محیط بستگی دارد. ما توسط مبدل اتالوگ به دیجیتال (ADC) برد اردوینو UNO این تغییرات را اندازه گیری می کنیم و به این ترتیب می توانیم میزان گاز محیط را اندازه گیری کرده و ان را به صورت درصدی روی LCD کاراکتری نمایش دهیم
همانطور که گفته شد خروجی انالوگ ماژول در بازه ۰ تا ۵ ولت تغییر می کند که این تغییرات به غلظت یا میزان گاز موجود در محیط بستگی دارد. ما توسط مبدل اتالوگ به دیجیتال (ADC) برد اردوینو UNO این تغییرات را اندازه گیری می کنیم و به این ترتیب می توانیم میزان گاز محیط را اندازه گیری کرده و ان را به صورت درصدی روی LCD کاراکتری نمایش دهیم
Please open Rubika to view this post
VIEW IN RUBIKA۱۲ بهمن
۱۲ بهمن
ربات سازان اساک
برای تنظیم کنتراست LCD می توانید پین ۳ ان را به یک پتانسیومتر متصل کنید یا در غیر این صورت پین ۳ را به منفی تغذیه وصل کنید از بازر ۵ ولت استفاده کنید (در صورتی که از بازر با ولتاژ بیشتر می خواهید استفاده کنید نیاز به تغذیه جداگانه برای ان دارید)برای تست پروژه حتما برد اردوینو را با اداپتور راه اندازی کنید (جریان دهی برد اردوینو در حالتی که با کابل usb متصل به کامپیوتر راه اندازی می شود بسیار کم است و جوابگوی برخی پروژه ها نیست)برای اشنایی با دستورات مربوط به LCD کاراکتری اینجا کلیک کنیدبرای اشنایی با دستورات و نحوه راه اندازی ADC در آردوینو اینجا کلیک کنیدبرای اشنایی با دستورات مهم برنامه نویسی اردوینو اینجا کلیک کنیدبرای اشنایی با نحوه پروگرام کردن برد اردوینو (ریختن برنامه روی برد) اینجا کلیک کنید
Please open Rubika to view this post
VIEW IN RUBIKA۱۲ بهمن
۱۲ بهمن
۱۲ بهمن
۱۲ بهمن
ربات سازان اساک
سلام مامیخواهیم پروژه جدیدی رابه شما یاد بدهیم
Please open Rubika to view this post
VIEW IN RUBIKA۱۲ بهمن
۱۲ بهمن
ربات سازان اساک
که در این کرونا بسیار کاربردی و بهداشتی هست
Please open Rubika to view this post
VIEW IN RUBIKA۱۲ بهمن
ربات سازان اساک
اتصالات مدار :
پایه GND سروو موتور را به پین GND آردوینو متصل کنید.پایه VCC سروو موتور را به پین ۵ ولت آردوینو متصل کنید.پایه سیگنال سروو موتور را به پین شماره ۲ آردوینو متصل کنید.پایه GND سنسور آلتراسونیک را به پین GND آردوینو متصل کنید.پایه VCC سنسور آلتراسونیک را به پین ۵ ولت آردوینو متصل کنید.پایه E سنسور آلتراسونیک را به پین شماره ۴ آردوینو متصل کنید.پایه T سنسور آلتراسونیک را به پین شماره ۳ آردوینو متصل کنید.
سایر اتصالات فیزیکی و نصب سروو موتور را طبق تصویر آموزش انجام دهید.
برنامه پروژه ساخت سطل زباله هوشمند
کد زیر را در نرم افزار آردوینو کپی و سپس بر روی برد آپلود کنید.
پایه GND سروو موتور را به پین GND آردوینو متصل کنید.پایه VCC سروو موتور را به پین ۵ ولت آردوینو متصل کنید.پایه سیگنال سروو موتور را به پین شماره ۲ آردوینو متصل کنید.پایه GND سنسور آلتراسونیک را به پین GND آردوینو متصل کنید.پایه VCC سنسور آلتراسونیک را به پین ۵ ولت آردوینو متصل کنید.پایه E سنسور آلتراسونیک را به پین شماره ۴ آردوینو متصل کنید.پایه T سنسور آلتراسونیک را به پین شماره ۳ آردوینو متصل کنید.
سایر اتصالات فیزیکی و نصب سروو موتور را طبق تصویر آموزش انجام دهید.
برنامه پروژه ساخت سطل زباله هوشمند
کد زیر را در نرم افزار آردوینو کپی و سپس بر روی برد آپلود کنید.
Please open Rubika to view this post
VIEW IN RUBIKA۱۲ بهمن
۱۲ بهمن
ربات سازان اساک
#include <Servo.h>
Servo myservo;
const int servo_pin = 2;
const int trig_pin = 3;
const int echo_pin = 4;
const int inter_time = 200;
int time = 0;
void setup()
{
Serial.begin(9600);
myservo.attach(servo_pin, 500, 2400);
myservo.write(90);
pinMode (trig_pin, OUTPUT);
pinMode (echo_pin, INPUT);
delay(3000);
}
void loop()
{
float duration, distance;
digitalWrite(trig_pin, HIGH);
delayMicroseconds(1000);
digitalWrite(trig_pin, LOW);
duration = pulseIn (echo_pin, HIGH);
distance = (duration/2)/29;
Serial.print(distance);
Serial.println(" cm");
time = time + inter_time;
delay(inter_time);
if (distance < 10)
{
for(int i = 1500; i >= 1100; i-=25){
myservo.writeMicroseconds(i);
Serial.println("2");
delay(100);
}
delay(1000);
for(int i = 1100; i <= 1500; i+=25){
myservo.writeMicroseconds(i);
Serial.println("1");
delay(100);
}
}
}
Servo myservo;
const int servo_pin = 2;
const int trig_pin = 3;
const int echo_pin = 4;
const int inter_time = 200;
int time = 0;
void setup()
{
Serial.begin(9600);
myservo.attach(servo_pin, 500, 2400);
myservo.write(90);
pinMode (trig_pin, OUTPUT);
pinMode (echo_pin, INPUT);
delay(3000);
}
void loop()
{
float duration, distance;
digitalWrite(trig_pin, HIGH);
delayMicroseconds(1000);
digitalWrite(trig_pin, LOW);
duration = pulseIn (echo_pin, HIGH);
distance = (duration/2)/29;
Serial.print(distance);
Serial.println(" cm");
time = time + inter_time;
delay(inter_time);
if (distance < 10)
{
for(int i = 1500; i >= 1100; i-=25){
myservo.writeMicroseconds(i);
Serial.println("2");
delay(100);
}
delay(1000);
for(int i = 1100; i <= 1500; i+=25){
myservo.writeMicroseconds(i);
Serial.println("1");
delay(100);
}
}
}
Please open Rubika to view this post
VIEW IN RUBIKA۱۲ بهمن
۱۲ بهمن
ربات سازان اساک
در این برنامه نویسی ما به شما تصویری راداده ایم که نشان میدهد که چگونه باید سرور موتور وماژول را به اردینو وصل کنید
Please open Rubika to view this post
VIEW IN RUBIKA۱۲ بهمن
ربات سازان اساک
واین هم برنامه کد های. برنامه اردینو که شما دوست عزیز میتوانید انرا کپی ودر. برنامه کامپیوتر ویا گوشی هوشمند خود انتقال دهید وبه اردینو بریزید
Please open Rubika to view this post
VIEW IN RUBIKA۱۱ اسفند