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

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

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

Свързване

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

Код


/*

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

* Tihomir Trifonov (07-2011)
* с подкрепата на Robotev.com

*/

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

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