Arduino Levitation Gadget. Sådan oprettes en levitationseffekt med arduino

Blandt menneskehedens fjender indtager tyngdekraften et særskilt sted, og mange mennesker lægger hovedet ned og bekæmper det. Tiden er kommet til at slutte sig til denne kamp, ​​og effekten af ​​elektromagnetisk levitation vil hjælpe os i denne herlige forretning.

Dette er det mest nyttige fænomen. Takket være ham rasler magnetiske levitationstog hurtigt i megacities, og friktionsfri magnetiske lejer roterer i særligt vigtige mekanismer.

I denne artikel vil jeg vise dig, hvordan du samler en desktop-gadget til elektromagnetisk levitation. Desværre vil det ikke lade dig flyve, men det vil få en lille, meget magnetisk genstand til at flyde i luften - for eksempel en lille jordklode eller en terning, som du kan lime klæbende noter til, så de vises foran din næse .

Hvordan det virker?

Kort sagt, du har en elektromagnet, der tiltrækker en jerngenstand (for eksempel en møtrik) og skal trække den hele vejen, men så snart møtrikken kommer for tæt på den, slukkes magneten, og møtrikken begynder at falde. Så snart den falder under et bestemt niveau, tænder magneten igen og trækker møtrikken op igen. Hvis positionen spores nøjagtigt, og magneten styres hurtigt, kan du komme i en ligevægtstilstand, og møtrikens vibrationer vil være umærkelige. Denne effekt kan opnås forskellige veje så lad os se på alle de populære muligheder. Men under alle omstændigheder vil installationen have fem elementer:

  1. elektromagneten er den vigtigste positive karakter, der bekæmper tyngdekraften;
  2. en strømkilde, da alle vil spise;
  3. konstant strømdriver (tager et signal fra kontrolkredsløbet og tænder / slukker magneten, som skal være ret kraftig og ikke kan tændes direkte af logiske mikrokredsløb);
  4. feedback for at vide, hvor vores møtrik er nu, og ikke ved et uheld trække den i en eller anden retning;
  5. et kontrolsystem, der samler information fra sensorer og beslutter, hvornår og hvordan man tænder elektromagneten.

Lad os nu tale om alt i orden.

Magnet

En magnet kan fås på tre måder: gør det selv, køb en færdiglavet og få den fra et relæ eller solenoid. Færdige magneter findes ikke ofte til salg, men hvis du finder dem i overflod, skal du tage dem med en lille rund kerne designet til 12 V - det vil være mest praktisk at betjene med dette. Den interne modstand skal være mindst 20 ohm, ellers er det kun muligt effektivt at opvarme rummet. Det samme gælder for relæspolerne. Hvis du bruger en spole fra en magnetventil, skal du i stedet for en bevægelig indre kerne samle en tæt monteret bolt.

Men hvis dine søgninger i butikker og lofter ikke førte til succes, kan du selv lave en magnet. For at gøre dette har du brug for en kerne, den skal opfylde modstridende betingelser: være massiv på samme tid, men ikke for stor diameter så det oprettet felt var bedre fokuseret. En stud med en diameter på 8-10 mm og en længde på ca. 60 mm er ideel, du kan bruge en bolt af samme længde.

Til viklingen har du brug for en lakeret ledning med et tværsnit på mindst 0,03 mm2 (eller med en diameter på 0,2 mm), det er let at finde det i butikkerne, men du kan også få det ved at adskille transformeren fra nogle små strømforsyning - den sekundære vikling er sandsynligvis viklet med netop en sådan ledning. Det er bedre at tage strømforsyninger af lav kvalitet - dårligt monterede lamellære kerner på deres transformere vil være lette at vælge. Nu skal denne ledning vikles rundt om bolten. Magnetens effekt måles i ampere-omdrejninger og afhænger af produktet af den strømende strøm og antallet af omdrejninger, så du bliver nødt til at vinde meget, mindst 500 omdrejninger - så tænk på, hvordan denne proces kan forenkles.

Jeg klemte kernebolten ind i skruetrækkerens borepatron og satte spolen, hvorfra ledningen blev viklet, op på stativhåndtaget fra kameraet. Jeg anbefaler ikke at bruge en boremaskine (og endnu mere en blender eller mixer) - de har høje omdrejninger, og hvis ledningen bliver fanget på et tidspunkt, kan alt flyve fra hinanden! Prøv at stable spolerne tæt på hinanden, lag for lag, da huller i høj grad reducerer effektiviteten. Når du har besluttet, at du har såret nok, skal du fjerne enderne af ledningerne (det er praktisk at brænde lakken i enderne med en lighter) og måle modstanden med et multimeter, det optimale er 20-30 ohm. Tilslut magneten til strømforsyningen, og kontroller, om den bliver for varm og tiltrækker sig godt.

Strømforsyning

Du har også brug for en god 12V strømforsyning: magneten kan trække en anstændig mængde strøm, så du kan ikke slippe væk med et lille batteri her. Brug om muligt en ATX-strømforsyning. Selvfølgelig bør du ikke bruge den, der findes i computeren - ifølge Murphys lov i det hele taget vigtigt punkt noget vil kortslutte, og enheden kan dø (skønt de har beskyttelse mod kortslutning), og computeren kan også være i problemer. For at tænde for ATX-strømforsyningen uden en computer skal du i det brede 20-polede stik forbinde den grønne ledning med en hvilken som helst sort og tage strømmen fra stikket harddisk eller grafikkort, den gule ledning er + 12V, og den sorte ledning er jordet. Hvis der ikke er en sådan enhed, vil en mindre magtfuld kilde fra noget husstand gøre - en oplader til en boremaskine, en bærbar computer og så videre. Du kan også tage et blysyre 12 volt batteri fra UPS. Lad os nu se, hvordan en magnet kan styres.

