# Grove – 皮膚電GSR反應感測器

<figure><img src="https://1275793585-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LaZQFBYOS3O0ksiEmR1%2Fuploads%2FPCc5wX9yNUyETONkAZ8L%2Fimage.png?alt=media&#x26;token=d19f0a1b-d346-499b-ad1e-36c5c8037939" alt="" width="374"><figcaption></figcaption></figure>

{% hint style="danger" %} <mark style="color:red;">**注意：**</mark>

* &#x20;<mark style="color:red;">**本感測器不能用於醫療目的。**</mark>
* <mark style="color:red;">**Grove-GSR 感測器測量的是人體的電阻，而不是電導率！**</mark>
  {% endhint %}

### 測量前準備

1. GSR(皮膚電反應感測器)將布套分別套在食指和中指(或中指與無名指)，以此來測量人體的電阻值。

<figure><img src="https://1275793585-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LaZQFBYOS3O0ksiEmR1%2Fuploads%2FuPfDL0Zws6g1u7cyvPGR%2Fimage.png?alt=media&#x26;token=c9c12210-c3bf-40e2-9140-34163ef006c7" alt="" width="238"><figcaption></figcaption></figure>

2. 電極的插座接感測器

<figure><img src="https://1275793585-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LaZQFBYOS3O0ksiEmR1%2Fuploads%2FCxLFg1enz5PY7y6uxKOO%2Fimage.png?alt=media&#x26;token=8c344404-d0a5-4d66-b372-6b58f4916405" alt="" width="303"><figcaption></figcaption></figure>

3. Grove 接公 – 母 杜邦線

<figure><img src="https://1275793585-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LaZQFBYOS3O0ksiEmR1%2Fuploads%2FYHNaoKNtr8avJ5jJgGkP%2Fimage.png?alt=media&#x26;token=9ab7564d-25e3-4216-9ebc-69d7b31225d6" alt="" width="320"><figcaption></figcaption></figure>

### **Grove – 皮膚電GSR反應感測器電路圖**

* Raspberry Pi Pico W
* Raspberry Pi Pico W 擴充板
* Grove – 皮膚電GSR反應感測器
* 公 – 母 杜邦線

{% hint style="success" %}
***Grove – 皮膚電 GSR 反應感測器是類比訊號輸入。本範例模組的 SIG 腳位需接至Raspberry Pi Pico擴充板 A0/D26 腳位。***
{% endhint %}

<figure><img src="https://1275793585-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LaZQFBYOS3O0ksiEmR1%2Fuploads%2FDBxRMIZbKkRZiPdYK0Al%2Fimage.png?alt=media&#x26;token=12b57b45-e613-470b-81c1-a2063c8630f9" alt="" width="563"><figcaption></figcaption></figure>

### **Arduino 程式如下**

```
const int GSR = A0;
int sensorValue = 0;
int gsr_average = 0;

void setup() {
  analogReadResolution(12);   // 設定為 12-bit → 0~4095
  Serial.begin(9600);
}

void loop() {
  long sum = 0;

  // 取 10 次平均
  for (int i = 0; i < 10; i++) {
    sensorValue = analogRead(GSR);
    sum += sensorValue;
    delay(5);
  }

  gsr_average = sum / 10;

  Serial.print("GSR : ");
  Serial.print(gsr_average);
  Serial.print("  |  State:");

  // ---------- 狀態判斷區(數值可以調整) ----------
  if (gsr_average >= 2800) {
    Serial.println("Relax");
  }
  else if (gsr_average >= 1600) {
    Serial.println("Normal");
  }
  else if (gsr_average >= 800) {
    Serial.println("Stress");
  }
  else {
    Serial.println("High Stress");
  }
  // -------------------------------------

  delay(200);
}

```

### **程式執行結果**

在序列埠監控視窗會顯示數值，根據類比數值高低，判斷使用者的皮膚乾濕程度與交感神經反應，並輸出「Relax」、「Normal」、「Stress」或 「High Stress」四種狀態。

高數值代表皮膚較乾燥且較放鬆，低數值則代表皮膚導電度上升、壓力較高。

<figure><img src="https://1275793585-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LaZQFBYOS3O0ksiEmR1%2Fuploads%2FmQZLU476MkGoZ3YKal5a%2Fimage.png?alt=media&#x26;token=4469bdd6-2f86-4042-ba3f-eb89bd7e136e" alt="" width="315"><figcaption></figcaption></figure>
