Witajcie przyjaciele, mam nadzieję, że dobrze się bawicie i cieszycie się życiem.
Dzisiaj napiszę o połączeniu wielu czujników ultradźwiękowych z Arduino.
W poprzednim poście, widzieliśmy połączenie czujnika ultradźwiękowego z Arduino, w którym połączyłem pojedynczy czujnik ultradźwiękowy, ale w projektach szczególnie związanych z robotyką, musimy połączyć wiele czujników ultradźwiękowych. Na przykład masz robota wykrywającego przeszkody. Teraz w celu wykrycia przeszkody przed robotem musisz umieścić jeden czujnik z przodu. Ale nie możesz wykryć żadnego obiektu obecnego po lewej lub prawej stronie robota, więc musisz umieścić dwa czujniki jeden po lewej i jeden po prawej stronie. Zatem w tym projekcie musisz użyć w sumie trzech czujników ultradźwiękowych, jeden z przodu, jeden po lewej i jeden po prawej stronie robota. Podobnie, w innym projekcie musiałem poruszać się robotem w labiryncie posiadającym ściany po stronie robota, a moim zadaniem było poruszanie się robotem prosto w obrębie tych ścian bez uderzania w nie. W tym przypadku użyłem również dwóch czujników ultradźwiękowych po obu stronach robota, a następnie zastosowałem algorytm PID w celu uniknięcia uderzenia w ściany. Tak więc, w skrócie, powszechną praktyką jest używanie wielu czujników ultradźwiękowych z Arduino i dzisiaj przyjrzymy się jak to zrobić.
O podstawach dot. czujnika ultradźwiękowego i jego działaniu pisałem w poprzednim poście, więc nie będę się zagłębiał w szczegóły. Jeśli jeszcze nie czytałeś to polecam najpierw przeczytać o współpracy czujnika ultradźwiękowego z Arduino.
Teraz zacznijmy od połączenia wielu czujników ultradźwiękowych z Arduino, co nie jest takie trudne.
Uwaga:
Inne biblioteki Proteusa to:
- Biblioteka Arduino dla Proteusa
- Biblioteka Genuino dla Proteusa
- Biblioteka GPS dla Proteusa
- Biblioteka GSM dla Proteusa
- Biblioteka XBee dla Proteusa
- Biblioteka czujników ultradźwiękowych dla Proteusa
- Biblioteka PIR dla Proteusa
- Biblioteka Bluetooth dla Proteusa
- Biblioteka DS1307 dla Proteusa
Ponadto, dla sprzętowej implementacji czujnika ultradźwiękowego z Arduino, sprawdź poniższe posty:
- Połączenie pojedynczego czujnika ultradźwiękowego z Arduino
- Połączenie wielu czujników ultradźwiękowych z Arduino
Połączenie wielu czujników ultradźwiękowych z Arduino
Pozwólcie, że najpierw jeszcze raz podsumuję działanie czujnika ultradźwiękowego. W przypadku czujnika ultradźwiękowego, to co musimy zrobić, to wygenerować sygnał wyzwalający na jego pinie wyzwalającym przez około 10 mikrosekund.
Gdy tylko czujnik ultradźwiękowy otrzyma ten sygnał wyzwalający, wysyła sygnał ultradźwiękowy.
Ten ultradźwiękowy sygnał następnie uderza w coś i odbija się z powrotem.
Teraz, aby sprawdzić ten sygnał odbijający, musimy odczytać pin Echo i sprawdzić jak długo pozostaje on WYSOKI, a na podstawie tego czasu obliczamy naszą odległość od obiektu.
Jest to proces dla pojedynczego czujnika ultradźwiękowego i jeśli używamy wielu czujników ultradźwiękowych, musimy po prostu powtórzyć całą procedurę dla wszystkich czujników, jeden po drugim.
W pierwszej kolejności wygenerujemy impuls wyzwalający dla pierwszego czujnika i odczytamy jego pin Echo i otrzymamy odległość, następnie wygenerujemy impuls wyzwalający dla drugiego czujnika i odczytamy jego pin Echo i tak dalej dla trzeciego.
Tak więc, tutaj będę używał trzech czujników ultradźwiękowych, a schemat obwodu jest pokazany poniżej:
Starałem się jak mogłem podczas projektowania tego rysunku, aby uczynić go prostym, ale ponieważ jest zbyt wiele przewodów, więc stał się trochę skomplikowany.
Wskazuję tutaj konfigurację pinów, aby ułatwić ci interfejs twoich czujników z Arduino. Konfiguracja pinów jest następująca:
- Vcc wszystkich czujników będzie szło do +5 V Arduino.
- GND wszystkich czujników będzie szło do GND Arduino.
- Trig Pin pierwszego czujnika do Pinu 3 Arduino.
- Echo Pin pierwszego czujnika do Pinu 2 Arduino.
- Trig Pin drugiego czujnika do Pinu 4 Arduino.
- Echo Pin drugiego czujnika do Pinu 5 Arduino.
- Trig Pin trzeciego czujnika do Pinu 7 Arduino.
- Echo Pin trzeciego czujnika do Pinu 8 Arduino.
Po podłączeniu pinów w sposób opisany powyżej, skopiuj poniższy kod i wgraj go do swojej płytki Arduino.
Po wgraniu kodu do Arduino, otwórz terminal szeregowy w oprogramowaniu Arduino, a zaczniesz otrzymywać odległości dla wszystkich trzech czujników.
#define trigPin1 3
#define echoPin1 2
#define trigPin2 4
#define echoPin2 5
#define trigPin3 7
#define echoPin3 8
long duration, distance, RightSensor,BackSensor,FrontSensor,LeftSensor;
void setup()
{
Serial.begin (9600);
pinMode(trigPin1, OUTPUT);
pinMode(echoPin1, INPUT);
pinMode(trigPin2, OUTPUT);
pinMode(echoPin2, INPUT);
pinMode(trigPin3, OUTPUT);
pinMode(echoPin3, INPUT);
}
void loop() {
SonarSensor(trigPin1, echoPin1);
RightSensor = distance;
SonarSensor(trigPin2, echoPin2);
LeftSensor = distance;
SonarSensor(trigPin3, echoPin3);
FrontSensor = distance;
Serial.print(LeftSensor);
Serial.print(" - ");
Serial.print(FrontSensor);
Serial.print(" - ");
Serial.println(RightSensor);
}
void SonarSensor(int trigPin,int echoPin)
{
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
distance = (duration/2) / 29.1;
}
Kod jest dość podobny do tego, którego używaliśmy podczas łączenia pojedynczego czujnika ultradźwiękowego z Arduino, jedyne co tutaj zmieniliśmy to powtórzenia.
Wcześniej używaliśmy tej samej funkcji SonarSensor(), ale wywoływaliśmy ją tylko raz dla naszego pojedynczego czujnika połączonego z Arduino, ale teraz wywołujemy ją trzy razy dla wszystkich trzech czujników.
Jest to rodzaj ogólnego kodu. Możesz połączyć z nim więcej czujników, jeśli chcesz, a to, co musisz zrobić, to tylko wywołać tę funkcję dla następnego podłączonego czujnika.
To już wszystko na dzisiaj. Myślę, że na temat czujnika ultradźwiękowego napisaliśmy już wiele, więc nie będę już zamieszczał więcej poradników na temat tego czujnika, tylko zacznę pisać na temat jakiegoś innego czujnika. Powinieneś również zajrzeć do projektów Arduino dla początkujących.
Dzięki za przeczytanie.
Podziel się artykułem z przyjaciółmi i pomóż nam się rozwijać.