قسم الميكروكنترولر والروبوت ودوائر الاتصال بالحاسب الالي قسم المتحكمات الـ microcontroller و المعالجات microprocessor و التحكم الرقمي بالكمبيوتر CNC والانظمة الآلية والروبوت Robots

   

ahmed idris
:: مهندس متميز ::
تاريخ التسجيل: Jul 2015
المشاركات: 450
نشاط [ ahmed idris ]
قوة السمعة:
قديم 17-06-2016, 08:25 PM المشاركة 9   
افتراضي



نعم أخي هذا ما توقعته وفقك الله وأعانك على تحقيق هدفك على أكمل وجه.
1/ بالنسبة لدائرة التحكم في الريليه فلا فرق بين الدائرتين
ربما الفرق في قيمة مقاومة قاعدة الترانزيستور .
جهد نبضة التحكم القادمة من البيك لا يتعدى 5 فولت لذلك وضعت 1 كيلو لمقاومة قاعدة الترانزيستور ضمانا لحصوله على تيار كافي.
أي ترانزيستور مكافئ يمكن استخدامه لتشغيل الريلي.
لكن إذا عملت دائرتك ب10 كيلو ممكن تحتفض بها .
أيضا بالنيسبة للمقاومة مع الليد ، ضروري 1 كيلو بما أن الجهد 12 فولت حتى لا يتعدى التيار المار عبر الليد 20 ميللي أمبير كحد أقصى.
2/ الكود :

الرقم 14400 في الكود معناه 14400 تانية أي 4 ساعات.
3/ الكود وملفات الميكروسي برو + المحاكاة على بروتوس 7.10 هنا :
http://up.top4top.net/downloadf-168cflp1-rar.html
4/ نفس الملفات لكن لزمننين قصيرين 7 تواني + 3 تواني فقط كتجربة للتمكن من رؤية عمل الدائرة :
http://up.top4top.net/downloadf-168v1042-rar.html

4/ الكود في الأصل للمهندس حيدر علاج حسن ، أخذته من هنا:
http://www.qariya.info/vb/showthread...=186166&page=2

اعلانات

ahmed idris
:: مهندس متميز ::
تاريخ التسجيل: Jul 2015
المشاركات: 450
نشاط [ ahmed idris ]
قوة السمعة:
قديم 18-06-2016, 12:18 AM المشاركة 10   
افتراضي


نعم أخي هذا ما توقعته وفقك الله وأعانك على تحقيق هدفك على أكمل وجه.
1/ بالنسبة لدائرة التحكم في الريليه فلا فرق بين الدائرتين
ربما الفرق في قيمة مقاومة قاعدة الترانزيستور .
جهد نبضة التحكم القادمة من البيك لا يتعدى 5 فولت لذلك وضعت 1 كيلو لمقاومة قاعدة الترانزيستور ضمانا لحصوله على تيار كافي.
أي ترانزيستور مكافئ يمكن استخدامه لتشغيل الريلي.
لكن إذا عملت دائرتك ب10 كيلو ممكن تحتفض بها .
أيضا بالنيسبة للمقاومة مع الليد ، ضروري 1 كيلو بما أن الجهد 12 فولت حتى لا يتعدى التيار المار عبر الليد 20 ميللي أمبير كحد أقصى.
2/ الكود :

الرقم 14400 في الكود معناه 14400 تانية أي 4 ساعات.
3/ الكود وملفات الميكروسي برو + المحاكاة على بروتوس 7.10 هنا :
http://up.top4top.net/downloadf-168cflp1-rar.html
4/ نفس الملفات لكن لزمننين قصيرين 7 تواني + 3 تواني فقط كتجربة للتمكن من رؤية عمل الدائرة :
http://up.top4top.net/downloadf-168v1042-rar.html

4/ الكود في الأصل للمهندس حيدر علاج حسن ، أخذته من هنا:
http://www.qariya.info/vb/showthread...=186166&page=2
نفس الكود محول إلى الأردوينو :

محاكاة زمنين قصيرين 10s+5s على بروتوس + ملف txt لنسخ الكود في برنامج أردوينو:
http://up.top4top.net/downloadf-168trl11-rar.html

اعلانات اضافية ( قم بتسجيل الدخول لاخفائها )

NoureddineDz
:: مهندس متواجد ::
تاريخ التسجيل: Feb 2012
المشاركات: 148
نشاط [ NoureddineDz ]
قوة السمعة:
قديم 19-06-2016, 03:23 PM المشاركة 11   
افتراضي


السلام عليكم...
استاذي صدقني الكلمات تعجز عن شكرك....
بارك الله فيك......
هل من الممكن الاستخدام في نفس الكود الحساس DHT11 كترموستات لتشغيل لمبات عند 37 واقفالها عند 38؟


