Prosty czujnik parkowania cz. 1

Prosty czujnik parkowania cz. 1

INFORMACJA: Poniższy post nie wydostał się z Poczekalni :(

Witam,

To mój pierwszy wpis na majsterkowo.pl, a dotyczył będzie maksymalnie uproszczonego czujnika cofania (parkowania). Nie nadaje się do zamontowania w samochodzie ze względu na delikatność samego czujnika odległości i niedokładność działania, ale obrazuje jak takie czujniki mogą działać. Projekt nazwać można więc pomysłem na powiązaniem buzera z czujnikiem odległości, niż prawdziwym czujnikiem parkowania.

Co będzie nam potrzebne?

  1. Arduino UNO R3 (oczywiście może być inna wersja)
  2. Czujnik odległości HC-SR04
  3. Prototypowa płytka stykowa
  4. Dioda LED
  5. Buzer
  6. Przewody do płytki stykowej
  7. Rezystor 1k

Program jest uproszczony maksymalnie. Jako programista powiem nawet, że napisany jest niepoprawnie, gdyż w innych okolicznościach starałbym się uniknąć funkcji delay(), która zatrzymuje nam działanie całego programu, ale tutaj chodzi o maksymalną prostotę, oto kod:

int echoPin = 2;
int trigPin = 3;
int buzzerPin = 4;

int low_limit = 10;
int high_limit = 200;

void setup()
{
  pinMode(echoPin, INPUT);
pinMode(trigPin, OUTPUT);
  pinMode(buzzerPin, OUTPUT);
Serial.begin(9600);
}

void loop()
{
  int distance = get_distance();

  if(distance>low_limit && distance<high_limit)
{
    digitalWrite(buzzerPin, HIGH);
delay(distance*3);

digitalWrite(buzzerPin, LOW);
    delay(distance*3);
}
  else if(distance<=low_limit && distance>=0)
{
    digitalWrite(buzzerPin, HIGH);
}
  else if(distance>=high_limit && distance<0)
{
  }

  Serial.println(String(distance) + "cm");

}

int get_distance()
{
  digitalWrite(trigPin, HIGH);
delay(10);
  digitalWrite(trigPin, LOW);
int distance = pulseIn(echoPin, HIGH);
  distance = distance/58;
return distance;
}

Schemat. Pierwszy raz robiłem cokolwiek w fritzing’u, czujnik odległości zakrył trochę połączenia, ale można zobaczyć ideę:

Untitled Sketch_bb

 

U mnie wyglądało to tak:

DSC00306

Krótki filmik przedstawiający działanie:

https://www.youtube.com/watch?v=ELhUNHsUjgk

To już  koniec, jeśli temat się spodoba, postaram się rozwinąć go. Rozbuduję projekt o ekran wyświetlający odległość, dodam może czujnik temperatury, krótko mówiąc postaram się zrobić coś podobnego do komputera pokładowego w samochodzie. Teoretycznie można w przyszłości np. odczytać dane z sondy lambda i wyświetlić spalanie itd..

INFORMACJA: Poniższy post nie wydostał się z Poczekalni :(

Ocena: 4/5 (głosów: 2)

Podobne posty

15 komentarzy do “Prosty czujnik parkowania cz. 1

      • Nie do końca się z tym zgadzam. Miałem taki garaż, w którym było trzeba zaparkować na 2cm od ściany, bo inaczej nie mogłem drzwi do garażu zamknąć… No a 2cm to dosyć mały margines błędu…

        Odpowiedz
  • wlasnie skladalem cos podobnego do mojego sluzbowego vana ala maly komputer ktory by pokazywal temperature w srodku i na zewnatrz odleglosc do przeszkody podczas cofania i oczywiscie bedzie odczytywal dane o spalaniu itd. lecz prace chwilowo ustaly ze wzgledu na chec dodania kamery z tylu kangura co jest trudne do zrealizowania przy pomocy arduino. lecz ostatnio natknolem sie w sieci na projekt zwany UDOO jest to polaczenie Rpi i arduino jesli bedzie w koncu dostepne w sprzedazy zrobie to przy jego pomocy

    Odpowiedz
    • Ten którego użyłem to najzwyklejszy buzer 5v, jest na tyle głośny, że nie da się szczerze mówiąc długo przy nim wytrzymać, wiem, że schemat jest do poprawy i postaram się zrobić to jak najszybciej.

      Odpowiedz
      • Chodziło mi o typ buzzera.
        Jeśli zastosujemy podany przez Ciebie (link do Nettigo), to przy podaniu HIGH na port buzzerPin usłyszymy tylko ciche pyknięcie.
        Żeby wydał jakikolwiek należy go odpowiednio wysterować programowo lub sprzętowo.
        Inaczej sprawa wygląda jeśli użyjesz buzzera z generatorem, i chyba taki zastosowałeś.

        Odpowiedz
    • Dla potomnych, jeśli podłączyłeś to na VCC i GND to uśmierciłeś arduino, czasem warto przemyśleć wszystko 2 a nawet i więcej razy :)

      Odpowiedz

Odpowiedz

anuluj

Masz uwagi?