Innholdsfortegnelse:

Bygg en kapasitiv væskesensor: 8 trinn (med bilder)
Bygg en kapasitiv væskesensor: 8 trinn (med bilder)

Video: Bygg en kapasitiv væskesensor: 8 trinn (med bilder)

Video: Bygg en kapasitiv væskesensor: 8 trinn (med bilder)
Video: gør-det-selv videosender hvordan du bygger dit eget trådløse videosystem 2024, November
Anonim
Bygg en kapasitiv væskesensor
Bygg en kapasitiv væskesensor

En kapasitiv væskesponsor er avhengig av at kapasitansen eller ladningen mellom 2 metallplater vil endres (i dette tilfellet øke) avhengig av hvilket materiale som er mellom dem. Dette lar oss lage en nivåsensor som er trygg å bruke med hvilken som helst væske, denne vil bli brukt i en buggy med bensin (bensin). En tallerken er hektet til bakken. Den andre kobles til pin 23. Det er en 820K ohm motstand fra pin 22 til 23. Sensoren fungerer ved å lade kondensatoren (vannflasken) og måle hvor lang tid det tar å tømme gjennom motstanden.

Trinn 1: Deler

Deler
Deler

1. Et loddfritt brødbrett er strengt tatt ikke nødvendig, men gjør det mye enklere, spesielt hvis du planlegger å legge til andre ting senere. 2. Arduino, jeg bruker en Arduino mega, men en standard skal ha akkurat nok pinner. 3. LCD -tegnvisning. 4. Noen odds og ender, inkludert litt ledning og en 1MΩ motstand. 5. En datamaskin, du vet, den tingen du bruker til å lese instruksjonene mine med. 6. Tålmodighet.

Trinn 2: Koble til LCD -skjermen og la skapelsen din snakke med verden

Koble til LCD -skjermen og la skapelsen din snakke med verden
Koble til LCD -skjermen og la skapelsen din snakke med verden

Som hvert trinn i denne instruksjonsboken er det mange måter å gjøre dette på. Jeg skal vise deg min favoritt.

LCD -skjermen din har 16 hullloddeputer, så det første er å feste noen pinner. Hvis du er patent, anbefaler jeg at du kjøper en overskrift som denne https://www.sparkfun.com/commerce/product_info.php?products_id=117. Men hvis du vil bli ferdig så fort som mulig (som meg), kan du bruke wire. Kutt enkelt 16 stykker wire på 13 mm (lengre er greit). Lodd dem deretter til brettet.

Trinn 3: Koble til LCD -skjermen Fortsatt

Koble til LCD -en Fortsetter
Koble til LCD -en Fortsetter
Koble til LCD -en Fortsetter
Koble til LCD -en Fortsetter

Synder Jeg bruker spesialtegn. Jeg skal koble alle ledningene.

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

Trinn 4: Datalinjer

Datalinjer
Datalinjer
Datalinjer
Datalinjer

Nå må du koble Arduino til LCD -skjermen. Det spiller ingen rolle hvilke pins du bruker, men jeg anbefaler å følge skjematikken.

Trinn 5: Slå på MaHaHaHa

Kraft MaHaHaHa
Kraft MaHaHaHa

USB-porten på datamaskinen din har nok strøm til å kjøre Arduino og ledet bakgrunnslys, så bare koble bakken og strømskinnene på brødbrettet til strømmen på Arduino-kortet.

Trinn 6: Lag en kapasitiv sensor

Lag en kapasitiv sensor
Lag en kapasitiv sensor
Lag en kapasitiv sensor
Lag en kapasitiv sensor

For testing brukte jeg aluminiumsfolie og en vannflaske i plast. Den fungerer med hvilken som helst beholder så lenge den ikke er metall.

Du kan bruke alle typer ledninger, men ikke -skjermede linjer gir dårlig ytelse. Du kan bruke 2 pins, jeg valgte 22 og 23. Koble den ene siden til bakken og den andre til en motstand og 2 I/O -pinner.

Trinn 7: Programmering

Programmering
Programmering

Du må legge til 2 biblioteksfiler for å få dette til å fungere LiquidCrystal.h https://arduino.cc/en/Tutorial/LiquidCrystalCapSense.h https://www.arduino.cc/playground/Main/CapSenseCopy og forbi dette til Arduino 0017 eller nyere. // Kapasitiv væskesensor // Vadim 7. desember 2009 #include #include // Dette er for å angi størrelsen på lcd const int numRows = f = 4; const int numCols = 20; // Dette angir pinnene for lcd (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 blokk [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}; ugyldig oppsett () {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 ("Drivstoff"); lcd.setCursor (0, 3); lcd.print ("E"); } void loop () {long fuel; lcd.createChar (2, blokk); lang start = millis (); drivstoff = cs_22_23.capSenseRaw (200); // Temratue gjør litt forskjell, så la den gå i 5 minutter før du stiller inn. // Juster dette tallet slik at utgangen er så nær null som mulig. drivstoff = drivstoff - 7200; // Fyll deretter opp conataner // Un-comment og juster dette slik at utgangen, når beholderen er full, // er så nær 100 som mulig. // drivstoff = drivstoff /93; lcd.setCursor (0, 0); lcd.print (""); lcd.setCursor (0, 0); lcd.print (drivstoff); hvis (drivstoff> = 6) {lcd.setCursor (1, 3); lcd.print (2, BYTE); } annet {lcd.setCursor (1, 3); lcd.print (""); } hvis (drivstoff> = 12) {lcd.setCursor (2, 3); lcd.print (2, BYTE); } annet {lcd.setCursor (2, 3); lcd.print (""); } if (drivstoff> = 17) {lcd.setCursor (3, 3); lcd.print (2, BYTE); } annet {lcd.setCursor (3, 3); lcd.print (""); } if (drivstoff> = 23) {lcd.setCursor (4, 3); lcd.print (2, BYTE); } annet {lcd.setCursor (4, 3); lcd.print (""); } if (drivstoff> = 28) {lcd.setCursor (5, 3); lcd.print (2, BYTE); } annet {lcd.setCursor (5, 3); lcd.print (""); } if (drivstoff> = 34) {lcd.setCursor (6, 3); lcd.print (2, BYTE); } annet {lcd.setCursor (6, 3); lcd.print (""); } if (drivstoff> = 39) {lcd.setCursor (7, 3); lcd.print (2, BYTE); } annet {lcd.setCursor (7, 3); lcd.print (""); } hvis (drivstoff> = 44) {lcd.setCursor (8, 3); lcd.print (2, BYTE); } annet {lcd.setCursor (8, 3); lcd.print (""); } if (drivstoff> = 50) {lcd.setCursor (9, 3); lcd.print (2, BYTE); } annet {lcd.setCursor (9, 3); lcd.print (""); } if (drivstoff> = 55) {lcd.setCursor (10, 3); lcd.print (2, BYTE); } annet {lcd.setCursor (10, 3); lcd.print (""); } hvis (drivstoff> = 60) {lcd.setCursor (11, 3); lcd.print (2, BYTE); } annet {lcd.setCursor (11, 3); lcd.print (""); } if (drivstoff> = 64) {lcd.setCursor (12, 3); lcd.print (2, BYTE); } annet {lcd.setCursor (12, 3); lcd.print (""); } if (drivstoff> = 69) {lcd.setCursor (13, 3); lcd.print (2, BYTE); } annet {lcd.setCursor (13, 3); lcd.print (""); } if (drivstoff> = 74) {lcd.setCursor (14, 3); lcd.print (2, BYTE); } annet {lcd.setCursor (14, 3); lcd.print (""); } if (drivstoff> = 78) {lcd.setCursor (15, 3); lcd.print (2, BYTE); } annet {lcd.setCursor (15, 3); lcd.print (""); } if (drivstoff> = 83) {lcd.setCursor (16, 3); lcd.print (2, BYTE); } annet {lcd.setCursor (16, 3); lcd.print (""); } if (drivstoff> = 87) {lcd.setCursor (17, 3); lcd.print (2, BYTE); } annet {lcd.setCursor (17, 3); lcd.print (""); } if (drivstoff> = 92) {lcd.setCursor (18, 3); lcd.print (2, BYTE); } annet {lcd.setCursor (18, 3); lcd.print (""); } if (drivstoff> = 96) {lcd.setCursor (19, 3); lcd.print ("F"); } annet {lcd.setCursor (19, 3); lcd.print (""); } forsinkelse (50); }

Trinn 8: Ting

Dette er perfekt for måling av flyktige væsker, til og med arbeider inne i en propantank. Ha det gøy. All informasjon er kun for utdanningsformål, og jeg kan ikke holdes ansvarlig hvis du sprenger deg selv.

Anbefalt: