Innholdsfortegnelse:
Video: Pwm2pwm: 4 trinn
2025 Forfatter: John Day | [email protected]. Sist endret: 2025-01-10 13:48
Bytt inngang PWM -signal til en annen PWM -signalutgang med en Encoder.
Dette prosjektet ble født da jeg kjøpte min første laserskjærer. Det er ikke lett å stille PWM -effekten ved første gang, i henhold til materialet du vil kutte. Så jeg vil lage en liten enhet for å endre strømmen under utførelsen.
Trinn 1: Lister over komponenter
For dette prosjektet trenger du:
- 1 x Oled -skjerm, i mitt tilfelle I2C
- 1 x Arduino, i mitt tilfelle arduino mini pro for den lille dimensjonen.
- 1 x Trimmer med knapp.
- 3 x 10k motstand, 2 for opptrekk av trimmeren og en for nedtrekk.
På bildet av dette trinnet ser du en annen Arduino mini pro, kalt laser, fordi jeg simulerte ferdighetene til laserkontrolleren (pwm i signal) med denne Arduino.
Trinn 2: Tilkoblinger
Husk å koble de tre motstandene, pull-up og pull-down, i denne skjematiske oversikten.
For første gang anbefaler jeg deg å koble til den andre Arduino (kalt laser i trinnet før) for å teste om koden og tilkoblingen også fungerer sammen.
Hvis du er mer kjent med den skjematiske visningen, åpner du pwmTOpwm.svg.
Trinn 3: Arduino Sketch
Du kan enkelt kopiere koden min fra GitHub -siden:
Hovedferdighetene i denne koden er integrering av kommandoen "pulseIn", mer info:
Når du prøver å måle et PWM -signal går inn til mikrokontrolleren, må du telle hvor lenge signalet holder seg oppe (eller ned) i perioden. Du kan bruke kommandoen "pulseIn".
Hvis du prøver å plotte pulseIn -signalet, kan du se noe ustabilt.
For å fikse dette problemet må vi bruke et medianfilter, i mitt tilfelle eksponentielt glidende gjennomsnitt (EMA).
Du kan prøve dette kule og enkle filteret med dette eksemplet:
Ikke bekymre deg, filteret er allerede integrert i koden: s.
Hvis du bruker den andre Arduino (laser), kan du laste opp dette eksemplet i arduinoen:
Trinn 4: PCB
Jeg vil gjerne lage en PCB for dette prosjektet, med KiCad, og dele det.
Hvis jeg gjør endringer i kretskortet, vil jeg dele dem på GitHub -siden.