Inhaltsverzeichnis:

Pwm2pwm - Gunook
Pwm2pwm - Gunook

Video: Pwm2pwm - Gunook

Video: Pwm2pwm - Gunook
Video: Лекция 08: Методы модуляции фиксированной частоты 2024, Oktober
Anonim
Pwm2pwm
Pwm2pwm

Ändern Sie das PWM-Eingangssignal mit einem Encoder in einen anderen PWM-Signalausgang.

Dieses Projekt wurde geboren, als ich meinen ersten Laserschneider kaufte. Es ist nicht einfach, die PWM-Leistung beim ersten Mal entsprechend dem zu schneidenden Material einzustellen. Also möchte ich ein kleines Gerät erstellen, um die Leistung während der Ausführung zu ändern.

Schritt 1: Komponentenlisten

Komponentenlisten
Komponentenlisten

Für dieses Projekt benötigen Sie:

  • 1 x Oled-Display, in meinem Fall I2C
  • 1 x Arduino, in meinem Fall Arduino Mini Pro für die kleine Dimension.
  • 1 x Trimmer mit Knopf.
  • 3 x 10k Widerstand, 2 für den Pull-Up des Trimmers und einer für den Pull-Down.

Auf dem Bild dieses Schrittes sehen Sie einen anderen Arduino Mini Pro, genannt Laser, weil ich mit diesem Arduino die Fähigkeiten des Lasercontrollers (pwm in Signal) simuliert habe.

Schritt 2: Verbindungen

Anschlüsse
Anschlüsse
Anschlüsse
Anschlüsse

Denken Sie daran, die 3 Widerstände, Pull-Up und Pull-Down, in diesem Schaltplan anzuschließen.

Zum ersten Mal empfehle ich Ihnen, den zweiten Arduino (im vorherigen Schritt Laser genannt) anzuschließen, um zu testen, ob der Code und die Verbindung auch zusammenpassen.

Wenn Sie mit der schematischen Ansicht vertrauter sind, öffnen Sie die Datei pwmTOpwm.svg.

Schritt 3: Arduino-Skizze

Arduino-Skizze
Arduino-Skizze
Arduino-Skizze
Arduino-Skizze

Du kannst meinen Code ganz einfach von der GitHub-Seite kopieren:

Die Hauptfähigkeiten dieses Codes ist die Integration des "pulseIn"-Befehls, mehr Infos:

Wenn Sie versuchen, ein PWM-Signal zu messen, das in den Mikrocontroller eingeht, müssen Sie zählen, wie lange das Signal in der Periode oben (oder unten) bleibt. Sie können den Befehl "pulseIn" verwenden.

Wenn Sie versuchen, das pulseIn-Signal zu zeichnen, können Sie etwas Instabiles sehen.

Um dieses Problem zu beheben, müssen wir einen Medianfilter verwenden, in meinem Fall den exponentiellen gleitenden Durchschnitt (EMA).

Sie können diesen coolen und einfachen Filter mit diesem Beispiel ausprobieren:

Keine Sorge, der Filter ist bereits im Code integriert:p.

Wenn Sie den zweiten Arduino (Laser) verwenden, können Sie dieses Beispiel in diesem Arduino hochladen:

Schritt 4: PCB

PCB
PCB

Ich möchte mit KiCad eine Leiterplatte für dieses Projekt erstellen und teilen.

Wenn ich Änderungen am PCB vornehme, werde ich sie auf der GitHub-Seite teilen.