/*β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„
β˜„                                                                            β˜„
β˜„      ☘ DATOS GENERALES:                                                    β˜„
β˜„      NOMBRE:      Uso bΓ‘sico buzzer pasivo.                                β˜„
β˜„      FECHA:       06 de Noviembre de 2024.                                 β˜„
β˜„      VERSIΓ“N:     1.0.                                                     β˜„
β˜„                                                                            β˜„
β˜„      AUTOR:       M. en C. Esli Castellanos BerjΓ‘n.                        β˜„
β˜„      E-MAIL:      [email protected].                                β˜„
β˜„      COMPAÑÍA:    Universidad de Colima - Facultad de TelemΓ‘tica.          β˜„
β˜„                                                                            β˜„
β˜„      uC:          ATMEGA328p.                                              β˜„
β˜„      Nombre placa comercial:      Arduino UNO.                             β˜„
β˜„                                                                            β˜„
β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„
β˜„                                                                            β˜„
β˜„      ☘ DESCRIPCIΓ“N DEL PROGRAMA:                                           β˜„
β˜„      Arquitectura de software que ejemplifica el uso del buffer pasivo.    β˜„
β˜„      Voltaje de operaciΓ³n buzzer pasivo: 5V.                               β˜„
β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„
β˜„                                                                            β˜„
β˜„      ☘ NOTAS:                                                             β˜„
β˜„       Song.h es una compilaciΓ³n de algunas canciones.                      β˜„                      
β˜„                                                                            β˜„
β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„β˜„*/
/*
  Para mandar una frecuencia hacia el buzzer es necesario un pin PWM.
  La funciΓ³n tone(), necesita de tres parΓ‘metros:
    1.- Pin en donde estΓ‘ conectado el buzzer (definido previamente como salida).
    2.- Frecuencia, esta debe estar entre la frecuencia que indica el fabricante (2KHZ, esta puede variar).
    3.- DuraciΓ³n, Especifica cuando durarΓ‘ el tono, si este no es definido sonarΓ‘ siempre hasta encontrar la funciΓ³n noTone();
  La funciΓ³n noTone(), se utiliza para detener un tono el cual no ha sido especificado su tiempo.
*/

#define buzzerP 3   // Colocar en un pin PWM. πŸ“’
#define buzzerA 2   // Colocar en un pin Digital. πŸ“’

void setup ( void ) {
  
  pinMode ( buzzerP, OUTPUT );     
  pinMode ( buzzerA, OUTPUT );   
  Serial.begin ( 115200 );  

}

void loop ( void ) {

  buzzerPasivo ( );
  buzzerActivo ( );
    //my_soundtrack.megalovania ( );
    //my_soundtrack.marcha_imperial ( );
    //my_soundtrack.peaches ( );

  
}

void buzzerActivo ( void ) {

  Serial.println ( "Buzzer Activo: Activado." );
  digitalWrite ( buzzerA, HIGH );
    delay ( 2000 );
  limpiar_consola ( );

  Serial.println ( "Buzzer Activo: Desactivado." );
  digitalWrite ( buzzerA, LOW );
    delay ( 1000 );
 limpiar_consola ( );
}

void buzzerPasivo ( void ) { 

  Serial.println ( "Buzzer Pasivo: Frecuencia 2 KHz." );
  tone ( buzzerP, 2000 );   // Generar un tono de 2000 Hz ( 2 kHz ).
    delay ( 1000 );         // Esperar 1 segundo.
  noTone ( buzzerP );       // Apagar el buzzer. 
    delay ( 500 );          // Esperar medio segundo. 
  limpiar_consola ( );

  Serial.println ( "Buzzer Pasivo: Frecuencia 1.5 KHz." );
  tone ( buzzerP, 1500 );   // Generar un tono de 1500 Hz ( 1.5 kHz ).
    delay ( 1000 );         // Esperar 1 segundo.
  noTone ( buzzerP );       // Apagar el buzzer. 
    delay ( 500 );          // Esperar medio segundo. 
  limpiar_consola ( );

  Serial.println ( "Buzzer Pasivo: Frecuencia 500 Hz." );
  tone ( buzzerP, 500 );    // Generar un tono de 500 Hz (1.5 kHz). 
    delay ( 1000 );         // Esperar 1 segundo. 
  noTone ( buzzerP );       // Apagar el buzzer. 
   delay ( 500 );           // Esperar medio segundo.
  limpiar_consola ( );

  Serial.println ( "Buzzer Pasivo: Frecuencia 250 Hz." );
  tone ( buzzerP, 250 );    // Generar un tono de 500 Hz (1.5 kHz). 
    delay ( 1000 );         // Esperar 1 segundo. 
  noTone ( buzzerP );       // Apagar el buzzer. 
   delay ( 500 );           // Esperar medio segundo. 
  limpiar_consola ( );
  
  }

  void limpiar_consola ( void ) {

  for ( uint8_t i = 0; i < 10; i++ )
    Serial.println();

}
$abcdeabcde151015202530fghijfghij
Buzzer Pasivo
Buzzer Activo