Buenas tardes,
Soy novato y tengo un pequeño problema con el siguiente código que posteo a continuación. El caso es que cuando se me ejecuta la función BEEP el contador deja de contar (valga la redundancia) y no vuelve a seguir contando hasta que termina esa función. Lo que quiero es que continúe contando a pesar de que esté sonando el buzzer. He probado distintas combinaciones y no doy con el resultado exacto.
Agradezco una mano.
Es un andruino UNO.
Soy novato y tengo un pequeño problema con el siguiente código que posteo a continuación. El caso es que cuando se me ejecuta la función BEEP el contador deja de contar (valga la redundancia) y no vuelve a seguir contando hasta que termina esa función. Lo que quiero es que continúe contando a pesar de que esté sonando el buzzer. He probado distintas combinaciones y no doy con el resultado exacto.
Agradezco una mano.
Es un andruino UNO.
Código:
#include <LiquidCrystal.h>
LiquidCrystal lcd(7,6,5,4,3,2);
int contador = 0;
int pinsensor = 8;
int pinbuzzer = 9;
int lectura;
void setup()
{
pinMode(pinsensor, INPUT);
pinMode(pinbuzzer, OUTPUT);
lcd.begin(16,2);
lcd.setCursor(4,0);
lcd.print("SACHETS");
lcd.setCursor(0,1);
lcd.print("Contador : 0");
}
void loop()
{
lectura = digitalRead(pinsensor);
if (lectura != 1)
{
contador = contador + 1;
lcd.setCursor(11,1);
lcd.print(" ");
lcd.setCursor(11,1);
lcd.print(contador);
if (contador == 10)
{
beep(500);
}
while(digitalRead(pinsensor) != 1)
{}
}
}
void beep(unsigned char delayms){
for (int i=0; i<20; i++){
analogWrite(9, 254);
delay(delayms);
analogWrite(9, LOW);
delay(delayms);
}
analogWrite(9, 254);
}