Chauffør

En magnet, afhængigt af hvor vellykket den viser sig, kan forbruge et godt dusin watt strøm - følgelig, og strømmen vil være omkring 1 A. For at kontrollere en sådan belastning har du brug for en kraftig transistor. Du kan bruge en bipolar NPN-transistor, men det tager meget strøm at åbne den helt - mikrokontrolleren kan ikke trække den. Det er bedre at bruge en N-type felt-effekt transistor (aka MOS eller MOSFET), hvis port styres ikke af strøm, men af ​​spænding. En vis mærkbar strøm kræves kun for skiftetilstande, så en sådan transistor kan sikkert hænges på mikrocontrollerbenet gennem en lille strømbegrænsende modstand (ca. 100 ohm). Det eneste punkt er, at ikke alle MOS-transistorer er i stand til at åbne fra 5 V, som controlleren giver ud, så det er værd at lede efter en, der kan.

Jeg brugte IRL530N - dette er en rigtig kæmpe, der er i stand til at modstå en strøm på op til 17 A ved en spænding på op til 100 V. Hvis dette ikke kunne findes, kan du bruge andre (f.eks. IR F630M), men for at åbne porten helt, skal du levere 12 V. For at gøre dette skal du tilføje en anden lille transistor til kredsløbet, som vil fungere som en switch for en højere spænding. I mit tilfælde er dette en 2N3904, men næsten enhver npn-transistor kan bruges.

Et andet vigtigt punkt i styring af en magnet er forbundet med dens signifikante induktans: mens strømmen er tændt, lagres energi i det elektromagnetiske felt, men hvis kredsløbet åbnes, skal det gå et sted, og dette vil resultere i en betydelig spænding spring på de snoede terminaler. Ingen transistor vil overleve et sådant slag, derfor skal der placeres en diode mellem terminalerne på spolen (jeg har 1n4007) - så den under normal drift står mod strømmen og i øjeblikket, hvor kredsløbet åbnes, når strømmen begynder at løbe ind i modsatte side, ville lukke spolen på sig selv. Kraften til at klare magneten er der nu, og det er stadig at forstå, når tiden er inde til at tænde den.

Feedback

Den nemmeste måde at spore placeringen af ​​en leviterende genstand på er at bruge et optisk par af en infrarød LED og en fototransistor justeret i en linje. Når møtrikken (eller bolten) er under den lige linje, så spreder IR-strålingen sig frit til sensoren, men så snart objektet flyver tættere, afbrydes strålen, og værdien ved sensorudgangen falder - det er tid til at dreje af magneten. Ordningen er enkel, men i praksis har den en stor ulempe - vi kan vide, om vores møtrik er over eller under kontrolpunktet, men ikke dens nøjagtige position på ethvert tidspunkt. Dette er ikke skræmmende, men det kan give problemer, hvis vi glat vil justere højden. Derudover kan en flue, der flyver forbi sensorerne, bryde alt.

En bedre mulighed (også optisk) er at placere en infrarød eller laserafstandsmåler under magneten (selvom det er muligt ovenfra) og måle afstanden. Men i dette tilfælde bliver du nødt til at ændre bolten - lim en plade med en større overflade, ellers vil sensoren simpelthen ikke se den. Især kan du gøre et punkt ved ikke at installere en optisk, men en ultralydsmåler, selvom nøjagtigheden af ​​de fleste af dem i de angivne intervaller (flere centimeter) er lav. Og disse muligheder sparer dig ikke for fluer. Men der er stadig en billig og vred løsning!

I naturen er der en vidunderlig effekt: hvis en strøm føres gennem en ledende metalplade, og et magnetfelt påføres over pladen, vil afgifterne, der bevæger sig langs pladen, blive afbøjet af Lorentz-kraften og skaber en potentiel forskel ved kanterne af pladen, det vil sige en spænding, der afhænger af magnetfeltets størrelse. Hall-sensorer arbejder på denne effekt. Det er ret simpelt at anvende dem til positionsbestemmelse - fastgør en magnet til bolten, og det er det. Spændingen ved sensorens output afhænger af feltets styrke, som afhænger af afstanden til bolten med magneten. Og det vigtigste er, at flyvende insekter ikke påvirker på nogen måde!

Der er mange sensorer, der er kommercielt tilgængelige, inklusive dem, der måler feltet i flere plan. Du har også brug for en simpel analog sensor, nogle gange i beskrivelserne kaldes de lineær med en følsomhed på 400-1000 Gauss. Jeg brugte SS59E men ideel mulighed du kan ikke navngive det - det har en SOT223-kuffert (til overflademontering), og for at kunne bruge den "i farten" var vi nødt til at lodde ret spinkle ledninger. Det er mere praktisk at vælge en sensor i et to92-hus (for eksempel SS19, SS49 eller SS495A). Du får også brug for en god magnet, helst en sjælden jordarter. Du kan få det fra CD / DVD-drevmotoren, tage det fra Bornimago børns magnetiske konstruktionssæt eller bestille det fra kineserne på http://s.dealextreme.com/search/magnets, der et godt valg og priserne er rimelige.

Ved første øjekast er dette alt. Du hænger sensoren under en elektromagnet og nyder livet. Men der er et vigtigt punkt: sensoren måler både magnetfeltet på bolten og elektromagnetens felt, og da magneten tænder og slukker, så springer værdierne. Der er to løsninger. Den første er ret elegant - brug et par Hall-sensorer. Efterlad en på samme måde i bunden af ​​magneten, og hæng den anden på den modsatte side af magneten. Hvis viklingen er lavet symmetrisk, vil feltet på begge sider af elektromagneten være det samme i modul, men tilstedeværelsen af ​​en bolt med en magnet kan ikke mærkes ovenfra, og forskellen i sensoraflæsninger kan bruges som en kontrolsignal.

Den anden mulighed kræver mere kompleks matematik, men tillader brug af en enkelt Hall-sensor. For at tage hensyn til feltet er det nødvendigt at simulere magnetens opførsel og beregne korrektionen for Hall-sensorens værdier afhængigt af elektromagnetens tilstand. Du kan selvfølgelig prøve at finde de optimale parametre uden specielle beregninger, men det er langt og kedeligt, så det er lettere at stoppe ved den første mulighed.

Kontrolsystem

Som regel udføres styringen af ​​sådanne enheder fuldstændig analog på et par operationelle forstærkere, men styring kan også foretages på en mikrocontroller. Så hvis du har et Arduino-kort på din gård, er det her, det kommer til nytte. Jeg brugte min afprøvede Arduino Diecimila, men enhver anden 5V-version - Duemilanove, Uno og forskellige kloner vil gøre.

Vi samler!

Vi har allerede overvejet nøglepunkterne ved oprettelse af en gadget, nu vil vi dvæle mere detaljeret om, hvordan vi samler, kører og debugger alt dette. Kredsløbet kan samles på brødbræt, men du kan prøve at undvære det - der er få elementer, og de kan godt hænge i luften. For sådanne "luft" -kredsløb er det praktisk at have et dusin flerfarvede ledninger, som har små krokodiller loddet i begge ender. Du kan lodde diode D1 direkte til udgangene på magnetspolen L1 og diode D2 mellem afløbet og kilden til MOS-transistoren Q1.

Selve transistoren kan fastgøres til radiatoren ikke så meget til køling (ved disse strømme bliver det ikke meget varmt), men som et stativ. Hvis du har en feltarbejder fra IRL-serien, kan du smide transistoren Q1 og modstanden R3 ud af kredsløbet og smide modstanden R2 på D10 Arduino-benet (eller ethvert andet ben med en PWM-udgang). For feltarbejdere i TO220-pakker (og det er mere bekvemt for dig at arbejde med sådan) er benene nummereret fra venstre mod højre som følger: 1 (gate), som skal forbindes til kontroludgangen; 2 (afløb) - til minus belastningen, 3 (kilde) - bring til jorden.

Den anden belastning skal tilsluttes en +12 volt strømforsyning. Arduino-kortet skal også drives fra noget, det er bedre at forbinde det til den samme 12-volt kilde som magneten, men til dette skal du bruge et passende stik med en indvendig pin-diameter på 2,1 mm og en ydre diameter på 5,5 mm. Du kan også tage strøm via USB fra en computer, men glem ikke at forbinde jorden på tavlen til jorden af ​​magneten. På den anden side af kortet skal sensorer forbindes til de analoge indgange. Hall-sensor udgange IC1 og IC2 til ben A0 og A1, VCC til +5 V og GND til jord. IC1-sensoren skal fastgøres under magneten og IC2 - over den (da felternes retninger vil være modsatte, skal sensorerne orienteres på forskellige måder). Scotch tape er det mest pålidelige middel til fastgørelse. Også til justering af parametrene vil en 10 kΩ variabel modstand være nyttig (skønt værdien ikke er kritisk). Den skal have 3 udgange: Tilslut de ydre til jord og +5 V, og den midterste til analog indgang A2.

Fra jernværket er det kun at hænge en magnet på noget. Hvad præcist - beslut på baggrund af de foreliggende materialer. Dette kan f.eks. Være en "tredjehånds" klemme, et stativ eller i mit tilfælde en trækasse fra IKEA. Det vigtigste er at sørge for, at det ikke dingler, og at du kan starte softwarefyldningen. Til denne gadget skal du oprette to skitser til Arduino. Ved hjælp af den første måler du systemets parametre og får et par magiske tal, der vil være nyttige i den anden fungerende firmware.

Da magneten kan skabe et ikke helt symmetrisk felt, og sensorerne muligvis ikke er perfekt justeret, kan størrelserne på værdierne på dem variere. Derfor skal du måle forskellen i aflæsninger for at beregne korrektionen.

Skitse 1

const int in1 = A0; // analog indgang af Hall-sensor 1
const int in2 = A1; // analog indgang til Hall-sensor 2
const int out1 = 10; // analog udgang (PWM) til magneten.
int s1 = 0; // værdi af Hall-sensor 1
int s2 = 0; // værdi af Hall-sensor 2
int o1; // Output
ugyldig opsætning ()
{
// vi overvåger status i konsollen
//Serial.begin(9600);
}
ugyldig sløjfe ()
{
// kør programmet i en cirkel
// læs analoge indgange
analogWrite (out1, 255); // skriv hvad vi vil til output
// tilstand af magneten
forsinkelse (15); // vent på, at magneten tændes



Serial.print ("magnet på: s1 ="); // viser alt pænt
// til konsollen
Serial.print (s1);
Serial.print ("s2 =");
Serial.print (s2);
Serial.print ("delta =");
Serial.print (o1);
analogWrite (out1, 25); // skriv hvad vi vil til output
// tilstand af magneten, 10% effekt
forsinkelse (15); // vent på, at magneten slukkes
s1 = analogRead (in1); // læs den første hallsensor
s2 = analogRead (in2); // læs den anden hallsensor
al = s2-s1; // tælle forskellen i input
Serial.print ("magnet slukket: s1 ="); // udskrive alt pænt
// til konsollen
Serial.print (s1);
Serial.print ("s2 =");
Serial.print (s2);
Serial.print ("delta =");
Serial.println (o1); // gå til en ny linje i slutningen
forsinkelse (1000); // om et sekund - igen
}

Kompleksiteten af ​​kontrol ligger også i det faktum, at omkring fem millisekunder skal passere for at afregne, når tilstanden ændres ved controllerens output (på grund af magnetens store induktans).

