спасибо за высокую информативность вашего сообщениея.дающее некоторое понимание о вашей компитенции
#include <HCSR04.h>
/*
driver for the HCSR04 ultrasonic sensor, including a buzzer that blips at increasing frequency as the distance decreases
sensor is on D12 and D13
*/
#include <HCSR04.h>
#define NEAR_DISTANCE 1.0 // near point (cm) at which the sensor becomes unreliable
#define FAR_DISTANCE 400.0 // far point (cm) at which the sensor becomes unreliable
#define NEAR_PIP_DELAY 500 // inter-pip period (mS) at NEAR_DISTANCE
#define FAR_PIP_DELAY 2000 // inter-pip period (mS) at FAR_DISTANCE
#define PIP_TIME 50 // pip period (mS)
#define PIEZO_PIN 14
#define TONE_HZ 700
#define LOOP_DELAY 250 // delay in the loop (mS)
#define BUFFSIZE 10 // number of readings used to arrive at a moving average
float buffer[BUFFSIZE];
byte i = 0; // index of the next free element in buffer
float d, av, sum;
UltraSonicDistanceSensor distanceSensor(12, 13); // Initialize sensor useing digital pins 13 and 12
unsigned long last_pip_time;
unsigned long inter_pip_delay;
void setup () {
Serial.begin(9600); // We initialize serial connection so that we could print values from sensor.
for (byte j=0; j<BUFFSIZE; j++)
buffer[j] = 0.0;
last_pip_time = millis();
}
void loop () {
buffer[i] = distanceSensor.measureDistanceCm(); // read the sensor and buffer the result (in cm)
i = (i++)%BUFFSIZE;
// get the average of the readings in the buffer
sum = 0.0;
for (byte j=0; j<BUFFSIZE; j++)
sum += buffer[j];
av = sum/BUFFSIZE;
Serial.println(av);
// work out a new inter-pip delay based on the distance measured
if(av > FAR_DISTANCE)
inter_pip_delay = FAR_PIP_DELAY;
else
if(av < NEAR_DISTANCE)
inter_pip_delay = NEAR_PIP_DELAY;
else
inter_pip_delay = (int)(((((FAR_DISTANCE - NEAR_DISTANCE)*1000)/av)/(FAR_PIP_DELAY - NEAR_PIP_DELAY))*100);
// see if it is time for a pip, based on the current distance
if((millis() - last_pip_time) > (last_pip_time + inter_pip_delay))
{
Serial.print("inter pip delay "); Serial.println((int)inter_pip_delay);
// time for a pip
// sound the pip for (PIP_TIME) mS
tone(PIEZO_PIN, TONE_HZ, PIP_TIME);
last_pip_time = millis();
}
delay(LOOP_DELAY);
}
Не за что, обращайтесь ещё.
Нельзя этого делать. Они потом на голову садятся, что мы и наблюдаем.
/*
driver for the HCSR04 ultrasonic sensor, including a buzzer that blips at increasing frequency as the distance decreases
sensor is on D12 and D13
*/
#include <HCSR04.h>
#define NEAR_DISTANCE 1.0 // near point (cm) at which the sensor becomes unreliable
#define FAR_DISTANCE 400.0 // far point (cm) at which the sensor becomes unreliable
#define NEAR_PIP_DELAY 500 // inter-pip period (mS) at NEAR_DISTANCE
#define FAR_PIP_DELAY 2000 // inter-pip period (mS) at FAR_DISTANCE
#define PIP_TIME 50 // pip period (mS)
#define PIEZO_PIN 14
#define TONE_HZ 700
#define LOOP_DELAY 250 // delay in the loop (mS)
#define BUFFSIZE 10 // number of readings used to arrive at a moving average
float buffer[BUFFSIZE];
byte i = 0; // index of the next free element in buffer
float d, av, sum;
UltraSonicDistanceSensor distanceSensor(12, 13); // Initialize sensor useing digital pins 13 and 12
unsigned long last_pip_time;
unsigned long inter_pip_delay;
void setup () {
Serial.begin(9600); // We initialize serial connection so that we could print values from sensor.
for (byte j=0; j<BUFFSIZE; j++)
buffer[j] = 0.0;
last_pip_time = millis();
}
void loop () {
buffer[i] = distanceSensor.measureDistanceCm(); // read the sensor and buffer the result (in cm)
i = (i++)%BUFFSIZE;
// get the average of the readings in the buffer
sum = 0.0;
for (byte j=0; j<BUFFSIZE; j++)
sum += buffer[j];
av = sum/BUFFSIZE;
Serial.println(av);
// work out a new inter-pip delay based on the distance measured
if(av > FAR_DISTANCE)
inter_pip_delay = FAR_PIP_DELAY;
else
if(av < NEAR_DISTANCE)
inter_pip_delay = NEAR_PIP_DELAY;
else
inter_pip_delay = (int)(((((FAR_DISTANCE - NEAR_DISTANCE)*1000)/av)/(FAR_PIP_DELAY - NEAR_PIP_DELAY))*100);
// see if it is time for a pip, based on the current distance
if((millis() - last_pip_time) > (last_pip_time + inter_pip_delay))
{
Serial.print("inter pip delay "); Serial.println((int)inter_pip_delay);
// time for a pip
// sound the pip for (PIP_TIME) mS
tone(PIEZO_PIN, TONE_HZ, PIP_TIME);
last_pip_time = millis();
}
delay(LOOP_DELAY);
}
Ну пока не добавиться в описание что три апострофа в отдельной строке?
скандал это скрытый секс.Карл Юнг
Да кто его читает-то, то описание? ))
Это для последователей Юнга.
ну какой же скрытый, в СССР пока едешь на работу в автобусе кто-нибудь обязательно показательный сеанс устроит
PS у Литвака с показательными примерами об этом красочно рассказано
Зато остановку свою не проспишь!
добрый знак!с Литвака начинал.Принцип сперматозоида
психологическое айкидо - мы тут с тобой всех не перебьём?
конструктивно!а такая критика шлифует умения
Ну, чё? ТС, вроде, даже код сумел выложить!
Кто-нить ему
выдаст? Или трындеть всю пятницу будем?
так сколько пятниц впустую, может хоть сёдня срастётся )))
одна фраза и виден уверенный навык амортизации
К вопросу из первого поста
#define PIEZO_PIN 14
Пин для зуммера назначается в этой строке