In dieser Anleitung konzentrieren wir uns auf die Steuerung der Polarität und der magnetischen Feldstärke der CoilCell, wodurch sie sich ideal für Anwendungen wie mechanische Flip-Dot-Pixel und andere magnetische Pixel eignet.
CoilCell funktioniert, indem Strom durch die Spule geleitet wird. Dadurch entsteht ein Magnetfeld, dessen Polarität von der Stromrichtung abhängt. Da CoilCell über eine integrierte H-Brücke verfügt, kann es die Polarität und Stärke der Spule direkt steuern, ohne dass ein externer Treiber wie DriveCell erforderlich ist.
Anstatt die Spule einfach ein- oder auszuschalten, verwenden wir die Pulsweitenmodulation (PWM), um die magnetische Stärke fein einzustellen und die Polarität nach Bedarf umzukehren.
Mehrere Faktoren beeinflussen die Polaritätskontrolle und die Feldstärke:
Denken Sie daran, dass CoilCell in zwei Konfigurationen verfügbar ist:
Wenn Sie die CoilCell-Bibliothek verwenden, zeigt das folgende Beispiel, wie Sie die Polarität umkehren und die Stärke anpassen:
#include <CoilCell.h>
#define COIL_PIN1 2
#define COIL_PIN2 3
CoilCell myCoilCell(COIL_PIN1, COIL_PIN2);
void setup() {
myCoilCell.Init();
}
void loop() {
myCoilCell.Drive(true, 100); // Strong north pole field
delay(3000);
myCoilCell.Drive(false, 100); // Starkes Südpolfeld
Verzögerung (3000);
myCoilCell.Drive(true, 50); // Schwächeres Nordpolfeld
Verzögerung (3000);
myCoilCell.Drive(false, 50); // Schwächeres Südpolfeld
Verzögerung (3000);
}
⚠ Hinweis: Die Drive
()
Funktion verwendet einen Hochgeschwindigkeits-PWM-Timer und ist daher nur mit CodeCell- und ESP32-basierten Geräten kompatibel.
Init()
→ Initialisiert CoilCell und richtet die Steuerpins ein.Drive(bool direction, uint8_t power_percent)
true
(Nordpol) / false
(Südpol)Durch abwechselnde Polarität kann CoilCell zum Umdrehen magnetischer Elemente verwendet werden, beispielsweise eines Flipdot-Pixels in Kombination mit einem Magneten. Um dies zu glätten, können wir Pulsweitenmodulation (PWM) an beiden Ausgängen verwenden. Diese Methode verändert die magnetische Feldstärke schrittweise und reduziert so die mechanische Belastung der CoilCell.
Diese Funktion wird automatisch in unserer CoilCell-Bibliothek verarbeitet:
#include <coilcell.h>
#define COIL_PIN1 2
#define COIL_PIN2 3
CoilCell myCoilCell(COIL_PIN1, COIL_PIN2);
uint16_t vibration_counter = 0;
void setup() {
myCoilCell.Init();
myCoilCell.Tone();
}
void loop() {
myCoilCell.Vibrate(1, 75, 1000); // Flip at 75% power every 1sec
}
Init()
→ Initialisiert CoilCell und richtet die Eingangspins ein.Vibrate(smooth, power, speed_ms)
→ Lässt die CoilCell entweder in einer Rechteckwelle oder einer glatteren PWM-Welle oszillieren.
smooth
→ 1 (PWM-Welle) / 0 (Rechteckwelle)power
→ Magnetfeldstärke (0 bis 100 %)speed_ms
→ Vibrationsgeschwindigkeit in Millisekunden ⚠ Hinweis: Die Funktion „ Vibrate
()
verwendet einen Hochgeschwindigkeits-PWM-Timer und ist daher nur mit CodeCell- und ESP32-basierten Geräten kompatibel.
Mit diesen Techniken können Sie die magnetische Polarität von CoilCell steuern. Weitere Codebeispiele und technische Dokumentation finden Sie im CoilCell GitHub Repository !
Erfahren Sie als Erster von neuen Projekten und sichern Sie sich spannende Angebote!
© 2025 Microbots.