Ви не увійшли.
Підключення: "плюси" обох діодів через резистори 200 Ом до плюсу живлення (5 чи 3.3В); "-" білого до піна 4, "-" жовтого до піна 3; вихід сенсора до піна 8; ну а напругу у разі спрацьовування після 1хв знімайте з піна 5. Тестуйте.
/* Connections (UNO):
* HC-SR501 sensor output --------> to pin 8
* Voltage output (active_HIGH) --> to pin 5
* White_LED cathode -------------> to pin 4
* Yellow_LED cathode ------------> to pin 3
*/
void setup() {
MCUCR |= (1 << PUD); // Disable all pull-ups
DDRD |= _BV(4) | _BV(5); // White LED | Output signal
initTIM1();
initTIM2(); // LED flashes
sei();
}
void loop() {}
void initTIM1(void) { // Time interval
TCCR1A = 0x00;
TCCR1B = 0xCD;
TIMSK1 = 0x22;
OCR1A = 15625; // 1 sec at 16MHz
TCNT1 = OCR1B = 0;
}
void initTIM2(void) { // Flash LED
TCCR2A = 0x03;
TCCR2B = 0x04;
TIMSK2 = 0;
}
ISR(TIMER1_COMPA_vect) {
if (++OCR1B == 5) {
DDRD &= ~_BV(4);
DDRD |= _BV(3);
TIMSK2 = 0x06;
}
if (OCR1B == 65) {
TIMSK2 = 0;
DDRD &= ~_BV(3);
}
}
ISR(TIMER1_CAPT_vect) {
(OCR1B > 64) ? (PORTD |= _BV(5)) : (OCR1B = 0);
TIMSK2 = 0;
PORTD &= ~_BV(3);
}
ISR(TIMER2_COMPA_vect) {
--OCR2B;
PORTD |= _BV(3);
}
ISR(TIMER2_COMPB_vect) {
PORTD &= ~_BV(3);
}
Потрібен Скетч для Arduino Uno з датчиком руху HC-SR501:
Функціональність:
При включенні Arduino Uno:
Білий світлодіод горить 5 секунд.
Жовтий світлодіод не блимає.
Після 5 секунд:
Жовтий світлодіод починає блимати на 1 хвилину.
Якщо датчик руху HC-SR501 виявляє рух протягом 1 хвилини:
Жовтий світлодіод загоряється постійним світлом на 5 секунд.
Відлік часу блимання жовтого світлодіода скидається.
Якщо протягом 1 хвилини датчик руху не виявляє руху:
Жовтий світлодіод перестає блимати.
Якщо після 1 хвилини датчик руху виявляє рух:
На пін 8 подається напруга.
Потрібно для ЗСУ для ефективного знищення підарів
Слава Україні