Подключение и программирование датчиков

16 сентября 2018 - Администратор

Подключение ультразвукового датчика расстояния к Arduino

На данном занятии мы научимся подключать  ультразвуковой датчик расстояния к плате Arduino и напишем программу для считывания данных с датчика и вывода их в сериал порт.
Ультразвуковой датчик расстояния можно подключить как к цифровым портам, так и к аналоговым портам платы Arduino.
Рассмотрим подключение ультразвукового датчика к  цифровым пинам arduino
Разъем  датчика  TRIG подсоединяем  к пину на плате   с тильдой (~), например ~3.
Разъем датчика ECHO  подключаем к  пину  с тильдой, например ~5.
Разъем датчика VCC  подсоединяем ОБЯЗАТЕЛЬНО к разъему  5V на плате Arduino.
Разъем датчика GND  подсоединяем к разъему платы Arduino(GND).
Подключение ультразвукового датчика расстояния к Arduino представлено на рисунке

подключение датчика расстояния к arduino

Программа  arduino для датчика расстояния
1.  В начале программы нужно задать переменные  с портами датчика
int echoGolova_1 = 5; //переменная  для порта датчика ECHO
int trigGolova_1 = 3; //переменная для порта датчика  TRIG

2. Необходимо указать в setup  подключение пинов датчика расстояния и подклбчение сериал порат для вывода данных датчика в монитор порта.

void setup() {
Serial.begin (9600);

pinMode(trigGolova_1, OUTPUT);

pinMode(echoGolova_1, INPUT);
}

2. Ввести переменную dis для головы
int dis; // переменная для измерения дистанции 1
3.       Прописать процедуру, которая замеряет расстояние. Подробнее о процедурах в Си
void dist ()
{
  int duration, cm;
  digitalWrite(trigGolova_1, LOW);
  delayMicroseconds(2);
  digitalWrite(trigGolova_1, HIGH);
  delayMicroseconds(10);
  digitalWrite(trigGolova_1, LOW);
  duration = pulseIn(echoGolova_1, HIGH);
  cm = duration / 58;
  dis= cm;
  if (dis<=0){dis=50;};
// вывод переменной в сериал порт
  Serial.print(dis);
  Serial.println(" cm");  
 }

4.В основной программе loop необходимо вызвать функцию dist(). Эта процедура записывает переменную dis1 (расстояние в сантиметрах от головы) и выводит это значение в монитор порта для проверки корректности работы.

int echoGolova = 5; //перменая эхо 
int trigGolova = 3; //переменная триг 
int dis; // переменная для измерения дистанции

void setup() {
Serial.begin (9600);

pinMode(trigGolova_1, OUTPUT);

pinMode(echoGolova_1, INPUT);
}


// процедура измерения расстояния в см значение записывается в переменную dis
 void dist ()
 {
  int duration, cm;
  digitalWrite(trigGolova, LOW);
  delayMicroseconds(2);
  digitalWrite(trigGolova, HIGH);
  delayMicroseconds(10);
  digitalWrite(trigGolova, LOW);
  duration = pulseIn(echoGolova, HIGH);
  cm = duration / 58;
  dis = cm;
  if (dis<=0){dis=50;};
  Serial.print(dis);
  Serial.println(" cm");  
 }

void loop() {
// вызываем процедуру замера расстояния ультразвуковым датчиком
dist();
}

Чтобы посмотреть выведенную информацию в сериал порте, необходимо открыть Монитор порта, для этого мы нажимаем в правом верхнем углу значок лупа.

монитор порта

  Вернуться к содержанию  Перейти к следующему уроку Сигнализация на Arduino

 
Комментарии (0)

Нет комментариев. Ваш будет первым!