// Программа для исследования инфракрасного датчика расстояния GP2Y0A41 (по методичке)
int distance; // Переменная для расстояния
const int ledPin = 13; // Пин для светодиода (доп. задание)
void setup() {
Serial.begin(9600); // Запуск монитора порта
pinMode(ledPin, OUTPUT);
}
void loop() {
// 3. Чтение значения с аналогового вывода A0 и перевод в вольты
float volts = analogRead(A0) * 0.0048828125; // 5 / 1024 (шаг АЦП)
// 4. Перевод напряжения в расстояние: distance = 13 * volts^(-1)
distance = (int)(13 * pow(volts, -1));
// 5. Вывод текста в монитор порта
Serial.print("Расстояние до объекта (ИК-датчик): ");
// 6. Проверка выхода за диапазон измерения
if (distance <= 30) {
Serial.print(distance);
} else {
Serial.print("> 30");
}
Serial.println(" см");
// Дополнительное задание: светодиод загорается при приближении объекта ближе чем на 15 см
if (distance < 15) {
digitalWrite(ledPin, HIGH);
} else {
digitalWrite(ledPin, LOW);
}
// 7. Пауза между измерениями (1000 мс)
delay(1000);
}