Menü
Microbots
0
  • Machen
    • Erste Schritte
    • Maker-Builds
    • Ausbildung
  • Geschäft
    • Maker-Module
    • Maker-Pakete
    • Werkzeuge und Ausrüstung
    • Roboter & Displays
  • Um
    • Unsere Geschichte
    • Kontakt
    • FAQs
  • Deutsch
  • Ihr Warenkorb ist leer
Microbots
  • Machen
    • Erste Schritte
    • Maker-Builds
    • Ausbildung
  • Geschäft
    • Maker-Module
    • Maker-Pakete
    • Werkzeuge und Ausrüstung
    • Roboter & Displays
  • Um
    • Unsere Geschichte
    • Kontakt
    • FAQs
  • Sprache

  • 0 0

Spulenzelle

CoilCell - Making Magnets Bounce

CoilCell – Magnete zum Hüpfen bringen

CoilCell ist ein kompakter magnetischer Aktuator, der Magnete bewegen und sogar springen lassen kann! In dieser Anleitung zeigen wir, wie man mithilfe der CoilCell einen kleinen Kugelmagneten mit 5 mm Durchmesser hüpfen lässt, indem kurze Impulse zur Bewegung eingesetzt werden.

Wie es funktioniert

CoilCell erzeugt ein Magnetfeld, wenn elektrischer Strom durch die Spule fließt. Durch einen kurzen Impuls erzeugen wir eine schnelle magnetische Abstoßung, die den Magneten nach oben treibt. Je nach Leistung des CoilCell-Moduls variiert der Effekt:

  • 1W CoilCell : Erzeugt einen kleinen Sprung von einigen Millimetern, gerade genug, damit der Magnet aufgrund der Anziehung zur CoilCell zurückkehrt
  • 2,5 W CoilCell : Schießt den Magneten viel höher (~10 cm)

Sicherheitshinweis

Tragen Sie beim Einsatz der 2,5 W Spulenzelle mit 200 Windungen immer eine Schutzbrille. Die Abstoßungskraft kann dazu führen, dass kleine Magnete unvorhersehbar nach oben schießen.

Erzeugung des Impulses

Zur Erzeugung eines Impulses verwenden wir die CoilCell-Bibliothek. Das folgende Beispiel zeigt, wie man einen 5-mm-Kugelmagneten mit einem 20-ms-Einschaltimpuls und einer anschließenden Verzögerung zum Rückprallen bringt:

 #include <CoilCell.h>

 /* Learn more at microbots.io */
 /* In this example, we initialize a CoilCell and make a 5mm diameter ball magnet bounce */

 #define IN1_pin1 5
 #define IN1_pin2 6

 CoilCell myCoilCell(IN1_pin1, IN1_pin2);

 void setup() {
 myCoilCell.Init(); /* Initialize the CoilCell */
 }

 void loop() {
 myCoilCell.Bounce(0, 20); /* Bounce the magnet up for 20ms */
 delay(600); /* Attract the magnet back down for 600ms */
 }

Die Funktion verstehen:

  • Bounce (Richtung, Dauer)
    • direction : Die Impulsrichtung (0 für normales Prellverhalten).
    • duration : Zeit in Millisekunden für den Aktivierungsimpuls.

Durch Optimieren der duration und delay können Sie den Rückpralleffekt feinabstimmen. Ein längerer Impuls drückt den Magneten höher, während eine kürzere Verzögerung möglicherweise nicht ausreicht, um vor dem nächsten Rückprall vollständig zurückzukehren.

Abschluss

Dies hat uns gezeigt, wie man mit CoilCell einen kleinen Kugelmagneten zum Hüpfen bringt! Weitere Codebeispiele und technische Dokumentation finden Sie im CoilCell GitHub Repository !

Vollständigen Artikel anzeigen

CoilCell - Turning it into an Electromagnet

CoilCell – So wird es zum Elektromagneten

CoilCell kann als schwacher Elektromagnet verwendet werden, anstatt mit Magneten zu interagieren. Durch ein Upgrade auf die Option „Eisen-Rückplatte“ können Sie die Spitzenstärke der 2,5-W-CoilCell auf 17 mT erhöhen und sie so in einen schwachen Elektromagneten verwandeln, der kleine Metallgegenstände wie Büroklammern anzieht.

⚠ Achtung: Bei Verwendung der 2,5-W-Spulenzelle mit 200 Windungen kann sich diese (insbesondere die Eisenrückplatte) auf bis zu 110 °C erhitzen. Halten Sie Ihre Hände von heißen Bereichen fern, um Verletzungen zu vermeiden, und schalten Sie die Spule bei Nichtgebrauch immer aus.

Wie es funktioniert

CoilCell funktioniert, indem Strom durch die Spule geleitet wird und so ein Magnetfeld erzeugt wird. Anstatt die Polarität zu steuern, um mit Magneten zu interagieren, können wir die Feldstärke maximieren, um kleine Metallobjekte anzuziehen.

Da CoilCell über eine integrierte H-Brücke verfügt, kann es die magnetische Stärke der Spule direkt steuern, ohne dass ein externer Treiber erforderlich ist. Durch Ziehen eines der Eingangspins auf HIGH arbeitet CoilCell mit maximaler magnetischer Leistung. Falls Anpassungen des Magnetfelds erforderlich sind, kann die CoilCell-Bibliothek verwendet werden, um die Leistung mittels Pulsweitenmodulation (PWM) anzupassen und die Intensität fein abzustimmen.