NoureddineDz
:: مهندس متواجد ::
تاريخ التسجيل: Feb 2012
المشاركات: 148
نشاط [ NoureddineDz ]
قوة السمعة:
قديم 21-06-2016, 05:36 PM المشاركة 12   
افتراضي


السلام عليكم...
رجاءا كيفية ربط الاردوينو بباور الكومبيوتر مع اخذ بالاحتيطات لسلامة القطعة......



ahmed idris
:: مهندس متميز ::
تاريخ التسجيل: Jul 2015
المشاركات: 450
نشاط [ ahmed idris ]
قوة السمعة:
قديم 21-06-2016, 06:40 PM المشاركة 13   
افتراضي


السلام عليكم
أخي انتهيت الآن من دمج كود بالحساس LM35 وجدته على النت بكود المؤقت السابق .
رغم بساطته فقد أخذ مني هذا بعض الوقت لأن خبرتي في البرمجة بلغة الاردوينو من خلال برنامج الاردوينو لازالت في بداياتها .
في العادة أكتب أكواد الاردوينو بطريقة أخرى مختلفة تستخدم برنامج فلوكود /أردوينو.
هذه هي الدائرة:

إذا رغبت في تجريب الكود ممكن أرفعه لك لو حبيت ..


NoureddineDz
:: مهندس متواجد ::
تاريخ التسجيل: Feb 2012
المشاركات: 148
نشاط [ NoureddineDz ]
قوة السمعة:
قديم 21-06-2016, 07:10 PM المشاركة 14   
افتراضي


وعليكم السلام ورحمة الله وبركاته....
انار الله دربك وسهل مسعاك......
ارفعه اخي ساحاول تجريبه ان شاء الله ويستفيد منه الاعضاء.....
عملت ترموستات بالاردوينو وحساس ntc 10k ويعمل بشكل جيد والحمد لله....
بقي كيفية ربط الاردوينو بمصدر خارجي ليعمل 24/24 لمدة اكثر من 21 يوم اذا ممكن تساعدني.....
واقد اضفت اليه مؤقت التقليب فهل تكرمت وراجعته.....

// Pin that the thermistor is connected to
#define PINOTERMISTOR A0
// Nominal temperature value for the thermistor
#define TERMISTORNOMINAL 10000
// Nominl temperature depicted on the datasheet
#define TEMPERATURENOMINAL 25
// Number of samples
#define NUMAMOSTRAS 5
// Beta value for our thermistor
#define BCOEFFICIENT 3550
// Value of the series resistor
#define SERIESRESISTOR 10000

int amostra[NUMAMOSTRAS];
int i;
int A=3;
int counter=0;
void setup(void) {

Serial.begin(9600);
analogReference(EXTERNAL);
pinMode(12, OUTPUT);
pinMode(13, OUTPUT);
}

void loop(void){
float media;

for (i=0; i< NUMAMOSTRAS; i++) {
amostra[i] = analogRead(PINOTERMISTOR);
delay(10);
}

media = 0;
for (i=0; i< NUMAMOSTRAS; i++) {
media += amostra[i];
}
media /= NUMAMOSTRAS;
// Convert the thermal stress value to resistance
media = 1023 / media - 1;
media = SERIESRESISTOR / media;

//Calculate temperature using the Beta Factor equation
float temperatura;
temperatura = media / TERMISTORNOMINAL; // (R/Ro)
temperatura = log(temperatura); // ln(R/Ro)
temperatura /= BCOEFFICIENT; // 1/B * ln(R/Ro)
temperatura += 1.0 / (TEMPERATURENOMINAL + 273.15); // + (1/To)
temperatura = 1.0 / temperatura; // Invert the value
temperatura -= 273.15; // Convert it to Celsius

Serial.print("The sensor temperature is: ");
Serial.print(temperatura);
Serial.println(" *C");

delay(500);

//inside void loop()
if(temperatura>=38) {
digitalWrite(A, LOW);
}
if(temperatura<=37.5) {
digitalWrite(A, HIGH);
}
{
digitalWrite(12, HIGH);
delay(250);
digitalWrite(12, LOW);
delay(250);
counter++;
if(counter >= 10){counter=0;digitalWrite(13, HIGH);}
if(counter >= 5)digitalWrite(13, LOW);
}



}


ahmed idris
:: مهندس متميز ::
تاريخ التسجيل: Jul 2015
المشاركات: 450
نشاط [ ahmed idris ]
قوة السمعة:
قديم 21-06-2016, 08:11 PM المشاركة 15   
افتراضي


