nose en que lenguaje trabajarás, pero esto es lo que yo hago cuando quiero emitir un pitido, no recuerdo en que parte del foro lo encontré, pero funciona muy bien, puedes generar varios tipos de pitidos con un piezo solamente, talvez sean sonidos muy toscos pues son solo ondas cuadradas a diferentes frecuencias y duraciones, y bueno puede servir para comenzar, y como te digo lo encontré en el foro hace ya tiempo atrás:
#include<16f648a.h>
#fuses NOWDT,NOPROTECT,PUT,NOLVP,NOMCLR
#use fast_io(a)
#use fast_io(b)
#use delay(internal=4MHZ)
#define frec 200 // prueba tb cambiando el valor de frec
int i,j;
void sound(int vel,int tono)
{
for(i=0;i<=vel;i++) // vel = duracion del tono
{
for(j=0; j<=4; j++)
{
output_high(PIN_B0); // La distancia entre pulso y pulso viene determinada
delay_us(frec*(6-tono)); // por el parámetro tono
output_low(PIN_B0); // el piezo esta conectado en este PIN: B0, de ser necesario con un transistor
delay_us(frec*(6-tono));
}
}
}
void main()
{
set_tris_b(0);
output_b(0);
while(true)
{
sound(120,1);
sound(180,4);
}
}