Variation der magnetischen Feldstärke

Das folgende Beispiel zeigt, wie die Stärke des Elektromagneten eingestellt wird:

#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); // Maximum power
 delay(3000);

 myCoilCell.Drive(true, 75); // 75% power
 delay(3000);

 myCoilCell.Drive(true, 50); // 50% power
 delay(3000);

 myCoilCell.Drive(true, 25); // 25% power
 delay(3000);
 }

⚠ Hinweis: Die Drive() Funktion verwendet einen Hochgeschwindigkeits-PWM-Timer und ist daher nur mit CodeCell- und ESP32-basierten Geräten kompatibel.

Die Funktionen verstehen:

  • Init() → Initialisiert CoilCell und richtet die Steuerpins ein.
  • Drive(bool direction, uint8_t power_percent)
    • Richtung : true (aktiviert den Elektromagneten) / false (in diesem Fall nicht verwendet)
    • power_percent : Stärke der Magnetkraft (0 bis 100 %)

Abschluss

Dies zeigte uns, wie man eine CoilCell mit Strom versorgt, steuert und als schwachen Elektromagneten nutzt, der Büroklammern und andere leichte Metallgegenstände anziehen kann. Weitere Codebeispiele und technische Dokumentation finden Sie im CoilCell GitHub Repository !

Vollständigen Artikel anzeigen

CoilCell - Controlling Magnetic Polarity

CoilCell – Steuerung der magnetischen Polarität

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.

Wie es funktioniert

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.

Umkehren der Polarität und Anpassen der Stärke

Mehrere Faktoren beeinflussen die Polaritätskontrolle und die Feldstärke:

  • Spannungspegel – Die maximale Spannung beträgt 5 V und bietet die höchste Magnetkraft.
  • PWM-Frequenz – Um hörbare Geräusche zu vermeiden, wird eine Frequenz von 20 kHz empfohlen.
  • Belastungsbedingungen – Die Leistung der Spule hängt von der Größe und Stärke des Magneten ab.

Denken Sie daran, dass CoilCell in zwei Konfigurationen verfügbar ist:

  • 1W Spulenzelle: Hergestellt aus einer 1,3 mm dünnen, 4-lagigen Leiterplatte mit einer Spiralspule mit 70 Windungen und einem Spitzenmagnetfeld von 2,3 mT.
  • 2,5-W-Spulenzelle: Hergestellt aus einer 2,6 mm dünnen, 14-lagigen Leiterplatte mit einer Spiralspule mit 200 Windungen und einem Spitzenmagnetfeld von 10 mT, das mit einer Eisenrückplatte auf 17 mT erhöht werden kann.

Verwenden von CoilCell zur Polaritätskontrolle

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.

Die Funktionen verstehen:

  • Init() → Initialisiert CoilCell und richtet die Steuerpins ein.
  • Drive(bool direction, uint8_t power_percent)
    • Richtung : true (Nordpol) / false (Südpol)
    • power_percent : Stärke der Magnetkraft (0 bis 100 %)

Umkehrung der Polarität

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
 }

Die Funktionen verstehen:

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

Abschluss

Mit diesen Techniken können Sie die magnetische Polarität von CoilCell steuern. Weitere Codebeispiele und technische Dokumentation finden Sie im CoilCell GitHub Repository !

Vollständigen Artikel anzeigen

CoilCell - Creating Vibration

CoilCell - Vibration erzeugen

In dieser Anleitung wird erklärt, wie die CoilCell Vibrationen erzeugen kann, wie Frequenz und Polarität ihre Bewegung beeinflussen und wie ihre Antriebssignale erzeugt werden.

Wie funktioniert es?

Um CoilCell zum Vibrieren zu bringen, wird elektrischer Strom an die Spule angelegt, wodurch ein Magnetfeld erzeugt wird. Durch Umkehren der Polarität mit einer festgelegten Frequenz erzeugen wir eine sich wiederholende Gegentaktbewegung, die Vibrationen verursacht.

Die Schwingfrequenz lässt sich im Bereich von 1 Hz bis 25 Hz regeln, sodass CoilCell je nach Eingangssignal 1 bis 25 Schwingungen pro Sekunde ausführen 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.

Erzeugen einer Rechteckwelle zur Vibration

Um die CoilCell zum Schwingen zu bringen, ist ein Rechtecksignal erforderlich. Im Gegensatz zum CoilPad verfügt die CoilCell über einen integrierten H-Brücken-Treiber, sodass kein externer Treiber wie DriveCell benötigt wird. Die Eingangssignale der Rechteckwelle 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); // Verzögerung für gewünschte Vibrationsgeschwindigkeit anpassen
 }

Dieser einfache Code erzeugt eine Rechteckschwingung, die die CoilCell kontinuierlich vibrieren lässt. Sie können die Verzögerungszeit anpassen, um die Vibrationsfrequenz zu ändern.

Vibrationsoptimierung mit PWM

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 der Spulenzelle.

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() {
 delay(1);
 vibration_counter++;
 if (vibration_counter < 2000U) { 
myCoilCell.Vibrate(0, 100, 100); // Rechteckwellenmodus
 }
 sonst wenn (Vibrationszähler < 8000U) {
 myCoilCell.Vibrate(1, 100, 1000); // Sanfter PWM-Wellenmodus
 } anders {
 Vibrationszähler = 0U;
 }
 }

Die Funktionen verstehen:

  • 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 Run() verwendet einen Hochgeschwindigkeits-PWM-Timer und ist daher nur mit CodeCell- und ESP32-basierten Geräten kompatibel.

Abschluss

Mit diesen Techniken können Sie CoilCell zum Vibrieren verwenden. Weitere Codebeispiele und technische Dokumentation finden Sie im CoilCell GitHub Repository !

Vollständigen Artikel anzeigen

Using CoilCell to Generate Buzzing Tones

Verwenden von CoilCell zum Erzeugen von Summtönen

CoilCell ist nicht nur ein kompakter Spulenaktor – es kann auch Summtöne erzeugen, ähnlich einem Piezo-Summer. Durch das Senden eines Hochfrequenzsignals kann CoilCell hörbare Töne und Vibrationen erzeugen und eignet sich daher für Warnsysteme, interaktive Reaktionen und kreative Klanginstallationen.

Im Gegensatz zu CoilPad verfügt CoilCell über einen integrierten H-Bridge-Treiber, wodurch die Integration in Mikrocontroller-Projekte noch einfacher wird, ohne dass ein externer Treiber wie DriveCell erforderlich ist.

Wie CoilCell Klang erzeugt

CoilCell nutzt eine integrierte H-Brücke, um die Stromrichtung durch eine dünne Kupferspule schnell umzuschalten. Diese kann mit einem N52-Neodym-Magneten interagieren und so Bewegung erzeugen. Durch Umschalten des Stroms mit einer hörbaren Frequenz (~100 Hz–10 kHz) kann CoilCell Töne ähnlich einem Lautsprecher oder Piezo-Summer erzeugen.

Durch Variieren der Frequenz können Sie:

  • Grundtöne abspielen → Nützlich für Benachrichtigungen
  • Melodien abspielen → Melodien wie das Super Mario Lied erzeugen
  • Integrieren Sie in interaktive Designs → Fügen Sie Projekten akustisches Feedback hinzu

Verdrahtung CoilCell

Da CoilCell bereits eine H-Brücke enthält, ist die Verdrahtung unkompliziert:

Grundlegender Anschluss für Buzzing CoilCell

  • CoilCell mit Mikrocontroller verbinden:
    • IN1 → Beliebiger digitaler Pin
    • IN2 → Ein weiterer digitaler Pin
  • Stromanschlüsse:
    • VCC → 5 V maximal
    • GND → Gemeinsame Masse mit dem Mikrocontroller

Steuern von CoilCell zum Abspielen von Tönen

CoilCell kann Töne mithilfe von PWM-Signalen erzeugen. Unten sehen Sie ein Beispiel für die Verwendung der CoilCell-Bibliothek zur Erzeugung von Summtönen.

1. Installieren der Bibliothek

  1. Öffnen Sie die Arduino IDE
  2. Zum Bibliotheksmanager
  3. Suchen Sie nach CoilCell und installieren Sie es

2. Codebeispiel zum Abspielen eines Tons auf CoilCell

Dieses Beispiel macht CoilCell summt wie ein Lautsprecher und spielt eine Tonfolge ab:

 #include <CoilCell.h>

 #define IN1_pin1 2
 #define IN1_pin2 3

 CoilCell myCoilCell(IN1_pin1, IN1_pin2);

 void setup() {
 myCoilCell.Init(); /* Initialize FlatFlap with DriveCell */
 myCoilCell.Tone(); /* Play a fixed tone*/
delay(500); } void loop() { myCoilCell.Buzz(100); /* Buzz at 100 microseconds */ }

Die Funktionen verstehen:

  • Buzz(duration) → Erzeugt einen Summeneffekt von 100 Mikrosekunden und steuert die Vibrationsgeschwindigkeit.
  • Tone() → Spielt ein hörbarer Ton, dessen Frequenz automatisch variiert.

Tipp: Durch die Anpassung der Durch die Frequenz und den Arbeitszyklus können Sie verschiedene Musiknoten, Alarme oder Feedback-Töne erzeugen.

3. Das Super Mario-Thema auf CoilCell abspielen

Unten sehen Sie ein weiteres Codebeispiel, das das Super Mario-Lied mithilfe von CoilCell abspielt:

 
/* Arduino Mario Bros Tunes With Piezo Buzzer and PWM

 by : ARDUTECH
 Connect the positive side of the Buzzer to pin 3,
 then the negative side to a 1k ohm resistor. Connect
 the other side of the 1 k ohm resistor to
 ground(GND) pin on the Arduino.
 */


 #define NOTE_B0 31
 #define NOTE_C1 33
 #define NOTE_CS1 35
 #define NOTE_D1 37
 #define NOTE_DS1 39
 #define NOTE_E1 41
 #define NOTE_F1 44
 #define NOTE_FS1 46
 #define NOTE_G1 49
 #define NOTE_GS1 52
 #define NOTE_A1 55
 #define NOTE_AS1 58
 #define NOTE_B1 62
 #define NOTE_C2 65
 #define NOTE_CS2 69 
