熱門文章

2017年8月28日 星期一

電容式濕度測量(組裝)

電容式濕度測量跟電導相比是號稱比較準的。

電導式不會因皮膚上的不明電解質,如鹽(出汗),灰塵,導電度增加或減少,是比較準的,如觸控屏用的技術,只跟電容大小有關,這台用的是3000k. 1mOhm,數值顯太大,改成3000k 比較剛好,再修改來連接Excel .不用processing 連接,EXCEL 比較好儲存資料。


引用:https://swf.com.tw/?p=946

程式碼改寫如下:
//橘pin 接 pinD4
//土pin 接 pinD2 
//白pin接Ground (100pf電容) 
//藍pin 接 觸摸電容
//電阻由 1M改 300K   
#include <capacitivesensor.h>
#include <liquidcrystal_i2c.h>
LiquidCrystal_I2C lcd(0x3F,20,4);
//#define threshold 1500  // 感測電容量的臨界值
//#define LED1 11         // LED1的腳位
//#define LED2 12         // LED2的腳位
//#define LED3 13         // LED3的腳位
// 設定電容觸控的訊號輸入和輸出腳位
CapacitiveSensor   cs_4_2 = CapacitiveSensor(4,2);
//CapacitiveSensor   cs_4_6 = CapacitiveSensor(4,6);
//CapacitiveSensor   cs_4_8 = CapacitiveSensor(4,8);
int Buzzerpin = 10;
void setup() {
lcd.init();
  // Print a message to the LCD.
  lcd.backlight();
  lcd.setCursor(3,0);
  lcd.print("Hello, world!");
  lcd.setCursor(2,1);
  lcd.print("ToppyBio.Com.  Hi");
  delay (1000);
 // pinMode(LED1, OUTPUT);
 // pinMode(LED2, OUTPUT);
 // pinMode(LED3, OUTPUT);    
  pinMode(Buzzerpin,OUTPUT);   
  digitalWrite(Buzzerpin,LOW); 
  Serial.println("LABEL,Number,Capacity");
   Serial.begin(9600);
}

void loop() {
    long total1 =  cs_4_2.capacitiveSensor(30);
   // long total2 =  cs_4_6.capacitiveSensor(30);
   // long total3 =  cs_4_8.capacitiveSensor(30);
    //Serial.println(total1); 
    // buzzle響 提示操作
    digitalWrite(Buzzerpin,HIGH);
     delay (10);
     digitalWrite(Buzzerpin,LOW);
     delay (250);
     digitalWrite(Buzzerpin,HIGH);
     delay (10);
     digitalWrite(Buzzerpin,LOW);
     int a = 0 ;
     a = a + 1 ;
     Serial.print("DATA");
     Serial.print(",");     
     Serial.print("a");
     Serial.print(",");     
     Serial.println(total1);
      delay (3000);
      // 若第一個觸控點的電容量大於臨界值,則點亮LED。
  /*  if (total1 > threshold) {
      digitalWrite(LED1, HIGH);
    } else {
      digitalWrite(LED1, LOW);
    }

    if (total2 > threshold) {
      digitalWrite(LED2, HIGH);
    } else {
      digitalWrite(LED2, LOW);
    }

    if (total3 > threshold) {
      digitalWrite(LED3, HIGH);
    } else {
      digitalWrite(LED3, LOW);
    }
 */   
}


1 則留言:

  1. 對此產品有興趣
    是否可以承接外銷歐洲訂單

    回覆刪除