Bij de zweefmagneet gebruik ik een hallsensor om de afstand tot de magneet te meten. Deze sensor meet magnetische veldsterkte en is daarom eveneens gevoelig voor het veld van de elektromagneet, en niet alleen de permanente magneet waarvan de afstand gemeten moet worden. Op zich geeft dat geen probleem in de praktijk, maar het is een leuke aanleiding om eens te kijken of de afstand ook op een niet-magnetische manier gemeten kan worden. Dat is ook handig als het object waar de afstand naar gemeten wordt niet magnetisch is, bijvoorbeeld.
Omdat dit een hele kleine afstand is (een paar centimeter), zijn veel kant-en-klare sensoren niet geschikt, omdat ze bijvoorbeeld meters afstand meten met een resolutie van enkele cm, of tientallen centimeters met enkele mm. De afstandssensor die ik voor de zwevende magneet nodig heb, moet een centimeter of 3 tot 5 kunnen meten, waarbij het eigenlijk niet eens belangrijk is wat die afstand precies is, als kleine veranderingen (sub-mm) maar goed opgemerkt worden.
Met een LED en een lichtsensor valt reflectief te meten wat de afstand tot een reflecterend object is: Hoe meer licht terugkaatst, hoe dichter bij het object is. Uiteraard lijken ‘ beter reflecterende’ objecten dan dichter bij dan ‘minder goed reflecterende’, maar bij steeds hetzelfde uniform gekleurde object geeft dat niet. (De uitdaging om dit toe te passen bij een zwevende magneet zit er in dat ook de hoek invloed heeft op de hoeveelheid licht die naar de sensor weerkaatst: de magneet beweegt niet alleen op en neer maar kantelt ook.)
Ik gebruik een BPW40 fototransistor als lichtsensor, maar bijvoorbeeld een LDR of een fotodiode kan ook. Ik gebruik een infrarode led, maar gewoon zichtbaar rood werkt ook. Voor zichtbaar geel is de BPW40 duidelijk minder gevoelig. Ik gebruik een Atmega328p als microcontroller, maar alles met een ADC is bruikbaar.
Zo is heel makkelijk en met goedkope onderdelen een afstandssensor te maken, voor kleine afstanden.
De afstandssensor heeft geen last van omgevingslicht, omdat de fototransistor AC gekoppeld aangesloten is. Constant omgevingslicht geeft een DC offset en de koppelcondensator blokkeert die.
De LED moet uiteraard wel met AC worden aangestuurd, zodat het (gereflecteerde) licht ervan een AC signaal veroorzaakt dat wèl door de koppelcondensator heen komt. Dit kan daarna worden gelijkgericht en gemeten, of zelfs rechtstreeks de ADC van een microcontroller in. Als dezelfde microcontroller de LED aanstuurt, is het gemakkelijk om ‘synchrone detectie’ toe te passen: Er wordt een ADC sample genomen precies op het moment dat de LED aan staat.
Al bij al zijn het 5 componentjes en een paar regels code. Makkelijk uit te proberen met deze arduino-sketch.
Wie mijn oude site kent, herinnert zich misschien nog wel de zweefmagneet. Daarbij zweeft een magneet onder een elektromagneet. Het kan ook andersom: een magneet boven een aantal elektromagneten laten zweven.
Ik heb een bouwpakketje gekocht dat (na het in elkaar te knutselen) een magneet boven een stel elektromagneten laat zweven.
Het bouwpakketje komt aan als een set onderdelen, een materiaallijst, een schema, en een QR code.
De materiaallijst kan ik alleen de westerse teksten van lezen. De refdes en componentwaarde is op de print gedrukt, in een heel klein font. De zakjes zijn bedrukt met componentwaarden, behalve bij de condensatoren.
Van sommige componenten krijg je er een paar extra, die je niet nodig hebt. De QR code wijst naar dit filmpje. De markeringen met potlood op het schema zijn van mijn hand, en werden niet meegeleverd. Er is geen verdere documentatie of handleiding.
Kortom: Dit bouwpakket is niet geschikt voor mensen die al zenuwachtig worden van het in elkaar moeten zetten van ikea-meubels. Maar voor mij juist leuk.
Hoewel ik de meeste onderdelen snel op de print had, kwam ik bij de spoelen een verrassing tegen: er zijn maar 4 aansluitingen op de print: X1, X2, Y1 en Y2. (En de spoelen hebben er elk 2, dus in totaal 8). De spoelen moeten per 2 in serie, zodat je 4 draden overhoudt voor de 4 aansluitingen op de print.
Met een beetje spieken op internet blijken er verschillende varianten van het kitje te bestaan, waarbij de labeling van de spoelen soms anders is. Bij de vierkante print uit het bouwpakketje die ik kocht, moeten de spoelen als volgt worden aangesloten:
Dus van X1 naar het midden van de eerste spoel, van de buitenkant van die spoel naar de buitenkant van de andere spoel, en van die spoel moet de middelste aansluiting aan X2. De middelste aansluiting van de spoel zit dus aan de gelabelde aansluiting op de print.
Voor de Y-spoelen gelijkaardig: Midden naar Y1, andere midden naar Y2 en de buitenkanten aan elkaar.
(Met de aansluitdraden naar onderen, moeten dus de midden-aansluitingen van de spoelen aan elkaar en de buitenkanten naar de pcb-aansluitigen, maar ik ga uit van de situatie met de draden aan de bovenkant)
De X-spoelen staan dus in serie met elkaar. En de Y-spoelen staan in serie met elkaar. Maar wel zodanig, dat de stroom in de ene spoel precies tegengesteld gericht is aan in de andere.
Dat is anders dan ik verwachtte. Mijn (onjuiste!) verwachting berustte er op dat de spoelen alle 4 de magneet naar beneden en naar het midden trekken, waar de permanente magneten de magneet omhoog en naar het midden duwen. Dat is onjuist.
In plaats daarvan wordt de hoogte niet geregeld, maar juist alleen de positie in het platte vlak. De permanente magneten op de hoeken zorgen door afstoting voor de hoogte. (recht boven de hoekmagneten wordt de te-zweven magneet aangetrokken, maar midden ertussen wordt deze afgestoten). De omgebogen hallsensor wordt via de lm393 comparator gebruikt om de voeding van de regeling in te schakelen, maar niet om te regelen.
De andere 2 hallsensoren worden gebruikt om de positie van de magneet te meten. De X en Y regelingen werken gelijkaardig. Omdat de spoelen per paar (X of Y) in serie staan, is de stroom door zo’n seriepaar gelijk en daarmee ook de veldsterkte. Omdat de stroom tegengesteld gericht is, zal de ene spoel de magneet aantrekken en de andere de magneet wegduwen.
De regeling kan de stroom door zo’n spoelpaar omkeren en zo de magneet de andere richting uit trekken: als een positieve stroom door het X-spoelpaar ’naar links’ betekend, is een negatieve stroom ’naar rechts’. Het Y-spoelpaar regelt op gelijke wijze voor/achter. Zo wordt de magneet links/rechts en voor/achter gestuurd, en daarmee in het midden gehouden.
Het is makkelijker ‘ aan te voelen’ door tegen de magneet te duwen en te voelen hoe de regeling reageert, dan dat het is om de werking over te brengen in een tekst. Samengevat: De te zweven magneet ligt op een soort ‘magnetisch heuveltje’ doordat de andere permanente magneten ‘ m afstoten. De regeling houdt ‘ m door middel van de spoelen in het midden, op de top.
Mocht deze redenatie aanvulling behoeven, laat dan gerust een comment achter.
Nadat alles gebouwd is en werkt kan met de potmeters de print afgeregeld worden. Zet ze tijdens het bouwen zolang in middenstand (het zijn meerslagenpotmeters). Regel af op minimale stroom door de spoelen als de magneet stabiel in het midden zweeft. Dit kan door de stroomopname uit de voeding te meten of door de stroom door de afzonderlijke spoelparen (X en Y) te meten via de jumpers (jumper verwijderen en stroommeter daar aansluiten, de meter staat dan in serie met de spoel).
Als de zwevende magneet net geplaatst wordt is de stroomopname tijdelijk hoog (boven de 1.5 A). Dit zakt al snel onder de 0.2 A (in enkele seconden), en neemt langzaam verder af tot onder de 0.03 A. (De meter van mijn voeding is niet accuraat, zeker niet bij dergelijk kleine waarden.) De transistors blijven dan ook koel als de magneet eenmaal stabiel in het midden zweeft.
Kort samengevat, wat bouwtips:
plaats de onderdelen volgens aanduiding op de print (Dit is een erg beknopte samenvatting van wat een complete multo-map aan assemblage-instructie zou kunnen zijn, en wat toch minimaal een vellemankit-handleiding-achtig informatie A-4tje zou moeten zijn)
zorg dat de hallsensors en de spoelen juist geplaatst zijn, zie foto’s
regel af op minimale stroomafname uit de voeding. Dit kan ook afzonderlijk per spoelpaar gemeten worden.
Indien juist afgeregeld, neemt de opgenomen stroom af tot onder de 100 mA en blijven de transistors gewoon koel
Ik vond het een leuk avondje knutselen en middagje puzzelen, en hoop met deze blogpost te bereiken dat het voor anderen íets minder puzzelen is. Terzijde ben ik best benieuwd wie de fabrikant is van de chips met het lijkt-op-maar-is-niet-texas-instruments logo.
Wie mijn oude site kent, herinnert zich misschien nog wel de zweefmagneet. Daarbij zweeft een magneet onder een elektromagneet. Daarbij wordt een sensor en een regeling gebruikt om ervoor te zorgen dat de magneet blijft zweven. Die regeling kan met een microcontroller, zoals het elektuur-artikel waar ik me destijds (in 2008 !) op baseerde. Het kan ook met opamps, wat ik in december 2011 deed.
‘Oude’ zweefmagneet met opamps (uit 2011)
Maar onlangs (in 2022) ging het weer kriebelen. De op-amp schakeling uit 2011 gebruikt een emittervolger om de spoel te sturen, en die transistor wordt uiteraard warm en zit dus op een koelblokje. Met PWM kan het met een FET die niet gekoeld hoeft te worden en kan e.e.a. compacter. En wellicht kan het met minder opamps. En mocht iemand het na willen bouwen, is het wel fijn als diegene niet speciaal naar SA1458 op zoek gaat. Het moet in feite met elke opamp kunnen werken, een SA1458 is gewoon een 741, maar dan per 2 verpakt. Een LM324 leek me een leuk, gangbaar, goedkoop alternatief.
Zodoende heb ik eens zitten spelen, en het kan inderdaad met 1 LM324 (4 opamps). Voor wie niet van lezen houdt: filmpje en foto’s van het resultaat staan onderaan. Scroll scroll scroll…
Ik vind het beter ogen als er niets onder de magneet is, en de magneet dus ’boven een gapende diepte zweeft’. In 2011 zweefde de magneet boven de (hall)sensor. Om de magneet boven een ‘diepte’ te laten zweven, moet deze sensor verplaatst worden van onder de magneet naar boven de magneet (dus tussen magneet en elektromagneet).
In onderstaand schema ga ik er dus van uit dat de sensor boven de magneet zit. De sensor onder de magneet, zoals bij de zweefmagneet uit 2008/2011, kan ook: dan moeten de aansluitingen van de comparator verwisseld worden en de regeling (P en D-factor) iets anders ingesteld.
Schema (open in nieuw tabblad op vol formaat, om componentwaarden te kunnen lezen)
Dit schema kan via deze link als pdf worden gedownload. Een vereenvoudide versie kan in de online simulator van falstad interactief worden bekeken via deze link.
U2B en U2C, bij de simulatie de bovenste 2 opamps, vormen de PWM-uitgang. De linker (U2B) maakt een zaagtand (in de praktijk meer een soort haaienvin bij deze eenvoudige schakeling), de rechter (U2C) wordt als comparator gebruikt die vergelijkt tussen de zaagtand en een ingangsspanning. Zo wordt een PWM signaal gemaakt waarvan de pulsbreedte afhankelijk is van de ingangsspanning.
Door bij de comparator U2C de zaagtand op de + ingang aan te bieden en het ingangssignaal op de – ingang, zal de pulsbreedte op de uitgang afnemen bij toenemende ingangsspanning. Dus als de magneet dichter bij de sensor komt (en daarmee een hogere ingangsspanning veroorzaakt), wordt de elektromagneet minder sterk aangestuurd. Dit is hoe de comparator moet zijn aangesloten om te werken met de sensor boven de magneet: hoe dichterbij de magneet, hoe minder sterk deze door de elektromagneet moet worden opgetild.
Door de zaagtand op de – ingang aan te bieden en het ingangssignaal op de + ingang zal de pulsbreedte toenemen bij toenemende ingangsspanning. Dus als de magneet dichter bij de sensor komt (en daarmee een hogere ingangsspanning veroorzaakt), wordt de elektromagneet sterker aangestuurd. Dit is hoe de comparator moet zijn aangesloten om te werken met de sensor onder de magneet: hoe dichterbij de magneet, hoe sterker deze door de elektromagneet moet worden opgetild.
(Sensor en oriëntatie van de magneet zijn bij mijn zweefmagneet zo gekozen dat de spanning toeneemt bij naderende magneet. Bij een sensor die een dalende spanning uitgeeft bij naderende magneetpool, werkt het uiteraard weer net andersom.)
Screenshot van de Falstad-simulatie
Die ingangsspanning van de comparator komt niet rechtstreeks uit de sensor, maar wordt gemaakt door de regeling. Daarvoor worden de 2 overgebleven opamps gebruikt. De eerste opamp (U2A) wordt gebruikt het setpoint in te stellen: De hallsensor geeft zonder magneet ongeveer zijn halve voedingsspanning aan de uitgang, en afhankelijk van welke pool van de magneet nadert wordt deze spanning hoger of lager. Zoals de polen gekozen zijn wordt de uitgangsspanning van de hallsensor hoger als de magneet nadert. Het setpoint wordt dus (met een potmeter als spanningsdeler) ingesteld op ongeveer 3,9V. Deze eerste opamp (linksonder in de simulator / U2A in kicad-schema) wordt als een inverterende somator gebruikt. De volgende opamp (rechtsonder in simulator / U2D in kicad) inverteert nogmaals, waardoor het uiteindelijke uitgangssignaal weer positief is.
Deze opamp (U2D) doet de uiteindelijke regeling: Het is een inverterende versterker, maar tevens sommator en differentiator: Via 2 paden wordt signaal aangeboden: een weerstand voor het proportionele (P) deel van de regeling, en een condensator voor het differentiële (D) deel van de PD regeling. Deze kunnen dus worden ingesteld door met de componentwaarden van deze weerstanden en condensators te spelen. Wie dit wil nabouwen zal veel met de componentwaarden moeten spelen van van R10 en C6 (om de D-factor in te stellen) en R9/RV3 (om de P factor in te stellen). Deze zijn afhankelijk van de eigenschappen van de elektromagneet en de magneet en de sensor, en je hebt waarschijnlijk niet exact dezelfde.
In het oude schema met de sa1458 zijn de somator, versterker (P) en Differentiator (D) nog 3 afzonderlijke opamps. Door dit samen te voegen is het wel wat lastiger af te stellen: er is ondelinge beïnvloeding. De weerstand tussen uitgang en ingang heeft invloed op zowel P- als D-factor van de regeling, en de weerstand die de P-regeling bepaald staat parallel aan het RC-netwerk van de D-regeling en heeft daar dus invloed op. Vandaar: even spelen in de simulator en op breadboard.
Let er bij nabouwen op, dat de stroom door de elektromagneet-spoel de voeding niet onderuit trekt. Het beste is de sensor een eigen, “schone”, voeding te geven. De spoel die ik gebruik doet het toevallig goed op 5 V, dus ik voedt de zweefmagneet met 5 V. De sensor werkt ook op 5 V. De opamps krijgen +/- 15 V. Bij de test op breadboard komen deze spanning uit 3 afzonderlijke labvoedingen. Op het uiteindelijke printje wordt de 5 V voor de sensor gemaakt uit de +15 V met een 78l05, zodat de sensor een eigen “schone” voeding heeft. De +/- 15 V voor de opamps wordt gemaakt uit de +5 V ingang door een kant-en-klaar convertorblokje (PS1, een MEA1D0515SC).
De sensor wordt boven de magneet, met een tussenruimte onder de spoel geplaatst. De tussenruimte tussen sensor en spoel is nodig omdat het veld van de spoel ook door de magneet gezien wordt. Ik gebruik er een paar stoelviltjes voor.
De elektronica zit als volgt op een printje en in een kastje:
(waarbij later, niet op de foto, ook de Offset-Potmeter is vervangen door een multiturn trimmer. Dat werkt toch prettiger)