Có lẽ là một trong những dự án cơ bản trên arduino Tôi đang cảm biến đỗ xe. Nhưng bài viết này sẽ không mô tả việc tạo ra một cảm biến đỗ xe thông thường, mà là cảm biến đỗ xe với điều chỉnh thủ công khoảng cách tới hạn. Trong quá trình tạo thiết bị này, bạn sẽ tăng kỹ năng về mạch và lập trình.
Các thành phần chính:
• bảng mạch Arduino / Uno
• cảm biến khoảng cách siêu âm HC-CR04
• 6 đèn LED
• 6 điện trở ở 220 ohms
• 2 điện trở trên 10 KOm
• 2 nút đồng hồ
• Piezo
• hội đồng mê sảng
• dây cha cha
• giày xốp (cho trường hợp)
Từ các công cụ:
• hàn sắt
• nhiệt - keo
Hãy xem xét thuật toán của thiết bị
Sau khi xem thuật toán, chúng tôi thu thập sơ đồ trên một bảng mê sảng:
Kể từ khi tôi gắn mạch trong trường hợp, nó đã được quyết định tạo ra các lá chắn nhỏ của các nút và đèn LED.
Vỏ của thiết bị được làm từ một hộp từ miếng bọt biển để đựng giày.
Có vẻ như thiết bị bên trong.
Hãy xem mã.
int switch1 = 9; // Nút 1
int switch2 = 10; // Nút 2
int pin = 2;
int bin = 40; // Khoảng cách tới hạn ban đầu tính bằng centimet !!!
int echoPin = 12; // Echo pin trên mô-đun HC-SR04
int trigPin = 11; // Pin Trig trên mô-đun HC-SR04
int buz = 8; // Ghim tweet
boolean lBut1 = THẤP;
boolean lBut2 = THẤP;
boolean cBut1 = THẤP;
boolean cBut2 = THẤP;
void setup () {
Nối tiếp.begin (9600);
pinMode (trigPin, OUTPUT);
pinMode (echoPin, INPUT);
pinMode (switch1, INPUT);
pinMode (switch2, INPUT);
pinMode (2, OUTPUT); // Đèn LED 1
pinMode (3, ĐẦU RA); // Đèn LED 2
pinMode (4, ĐẦU RA); // Đèn LED 3
pinMode (5, ĐẦU RA); // Đèn LED 4
pinMode (6, ĐẦU RA); // Đèn LED 5
pinMode (7, ĐẦU RA); // Đèn LED 6
pinMode (8, ĐẦU RA); // Tiếng kêu
}
boolean ra mắt (boolean cuối)
{
boolean current = digitalRead (switch1);
if (cuối cùng! = hiện tại)
{
trì hoãn (5);
current = digitalRead (switch1);
}
trả lại hiện tại;
}
boolean debounce2 (boolean last2)
{
boolean current2 = digitalRead (switch2);
if (last2! = current2)
{
trì hoãn (5);
current2 = digitalRead (switch2);
}
trả về hiện tại2;
}
void loop () {
int thời gian, cm;
kỹ thuật sốWrite (trigPin, THẤP);
delayMicroseconds (2);
kỹ thuật sốWrite (trigPin, CAO);
delayMicroseconds (10);
kỹ thuật sốWrite (trigPin, THẤP);
thời gian = xungIn (echoPin, CAO);
cm = thời lượng / 58;
Nối tiếp.print (cm);
Nối tiếp.println ("cm");
trì hoãn (10);
cBut1 = gỡ lỗi (lBut1);
if (lBut1 == THẤP && cBut1 == CAO)
{
pin = pin-1;
bin = bin-7; // Số 7 có nghĩa là trừ đi 7 cm từ khoảng cách tới hạn !!!
}
lBut1 = cBut1;
kỹ thuật sốWrite (pin, CAO);
cBut2 = debounce2 (lBut2);
if (lBut2 == THẤP && cBut2 == CAO)
{
pin = pin + 1;
bin = bin + 7; // Số 7 có nghĩa là thêm 7 cm từ khoảng cách tới hạn !!!
}
lBut2 = cBut2;
kỹ thuật sốWrite (pin, THẤP);
if (cm 0)
{
âm (8.200.200);
độ trễ (300);
}
khác
{
không có (8);
}
}
Các giá trị bin có thể được thay đổi để thuận tiện hơn cho bạn.
Do đó, thiết bị thường xuyên thực hiện các chức năng của mình.
Bài viết này sẽ giúp bạn thực hiện các cảm biến đỗ xe tương tự mà không cần nỗ lực nhiều.
Tôi chúc mọi người may mắn trong việc lặp lại thiết bị này. Tôi hy vọng hướng dẫn của tôi hữu ích cho bạn.