Indholdsfortegnelse:

Opbygning af en kapacitiv væskesensor: 8 trin (med billeder)
Opbygning af en kapacitiv væskesensor: 8 trin (med billeder)

Video: Opbygning af en kapacitiv væskesensor: 8 trin (med billeder)

Video: Opbygning af en kapacitiv væskesensor: 8 trin (med billeder)
Video: Opbygning af araberspring 2024, November
Anonim
Opbygning af en kapacitiv væskesensor
Opbygning af en kapacitiv væskesensor

En kapacitiv væskesponsor er afhængig af, at kapacitansen eller ladningen mellem 2 metalplader vil ændre sig (i dette tilfælde øges) afhængigt af, hvilket materiale der er mellem dem. Dette giver os mulighed for at oprette en niveausensor, der er sikker til brug med enhver væske, denne vil blive brugt i en vogn med benzin (benzin). En plade er fastgjort til jorden. Den anden forbinder til pin 23. Der er en 820K ohm modstand fra pin 22 til 23. Sensoren fungerer ved at oplade kondensatoren (vandflasken) og måle, hvor lang tid det tager at dræne gennem modstanden.

Trin 1: Dele

Dele
Dele

1. Et brødbræt uden lodning er strengt taget ikke nødvendigt, men gør det meget lettere, især hvis du planlægger at tilføje andre ting senere. 2. Arduino, jeg bruger en Arduino mega, men en standard skal have lige nok pins. 3. LCD -tegnvisning. 4. Nogle odds og ender inklusive noget ledning og en 1MΩ modstand. 5. En computer, du ved, den ting du bruger til at læse min instruerbare med. 6. Tålmodighed.

Trin 2: Tilslutning af LCD'et og lad din skabelse tale med verden

Tilslutning af LCD'et og lad din skabelse tale med verden
Tilslutning af LCD'et og lad din skabelse tale med verden

Ligesom hvert trin i denne instruktive er der mange måder at gøre dette på. Jeg viser dig min favorit.

Din LCD har 16 huller loddepuder, så det første er at vedhæfte nogle stifter. Hvis dit patent, så anbefaler jeg at købe en header som denne https://www.sparkfun.com/commerce/product_info.php?products_id=117. Men hvis du vil blive færdig så hurtigt som muligt (som mig), kan du bruge ledning. Skær enkelt 16 stykker tråd på ca. 13 mm (længere er okay). Lod dem derefter til brættet.

Trin 3: Tilslutning af LCD Fortsættes

Tilslutning af LCD Fortsættes
Tilslutning af LCD Fortsættes
Tilslutning af LCD Fortsættes
Tilslutning af LCD Fortsættes

Synder jeg bruger specialtegn Jeg forbinder alle ledninger.

Pin 1 Ground Pin 2 +5 Volt Pin 3 Kontrastjuster Pin 4 RS Pin 5 R/W Går til Ground Pin 6-14 Data Pin 15 Back-light Power Pin 16 Back-light Ground

Trin 4: Datalinjer

Datalinjer
Datalinjer
Datalinjer
Datalinjer

Nu skal du slutte Arduino til lcd'en. Det betyder ikke noget, hvilke pins du bruger, men jeg anbefaler at følge skematikken.

Trin 5: Power MaHaHaHa

Strøm MaHaHaHa
Strøm MaHaHaHa

Usb-porten på din computer har strøm nok til at køre Arduino og ledet baggrundslys, så bare tilslut jorden og strømskinner på dit brødbræt til strømmen på Arduino-kortet.

Trin 6: Lav en kapacitiv sensor

Lav en kapacitiv sensor
Lav en kapacitiv sensor
Lav en kapacitiv sensor
Lav en kapacitiv sensor

Til test brugte jeg aluminiumsfolie og en vandflaske af plast, den fungerer med enhver beholder, så længe den ikke er metal.

Du kan bruge enhver form for ledning, men alle ikke -afskærmede linjer giver dårlig ydelse. Du kan bruge 2 pins, jeg valgte 22 og 23. Tilslut den ene side til jorden og den anden til en resister og 2 I/O pins.

Trin 7: Programmering

Programmering
Programmering

