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 до започване на ново измерване }