Inhoudsopgave:
2025 Auteur: John Day | [email protected]. Laatst gewijzigd: 2025-01-13 06:57
Incrementele encoders worden vaak gebruikt voor industriële toepassingen zoals robotica of positionering tracking. Encoders voor industriële toepassingen worden meestal geleverd met een differentiële RS422-interface.
Ik zal in dit kleine project laten zien hoe je een industriële incrementele encoder - in ons geval SICK DFS60 - kunt gebruiken met een Arduino UNO.
Stap 1: Gereedschappen en materialen
Materialen
- Arduino UNO
- 3x RS422-schild voor Arduino
- incrementele encoder (Sick DFS60)
Gereedschap
- Schroevendraaier
- laboratorium voeding:
Stap 2: Enkele basisprincipes
De RS422-uitgang van de encoder wordt alleen gebruikt als hardwarelaag. Er wordt geen serieel protocol verzonden via de RS422. Alleen de pulsen van de encoder zelf worden rechtstreeks overgedragen via 3 verschillende RS422-kanalen: SIN, COS en Z (nulpositie).
Vanwege de 3 onafhankelijke RS422-kanalen hebben we 3 RS422-ingangen nodig voor de Arduino. Voor dit doel heb ik 3 stuks van mijn Arduino RS422/RS485-schilden gebruikt - gestapeld op één Arduino.
Stap 3: Dipswitch-instelling van RS422-schilden
De dipswitch-instelling voor elk schild is hetzelfde:
- S1: AAN, UIT, UIT, UIT (ontvanger altijd aan / zender altijd uit)
- S2: UIT, UIT, AAN, AAN
- S3: AAN, UIT, UIT, UIT (afsluitweerstand aan)
Stap 4: Jumper-instellingen van RS422-schilden
De Jumper-instelling voor elk schild is anders. Afhankelijk van het aangesloten kanaal is de RX-pin geconfigureerd om:
- Z: D2
- KOS: D3
- ZONDE: D4
De spanningsjumper JP1 moet worden ingesteld op 5V.
Stap 5: Bedrading
De encoder kan worden gevoed door een laboratoriumvoeding of direct door de 5V van de Arduino UNO
Stap 6: Software en testen
Compileer het bijgevoegde INO-bestand onder de Arduino IDE. Na het uploaden van het project naar de Arduino moet je de seriële monitor openen met 115200 baud.
U ziet daar de huidige incrementwaarde (alle 0, 5s bijgewerkt) en de huidige status van de Encoder ….