Mungkin salah satu projek asas pada arduino Saya adalah penderia letak kereta. Tetapi artikel ini tidak akan menerangkan penciptaan sensor tempat letak kereta biasa, tetapi sensor tempat letak kereta dengan pelarasan manual jarak kritikal. Dalam proses membuat peranti ini, anda akan meningkatkan kemahiran anda dalam litar dan pengaturcaraan.
Komponen utama:
• Arduino Nano / Uno board
• sensor jarak ultrasonik HC-CR04
• 6 LED
• 6 resistor pada 220 ohm
• 2 resistor setiap 10 KOm
• 2 butang jam
• piezo squeaker
• papan delirious
• dad ayah wayar
• kasut span (untuk kes itu)
Daripada alat:
• besi pematerian
• termo - gam
Pertimbangkan algoritma peranti tersebut
Selepas melihat algoritma, kami mengumpul skema pada papan yang sesat:
Sejak saya memasang litar dalam kes itu, ia telah memutuskan untuk membuat perisai mini butang dan LED.
Kes peranti itu diperbuat daripada kotak dari span untuk kasut.
Ia kelihatan seperti peranti di dalamnya.
Mari lihat kod itu.
int switch1 = 9; // Butang 1
int switch2 = 10; // Butang 2
int pin = 2;
int bin = 40; // Jarak kritis awal dalam sentimeter !!!
int echoPin = 12; // // Echo pin pada modul HC-SR04
int trigPin = 11; // Pin Trig pada modul HC-SR04
int buz = 8; // Pin tweeter
boolean lBut1 = LOW;
boolean lBut2 = LOW;
boolean cBut1 = LOW;
boolean cBut2 = LOW;
void setup () {
Serial.begin (9600);
pinMode (trigPin, OUTPUT);
pinMode (echoPin, INPUT);
pinMode (switch1, INPUT);
pinMode (switch2, INPUT);
pinMode (2, OUTPUT); // LED 1
pinMode (3, OUTPUT); // LED 2
pinMode (4, OUTPUT); // LED 3
pinMode (5, OUTPUT); // LED 4
pinMode (6, OUTPUT); // LED 5
pinMode (7, OUTPUT); // LED 6
pinMode (8, OUTPUT); // Cakar
}
debounce boolean (boolean terakhir)
{
boolean current = digitalRead (switch1);
jika (akhir! = semasa)
{
kelewatan (5);
current = digitalRead (switch1);
}
pulangan semasa;
}
debounce2 boolean (boolean last2)
{
boolean current2 = digitalRead (switch2);
jika (last2! = current2)
{
kelewatan (5);
current2 = digitalRead (switch2);
}
pulangan semasa2;
}
kekosongan gelung () {
tempoh int, cm;
digitalWrite (trigPin, LOW);
delayMicroseconds (2);
digitalWrite (trigPin, TINGGI);
delayMicroseconds (10);
digitalWrite (trigPin, LOW);
tempoh = pulseIn (echoPin, HIGH);
cm = durasi / 58;
Serial.print (cm);
Serial.println ("cm");
kelewatan (10);
cBut1 = debounce (lBut1);
jika (lBut1 == LOW && cBut1 == HIGH)
{
pin = pin-1;
bin = bin-7; // Nombor 7 bermaksud penolakan oleh 7 cm dari jarak kritis !!!
}
lBut1 = cBut1;
digitalWrite (pin, TINGGI);
cBut2 = debounce2 (lBut2);
jika (lBut2 == LOW && cBut2 == HIGH)
{
pin = pin + 1;
bin = bin + 7; // Nombor 7 bermaksud penambahan 7 cm dari jarak kritis !!!
}
lBut2 = cBut2;
digitalWrite (pin, LOW);
jika (cm 0)
{
nada (8,200,200);
kelewatan (300);
}
lain
{
noTone (8);
}
}
Nilai bin boleh diubah menjadi lebih mudah untuk anda.
Akibatnya, peranti itu sentiasa melaksanakan fungsinya.
Artikel ini akan membantu anda membuat sensor tempat letak kereta yang sama tanpa banyak usaha.
Saya ingin semua nasib baik dalam mengulangi peranti ini. Saya harap panduan saya berguna kepada anda.