Tự học Arduino cơ bản | Bài 2 Dùng một nút nhấn hoán đổi trạng thái LED

Поділитися
Вставка
  • Опубліковано 9 лис 2024

КОМЕНТАРІ • 27

  • @anhphamquynh2398
    @anhphamquynh2398 5 місяців тому

    dựa vô bài này e hiểu đc nguyên lý 2 công tắc 1 bóng thường đc mắc ở cầu thang :))), cảm ơn thầy nhiều

  • @VanMuiNguyen-vj5it
    @VanMuiNguyen-vj5it Рік тому +1

    đây là bài tớ làm lại cho các bạn tham khảo, mình dùng INPUT_PULLUP nhé
    int ct=2;
    int led=4;
    void setup() {
    pinMode(ct,INPUT_PULLUP);
    pinMode(led,OUTPUT);
    digitalWrite(led,LOW);
    Serial.begin(9600);
    }
    void loop() {
    int trangthai=digitalRead(ct);
    int ttled=digitalRead(led);
    Serial.println(trangthai);
    if(trangthai==0){
    digitalWrite(led,!ttled);
    }
    delay(200);
    }

  • @thanhtuantran7926
    @thanhtuantran7926 Рік тому +2

    int button = 2;
    int led = 3;
    int Led_status = 0;
    void setup()
    {
    pinMode(button, INPUT);
    pinMode(3,OUTPUT);
    digitalWrite(3,LOW);
    Serial.begin(9600);
    }
    void loop()
    {
    int Status = digitalRead(button);
    Serial.println(Status);
    if(Status == 1){
    digitalWrite(led, !Led_status);
    Led_status = !Led_status;
    }

    }

  • @Zatarentino
    @Zatarentino 4 місяці тому

    em làm giống thầy mà bật lên ko tắt được nên em sửa đoạn if bỏ trạng thái đèn đi chỉ xét trạng thái nút thôi thì lại được 😂😂

  • @hungvu2375
    @hungvu2375 3 роки тому +6

    Dùng cách giải này bị sai bạn ạ. Vì nếu trường hợp nút nhấn vẫn đang giữ chưa kịp nhả ra, thì đèn lại nhấp nháy. Nên giải bài toán nút nhấn hoán đổi trạng thái này theo hàm if-else. Nhưng sẽ đếm tổng số lần nhấn nút, nếu tổng số lần chia cho 2 dư (số lẻ) --> thì đèn sáng, và ngược lại số chẵn thì đèn tắt.

    • @BAONGUYEN-wr8ff
      @BAONGUYEN-wr8ff 2 роки тому

      a nói rõ được hong ạ

    • @puongnguyen4073
      @puongnguyen4073 Рік тому

      cái lệnh là if trangthai=1 kìa. Giả sử đèn đang tắt thì mình nhấn nút cái cho nó sáng lên rồi buông nút ra khi đó thì trạng thái lại về 0 ko cần biết điều kiện sau đúng hay ko nhưng trạng thái về 0(buông công tắc nên về 0) tức là ko đâp ứng cái lenh if nên nó lại ko cấp điện. Nghĩa là mỗi lần nhấn nút cái đèn led chỉ nháy sáng lên rồi tắt vì sáng lên thì điều kiện if ko còn đáp ứng nên nó lại ngắt điện. Nên chỉ nháy sáng rồi tắt mỗi khi nhấn

  • @athoang4436
    @athoang4436 3 роки тому +1

    int congtac=3;
    int led=2;
    int ledsang=0;
    void setup()
    {
    pinMode(congtac, INPUT_PULLUP);
    pinMode(led, OUTPUT);
    Serial.begin(9600);
    digitalWrite(led, LOW);
    }
    void loop()
    {
    int trangthai=digitalRead(congtac);
    if(trangthai==0)
    {
    digitalWrite(led, !ledsang);
    delay(500);
    ledsang=!ledsang;
    }
    }
    em viết gọn vào ntn có bị thay đổi gì so với cấu trúc của a không ạ

    • @lyquocthien1
      @lyquocthien1 2 роки тому

      Đủ mới đc. Còn gọn thì k

  • @puongnguyen4073
    @puongnguyen4073 Рік тому

    cái lệnh là if trangthai=1 kìa. Giả sử đèn đang tắt thì mình nhấn nút cái cho nó sáng lên rồi buông nút ra khi đó thì trạng thái lại về 0 ko cần biết điều kiện sau đúng hay ko nhưng trạng thái về 0(buông công tắc nên về 0) tức là ko đâp ứng cái lenh if nên nó lại ko cấp điện. Nghĩa là mỗi lần nhấn nút cái đèn led chỉ nháy sáng lên rồi tắt vì sáng lên thì điều kiện if ko còn đáp ứng nên nó lại ngắt điện. Nên chỉ nháy sáng rồi tắt mỗi khi nhấn. Giải đáp giúp em vs ạ

  • @blue-sky242
    @blue-sky242 3 роки тому

    làm điều khiển đọc thẻ từ khi quet thẻ rồi dọc ten nhân viên hay làm cho con nít tập học nói di anh
    e cảm ơn , chúc kenh a phat triển, kênh rất hay lượng view it nhung có giá trị cao cố lên anh

  • @devindoinmonkmode
    @devindoinmonkmode Рік тому

    Thầy cho em hỏi tại sao giữa 2 chương trình 1 lúc nút nhấn ==1 và 1 lúc nút nhấn ==0

  • @trantantai3590
    @trantantai3590 3 роки тому

    anh ơi, thay vì chống dội phím bằng Delay như anh thì em muốn bấm nút xong nhả ra nó mới bắt đầu lặp lại để xét trạng thái thì làm thế nào à
    em đã thử sử dụng while(trangthai==1){}; nhưng ko được ạ
    mong anh giúp em, em cảm ơn

  • @HoangHung-hg8rs
    @HoangHung-hg8rs Рік тому +1

    code như nào để dù nhả nút bấm ra mà led vẫn sấng vậy ạ

  • @QuyetHoang-zt5lo
    @QuyetHoang-zt5lo 3 роки тому +1

    chào bạn, mình có làm khoảng 8 hiệu ứng 5 led bằng 8 chương trình con. Lấy nút nhấn để chuyển đổi hiệu ứng. Nhấn lần đầu tiên thì nút nhấn thay đổi 0-1 rất nhanh, nhưng nhấn lần 2 để chuyển hiệu ứng thì lúc được lúc không (hoặc nhấn giữ khá lâu , vài giây gì đó, mặc dù mình cho delay nhấn 200ms). Không biết nguyên nhân ở đâu, mong bạn phản hồi

    • @anLinh-zs2lr
      @anLinh-zs2lr 5 місяців тому

      2 năm rồi vẫn ch ai phản hồi cho b:))

    • @QuyetHoang-zt5lo
      @QuyetHoang-zt5lo 5 місяців тому

      @@anLinh-zs2lr thế là bỏ luôn, ko có nhúng nhiếc gì nữa😅

  • @Jadenyuki676
    @Jadenyuki676 7 місяців тому

    sao anh dùng 2 biến trạng thái cho led vậy ? EM dùng 1 biến cũng đc mà a
    int but = 5;
    int led = 4;
    void setup()
    {
    pinMode(led, OUTPUT);
    pinMode(but, INPUT);
    digitalWrite(led, LOW);
    Serial.begin(9600);
    }
    void loop()
    {
    int ttbut = digitalRead(but);
    int ttled = digitalRead(led);
    if(ttbut == 1){
    digitalWrite(led, !ttled);
    delay(500);
    }
    }

    •  7 місяців тому

      Người mới kho hiểu e.

  • @inhnhanvo5674
    @inhnhanvo5674 3 роки тому

    Cho em hỏi , tại sao cái lỗi xuất hiện ở dòng đỏ mà sao anh lại phát hiện lỗi ở " ledssang" hay vậy

    •  3 роки тому

      Do khai báo biến thôi bạn. ledsang và ledssang dư chữ s

  • @inhnhanvo5674
    @inhnhanvo5674 3 роки тому

    Không ghi serial.begin dc k anh

    •  3 роки тому +1

      Dc bạn. Nhưng không in thông tỉna serial để xem đc.

  • @LucianNguyen-d9m
    @LucianNguyen-d9m 3 роки тому

    Thay vì nhấn nút để thay đổi trạng thái. Muốn giữ nút nhấn trong 5s 10s 15s để thay đổi trạng thái của led thì làm như nào ạ

    •  3 роки тому +1

      Khi bắt đầu nhấn bạn gán biến thoigain=millis();
      Nếu millis()-thoigian là bội của 5000 hoặc 10000 hoặc 15000 thì tiến hành đổi trạng thái.