+
+ +

# Usage

+
from m5stack import *
+import machine, _thread
+
+mic_adc = 0
+buffer = []
+def microphone_enter():
+        print('microphone_enter')
+        global mic_adc, buffer
+        try:
+                mic_adc = machine.ADC(34)
+                mic_adc.atten(mic_adc.ATTN_11DB)
+        dac = machine.DAC(machine.Pin(25))
+        dac.write(0)
+        except:
+                pass
+        buffer = []
+        for i in range(0, 55):
+                buffer.append(0)
+
+
+def microphone_loop():
+        global mic_adc, buffer
+        val = 0
+        for i in range(0, 32):
+                raw = (mic_adc.readraw() - 1845) // 10
+        if raw > 20:
+                raw = 20
+        elif raw < -20:
+                raw = -20
+        val += raw
+val = val // 32
+        buffer.pop()
+        buffer.insert(0, val)
+        for i in range(1, 50):
+        lcd.line(i*2+44, 120+buffer[i+1], i*2+44+2, 120+buffer[i+2], lcd.WHITE)
+        lcd.line(i*2+44, 120+buffer[i],   i*2+44+2, 120+buffer[i+1], lcd.BLACK)
+
+microphone_enter()
+
+while 1:
+        microphone_loop()
+
+
+ + +
+ +