#define NOTE_D2 73
 #define NOTE_DS2 78
 #define NOTE_E2 82
 #define NOTE_F2 87
 #define NOTE_FS2 93
 #define NOTE_G2 98
 #define NOTE_GS2 104
 #define NOTE_A2 110
 #define NOTE_AS2 117
 #define NOTE_B2 123
 #define NOTE_C3 131
 #define NOTE_CS3 139
 #define NOTE_D3 147
 #define NOTE_DS3 156
 #define NOTE_E3 165
 #define NOTE_F3 175
 #define NOTE_FS3 185
 #define NOTE_G3 196
 #define NOTE_GS3 208
 #define NOTE_A3 220
 #define NOTE_AS3 233
 #define NOTE_B3 247
 #define NOTE_C4 262
 #define NOTE_CS4 277
 #define NOTE_D4 294
 #define NOTE_DS4 311
 #define NOTE_E4 330
 #define NOTE_F4 349
 #define NOTE_FS4 370
 #define NOTE_G4 392
 #define NOTE_GS4 415
 #define NOTE_A4 440
 #define NOTE_AS4 466
 #define NOTE_B4 494
 #define NOTE_C5 523
 #define NOTE_CS5 554
 #define NOTE_D5 587
 #define NOTE_DS5 622
 #define NOTE_E5 659
 #define NOTE_F5 698
 #define NOTE_FS5 740
 #define NOTE_G5 784
 #define NOTE_GS5 831
 #define NOTE_A5 880
 #define NOTE_AS5 932
 #define NOTE_B5 988
 #define NOTE_C6 1047
 #define NOTE_CS6 1109
 #define NOTE_D6 1175
 #define NOTE_DS6 1245
 #define NOTE_E6 1319 
#define NOTE_F6 1397
 #define NOTE_FS6 1480
 #define NOTE_G6 1568
 #define NOTE_GS6 1661
 #define NOTE_A6 1760
 #define NOTE_AS6 1865
 #define NOTE_B6 1976
 #define NOTE_C7 2093
 #define NOTE_CS7 2217
 #define NOTE_D7 2349
 #define NOTE_DS7 2489
 #define NOTE_E7 2637
 #define NOTE_F7 2794
 #define NOTE_FS7 2960
 #define NOTE_G7 3136
 #define NOTE_GS7 3322
 #define NOTE_A7 3520
 #define NOTE_AS7 3729
 #define NOTE_B7 3951
 #define NOTE_C8 4186
 #define NOTE_CS8 4435
 #define NOTE_D8 4699
 #define NOTE_DS8 4978

 #Melodie definierenPin 5
 //Mario-Hauptthemamelodie
 int Melodie[] = {
 HINWEIS_E7, HINWEIS_E7, 0, HINWEIS_E7,
 0, HINWEIS_C7, HINWEIS_E7, 0,
 HINWEIS_G7, 0, 0, 0,
 HINWEIS_G6, 0, 0, 0,

 HINWEIS_C7, 0, 0, HINWEIS_G6,
 0, 0, HINWEIS_E6, 0,
 0, HINWEIS_A6, 0, HINWEIS_B6,
 0, HINWEIS_AS6, HINWEIS_A6, 0,

 HINWEIS_G6, HINWEIS_E7, HINWEIS_G7,
 HINWEIS_A7, 0, HINWEIS_F7, HINWEIS_G7,
 0, HINWEIS_E7, 0, HINWEIS_C7,
 HINWEIS_D7, HINWEIS_B6, 0, 0,

 HINWEIS_C7, 0, 0, HINWEIS_G6,
 0, 0, HINWEIS_E6, 0,
 0, HINWEIS_A6, 0, HINWEIS_B6,
 0, HINWEIS_AS6, HINWEIS_A6, 0,

 HINWEIS_G6, HINWEIS_E7, HINWEIS_G7,
 HINWEIS_A7, 0, HINWEIS_F7, HINWEIS_G7,
 0, HINWEIS_E7, 0, HINWEIS_C7, 
HINWEIS_D7, HINWEIS_B6, 0, 0
 };
 //Mario spielt das Tempo
 int tempo[] = {
 12, 12, 12, 12,
 12, 12, 12, 12,
 12, 12, 12, 12,
 12, 12, 12, 12,

 12, 12, 12, 12,
 12, 12, 12, 12,
 12, 12, 12, 12,
 12, 12, 12, 12,

 9, 9, 9,
 12, 12, 12, 12,
 12, 12, 12, 12,
 12, 12, 12, 12,

 12, 12, 12, 12,
 12, 12, 12, 12,
 12, 12, 12, 12,
 12, 12, 12, 12,

 9, 9, 9,
 12, 12, 12, 12,
 12, 12, 12, 12,
 12, 12, 12, 12,
 };
 //Unterweltmelodie
 int underworld_melody[] = {
 NOTE_C4, NOTE_C5, NOTE_A3, NOTE_A4,
 HINWEIS_AS3, HINWEIS_AS4, 0,
 0,
 NOTE_C4, NOTE_C5, NOTE_A3, NOTE_A4,
 HINWEIS_AS3, HINWEIS_AS4, 0,
 0,
 HINWEIS_F3, HINWEIS_F4, HINWEIS_D3, HINWEIS_D4,
 HINWEIS_DS3, HINWEIS_DS4, 0,
 0,
 HINWEIS_F3, HINWEIS_F4, HINWEIS_D3, HINWEIS_D4,
 HINWEIS_DS3, HINWEIS_DS4, 0,
 0, HINWEIS_DS4, HINWEIS_CS4, HINWEIS_D4,
 HINWEIS_CS4, HINWEIS_DS4,
 HINWEIS_DS4, HINWEIS_GS3,
 HINWEIS_G3, HINWEIS_CS4,
 NOTE_C4, NOTE_FS4, NOTE_F4, NOTE_E3, NOTE_AS4, NOTE_A4,
 HINWEIS_GS4, HINWEIS_DS4, HINWEIS_B3,
 HINWEIS_AS3, HINWEIS_A3, HINWEIS_GS3,
 0, 0, 0
 };
 //Unterwelt-Tempo
 int underworld_tempo[] = {
 12, 12, 12, 12,
 12, 12, 6,
 3,
 12, 12, 12, 12,
 12, 12, 6, 
3,
 12, 12, 12, 12,
 12, 12, 6,
 3,
 12, 12, 12, 12,
 12, 12, 6,
 6, 18, 18, 18,
 6, 6,
 6, 6,
 6, 6,
 18, 18, 18, 18, 18, 18,
 10, 10, 10,
 10, 10, 10,
 3, 3, 3
 };

 void setup(void)
 {
 pinMode(5, OUTPUT);//Summer
 pinMode(6, AUSGABE);
 digitalWrite(6, LOW);

 }
 void-Schleife ()
 {
 //sing die Melodien
 singen(1);
 singen(1);
 singen(2);
 }
 int Lied = 0;

 void sing(int s) {
 // über die Noten der Melodie iterieren:
 Lied = s;
 wenn (Lied == 2) {
 Serial.println(" 'Unterwelt-Thema'");
 int-Größe = Größe von (Underworld_Melody) / Größe von (int);
 für (int thisNote = 0; thisNote < Größe; thisNote++) {

 // Um ​​die Notendauer zu berechnen, nehmen Sie eine Sekunde
 // geteilt durch den Notentyp.
 //z. B. Viertelnote = 1000 / 4, Achtelnote = 1000/8 usw.
 int noteDuration = 1000 / underworld_tempo[dieseNote];

 Buzz (MelodyPin, Unterweltmelodie [diese Note], Notendauer);

 // Um ​​die Noten zu unterscheiden, legen Sie eine Mindestzeit zwischen ihnen fest.
 // die Dauer der Note + 30 % scheint gut zu funktionieren: 
int pauseBetweenNotes = Notendauer * 1,30;
 Verzögerung (Pause zwischen den Noten);

 // Tonwiedergabe stoppen:
 Buzz (Melodie-Pin, 0, Notendauer);

 }

 } anders {

 Serial.println(" 'Mario-Thema'");
 int-Größe = Größe von (Melodie) / Größe von (int);
 für (int thisNote = 0; thisNote < Größe; thisNote++) {

 // Um ​​die Notendauer zu berechnen, nehmen Sie eine Sekunde
 // geteilt durch den Notentyp.
 //z. B. Viertelnote = 1000 / 4, Achtelnote = 1000/8 usw.
 int noteDuration = 1000 / tempo[dieseNote];

 Buzz (MelodyPin, Melodie [diese Note], Notendauer);

 // Um ​​die Noten zu unterscheiden, legen Sie eine Mindestzeit zwischen ihnen fest.
 // die Dauer der Note + 30 % scheint gut zu funktionieren:
 int pauseBetweenNotes = Notendauer * 1,30;
 Verzögerung (Pause zwischen den Noten);

 // Tonwiedergabe stoppen:
 Buzz (Melodie-Pin, 0, Notendauer);

 }
 }
 }

 void buzz(int targetPin, lange Frequenz, lange Länge) {
 long delayValue = 1000000 / Frequenz / 2; // Berechnen Sie den Verzögerungswert zwischen den Übergängen 
//// 1 Sekunde im Wert von Mikrosekunden, geteilt durch die Frequenz, dann in zwei Hälften geteilt, da
 //// Jeder Zyklus besteht aus zwei Phasen
 long numCycles = Frequenz * Länge / 1000; // Berechnen Sie die Anzahl der Zyklen für das richtige Timing
 //// multiplizieren Sie die Frequenz, die tatsächlich Zyklen pro Sekunde entspricht, mit der Anzahl der Sekunden, bis
 //// Holen Sie sich die Gesamtzahl der zu produzierenden Zyklen
 for (long i = 0; i < numCycles; i++) { // für die berechnete Zeitspanne...
 digitalWrite(targetPin, HIGH); // schreibe den Summer-Pin auf High, um die Membran herauszudrücken
 delayMicroseconds(delayValue); // warte auf den berechneten Verzögerungswert
 digitalWrite(targetPin, LOW); // schreibe den Summer-Pin auf Low, um die Membran zurückzuziehen
 delayMicroseconds(delayValue); // erneut warten oder den berechneten Verzögerungswert
 }

 }

Abschluss

Wie wir gesehen haben, kann CoilCell auch summende Töne erzeugen – weitere Codebeispiele und technische Dokumentation finden Sie im CoilCell GitHub-Repository !

Vollständigen Artikel anzeigen

Understanding CoilCell Circuitry

CoilCell-Schaltkreise verstehen

CoilCell ist eine dünne planare PCB-Spule auf einer mehrschichtigen Leiterplatte mit integriertem Treiber, der die magnetische Steuerung vereinfacht. In diesem Beitrag untersuchen wir ihre Schaltung und Funktionsweise.

Was ist CoilCell?

CoilCell ist eine PCB-basierte Planarspule, die ein Magnetfeld erzeugt, das mit Magneten interagieren kann. Sie ist in zwei Konfigurationen erhältlich:

  • 1-W-Spulenzelle: Hergestellt aus einer 1,3 mm dünnen, 4-lagigen Leiterplatte mit einer Spiralspule mit 70 Windungen und einem Spitzenmagnetfeld von 2,3 mT.
  • 2,5-W-Spulenzelle: Hergestellt aus einer 2,6 mm dünnen, 14-lagigen Leiterplatte mit einer Spiralspule mit 200 Windungen und einem Spitzenmagnetfeld von 10 mT, das mit einer Eisenrückplatte auf 17 mT erhöht werden kann.

