- Szükséges alkatrészek:
- Munka magyarázat:
- Áramkör magyarázat:
- Programozási magyarázat:
- Áramkör és NYÁK tervezés az EasyEDA segítségével:
- Minták kiszámítása és megrendelése online:
A földrengés kiszámíthatatlan természeti katasztrófa, amely élet- és vagyoni károkat okoz. Ez hirtelen történik, és nem tudjuk megállítani, de riaszthatunk tőle. Napjainkban számos olyan technológia létezik, amelyek segítségével észlelhetők a kis rázkódások és ütések, így óvintézkedéseket tehetünk a föld néhány nagyobb rezgése előtt. Itt az ADXL335 gyorsulásmérőt használjuk a földrengés előtti rezgések észlelésére. Az ADXL335 gyorsulásmérő mind a három tengely mellett rendkívül érzékeny a rázkódásokra és a rezgésekre. Itt Arduino-alapú földrengés-érzékelőt építünk Accelerometer segítségével.
Ezt a földrengés-érzékelőt Arduino pajzsként építjük a NYÁK-ra, és a Vibrations Graph-ot is megjelenítjük számítógépen a Processing segítségével.
Szükséges alkatrészek:
- Arduino UNO
- Gyorsulásmérő ADXL335
- 16x2 LCD
- Berregő
- BC547 tranzisztor
- 1k ellenállások
- 10K POT
- VEZETTE
- Tápegység 9v / 12v
- Berg ragaszkodik hím / nőstényhez
Gyorsulásmérő:
Tű a gyorsulásmérő leírása:
- Az 5 voltos Vcc tápnak ennél a csapnál kell csatlakoznia.
- X-OUT Ez a tű analóg kimenetet ad x irányban
- Y-OUT Ez a tű analóg kimenetet ad y irányban
- Z-OUT Ez a csap analóg kimenetet ad z irányban
- GND föld
- ST Ez a tű az érzékelő érzékenységének beállítására szolgál
Ellenőrizze a többi projektünket is az Accelerometer segítségével:
- Ping Pong játék az Arduino használatával
- Gyorsulásmérő alapú kézmozdulattal vezérelt robot.
- Arduino alapú jármű baleseti riasztórendszer GPS, GSM és gyorsulásmérő segítségével
Munka magyarázat:
A földrengés-érzékelő működése egyszerű. Mint korábban említettük, az Accelerometer segítségével a három tengely bármelyikén észleltük a földrengés rezgéseit, így amikor csak rázkódás lép fel, a gyorsulásmérő érzékeli a rezgéseket és ekvivalens ADC értékekké alakítja őket. Ezután ezeket az ADC értékeket az Arduino leolvassa és megjeleníti a 16x2 LCD-n. Ezeket az értékeket a grafikonon is bemutattuk a Processing használatával. Tudjon meg többet a gyorsulásmérőről azáltal, hogy itt végigvezeti a többi gyorsulásmérő projektünket.
Először kalibrálnunk kell a gyorsulásmérőt úgy, hogy az Arduino Powers felemelésekor a környező rezgések mintáit vesszük. Ezután le kell vonnunk ezeket a mintaértékeket a tényleges leolvasott értékekből, hogy megkapjuk a valós értékeket. Erre a kalibrálásra azért van szükség, hogy ne jelenjen meg riasztás a normál környező rezgésekkel kapcsolatban. A valós értékek megtalálása után az Arduino összehasonlítja ezeket az értékeket az előre definiált max és min értékekkel. Ha az Arduino úgy találja, hogy a változások értéke nagyobb vagy kisebb, mint bármely tengely előre meghatározott értéke mindkét irányban (negatív és pozitív), akkor az Arduino kiváltja a hangjelzőt, és a riasztás állapotát megmutatja a 16x2 LCD-n, és egy LED is bekapcsol. A Földrengés-érzékelő érzékenységét úgy módosíthatjuk, hogy megváltoztatjuk az előre definiált értékeket az Arduino kódban.
A bemutató videó és az Arduino kód a cikk végén található.
Áramkör magyarázat:
Ennek az Arduino Shield PCB-nek a földrengés-érzékelő áramköreis egyszerű. Ebben a projektben Arduino-t használtunk, amely leolvassa a gyorsulásmérő analóg feszültségét és átalakítja azokat digitális értékekké. Az Arduino meghajtja a hangjelzőt, a LED-et, a 16x2 LCD-t, kiszámítja és összehasonlítja az értékeket, és megteszi a megfelelő lépéseket. A következő rész a gyorsulásmérő, amely érzékeli a föld rezgését és analóg feszültségeket generál 3 tengelyben (X, Y és Z). Az LCD-t az X, Y és Z tengely értékváltozásának, valamint riasztási üzenetének megjelenítésére használják. Ez az LCD 4-bites módban csatlakozik az Arduino-hoz. Az RS, GND és EN érintkezők közvetlenül csatlakoznak az Arduino 9, GND és 8 érintkezőihez, és az LCD 4 adatcsapjának többi része, nevezetesen a D4, D5, D6 és D7 közvetlenül csatlakozik az Arduino 7, 6, 5 és 4 digitális érintkezőihez. A hangjelző egy NPN BC547 tranzisztoron keresztül csatlakozik az Arduino 12. tűjéhez. 10k potot használnak az LCD fényerejének szabályozására is.
Programozási magyarázat:
Ebben a földrengésérzékelő Arduino Shield- ben két kódot készítettünk: egyet az Arduino számára egy földrengés észlelésére, a másikat pedig az IDE feldolgozására, hogy a földrengés rezgéseit a számítógép grafikonján ábrázoljuk. Egyenként megismerjük mindkét kódot:
Arduino kód:
Először kalibráljuk a gyorsulásmérőt annak elhelyezési felülete szempontjából, hogy ne jelenjen meg riasztás a normál környező rezgésekkel kapcsolatban. Ebben a kalibrálásban néhány mintát veszünk, majd átlagot veszünk belőlük, és egy változóban tároljuk.
mert (int i = 0; i
Most, amikor az Accelerometer leolvas, akkor kivonjuk ezeket a mintaértékeket az olvasásokból, hogy figyelmen kívül hagyhassa a környezeti rezgéseket.
int értéke1 = analógRead (x); // x kiolvasása int érték2 = analógRead (y); // y kiolvasása int érték3 = analógRead (z); // z kiolvasása int xValue = xsample-value1; // az x int változásának megállapítása yValue = ysample-value2; // az y változásának megállapítása int zValue = zsample-value3; // a z / * változásának megtalálása, az x, y és z tengelyértékek változásának diszkultálása az lcd * / lcd.setCursor (0,1) felett; lcd.print (zValue); lcd.setCursor (6,1); lcd.print (yValue); lcd.setCursor (12,1); lcd.print (zValue); késés (100)
Ezután Arduino összehasonlítja ezeket a kalibrált (kivont) értékeket előre meghatározott határokkal. És ennek megfelelően cselekedjen. Ha az értékek magasabbak, mint az előre definiált értékek, akkor a sípoló hangjelzést ad, és a Processing segítségével számítógépen ábrázolja a vibrációs grafikont.
/ * változás összehasonlítása előre definiált határokkal * / if (xValue <minVal - xValue> maxVal - yValue <minVal - yValue> maxVal - zValue <minVal - zValue> maxVal) {if (buz == 0) start = millisz (); // időzítő indítása buz = 1; // buzzer / led flag aktiválva} else if (buz == 1) // buzzer flag aktiválva, majd riasztó földrengést {lcd.setCursor (0,0); lcd.print ("Földrengés riasztás"); if (millisz ()> = kezdet + buzTime) buz = 0; }
Feldolgozási kód:
Az alábbiakban található a feldolgozási kód, a kódot az alábbi linkről töltheti le:
Földrengésérzékelő feldolgozó kód
A Processing segítségével grafikont terveztünk a földrengés rezgéseihez, amelyben meghatároztuk az ablak méretét, egységeket, betűméretet, hátteret, soros portok olvasását és megjelenítését, a kiválasztott soros port megnyitását stb.
// állítsa be az ablak méretét: és Betűméret f6 = createFont ("Arial", 6, true); f8 = createFont ("Arial", 8, igaz); f10 = createFont ("Arial", 10, igaz); f12 = createFont ("Arial", 12, igaz); f24 = createFont ("Arial", 24, igaz); méret (1200, 700); // Sorolja fel az összes rendelkezésre álló soros portot println (Serial.list ()); myPort = új soros (ez, "COM43", 9600); println (myPort); myPort.bufferUntil ('\ n'); háttér (80)
Az alábbi függvényben adatokat kaptunk a soros portról, kivontuk a szükséges adatokat, majd feltérképeztük a grafikon méretével.
// a három tengely összes szükséges értékének kinyerése: int l1 = inString.indexOf ("x =") + 2; String temp1 = inString.substring (l1, l1 + 3); l1 = inString.indexOf ("y =") + 2; String temp2 = inString.substring (l1, l1 + 3); l1 = inString.indexOf ("z =") + 2; Karakterlánc temp3 = inString.substring (l1, l1 + 3); // az x, y és z érték leképezése gráfméretekkel float inByte1 = float (temp1 + (char) 9); inByte1 = térkép (inByte1, -80,80, 0, magasság-80); float inByte2 = float (temp2 + (char) 9); inByte2 = térkép (inByte2, -80,80, 0, magasság-80); float inByte3 = float (temp3 + (char) 9); inByte3 = térkép (inByte3, -80,80, 0, magasság-80); úszó x = térkép (xPos, 0,1120,40, szélesség-40);
Ezek után ábrázoltuk az egységteret, a max és a min határokat, az x, y és a z tengely értékeit.
// ábrázoló gráf ablak, egység strokeWeight (2); stroke (175); Vonal (0,0,0,100); textFont (f24); töltet (0,00,255); textAlign (JOBB); xmargin ("EarthQuake Graph By Circuit Digest", 200,100); kitöltés (100); strokeWeight (100); vonal (1050,80,1200,80);………………
Ezután ábrázoljuk az értékeket a grafikonon úgy, hogy 3 különböző színt használunk: kék az x tengely értékhez, a zöld szín az y tengelyhez, és z a vörös szín.
löket (0,0255); if (y1 == 0) y1 = magasság-inBájt1-eltolás; vonal (x, y1, x + 2, magasság-bájt1-eltolás); y1 = magasság-inByte1-eltolás; löket (0,255,0); if (y2 == 0) y2 = magasság-inBájt2-eltolás; vonal (x, y2, x + 2, magasság-inByte2-eltolás); y2 = magasság-inByte2-eltolás; stroke (255,0,0); if (y2 == 0) y3 = magasság-inByte3-shift; vonal (x, y3, x + 2, magasság-inByte3-shift); y3 = magasság-inByte3-eltolás;
Ismerjen meg többet a feldolgozásról más feldolgozási projektjeinken keresztül.
Áramkör és NYÁK tervezés az EasyEDA segítségével:
Az EasyEDA nem csak egyablakos megoldás a sematikus rögzítéshez, az áramkör-szimulációhoz és a NYÁK-tervezéshez, hanem olcsó PCB-prototípus és alkatrész-beszerzési szolgáltatást is kínál. Nemrégiben elindították alkatrész-beszerzési szolgáltatásukat, ahol nagy mennyiségű elektronikus alkatrész áll rendelkezésükre, és a felhasználók megrendelhetik a szükséges alkatrészeiket a NYÁK-rendeléssel együtt.
Az áramkörök és a NYÁK-k tervezése közben az áramköri és a NYÁK-terveket is nyilvánossá teheti, hogy más felhasználók másolhassák vagy szerkeszthessék őket, és kihasználhassák azok előnyeit. Az egész áramköri és NYÁK-elrendezésünket nyilvánosságra hoztuk ehhez a földrengésjelző pajzshoz is: Arduino UNO, ellenőrizze az alábbi linket:
easyeda.com/circuitdigest/EarthQuake_Detector-380c29e583b14de8b407d06ab0bbf70f
Az alábbiakban bemutatjuk az EasyEDA PCB elrendezésének felső rétegének pillanatképét. Megtekintheti a NYÁK bármely rétegét (felső, alsó, Topsilk, alsó tej stb.), Ha kiválasztja a réteget a „Rétegek” ablakból.
Az EasyEDA segítségével megtekintheti a NYÁK fotó nézetét is:
Minták kiszámítása és megrendelése online:
A NYÁK tervezésének befejezése után rákattinthat a Gyártás kimenet ikonjára, amely a NYÁK megrendelés oldalán található. Itt megtekintheti a nyomtatott áramköri lapot a Gerber Viewer alkalmazásban, vagy letöltheti a számítógép Gerber fájljait. Itt kiválaszthatja a megrendelni kívánt NYÁK-k számát, hány rézrétegre van szüksége, a NYÁK vastagságát, a réz súlyát és még a NYÁK színét is. Miután kiválasztotta az összes lehetőséget, kattintson a „Mentés a kosárba” elemre, és teljesítse megrendelését. Nemrégiben jelentősen csökkentek a NYÁK aránya, és most 10 dollárért rendelhet 10 db 2 rétegű NYÁK-t 10 cm x 10 cm méretben.
Itt vannak a NYÁK-k, amelyeket az EasyEDA-tól kaptam:
Az alábbiakban láthatók a végső pajzs képei az alkatrészek forrasztása után a NYÁK-ra: