Arduino Nano MCUATmega 328 ArduinoAD Arduino ADC Arduino

  • Slides: 26
Download presentation

Arduino Nano MCU-ATmega 328 Arduino內建AD介面,方便好用

Arduino Nano MCU-ATmega 328 Arduino內建AD介面,方便好用

Arduino ADC 讀取函式

Arduino ADC 讀取函式

Arduino ADC 讀取函式 int analog. Pin = A 0; int val = 0; void

Arduino ADC 讀取函式 int analog. Pin = A 0; int val = 0; void setup() { Serial. begin(9600); } void loop() { val = analog. Read(analog. Pin); Serial. println(val); delay(1000); }

LS-Sensor電路圖

LS-Sensor電路圖

Ex 5_0: LS光照度值顯示OLED //-------Declare-OLED-------------#include <OLED. h> OLED my. OLED; //-------Declare-Light Sensor ---------#define LS_PIN A

Ex 5_0: LS光照度值顯示OLED //-------Declare-OLED-------------#include <OLED. h> OLED my. OLED; //-------Declare-Light Sensor ---------#define LS_PIN A 0 void setup() { //===== Setup LS ======= pin. Mode(LS_PIN, INPUT); // ====== Setup OLED ======= my. OLED. begin(FONT_8 x 16); my. OLED. clear. Screen(); my. OLED. println("ex 5 -0_LS"); my. OLED. println("XXXXXX"); }

Ex 5_0: LS光照度值顯示OLED-2 void loop() { // read the value from the sensor: int

Ex 5_0: LS光照度值顯示OLED-2 void loop() { // read the value from the sensor: int LSVal = analog. Read(LS_PIN); my. OLED. set. Posi(4, 0); my. OLED. print("LS_Val: "); my. OLED. println(LSVal); delay(500); }

Ex 5_1: 光照度開關 (光照度� 控制LED ON/OF) 複製Ex 5_0_LS_OLED 到Ex 5 -1_LS_OLED_LED加 入下列宣告設定資料 //-------Declare-LED 1

Ex 5_1: 光照度開關 (光照度� 控制LED ON/OF) 複製Ex 5_0_LS_OLED 到Ex 5 -1_LS_OLED_LED加 入下列宣告設定資料 //-------Declare-LED 1 W-MD 1 ---------------#define LED 3 int Set_LS=200; void setup() { //======Setup-ED 1 WMD 1========= pin. Mode(LED, OUTPUT); my. OLED. println("Ex 51_LS_LED"); //修改標題 my. OLED. print("Set_LS: "); my. OLED. println(Set_LS); }

Ex 5_1: 光照度開關 光照度� 控制LED ON/OFF Loop加入下列Smart Processing void loop() { my. OLED. set.

Ex 5_1: 光照度開關 光照度� 控制LED ON/OFF Loop加入下列Smart Processing void loop() { my. OLED. set. Posi(6, 0); //修改顯示位置 //=======Smart Processing======= if(LSVal > Set_LS) digital. Write(LED, HIGH); else digital. Write(LED, LOW); delay(500); }

Ex 5_2光照度PWM控制器()光照度調變PWM 複製Ex 5_1_LS_LED到Ex 5_2_LS_PWMLED 加入下列宣告設定資料 int Set. LSMax=400; int Set. LSMin=50; void setup()

Ex 5_2光照度PWM控制器()光照度調變PWM 複製Ex 5_1_LS_LED到Ex 5_2_LS_PWMLED 加入下列宣告設定資料 int Set. LSMax=400; int Set. LSMin=50; void setup() { //=====取代=========== my. OLED. print(“L 1: "); my. OLED. print(Set. LSMax); my. OLED. print(“L 2: "); my. OLED. println(Set. LSMin); } LED

Ex 5_2光照度PWM控制器()光照度調變PWM 在Loop修改Smart Processing void loop() { //=======Smart Processing======= //map(value, from. Low, from. High,

Ex 5_2光照度PWM控制器()光照度調變PWM 在Loop修改Smart Processing void loop() { //=======Smart Processing======= //map(value, from. Low, from. High, to. Low, to. High) int duty=map(LSVal, Set. LSMax, Set. LSMin, 0, 255); my. OLED. set. Posi(6, 0); my. OLED. print("Duty: "); if(LSVal<Set. LSMin) { digital. Write(LED, HIGH); my. OLED. print("255"); } LED

Ex 5_2光照度PWM控制器()光照度調變PWM 在Loop修改Smart Processing else if (LSVal>Set. LSMax) { digital. Write(LED, LOW); my. OLED.

Ex 5_2光照度PWM控制器()光照度調變PWM 在Loop修改Smart Processing else if (LSVal>Set. LSMax) { digital. Write(LED, LOW); my. OLED. print(0); } else { my. OLED. print(duty); analog. Write(LED, duty); } delay(500); } LED

Ex 5_3: 光害警報器(光照度控制Buzzer/LED) 複製Ex 5_2_LS_PWMLED 到Ex 5_3_LS_BZ_LED 加入下列宣告設定資料 //-------Declare- Buzzer --------------------#define buzzer. PIN A

Ex 5_3: 光害警報器(光照度控制Buzzer/LED) 複製Ex 5_2_LS_PWMLED 到Ex 5_3_LS_BZ_LED 加入下列宣告設定資料 //-------Declare- Buzzer --------------------#define buzzer. PIN A 0 // CN 1 void Beep(int n, int finv); void Flash_LED(int n, int finv); setup() { //====Setup. Buzzer========= pin. Mode(buzzer. PIN, OUTPUT); digital. Write(buzzer. PIN, LOW); my. OLED. println(“Ex 53_LSBZLED”); //修改標題

Ex 4_3: 溫度警報器(溫度控制Buzzer/LED) 在Loop修改Smart Processing void loop() { //=======Smart Processing======= if(temp>STemp. Max) { Beep(3,

Ex 4_3: 溫度警報器(溫度控制Buzzer/LED) 在Loop修改Smart Processing void loop() { //=======Smart Processing======= if(temp>STemp. Max) { Beep(3, 200); Flash_LED(3, 200); } else if (temp<STemp. Min) { digital. Write(LED, LOW); } else { Flash_LED(1, 1000); } delay(500); }