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

แชร์
ฝัง
  • เผยแพร่เมื่อ 18 ธ.ค. 2024

ความคิดเห็น • 27

  • @anhphamquynh2398
    @anhphamquynh2398 6 หลายเดือนก่อน

    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);
    }

  • @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

  • @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;
    }

    }

  • @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 ạ

  • @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

  • @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

  • @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

  • @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

  • @Zatarentino
    @Zatarentino 5 หลายเดือนก่อน

    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 😂😂

  • @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 6 หลายเดือนก่อน

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

    • @QuyetHoang-zt5lo
      @QuyetHoang-zt5lo 6 หลายเดือนก่อน

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

  • @HoangHung-hg8rs
    @HoangHung-hg8rs ปีที่แล้ว +1

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

    • @technologicalprocess-1251
      @technologicalprocess-1251 ปีที่แล้ว

      b làm ra chưa ạ? nếu ra rồi chỉ mình nữa.

    • @HoangHung-hg8rs
      @HoangHung-hg8rs ปีที่แล้ว +1

      @@technologicalprocess-1251 mình dùng 2 đèn bạn ạ 😅

  • @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

  • @Jadenyuki676
    @Jadenyuki676 8 หลายเดือนก่อน

    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);
    }
    }

    •  8 หลายเดือนก่อน

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

  • @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 4 ปีที่แล้ว

    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 ạ

    •  4 ปีที่แล้ว +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.