PIEZO_LED_FADE

Нет ответов
greydev
Offline
Зарегистрирован: 09.06.2016

Есть проект с подсветкой барабанов. На данный момент нужно, чтобы при считывании данных с пьезо-датчика светодиод плавно загорался и плавно затухал до получения следующего значения. 

const int piezoPin = A0; 
const int ledPin = 9;
const int threshold = 200;
 
int piezoValue = 0; 
float brightness = 0;
float fadeAmount = 0.5;

void setup()
{
  pinMode(ledPin, OUTPUT);
  pinMode(piezoPin, INPUT);
  Serial.begin(9600);
}

void loop()
{
  analogWrite(ledPin, brightness); 
  piezoValue = analogRead(piezoPin);

if (piezoValue >= threshold) {
    brightness = 255;
    Serial.println (piezoValue);
  }
  if (brightness != 0 && brightness <= 255) {
    brightness -= fadeAmount;
    delayMicroseconds(3000);
}
}

Проблема в том, что при постукивании пьезо часто выдает не одно, а несколько значений подряд. Как этого избежать?