Code arduino bị sai

Em đang muốn trời mưa thì đóng lại, trời tạnh thì mở ra nhưng khi em thử thì nó thành mưa motor quay liên tục, đến khi không mưa thì không quay . Anh,chị nào biết thì giúp em với em bất lực rồi, chỉ có thể mong chờ mọi người thôi. Em thật sự cảm ơn mọi người.

Đây là code của em mong mọi dành chút thời gian xem qua.

int a = 0;
void setup() {
  pinMode(3, INPUT);
  pinMode(4, OUTPUT);
  pinMode(5, OUTPUT);
  digitalWrite(4, LOW);
  digitalWrite(5, LOW);
}

void loop() {
  int value = digitalRead(3);
  if ((value == LOW) && (a == 0)) {
    int a = 1;
    digitalWrite(4, HIGH);
    digitalWrite(5, LOW);
    delay(3000);
  }
  else
  { digitalWrite(4, LOW);
    digitalWrite(5, LOW);
  }
  if ((value == HIGH) && (a == 1))
  {
    int a = 0;
    digitalWrite(4, LOW);
    digitalWrite(5, HIGH);
    delay(3000);
  } else {
    digitalWrite(4, LOW);
    digitalWrite(5, LOW);
  }

}

Cho công tắc hành trình ở 2 đầu. Khi gặp công tắc hành trình thì ngừng quay :kissing:

5 Likes

Có cách nào khác không anh/chị, em lỡ mua đồ lỗi, không có cái anh bảo,

Bạn chỉ thiếu 2 cái switch để dừng motor thôi
Để biết dừng quay bạn gắn 2 cái ở 2 đầu câu sào. Khi 1 trong 2 switch đc bật thì ngừng

6 Likes

Nhưng mà em có tạo một cái biến ‘a’ ở đầu rồi mà anh, em thật sự không hiểu tại sao nó lại không dừng lại, mong anh chỉ giáo cho.

Bạn đang sử dụng sai biến a kìa .
Trong if bạn lại khai báo 1 biến int a Khác =)) Thế sao nó dừng đc??? Bỏ int trong vòng lặp loop đi nhé. ==> a = 1 hoặc a=0 thôi.
Xem lại các loại biến nhé

5 Likes

Vâng em cảm ơn, em cũng mới bắt đầu nên non trẻ vô cùng cảm ơn góp ý của ạnh, chị. Vậy là chỉ cần bỏ int trong if là ok ạ. Để em thử xem sao.

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?