/*
При создании прототипов на базе платы ATtiny85 20 SU не стоит забывать о ее отличиях от Arduino.
P0: ничего особенного
P1: он в ATtiny85 используется для необходимого при прошивке сигнала Reset и при переносе кода его не стоит использовать.
Если этого не удалось избежать, то приготовьтесь пользоваться сложным высоковольтным программатором;
P2: ничего особенного
P3: К PIN 3 подключается резистор 1,5К, что в результате обеспечивает более высокие значения, чем 0. Применяются для подключения порта USB.
P4: PIN 4 применяются для подключения порта USB.
Если планируется использовать пины 3 и 4 для отладки периферии, то перед загрузкой прошивки их требуется отключить
P5: на оригинальных платах “отключен” от RST при помощи программатора. На китайских платах – нет. Поэтому:
- Не использовать как выход
- Не подавать низкий сигнал (МК перезагрузится)
- Можно измерять аналоговый сигнал до VCC/2 (до 2.5V при питании от 5V)
*/
#define LED_PIN 1 // пин, к которорому подключен светодиод
#define TRIG_PIN 2 // TRIGER PIN датчика
#define ECHO_PIN 0 // ECHO PIN датчика
#define DIST_TO_ME 50 // устанавливаем дистанцию срабатывания
#define DELAY_1 5000 // время задержки
uint32_t myTimer = 0; // переменная таймера
long ultrason_11() {
long duration, distance;
digitalWrite(TRIG_PIN,LOW);
delayMicroseconds(2);
digitalWrite(TRIG_PIN, HIGH);
delayMicroseconds(10);
digitalWrite(TRIG_PIN, LOW);
duration = pulseIn(ECHO_PIN, HIGH);
distance = duration/58;
return distance;
}
void setup() {
//Serial.begin(9600);
pinMode(TRIG_PIN, OUTPUT);
pinMode(ECHO_PIN, INPUT);
pinMode(LED_PIN, OUTPUT);
}
void loop() {
//Serial.println(ultrason_11());
if (ultrason_11() <= DIST_TO_ME) {
myTimer = millis(); // сбросить таймер
}
if (millis() - myTimer <= DELAY_1) {
digitalWrite(LED_PIN, HIGH);
} else {
digitalWrite(LED_PIN, LOW);
}
}