Akustische Levitation – Levitator selber bauen
Einführung
Die akustische Levitation im Stehwellenfeld beruht auf den Kräften, die im Wechseldruckfeld der stehenden Ultraschallwellen auf die jeweilige Probe wirken. Dabei treten axiale und radiale Kräfte auf. Mittels akustischer Levitation können beispielsweise Styroporkügelchen oder Wassertropfen zum Schweben gebracht werden.
Vorbereitung
Im Grunde ist es ziemlich einfach kleine Styroporkugeln mit Hilfe von Ultraschallwellen schweben zu lassen. Dafür benötigt ihr nur einen Arduino Nano, eine H-Brücke (L298N) sowie zwei Ultraschallmodule (HC-SR04).
Diese beiden Module des Ultraschallabstandsmesser nennt man Sender (T) und Empfänger (R). In der Praxis arbeitet der mit T (Transmitter) markierte Transducer besser als Sender. Also löten wir ersteinmal aus beiden Ultraschallabstandsmessern die beiden Module, die mit T markiert sind, aus.
1 x Arduino Nano
1 x H-Brücke L298N
1 x Ultraschallmodul HC-SR04
Arduino Code
Im Setup-Bereich werden die Analogports als Ausgang definiert. Anschließend wird der Timer 1 so konfiguriert, dass er im 80-kHz-Rhythmus das Compare Interrupt auslöst. Innerhalb dieses Interrupts werden die Zustände aller Analogports umgekehrt. Die 80 kHz Rechteckspannung ergeben so eine 40-kHz-Vollwelle.
[sourcecode language=“plain“]
byte TP = 0b10101010; // jeder 2. Port bekommt das umgekehrte Signal
void setup()
{
DDRC = 0b11111111; // alle Analogports als Ausgang definieren
// Timer 1 initialisieren
noInterrupts(); // Interrupts deaktivieren
TCCR1A = 0;
TCCR1B = 0;
TCNT1 = 0;
OCR1A = 200; // Compare Match Register setzen(16MHz / 200 = 80kHz Rechteck -> 40kHz Vollwelle )
TCCR1B |= (1 << WGM12); // CTC mode
TCCR1B |= (1 << CS10); // Prescaler auf 1 ==> kein prescaling
TIMSK1 |= (1 << OCIE1A); // Compare Timer Interrupt einschalten
interrupts(); // Interrupts aktivieren
}
ISR(TIMER1_COMPA_vect)
{
PORTC = TP; // den Wert TP an die Ausgänge senden
TP = ~TP; // TP invertieren für den nächsten Durchlauf
}
void loop(){
}
[/sourcecode]
Schaltplan
Es wäre möglich, die Ultraschalltransmitter direkt an die Analogports des Arduino Nano anzuschließen, da diese nur wenig Strom benötigen. Leider wäre man dann auf eine 5 Volt Spannung begrenzt, was ein stabiles Schweben nicht möglich macht. Deshalb verwenden wir zur Verstärkung des Signals die L293N-H-Brücke.
Anschlüsse
- Arduino Pin A0 an H-Brücken Pin IN1
- Arduino Pin A1 an H-Brücken Pin IN2
- Arduino Pin VIN an den Pluspol der Stromquelle
- Arduino Pin GND an den Minuspol der Stromquelle
- H-Brücken 12V+ Eingang an den Pluspol der Stromquelle
- H-Brücken GND Eingang an den Minuspol der Stromquelle
- Beide Ultraschalltransmitter an OUT2 der H-Brücke
Fertiger Aufbau
So könnte der Aufbau eines fertigen Levitators aussehen:
Ein sehr cooles Projekt!
Ich habe mich gefragt, ob man mit dem Leviator auch Staub, Puderzucker etc. zum Schweben bringen könnte und wie das wohl aussähe… Hast du das mal probiert?
Hallo Andreas, danke für dein Feedback. Natürlich ist es möglich andere Sachen, die leicht genug sind, zum Schweben zu bringen. Einige haben in größeren Levitatoren sogar schon kleine farbige Wassertropfen zum Schweben gebracht, was sehr cool ausschaut (Link zum Video: https://www.youtube.com/watch?v=0K8zs-KSitc). Mit Staub oder Puderzucker habe ich es noch nicht ausprobiert, wäre aber eine gut Idee für ein zukünftiges Video.
Der Befehl ‚lt‘ wird nicht erkannt. Gibt es eine Bibliothek welche ich Einbinden muss?
Hallo Lucas!
Anscheinend wird dir der Code teilweise als Ascii angezeigt. Da müssen zwei „kleiner als“ Zeichen stehen.
z.B. 1 << WGM12
Super, vielen Dank!
Ist dieser Levitator ohne Reflektorplatte gebaut , also befindet sich jeweils ein Transmitter oben und unten ????
Genau richtig.
Und wie lässt sich der abstand zwischen den beiden Transmittern bestimmen , damit es zu einer stehenden Welle kommt ????
Man kann den Abstand berechnen: 33000 cm/s Schallgeschwindigkeit / 40000 Hz = 8,25 mm oder ein vielfaches davon.
Wie bzw. wo muss ich den Code benutzen?
Muss ich den Arduino Nanao programmieren, wenn ja wie stell ich das an also per PC, brauch ich dafür eine bestimmte App?