#define echoPin 12 // Echo Pin
#define trigPin 11 // Trigger Pin
#define LEDPin 13 // Onboard LED
char rec;
int maximumRange = 300; // максимальна відстань
int minimumRange = 0; // мінімальна відстань
int sensorPin = A4; // аналоговий вхід фото-давача
int sensorValue = 0; // значення сигналу від фото-давача
int norm=0; // нормоване значення сигналу з фото-давача
float duration, distance; // тривалість,потрібна для розрахунку відстані
void setup() {
Serial.begin (9600);
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
pinMode(LEDPin, OUTPUT); // Use LED indicator (if required)
}
void loop() {
/* The following trigPin/echoPin cycle is used to determine the distance of the nearest object by bouncing soundwaves off of it. */
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW); //надіслали імпульс
duration = pulseIn(echoPin, HIGH);
//чекаємо відлуння й записуємо час у змінну
distance = duration/58.2;
if (distance >= maximumRange || distance<= minimumRange){ //якщо значення помилкове
Serial.println("error");
Serial.print("\n\r");
digitalWrite(LEDPin, HIGH);
delay(50);
}
else {
Serial.print("Distance: ");
Serial.println(distance);
Serial.print("\n\r");
digitalWrite(LEDPin, LOW);
delay(250);
}
delay(150);
byte l[255];
byte count=0;
int i;
if (Serial.available()>0){
while(Serial.available()>0){
digitalWrite(LEDPin, HIGH);
l[count] = Serial.read();
count++;}
for(i=0;i<count;i++){
Serial.write(l[i]);};
Serial.println();
Serial.print("\n\r");
delay(500);}
sensorValue = analogRead(sensorPin);
// зчитуємо значення з давача
norm=map(sensorValue, 0, 1023, 0, 100);
// нормуємо сигнал в межах від 0 до 100
Serial.print("Light: ");
Serial.println(norm); // виводимо нормоване значення сигналу в порт
delay(500); // затримка 0,5 с
}