forked from Arduino/metronom
Piotr observed the freeze correlates with digit '8' on the last (units) tube position, regardless of which sensor is shown (25.08 C, 48 %, 1018 hPa). '8' lights the most 14-seg segments of any digit, and the units digit changes most often, so the last position is both peak-current and the most-written-to. At brightness 15 (max) that peak current likely dips the supply / glitches the I2C bus, which the in-ISR delay()/endTransmission() then turns into a permanent hang. This commit drops brightness 15 -> 4 as a cheap, reversible probe. If freezes stop or get much rarer, the root cause is current/brownout (fix: decoupling cap on display VCC, or separate supply, plus an I2C bus-recovery/timeout) rather than purely the ISR timing. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Arduino based device acting as:
- metronome, for exercises that require timing,
- countdown timer, for rest between exercises,
- thermometer / hygrometer - when not uses for exercises.
Part list:
- Arduino MKR 1010 (ABX00023)
- Arduino MKR Connector Carrier, Grove compatible (ASX00007)
- BME280 sensor (Seeed Studio SEE-11355)
- quad, alphanumeric (14-segment), HT16K33 based display (SeedStudio SEE-14733)
- push button with backlight (Seeed Studio SEE-13660)
- passive buzzer (Seeed Studio SEE-17268)
- I2C 6 port hub (Seeed Studio SEE-15856)
- cables - as required All modules based on Grove connections and cables.
All modules are connected to Arduino through Connector Carrier:
- buzzer - port D0,
- button - port D5,
- I2C hub - port TWI,
- sensor and display - to hub (any port)
Description
Languages
C++
100%