Detector de presencia con tono

Hola a todos, estoy empezando ahora con el tema de arduino y la pregunta es como se podría hacer un detector de presencia, que cuando detecte la presencia de una persona, aparte de encender un led, también emita, por ejemplo dos tonos parecido a un timbre con un zumbador o un altavoz, es básicamente cuando entramos a una tienda, suena como tonos para avisar al vendedor de que ha entrado un cliente. Gracias

Saludos
Usa la libreria tone

Una un sensor PIR para detectar presencia o bien una barrera infrarroja o doble barrera.
Porque doble? Porque si usas dos barreras podrás saber si alguien entra o sale del sitio bajo control.

BUeno ya que solo quieres indicar que alguien entra o sale, puedes usar el PIR solo pero tambien emitirá el mensaje cuando la gente sale.

Con la barrera doble tienes un haz 1 y un 2. Atravezar 1 y luego 2 es entrar y hacerlo a la inversa es salir.
Sabras entonces cuanta gente entra y cosas asi.

si, una cosa voy a mencionar el material un arduino uno, sensor PIR, leds con sus resistencias y un zumbador, la idea es construir ese detector de presencia de tal manera que se pueda cambiar de lugar, iria alimentado con pilas o con una fuente de alimentacion de 9v, yo me defiendo muy bien con la electronica, pero estoy empezando con esto de arduino, es nuevo para mi, he escrito sketch pero copiando para ir probando hasta que me pueda aprender bien los codigos pude ver como funciona un sketch para emitir tonos en un zumbador y tambien como funciona el sensor PIR, para armar el codigo aqui es donde me pierdo, para hacer sonar un tono determinado cuando el PIR detecte la entrada o salida de un cliente.

Coloca tu código y explica bien donde conectas cada cosa.
Y lo iremos corrigiendo.
Igualmente sabes que lo puedes hacer con un PIR y un 555 y un buzzer no?

Hola de nuevo, aun estoy muy verde con el codigo, yo hice funcionar un PIR copiando y pegando un codigo publicado de ejemplo de una pagina web, tendria que buscarlo y de un libro online el que emite tonos un zumbador, se que de un zumbador no voy a sacar tonos con buen sonido, pero para este proyecto es mas que suficiente, yo buscaria los dos codigos y lo muestro aqui, para que puedan ayudarme a fusionarlo los dos en uno y asi el zumador emita un sonido o varios tonos cuando dicho PIR detecte que entra o salga una persona, y de paso explicar como funciona el codigo para aprender.
Ahora estoy planeando hacer un cursillo de arduino para programar y aprender mas de ello, este mensaje lo mando desde el trabajo, en otro post dire donde conetaria el sensor y demas componentes a la placa. Gracias

Saludos…

A mi se me ocurre que implementes al final otra otra función, esta…

void playTone(long duration, int freq) {
duration *= 1000;
int period = (1.0 / freq) * 1000000;
long elapsed_time = 0;
while (elapsed_time < duration) {
digitalWrite(pinSpeaker,HIGH);
delayMicroseconds(period / 2);
digitalWrite(pinSpeaker, LOW);
delayMicroseconds(period / 2);
elapsed_time += (period);
}
}

Luego, en la condición “if” cuando el sensor está en HIGH, a la vez que enciendes el led, me imagino que será algo así o parecido…

digitalWrite(ledPin, HIGH);

Pongas también

playTone(1000, 500);

Donde el primer número son los milisegundos que dura el pitido y el segundo la frecuencia.

Ojo… la variable a la que le asignas en pin del buzzer deberás llamarla

int pinSpeaker = 10;

en este caso le asigné el pin 10. y luego en el void setup

pinMode(pinSpeaker, OUTPUT);

Saludos

Bueno mira, creo que ya te lo dijo Max_saeta pero te lo repito.
Olvida por un momento el PIR porque básicamente cuando detecte algo, que se mueve pondra un contacto cerrado o abierto, según las opciones disponibles asi que miralo como un switch o pulsador.

Entonces, para trabajar solo usa algo asi Tone Tutorial

Ahi tienes un ejemplo para 3 salidas y 3 tones pero solo con esto funciona

const byte PinSwitch 2;  // conecto el PIR al pin 2
const byte LedPin     3;  // Pin del LED
byte status = 0;
byte statusAnt = 0;


void setup() {
   noTone(8); 
   pinMode(PinSwitch, INPUT);  // defino como entrada y configuro Resistencia como corresponda
   pinMode(LedPin, OUTPUT);
}

void loop() {
  status = digitalRead(PinSwitch);

  if (status == HIGH && statusAnt = LOW) {
  // play a note on pin 8 for 500 ms:
     digitalWrite(LedPin, HIGH); // Enciendo el led
     tone(8, 1000, 500); // sonido de 1000 hz durante 500mseg

  } else {
     digitalWrite(LedPin, LOW); // Apago el led
     noTone(8);            // apago sonido si no hay movimiento
  }
 statusAnt = status;
}

MIra a ver si por ahi funciona

Gracias por vuestras repuestas, asi de paso aprendo mas, pruebo y os cuento