Добавляйте самоделоки - получайте оплату

*кликни за подробностями

» » » Парктроник на Arduino с ручной регулировкой расстояния

Парктроник на Arduino с ручной регулировкой расстояния

Парктроник на Arduino с ручной регулировкой расстояния


Наверное, одним из базовых проектов на arduino я является парктроник. Но в этой статье будет описано создание не обычного парктроника, а парктроника с ручной регулировкой критического расстояния. В процессе создания этого устройства вы повысите свои навыки в схемотехнике и программировании.

Основные компоненты:

• плата arduino Nano/Uno
• ультразвуковой датчик расстояния HC-CR04
• 6 светодиодов
• 6 резисторов на 220 Ом
• 2 резистора на 10 KOm
• 2 тактовые кнопки
• пьезо пищалка
• бред- борд
• провода папа-папа
• губка для обуви (для корпуса)

Из инструментов:

• паяльник
• термо - клей

Рассмотрим алгоритм работы устройства


Парктроник на Arduino с ручной регулировкой расстояния


После просмотра алгоритма соберём схему на бред борде:


Парктроник на Arduino с ручной регулировкой расстояния


Так как я монтировал схему в корпус, было принято решение сделать мини шилды кнопок и светодиодов.

Парктроник на Arduino с ручной регулировкой расстояния


Корпус устройство был сделан из коробочки от губки для обуви.
Так выглядит устройство внутри.

Парктроник на Arduino с ручной регулировкой расстояния


Посмотрим код.

int switch1 = 9; // Кнопка 1
int switch2 = 10; // Кнопка 2
int pin = 2;
int bin = 40; // Начальное критическое расстояние в сантиметрах!!!
int echoPin = 12; // Echo пин на модуле HC-SR04
int trigPin = 11; // Trig пин на модуле HC-SR04
int buz = 8; // Пин пищалки
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); // Светодиод 1
  pinMode(3,OUTPUT); // Светодиод 2
  pinMode(4,OUTPUT); // Светодиод 3
  pinMode(5,OUTPUT); // Светодиод 4
  pinMode(6,OUTPUT); // Светодиод 5
  pinMode(7,OUTPUT); // Светодиод 6
  pinMode(8,OUTPUT); // Пищалка
}
boolean debounce(boolean last)
{
  boolean current = digitalRead (switch1);
  if (last !=current)
  {
    delay(5);
    current = digitalRead (switch1);
  }
  return current;
}
boolean debounce2(boolean last2)
{
  boolean current2 = digitalRead (switch2);
  if (last2 !=current2)
  {
    delay(5);
    current2 = digitalRead (switch2);
  }
  return current2;
}
void loop() {
  int duration, cm; 
  digitalWrite(trigPin, LOW); 
  delayMicroseconds(2); 
  digitalWrite(trigPin, HIGH); 
  delayMicroseconds(10); 
  digitalWrite(trigPin, LOW); 
  duration = pulseIn(echoPin, HIGH); 
  cm = duration / 58;
  Serial.print(cm); 
  Serial.println(" cm"); 
  delay(10);
  
  cBut1 = debounce(lBut1);
  if (lBut1 == LOW && cBut1 == HIGH)
  {
    pin=pin-1;
    bin=bin-7; // Цифра 7 значит отнятие на 7 см от критического расстояния!!!
  }
  lBut1 = cBut1;
  digitalWrite(pin,HIGH);
    cBut2 = debounce2(lBut2);
  if (lBut2 == LOW && cBut2 == HIGH)
  {
    pin=pin+1;
    bin=bin+7; // Цифра 7 значит прибавление на 7 см от критического расстояния!!!
  }
  lBut2 = cBut2;
  digitalWrite(pin,LOW);

  if (cm<bin && cm>0)
  {
    tone(8,200,200);
    delay(300);
    
  }
  else
  {
    noTone(8);
  }
}


Значения bin можно менять, на более удобное для вас.

В итоге прибор исправно выполняет свои функции.

Парктроник на Arduino с ручной регулировкой расстояния


Данная статья поможет вам сделать такой же парктроник без особых сил.
Желаю всем удачи в повторении данного устройства. Надеюсь мой гайд был полезен для вас.
Чтобы написать комментарий необходимо войти на сайт через соц. сети (или зарегистрироваться):
Обычная регистрация
Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.

Онлайн чат

Опрос
Сколько по времени, чаше всего, Вы делаете самоделку?

Последние комментарии

Все комментарии

Комментаторы месяца

Валерий
Комментариев: 1505 Публикаций: 41
1
Иван_Похмельев
Комментариев: 1365 Публикаций: 0
2
Dmitrij
Комментариев: 473 Публикаций: 580
3
pogranec
Комментариев: 484 Публикаций: 196
4
слесарь
Комментариев: 24 Публикаций: 4
5