تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
[سؤال] مساعده في كود الاردوينو
#1
السلام عليكم ورحمة الله

انا جديد في عالم الاردوينو
عندي مشروع محتاج مساعده في

وهو عباره عن عدد 2 button  وعدد 2 relay

محتاج اذا ضغطت على الزر الاول يشغل ال relay الاول
وعند الضغط على الزر الثاني يعمل ال relay الثاني ويغلق ال relay الاول والعطس صحيح

حاول بس ما ضبط  معاي

كود :
//Push Button Relay Control
int pbuttonPin = 8;
int relayPin = A0;
int pbuttonPin2 = 9;
int relayPin2 = A1;



int val = 0; 
int lightON = 0;
int pushed = 0;

int val2 = 0; 
int lightON2 = 0;
int pushed2 = 0;

void setup() {
  Serial.begin(9600);
  pinMode(pbuttonPin, INPUT_PULLUP); 
  pinMode(relayPin, OUTPUT);
   pinMode(pbuttonPin2, INPUT_PULLUP); 
  pinMode(relayPin2, OUTPUT);

}

void loop() {
  val = digitalRead(pbuttonPin);
  val2 = digitalRead(pbuttonPin2);


//Relay 1
  if(val == HIGH && lightON == LOW ){

    pushed = 1-pushed;
       
    delay(100);
  }    
  lightON = val;

      if(pushed == HIGH){
        Serial.println("Light ON");
        digitalWrite(relayPin, LOW); 
       
      }else{
        Serial.println("Light OFF");
        digitalWrite(relayPin, HIGH);
   
      }   
  


//Relay 2

 
  if(val2 == HIGH && lightON2 == LOW){
 
    pushed2 = 1-pushed2;
    delay(100);
  }    

  lightON2 = val2;

      if(pushed2 == HIGH){
        Serial.println("Light ON");
        digitalWrite(relayPin2, LOW); 
      
      }else{
        Serial.println("Light OFF");
        digitalWrite(relayPin2, HIGH);
   
      }       


  delay(100);
}


افيدوني بارك الله فيكم

وشكرا
الرد
تم الشكر بواسطة:
#2
لم يسبق لي التعامل مع دائرة اردوينو

أمامك أربع حالات:
عدم ضغط أي Button
ضغط Button1 فقط
ضغط Button2 فقط
ضغط Button1 و Button2 معا


بالاطلاع على الكود حاولت أعيد تسمية المتغيرات لتصبح أوضح وأبسط
PHP كود :
//Push Button Relay Control
int button1 8relay1 A0;
int button2 9relay2 A1;

// Variables
int valButton1 0;
int valButton2 0;


// Setup
void setup() {
 
   Serial.begin(9600);
 
   pinMode(button1INPUT_PULLUP);
 
   pinMode(relay1OUTPUT);
 
   pinMode(button2INPUT_PULLUP);
 
   pinMode(relay2OUTPUT);
}


// Loop
void loop() {
 
   
    
// Read buttons
 
   valButton1 digitalRead(button1);
 
   valButton2 digitalRead(button2);

 
   if (valButton1 == LOW && valButton2 == LOW) {
 
       Serial.println("Light OFF");
 
       digitalWrite(relay1LOW);  //Relay 1 OFF
 
       digitalWrite(relay2LOW);  //Relay 2 OFF
 
   }

 
   if (valButton1 == HIGH && valButton2 == LOW) {
 
       Serial.println("Light 1 ON");
 
       digitalWrite(relay1HIGH); //Relay 1 ON
 
       digitalWrite(relay2LOW);  //Relay 2 OFF
 
   }
 
   
    if 
(valButton1 == LOW && valButton2 == HIGH) {
 
       Serial.println("Light 2 ON");
 
       digitalWrite(relay1LOW);  //Relay 1 OFF
 
       digitalWrite(relay2HIGH); //Relay 2 ON        
 
   }
 
 
    if 
(valButton1 == HIGH && valButton2 == HIGH) {
 
       Serial.println("Light 1&2 ON");
 
       digitalWrite(relay1HIGH); //Relay 1 ON
 
       digitalWrite(relay2HIGH); //Relay 2 ON        
 
   }
 
       
    delay
(100);


الحالة الأخيرة قد تحتاج تعديل حسب رغبتك.
الرد
تم الشكر بواسطة: SnTnt , SnTnt , dubai.eig , محمد كريّم
#3
(24-01-20, 07:51 PM)جميل5 كتب : لم يسبق لي التعامل مع دائرة اردوينو

أمامك أربع حالات:
عدم ضغط أي Button
ضغط Button1 فقط
ضغط Button2 فقط
ضغط Button1 و Button2 معا


بالاطلاع على الكود حاولت أعيد تسمية المتغيرات لتصبح أوضح وأبسط
PHP كود :
//Push Button Relay Control
int button1 8relay1 A0;
int button2 9relay2 A1;

// Variables
int valButton1 0;
int valButton2 0;


// Setup
void setup() {
 
   Serial.begin(9600);
 
   pinMode(button1INPUT_PULLUP);
 
   pinMode(relay1OUTPUT);
 
   pinMode(button2INPUT_PULLUP);
 
   pinMode(relay2OUTPUT);
}


// Loop
void loop() {
 
   
    
// Read buttons
 
   valButton1 digitalRead(button1);
 
   valButton2 digitalRead(button2);

 
   if (valButton1 == LOW && valButton2 == LOW) {
 
       Serial.println("Light OFF");
 
       digitalWrite(relay1LOW);  //Relay 1 OFF
 
       digitalWrite(relay2LOW);  //Relay 2 OFF
 
   }

 
   if (valButton1 == HIGH && valButton2 == LOW) {
 
       Serial.println("Light 1 ON");
 
       digitalWrite(relay1HIGH); //Relay 1 ON
 
       digitalWrite(relay2LOW);  //Relay 2 OFF
 
   }
 
   
    if 
(valButton1 == LOW && valButton2 == HIGH) {
 
       Serial.println("Light 2 ON");
 
       digitalWrite(relay1LOW);  //Relay 1 OFF
 
       digitalWrite(relay2HIGH); //Relay 2 ON        
 
   }
 
 
    if 
(valButton1 == HIGH && valButton2 == HIGH) {
 
       Serial.println("Light 1&2 ON");
 
       digitalWrite(relay1HIGH); //Relay 1 ON
 
       digitalWrite(relay2HIGH); //Relay 2 ON        
 
   }
 
       
    delay
(100);


الحالة الأخيرة قد تحتاج تعديل حسب رغبتك.

احسنت ضبط معاي 


شكرا لك
الرد
تم الشكر بواسطة: جميل5


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  [سؤال] استفسار بخصوص الاردوينو dubai.eig 1 1,292 26-02-20, 01:41 AM
آخر رد: adelh
  [سلسلة تعليمية] المتحكمات الدقيقة الاردوينو wolfwiss 0 1,294 19-08-18, 12:36 AM
آخر رد: wolfwiss
  المساعدة في الاردوينو VB.NET 2 1,075 12-08-18, 09:46 PM
آخر رد: Null

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم