İçindekiler:

Kapasitif Sıvı Sensörü Oluşturma: 8 Adım (Resimlerle)
Kapasitif Sıvı Sensörü Oluşturma: 8 Adım (Resimlerle)

Video: Kapasitif Sıvı Sensörü Oluşturma: 8 Adım (Resimlerle)

Video: Kapasitif Sıvı Sensörü Oluşturma: 8 Adım (Resimlerle)
Video: OYUN SONLARI! 😲 Kimsenin Görmediği 5 Oyun Sonu! NASIL YANİ! 😱 2024, Kasım
Anonim
Kapasitif Sıvı Sensörü Oluşturma
Kapasitif Sıvı Sensörü Oluşturma

Kapasitif sıvı sponsor, 2 metal plaka arasındaki kapasitansın veya yükün, aralarındaki malzemeye bağlı olarak değişeceği (bu durumda artacağı) gerçeğine dayanır. Bu, herhangi bir sıvı ile kullanım için güvenli bir seviye sensörü oluşturmamızı sağlar, bu, benzinli (benzinli) bir arabada kullanılacaktır. Bir plaka yere asılır. Diğeri pim 23'e bağlanır. Pim 22'den 23'e 820K ohm'luk bir direnç vardır. Sensör, kapasitörü (su şişesi) şarj ederek ve direncin ne kadar sürede boşalması gerektiğini ölçerek çalışır.

Adım 1: Parçalar

Parçalar
Parçalar

1. Lehimsiz bir ekmek tahtası kesinlikle gerekli değildir, ancak özellikle daha sonra başka şeyler eklemeyi planlıyorsanız, bunu çok daha kolay hale getirin. 2. Arduino, bir Arduino mega kullanıyorum ama standart olanın yeterli sayıda pini olmalı. 3. LCD karakter ekranı. 4. Bazı teller ve 1MΩ direnç dahil olmak üzere bazı olasılıklar ve sonuçlar. 5. Bir bilgisayar, bilirsiniz, benim talimatlarımı okumak için kullandığınız şey. 6. Sabır.

Adım 2: LCD'yi Bağlama ve Yaratıcılığınızın Dünyayla Konuşmasına İzin Verme

LCD'yi Bağlama ve Yaratıcılığınızın Dünyayla Konuşmasına İzin Verme
LCD'yi Bağlama ve Yaratıcılığınızın Dünyayla Konuşmasına İzin Verme

Bu talimattaki her adım gibi, bunu yapmanın birçok yolu vardır. Sana en sevdiğimi göstereceğim.

LCD'nizde 16 delikli lehim pedi var, bu yüzden ilk şey bazı pimleri takmak. Patentiniz varsa, https://www.sparkfun.com/commerce/product_info.php?products_id=117 gibi bir başlık satın almanızı öneririm. Ama mümkün olduğunca çabuk halletmek istiyorsanız (benim gibi) o zaman tel kullanabilirsiniz. 16 parça teli yaklaşık 1/2 (13 mm (daha uzun olabilir)) ile basit bir şekilde kesin. Ardından bunları tahtaya lehimleyin.

Adım 3: LCD'nin Bağlanması Devam Ediyor

LCD'yi Bağlama Devam
LCD'yi Bağlama Devam
LCD'yi Bağlama Devam
LCD'yi Bağlama Devam

Günah özel karakterler kullanıyorum tüm kabloları bağlayacağım.

Pim 1 Toprak Pim 2 +5 Volt Pim 3 Kontrast ayarı Pim 4 RS Pim 5 R/W Toprağa gider Pim 6-14 Veri Pim 15 Arka Işık Güç Pim 16 Arka Işık Toprak

Adım 4: Veri Hatları

Veri Hatları
Veri Hatları
Veri Hatları
Veri Hatları

Şimdi Arduino'yu lcd'ye bağlamanız gerekiyor. Hangi pinleri kullandığın önemli değil ama şemayı takip etmeni tavsiye ederim.

Adım 5: Güç MaHaHaHa

Güç MahHaHaHa
Güç MahHaHaHa

Bilgisayarınızdaki usb bağlantı noktası Arduino'yu çalıştırmak için yeterli güce ve led arka ışığına sahiptir, bu nedenle ekmek kartınızdaki toprak ve güç raylarını Arduino kartındaki güç çıkışına bağlamanız yeterlidir.

Adım 6: Kapasitif Sensör Yapın

Kapasitif Sensör Yap
Kapasitif Sensör Yap
Kapasitif Sensör Yap
Kapasitif Sensör Yap

Test için alüminyum folyo ve plastik bir su şişesi kullandım, metal olmadığı sürece herhangi bir kap ile çalışır.

Her tür kabloyu kullanabilirsiniz, ancak blendajsız hatlar düşük performans sağlayacaktır. Herhangi bir 2 pini kullanabilirsiniz, 22 ve 23'ü seçtim. Bir tarafı toprağa, diğerini bir rezistöre ve 2 I/O pinine bağlayın.

Adım 7: Programlama

Programlama
Programlama

Bu çalışmayı yapmak için LiquidCrystal.h https://arduino.cc/en/Tutorial/LiquidCrystalCapSense.h https://www.arduino.cc/playground/Main/CapSenseCopy 2 kitaplık dosyası eklemeniz ve bunu Arduino 0017'ye aktarmanız gerekir. veya daha yeni. //Kapasitif Sıvı Sensörü //Vadim 7 Aralık 2009 #include #include //Bu, lcd'nin boyutunu ayarlamak içindir const int numRows = f=4; const int numCols = 20; //Bu, lcd için pinleri ayarlar (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}; geçersiz kurulum() { 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("Yakıt"); lcd.setCursor(0, 3); lcd.print("E"); } void loop() { uzun yakıt; lcd.createChar(2, blok); uzun başlangıç = millis(); yakıt = cs_22_23.capSenseRaw(200); //Temratue biraz fark yaratıyor, bu yüzden ayarlamadan önce 5 dakika çalışmasına izin verin. //Bu sayıyı, çıktının mümkün olduğu kadar sıfıra yakın olması için ayarlayın. yakıt = yakıt - 7200; //Sonra conataner'ı doldurun //Yorumu kaldırın ve bunu, konteyner dolduğunda çıktının //mümkün olduğunca 100'e yakın olacağı şekilde ayarlayın. //yakıt = yakıt / 93; lcd.setCursor(0, 0); lcd.print(" "); lcd.setCursor(0, 0); lcd.print(yakıt); if (yakıt >= 6) { lcd.setCursor(1, 3); lcd.print(2, BYTE); } başka { lcd.setCursor(1, 3); lcd.print(" "); } if (yakıt >= 12) { lcd.setCursor(2, 3); lcd.print(2, BYTE); } başka { lcd.setCursor(2, 3); lcd.print(" "); } if (yakıt >= 17) { lcd.setCursor(3, 3); lcd.print(2, BYTE); } başka { lcd.setCursor(3, 3); lcd.print(" "); } if (yakıt >= 23) { lcd.setCursor(4, 3); lcd.print(2, BYTE); } başka { lcd.setCursor(4, 3); lcd.print(" "); } if (yakıt >= 28) { lcd.setCursor(5, 3); lcd.print(2, BYTE); } başka { lcd.setCursor(5, 3); lcd.print(" "); } if (yakıt >= 34) { lcd.setCursor(6, 3); lcd.print(2, BYTE); } başka { lcd.setCursor(6, 3); lcd.print(" "); } if (yakıt >= 39) { lcd.setCursor(7, 3); lcd.print(2, BYTE); } başka { lcd.setCursor(7, 3); lcd.print(" "); } if (yakıt >= 44) { lcd.setCursor(8, 3); lcd.print(2, BYTE); } başka { lcd.setCursor(8, 3); lcd.print(" "); } if (yakıt >= 50) { lcd.setCursor(9, 3); lcd.print(2, BYTE); } başka { lcd.setCursor(9, 3); lcd.print(" "); } if (yakıt >= 55) { lcd.setCursor(10, 3); lcd.print(2, BYTE); } başka { lcd.setCursor(10, 3); lcd.print(" "); } if (yakıt >= 60) { lcd.setCursor(11, 3); lcd.print(2, BYTE); } başka { lcd.setCursor(11, 3); lcd.print(" "); } if (yakıt >= 64) { lcd.setCursor(12, 3); lcd.print(2, BYTE); } başka { lcd.setCursor(12, 3); lcd.print(" "); } if (yakıt >= 69) { lcd.setCursor(13, 3); lcd.print(2, BYTE); } başka { lcd.setCursor(13, 3); lcd.print(" "); } if (yakıt >= 74) { lcd.setCursor(14, 3); lcd.print(2, BYTE); } başka { lcd.setCursor(14, 3); lcd.print(" "); } if (yakıt >= 78) { lcd.setCursor(15, 3); lcd.print(2, BYTE); } başka { lcd.setCursor(15, 3); lcd.print(" "); } if (yakıt >= 83) { lcd.setCursor(16, 3); lcd.print(2, BYTE); } başka { lcd.setCursor(16, 3); lcd.print(" "); } if (yakıt >= 87) { lcd.setCursor(17, 3); lcd.print(2, BYTE); } başka { lcd.setCursor(17, 3); lcd.print(" "); } if (yakıt >= 92) { lcd.setCursor(18, 3); lcd.print(2, BYTE); } başka { lcd.setCursor(18, 3); lcd.print(" "); } if (yakıt >= 96) { lcd.setCursor(19, 3); lcd.print("F"); } başka { lcd.setCursor(19, 3); lcd.print(" "); } gecikme (50); }

8. Adım: Malzeme

Bu, uçucu sıvıları ölçmek için mükemmeldir, bir propan tankının içinde bile çalışır. İyi eğlenceler. Her türlü bilgi sadece eğitim amaçlıdır ve kendinizi patlatırsanız sorumlu tutulamam.

Önerilen: