hall sensors

Hoi!

Ik wil graag een systeem bouwen met behulp van de arduino microcontroller waarmee ik een 12 hall sensors uit kan lezen.
Het maakt niet heel veel uit wat voor soort hall sensor het is, linear, bipolair, of monopolair als het maar geen latch sensor is.

Deze 12 hall sensors registreren of ik een bepaalde knop wel of niet indruk, het indrukken van de knop is contactloos.

Mijn idee was om een i2c bus te gebruiken om alle sensors uit te lezen met de arduino. Het is niet mogelijk om 12 output draadjes te laten lopen wegens ruimtegebrek. Voordeel van een i2c interface is dat je maar 2 draadjes hoeft laten lopen tussen alle sensors. Probleem is dat ik deze sensor nergens kan vinden.

Ik heb wel een sensor gevonden met i2c ondersteuning: http://www.austriamicrosystems.com/Linear-Hall-Sensor/AS5510. Maar het probleem met deze is dat je maar maximaal 2 sensors kan gebruiken.

Is het misschien mogelijk om een losse sensor op een "i2c omzetter" te zetten? En hoe kom ik aan de hardware hiervoor?

Je kunt ook een gewone binaire hall sensor nemen (een schakelaar, dus) en deze uitlezen met PISO schuifregisters. Als je bijvoorbeeld 2 keer de 74HC165 achter elkaar hangt, zou je tot 16 sensoren in kunnen lezen met 3 lijnen (clk, data, latch). Deze data inklokken met arduino is kinderspel.

Ik weet niet of je nog plek hebt voor 2 schuifregisters, maar als je dat wel hebt, kun je kiezen voor algemene/gangbare/goedkope hall sensoren.

Dank voor je snelle antwoord!

Dit is denk ik wel waar naar ik opzoek was.
Als ik het goed begrijp hang je dus je uitgangen van de 8 sensors aan al je Dx ingangen. Je geeft het shift register een clear signaal, en vervolgens bij iedere omhooggaande flank van de klok schuift hij de data door?

Heb je misschien ook een voorbeeld van een binaire hall sensor?

Onder "binaire" hall sensoren versta ik sensoren waarvan de uitgang maar 2 waardes kan aannemen: wel magneetveld of niet magneetveld.

PISO schuifregisters zijn "Parallel In, Serial Out" schuifregisters. Dat wil dus zeggen dat je de informatie parallel IN het schuifregister doet laden en vervolgens serieel weer eruit kunt klokken in je microcontroller. Dat inladen gebeurt met de latch, uitklokken van data gebeurt dan met de clk/data aansluitingen.

Een voorbeeld van een geschikte hall sensor is bijvoorbeeld de US1881. Deze sensor schakelt zijn uitgang hoog als het magneetveld boven een bepaalde maximale waarde komt. Vervolgens gaat hij pas weer laag als het magneetveld beneden de minimale waarde komt.

De 74HC165 kun je "daisy chainen" (achter elkaar knopen). Daardoor kun je 2 schuifregisters achter elkaar zetten en de data van beide registers met slechts 3 lijnen uitlezen, zodat je alle 12 sensoren uit kunt lezen (en eventueel nog 4 erbij).

Ik hoop dat je nu genoeg info hebt. :)

Ik zou een MCP23016 16bits i/o expander nemen, die is I2C en kan een interrupt geven als een van de ingangen van status veranderd.

De eerder genoemde shift registers zou je continu moeten pollen.

It's the rule that you live by and die for It's the one thing you can't deny Even though you don't know what the price is. It is justified.