- Component vereist
- Ultrasoon levitatie-schakelschema
- Arduino programmeren voor ultrasone levitatie
- Het bouwen van de ultrasone levitatie-setup
Het is heel spannend om iets in de lucht of in de vrije ruimte te zien zweven, dat is precies waar een anti-zwaartekrachtproject over gaat. Het object (in feite een klein stukje papier of thermocol) wordt tussen twee ultrasone transducers geplaatst die akoestische geluidsgolven genereren. Het object zweeft in de lucht vanwege deze golven die van anti-zwaartekracht lijken te zijn. Dit is niet alleen een gaaf ogend Arduino-levitatieproject, maar het heeft ook veel praktische toepassingen. Onderzoekers werken aan Ultrasonic Robotic Grippers, die hier erg op lijken, en deze grijpers kunnen handig zijn bij het verplaatsen van objecten zonder ze aan te raken.
Component vereist
- Arduino Uno / Arduino Nano ATMEGA328P
- Ultrasone module HC-SR04
- IC of L239d H-Bridge Module L239D
- Vero Board Gestippelde Vero
- Diode 4007
- Condensator (PF) 104
Extra vereiste voor 8v tot 12v voeding
- Spanningsregelaar LM 7809
- Led Driver Voeding 12V 2Amp
Extra materiaal: wat aansluitdraad, mannelijke header, vrouwtje naar vrouwtje doorverbindingsdraad
Ultrasoon levitatie-schakelschema
Het complete Arduino Levitatie-circuit wordt hieronder getoond en het werkingsprincipe van het circuit is heel eenvoudig. Het belangrijkste onderdeel van dit project is een Arduino, L239D motoraandrijving IC en ultrasone transducer verzameld uit de ultrasone sensormodule HCSR04. Over het algemeen zendt de ultrasone sensor een akoestische golf uit met een frequentiesignaal tussen 25 kHz en 50 kHz, en in dit project gebruiken we HCSR04 ultrasone transducer. We hebben eerder al veel ultrasone sensoren projecten gebouwd, waarbij de HCSR04 voornamelijk wordt gebruikt om afstand te meten. In dit project hebben we de transducer uit de module gesoldeerd.
Volgens het gegevensblad is de werkfrequentie van deze ultrasone transducer 40 kHz. Het doel van het gebruik van Arduino en dit kleine stukje code is dus om een 40 KHz hoogfrequent oscillatiesignaal te genereren voor mijn ultrasone sensor of transducer en deze puls wordt toegepast op de ingang van duel motor driver IC L239D (pin 2 & 6 van Arduino A0- en A1-pinnen) om de ultrasone transducer aan te drijven. Bovendien passen we deze hoogfrequente 40 kHz oscillatiesignaal met stuurspanning tot aanstuur-IC (kenmerkend 8 tot 12 aangegeven spanning op de 8 ste pin van de IC L239D, VCC2) aan de ultrasone transducer. Hierdoor produceert ultrasone transducer akoestische geluidsgolven. We hebben twee transducers tegenover elkaar geplaatst in de tegenovergestelde richting, zodanig dat er wat ruimte tussen blijft. Akoestische geluidsgolven verplaatsen zich tussen twee transducers en laten het object zweven.
Houd er rekening mee dat de L293D een dubbele spanningsingang heeft, een is om de IC zelf van stroom te voorzien, die wordt gevoed door Arduino 5v in dit project en een andere Vcc2 (8 ste) toegepast op de stuurspanning van de uitgangscomponenten en deze VCC-pin kan tot 36v accepteren. Dit IC heeft 2 activeringspinnen, 4 input-outputpinnen, 4 aardingspinnen. Het concept van het gebruik van dit IC komt voort uit het concept van het gebruik van een microcontroller en deze chip, waarmee we de richting en snelheid van 2 motoren afzonderlijk kunnen veranderen door alleen een logisch of digitaal signaal van de microcontroller te leveren.
In dit circuit gebruiken we slechts twee ingangen van de IC L293D, ingangspin 1 (2) en ingangspin 2 (7). Om deze twee pinnen in te schakelen, moeten we IC Enable PIN 1 hoog houden, dus hebben we deze pin op IC-pin 16 geschoten, die ingang Vcc 1 is, volg voor meer informatie het L293D Datasheet.
Het gebruik van een 100nf-condensator is optioneel om gewoon de IC-voeding vast te houden en als voeding gebruiken we een 12V 2Amp LED-driver, dan verlagen we de spanning naar 9v met behulp van spanningsregelaar IC LM7809 en leveren we aan 8 ste pin van L139D met gemeenschappelijke gronden. Volgens het Arduino-, Cc- en Arduino-forum ondersteunt het Arduino UNO-bord 7 tot 12 volt input, maar het is veiliger om 9V Max.
Arduino programmeren voor ultrasone levitatie
De codering is heel eenvoudig, slechts een paar regels. Met behulp van deze kleine code met behulp van een timer en interrupt-functies, maken we hoog of laag (0/1) en genereren we een oscillerend signaal van 40 kHz naar Arduino A0 en A1 uitgangspennen.
Begin eerst met een faseverschuivingsarray.
byte TP = 0b10101010;
En elke tweede poort ontvangt dit tegenovergestelde signaal. Daarna definiëren we onder de ongeldige instellingen alle analoge poorten als een uitvoer met behulp van deze regel code.
DDRC = 0b11111111;
Vervolgens initialiseren we de timer 1 en schakelen we alle onderbrekingen uit om op nul in te stellen.
Door deze code, noInterrupts (); TCCR1A = 0; TCCR1B = 0; TCNT1 = 0;
Vervolgens wordt timer één geconfigureerd om een vergelijkingsonderbrekingsklok op 80 KHz te activeren. Arduino draait op 16000000 MHZ ÷ 200 = 80.000 kHz blokgolven worden gegenereerd met deze functie.
OCR1A = 200; TCCR1B - = (1 << WGM12); TCCR1B - = (1 << CS10);
Daarna wordt deze regel geactiveerd, vergelijk timeronderbreking.
TIMSK1 - = (1 << OCIE1A);
En tot slot activeer je interrupt met dit stukje code.
onderbreekt ();
Elke onderbreking keert de toestand van de analoge poorten om, hierdoor wordt een blokgolfsignaal van 80 kHz omgezet in een tweewegs cyclisch signaal van 40 kHz. En dan sturen we de waarde naar Arduino output A0 en A1 poort.
ISR (TIMER1_COMPA_vect) {PORTC = TP; TP = ~ TP; // Keer TP om voor de volgende run}
En er is niets te plaatsen of nodig om onder de lussen te rennen.
Het bouwen van de ultrasone levitatie-setup
Houd er rekening mee dat voor dit project het correct monteren van ultrasone transducers belangrijk is. Ze moeten tegenover elkaar staan in de tegenovergestelde richting, wat erg belangrijk is, en ze moeten in dezelfde lijn staan, zodat ultrasone geluidsgolven kunnen reizen en elkaar in tegengestelde richtingen kunnen snijden. Hiervoor kunt u twee kleine stukjes hout of MD-plaat, moerbout en lijm nemen. U kunt twee gaten maken om de transducer perfect door de boormachine te laten passen. Aan de standaard kunt u de opstelling van de ultrasone transducer ophangen.
In dit geval heb ik twee stukken karton gebruikt en vervolgens een ultrasone transducer vastgemaakt met behulp van lijm uit het lijmpistool. Later, voor het maken van de standaard, heb ik een eenvoudige bedradingsdoos gebruikt en alles met lijm vastgemaakt.
Hier zijn enkele foto's van ultrasone levitatie die de werking van het project laten zien.
De ultrasone levitatie of akoestische levitatie werkt ook als een kant is gemonteerd met de ultrasone transducer, maar in dat geval is een reflector nodig die als een obstakel fungeert zodat deze in de toekomst kan worden gebruikt in hoverboard en anti-zwaartekrachttransport. Je kunt ook de volledige werkvideo hieronder bekijken.
Ik hoop dat je het project begreep en het leuk vond om iets leuks te bouwen. Als u vragen heeft, laat deze dan achter in het commentaargedeelte hieronder, u kunt ook onze forums gebruiken voor andere technische vragen.