For at reducere denne tid kan du styre magneten glat og ikke tænde / slukke den fuldstændigt, men kun ændre strømmen lidt. På Arduino kan dette gøres ved hjælp af PWM-output. PWM (PWM, Pulse Width Modulation) er en måde til glat at ændre udgangsspændingen ved kun at bruge digitale tilstande.

Det vil sige en del af tiden, hvor output er tændt, og dels er det slukket, men på grund af inerti fungerer kredsløbet som om output er tændt hele tiden, men med halvdelen af ​​effekten. Efter start af den første firmware skal du have to tal - forskellen på 10% og ved 100% effekt.

I den anden arbejdsskit skal du selv erstatte disse værdier. Arbejdskoden er ret enkel: vi læser værdierne fra sensorerne, foretager korrektioner, ved værdien af ​​den variable modstands position, vi justerer det ønskede effektniveau (og dermed højden) og indstiller det passende niveau på produktion. Da vi ikke estimerede i hvilket område værdierne returneres af sensoren når forskellige bestemmelser variabel modstand vil driftsområdet for højder naturligvis være smallere. Men det er enkelt at løse problemet - drej på knappen og find, hvor det fungerer!

Skitse 2

const int in1 = A0; // analog indgang til Hall-sensor 1
const int in2 = A1; // analog indgang til Hall-sensor 2
const int in3 = A2; // analog indgang af variabel modstand
const int d10 =<вставь из предыдущего кода>;
// afslut ved 10% effekt
const int d100 =<вставь из предыдущего кода>;
// afslut ved 100% strøm
const int out1 = 10; // analog udgang (PWM) til magneten.
int s1 = 0; // Hall sensor værdi
int s2 = 0; // Hall sensor værdi
int s3 = 0; // variabel modstandsværdi
int o1 = 255; // exit-tilstand, som standard
// fuldt aktiveret
int d = 0; // ændring
int v; // total værdi fra sensorer
ugyldig opsætning () ()
ugyldig sløjfe ()
{
s1 = analogRead (in1); // læse værdien af ​​hallsensoren
s2 = analogRead (in2); // læs den aktuelle værdi
// potentiometer
d = kort (al, 25, 255, d10, d100); // beregne ændringen
v = abs (s1-s2) + d; // justeret forskel
al = kort (v, 0, 1024, 25, 255); // beregne output, magnet
// aldrig helt slukket
analogWrite (out1, o1); // skriv hvad vi vil til output
// tilstand af magneten.
forsinkelseMikrosekunder (100); // vent et stykke tid på ADC
// vil være klar til at læse data igen

Når du har samlet og tændt den, kan du prøve at spille med forskellige vægte og magneter for at finde dem, der fungerer mest stabilt.
Hvis det ikke virker, skal du ikke give op, prøv at ændre noget i firmwaren, adskille og samle alt igen, det skal fungere!

Trods alt endelige mål- flyvningen er endnu mere fascinerende end fuglenes himmel, og menneskeheden har stræbt efter dette i mere end hundrede år. Så gør dit bedste! Men hvis resultatet efter alle bestræbelser er nul, kan du bestille på hjemmesiden zeltom.com/emls.aspx færdiglavet sæt til montering. Held og lykke!

Ideen med denne lektion var inspireret af projektet fra Kickstarter crowdfunding-platformen kaldet "Air Bonsai", virkelig smuk og mystisk, som blev lavet af japanerne.

Men enhver gåde kan forklares, hvis du kigger indad. Faktisk er det magnetisk levitation, når der er en genstand, der svæver ovenfra, og en elektromagnet styres af kredsløbet. Lad os prøve at gennemføre dette mystiske projekt sammen.

Vi fandt ud af, at kredsløbene til Kickstarter-enheden var ret komplekse uden nogen mikrocontroller. Der var ingen måde at finde hende på analogt kredsløb... Faktisk, hvis du ser nærmere på, er levitationsprincippet ret simpelt. Du er nødt til at få et magnetisk stykke til at "flyde" over et andet magnetisk stykke. Det vigtigste yderligere arbejde var at forhindre den svævende magnet i at falde.

Det er også blevet foreslået, at det er meget lettere at gøre dette med en Arduino end at prøve at forstå skematisk en japansk enhed. Faktisk viste alt sig at være meget enklere.

Magnetisk levitation består af to dele: en basisdel og en flydende (leviterende) del.

Grundlag

Denne del er i bunden, som består af en magnet til at skabe et cirkulært magnetfelt og elektromagneter til styring af dette magnetfelt.

Hver magnet har to poler: nord og syd. Eksperimenter viser, at modsætninger tiltrækker, og de samme poler afviser. Fire cylindriske magneter er placeret i en firkant og har samme polaritet og danner et cirkulært magnetfelt opad for at skubbe enhver magnet ud, der har den samme pol imellem.

Der er generelt fire elektromagneter, de er placeret i en firkant, to symmetriske magneter er et par, og deres magnetfelt er altid modsat. Hall-sensoren og kredsløb drev elektromagneter. Vi skaber modsatte poler på elektromagneter ved strøm gennem dem.

Flydende del

Delen inkluderer en magnet, der flyder over bunden, der kan bære en lille plantepotte eller andre genstande.

Magneten ovenfra løftes af de nederste magneters magnetfelt, fordi de har de samme poler. Men som regel har han en tendens til at falde og blive tiltrukket af hinanden. For at forhindre toppen af ​​magneten i at vende og falde, vil elektromagneterne skabe magnetfelter til at skubbe eller trække for at afbalancere den flydende del takket være Hall-sensoren. Elektromagneterne styres af to akser X og Y, hvilket resulterer i, at den øverste magnet holdes afbalanceret og flydende.

Styring af elektromagneter er ikke let og kræver en PID-controller, som diskuteres detaljeret i næste trin.

Trin 2: PID-controller (PID)

Fra Wikipedia: "Proportional-integral-derivat (PID) controller - en enhed i en kontrolsløjfe med feedback. Anvendes i systemer automatisk kontrol til dannelse af et styresignal for at opnå den krævede nøjagtighed og kvalitet af den forbigående proces. PID-controlleren genererer et styresignal, der er summen af ​​tre termer, hvoraf den første er proportional med forskellen mellem indgangssignalet og feedback-signalet (fejlsignal), det andet er integrationen af ​​fejlsignalet, og tredje er afledningen af ​​fejlsignalet. "

Enkelt sagt: “PID-controlleren beregner 'fejl' -værdien som forskellen mellem den målte [Input] og den ønskede indstilling. Controlleren forsøger at minimere fejlen ved at justere [output]. "

Så du fortæller PID, hvad der skal måles (Input), hvilken værdi du vil have og en variabel, der hjælper med at have den værdi i output. PID-controlleren justerer derefter udgangen for at gøre indgangen lig med indstillingen.

For eksempel: i bilen har vi tre værdier (Input, Installation, Output) - henholdsvis hastighed, ønsket hastighed og vinkel på gaspedalen.

I dette projekt:

  1. Indgangen er realtidsværdien fra hallsensoren, som opdateres løbende, da den flydende magnets position vil ændre sig i realtid.
  2. Setpunktet er værdien fra hallsensoren, som måles, når den flydende magnet er i balanceposition, i midten af ​​magnetenes bund. Dette indeks er fast og ændres ikke over tid.
  3. Udgangssignalet er hastigheden til styring af elektromagneterne.

Tak til Arduino-samfundet for at skrive et PID-bibliotek, der er meget let at bruge. For mere information om Arduino PID, se Arduino officielle hjemmeside. Vi skal bruge et par Arduino PID-controllere, en til X-aksen og en til Y-aksen.

Trin 3: tilbehør

Listen over tilbehør til lektionen viser sig at være anstændig. Nedenfor er en liste over de komponenter, du skal købe til dette projekt. Sørg for at have alt, inden du starter. Nogle af komponenterne er meget populære, og du finder dem sandsynligvis i dit eget lager eller hjem.


Trin 4: Værktøjer

Her er en liste over de mest anvendte værktøjer:

  • Loddekolbe
  • Håndsav
  • Multimeter
  • Bore
  • Oscilloskop (valgfrit, du kan bruge et multimeter)
  • Bordboremaskine
  • Varm lim
  • Tang

Trin 5: LM324 Op-amp, L298N driver og SS495a

LM324 Op-amp

Operationsforstærkere (op-forstærkere) er nogle af de vigtigste, mest anvendte og alsidige kredsløb, der er i brug i dag.

Vi bruger en op-forstærker til at forstærke signalet fra Hall-sensoren, hvis formål er at øge følsomheden, så arduinoen let kan genkende det skiftende magnetfelt. Ændring af et par mV ved udgangen af ​​hallsensoren, efter at have passeret gennem forstærkeren, kan ændre sig med flere hundrede enheder i Arduino. Dette er nødvendigt for at sikre en jævn og stabil drift af PID-controlleren.

Den fælles op-forstærker, vi valgte, er LM324, den er billig, og du kan købe den fra enhver elektronikbutik. LM324 har 4 intern forstærker som gør det muligt at bruge den fleksibelt, men i dette projekt er der kun behov for to forstærkere, den ene til X-aksen og den anden til Y-aksen.

L298N-modul

L298N dobbelt H-broen bruges ofte til at styre hastigheden og retningen af ​​to jævnstrømsmotorer eller let styre en bipolær trinmotor. L298N kan bruges med 5 til 35 VDC motorer.

Der er også en indbygget 5V regulator, så hvis forsyningsspændingen er op til 12V, kan du også tilslutte en 5V strømforsyning fra kortet.

Dette projekt bruger en L298N til at drive to par magnetventiler og bruger en 5V-udgang til at drive Arduino og hall-sensoren.

Pinout af moduler:

  • Ud 2: par elektromagneter X
  • Ud 3: par elektromagneter Y
  • Strømindgang: DC 12V-indgang
  • GND: Jord
  • 5v output: 5v til Arduino sensorer og hal
  • EnA: Aktiverer PWM-signal til udgang 2
  • In1: Aktiver for output 2
  • In2: Aktiver for Out 2
  • In3: Aktiver for output 3
  • In4: Aktiver for output 3
  • EnB: Aktiverer PWM-signal til Out3

Arduino-forbindelse: vi skal fjerne 2 jumpere i benene EnA og EnB og derefter forbinde 6 ben In1, In2, In3, In4, EnA, EnB til Arduino.

SS495a Hall-sensor

SS495a er en lineær Hall-effektsensor med analog udgang. Bemærk forskellen mellem analog udgang og digital udgang, du kan ikke bruge en sensor med digital udgang i dette projekt, den har kun to tilstande 1 eller 0, så du kan ikke måle output af magnetfelter.

Den analoge sensor vil resultere i et spændingsområde på 250 til Vcc, som du kan læse med Arduino analoge indgang. To hallsensorer er nødvendige for at måle magnetfeltet i både X- og Y-akserne.

Trin 6: NdFeB (neodym-jern-bor) neodymmagneter

Fra Wikipedia: "Neodymium - kemisk element, et sjældent jordmetal med en sølvfarvet hvid farve med en gylden farvetone. Tilhører gruppen af ​​lanthanider. Oxideres let i luften. Opdaget i 1885 af den østrigske kemiker Karl Auer von Welsbach. Det bruges som en komponent af legeringer med aluminium og magnesium til fly og raket. "

Neodym er et metal, der er ferromagnetisk (især det udviser antiferromagnetiske egenskaber), hvilket betyder, at det ligesom jern kan magnetiseres til at blive en magnet. Men dens Curie temperatur er 19K (-254 ° C), så i ren form dens magnetisme manifesterer sig kun, når det er ekstremt lave temperaturer... Neodymforbindelser med overgangsmetaller såsom jern kan dog have Curie-temperaturer betydeligt højere stuetemperatur og de bruges til at fremstille neodymmagneter.

Stærk er det ord, der bruges til at beskrive en neodymmagnet. Du kan ikke bruge ferritmagneter, fordi deres magnetisme er for svag. Neodymmagneter er meget dyrere end ferritmagneter. Små magneter bruges til basen, store magneter til den flydende / svævende del.

Opmærksomhed! Du skal være forsigtig, når du bruger neodymmagneter, da deres stærke magnetisme kan skade dig, eller de kan bryde dataene på din harddisk eller andre. elektroniske anordninger påvirket af magnetfelter.

Råd! Du kan adskille to magneter ved at trække dem vandret, du kan ikke adskille dem i den modsatte retning, fordi deres magnetfelt er for stærkt. De er også meget skrøbelige og går let i stykker.

Trin 7: forbered basen

Brugt en lille terracottakande, der ofte bruges til dyrkning af sukkulenter eller kaktus. Du kan også bruge keramisk gryde eller trækande hvis de passer. Brug et 8 mm bor til at skabe et hul i bunden af ​​potten, der bruges til at holde DC-stikket.

Trin 8: 3D-udskrivning af den flydende del

Hvis du har en 3D-printer, fantastisk. Du har evnen til at gøre alt sammen med det. Fortvivl ikke, hvis der ikke er nogen printer. du kan bruge den billige 3D-udskrivningstjeneste, der er meget populær lige nu.

Til laserskæring filer er også i arkivet ovenfor - fil AcrylLaserCut.dwg (dette er autocad). Akrylstykket bruges til at understøtte magneterne og elektromagneterne, resten bruges til at dække overfladen af ​​terrakottagryden.

Trin 9: Forbered SS495a Hall-sensormodul

Skær printkortlayoutet i to, den ene for at fastgøre hallsensoren og den anden til LM324-kredsløbet. Fastgør to magnetiske sensorer vinkelret printplade... Brug tynde ledninger For at forbinde de to ben på VCC-sensorerne, gør det samme med GND-benene. Udgangskontakter er separate.

Trin 10: op-amp kredsløb

Lod stikket og modstandene på printet i henhold til diagrammet, og sørg for at placere de to potentiometre i samme retning for lettere kalibrering senere. Tilslut LM324 til stikket, og tilslut derefter de to udgange fra hall-sensormodulet til op-amp kredsløbet.

Tilslut de to udgangsledninger fra LM324 til Arduino. 12V indgang med 12V indgang på L298N modul, 5V udgang fra L298N modul til 5V potentiometer.

Trin 11: Samling af elektromagneterne

Saml elektromagneterne på et akrylark, de er fastgjort i fire huller nær midten. Stram skruerne for at undgå bevægelse. Da elektromagneter er symmetriske i midten, er de altid på de modsatte poler, så ledningerne er på inde elektromagneter er forbundet sammen, og ledningerne er på uden for elektromagneter er forbundet til L298N.

Træk ledningerne under akrylark gennem tilstødende huller for at forbinde til L298N. Kobbertråd dækket med et isolerende lag, så du skal fjerne det med en kniv, før du kan lodde dem sammen.

Trin 12: sensormodul og magneter

Brug varm lim For at fastgøre sensormodulet mellem elektromagneterne skal du bemærke, at hver sensor skal være firkantet med to elektromagneter, en foran og en bagpå. Prøv at kalibrere de to sensorer så centralt som muligt, så de ikke overlapper hinanden, hvilket vil gøre sensoren mest effektiv.

Det næste trin er at samle magneterne på akryl base... Ved at kombinere to D15 * 4mm magneter og en D15 * 3mm magnet sammen for at danne en cylinder, får magneterne og elektromagneterne den samme højde. Saml magneterne mellem parene af elektromagneter, bemærk at polerne på de opadgående magneter skal være de samme.

Trin 13: DC-strømstik og L298N 5V-udgang

Lod DC-stikket med to ledninger, og brug varmekrympeslanger. Tilsluttet jævnstrømsstik til indgangen på L298N-modulet, dets 5V-udgang leverer strøm til Arduino.

Trin 14: L298N og Arduino

Forbind L298N-modul til Arduino ved at følge diagrammet ovenfor:

L298N → Arduino
5V → VCC
GND → GND
EnA → 7
B1 → 6
B2 → 5
B3 → 4
B4 → 3
EnB → 2

Trin 15: Arduino Pro Mini programmør

Siden har Arduino pro mini er der ingen USB-port til seriel port, skal du tilslutte en ekstern programmør. FTDI Basic vil blive brugt til at programmere (og tænde) Pro Mini.

Jeg så denne effekt først i barndommen. Jeg blev bedt om at hjælpe, holde og skinne et bilstrooskop på svinghjulet i bilens motor. Motoren blev startet, og efter det så jeg på det roterende svinghjul et næsten ubevægeligt hak, der stod ét sted, og svinghjulet roterede samtidig. Derefter blev ideen født til at skabe en fan og stoppe den med et stroboskop. Efter et stykke tid realiserede jeg ideen ved hjælp af en IFK-120-lampe, en KU202-tyristor med en stropping og kastede den i det fjerne hjørne, men for omkring 6 år siden så jeg en japansk video med vandlevitation. Så ideen blev født til at gentage dette trick med levitation af dråber. I lang tid nåede de ikke håndens erkendelse, og til sidst blev drømmen til virkelighed ...

Se en video af hvad jeg fik:

Hvordan det virker
Der er flere videoer på YouTube, hvor de forsøger at skære vand i dråber, der strømmer fra silikonslange, ved hjælp af en lydhøjttaler eller et dynamisk hoved. Men denne metode har flere ulemper.
1 - strukturens bulk (søjle, forstærker, frekvensgenerator, stroboskop)
2 - subwooferen kan ikke gengive meander på grund af dens mekanisk design og ved udgangen viser det sig noget som en sinusformet. Som et resultat opdeles vandet ikke i dråber, men vrider sig som en slange.
3 - Frekvensgeneratoren bliver nødt til at tilpasse sig strobefrekvensen hver gang. Frekvensen flyder væk.

Alt i mit design er simpelt og billigt.
Alle kan gentage dette design derhjemme.
Det fungerer sådan her:
Stroboskop og elektromagnet fra et bilrelæ, arbejder med samme frekvens
Elektromagneten bryder vandstrømmen i dråber, og stroboskopet oplyser disse dråber ind et bestemt øjeblik... Da dråberne falder med en frekvens, der svarer til stroboskopet, opnås effekten af ​​dråber, der hænger i luften.

Ordning
Jeg havde KT972-transistorer ved hånden, så jeg installerede dem.
Du kan levere alle andre transistorer designet til en spænding på mindst 30V og en strøm på mindst 2A
Modstandene i transistorernes baser begrænser strømmen til 40 mA for ikke at beskadige controllerens output.
Jeg brugte LED-elementet fra en gammel defekt LED-lampe.
At reducere cellens forsyningsspænding til 24 V.
Jeg delte elementet i to ved at skære et spor og parallere de to arrays af LED'er.
Siden mad LED-element udføres af korte impulser og forsyningsspændingen
er lig med spændingsfaldet over lysdioderne, så jeg begrænsede ikke strømmen.
En diode parallel med elektromagneten beskytter mod negative emissioner fra den elektromagnetiske spole.
Du kan sætte en diode fra den samme adskilte LED-lampe.
Elektromagneten er lavet af et bilrelæ. Jeg havde allerede relæet ude, så jeg
Jeg var nødt til at bruge det som det er.
Hvis jeg havde et fungerende relæ, ville jeg først forsøge at forbinde en kinesisk pind til relæankeret.
For at sikre frigang mellem permanent magnet og en elektromagnet kan du sætte et stykke skumgummi mellem dem eller flytte pinden med en magnet til siden. Som jeg gjorde.

God aften! I denne publikation vil jeg tale om mit lille hjemmelavede produkt, som jeg har undfanget i lang tid.

For længe siden læste jeg en artikel om interessante enheder - levitroner, som begge er rent mekaniske og elektronisk styrede.

Naturligvis ville jeg samle et sådant legetøj til mig selv, men efter at have søgt på Internettet opdagede jeg til min overraskelse (i det mindste på det tidspunkt), at de fleste kredsløb var udelukkende analoge. Da jeg forstår lidt i analog teknologi, besluttede jeg at ”genopfinde” Levitron igen. Til eksperimenter viste Arduino Uno sig for hånden. Jeg bestilte en lineær Hall-sensor (hvad er Hall-effekten) i Kina, nemlig UGN3503UA, samlet et antal gamle transformere til vikling af testspoler og startede eksperimenter.

Det var det, der kom ud af det:


Hvordan det virker. En Hall-sensor er installeret i den nederste del af spolen i midten, som måler afstanden til neodymmagneten, som er limet til det "leviterende" stik. Sensoren har tre ben - en 5V strømforsyning og en analog udgang, der er forbundet til Arduino ADC.

Magnetventilstyringskredsløbet er samlet på en felteffekt-transistor.

Magneten er tilsluttet J1, pin 1 i J2 til PWM i Arduino. Der er ingen forbindelse mellem Hall-sensoren og ADC-indgangen i diagrammet, men der skulle ikke være nogen problemer her.

Jeg kan ikke sige antallet af spoler, da jeg under eksperimenterne lavede 3 eller 4 spoler, viklet det i henhold til princippet "hvor meget ledning der stadig er tilbage på transformeren." Andre parametre: spolemodstand ca. 12 ohm, diameter 30 mm, højde 10 mm, trådtykkelse 0,3 mm, spole uden kerne.

Firmwaren i den første version var ekstremt enkel, når værdien går ud af det tilladte interval, er kredsløbet enten deaktiveret eller aktiveret på fuld kraft i videoen ovenfor fungerer enheden bare i henhold til denne algoritme. I den næste version af firmwaren prøver MK at regulere spændingen på solenoiden problemfrit, hvilket resulterer i, at tendensen til at svinge i systemet er faldet.

Firmware

#define sensorPin A0 #define pwmPin 6 int sensorValue = 0; int levitPoint = 370; int deltaLevit = 5; int maxL, minL; byteinduktion = 128; ugyldig opsætning () (pinMode (pwmPin, OUTPUT); maxL = levitPoint - deltaLevit; minL = levitPoint + deltaLevit;) int sensorRead (int sensorPin) (int s = 0; for (byte i = 0; i< 5; i++) {s += analogRead(sensorPin);} return s/5; } void loop() { sensorValue = sensorRead(sensorPin); if (sensorValue < 490) { if (sensorValue < maxL) induction = 0; if (sensorValue >minL) induktion = 250; hvis (sensorValue> = maxL og sensorValue<= minL) induction = ((sensorValue - maxL)*25); } else induction = 0; analogWrite(pwmPin, induction); }


Kredsløbet drives af 12V, sensoren drives af den indbyggede Arduino-regulator. Forbruget i maksimumtilstand er cirka en ampere, i svævetilstand 0,3-0,4 A.

Enheden fungerede, men det er farligt at arbejde i mere end et minut, transistoren varmes meget op, spolen opvarmes også, indtil limen smelter (alt er samlet på hot melt lim).

Jeg planlægger at gøre om solenoiden i fremtiden og overføre kredsløbet til en strømforsyning på 5 volt, sætte en mere kraftig transistor med en radiator. Nå, udskift Arduino med ATiny. Det gør heller ikke ondt at sætte en kondensator med stor kapacitet på indgangskredsløbene eller endda en kondensatorbank for at beskytte strømforsyningen (den første 1,5 A strømforsyning brændte ud efter 10 sekunders drift fra belastningsstød).

På dette vil jeg måske slutte tak for din opmærksomhed.

Du kan lave en så interessant enhed som Levitron. Faktisk kaldes en Levitron en top eller anden genstand, der svæver i rummet på grund af et magnetfelts virkning. Levitrons er forskellige. Den klassiske model bruger et permanent magnetsystem og en spindel top. Den svæver over magneterne, når den roterer på grund af dannelsen af ​​en magnetisk pude nedenunder.

Forfatteren besluttede at forbedre systemet lidt ved at opbygge en Levitron baseret på Arduino ved hjælp af elektromagneter. Med disse teknikker behøver toppen ikke at dreje for at flyde i luften.

En sådan anordning kan bruges til forskellige andre hjemmelavede produkter. For eksempel kan det være en fremragende pejling, da der praktisk talt ikke er nogen friktionskræfter i den. På et sådant hjemmelavet produkt kan du også udføre forskellige eksperimenter, godt eller spille venner.

Materialer og værktøjer til fremstilling:
- mikrokontroller Arduino UNO;
- lineær Hall-sensor (model UGN3503UA);
- gamle transformere (til viklingsspoler);
- felt-effekt transistor, modstande, kondensatorer og andre elementer (klassifikationer og mærker er vist i diagrammet)
- ledninger
- loddejern med lodde;
- 12V strømforsyning
- kork
- en lille neodymmagnet;
- varm lim
- grundlaget for vikling af spolen og materialer til oprettelse af en hjemmelavet krop.

Levitron-fremstillingsproces:

Trin et. Lav en spole
Spolen vil være en elektromagnet, den vil skabe et magnetfelt, der tiltrækker toppen. En kork vil fungere som en top her, hvorpå en neodymmagnet er fastgjort. Andre materialer kan bruges i stedet for kork, men ikke for tunge.

Hvad angår antallet af drejninger i spolen, nævnte ikke forfatteren en sådan figur her, spolen blev samlet med øjet. Som et resultat var dens modstand ca. 12 ohm, højde 10 mm, diameter 30 mm, og tykkelsen på den anvendte ledning skulle være 0,3 mm. Der er ingen kerne i spolen, hvis du har brug for at lave en tungere top, så kan spolen udstyres med en kerne.


Trin to. Hall-sensorens rolle
For at toppen kan flyde i luften og ikke klæbe tæt til solenoiden, har systemet brug for en sensor, der kan måle afstanden til toppen. En Hall-sensor bruges som sådan et element. Denne sensor er i stand til at detektere magnetfeltet for ikke kun en permanent magnet, men kan også bestemme afstanden til alle metalgenstande, da sådanne sensorer selv skaber et elektrisk magnetfelt.
Det er takket være denne sensor, at toppen altid holder i den rigtige afstand fra solenoiden.



Når toppen begynder at bevæge sig væk fra spolen, hæver systemet spændingen. Omvendt, når toppen nærmer sig solenoiden, sænker systemet spændingen i spolen, og magnetfeltet svækkes.

Der er tre udgange på sensoren, dette er en 5V forsyning samt en analog udgang. Sidstnævnte forbinder til Arduino ADC.

Trin tre. Vi samler kredsløbet og installerer alle elementerne
Som en krop til hjemmelavede produkter kan du bruge et stykke tømmer, som du skal lave et simpelt beslag til fastgørelse af spolen. Det elektroniske kredsløb er ret simpelt, alt kan forstås ud fra billedet. Elektronikken fungerer fra en 12V kilde, og da sensoren har brug for 5V, er den forbundet via en speciel stabilisator, som allerede er indbygget i Arduino-controlleren. Den maksimale enhed bruger cirka en ampere. Når toppen svæver, er det aktuelle forbrug i området 0,3-0,4 A.




En felt-effekt transistor bruges til at styre solenoiden. Selve solenoiden er forbundet til udgangene på J1, og den første ben på J2-stikket skal tilsluttes PWM på Arduino. Diagrammet viser ikke, hvordan Hall-sensoren tilsluttes ADC, men der skal ikke være nogen problemer med dette.

Trin fire. Controller firmware
Firmware er påkrævet for at programmere controlleren til de ønskede handlinger. Programmet fungerer meget enkelt. Når værdierne begynder at gå uden for det tilladte område, hæver systemet enten strømmen til maksimum eller lukker helt ned. I senere versioner af firmwaren blev det muligt at justere spændingen på spolen problemfrit, så de skarpe svingninger i toppen stoppede.


Det er alt, det hjemmelavede produkt er klar. Ved første start fungerede enheden, men der blev fundet nogle fejl. Så for eksempel, når man arbejder i mere end 1 minut, begyndte spolen og transistoren at blive meget varm. I denne henseende skal der i fremtiden installeres en radiator på transistoren, eller der skal installeres en mere kraftig. Spolen skal også redesignes med et mere robust design end bare spoler af varm limtråd.

For at beskytte strømforsyningen skal der installeres store kondensatorer på indgangskredsløbene. Forfatterens første strømforsyning på 1,5 A brændte ud efter 10 sekunder på grund af stærke spændingsstød.

I fremtiden er det planlagt at overføre hele systemet til en 5V strømforsyning.