 |
:: مهندس متواجد ::
تاريخ التسجيل: Mar 2012
الدولة: مصر
المشاركات: 117
|
|
نشاط [ motoman2010 ]
قوة السمعة:0
|
|
25-02-2018, 08:18 AM
المشاركة 4
|
|
بسم الله الرحمن الرحيم
اقدم لكم دائرة تحكم فى الفقاسه الالكترونيه
وهى مبرمجه بالاردوينو
تقوم بتثبيت درجه الحراره عند 37 درجه
وعليه تقوم بتشغيل وفصل السخان ومروحة توزيع الحراره
وهذا هو الكود الخاص بها من انشائي
const byte P_HEAT_SENSOR = A0;
const byte P_HEATER = 9;
//const byte P_MOTOR = A2;
const byte P_FAN = 10;
const byte P_7_SEG_1 = 5;
const byte P_7_SEG_2 = 6;
const byte P_7_SEG_4 = 7;
const byte P_7_SEG_8 = 8;
const byte P_7_SEG_E_1 = 3;
const byte P_7_SEG_E_2 = 4;
const int REFRESH_TIME = 2000;
int heat_temp=0;
bool first7seg = true;
unsigned long lastChange = 0;
int num1,num2;
//Methods
void splitNumber(int num);
void draw7seg(byte num,byte one,byte two,byte four,byte eight);
void setup() {
// Serial.begin(9600);
pinMode(P_HEAT_SENSOR,INPUT);
pinMode(P_HEATER,OUTPUT);
// pinMode(P_MOTOR,OUTPUT);
pinMode(P_FAN,OUTPUT);
pinMode(P_7_SEG_1,OUTPUT);
pinMode(P_7_SEG_2,OUTPUT);
pinMode(P_7_SEG_4,OUTPUT);
pinMode(P_7_SEG_8,OUTPUT);
pinMode(P_7_SEG_E_1,OUTPUT);
pinMode(P_7_SEG_E_2,OUTPUT);
}
void loop() {
if(millis() - lastChange > REFRESH_TIME){
heat_temp = analogRead(P_HEAT_SENSOR);
heat_temp = (heat_temp * 0.48828125);
lastChange = millis();
}
if(heat_temp<37)
{
digitalWrite(P_HEATER,HIGH);
digitalWrite(P_FAN,HIGH);
//Serial.println( heat_temp);
// delay(10);
}
else if(heat_temp>=37)
{
digitalWrite(P_HEATER,LOW);
digitalWrite(P_FAN,LOW);
//Serial.println("low");
// Serial.println(heat_temp);
//delay(10);
}
splitNumber(heat_temp,num1,num2);
if(first7seg){
draw7seg(num1,P_7_SEG_1,P_7_SEG_2,P_7_SEG_4,P_7_SE G_8);
//set_BCD(num1);
digitalWrite(P_7_SEG_E_1,LOW);
digitalWrite(P_7_SEG_E_2,HIGH);
delay(1);
}else{
draw7seg(num2,P_7_SEG_1,P_7_SEG_2,P_7_SEG_4,P_7_SE G_8);
// set_BCD(num2);
digitalWrite(P_7_SEG_E_1,HIGH);
digitalWrite(P_7_SEG_E_2,LOW);
delay(1);
}
first7seg = !first7seg;
delay(1);
}
void splitNumber(int num,int& num1,int& num2){
num1 = (num) / 10; // tens
num2 = (num) - num1*10;
}
void draw7seg(byte num,byte one,byte two,byte four,byte eight){
bool oneVal = num == 1 || num == 3 || num == 5 || num == 7 || num == 9;
bool twoVal = num == 2 || num == 3 || num == 6 || num == 7;
bool fourVal= num == 4 || num == 6 || num == 7 || num == 5;
bool eightVal=num == 8 || num == 9;
digitalWrite(one,oneVal);
digitalWrite(two,twoVal);
digitalWrite(four,fourVal);
digitalWrite(eight,eightVal);
}
|
وهذا هو التصميم الخاص بها
على برنامج circuit wizard
http://www.mediafire.com/file/znbufeqgzdja50z/Egg2.cwz
|