Hola me llamo Joseluis y quizá alguien pueda ayudarme a resolver un problema que tengo con un proyecto, ya que mis conocimientos de arduino y de electrónica son empíricos, explico a continuación. Estoy desarrollando una lampara que prende y paga por contacto, estoy usando la librería capsense, pero ademas de encender y apagar deseo activar un buzzer es decir que antes de apagar ejecute una melodía y antes de encender haga lo mismo. He intentado hacerlo usando las librerías tone pero siempre queda activado dentro de la rutina void loop. No se como hacer que una instrucción se ejecute y salga de la rutina, me podría alguien explicar como hacer, o sugerir quien me pueda colaborar. Pego el codigo para mejor expicacion.
#include <CapSense.h>
const int umbral = 350;
int val =0;
int old_val = 0;
int state = 0;
int Touch = 0;
CapSense cs_4_2 = CapSense(8,9);
void setup()
{
digitalWrite(13, LOW);
cs_4_2.set_CS_AutocaL_Millis(0xFFFFFFFF);
Serial.begin(9600);
}
void loop()
{
val = Touch;
long total1 = cs_4_2.capSense(100);
//Serial.println(total1); // para el monitoreo
//Serial.println(" ");
//delay(500);
if (total1 > umbral){
Touch = 1;
} else {
Touch = 0;
}
if ((val == HIGH)&& (old_val==LOW)){
state = 1-state;
delay (100); //delay para el debouncing
}
old_val = val;
if (state == 1) {
//********************************************************************
//deseo que aquí ejecute un tono y salga de la rutina para que
//no se quede activado
//********************************************************************
digitalWrite(13, HIGH);
//********************************************************************
//deseo que aquí ejecute un tono y salga de la rutina para que
//no se quede activado
//********************************************************************
} else {
digitalWrite(13, LOW);
}
}