وعليكم السلام ورحمة الله وبركاته....
انار الله دربك وسهل مسعاك......
ارفعه اخي ساحاول تجريبه ان شاء الله ويستفيد منه الاعضاء.....
عملت ترموستات بالاردوينو وحساس ntc 10k ويعمل بشكل جيد والحمد لله....
بقي كيفية ربط الاردوينو بمصدر خارجي ليعمل 24/24 لمدة اكثر من 21 يوم اذا ممكن تساعدني.....
واقد اضفت اليه مؤقت التقليب فهل تكرمت وراجعته.....
شكرا أخي على الدعاء بارك الله فيك
1/ الكود بالحساس LM35 الذي ذكرت لك :
كود:
int counter=0; const int LEDseconde = 8; // On nomme la broche 11 connectée à la LED rouge const int Moteur = 9; // On nomme la broche 12 connectée à la LED verte const int inputSensor = A0; // On nomme la broche A0 connectée au capteur const int LEDrouge = 11; // On nomme la broche 11 connectée à la LED rouge const int LEDverte = 12; // On nomme la broche 12 connectée à la LED verte const int LEDbleue = 13; // On nomme la broche 13 connectée à la LED bleue // ======================================= void setup() { pinMode(LEDseconde, OUTPUT); pinMode(Moteur, OUTPUT); pinMode(inputSensor, INPUT); // Déclaration du capteur en entrée pinMode(LEDrouge, OUTPUT); // Déclaration de la LED rouge en entrée pinMode(LEDbleue, OUTPUT); // Déclaration de la LED bleue en entrée pinMode(LEDverte, OUTPUT); // Déclaration de la LED verte en entrée } // ====================================== // Boucle principale void loop() { //TEMPORISATEUR : digitalWrite(LEDseconde, HIGH); delay(500); digitalWrite(LEDseconde, LOW); delay(500); counter++; if(counter >= 30){counter=0;digitalWrite(Moteur, HIGH);} if(counter >= 5)digitalWrite(Moteur, LOW); // THERMOSTAT: int degres = analogRead(inputSensor); //degres récupère la valeur analogique du capteur float floatDegres = degres*0.48; // la valeur est ici convertie en degrés if(floatDegres>37){ // Si la température dépasse 37°C digitalWrite(LEDrouge, HIGH); // LED rouge allumée digitalWrite(LEDverte, LOW); // LED verte éteinte digitalWrite(LEDbleue, LOW); // LED bleue éteinte } else if(floatDegres<36){ // Si la température est <36°C digitalWrite(LEDbleue, HIGH); // LED bleue allumée digitalWrite(LEDverte, LOW); // LED verte éteinte digitalWrite(LEDrouge, LOW); // LED rouge éteinte } else { digitalWrite(LEDverte, HIGH); // LED verte allumée temperature"normale". digitalWrite(LEDrouge, LOW); // LED rouge éteinte digitalWrite(LEDbleue, LOW); // LED bleue éteinte } }
الكود داخل ملف نصي:
http://up.top4top.net/downloadf-172w0ww1-rar.html
ولا تنسى أخي أن العددين بالاحمر في الكود هما لزمنين قصيرين فقط للتجربة
الرقمين الصحيحين للمشروع النهائي هما طبعا
14400 و 15
2/ بالنسبة لتغذية الاردوينو ممكن تستخدم دائرة تغذية عادية فهي تعمل بكفاءة وهي عبارة عن محول + ديودات توحيد + مكثفات تنعيم + مكثف 100 نانو + منظم LM7809 أو حتى LM7812


التعديل الأخير تم بواسطة : ahmed idris بتاريخ 21-06-2016 الساعة 09:54 PM

الصورة الرمزية Sallam
Sallam
:: مهندس متميز ::
تاريخ التسجيل: Mar 2006
الدولة: Syria
المشاركات: 515
نشاط [ Sallam ]
قوة السمعة:
قديم 22-06-2016, 03:21 PM المشاركة 16   
افتراضي


أشكرك أخ ahmed idris على تعبك

قمت باستعمال LM35 مع الاردوينو وقراءة النتائج باستعمال الشاشة Serial Monitor فكانت النتائج غير مستقرة اي تتغير ضمن قيم كبيرة وصغيرة



وهذا هو الكود:

float temp;
int tempPin = 0;

void setup()
{
Serial.begin(9600);

}

void loop()
{
temp = analogRead(tempPin);
temp = temp * 0.48828125;
temp = temp / 10 ;
Serial.print("Temperature = ");
Serial.print(temp);
Serial.print("*C");
Serial.println();
delay(1000);

}



الساعة معتمدة بتوقيت جرينتش +3 الساعة الآن: 05:48 PM
موقع القرية الالكترونية غير مسؤول عن أي اتفاق تجاري أو تعاوني بين الأعضاء
فعلى كل شخص تحمل مسئولية نفسه إتجاه مايقوم به من بيع وشراء وإتفاق وأعطاء معلومات موقعه
التعليقات المنشورة لا تعبر عن رأي موقع القرية الالكترونية ولايتحمل الموقع أي مسؤولية قانونية حيال ذلك (ويتحمل كاتبها مسؤولية النشر)