Eenvoudige afstands-sensor met LED en lichtsensor.

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.

En het werkt mooi:

Comments

4 responses to “Eenvoudige afstands-sensor met LED en lichtsensor.”

  1. Emiel (leime) Avatar
    Emiel (leime)

    Hallo Luke!

    Leuk stukje over de afstandsensor. Sowieso vind ik dat je een prettige schrijfstijl hebt. Op mijn telefoon lees ik op CO zonder de linker “avatarbalk” in beeld, dus ik zie niet direct van wie het bericht is. Die van jou pik ik er eigenlijk altijd direct uit. Heb je ook een functie op de site waarmee ik een melding krijg zodra je iets plaatst? Interrupts zijn hier prettiger dan pollen, niet? 😉

    Volgens mij ben je in de volgende quote het woord “invloed” vergeten tussen “hoek” en “heeft”. (of een ander woord van soortgelijke betekenis)

    “De uitdaging om dit toe te passen bij een zwevende magneet zit er in dat ook de hoek heeft op de sterkte van de reflectie: de magneet beweegt niet alleen op en neer maar kantelt ook.”

    Ga zo door,
    Emiel

    1. Lucas Avatar
      Lucas

      Dank je voor je lovende woorden en je correctie, ik heb het aangepast!

      Interrupts versus pollen: ik post zelden vaker dan eens per maand (maar het komt voor). Toen ik nog bij wordpress.com zat was er geloof ik wel een subscribe-functie (maar ook erg veel reclame, waar ik niks aan had, behalve een milde hekel. Zodoende dat ik nu betaal voor mijn hosting).

      Weet jij toevallig een goede niet-spammerige manier om zo’n notificatiesysteem op te tuigen? Wat ik tot nog toe zo snel zie is het vooral ter promotie van webshops, en dan b.v. met een mailinglijst. Waarbij de derde partij die die lijst aanbied natuurlijk ook geld wil verdienen, eventueel aan de mail-adressen die ze krijgen. Dat spreekt mij niet zo aan.

      Misschien is een rss-feed dan handiger. Ik zal ff kijken of er makkelijk wat op te tuigen valt maar don’t hold your breath.

      Edit:
      Als je /feed/ achter de url van een wordpress-site plakt, krijg je een rss feed met de meest recente posts. Voor mijn site dus https://www.eluke.nl/feed/

  2. […] fototransistor is ook AC gekoppeld aangesloten op een andere ADC-ingang (via C8), om dingen als de afstandssensor die ik eerder postte mogelijk te maken in combinatie met de LED naast de fototor, maar dat heb ik in de huidige firmware […]

  3. […] once DC coupled and once AC coupled (trough C8). This would make it possible to do things like the distance sensor I posted a while ago, combined with the LED next to the photo-transistor. However, in the current watch firmware I make […]

Leave a Reply

Your email address will not be published. Required fields are marked *