Bài trước: Điều khiển nhiều led và mô phỏng bằng tinkercad.com
1. Nút nhấn là gì:
Nút ấn là một loại
công tắc đơn giản điều khiển hoạt động của máy hoặc một số loại quá trình.
Hầu hết, các nút nhấn là nhựa hoặc kim loại. Hình dạng của nút ấn có thể phù
hợp với ngón tay hoặc bàn tay để sử dụng dễ dàng. Tất cả phụ thuộc vào thiết kế
cá nhân. Nút ấn có 2 loại chính là nút nhấn thường mở hoặc nút nhấn
thường đóng.
2. Nguyên lí làm việc của nút nhấn
Nút nhấn có ba phần: Bộ truyền động, các
tiếp điểm cố định và các rãnh. Bộ truyền động sẽ đi qua toàn bộ công tắc và
vào một xy lanh mỏng ở phía dưới. Bên trong là một tiếp điểm động và lò xo.
Khi nhấn nút, nó chạm vào các tiếp điểm tĩnh làm thay đổi trạng thái của
tiếp điểm. Trong một số trường hợp, người dùng cần giữ nút hoặc nhấn liên tục
để thiết bị hoạt động. Với các nút nhấn khác, chốt sẽ giữ nút bật cho đến
khi người dùng nhấn nút lần nữa.
3. Ứng dụng
Công tắc nút nhấn sử dụng nhiều trong các
ứng dụng khác nhau như máy tính, điện thoại nút nhấn và nhiều thiết bị gia
dụng. Bạn có thể nhìn thấy chúng trong nhà, văn phòng và trong các ứng dụng
công nghiệp ngày nay. Chúng có thể bật, tắt máy hoặc làm cho thiết bị thực hiện
các hoạt động cụ thể, như trường hợp với máy tính. Trong một số trường hợp,
các nút nhấn có thể kết nối thông qua liên kết cơ học, điều khiển một nút nhấn
khác hoạt động
Đa số, các nút sẽ có màu sắc cụ thể để biểu
thị mục đích của chúng. Ví dụ như nút nhất màu xanh thường được sử
dụng để bật thiết bị hay nút nhấn màu đỏ để tắt thiết bị. Điều này
tránh gây nên một sô nhầm lẫn. Nút dừng khẩn cấp thường là các nút ấn
lớn, thường có màu đỏ và có đầu lớn hơn để sử dụng dễ dàng hơn.
4. Xác định trạng thái một nút nhấn.
• Mục đích: Xác định xem nút được nhấn hay chưa để thực hiện một công việc
cụ thể nào đó. Ví dụ khi nhấn nút sẽ bật đèn, nhấn thêm lần nữa sẽ tắt đèn.
Để đọc trạng thái một nút nhấn chúng ta có thể thiết kế theo 2 dạng là INPUT và INPUY_PULLUP.
- Lắp mạch xác định trạng thái nút nhấn theo kiểu INPUT.
Sơ đồ mạch:
Code:
int congtac=2;
void setup()
{
pinMode(congtac, INPUT);
Serial.begin(9600);
}
void loop()
{
int trangthai=digitalRead(congtac);
Serial.println(trangthai);
delay(500);
}
int nutnhan=2;
int led=3;
int trangthailed=0;
void setup()
{
pinMode(led, OUTPUT);
pinMode(nutnhan,INPUT);
Serial.begin(9600);
digitalWrite(led,LOW);
}
void loop()
{
int trangthai=digitalRead(nutnhan);
int ledsang=digitalRead(led);
if(trangthai==1 && ledsang==trangthailed)
{
digitalWrite(led, !trangthailed);
delay(500);
trangthailed= !trangthailed;
}
}
int nutnhan=2;
int led=3;
int i;
void setup()
{
pinMode(led, OUTPUT);
pinMode(nutnhan,INPUT);
Serial.begin(9600);
digitalWrite(led,LOW);
i=1;
} void loop() { int trangthai=digitalRead(nutnhan); if(trangthai==1 && i % 2 !=0) { digitalWrite(led, HIGH); delay(500); }
else {
digitalWrite(led,LOW);
delay(500);
}
i++;
}
- Lắp mạch kiểu INPUT_PULLUP: mặc định trong mỗi chân của Arduino Uno đều có điện trở nên khi lắp mạch ta có thể không cần gắn thêm điện trở mà gọi INPUT_PULLUP để kéo điện trở trong mỗi chân của Arduino luôn.
- Sơ đồ mạch theo cách này như sau:
- Code:
int congtac=2;
void setup()
{
pinMode(congtac, INPUT_PULLUP);
Serial.begin(9600);
}
void loop()
{
int trangthai=digitalRead(congtac);
Serial.println(trangthai);
delay(500);
}
- Kết quả mô phỏng:
- Với khai báo INPUT_PULLUP chúng ta thấy khi không nhấn giá trị nút nhấn là 1 và khi nhấn giá trị là 0.
- Sau đây là sơ đồ điều khiển led bằng nút nhấn với INPUT_PULLUP
- Code:
- Các bạn thấy đó code giống như trên chỉ thay đổi ở chỗ thay vì khi nhấn trạng thái nút nhấn là 1 thì bây giờ là 0.
- Đến đây chúng ta đã tìm hiểu về nút nhấn với 2 kiểu nhận trạng thái là INPUT và INPUT_PULUP.
- Các bạn có thể xem video tại kênh Youtube:
- Trong bài tiếp theo tôi sẽ hướng dẫn các bạn cách sử dụng Driver L298N để điều khiển động cơ DC và loạt bài tiếp theo sẽ liên quan đến Driver này với nhiều ứng dụng hấp dẫn như: điều khiển cửa cuốn, điều khiển xe mô hình, làm robot,...
- Các bạn hãy đón xem nhé, xin chào và hẹn gặp lại.
Đăng nhận xét