Witajcie przyjaciele, kilka dni temu opublikowałem bibliotekę czujników ultradźwiękowych dla Proteusa, za pomocą której można łatwo symulować czujnik ultradźwiękowy w Proteusie. Post został bardzo pochwalony przez czytelnika i otrzymałem całkiem niezły feedback od osób obserwujących. Pomyślałem więc, że podzielę się kilkoma przykładami z nim związanymi, tak aby użytkownik mógł w pełni zrozumieć jak używać czujnika ultradźwiękowego w Proteusie. Dzisiaj przyjrzymy się różnym symulacjom czujników ultradźwiękowych w Proteusie. Jeśli nie czytałeś poprzedniego postu, to najpierw zajrzyj do niego, ponieważ bez instalacji Ultrasonic Sensor Library w Proteusie, nie będziesz mógł skorzystać z tych przykładów.
Czujnik ultradźwiękowy jest szeroko stosowany w systemach wbudowanych.
Dzisiaj, podzielę się trzema przykładami symulacji czujnika ultradźwiękowego w Proteus, które wystarczą, abyście mogli zapoznać się z tym czujnikiem. Załączyłem również te symulacje poniżej i możesz je łatwo pobrać, ale jak zwykle radzę, lepiej zaprojektować je symulacje samodzielnie i napisać swój własny kod, ponieważ pomoże ci to go lepiej zrozumieć. Jeśli nie będziesz popełniać błędów, nie będziesz się na nich uczyć. Poniżej przedstawię trzy przykłady czujników ultradźwiękowych:
- Przycisk
- Zbliżeniowy
- Przełącznik
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
Symulacje czujników ultradźwiękowych w Proteusie przy użyciu przycisku
W tym poradniku użyjemy trzech przycisków i za ich pomocą będziemy sterować naszym czujnikiem ultradźwiękowym.
Pomyśl o tych przyciskach jak o trzech przeszkodach, które są umieszczone w różnych odległościach, jeśli naciśniemy pierwszy przycisk, to pierwsza przeszkoda zostanie osiągnięta, jeśli naciśniemy drugi to druga przeszkoda i tak samo dla trzeciej.
Więc, otwórz Proteus ISIS i jeśli masz już zainstalowaną bibliotekę ultradźwiękowa dla Proteusa, zaprojektuj symulację czujnika ultradźwiękowego w Proteusie jak pokazano na poniższym rysunku:
Teraz otwórz oprogramowanie Arduino i wklej w nim poniższy kod, a otrzymasz plik hex do załadowania w tej symulacji.
Uwaga:
Najpierw powinieneś przeczytać jak pobrać plik Hex z Arduino.
Nie zapomnij wgrać pliku UltrasonicTEP.HEX do swojego Ultrasonic Sensor tak jak to zrobiliśmy w bibliotece Ultrasonic dla Proteusa.
const int pingPin = 7;
const int echoPin = 6;
void setup()
{
Serial.begin(9600);
}
void loop()
{
long duration, inches, cm;
pinMode(pingPin, OUTPUT);
digitalWrite(pingPin, LOW);
delayMicroseconds(2);
digitalWrite(pingPin, HIGH);
delayMicroseconds(10);
digitalWrite(pingPin, LOW);
pinMode(echoPin, INPUT);
duration = pulseIn(echoPin, HIGH);
inches = microsecondsToInches(duration);
cm = microsecondsToCentimeters(duration);
Serial.print(inches);
Serial.print("in, ");
Serial.print(cm);
Serial.print("cm");
Serial.println();
delay(100);
}
long microsecondsToInches(long microseconds)
{
return microseconds / 74 / 2;
}
long microsecondsToCentimeters(long microseconds)
{
return microseconds / 29 / 2;
}
Po dodaniu pliku hex do tej symulacji, naciśnij przycisk RUN i jeśli wszystko pójdzie zgodnie z oczekiwaniami, otrzymasz symulację jak pokazano na poniższym rysunku:
Możesz pobrać tę symulację wraz z kodem i plikiem hex Arduino klikając link na końcu artykułu.
Symulacje czujnika ultradźwiękowego w Proteusie jako przełącznika zbliżeniowego
Wyjaśniłem już szczegółowo pierwszy przykład, więc nie będę zbytnio tego wyjaśniał.
W tym przykładzie używamy czujnika ultradźwiękowego jako przełącznika zbliżeniowego, gdy tylko jakakolwiek przeszkoda pojawi się na drodze czujnika ultradźwiękowego, automatycznie da on sygnał.
Jak widać na poniższym rysunku, używamy zmiennego źródła napięcia dla pinu analogowego czujnika ultradźwiękowego.
Należy więc najpierw zaprojektować symulację, jak pokazano na poniższym rysunku:
Teraz wgraj plik hex Arduino dla tego przykładu, który jest załączony poniżej wraz z kodem i tą symulacją.
Po załadowaniu pliku hex, naciśnij przycisk RUN i jeśli wszystko działa jak powinno, wtedy zobaczysz wyniki podobne do poniższego zrzutu ekranu:
Jak widać na powyższym rysunku, wysyłamy Ping z czujnika ultradźwiękowego, a w kodzie programistycznym umieściliśmy alarm w określonej odległości, więc gdy tylko jakiś obiekt znajdzie się w tym zasięgu, nasz program da nam alarm.
Można również użyć Buzzer'a w Proteusie.
Możesz pobrać tę symulację Proteusa wraz z kodem Arduino i plikiem hex klikając link na końcu artykułu.
Symulacje czujników ultradźwiękowych w Proteusie z wykorzystaniem przełącznika
Oto trzeci i ostatni przykład symulacji czujnika ultradźwiękowego w Proteusie.
W tej symulacji używamy przełącznika i kontrolujemy czujnik ultradźwiękowy za pomocą tego przełącznika.
Dla tego przełącznika istnieją w sumie cztery stany, które określają jakie powinno być napięcie na pinie analogowym czujnika ultradźwiękowego.
Umieściłem również oscyloskop w tej symulacji, który da ci stan napięcia dla tego przełącznika, abyś miał pojęcie, jaki jest wzór napięcia przychodzącego do czujnika ultradźwiękowego. Jest to głównie dla lepszego zrozumienia i testowania.
Teraz załaduj do niego swój plik hex Arduino i naciśnij przycisk RUN, a zobaczysz coś takiego:
Jak widać powyżej, wirtualny terminal pokazuje odległości, podczas gdy oscyloskop podaje nam stan przełącznika. Pobaw się tym, a dowiesz się więcej. Jeśli nadal masz wątpliwości, pytaj w komentarzach.
Możesz pobrać symulację Proteusa dla tego przykładu wraz z plikiem hex i kodem Arduino klikając link na końcu artykułu.
To wszystko na dziś, mam nadzieję, że czegoś się dziś nauczyliście.
Jeśli macie jakieś problemy lub pytania, pytajcie, a ja postaram się je rozwiązać.
Trzymajcie się!