Innehållsförteckning:
Video: Pwm2pwm: 4 steg
2025 Författare: John Day | [email protected]. Senast ändrad: 2025-01-10 13:49
Ändra ingången PWM -signal till en annan PWM -signalutgång med en kodare.
Detta projekt föddes när jag köpte min första laserskärare. Det är inte lätt att ställa in PWM -effekten vid första gången, beroende på materialet du vill klippa. Så jag vill skapa en liten enhet för att ändra strömmen under körningen.
Steg 1: Komponentlistor
För detta projekt behöver du:
- 1 x Oled -display, i mitt fall I2C
- 1 x Arduino, i mitt fall arduino mini pro för den lilla dimensionen.
- 1 x Trimmer med knapp.
- 3 x 10k motstånd, 2 för uppdragning av trimmern och ett för neddragning.
På bilden av detta steg ser du en annan Arduino mini pro, kallad laser, eftersom jag simulerade laserstyrenhetens färdigheter (pwm i signal) med denna Arduino.
Steg 2: Anslutningar
Kom ihåg att ansluta de tre motstånden, pull-up och pull-down, i den här schemat.
För första gången rekommenderar jag att du ansluter den andra Arduino (kallad laser i föregående steg) för att testa om koden och anslutningen fungerar tillsammans också.
Om du är mer bekant med den schematiska vyn, öppna pwmTOpwm.svg.
Steg 3: Arduino Sketch
Du kan enkelt kopiera min kod från GitHub -sidan:
Huvudkompetensen för denna kod är integrationen av kommandot "pulseIn", mer info:
När du försöker mäta en PWM -signal går in till mikrokontrollern måste du räkna hur länge signalen stannar uppe (eller nedåt) under perioden. Du kan använda kommandot "pulseIn".
Om du försöker rita in pulseIn -signalen kan du se något instabilt.
För att åtgärda detta problem måste vi använda ett medianfilter, i mitt fall exponentiellt glidande medelvärde (EMA).
Du kan prova det här coola och enkla filtret med det här exemplet:
Oroa dig inte, filtret är redan integrerat i koden: s.
Om du använder den andra Arduino (lasern) kan du ladda upp detta exempel i den arduino:
Steg 4: PCB
Jag skulle vilja kasta ett kretskort för detta projekt, med KiCad, och dela det.
Om jag gör ändringar i kretskortet delar jag dem på GitHub -sidan.