Схема подключения датчика движения HC-SR501 со светодиодом. Проверить работу датчика очень просто, собрав на макетной плате простую схему. В качестве индикатора здесь используется обычный светодиод, с токоограничивающим резистором порядка 220 Ом, как показано на рисунке.
Схема подключения датчика движения/присутствия HC-SR501 к ATmega16
Часто необходимо подключить данный датчик (HC-SR501) к какому-нибудь микроконтроллеру и сделать ту или иную операцию. К примеру, при срабатывании датчика, микроконтроллер, в моём случае ATmega16, отправляет через USART/UART радио модули TB387 сообщение.

К сожалению, в библиотеке Протеуса нет ни HC-SR501, ни радио модулей TB387, данные элементы просто нарисованы. Для эмуляции датчика движения взял кнопку, а для приёма данных — терминал. При нажатии кнопки контроллер перехватывает сигнал и, через Tx, отправляет текстовое сообщение.

Результат можно увидеть на картинке ниже.
Код программы: файл main.c
#define F_CPU 11059200UL // Clock Speed
#define BAUD 9600
#define MYUBRR F_CPU/16/BAUD-1
#include <avr/io.h>
#include <avr/interrupt.h>
#include "uart.h"
ISR(INT0_vect) {
// отправляем сообщение
USARTTransmitStringLn("HC-SR501");
}
void InitINT0() {
//настраиваем вывод на вход
DDRD &= ~(1<<PIND2);
//разрешаем внешнее прерывание на int0
GICR = 1<<INT0;
//настраиваем условие прерывания. По нарастающему фронту
MCUCR = 1<<ISC01 | 1<<ISC00;
}
int main(void) {
cli();
USARTInit(MYUBRR);
InitINT0();
sei();
while (1) {
asm("nop");
}
}
Результат
Схема подключения датчика движения HC-SR501 к Arduino
Самым простым примером работы с датчиком движения HC-SR501 является следующий скетч. При обнаружении движения в порт пишется состояние датчика. При срабатывании датчика пишет Движение!, в противном случае — Нет движения.

Скетч в Arduino
int pirPin = 8;
int val;
void setup() {
Serial.begin(9600);
}
void loop() {
// Читаем состояние PIR
val = digitalRead(pirPin);
// Если обнаружили движение
if (val == LOW) {
// равно 0
Serial.println("Нет движения");
} else {
// равно 1
Serial.println("Движение!");
}
delay(1000);
}
Схема подключения датчика движения HC-SR501 к реле SRD-05VDC-SL-C (220 В)
Многие со мной согласятся, что данный датчик нужен, в большинстве случаев, для включения и выключения обычной лампочки в наших тёмных подъездах.
Для этого нам понадобится: сам датчик движения HC-SR501, выпрямитель на 4,5-20 вольт, реле типа SRD-05VDC-SL-C и лампочка на 220 В. Если собираетесь подключить к аккумуляторной батарее на 12 В, вам не нужен будет выпрямитель. Схему подключения можете увидеть на картинке выше.
Скачать
Проекты в ISIS Professional HC-SR501 Proteus






Можно файл протеуса попросить у вас?
Прикрепил архив HC-SR501 Proteus
Как подключить этот датчик (или датчики) движения к GPIO (Banana Pi) ???
Для начала установите BPI-WiringPi/WiringPi на свою плату и попробуйте этот пример кода
#include <wiringPi.h> #include <stdio.h> #include <stdlib.h> int main (void) { int pinState = 0; int pin = 0; wiringPiSetup(); pinMode(pin, INPUT); for (;;) { pinState = digitalRead(pin); if(pinState) { printf("обнаружено движение"); } delay(50); } return 0; }delay(50);можете менять на другое время задержкиЕсть у этого датчика серьезный косяк , по сравнению с хорошими датчиками , он фасеточный , и фасетки крупные . Что бы он постоянно поддерживал освещение — нужно постоянное движение-перемещение между фасетками , чем крупнее фасетки , тем интенсивнее должны быть перемещения , сократить периодичность необходимых для непрерывной работы перемещений можно увеличением времени таймера ,несмотря на наличие контроллера , алгоритм , да и принцип работы в целом ущербный .(он реагирует на перепад , а статичное тепло он видит , но не реагирует ,это вызывает серьезные ограничения в количестве мест его использования , оно ограничивается* проходными*)
Здравствуйте! Тогда альтернатива — уличные датчики движения, которые идут в комплекте с фонарями? Заранее благодарен.