- Vaaditut komponentit:
- Työselitys:
- Piirin selitys:
- Ohjelmoinnin selitys:
- Piirin ja piirilevyn suunnittelu EasyEDA: n avulla:
- Näytteiden laskeminen ja tilaaminen verkossa:
Maanjäristys on arvaamaton luonnonkatastrofi, joka vahingoittaa ihmishenkiä ja omaisuutta. Se tapahtuu yhtäkkiä, emmekä voi pysäyttää sitä, mutta meidät voidaan varoittaa siitä. Nykyään on olemassa monia tekniikoita, joita voidaan käyttää pienten tärinöiden ja kolhujen havaitsemiseen, jotta voimme ryhtyä varotoimiin ennen suuria tärinöitä maapallolla. Tässä käytämme kiihtyvyysmittaria ADXL335 maanjäristyksen edeltävien tärinöiden havaitsemiseen. Kiihtyvyysmittari ADXL335 on erittäin herkkä tärinöille ja tärinälle kaikkien kolmen akselin ohella. Täällä rakennamme Arduino-pohjaista maanjäristystunnistinta kiihtyvyysmittarilla.
Rakennamme tätä maanjäristystunnistinta Arduino Shieldiksi piirilevylle ja näytämme myös värähtelykaavion tietokoneella prosessointia käyttäen.
Vaaditut komponentit:
- Arduino UNO
- Kiihtyvyysanturi ADXL335
- 16x2 LCD
- Summeri
- BC547-transistori
- 1k vastukset
- 10K POT
- LED
- Virtalähde 9v / 12v
- Berg tikku uros / naaras
Kiihtyvyysanturi:
Tappi Kiihtyvyysanturin kuvaus:
- Vcc 5 voltin syöttö tulisi liittää tähän tapiin.
- X-OUT Tämä tappi antaa analogisen lähdön x-suuntaan
- Y-OUT Tämä tappi antaa analogisen lähdön y-suuntaan
- Z-OUT Tämä tappi antaa analogisen lähdön z-suuntaan
- GND-maa
- ST Tätä tapia käytetään anturin herkkyyden asettamiseen
Tarkista myös muut projektit kiihtyvyysmittarilla:
- Ping Pong -peli Arduinoa käyttämällä
- Kiihtyvyysmittaripohjainen käsieleen ohjaama robotti.
- Arduino-pohjainen ajoneuvon onnettomuuksien hälytysjärjestelmä GPS-, GSM- ja kiihtyvyysanturilla
Työselitys:
Tämän maanjäristystunnistimen käyttö on yksinkertaista. Kuten aiemmin mainitsimme, olemme käyttäneet kiihtyvyysmittaria maanjäristystärinän havaitsemiseksi missä tahansa kolmesta akselista niin, että aina kun tärinää esiintyy, kiihtyvyysanturi havaitsee värähtelyn ja muuntaa ne vastaavaksi ADC-arvoksi. Sitten Arduino lukee nämä ADC-arvot ja näytetään 16x2 nestekidenäytössä. Olemme myös osoittaneet nämä arvot käyrällä käsittelyn avulla. Lisätietoja kiihtyvyysmittarista käymällä läpi muita kiihtyvyysmittariprojekteja täällä.
Ensin meidän on kalibroitava kiihtyvyysmittari ottamalla näytteet ympäröivistä tärinästä aina, kun Arduino Powers käynnistyy. Sitten meidän on vähennettävä nuo näytearvot todellisista lukemista, jotta saadaan todelliset lukemat. Tämä kalibrointi on tarpeen, jotta se ei näytä hälytyksiä normaalista ympäröivästä värähtelystään. Todellisten lukemien löytämisen jälkeen Arduino vertaa näitä arvoja ennalta määritettyihin max- ja min-arvoihin. Jos Arduino havaitsee muutosarvojen olevan suurempia tai pienempiä kuin minkä tahansa akselin ennalta määritetyt arvot molempiin suuntiin (negatiivinen ja positiivinen), Arduino laukaisee summerin ja näyttää hälytyksen tilan 16x2 LCD: n kautta ja myös LED palaa. Voimme säätää maanjäristystunnistimen herkkyyttä muuttamalla Arduino-koodin ennalta määritettyjä arvoja.
Esittelyvideo ja Arduino-koodi ovat artikkelin lopussa.
Piirin selitys:
Tämän maanjäristystunnistimen piiri Arduino Shield PCBon myös yksinkertainen. Tässä projektissa olemme käyttäneet Arduinoa, joka lukee kiihtyvyysmittarin analogisen jännitteen ja muuntaa ne digitaalisiksi arvoiksi. Arduino ajaa myös summeria, LEDiä, 16x2 LCD: tä, laskee ja vertaa arvoja ja toteuttaa tarvittavat toimet. Seuraava osa on kiihtyvyysmittari, joka havaitsee maan värähtelyn ja tuottaa analogiset jännitteet 3 akselille (X, Y ja Z). LCD-näyttöä käytetään osoittamaan X-, Y- ja Z-akselien muutos arvoissa ja myös hälytysviesti sen yli. Tämä LCD-näyttö on kiinnitetty Arduinoon 4-bittisessä tilassa. RS-, GND- ja EN-nastat on kytketty suoraan Arduinon 9, GND ja 8 nastaan ja muut 4 LCD-nastasta eli D4, D5, D6 ja D7 on kytketty suoraan Arduinon digitaalisiin nastoihin 7, 6, 5 ja 4. Summeri on kytketty Arduinon tapaan 12 NPN BC547 -transistorin kautta. 10k pottia käytetään myös nestekidenäytön kirkkauden säätämiseen.
Ohjelmoinnin selitys:
Tässä maanjäristystunnistimessa Arduino Shield olemme tehneet kaksi koodia: yhden Arduinolle maanjäristyksen havaitsemiseksi ja toisen IDE: n prosessoimiseksi maanjäristysvärähtelyjen piirtämiseksi tietokoneen kaavion päälle. Opimme molemmat koodit yksitellen:
Arduino-koodi:
Ensinnäkin kalibroimme kiihtyvyysanturin sen sijoituspinnan suhteen, jotta se ei näytä hälytyksiä normaalista ympäröivästä värähtelystään. Tässä kalibroinnissa otamme joitain näytteitä ja otamme sitten keskiarvon niistä ja tallennamme muuttujaan.
varten (int i = 0; i
Aina kun kiihtyvyysmittari ottaa lukemia, vähennämme nuo näytearvot lukemista, jotta se voi jättää huomiotta ympäristön tärinän.
int-arvo1 = analoginen luku (x); // x: n lukeminen int-arvo2 = analoginenLue (y); // lukee y: n int-arvon3 = analoginenLue (z); // z: n lukeminen int xValue = xsample-value1; // muutoksen löytäminen x int yValue = ysample-value2; // muutoksen löytäminen y int zValue = zsample-value3; // z: n muutoksen löytäminen / * ilmaisemalla muutoksen x-, y- ja z-akseliarvoissa lcd * / lcd.setCursor (0,1) -kohdassa; lcd.print (zValue); lcd.setCursor (6,1); lcd.print (yValue); lcd.setCursor (12,1); lcd.print (zValue); viive (100)
Sitten Arduino vertaa kalibroituja (vähennettyjä) arvoja ennalta määriteltyihin rajoihin. Ja toimi vastaavasti. Jos arvot ovat suurempia kuin ennalta määritetyt arvot, se antaa äänimerkin ja piirtää värähtelykaavion tietokoneelle prosessoinnin avulla.
/ * muutoksen vertaaminen ennalta määritettyihin rajoihin * / if (xValue <minVal - xValue> maxVal - yValue <minVal - yValue> maxVal - zValue <minVal - zValue> maxVal) {if (buz == 0) start = millis (); // ajastimen käynnistys buz = 1; // summeri / led-lippu aktivoitu} else if (buz == 1) // summeri-lippu aktivoitu ja hälyttävä maanjäristys {lcd.setCursor (0,0); lcd.print ("Maanjäristysvaroitus"); if (millis ()> = start + buzTime) buz = 0; }
Käsittelykoodi:
Alla on liitteenä käsittelykoodi, jonka voit ladata alla olevasta linkistä:
Maanjäristyksen ilmaisimen prosessointikoodi
Olemme suunnitelleet maanjäristysvärähtelyjä varten Processing-prosessorin, jossa määritimme ikkunan koon, yksiköt, kirjasinkoon, taustan, sarjaporttien lukemisen ja näyttämisen, avoimen valitun sarjaportin jne.
// aseta ikkunan koko: ja kirjasinkoko f6 = createFont ("Arial", 6, true); f8 = createFont ("Arial", 8, tosi); f10 = createFont ("Arial", 10, tosi); f12 = createFont ("Arial", 12, tosi); f24 = createFont ("Arial", 24, tosi); koko (1200, 700); // Luettele kaikki käytettävissä olevat sarjaportit println (Serial.list ()); myPort = uusi sarja (tämä, "COM43", 9600); println (myPort); myPort.bufferUntil ('\ n'); tausta (80)
Alla olevassa toiminnossa olemme vastaanottaneet tietoja sarjaportista ja purkaneet vaaditut tiedot ja kartoittaneet ne sitten kaavion koon mukaan.
// puretaan kaikkien kolmen akselin kaikki vaaditut arvot: int l1 = inString.indexOf ("x =") + 2; Merkkijonolämpötila1 = merkkijono-merkkijono (l1, l1 + 3); 11 = inString.indexOf ("y =") + 2; Merkkijono temp2 = inString.alijono (l1, l1 + 3); 11 = inString.indexOf ("z =") + 2; Merkkijono temp3 = sisäänjousisarja (ll, l1 + 3); // kartoitetaan x-, y- ja z-arvot kuvaajan mitoilla float inByte1 = float (temp1 + (char) 9); inByte1 = kartta (inByte1, -80,80, 0, korkeus-80); float inByte2 = float (temp2 + (char) 9); inByte2 = kartta (inByte2, -80,80, 0, korkeus-80); float inByte3 = float (temp3 + (char) 9); inByte3 = kartta (inByte3, -80,80, 0, korkeus-80); float x = kartta (xPos, 0,1120,40, leveys-40);
Tämän jälkeen olemme piirtäneet yksikötilan, max- ja min-rajat, x-, y- ja z-akselin arvot.
// piirtokaavioikkuna, yksikkötiheysPaino (2); aivohalvaus (175); Viiva (0,0,0100); textFont (f24); täyttö (0,00,255); textAlign (OIKEA); xmargin ("EarthQuake Graph By Circuit Digest", 200 100); täyttö (100); aivohalvaus (100); linja (1050,80,1200,80);………………
Tämän jälkeen piirrämme arvot kaavion päälle käyttämällä 3 erilaista väriä sinisenä x-akselin arvolle, vihreän värin y-akselille ja z: n punaisella värillä.
aivohalvaus (0,0255); jos (y1 == 0) y1 = korkeus-tavu1-siirto; viiva (x, y1, x + 2, korkeus-tavu1-siirto); y1 = korkeus-tavu-1-siirto; aivohalvaus (0,255,0); if (y2 == 0) y2 = korkeus-tavua2-siirto; viiva (x, y2, x + 2, korkeus-tavua2-siirto); y2 = korkeus-tavua2-siirto; aivohalvaus (255,0,0); jos (y2 == 0) y3 = korkeus-tavu3-siirto; viiva (x, y3, x + 2, korkeus-tavu3-siirto); y3 = korkeus-tavu3-siirto;
Opi myös lisää käsittelystä käymällä läpi muut käsittelyprojektimme.
Piirin ja piirilevyn suunnittelu EasyEDA: n avulla:
EasyEDA ei ole vain yhden luukun ratkaisu kaaviolliseen sieppaukseen, piirisimulaatioon ja piirilevysuunnitteluun, vaan se tarjoaa myös edullisia piirilevyjen prototyyppien ja komponenttien hankintapalveluja. He käynnistivät äskettäin komponenttien hankintapalvelun, jossa heillä on suuri määrä elektronisia komponentteja ja käyttäjät voivat tilata tarvittavat komponentit piirilevytilauksen mukana.
Piirejä ja piirilevyjä suunniteltaessa voit myös tehdä piireistä ja piirilevyistä julkisia, jotta muut käyttäjät voivat kopioida tai muokata niitä ja hyötyä niistä. Olemme myös julkaisseet koko piiri- ja piirilevyasettelumme tälle maanjäristyksen ilmaisinsuojalle Arduino UNO, tarkista alla oleva linkki:
easyeda.com/circuitdigest/EarthQuake_Detector-380c29e583b14de8b407d06ab0bbf70f
Alla on tilannekuva EasyEDA: n piirilevyasettelun ylimmästä kerroksesta. Voit tarkastella mitä tahansa piirilevyn tasoa (ylä-, ala-, yläsilkki-, pullonsilkki jne.) Valitsemalla kerroksen Tasot-ikkunasta.
Voit myös nähdä piirikortin valokuvanäkymän EasyEDA: n avulla:
Näytteiden laskeminen ja tilaaminen verkossa:
Suoritettuaan suunnittelu PCB, voit klikata kuvaketta Fabrication tuotos , joka vie sinut PCB järjestyksessä sivulle. Täällä voit tarkastella piirilevyäsi Gerber Viewer -sovelluksessa tai ladata Gerber-tiedostoja piirilevyllesi. Täällä voit valita tilattavien piirilevyjen määrän, kuinka monta kuparikerrosta tarvitset, piirilevyn paksuuden, kuparin painon ja jopa piirilevyn värin. Kun olet valinnut kaikki vaihtoehdot, napsauta "Tallenna ostoskoriin" ja suorita tilauksesi. Viime aikoina he ovat laskeneet piirilevynsä huomattavasti, ja nyt voit tilata 10 kpl 2-kerroksista piirilevyä, joiden koko on 10 cm x 10 cm, vain 2 dollaria.
Tässä ovat piirilevyt, jotka sain EasyEDA: lta:
Alla on kuvia viimeisestä Shieldistä komponenttien juotoksen jälkeen piirilevylle: