Inhoudsopgave:

Voeg een op Arduino gebaseerde optische toerenteller toe aan een CNC-router - Ajarnpa
Voeg een op Arduino gebaseerde optische toerenteller toe aan een CNC-router - Ajarnpa

Video: Voeg een op Arduino gebaseerde optische toerenteller toe aan een CNC-router - Ajarnpa

Video: Voeg een op Arduino gebaseerde optische toerenteller toe aan een CNC-router - Ajarnpa
Video: Beyond the Basics: Automatic Gatekeeper With IR Sensor And ChatGPT Generated Arduino Code 2024, Juli-
Anonim
Image
Image
Voeg een op Arduino gebaseerde optische toerenteller toe aan een CNC-router
Voeg een op Arduino gebaseerde optische toerenteller toe aan een CNC-router

Bouw een optische RPM-indicator voor uw CNC-router met een Arduino Nano, een IR LED/IR Photodiode-sensor en een OLED-scherm voor minder dan $ 30. Ik werd geïnspireerd door de Measure RPM - Optical Tachometer Instructable van eletro18 en wilde een toerenteller toevoegen aan mijn CNC-router. Ik vereenvoudigde het sensorcircuit, ontwierp een aangepaste 3D-geprinte beugel voor mijn Sienci CNC-router. Toen schreef ik een Arduino-schets om zowel een digitale als een analoge wijzerplaat op een OLED-display weer te geven

Een paar eenvoudige onderdelen en een paar uur van uw tijd, en u kunt een digitale en analoge RPM-weergave toevoegen aan uw CNC-router.

Hier is de onderdelenlijst die beschikbaar is voor verzending binnen 2 dagen. U kunt de onderdelen waarschijnlijk voor minder kopen als u bereid bent langer te wachten.

Onderdelen lijst

$ 6,99 Arduino Nano

$ 5,99 IR LED/IR-fotodiode (5 paar)

$ 7,99 OLED-display 0,96 geel/blauw I2C

$4.99 Doorverbindingsdraden

$ 1,00 30 inch (75 cm) 3-aderige draad. Kan worden gekocht bij uw plaatselijke woonwinkel (Home Depot, Lowes) in het gedeelte 'Koop per voet'

$ 0,05 220 ohm weerstand ($ 6,99 als je 750 verschillende weerstanden wilt)

$ 0,50 Krimpkous ($ 5,99 als je een compleet assortiment wilt)

3D-geprinte beugels

Arduino-IDE (gratis)

Opmerking: ik heb aanvankelijk een condensator van 0,01 F toegevoegd nadat ik alle draden had vastgemaakt en enkele grillige RPM-waarden opmerkte toen de CNC bewoog. De condensator werkte prima voor lagere RPM's <20K, maar hij egaliseerde het signaal te veel voor iets hogers. Ik heb het geluid gevolgd om de Nano van stroom te voorzien en rechtstreeks vanaf het CNC-schild weer te geven. Een aparte voeding werkt voor alle RPM. Ik heb de stappen voorlopig gelaten, maar je moet een aparte USB-stroombron gebruiken.

Stap 1: Druk de 3D-beugel af

De 3D-beugel afdrukken
De 3D-beugel afdrukken

Druk de 3D-beugel af om de IR-LED en IR-fotodiodes vast te houden. De 3D-bestanden staan hier en op Thingiverse.

www.thingiverse.com/thing:2765271

Voor de Sienci Mill wordt de hoekmontage gebruikt om de sensor op de aluminium hoekstaven te monteren, maar de platte montage is misschien beter voor uw project.

Stap 2: Optioneel 3D-print de OLED-displayhouder en elektronische behuizing

Optioneel 3D print de OLED-displayhouder en elektronische behuizing
Optioneel 3D print de OLED-displayhouder en elektronische behuizing

Ik kies ervoor om de OLED te bevestigen aan een schuine displayhouder die ik op de bovenkant van een Sienci Electronics-behuizing heb geschroefd.

Hier zijn de links naar de 3D-geprinte onderdelen die ik heb gebruikt.

Sienci Electronics-behuizing 3D-onderdeel

0,96 OLED-scherm montagebeugel

De behuizing was een mooie plek om de OLED-beeldschermbeugel te monteren en hij houdt de Arduino Nano mooi vast, plus hij past op de achterkant van de Sienci Mill. Ik heb een paar gaten aan de bovenkant van de behuizing geboord om de OLED-beugel te bevestigen.

Ik heb ook een paar gaten in de bodem geboord om een kleine ritssluiting door te halen om de kabelboom stevig te bevestigen

Stap 3: Bouw de IR-sensordraadconstructie

Bouw de IR-sensordraadconstructie
Bouw de IR-sensordraadconstructie

De 3-aderige draad wordt gebruikt om de sensor aan te sluiten. Eén draad zal een gemeenschappelijke aard zijn voor zowel de IR-LED als de IR-fotodiode, waarbij elk van de andere twee naar hun respectieve component gaat.

Stap 4: Voeg een stroombegrenzende weerstand toe voor de IR-LED

Voeg een stroombegrenzende weerstand toe voor de IR-LED
Voeg een stroombegrenzende weerstand toe voor de IR-LED

De IR LED heeft een stroombegrenzende weerstand nodig. De eenvoudigste manier is om de weerstand in de draadassemblage op te nemen.

Buig de uiteinden van elk in een U-vorm en vergrendel ze. Krimp ze met een tang en soldeer ze vervolgens aan elkaar.

Stap 5: verbindingsdraden splitsen

Doorverbindingsdraden splitsen
Doorverbindingsdraden splitsen
Doorverbindingsdraden splitsen
Doorverbindingsdraden splitsen

U kunt jumperdraden splitsen om ze op Arduino-headerpinnen aan te sluiten.

Knip een stuk krimpkous af en schuif deze over de draad voordat u ze aansluit.

Schuif de krimpkous terug over de verbinding (of de hele weerstand) en krimp de slang met behulp van een warmtepistool of laat een vlam snel over de buis lopen totdat deze krimpt. Als u een vlam gebruikt, houd deze dan snel in beweging, anders kan deze beginnen te smelten.

Stap 6: Bepaal de IR-LED en fotodiodekabels

Bepaal de IR-LED en fotodiodekabels
Bepaal de IR-LED en fotodiodekabels

Zowel de IR-LED als de IR-fotodiode zien er hetzelfde uit, elk met een lange (anode of positieve) kabel en een korte (kathode of negatieve) kabel.

Stap 7: Diodes in houder plaatsen

Diodes in houder plaatsen
Diodes in houder plaatsen

Neem de IR-LED (heldere diode) en steek deze in een van de gaten van de LED-houder. Draai de LED zodat de lange kabel aan de buitenkant zit. Op de foto zie je de heldere LED in het bovenste gat met zijn lange kabel helemaal bovenaan.

Neem de IR-fotodiode (donkere diode) en steek deze in het andere gat. Draai de fotodiode zo dat de lange kabel zich in het midden bevindt.

Zoals op de foto te zien is, bevinden de korte kabel van de LED en de lange kabel van de fotodiode zich beide in het midden. Deze twee draden worden gesplitst naar een gemeenschappelijke draad terug naar de Arduino. (Zie de technische opmerkingen aan het einde als u meer details wilt)

Neem een klein stukje filament van 1,75 en steek dit achter de diodes. Hierdoor worden de diodes op hun plaats vergrendeld en wordt voorkomen dat ze gaan draaien of naar buiten komen.

Ik heb verschillende iteraties van ontwerpen doorlopen voordat ik op deze uitkwam. Door de diodes een beetje uit te steken, werd de tolerantie aanzienlijk verbeterd bij het uitlijnen met de spanmoer.

Stap 8: Smelt het vergrendelingsfilament aan de houder

Smelt het vergrendelingsfilament aan de houder
Smelt het vergrendelingsfilament aan de houder

Je zult het vergrendelingsstukje filament willen inkorten tot net iets langer dan de breedte van de houder.

