Comportamento anomalo (almeno per me) di un PIR

Ciao a tutti.
Ho un problema con un sensore PIR, probabilmente la causa è talmente banale che non riesco a venirne a capo.
Lo schema è quello allegato. Il sensore PIR, che qui ho diviso in 2 parti in quanto non esiste questo componente tra quelli selezionabili, ha un'alimentazione da 12 volts, la massa poi va al relay che è normalmente chiuso. Al passaggio di una persona il relay si apre ed il LED si accende.
Lo sketch di Arduino è quello scaricato dal sito (Arduino Playground - PIRsense) e comunque funziona (da seriale si vede la segnalazione del passaggio).
Il problema è il comportamento erratico del sensore:
la tensione tra uscita relay ed alimentazione è normalmente 12V (e fin qui va bene). Quando passa una persona scende a 5 (e non a 0) ed il LED non si illumina.
Se inserisco il tester tra +12 e PIN 3, la tensione scende a 0 ed il LED si accende. La cosa buffa è che lo stesso circuito (o almeno così mi sembra), provato in un ambiente di test, funziona perfettamente. Immagino quindi sia un problema di collegamenti anche se mi sembra di averli ripetuti perfettamente. Ho fatto decine di prove (aggiungendo una resistenza tra relay e PIN3, alimentando i due apparecchi con diversi trasformatori con o senza massa comune, cambiando il cavo, cambiando Arduino, invertendo la logica, cioè relay normalmente aperto) ma senza esito.
Se collego l'uscita del relay al tester invece che ad Arduino, la tensione cambia correttamente (+12 senza passaggio e 0 con passaggio)
Il PIR è questo: FuturaNet: Il portale per makers ed elettronica by Futura Group
Molto probabilmente la mia domanda nasce dalle mie scarse (è un eufemismo) conoscenze di elettronica :smiley:

Grazie a tutti
Aldo

P.S. Il LED è montato correttamente........

Schema.fzz (25.3 KB)

Forse il tuo sensore è a collettore aperto e vuole una resistenza da 10Kohm tra uscita e positivo ?
Altri sensori invece di una resistenza di pullup ne vogliono una di pulldown e quindi devi collegare una resistenza sempre da 10K tra uscita sensore e negativo .

se dovessi necessitare di una pullup puoi attivarla da arduino.

E' molto comodo e ti risparmi un componente.

E' esatto puoi settare il livello logico dell'ingresso utilizzato ad HIGH e questo abilita la resistenza di pullup interna da 20K, ricordati che lo stato logico della porta viene portato ad 1.

Telemaco, ho messo una resistenza da 10 Kohm tra +12 e positivo, come da te suggerito, ed il PIR funziona regolarmente.

GS88, ho provato ad attivare la resistenza di pullup da Arduino - digitalWrite(pirPin, HIGH);- ma non funziona in quanto il LED rimane sempre acceso.

Grazie a tutti e due per la cortese risposta.

Ciao

Aldo

La resistenza interna di pull-up si attiva dichiarando prima il pin come input e poi scrivendo lo stato High.

pinMode(pin, INPUT);
digitalWrite(pin, HIGH);

Per disattivarla, bisogna scriverci lo stato Low.

Grazie Leo,

ora funziona anche senza resistenza "fisica".

Ciao
Aldo