Innehållsförteckning:

Pwm2pwm: 4 steg
Pwm2pwm: 4 steg

Video: Pwm2pwm: 4 steg

Video: Pwm2pwm: 4 steg
Video: (2) PWM Limited FLIP FLOP DC - AC Inverter 2024, Oktober
Anonim
Pwm2pwm
Pwm2pwm

Ä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

Komponenter listor
Komponenter listor

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

Anslutningar
Anslutningar
Anslutningar
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

Arduino Sketch
Arduino Sketch
Arduino Sketch
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

PCB
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.

Rekommenderad: