diff --git a/libs/core/input.ts b/libs/core/input.ts index 001f07a3..8f4d5529 100644 --- a/libs/core/input.ts +++ b/libs/core/input.ts @@ -77,4 +77,27 @@ namespace input { export function runningTimeMicros() { return control.micros(); } + + /** + * gets the level of loudness in 0-100% + */ + //% blockId="loudness" + //% block="Loudness" + + export function soundLevel(): number { + let value = 0 + let max = 0 + let min = 1023 + for (let index = 0; index < 32; index++) { + value = pins.analogReadPin(AnalogPin.MIC) + if (value > max) { + max = value + } else if (value < min) { + min = value + } + } + value = (max - min) * 977 / 10000 + return value + } + }