Add project.ino
This commit is contained in:
parent
2317a0feb6
commit
5bba296dae
67
project.ino
Normal file
67
project.ino
Normal file
@ -0,0 +1,67 @@
|
||||
// ------------------- Пины датчиков -------------------
|
||||
const int trig1 = 4;
|
||||
const int echo1 = 3;
|
||||
|
||||
const int trig2 = 5;
|
||||
const int echo2 = 6;
|
||||
|
||||
// ------------------- Пин MOSFET -------------------
|
||||
const int ledPin = 2; // твоя лента сидит на D2
|
||||
|
||||
// ------------------- Настройки -------------------
|
||||
const int thresholdDistance = 40; // см: меньше = объект рядом
|
||||
const unsigned long lightTime = 1000; // мс: сколько светить после срабатывания
|
||||
|
||||
bool triggered = false;
|
||||
unsigned long triggerTime = 0;
|
||||
|
||||
// -------------------------------------------------
|
||||
long readDistance(int trigPin, int echoPin) {
|
||||
digitalWrite(trigPin, LOW);
|
||||
delayMicroseconds(2);
|
||||
|
||||
digitalWrite(trigPin, HIGH);
|
||||
delayMicroseconds(10);
|
||||
digitalWrite(trigPin, LOW);
|
||||
|
||||
long duration = pulseIn(echoPin, HIGH, 30000);
|
||||
if (duration == 0) return 999; // нет эха -> далеко
|
||||
|
||||
long distance = duration * 0.034 / 2;
|
||||
return distance;
|
||||
}
|
||||
|
||||
// -------------------------------------------------
|
||||
void setup() {
|
||||
pinMode(trig1, OUTPUT);
|
||||
pinMode(echo1, INPUT);
|
||||
|
||||
pinMode(trig2, OUTPUT);
|
||||
pinMode(echo2, INPUT);
|
||||
|
||||
pinMode(ledPin, OUTPUT);
|
||||
digitalWrite(ledPin, LOW);
|
||||
|
||||
Serial.begin(9600);
|
||||
}
|
||||
|
||||
// -------------------------------------------------
|
||||
void loop() {
|
||||
long d1 = readDistance(trig1, echo1);
|
||||
long d2 = readDistance(trig2, echo2);
|
||||
|
||||
bool eventNow = (d1 < thresholdDistance) || (d2 < thresholdDistance);
|
||||
|
||||
if (eventNow && !triggered) {
|
||||
triggered = true;
|
||||
triggerTime = millis();
|
||||
digitalWrite(ledPin, HIGH); // включить ленту
|
||||
}
|
||||
|
||||
if (triggered && millis() - triggerTime >= lightTime) {
|
||||
triggered = false;
|
||||
digitalWrite(ledPin, LOW); // выключить ленту
|
||||
}
|
||||
|
||||
delay(20); // ультразвук иначе не успеет
|
||||
}
|
||||
Loading…
x
Reference in New Issue
Block a user