เรื่องราวเบื้องหลัง
มันมีปัญหากวนใจมากตอนที่พี่ทดสอบ LED ที่ต่อกับ [Arduino](https://s.shopee.co.th/7fUgFAWSki) เพื่อดูไฟเลี้ยง ถ้าพี่อยากจะเปิดหรือปิด LED นี่ต้องไปงัดกับสายไฟที่ หลุดจากขา อยู่เรื่อย ทางเดียวที่จะควบคุมได้ก็ต้องเปิด Serial Monitor บนคอม ซึ่งมันก็ไม่สะดวกเลย พี่ก็อยากใช้ปุ่มกดเพื่อสลับสถานะ LED แต่นั่นแหละ...ตอนนั้นไม่มีปุ่มกดเลยสักปุ่ม
แต่จริงๆ แล้วพี่มีปุ่มนี่! เพราะปุ่ม RESET บนบอร์ดมันก็คือปุ่มกดนั่นเอง ใช้ได้เลย!
วงจร
สิ่งที่ต้องใช้มีแค่ LED, ตัวต้านทาน (ถ้าจำเป็น) และ Arduino เท่านั้นเอง

โค้ด
พอต่อวงจรเสร็จ ก็เริ่มเขียนโปรแกรมได้เลย:
#include
#define LED_PIN 13 // เปลี่ยนเป็นขาที่ต่อ LED นะ
#define EEPROM_ADDRESS 0
void setup(){
pinMode(LED_PIN, OUTPUT);
Serial.begin(9600);
if (EEPROM.read(EEPROM_ADDRESS) == 0){
EEPROM.put(EEPROM_ADDRESS, 1);
digitalWrite(LED_PIN, HIGH);
Serial.println("LED ON");
} else {
EEPROM.put(EEPROM_ADDRESS, 0);
digitalWrite(LED_PIN, LOW);
Serial.println("LED OFF");
}
}
void loop(){}
โค้ดอ่านแล้วเข้าใจได้ไม่ยาก มันใช้ EEPROM ที่มีอยู่แล้วในตัวเพื่อเก็บค่าสถานะไว้ แม้จะกด Reset หรือปิดไฟก็ยังไม่หาย
วิธีใช้
ถ้าอยากเปิดหรือปิด LED ก็แค่กดปุ่ม RESET บนบอร์ดเลย
ระวังหน่อยนะ น้อง LED อาจจะติดขึ้นมางั้นๆ ได้ถ้าวงจรเกิดช็อต
พี่แนะนำให้ต่อ LED กับขาอื่นที่ไม่ใช่ขา 13 นะ จะได้ไม่กระพริบตอน Reset:
#define LED_PIN 12 // เปลี่ยนเป็นขาที่ต่อ LED นะ