svg



//1.Serial port 測試選擇電阻 (正常時vin落在500~600)
#define Ain  A2
int vin;
int diff;
int vmax;
int vmin;
void setup() {
Serial.begin(9600);
}

void loop() {
    vmax=0;
    vmin=1026;
    for(int i=0;i<200;i++){
     vin=analogRead(Ain);
     if(vin>vmax) vmax=vin;
     if(vin<vmin) vmin=vin;
    }
    diff=vmax-vmin;
     Serial.print("vmax=");
     Serial.print(vmax);
     Serial.print("  vmin=");
     Serial.print(vmin);
     Serial.print("  diff=");
     Serial.println(diff);
     delay(500);
}







svg



//2.a 聲控LED
#define Ain  A2
#define  led  6
int vin;
int diff;
int vmax;
int vmin;
void setup() {
Serial.begin(9600);
pinMode(led,OUTPUT);
}

void loop() {
    vmax=0;
    vmin=1026;
    for(int i=0;i<200;i++){
     vin=analogRead(Ain);
     if(vin>vmax) vmax=vin;
     if(vin<vmin) vmin=vin;
    }
    diff=vmax-vmin;
     Serial.print("vmax=");
     Serial.print(vmax);
     Serial.print("  vmin=");
     Serial.print(vmin);
     Serial.print("  diff=");
     Serial.println(diff);

    if(diff>10){    //可調靈敏度
            digitalWrite(led,HIGH);
            delay(3000);
            digitalWrite(led,LOW);
    }
//紅色部分 測試完成後可刪除


//2.b 聲控開關 LED
#define Ain  A2
#define  led  6
int vin;
int diff;
int vmax;
int vmin;
int flag=0;
void setup() {
Serial.begin(9600);
pinMode(led,OUTPUT);
digitalWrite(led,flag);
}

void loop() {
    vmax=0;
    vmin=1026;
    for(int i=0;i<200;i++){
     vin=analogRead(Ain);
     if(vin>vmax) vmax=vin;
     if(vin<vmin) vmin=vin;
    }
    diff=vmax-vmin;
     Serial.print("vmax=");
     Serial.print(vmax);
     Serial.print("  vmin=");
     Serial.print(vmin);
     Serial.print("  diff=");
     Serial.println(diff);

    if(diff>10){      //可調靈敏度
            flag=1-flag;
            digitalWrite(led,flag);
            delay(500);//why?  註解掉 吹吹看
      }
   }
//紅色部分 測試完成後可刪除



pdf








svg


// 3. LCD
#define Ain  A2
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x3F,16,2);
int vin;
int diff;
int vmax;
int vmin;
void setup() {
lcd.init(); // initialize the lcd
lcd.backlight();
lcd.setCursor(0, 0) ;

}

void loop() {
    vmax=0;
    vmin=1026;
    for(int i=0;i<200;i++){
     vin=analogRead(Ain);
     if(vin>vmax) vmax=vin;
     if(vin<vmin) vmin=vin;
    }
    diff=vmax-vmin;
     lcd.clear();
     lcd.setCursor(0, 0) ;
     lcd.print(diff);
     if(diff>100){   //可調靈敏度
      lcd.setCursor(0, 1) ;
      lcd.print("       ");
      lcd.setCursor(0, 1) ;
      lcd.print(diff);
      delay(3000);
      }
     delay(200);
}