Mit seinem DRV8837 H-Brückentreiber ermöglicht CoilCell die Steuerung des Stromflusses und bestimmt sowohl die magnetische Polarität als auch die Stärke über die beiden Eingangssignale.

Das Herz von CoilCell: DRV8837 H-Brücke

Im Gegensatz zum CoilPad (das einen externen Treiber benötigt) verfügt dieses CoilCell-Modul über einen integrierten DRV8837 H-Brücken-Treiber. Dieser ermöglicht einen bidirektionalen Stromfluss, sodass die Spule ein Nord- oder Südmagnetfeld erzeugen kann:

  • Magnetischer Norden: IN1 = VCC/PWM , IN2 = GND
  • Magnetisch Süd: IN1 = GND , IN2 = VCC/PWM
  • Aus-Zustand: IN1 = GND , IN2 = GND

For added clarity, an onboard LED provides visual feedback, indicating the polarity of the output.

Hauptmerkmale des DRV8837:

  • Überstromschutz
  • Unterspannungsabschaltung
  • Thermische Abschaltung
  • Unterstützt bis zu 1,8 A Dauerstrom

Diese Sicherheitsfunktionen helfen, Schäden durch Überhitzung oder falsche Verdrahtung zu verhindern und gewährleisten einen zuverlässigen Betrieb.

Erste Schritte mit CoilCell

Um mit der Verwendung von CoilCell zu beginnen, folgen Sie diesen Schritten:

1. Verdrahtung von CoilCell mit Ihrem Schaltkreis

Löten Sie die Strom- und Eingangspins an Ihren Mikrocontroller.

  • Durch die Einstellung von IN1 auf „hoch“ wird ein Nordmagnetfeld erzeugt
  • Durch die Einstellung von IN2 auf „High“ wird ein Südmagnetfeld erzeugt
  • Wenn Sie sowohl IN1 als auch IN2 auf GND setzen, wird die Spule ausgeschaltet.

Der VCC muss an eine maximale Versorgungsspannung von 5 V angeschlossen werden.

Bei Verwendung mehrerer CoilCells ermöglichen die seitlichen Pads eine einfache Reihenschaltung, um Strom- und Steuersignale über mehrere Einheiten hinweg zu teilen.

2. Codieren mit der CoilCell-Bibliothek

Zur Vereinfachung der Programmierung hatten wir eine CoilCell-Bibliothek mit einfach zu verwendenden Funktionen.

Schritte zum Installieren der Bibliothek:

  1. Öffnen Sie die Arduino IDE
  2. Gehen Sie zum Bibliotheksmanager und suchen Sie nach „CoilCell“.
  3. Klicken Sie auf Installieren
  4. Laden Sie die Beispielskizzen, um mit dem Experimentieren zu beginnen!

3. Die Dinge klein halten

Nutzen Sie unser CodeCell-Modul, das Pin-zu-Pin-kompatibel mit CoilCell ist. Mit CodeCell können Sie drahtlose Steuerung und interaktive Sensorik hinzufügen und so neue Möglichkeiten für Ihre Projekte erschließen.

Sicherheitstipps und Wärmemanagement

Überlegungen zur Wärme

  • Die 2,5 W starke Spulenzelle mit 200 Windungen kann Temperaturen von bis zu 110 °C erreichen – insbesondere in Kombination mit einer Eisenrückplatte.
  • Stellen Sie sicher, dass 3D-gedruckte Teile oder Materialien in der Nähe der Spule hohen Temperaturen standhalten können.
  • Reduzieren Sie die Leistungsabgabe, indem Sie den PWM-Arbeitszyklus anpassen, um die Wärmeentwicklung zu steuern.

Allgemeine Sicherheit

  • Vermeiden Sie bei Betrieb mit hoher Leistung den direkten Kontakt mit der Spule.
  • Verwenden Sie einen Augenschutz, wenn Sie mit kleinen Magneten arbeiten, die bei hoher Geschwindigkeit abgestoßen werden können.
  • Stellen Sie sicher, dass alle gelöteten Drähte oder Steckbrücken nicht magnetisch sind, um unbeabsichtigte magnetische Störungen zu vermeiden.

Abschluss

Mit dem CoilCell-Modul haben Sie alles, was Sie zum Experimentieren und Bauen Ihrer eigenen magnetischen Aktuatoren benötigen! Sehen Sie sich hier die CoilCell-Schaltpläne an, um den Schaltungsaufbau kennenzulernen und ihn in Ihr nächstes Projekt zu integrieren!

Vollständigen Artikel anzeigen

CoilCell Basics: Your First Steps

CoilCell-Grundlagen: Ihre ersten Schritte

CoilCell ist eine kompakte Planarspule, die für verschiedene DIY-Projekte entwickelt wurde. Egal, ob Sie gerade erst anfangen oder ein erfahrener Hersteller sind, CoilCell bietet eine einfache Integration, um Ihre Kreationen zu vereinfachen. In diesem Tutorial erklären wir:

  • Was ist eine CoilCell und wie funktioniert sie?
  • Erste Schritte mit der Arduino-Softwarebibliothek
  • Programmieren Sie einen Ballmagneten so, dass er alle paar Millisekunden hüpft
  • Machen Sie die CoilCell interaktiver mit den CodeCell -Sensoren

