Werk2025
Een magnetroninterface, uit elkaar gehaald en opnieuw gebouwd
Een bestaande combimagnetron heeft negen bedieningselementen en een display dat van betekenis verandert terwijl u aan de knop draait. Ik heb geanalyseerd waarom hij lastig te bedienen is, een vervangend paneel ontworpen, en dat ontwerp gebouwd als werkende hardware verdeeld over twee microcontrollers.
- Stack
- ArduinoC++I²C
Het apparaat was een echte, een Etna CM444RVS, met negen ingangs- en drie uitgangselementen. Bedienen betekende telkens in de verkeerde modus belanden — niet omdat de functies ingewikkeld zijn, maar omdat niets op het paneel vertelt in welke modus u zit tot het display al veranderd is.
Wat het ontwerp veranderde
Negen bedieningselementen werden vijf knoppen en twee draaiknoppen: aan/uit, magnetron, oven, voorverwarmen, start/pauze, één knop voor de tijd en één voor vermogen of temperatuur. Die tweede knop betekent iets anders per modus — watt in de magnetron, graden in de oven — dus het display zegt op dezelfde regel welke van de twee, in plaats van dat u het moet onthouden.
De tijd loopt ook niet lineair over de knop. De eerste halve slag gaat in stappen van dertig seconden, want daarin wordt het meeste daadwerkelijk verwarmd; voorbij elf minuten springt hij met vijf minuten tegelijk. Vermogen is niet traploos maar vijf echte standen — 100, 300, 450, 700 en 900 watt — en de oventemperatuur klikt vast op stappen van vijf graden, omdat een magnetron die 437 watt aanbiedt een nauwkeurigheid suggereert die hij niet heeft.
Te weinig pinnen
Eerst de in- en uitgangen tellen gaf zeven in en zes uit, en dat is meer dan één bordje comfortabel heeft zodra er een I²C-display aan hangt. De opties waren een grotere microcontroller, multiplexen, schuifregisters of een I/O-expander. Ik heb het werk in plaats daarvan over twee bordjes verdeeld: een tweede Arduino leest één potentiometer uit en meldt de waarde over I²C zodra de eerste erom vraagt, zestien bits als twee bytes. Daarmee werd een pinnentekort een bus, en dat is de versie waar ik iets van heb geleerd.
Onderdelen
- 2 × Arduino Uno — één master die de interface draait, één slave die een potentiometer op afstand uitleest over I²C
- 2 × 10 kΩ potentiometers — één voor de tijd, één voor vermogen of temperatuur
- 5 × drukknoppen — aan/uit, magnetron, oven, voorverwarmen, start/pauze, op interne pull-ups en in software ontdenderd
- 6 × LEDs — modus, voorverwarmen, aftellen, klaar
- 1 × 16×2 LCD via I²C — modus en instelling op de bovenste regel, tijd op de onderste
- 1 × piëzo-luidspreker — een korte klik bij elke druk, een drievoudige piep aan het eind
- 10 × weerstanden — voor de drukknoppen en de LEDs
Dit is een bedieningspaneel, geen apparaat: het telt af, toont de stand en maakt geluid, maar er zit niets in dat iets verwarmt. Het was individueel schoolwerk en het staat hier om dezelfde reden als de cocktailbar — het aardige zat niet in de code of de bedrading op zich, maar in het bepalen wat het ding zou moeten doen voordat het gebouwd werd.