#define LED1 10 // กำหนดชื่อ LED1 แทน ขา 10
#define DO A1 /* กำหนดชื่อ AO แทน ขา A1 (เป็นขาที่วงจร LDR AO
ต่อกับขา A1 Analog In ของ Arduino UNO ) */
#define t 400 // กำหนด t แทนค่าเวลาของการหน่วง ที่ 0.4 วินาที (msec)
void setup()
{ // เริ่มฟังก์ชั่น setup คำสั่งในส่วนี้ จะทำแค่ครั้งเดียว
Serial.begin(9600); // กำหนดอัตราเร็วในการสื่อสารข้อมูลของพอร์ตอนุกรม
pinMode(LED1, OUTPUT); // ตั้งค่าให้ LED1 ( pin 10) เป็น เอาต์พุต
pinMode(DO, INPUT); // ตั้งค่าให้ AO (pin A1) เป็นอินพุต
} // จบฟังก์ชั่น setup
void loop()
{ /* เริ่มฟังก์ชั่น loop คำสั่งในส่วนนี้ จำทำวนซ้ำ
จนเงื่อนไขเป็นจริง */
int LDR = analogRead(DO); /* นำค่าที่อ่านได้จากขา A1 ด้วยคำสั่ง analogRead(AO)
มาเก็บในตัวแปร LDR ให้มีค่าเป็นจำนวนเต็ม */
if(LDR<200) /* เริ่มคำสั่ง if ถ้าเป็นเงื่อนไขเป็นจริงจะทำในคำสั่ง
if ถ้าเงื่อนไขไม่เป็นจริง จะทำในคำสั่ง else */
digitalWrite(LED1,HIGH); // ค่าเป็น high(1) สั่งให้ LED1 ที่ต่ออยู่ที่ขา 10 ติดสว่าง
else
digitalWrite(LED1,LOW); // ค่าเป็น low (0) สั่งให้ LED1 ที่ต่ออยู่ที่ขา 10 ดับ
Serial.print("ค่าแสงที่อ่านได้จาก LRD = " ); // แสดงข้อความในวงเล็กทางจอภาพ
Serial.println(LDR); /* นำค่าจากตัวแปร LDR ที่อ่านมาจาก AO ด้วยคำสั่ง
analogRead(AO) แสดงทางจอภาพ */
delay(t); // หน่วงเวลา 0.4 วินาที (msec)
} // จบฟังก์ชั่น loop
/* ผลการทำงานของโปรแกรม
=======================================================================
ถ้าไม่มีแสงหรือมืด ไฟจะติด และถ้าสว่าง ไฟจะดับ โดยโปรแกรมจะวนรอบอ่านข้อมูล จากขา A1
(LDR = analogRead(A1);) จากนั้นนำค่าของ LDR มาเปรียบเทียบถ้า LDR น้อยกว่า 200 (แสดงว่ามืด)
ให้ส่งสัญญาณ HIGH ออกขา 10 แล้วทำให้ไฟติด ถ้าไม่ใช่ให้ส่งสัญญาณ LOW ออกขา 10 ทำให้ไฟ LED ดับ */