Du skal tilføje 2 biblioteksfiler for at få dette til at fungere LiquidCrystal.h https://arduino.cc/en/Tutorial/LiquidCrystalCapSense.h https://www.arduino.cc/playground/Main/CapSenseCopy og forbi dette i Arduino 0017 eller nyere. // Kapacitiv væskesensor // Vadim 7. december 2009 #include #include // Dette er for at indstille størrelsen på lcd const int numRows = f = 4; const int numCols = 20; // Dette indstiller benene til lcd'en (RS, Enable, data 0-7) LiquidCrystal lcd (53, 52, 51, 50, 49, 48, 47, 46, 45, 44); #define Tempin 0x48 #define Tempout 0x49 CapSense cs_22_23 = CapSense (22, 23); uint8_t blok [8] = {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF}; uint8_t tl [8] = {0x0F, 0x08, 0x08, 0x08, 0x08, 0x08, 0x0F, 0x0F}; uint8_t tr [8] = {0x16, 0x11, 0x11, 0x11, 0x11, 0x11, 0x1D, 0x15}; uint8_t bl [8] = {0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x1F}; uint8_t br [8] = {0x15, 0x15, 0x15, 0x15, 0x15, 0x15, 0x12, 0x18}; void setup () {lcd.begin (numRows, numCols); lcd.createChar (4, tl); lcd.createChar (5, tr); lcd.createChar (6, bl); lcd.createChar (7, br); lcd.setCursor (18, 0); lcd.print (4, BYTE); lcd.setCursor (19, 0); lcd.print (5, BYTE); lcd.setCursor (18, 1); lcd.print (6, BYTE); lcd.setCursor (19, 1); lcd.print (7, BYTE); lcd.setCursor (0, 2); lcd.print ("Brændstof"); lcd.setCursor (0, 3); lcd.print ("E"); } hulrum () {langt brændstof; lcd.createChar (2, blok); lang start = millis (); brændstof = cs_22_23.capSenseRaw (200); // Temratue gør lidt forskel, så lad det køre i 5 minutter, før du tuner. // Juster dette tal, så output er så tæt på nul som muligt. brændstof = brændstof - 7200; // Fyld derefter conataner // Fjern kommentarer og juster dette, så output, når beholderen er fuld, // er så tæt på 100 som muligt. // brændstof = brændstof /93; lcd.setCursor (0, 0); lcd.print (""); lcd.setCursor (0, 0); lcd.print (brændstof); hvis (brændstof> = 6) {lcd.setCursor (1, 3); lcd.print (2, BYTE); } ellers {lcd.setCursor (1, 3); lcd.print (""); } hvis (brændstof> = 12) {lcd.setCursor (2, 3); lcd.print (2, BYTE); } ellers {lcd.setCursor (2, 3); lcd.print (""); } hvis (brændstof> = 17) {lcd.setCursor (3, 3); lcd.print (2, BYTE); } ellers {lcd.setCursor (3, 3); lcd.print (""); } hvis (brændstof> = 23) {lcd.setCursor (4, 3); lcd.print (2, BYTE); } ellers {lcd.setCursor (4, 3); lcd.print (""); } hvis (brændstof> = 28) {lcd.setCursor (5, 3); lcd.print (2, BYTE); } ellers {lcd.setCursor (5, 3); lcd.print (""); } hvis (brændstof> = 34) {lcd.setCursor (6, 3); lcd.print (2, BYTE); } ellers {lcd.setCursor (6, 3); lcd.print (""); } hvis (brændstof> = 39) {lcd.setCursor (7, 3); lcd.print (2, BYTE); } ellers {lcd.setCursor (7, 3); lcd.print (""); } hvis (brændstof> = 44) {lcd.setCursor (8, 3); lcd.print (2, BYTE); } ellers {lcd.setCursor (8, 3); lcd.print (""); } hvis (brændstof> = 50) {lcd.setCursor (9, 3); lcd.print (2, BYTE); } ellers {lcd.setCursor (9, 3); lcd.print (""); } hvis (brændstof> = 55) {lcd.setCursor (10, 3); lcd.print (2, BYTE); } ellers {lcd.setCursor (10, 3); lcd.print (""); } hvis (brændstof> = 60) {lcd.setCursor (11, 3); lcd.print (2, BYTE); } ellers {lcd.setCursor (11, 3); lcd.print (""); } hvis (brændstof> = 64) {lcd.setCursor (12, 3); lcd.print (2, BYTE); } ellers {lcd.setCursor (12, 3); lcd.print (""); } hvis (brændstof> = 69) {lcd.setCursor (13, 3); lcd.print (2, BYTE); } ellers {lcd.setCursor (13, 3); lcd.print (""); } hvis (brændstof> = 74) {lcd.setCursor (14, 3); lcd.print (2, BYTE); } ellers {lcd.setCursor (14, 3); lcd.print (""); } hvis (brændstof> = 78) {lcd.setCursor (15, 3); lcd.print (2, BYTE); } ellers {lcd.setCursor (15, 3); lcd.print (""); } hvis (brændstof> = 83) {lcd.setCursor (16, 3); lcd.print (2, BYTE); } ellers {lcd.setCursor (16, 3); lcd.print (""); } hvis (brændstof> = 87) {lcd.setCursor (17, 3); lcd.print (2, BYTE); } ellers {lcd.setCursor (17, 3); lcd.print (""); } hvis (brændstof> = 92) {lcd.setCursor (18, 3); lcd.print (2, BYTE); } ellers {lcd.setCursor (18, 3); lcd.print (""); } hvis (brændstof> = 96) {lcd.setCursor (19, 3); lcd.print ("F"); } ellers {lcd.setCursor (19, 3); lcd.print (""); } forsinkelse (50); }

Trin 8: Ting

Dette er perfekt til måling af flygtige væsker, selv arbejder inde i en propantank. Hav det sjovt. Alle oplysninger er kun til uddannelsesmæssige formål, og jeg kan ikke holdes ansvarlig, hvis du sprænger dig selv i luften.

Anbefalede: