10 Arduino projects
By Jamal Nasser
1-إشارة مرور:
الأدوات:
1-أردوينو أونو
2-مقاومات 100 اوم
3-مصابيح LED
4-لوحة توصيل
5-أسلاك توصيل
2-مقاومات 100 اوم
3-مصابيح LED
4-لوحة توصيل
5-أسلاك توصيل
توصيل الدارة:
الكود البرمجي:
int GREEN = 2;
int YELLOW = 3;
int RED = 4;
int DELAY_GREEN = 5000;
int DELAY_YELLOW = 2000;
int DELAY_RED = 5000;
void setup()
{
pinMode(GREEN, OUTPUT);
pinMode(YELLOW, OUTPUT);
pinMode(RED, OUTPUT);
}
void loop()
{
green_light();
delay(DELAY_GREEN);
yellow_light();
delay(DELAY_YELLOW);
red_light();
delay(DELAY_RED);
}
void green_light()
{
digitalWrite(GREEN, HIGH);
digitalWrite(YELLOW, LOW);
digitalWrite(RED, LOW);
}
void yellow_light()
{
digitalWrite(GREEN, LOW);
digitalWrite(YELLOW, HIGH);
digitalWrite(RED, LOW);
}
void red_light()
{
digitalWrite(GREEN, LOW);
digitalWrite(YELLOW, LOW);
digitalWrite(RED, HIGH);
}
2إشارة مرور بثلاث تقاطعات:
الأدوات:
1-أردوينو أونو
2-مقاومات
3-مصابيح LED
4-لوحة توصيل
5-أسلاك توصيل
3-مصابيح LED
4-لوحة توصيل
5-أسلاك توصيل
توصيل الدارة:
الكود البرمجي:
void setup()
{
pinMode(3,OUTPUT);
pinMode(4,OUTPUT);
pinMode(5,OUTPUT);
pinMode(6,OUTPUT);
pinMode(7,OUTPUT);
pinMode(8,OUTPUT);
pinMode(9,OUTPUT);
pinMode(10,OUTPUT);
}
void loop()
{
digitalWrite(4,1);
digitalWrite(5,1);
digitalWrite(8,1);
digitalWrite(2,0);
digitalWrite(6,0);
digitalWrite(3,0);
digitalWrite(7,0);
digitalWrite(10,0);
digitalWrite(9,0);
delay(5000);
digitalWrite(6,1);
digitalWrite(5,0);
delay(1000);
digitalWrite(2,1);
digitalWrite(8,1);
digitalWrite(7,1);
digitalWrite(3,0);
digitalWrite(6,0);
digitalWrite(9,0);
digitalWrite(5,0);
digitalWrite(10,0);
digitalWrite(4,0);
delay(5000);
digitalWrite(9,1);
digitalWrite(8,0);
delay(1000);
digitalWrite(5,1);
digitalWrite(2,1);
digitalWrite(10,1);
digitalWrite(6,0);
digitalWrite(8,0);
digitalWrite(4,0);
digitalWrite(7,0);
digitalWrite(3,0);
digitalWrite(4,0);
digitalWrite(9,0);
delay(5000);
digitalWrite(3,1);
digitalWrite(2,0);
delay(1000);
}
3-عداد 7segment-cc:
الأدوات:
1-أردوينو أونو
2- 4 مقاومات 330 اوم
3- 7segment
4-لوحة توصيل
5-أسلاك توصيل
3- 7segment
4-لوحة توصيل
5-أسلاك توصيل
توصيل الدارة:
الكود البرمجي:
#include "SevSeg.h" SevSeg sevseg; void setup() { byte numDigits = 4; byte digitPins[] = {2, 3, 4, 5}; byte segmentPins[] = {6, 7, 8, 9, 10, 11, 12, 13}; sevseg.begin(COMMON_CATHODE, numDigits, digitPins, segmentPins); sevseg.setBrightness(90); } void loop() { sevseg.setNumber(3141, 3); sevseg.refreshDisplay(); }
4-قياس درجة الحرارة و سطوع الإضاءة:
الأدوات:
1-أردوينو أونو
2-شاشة LCD
3-مقاومة متغيرة 10K
4-مقاومة 1K
Photocell
4-مقاومة 1K
Photocell
6-حساس حرارة
7-لوحة توصيل
8-أسلاك توصيل
توصيل الدارة:
الكود البرمجي:
#include <LiquidCrystal.h>
int tempPin = 0;
int lightPin = 1;
// BS E D4 D5 D6 D7
LiquidCrystal lcd(7, 8, 9, 10, 11, 12);
void setup()
{
lcd.begin(16, 2);
}
void loop()
{
int tempReading = analogRead(tempPin);
float tempVolts = tempReading * 5.0 / 1024.0;
float tempC = (tempVolts - 0.5) * 100.0;
float tempF = tempC * 9.0 / 5.0 + 32.0;
lcd.print("Temp F ");
lcd.setCursor(6, 0);
lcd.print(tempF);
int lightReading = analogRead(lightPin);
lcd.setCursor(0, 1);
lcd.print("Light ");
lcd.setCursor(6, 1);
lcd.print(lightReading);
delay(500);
}
5-قفل الكتروني:
الأدوات:
1-أردوينو أونو
2-كيبادة
3-قفل
4-ريليه
5-بطارية 9V
6-مقاومة 220
7-مقياس جهد
8-شاشة LCD
9-لوحة توصيل
10-أسلاك توصيل
توصيل الدارة:
الكود البرمجي:
#include <Keypad.h> #include<LiquidCrystal.h> #include<EEPROM.h> LiquidCrystal liquid_crystal_display(9,8,7,6,5,4,); char password[4]; char initial_password[4],new_password[4]; int i=0; int relay_pin = 10; char key_pressed=0; const byte rows = 4; const byte columns = 4; char hexaKeys[rows][columns] = { {'1','2','3','A'}, {'4','5','6','B'}, {'7','8','9','C'}, {'*','0','#','D'} }; byte row_pins[rows] = {A0,A1,A2,A3}; byte column_pins[columns] = {A4,A5,3,2}; Keypad keypad_key = Keypad( makeKeymap(hexaKeys), row_pins, column_pins, rows, columns); void setup() { pinMode(relay_pin, OUTPUT); liquid_crystal_display.begin(16,2); liquid_crystal_display.print(" DIYhacking.com"); liquid_crystal_display.setCursor(0,1); liquid_crystal_display.print("Electronic Lock "); delay(2000); liquid_crystal_display.clear(); liquid_crystal_display.print("Enter Password"); liquid_crystal_display.setCursor(0,1); initialpassword(); } void loop() { digitalWrite(relay_pin, HIGH); key_pressed = keypad_key.getKey(); if(key_pressed=='#') change(); if (key_pressed) { password[i++]=key_pressed; liquid_crystal_display.print(key_pressed); } if(i==4) { delay(200); for(int j=0;j<4;j++) initial_password[j]=EEPROM.read(j); if(!(strncmp(password, initial_password,4))) { liquid_crystal_display.clear(); liquid_crystal_display.print("Pass Accepted"); digitalWrite(relay_pin, LOW); delay(2000); liquid_crystal_display.setCursor(0,1); liquid_crystal_display.print("Pres # to change"); delay(2000); liquid_crystal_display.clear(); liquid_crystal_display.print("Enter Password:"); liquid_crystal_display.setCursor(0,1); i=0; } else { digitalWrite(relay_pin, HIGH); liquid_crystal_display.clear(); liquid_crystal_display.print("Wrong Password"); liquid_crystal_display.setCursor(0,1); liquid_crystal_display.print("Pres # to Change"); delay(2000); liquid_crystal_display.clear(); liquid_crystal_display.print("Enter Password"); liquid_crystal_display.setCursor(0,1); i=0; } } } void change() { int j=0; liquid_crystal_display.clear(); liquid_crystal_display.print("Current Password"); liquid_crystal_display.setCursor(0,1); while(j<4) { char key=keypad_key.getKey(); if(key) { new_password[j++]=key; liquid_crystal_display.print(key); } key=0; } delay(500); if((strncmp(new_password, initial_password, 4))) { liquid_crystal_display.clear(); liquid_crystal_display.print("Wrong Password"); liquid_crystal_display.setCursor(0,1); liquid_crystal_display.print("Try Again"); delay(1000); } else { j=0; liquid_crystal_display.clear(); liquid_crystal_display.print("New Password:"); liquid_crystal_display.setCursor(0,1); while(j<4) { char key=keypad_key.getKey(); if(key) { initial_password[j]=key; liquid_crystal_display.print(key); EEPROM.write(j,key); j++; } } liquid_crystal_display.print("Pass Changed"); delay(1000); } liquid_crystal_display.clear(); liquid_crystal_display.print("Enter Password"); liquid_crystal_display.setCursor(0,1); key_pressed=0; } void initialpassword(){ for(int j=0;j<4;j++) EEPROM.write(j, j+49); for(int j=0;j<4;j++) initial_password[j]=EEPROM.read(j); }
6-قياس نبضات القلب:
الأدوات:
1-اردوينو اونو
2-حساس نبضات القلب
3-شاشة LCD
3-شاشة LCD
4-لوحة توصيل
5-أسلاك توصيل
5-أسلاك توصيل
توصيل الدارة:
الكود البرمجي:
#include<LiquidCrystal.h> LiquidCrystal lcd(12, 11, 5, 4, 3, 2); int in = 8; int Reset=6; int start=7; int count=0,i=0,k=0,rate=0; unsigned long time2,time1; unsigned long time; byte heart[8] = { 0b00000, 0b01010, 0b11111, 0b11111, 0b11111, 0b01110, 0b00100, 0b00000 }; void setup() { lcd.createChar(1, heart); lcd.begin(16,2); lcd.print("Heart Beat "); lcd.write(1); lcd.setCursor(0,1); lcd.print("Monitering"); pinMode(in, INPUT); pinMode(Reset, INPUT); pinMode(start, INPUT); digitalWrite(Reset, HIGH); digitalWrite(start, HIGH); delay(1000); } void loop()
{ if(!(digitalRead(start))) { k=0; lcd.clear(); lcd.print("Please wait......."); while(k<5) { if(digitalRead(in)) { if(k==0) time1=millis(); k++; while(digitalRead(in)); } } time2=millis(); rate=time2-time1; rate=rate/5; rate=60000/rate; lcd.clear(); lcd.print("Heart Beat Rate:"); lcd.setCursor(0,1); lcd.print(rate); lcd.print(" "); lcd.write(1); k=0; rate=0; } if(!digitalRead(Reset)) { rate=0; lcd.clear(); lcd.print("Heart Beat Rate:"); lcd.setCursor(0,1); lcd.write(1); lcd.print(rate); k=0; } }
7-تحكم بالبيت الذكي عن طريق البلوتوث:
الأدوات:
1-أردوينو أونو
2-بلوتوث HC-05
3-ريليه
4-ديود
5-ترانزستور 2n2222
6- مقاومات 330 اوم
7-لمبة 220 فولط
8-بطارية 9 فولط
9-لوحة توصيل
10-أسلاك توصيل
3-ريليه
4-ديود
5-ترانزستور 2n2222
6- مقاومات 330 اوم
7-لمبة 220 فولط
8-بطارية 9 فولط
9-لوحة توصيل
10-أسلاك توصيل
توصيل الدارة:
الكود البرمجي:
int incomingByte = 0; // for incoming serial data void setup() { Serial.begin(9600); pinMode(13, OUTPUT); } void loop() { if (Serial.available() > 0) { incomingByte = Serial.read() Serial.print(“I received: “); Serial.println(incomingByte, DEC); if ( incomingByte == 65) { digitalWrite(13, HIGH); } else if ( incomingByte == 97) { digitalWrite(13, LOW); } }
8-الإنذار بالليزر:
الأدوات:
1-أردوينو أونو
2-ليزر
3-LED
4-مقاومة متغيرة بالضوء LDR
5-طنان Buzzer
6-مقاومة 10
7-مقاومة للضوء 220
8-لوحة توصيل
9-أسلاك توصيل
توصيل الدارة:
الكود البرمجي:
int sensorPin=A0;
int sensorValue=0;
int piezoPin=9;
void setup()
{
pinMode(sensorPin,INPUT);
pinMode(7,OUTPUT);
pinMode(6,OUTPUT);
pinMode(piezoPin,OUTPUT);
digitalWrite(7,HIGH);
digitalWrite(6,LOW);
}
void loop()
{
sensorValue=analogRead(sensorPin);
if(sensorValue<=1000)
{
digitalWrite(piezoPin,HIGH);
{tone(9,3047,400); noTone(8); } digitalWrite(7,HIGH); }
else
{digitalWrite(piezoPin,LOW); digitalWrite(7,LOW); }
sensorValue=1000; }
9-حساس غاز:
الأدوات:
1-أردوينو أونو
2-حساس غاز MQ-4
3-شاشة LCD
4-Buzzer
5-مقاومة 220 اوم
6-مقاومة متغيرة 1K
7-لوحة توصيل
8-أسلاك توصيل
2-حساس غاز MQ-4
3-شاشة LCD
4-Buzzer
5-مقاومة 220 اوم
6-مقاومة متغيرة 1K
7-لوحة توصيل
8-أسلاك توصيل
توصيل الدارة:
الكود البرمجي:
#include <LiquidCrystal.h> LiquidCrystal lcd(7, 8, 9, 10, 11, 12); int potPin = A4; int potValue = 0; int buzzer = 6; void setup() { lcd.begin(16, 2); // lcd rows and columns lcd.print("GAS SENSOR"); pinMode(6, OUTPUT); } void loop() { potValue = analogRead(potPin); lcd.setCursor(0, 1); lcd.print("Value = "); lcd.print(potValue); delay(1000); lcd.print(" "); delay(1); if (potValue>15) { digitalWrite(6,HIGH); delay(1000); } }
10-دارة التحكم بشدة الإضاءة:
الأدوات:
1-أردوينو أونو
2-proto shield
3-LDR
4-trimmer
5-مكثفة 100ميكرو فاراد
6-مقاومة 220
7-مقاومة 100
8-مقاومة 1k
9-IRF520 MOSFET
10-لوحة توصيل
11-أسلاك توصيل
2-proto shield
3-LDR
4-trimmer
5-مكثفة 100ميكرو فاراد
6-مقاومة 220
7-مقاومة 100
8-مقاومة 1k
9-IRF520 MOSFET
10-لوحة توصيل
11-أسلاك توصيل
const int sensorPin = A0;
const int ledPin = 3;
const int potentiometerPin = A1;
float potentiometerVal;
float sensorVal;//sensor
float light = 0;
float mapping;
void setup(){
Serial.begin(9600);
pinMode(ledPin,OUTPUT);
}
void loop(){
sensorVal = analogRead(sensorPin);
potentiometerVal = analogRead(potentiometerPin);
potentiometerVal = map(potentiometerVal, 0, 1023, 0, 255);
sensorVal = map(sensorVal,0,1023, 255, 0);
mapping = potentiometerVal;
light = map (sensorVal, 0, 255, sensorVal - potentiometerVal , 255);
if (light <= 0)
light=0;
Serial.print("Brightness: ");
Serial.println(sensorVal);
Serial.print("Mapping: ");
Serial.println(potentiometerVal);
analogWrite(ledPin,light);
Serial.print("Light: ");
Serial.println(light);
delay(15);
}
ليست هناك تعليقات:
إرسال تعليق