Ктонибудь создавал скетч для преобразования raw данных с этого сенсора в сантиметры? Помогите плиз, надо очень!
В даташите на сенсор есть таблица. Забиваете ее в код, добавляете линейную интерполяцию и пользуетесь.
Код (Text): int IRpin = 1; // analog pin for reading the IR sensor void setup() { Serial.begin(9600); // start the serial port } void loop() { float volts = analogRead(IRpin)*0.0048828125; // value from sensor * (5/1024) - if running 3.3.volts then change 5 to 3.3 float distance = 65*pow(volts, -1.10); // worked out from graph 65 = theretical distance / (1/Volts)S - luckylarry.co.uk Serial.println(distance); // print the distance delay(100); // arbitary wait time. }
Спасибо, не надо, я уже сам давно сделал! Код (Text): int irPin = A2; int currentDist = 0; int distMetr = 0; void setup() { pinMode (irPin, INPUT); Serial.begin(9600); } void loop() { currentDist = analogRead(irPin); //данные с датчика int i = constrain(currentDist, 40, 650); //ограничиваем диапазон выдаваемых значений int z = (6787/(i-3))-4; //невероятная формула (Интернет) int distMetr = constrain(z, 10, 80); //задаем ограничения по реальному диапазону //во избежании ошибочных данных Serial.println(distMetr); //вывод на экран для наглядности delay(500); }