In dieser Anleitung wird erklärt, wie das CoilPad Vibrationen erzeugen kann, wie Frequenz und Polarität seine Bewegung beeinflussen und wie seine Antriebssignale erzeugt werden.
Um das CoilPad zum Vibrieren zu bringen, wird ein elektrischer Strom an die Spule angelegt, der ein Magnetfeld erzeugt. Durch Umkehren der Polarität mit einer festgelegten Frequenz erzeugen wir eine sich wiederholende Gegentaktbewegung, die Vibrationen verursacht.
Die Vibrationsfrequenz lässt sich im Bereich von 1 Hz bis 25 Hz regeln, sodass das CoilPad je nach Eingangssignal 1 bis 25 Mal pro Sekunde schwingen kann. Höhere Frequenzen sind möglich, allerdings hat der Magnet in der Regel nicht genügend Zeit, um zu reagieren.
Wenn Sie es an etwas befestigen, können Sie es an seine neue Resonanzfrequenz anpassen und das Ganze zum Vibrieren bringen.
Um das CoilPad zum Vibrieren zu bringen, ist ein Rechtecksignal erforderlich. Ein H-Brücken-Treiber wie unsere DriveCell wird benötigt, um die Polarität umzukehren und die Vibration zu aktivieren. Die Eingangssignale des Rechtecksignals können mit einfachen digitalWrite()
Befehlen in Arduino erzeugt werden:
#define VIB_PIN1 2
#define VIB_PIN2 3
void setup() {
pinMode(VIB_PIN1, OUTPUT);
pinMode(VIB_PIN2, OUTPUT);
}
void loop() {
digitalWrite(VIB_PIN1, HIGH);
digitalWrite(VIB_PIN2, LOW);
delay(100); // Adjust delay for desired vibration speed
digitalWrite(VIB_PIN1, LOW);
digitalWrite(VIB_PIN2, HIGH);
delay(100);
}
Dieser einfache Code erzeugt eine Rechteckschwingung, die das CoilPad kontinuierlich vibrieren lässt. Sie können die Verzögerungszeit anpassen, um die Vibrationsfrequenz zu ändern.
Das obige Codebeispiel erzeugt eine einfache Rechteckwelle, die die Spule abrupt ein- und ausschaltet. Bei niedrigen Frequenzen ist dies möglicherweise unerwünscht. Um dies zu glätten, können wir an beiden Ausgängen Pulsweitenmodulation (PWM) verwenden. Diese Methode verändert die magnetische Feldstärke schrittweise und reduziert so die mechanische Belastung des CoilPads.
Diese Funktion wird automatisch in unserer DriveCell-Bibliothek verarbeitet:
#include <drivecell.h>
#define IN1_pin1 2
#define IN1_pin2 3
#define IN2_pin1 5
#define IN2_pin2 6
DriveCell CoilPad1(IN1_pin1, IN1_pin2);
DriveCell CoilPad2(IN2_pin1, IN2_pin2);
uint16_t Vibrationszähler = 0;
void setup() {
CoilPad1.Init();
CoilPad2.Init();
CoilPad1.Tone();
CoilPad2.Tone();
}
void-Schleife() {
Verzögerung(1);
Vibrationszähler++;
if (vibration_counter < 2000U) {
CoilPad1.Run(0, 100, 100); // Rechteckwellenmodus
CoilPad2.Run(0, 100, 100); // Rechteckwellenmodus
}
sonst wenn (Vibrationszähler < 8000U) {
CoilPad1.Run(1, 100, 1000); // Sanfter PWM-Wellenmodus
CoilPad2.Run(1, 100, 1000); // Sanfter PWM-Wellenmodus
} anders {
Vibrationszähler = 0U;
}
}
Init()
→ Initialisiert DriveCell und richtet die Eingangspins ein.
Run(smooth, power, speed_ms)
→ Lässt das CoilPad entweder in einer Rechteckwelle oder einer sanfteren PWM-Welle oszillieren.
smooth
→ 1
(PWM-Welle) / 0
(Rechteckwelle)power
→ Magnetfeldstärke (0 bis 100 %)speed_ms
→ Vibrationsgeschwindigkeit in Millisekunden ⚠ Hinweis: Die Funktion Run()
& Drive()
verwendet einen Hochgeschwindigkeits-PWM-Timer und ist daher nur mit CodeCell- und ESP32-basierten Geräten kompatibel.
Mit diesen Techniken können Sie CoilPad zum Vibrieren verwenden. Weitere Codebeispiele und technische Dokumentation finden Sie im DriveCell GitHub Repository !
Erfahren Sie als Erster von neuen Projekten und sichern Sie sich spannende Angebote!
© 2025 Microbots.