Verwarm een spijker een paar seconden in een bankschroef of houd hem vast met een tang.

Stap 9: Druk de filamentuiteinden tegen de verwarmde spijkerkop

Druk de filamentuiteinden tegen de verwarmde spijkerkop
Druk de filamentuiteinden tegen de verwarmde spijkerkop

Houd uw vinger aan het andere uiteinde van het filament en druk erop om de borgpen in de houder te smelten en vast te zetten.

Stap 10: Afgewerkte diodehouder

Afgewerkte diodehouder
Afgewerkte diodehouder

Flink en netjes

Stap 11: Bevestig de kabelboom aan de diodes

Bevestig de kabelboom aan de diodes
Bevestig de kabelboom aan de diodes
Bevestig de kabelboom aan de diodes
Bevestig de kabelboom aan de diodes

Knip de draad op lengte voor uw toepassing. Voor de Sienci Mill heb je in totaal ongeveer 30 inch (~75 cm) nodig (draad + jumpers) en heb je speling om de router te laten bewegen.

Buig de draad en de leadtips in een U-vorm om ze in elkaar te grijpen en het solderen gemakkelijker te maken.

Neem wat dunne krimpkous en knip twee korte stukken en twee iets langere stukken af. Schuif de kortere stukken over de buitenste diodedraden. Schuif de langere stukken over de twee middelste draden.

Het hebben van twee verschillende lengtes compenseert de lasverbindingen en verschuift de dikkere verbindingen van elkaar zodat de diameter van de bedrading wordt verkleind. Het voorkomt ook eventuele kortsluitingen tussen de verschillende draadverbindingen

Knip drie stukken krimpkous met een iets grotere diameter af en plaats deze over elk van de drie draden in de kabelboom.

Het is belangrijk om ervoor te zorgen dat er een kleine opening is tussen de uiteinden van de krimpkous op de draden en het verbindingspunt. De draden worden heet en als de krimpkous te dichtbij komt, beginnen ze aan het einde te krimpen, waardoor ze mogelijk te klein worden om over de verbinding te schuiven.

Stap 12: Zorg ervoor dat de draad met de weerstand is bevestigd aan de lange kabel van de IR-LED

De stroombegrenzingsweerstand (220 ohm) die in de kabelboom is ingebouwd, moet worden aangesloten op de lange (anode)draad van de heldere IR-led. De draad die de twee gemeenschappelijke draden verbindt, wordt verbonden met aarde, dus misschien wilt u voor die verbinding een zwarte of blote draad gebruiken.

Soldeer de verbindingen om ze permanent te maken.

Stap 13: Krimp de krimpkous

Krimp de krimpkous
Krimp de krimpkous

Nadat de verbindingen zijn gesoldeerd, gebruikt u eerst een lucifer of aansteker om de slang op de diodedraden te krimpen. Verplaats eerst de krimpkous op de draden zo ver mogelijk uit de buurt van de warmte.

Houd de vlam snel in beweging terwijl deze krimpt en roteer om alle kanten gelijk te krijgen. Blijf niet hangen of de slang zal smelten in plaats van krimpen.

Nadat de diodedraden zijn gekrompen, schuift u de iets grotere krimpkous van de draden, over de verbindingen en herhaalt u het krimpen.

Stap 14: Bereid het montageblok voor

Bereid het montageblok voor
Bereid het montageblok voor

Kies, afhankelijk van uw toepassing, het montageblok dat bij uw toepassing past. Selecteer voor de Since Mill het hoekmontageblok.

Neem een M2-moer en een M2-schroef. Schroef de moer net op het uiteinde van de schroef.

Draai het montageblok om en test de M2-moer in het gat.

Verwijder en verwarm de moer lichtjes met een lucifer of vlam en steek hem dan snel in de achterkant van het montageblok.

Draai de schroef los en laat de moer in het plastic montageblok zitten. Breng voor wat extra stevigheid een druppel superlijm aan op de rand van de moer om de moer stevig aan het blok te bevestigen.

Stap 15: Zorg ervoor dat de M2-schroef de juiste lengte heeft

Zorg ervoor dat de M2-schroef de juiste lengte heeft
Zorg ervoor dat de M2-schroef de juiste lengte heeft

Zorg ervoor dat de schroef niet te lang is, anders zal de sensor niet vast komen te zitten tegen het montageblok. Zorg er bij het hoekmontageblok voor dat de M2-schroef 9 mm of iets korter is.

Stap 16: Bevestig het montageblok aan de CNC-router

Bevestig het montageblok aan de CNC-router
Bevestig het montageblok aan de CNC-router

Voor de Sienci Mill, bevestig het hoekmontageblok aan de onderkant van de binnenkant van de Z-rail met een paar druppels superlijm.

Stap 17: Bevestig de sensor aan het montageblok

Bevestig de sensor aan het montageblok
Bevestig de sensor aan het montageblok

Plaats de verstelbare arm in het montageblok

Steek de M2-schroef met een ring door de gleuf in de verstelbare montagearm en schroef deze in de moer.

Verschuif de verstelbare arm totdat de LED en fotodiodes gelijk zijn met de freesspanmoer

Draai de schroef vast

Stap 18: voeg reflecterende tape toe aan één kant van de spanmoer

Voeg reflecterende tape toe aan één kant van de spanmoer
Voeg reflecterende tape toe aan één kant van de spanmoer

Gebruik een kleine strook aluminiumtape (gebruikt voor ovenkanalen) en bevestig deze aan één facet van de spanmoer. Met deze reflecterende tape kan de IR-optische sensor een enkele omwenteling van de spil opvangen.

Stap 19: Zorg ervoor dat de reflecterende tape niet over de rand naar aangrenzende facetten gaat

Zorg ervoor dat de reflecterende tape niet over de rand naar aangrenzende facetten gaat
Zorg ervoor dat de reflecterende tape niet over de rand naar aangrenzende facetten gaat

De tape hoeft zich slechts aan één kant van de spanmoer te bevinden. De tape is dun en licht genoeg om de sleutel niet te hinderen om vingerfrezen te wisselen of de spilbalans te beïnvloeden.

Stap 20: Leid de sensordraad langs de binnenkant van de Z-rail

Leid de sensordraad langs de binnenkant van de Z-rail
Leid de sensordraad langs de binnenkant van de Z-rail

Gebruik stroken aluminium ducttape om de draad aan de binnenkant van de Z-rail te bevestigen. Het is het beste om de tape in de buurt van de rand van de hoekrail te laten lopen om de schroefmoerassemblage vrij te maken.

Stap 21: Bevestig de sensor aan de Arduino Nano

Bevestig de sensor aan de Arduino Nano
Bevestig de sensor aan de Arduino Nano

Sluit de draden als volgt aan op de Arduino:

  • IR LED (met geïntegreerde weerstand) -> Pin D3
  • IR Fotodiode -> Pin D2
  • Gemeenschappelijke draad -> Pin GND

Stap 22: Bevestig jumperdraden aan het OLED-scherm

Bevestig jumperdraden aan het OLED-scherm
Bevestig jumperdraden aan het OLED-scherm

Trek een 4-aderige set startkabels los

Steek de draden in de 4 pinnen voor de I2C-interface:

  • VCC
  • GND
  • SCL
  • SDA

Stap 23: Bevestig het OLED-scherm aan de Arduino

Bevestig het OLED-scherm aan de Arduino
Bevestig het OLED-scherm aan de Arduino
Bevestig het OLED-scherm aan de Arduino
Bevestig het OLED-scherm aan de Arduino

Bevestig de jumperdraden aan de volgende pinnen. Opmerking: deze draden worden niet allemaal aan aangrenzende pinnen bevestigd, en ook niet in dezelfde volgorde.

  • VCC -> Pin 5V
  • GND -> Pin GND
  • SCL -> Pin A5
  • SDA -> Pin A4

Stap 24: Bevestig het OLED-scherm aan de houder

Bevestig het OLED-scherm aan de houder
Bevestig het OLED-scherm aan de houder

Gebruik de haakjes die u eerder hebt afgedrukt en bevestig het OLED-scherm aan de houder

Bevestig vervolgens het display aan het CNC-frame.

Stap 25: Bereid de Arduino IDE voor op het laden van de Arduino Sketch

Bereid de Arduino IDE voor op het laden van de Arduino Sketch
Bereid de Arduino IDE voor op het laden van de Arduino Sketch

Een programma voor een Arduino wordt een schets genoemd. De Integrated Development Environment (IDE) voor Arduinos is gratis en moet worden gebruikt om het programma te laden om de sensor te detecteren en de RPM weer te geven.

Als je het nog niet hebt, is hier een link om de Arduino IDE te downloaden. Kies de downloadbare versie 1.8.5 of hoger.

Stap 26: Voeg de vereiste OLED-bibliotheken toe

Voeg de vereiste OLED-bibliotheken toe
Voeg de vereiste OLED-bibliotheken toe

Om het OLED-scherm te gebruiken, hebt u een aantal extra bibliotheken nodig, de Adafruit_SSD1306-bibliotheek en de Adafruit-GFX-bibliotheek. Beide bibliotheken zijn gratis en beschikbaar via de verstrekte links. Volg de Adafruit-zelfstudie over hoe u de bibliotheken voor uw computer installeert.

Zodra de bibliotheken zijn geïnstalleerd, zijn ze beschikbaar voor elke Arduino-schets die u maakt.

De bibliotheken Wire.h en Math.h zijn standaard en worden automatisch opgenomen in uw IDE-installatie.

Stap 27: Sluit de Arduino aan op uw computer

Sluit de Arduino Nano met een standaard USB-kabel aan op uw computer met de Arduino IDE.

  1. Start de IDE
  2. Selecteer in het menu Extra de optie Bord | Arduino Nano
  3. Selecteer in het menu Extra de optie Poort |

Nu ben je klaar om de schets te laden, te compileren en te uploaden naar de Nano

Stap 28: Download de Arduino Sketch

De Arduino Sketch-code is bijgevoegd en is ook beschikbaar op mijn GitHub-pagina waar toekomstige verbeteringen zullen worden gepost.

Download het bestand OpticalTachometerOledDisplay.ino en plaats het in een werkmap met dezelfde naam (minus de.ino).

Kies in de Arduino IDE Bestand | Open…

Navigeer naar uw werkmap

Open het bestand OpticalTachometerOledDisplay.ino.ino.

Stap 29: Compileer de schets

De schets samenstellen
De schets samenstellen
De schets samenstellen
De schets samenstellen

Klik op de knop 'Controleren' of kies Schets | Verifiëren/Compileren vanuit het menu om de schets te compileren.

Je zou het compileergebied onderaan moeten zien, met een statusbalk. Binnen een paar seconden wordt het bericht "Klaar met compileren" en een aantal statistieken weergegeven over hoeveel geheugen de schets in beslag neemt. Maak je geen zorgen over het bericht "Weinig geheugen beschikbaar", het heeft geen invloed. Het grootste deel van het geheugen wordt gebruikt door de GFX-bibliotheek die nodig is om de lettertypen op het OLED-scherm te tekenen en niet door de eigenlijke schets zelf.

Als u enkele fouten ziet, zijn deze hoogstwaarschijnlijk het gevolg van ontbrekende bibliotheken of configuratieproblemen. Controleer nogmaals of de bibliotheken zijn gekopieerd naar de juiste map voor de IDE.

Als dat het probleem niet oplost, raadpleeg dan de instructies voor het installeren van een bibliotheek en probeer het opnieuw.

Stap 30: Uploaden naar de Nano

Uploaden naar de Nano
Uploaden naar de Nano

Druk op de 'Pijl'-knop of kies Schets | Upload vanuit het menu om de schets te compileren en te uploaden.

U ziet hetzelfde bericht 'Compiling..', gevolgd door een bericht 'Uploading..' en ten slotte een bericht 'Klaar met uploaden'. De Arduino start het programma zodra het uploaden is voltooid of zodra de stroom daarna wordt ingeschakeld.

Op dit punt zou het OLED-display tot leven moeten komen met een RPM: 0-display met de wijzerplaat op nul.

Als je de router weer in elkaar hebt gezet, kun je de schakelaar aanzetten en het display de RPM zien aflezen terwijl je de snelheid aanpast.

Gefeliciteerd!

Stap 31: Gebruik een speciale stroombron

Gebruik een speciale stroombron
Gebruik een speciale stroombron
Gebruik een speciale stroombron
Gebruik een speciale stroombron

OPMERKING: Dit was de bron van de signaalruis die de grillige RPM-displays veroorzaakte. Ik ben aan het onderzoeken om wat filterdoppen op de voedingsjumpers te plaatsen, maar voor nu moet je het via een aparte USB-kabel van stroom voorzien.

U kunt het beeldscherm met de USB-kabel op uw computer aansluiten, maar uiteindelijk wilt u een speciale stroombron.

Je hebt een aantal opties, je kunt een standaard USB-wandoplader krijgen en de Arduino ervan gebruiken.

Of u kunt de Arduino rechtstreeks vanaf uw CNC-routerelektronica uitvoeren. Het Arduino/OLED-display trekt slechts 0,04 ampère, dus het zal uw bestaande elektronica niet overbelasten.

Als je Arduino/CNC Router Shield-elektronica hebt (zoals de Sienci Mill), dan kun je een paar ongebruikte pinnen gebruiken om de benodigde 5 volt stroom te krijgen.

Linksboven op het schild van de CNC-router ziet u een aantal ongebruikte pinnen met het label 5V/GND. Bevestig een paar startkabels aan deze twee pinnen.

Stap 32: Sluit de Arduino aan op de Power Jumpers

Verbind de Arduino met de Power Jumpers
Verbind de Arduino met de Power Jumpers
Verbind de Arduino met de Power Jumpers
Verbind de Arduino met de Power Jumpers

Deze is eenvoudig, maar niet zo mooi geëtiketteerd.

Op de Arduino Nano zit een set van 6 pinnen aan het einde van het bord. Ze zijn niet gelabeld, maar ik heb het pin-out-diagram bijgevoegd en je kunt zien dat de twee buitenste pinnen die het dichtst bij de indicator-LED's zijn, GND en 5V op het diagram hebben.

Sluit de jumper van de 5V-pin op het CNC-schild aan op de pin die het dichtst bij de pin met het label VIN ligt (sluit deze niet aan op VIN, maar op de pin in de binnenhoek van de 6-pins groep). VIN is voor het voeden van de Nano met 7V-12V stroom.

Verbind de jumper van de GND-pin op het CNC-schild met de pin die zich het dichtst bij de TX1-pin bevindt.

Wanneer u nu de elektronica van de CNC-router inschakelt, gaat ook het OLED RPM-display aan.

Stap 33: Technische opmerkingen over het circuit

Technische opmerkingen over het circuit
Technische opmerkingen over het circuit

Het sensorcircuit maakt gebruik van een IR LED/IR-fotodiodepaar.

De IR-LED werkt zoals elke gewone LED. De positieve kabel (de langere of anode) is verbonden met positieve spanning. Op een Arduino Nano is dit een uitgangspen die is ingesteld op HOOG. De negatieve kabel (korter of kathode) is verbonden met aarde om het circuit te voltooien. Omdat LED's gevoelig zijn voor te veel stroom, wordt een kleine weerstand in serie met de LED geplaatst om de hoeveelheid stroom te beperken. Deze weerstand kan overal in het circuit zijn, maar het is het meest logisch om deze aan de positieve kant van het circuit te plaatsen, omdat de negatieve draad een verbinding met aarde deelt met de fotodiode.

De IR-fotodiode gedraagt zich als elke andere diode (inclusief Light Emitting Diodes-LED's) in die zin dat ze alleen elektriciteit in één richting geleiden en elektriciteit in de tegenovergestelde richting blokkeren. Daarom is het belangrijk dat de polariteit correct is om LED's te laten werken.

Het belangrijke verschil met fotodiodes is dat wanneer ze licht detecteren, de fotodiodes de elektriciteit in beide richtingen laten stromen. Deze eigenschap wordt gebruikt om een lichtdetector te maken (in dit geval Infrarood licht of IR). De IR-fotodiode is verbonden in een tegengestelde polariteit (reverse bias genoemd) met de positieve 5V op de Arduino-pin verbonden met de negatieve kabel van de fotodiode en de positieve kabel is verbonden via een gemeenschappelijke draad samen met de IR-LED met aarde.

Zonder IR-licht blokkeert de IR-fotodiode elektriciteit, waardoor de Arduino-pin met zijn interne pull-up-weerstand in de HIGH-status staat. Wanneer de IR-fotodiode IR-licht detecteert, kan er elektriciteit stromen, waardoor de pin wordt geaard en de HOGE waarde op de fotodiodepin naar de grond zakt, waardoor een VALLENDE rand ontstaat die de Arduino kan detecteren.

Deze statusverandering op de Arduino-pin wordt in de schets gebruikt om de omwentelingen te tellen.

De strook aluminiumtape op de spanmoer reflecteert het IR-licht van de altijd brandende IR-LED terug naar de IR-fotodiode telkens wanneer deze langs de sensor draait.

Stap 34: Technische opmerkingen over de Arduino Sketch

De Arduino-schets stuurt het OLED-display aan en reageert gelijktijdig op de IR LED/IR Photodiode-sensor.

The Sketch initialiseert het OLED-scherm in het I2C-protocol (Inter-integrated Circuit). Met dit protocol kunnen meerdere beeldschermen/sensoren een verbinding delen en kunnen ze met een minimum aan draden lezen of schrijven naar een specifiek aangesloten apparaat (4). Deze verbinding vermindert het aantal verbindingen tussen de Arduino en het OLED-display.

Vervolgens wordt de IR-LED ingeschakeld door die pin HOOG in te stellen en de 5V te leveren die nodig is voor de LED.

Het koppelt een interrupt-functie aan een pin die wordt aangeroepen wanneer het een verandering in de status van die pin detecteert. In dit geval wordt de functie incrementRevolution() aangeroepen wanneer een VALLENDE rand wordt gedetecteerd op Pin 2.

Een interrupt-functie doet precies wat het impliceert, het onderbreekt alles wat momenteel wordt gedaan, voert de functie uit en hervat vervolgens de actie precies waar het werd onderbroken. Interrupt-functies moeten zo kort mogelijk zijn, in dit geval wordt er slechts één toegevoegd aan een tellervariabele. De kleine Arduino Nano draait op 16 Mhz - 16 miljoen cycli per seconde - voldoende snel genoeg om de onderbreking van 30.000 RPM aan te kunnen, wat slechts 500 omwentelingen per seconde is.

De Loop()-functie is de primaire actiefunctie voor elke Arduino-schets. Het wordt continu aangeroepen, keer op keer zolang de Arduino stroom heeft. Het krijgt de huidige tijd, controleert of een bepaald interval is verstreken (1/4 seconde = 250 milliseconden). Als dat het geval is, wordt de functie updateDisplay() aangeroepen om de nieuwe RPM-waarde weer te geven.

De lusfunctie dimt ook het display na 1 minuut en schakelt het display uit na 2 minuten - volledig configureerbaar in de code.

De functie updateDisplay() roept de functie calculatorRpm() aan. Die functie neemt het aantal omwentelingen, de interrupt-functie is gestaag toegenomen en berekent het toerental door het aantal omwentelingen per tijdsinterval te bepalen en dat te extrapoleren naar het aantal omwentelingen per minuut.

Het geeft de numerieke waarde weer en gebruikt een middelbare school-trigger om een analoge wijzerplaat te tekenen en de indicatorarm om dezelfde waarden weer te geven.

De constanten bovenaan de schets kunnen worden gewijzigd als u een RPM-wijzerplaat met verschillende hoofd- en kleine waarden wilt.

Het update-interval en het gemiddelde interval kunnen ook worden gewijzigd.

Aanbevolen: