Nút nhấn: cách sử dụng phần tử đơn giản này với Arduino

cái nút

Un nút nhấn là nút cho phép bạn ngắt hoặc gửi tín hiệu điện tử. Với yếu tố đơn giản này kết hợp với các yếu tố khác, bạn có thể tạo các dự án cho vô số ứng dụng. Việc sử dụng loại nút bấm này rất phổ biến khi nói đến các dự án với Arduino. Và bằng cách kết hợp một số nút này, bạn có thể tạo ra một bàn phím phức tạp hơn một chút, mặc dù đã có những bàn phím có thể lập trình cho những mục đích sử dụng này ...

Nhân tiện, bạn không nên nhầm lẫn nút bấm với một công tắc. Chúng là những thứ hoàn toàn khác nhau. Sự khác biệt là công tắc hoặc công tắc được kích hoạt hoặc tắt với mỗi lần nhấn được thực hiện trên nó. Trong khi đó, nút ấn sẽ chỉ ở một trạng thái trong khi áp lực được tác động lên nó. Tôi đã nhận xét rằng nó có thể gửi hoặc ngắt, đó là bởi vì có hai loại nút cơ bản.

biểu tượng nút nhấn

Nút nhấn KHÔNG hoặc thường mở và nút nhấn NC hoặc thường đóng. Điều này cũng sẽ phát ra âm thanh cho bạn từ các rơ le. Và vâng, nó chính xác là hoạt động tương tự. Khi bạn có NC, nó sẽ cho dòng điện đi qua các đầu cuối của nó và nó chỉ ngắt khi bạn đang nhấn nó. Mặt khác, NA không cho dòng điện chạy qua khi không có áp lực tác động lên nó và sẽ chỉ cho dòng điện chạy qua khi bạn nhấn vào nó.

Biết rằng, là hầu hết mọi thứ bạn cần biết về nút nhấn để bắt đầu kết nối và lập trình của bạn bằng Arduino. Sự thật là nó là một yếu tố đơn giản đến mức không có nhiều điều để nói về loại nút bấm này.

Tích hợp nút nhấn với Arduino

mạch với Arduino

La kết nối một nút bấm để làm cho nó tương tác với Arduino không thể đơn giản hơn. Một ví dụ là sơ đồ mà bạn có thể thấy trên những dòng này. Đó sẽ là tất cả những gì cần thiết để bắt đầu thử nghiệm. Nhưng tất nhiên, với kế hoạch đó, bạn có thể làm được rất ít. Bạn sẽ cần phải có một chút trí tưởng tượng để quyết định xem nút đó sẽ điều khiển những gì. Trên thực tế, nếu bạn đọc hwlibre.es thường xuyên, bạn sẽ thấy một số bài báo trong đó chúng tôi đã sử dụng các nút nhấn ...

Các cách kết nối nó

kéo lên và kéo xuống

Một điều mà bạn nên biết là vấn đề chống trả lại và cách kết nối các nút bấm này. Đầu tiên chúng ta đi đến cách kết nối chúng mà bạn đã biết có thể là với điện trở kéo lên và kéo xuống:

  • Kéo lên- Với cài đặt điện trở này, khi nhấn nút này, vi điều khiển hoặc Arduino có thể nhìn thấy hoặc đọc số XNUMX trên chân đó. Đó là, nó diễn giải nó như một tín hiệu THẤP.
  • Dỡ xuống: Trong trường hợp này thì ngược lại, bạn có thể đọc hoặc nhận tín hiệu 1 hoặc HIGH thông qua chân kết nối.

Đừng nhầm nó với NC hoặc NA, đó là một cái gì đó khác như chúng ta đã thấy trước đây. Cái này độc lập với cái kia ...

Chống trả lại

Các nút bấm có một phục hồi hiệu lực khi được nhấn. Có nghĩa là, khi nó được nhấn hoặc thả ra, sẽ có sự dao động trong tín hiệu đi qua các điểm tiếp xúc của nó và có thể khiến nó chuyển từ trạng thái HIGT sang THẤP hoặc ngược lại mà không thực sự muốn điều đó xảy ra. Điều đó có thể tạo ra hiệu ứng không mong muốn trên Arduino và khiến nó làm những điều kỳ lạ, chẳng hạn như kích hoạt một phần tử khi chúng ta thực sự muốn tắt nó bằng nút nhấn, v.v. Đó là bởi vì Arduino diễn giải các lần trả lại như thể nó đã được nhấn nhiều lần ...

Ảnh hưởng tiêu cực đó nó có một giải pháp. Đối với điều này, một tụ điện nhỏ phải được thực hiện trong mạch chống dội (phương pháp phần cứng) hoặc phần mềm (sửa đổi mã nguồn), cho dù cấu hình kéo lên hoặc kéo xuống đã được sử dụng chưa hoặc là NC hay NO. Trong tất cả những trường hợp này, giải pháp phải được thực hiện để tránh những đợt bật lại này.

Ví dụ, các mạch kéo lên và kéo xuống với tụ điện chống dội họ sẽ trông giống như thế này:

người phục hồi

Trong khi phương pháp phần mềm Nó có thể được nhìn thấy trong đoạn mã này:

if (digitalRead (button) == LOW) // Kiểm tra xem nút có được nhấn không
{
ấn = 1; // Biến thay đổi giá trị
}
if (digitalRead (button) == HIGH && được nhấn == 1)
{
// Thực hiện hành động mong muốn
ấn = 0; // Biến trở về giá trị ban đầu
}

Ví dụ dự án đơn giản

chống trả lại bằng nút nhấn và Arduino

Khi chúng ta đã học chủ đề về các cách kết nối nút bấm và mạch chống dội ngược, chúng ta sẽ xem một ví dụ thực tế để điều khiển đèn LED bằng nút ấn. Đề án cũng đơn giản như bạn có thể thấy.

Sau khi kết nối chính xác, việc tiếp theo là viết mã trong Arduino IDE để lập trình bảng điều khiển của bạn và bắt đầu thử nghiệm với các nút. Một ví dụ mã đơn giản để điều khiển mạch của chúng tôi sẽ như sau:

// Ví dụ về sketch để điều khiển nút
ghim int = 2;
trạng thái int;
xung int = 0;
void setup ()

{
pinMode (2, INPUT); // Để đọc xung bằng cách thực hiện đầu vào chân đó

pinMode (13, OUTPUT); // Đối với đèn LED

Serial.begin (9600);
}
void loop ()

{
if (digitalRead (2) == HIGH)

{

chốt = 2;

antiBounce (); // Gọi đến hàm chống thoát

}
}
// Chức năng chống trả lại phần mềm
void anti-bounce ()

{
while (digitalRead (pin) == LOW);
trạng thái = digitalRead (13);
digitalWrite (13,! trạng thái);
while (digitalRead (pin) == CAO);

}


5 bình luận, để lại của bạn

Để lại bình luận của bạn

địa chỉ email của bạn sẽ không được công bố. Các trường bắt buộc được đánh dấu bằng *

*

*

  1. Chịu trách nhiệm về dữ liệu: Miguel Ángel Gatón
  2. Mục đích của dữ liệu: Kiểm soát SPAM, quản lý bình luận.
  3. Hợp pháp: Sự đồng ý của bạn
  4. Truyền thông dữ liệu: Dữ liệu sẽ không được thông báo cho các bên thứ ba trừ khi có nghĩa vụ pháp lý.
  5. Lưu trữ dữ liệu: Cơ sở dữ liệu do Occentus Networks (EU) lưu trữ
  6. Quyền: Bất cứ lúc nào bạn có thể giới hạn, khôi phục và xóa thông tin của mình.

  1.   Hình ảnh trình giữ chỗ Marcelo Castillo dijo

    Mát mẻ!!! Cảm ơn bạn rất nhiều, tôi đã chế tạo một máy CNC và nghịch lý là các nút lại là thứ khó điều chỉnh nhất đối với tôi.

  2.   Liliana dijo

    Chào! Tôi tham khảo ý kiến ​​là một người mới, trong kết nối với GND… .. dây màu đen không nên đi ra khỏi đường âm, nằm ở phía trên đường dây được hiển thị trong sơ đồ 2?

  3.   John dijo

    Lời giải thích tuyệt vời .. cách đây vài năm, tôi đã thực hiện một dự án đánh lửa ô tô và sự thật là tôi không bao giờ có thể gõ phím chính xác. Đối với việc đánh lửa .. Tôi sẽ thử phương pháp này. Tôi cảm ơn rất nhiều vì sự giúp đỡ tuyệt vời này

  4.   omar romero rincón dijo

    Xin chào, tôi đang làm một dự án với ba nút và 5 đèn LED với trình tự như sau.
    1 nút nhấn gửi tín hiệu đến 2 đèn LED, tôi gọi là 1 và 2.
    nút nhấn thứ hai gửi tín hiệu đến 3 đèn LED, được gọi là 2,3 và 4.
    nút bấm thứ ba của tôi gửi tín hiệu đến 3 đèn LED khác, được gọi là 3,4, 5 và XNUMX.

    Tôi đã quản lý để thực hiện trình tự đó, tôi chỉ gặp một vấn đề, khi nhấn 2 nút, nó sẽ gửi tín hiệu sai đến đèn LED luôn bật khiến nó nhấp nháy không liên tục, tôi đã kiểm soát nó bằng cách đặt độ trễ (2 giây, đó là những gì tôi cần để đèn LED luôn sáng và sau đó tắt. Sau đó, câu hỏi của tôi là làm cách nào để tôi có thể đưa hàm mili vào chương trình của mình, tôi không hiểu cách hoạt động của mili, tôi muốn biết bạn có thể giúp tôi bằng cách nào làm ví dụ cho 3 nút sử dụng mili trong mỗi nút, tôi cần mili để có thể nhấn các nút bất kỳ lúc nào mà không làm trễ arduino.

    1.    Isaac dijo

      Xin chào Omar,
      Tôi khuyên bạn nên xem hướng dẫn Arduino của chúng tôi:
      https://www.hwlibre.com/programacion-en-arduino/
      Và bạn cũng có thể xem bài viết của chúng tôi trên millis ():
      https://www.hwlibre.com/millis-arduino/
      Một lời chào.