Was ist CoilCell?
CoilCell ist eine dünne, planare Spule auf einer mehrschichtigen Leiterplatte mit integriertem Treiber, der die Steuerung der magnetischen Polarität und Stärke vereinfacht. Sie ist in zwei Konfigurationen erhältlich:

  • 1-W-Spulenzelle: 70 Windungen mit einem Spitzenmagnetfeld von 2,3 mT.
  • 2,5 W Spulenzelle: 200 Windungen, mit einem Spitzenmagnetfeld von 10 mT, das mit einer Eisenrückplatte auf 17 mT erhöht werden kann.

Magnetische Anwendungen

  • N52-Magnete: Verwenden Sie leichte N52-Kugel- oder Scheibenmagnete für dynamische Interaktionen wie das Hüpfen oder Schütteln von Objekten, indem Sie ihre Resonanzfrequenz ermitteln.
  • FlipDot: Erstellen Sie interaktive mechanische Pixel, indem Sie einen Magneten drehen, um ihn umzudrehen. Bauen Sie Ihr eigenes 3D-gedrucktes magnetisches FlipDot-Pixel und fügen Sie weitere hinzu, um ein Mini-Display zu erhalten. Ihre Ohren und Augen werden es lieben!
  • Eisen-Rückplatte: Aktualisieren Sie die 2,5-W-Spulenzelle, um ihre Spitzenstärke auf 17 mT zu erhöhen. So verwandeln Sie sie in einen schwachen Elektromagneten, der kleine Metallobjekte wie Büroklammern anziehen kann.
  • Magnetwürfel: Führen Sie lustige Tricks mit unserem Spezialwürfel aus, der im Inneren einen versteckten Magneten enthält, mit dem Sie automatisches Schütteln erzeugen oder das Würfelergebnis mit der 2,5-W- CoilCell beeinflussen können.

Sicherheitstipps
Bei Verwendung der 2,5 W 200-Windungen -Spulenzelle kann es zu einer Erhitzung von bis zu 110 °C kommen, insbesondere in Kombination mit der Eisenrückplatte. Befolgen Sie diese Vorsichtsmaßnahmen:

  • Halten Sie Ihre Hände von heißen Oberflächen fern und schalten Sie die Spule aus, wenn sie nicht verwendet wird.
  • Stellen Sie sicher, dass 3D-gedruckte Teile und Materialien hohen Temperaturen standhalten.
  • Verwenden Sie außerdem einen Augenschutz, wenn Sie mit kleinen Magneten arbeiten, die bei hoher Geschwindigkeit abgestoßen werden können.

Wie funktioniert CoilCell?
CoilCell verwendet einen integrierten DRV8837-H-Brückenchip zur Steuerung des Stromflusses durch die Spule, wodurch die magnetische Polarität gewechselt werden kann:

  • Norden: IN1 = VCC/PWM, IN2 = GND
  • Süd: IN1 = GND, IN2 = VCC/PWM
  • Aus: IN1 = GND, IN2 = GND

Der DRV8837-Chip verfügt über Überstromschutz, Unterspannungssperre und thermische Abschaltungsfunktionen und gewährleistet so einen sicheren Betrieb.


Erste Schritte mit CoilCell
Wenn Sie einen der Eingangspins mit VCC verbinden, wird die CoilCell sofort eingeschaltet. Um es noch intelligenter zu machen, haben wir auch eine Arduino-Softwarebibliothek entwickelt, die Ihnen den Einstieg erleichtert.

Sie müssen einen einfachen Code schreiben, um CoilCell mitzuteilen, was zu tun ist. Keine Sorge, das ist ganz einfach! Laden Sie zunächst die Bibliothek „CoilCell“ aus dem Bibliotheksmanager von Arduino herunter. Sobald diese installiert ist, können wir Ihr Gerät steuern. Es gibt mehrere Beispiele, die Ihnen den Einstieg erleichtern können, aber als Nächstes werden wir alle Funktionen aufschlüsseln und verstehen:

Bevor wir beginnen, stellen Sie sicher, dass Sie die CoilCell an Ihren Mikrocontroller anschließen. Wir empfehlen die Verwendung einer CodeCell , die Pin-zu-Pin-kompatibel ist, die gleiche Größe hat, alle Bibliotheksfunktionen unterstützt und drahtlose Steuerung und interaktive Sensorik hinzufügen kann.

1. CoilCell initialisieren

 #include <CoilCell.h>

 CoilCell myCoilCell(IN1, IN2); // Replace IN1 and IN2 with your specific pins

 void setup() {
 myCoilCell.Init(); // Initializes the CoilCell
 }

Dieser Code konfiguriert die CoilCell und richtet sie basierend auf den von Ihnen ausgewählten Pins und dem Mikrocontroller für die magnetische Steuerung ein.

2. Bounce (bool Richtung, uint8_t ms_Dauer)

Die Funktion Bounce() lässt einen Magneten auf und ab hüpfen. Der erste Parameter legt die Polarität der CoilCell fest und delay_ms legt die Dauer fest, für die der Magnet abgestoßen wird./

 myCoilCell.Bounce(true, 20); //Bounce the magnet up for 20ms

3. Buzz (uint16_t us_buzz)
Erzeugen Sie ein summendes Geräusch, indem Sie die Polarität der Spule schnell ändern. Passen Sie „us_buzz“ an, um die Frequenz des Summens zu steuern.

 myCoilCell.Buzz(80); // Generates a buzzing effect at 80 microseconds intervals

4. Ton()
Diese Funktion spielt einen Standardton ab, indem sie die CoilCell mit verschiedenen gespeicherten Frequenzen vibrieren lässt.

 myCoilCell.Tone(); // Plays varying tones

5. Antrieb (bool Richtung, uint8_t Leistung_Prozent)
Mithilfe der CodeCell oder eines anderen ESP32-Mikrocontrollers können Sie mit dieser Funktion die magnetische Polarität und Stärke der Spule steuern. Die magnetische Stärke wird durch den Wert „power_percent“ eingestellt, der steuert, wie weit der Magnet von der Spule weggeschoben wird.

 myCoilCell.Drive(true, 75); // Drive the coil north with 75% strength

6. Umschalten (uint8_t power_percent)
Durch die Verwendung der CodeCell oder eines anderen ESP32-Mikrocontrollers schaltet diese Funktion die Polarität der Spule bei einem festgelegten Leistungsniveau um, was für einfache magnetische Umklappaktionen nützlich ist.

 myCoilCell.Toggle(60); // Toggle polarity at 60% power

Bei anderen Arduino-Geräten bewirkt dieser Befehl, dass die Spulenzelle bei voller Leistung ihre Richtung ändert.

 myCoilCell.Toggle(); // Toggle polarity at 100% power

7. Vibrieren (bool glatt, uint8_t Leistung_Prozent, uint16_t vib_Geschwindigkeit_ms)

Diese Funktion kehrt die Polarität der Spule mit einer bestimmten Geschwindigkeit und Leistung um. Wenn Sie „smooth“ auf „true“ setzen, entstehen sanftere Bewegungen, ideal für langsame Frequenzen unter 2 Hz.

 myCoilCell.Vibrate(true, 50, 1000); // Smooth vibration at 50% power every 1000 ms

Bei anderen Arduino-Geräten bewirkt dieser Befehl, dass die Spulenzelle bei voller Leistung ihre Polarität umkehrt.

 myCoilCell.Vibrate(100); // Vibrate at 100% power every 100 ms

Hier ist ein Beispiel, bei dem wir eine CoilCell initialisieren, um einen Kugelmagneten mit 5 mm Durchmesser hüpfen zu lassen. In diesem Beispiel wird die CoilCell mit den Pins 5 und 6 initialisiert. Die Funktion setup() ruft myCoilCell.Init() auf, um die CoilCell zu konfigurieren. In loop() wird die Funktion Bounce() verwendet, um den Magneten 20 Millisekunden lang nach oben hüpfen zu lassen, gefolgt von einer Verzögerung von 600 Millisekunden, die den Magneten wieder nach unten zieht.

#include <CoilCell.h>

 #define IN1_pin1 5
 #define IN1_pin2 6

 CoilCell myCoilCell(IN1_pin1, IN1_pin2);

 void setup() {
 myCoilCell.Init(); /*Initialize the CoilCell*/
 }

 void loop() {
 myCoilCell.Bounce(0, 20); /*Bounce the magnet up for 20ms*/
 delay(600); /*Attract the magnet back down for 600ms*/
 }

Im nächsten Beispiel verwenden wir den Bewegungssensor der CodeCell, um ein Antippen zu erkennen. Wenn ein erneutes Antippen erkannt wird, wechselt die CoilCell ihre magnetische Polarität und stellt eine Verzögerung von 1 Sekunde ein, damit die integrierte LED gelb blinkt.

 #include <CodeCell.h>
 #include <CoilCell.h>

 #define IN1_pin1 5
 #define IN1_pin2 6

 CoilCell myCoilCell(IN1_pin1, IN1_pin2);
 CodeCell myCodeCell;
 
void setup() {
 Serial.begin(115200); /* Stellen Sie die serielle Baudrate auf 115200 ein. Stellen Sie sicher, dass Tools/USB_CDC_On_Boot aktiviert ist, wenn Sie die serielle Schnittstelle verwenden. */

 myCodeCell.Init(MOTION_TAP_DETECTOR); /*Initialisiere die Antipperkennung*/
 meineCoilCell.Init();
 meineCoilCell.Tone();
 }

 void schleife() {
 wenn (myCodeCell.Run()) {
 /*Läuft alle 100 ms*/
 wenn (myCodeCell.Motion_TapRead()) {
 /*Wenn ein Tippen erkannt wird, leuchtet die LED 1 Sekunde lang gelb und die Polarität der CoilCell wird umgekehrt*/
 myCodeCell.LED(0XA0, 0x60, 0x00U);
 meineCoilCell.Toggle(100);
 Verzögerung (1000);
 }
 }
 }


Mit diesen Grundfunktionen können Sie mit CoilCell in Ihren Projekten experimentieren. Egal, ob Sie Magnete steuern, interaktive Displays erstellen oder mit magnetischen Kräften experimentieren, CoilCell bietet eine einfache und effektive Lösung.

Wenn Sie weitere Fragen zur CoilCell haben, senden Sie uns einfach eine E-Mail und wir helfen Ihnen gerne weiter!

Vollständigen Artikel anzeigen


Sozial

Github

  • Um
  • Software
  • Ausbildung
  • Kontakt
  • FAQs
  • Bedingungen
  • Rückerstattung-Politik
  • Datenschutzrichtlinie

Erfahren Sie als Erster von neuen Projekten und sichern Sie sich spannende Angebote!

© 2025 Microbots.