Измерване на разстояние чрез Ардуино и ултразвуков сензор

Описание

LV-EZ2 на Maxbotix е ултразвуков сензор за разстояние с обхват от 6 до 255 инча (6,45м) и точност на показанията 1 инч. Разполага с три интерфейса за изходните данни: аналогов (AN), широчнинно-импулсен (PW) и RS232 сериен, като в примера ще използваме аналоговия.

Даденият по-доло пример използва данните получени от сензора, за да изчисли разстоянието в сантиметри до най-близкия до него обект. Резултатът се връща чрез серийна комуникация и може да се види в Serial Monitor-а на Arduino IDE софтуера.

Свързване

От Ардуино сензора се захранва с 3,3 или 5V напрежение, които свързваме към +5 пина на сензора, а GND свързваме към маса. За да използваме аналоговия изход , то свързваме AN пина на сензора към някой от аналоговите входове на Ардуино.

Код

// входове и изходи на микроконтролера

const int analogInPin = A0;      //А0 е входа, към който е свързан AN 
                                //от сензора

// променливи за данни, използвани от програмата

int sensorValue = 0;  // данни от сензора
float analog = 0;  // аналогови стойности
float inches = 0;  // еквивалент в инчове
float distance = 0; // разстояние в сантиметри

void setup() { // инициализации

Serial.begin(9600); // стартира серийна комуникация
}

void loop() { // програмен цикъл

sensorValue = analogRead(analogInPin);  //прочита данните от сензора

analog = sensorValue*0.005;// превръща данните отново в аналогови
inches = analog/0.0098;// превръща аналоговите стойноси в инчове
distance = inches*2.56;// обръща инчовете в сантиметри

Serial.print("\ndistance = " ); //връща в Serial Monitor-а                       
Serial.print(distance);           //разстоянието в сантиметри
Serial.print("sm."); 

delay(10);  //изчаква 10 mS до започване на ново измерване

Share