It appears there is a central magnet to hold the knob in place an several hall-effect sensors under the knob to detect tipping and rotation. If you can buy a replacement knob and measure the pattern of magnetic fields that should get you closer to an understanding of how many hall-effect sensors are under that cooktop.
So i found this schematic of the induction plate, it looks like there are 5 hall sensors on the interface (part 0107).
Does the button also needs 5 magnets (apart from the center magnet) or is 1 enough?
This control looks like a form over function gimmick to me but it possibly uses 5 hall sensors to detect the tipping action and rotation.
Another way to detect rotation is using something like an AS5030.
WWouter:
Does the button also needs 5 magnets (apart from the center magnet) or is 1 enough?
I expect the button will either need more magnets or a ferrous metal structure to concentrate the magnetic field into multiple poles. If you had 5 magnetic poles the magnetic field would fade out on all 5 sensors at the same time and then fade in again. You would not be able to tell which direction the disk was rotating. With a number of legs that is not a multiple of 5 you should be able to detect direction of rotation. I would try something with 6 legs.
I actually expect it uses a single magnet or 2, if it has 5 hall effect sensors (1 in the middle and then the 4 cardinal directions) and acting like a rotary encoder.
Thought experiment wise, I'd expect that the hall-effect sensors are sensitive enough to detect if the magnet is in between two of them, then as you rotate, rather than one sensor and multiple slots, instead you have multiple sensors and 1 slot, but since you know where the sensors are, it will work for absolute control. I could see it working fairly well as an expensive absolute encoder.
So if I make a setup in which I have 5 hall sensors connected as input and a round disc with 2 or 6 magnets i could make this work? What should te code look like? Do hall sensors only give a high or low output or is it possible to accurately follow the magnets?
WWouter:
So if I make a setup in which I have 5 hall sensors connected as input and a round disc with 2 or 6 magnets i could make this work? What should te code look like? Do hall sensors only give a high or low output or is it possible to accurately follow the magnets?
You can find hall sensors that will do just about everything. Some are analog like you describe, some latch, some only detect N or S, some both, some will tell you if it's seeing N or S....
If I were you I'd put the hall sensors in a row and then slide the magnet up and down the row. An Allegro A1220 switches on (and stays on) when a S pole is present and only switches off when it sees a N pole. So your slider could have N-S-N magnets, slide it to the position you want, then you could lift it off to keep it out of the way.
I just can't seem to find which pin is ground, 5v and the output pin. I've tried some tutorials with other
sensors but they don't seem to work. Can anyone tell me how to hook up these bastards?
Pin 1 to 5V, pin 2 to GND, Connect a 1K to 10K resistor between Pin 1 and Pin 3. Connect Pin 3 to a digital pin on the Arduino. When the sensor "switches" the output pin sinks current and the Arduino will read it as low.
Pins are numbered left to right when the curved face is towards you.
Alright, I've connected 3 sensors in a triangle with a magnet in the middle to hold the button.
the button has one magnet in the middle and on which rotates over the sensors.
i've got different sensors than last time, these ones give a signal when a magnet is in it's vicinity and changes back to
low when the magnet is removed.
i've got a led-dot-matrix connected as wel.
now for the question.
I want the dot matrix to show 1.2.3...9 when i turn the button clockwise, and 9.8.7...1 when turning counterclockwise.
I can't figure out how I can detect which sensor is active and compare it with the last active sensor so the counter can either increase or decrease.
Thanks! your example helped a lot and did the trick.
but I also want my button to be a pushbutton, like the example button has the tilt function. Is there a simple way to do this, or
do I need different hall sensors which can detect sideways magnetic field and a head-on magnetic field?
any ideas?
WWouter:
but I also want my button to be a pushbutton, like the example button has the tilt function. Is there a simple way to do this, or
do I need different hall sensors which can detect sideways magnetic field and a head-on magnetic field?
any ideas?
You have a bunch of numbers to work with. Absolute magnetic flux. Change in flux. You should see what happens to the numbers when you tilt the disk. Then write code to detect that in your data.