Arduino LED (Light Emitting Diode)

Sarinthon Mangkorn-ngam
2 min readMay 11, 2022

--

ไดโอดเปล่งแสดง (LED) เมื่อมีกระแสไฟไหลผ่านจะเกิดแสงที่เห็นได้ขึ้น ซึ่งหลอด LED มีทั้ง “สีเดียว” และแบบ LED RGB ซึ่งหลอดภายในหลอดจะประกอบไปด้วย 3 แม่สี คือ แดง, เขียว และน้ำเงิน แต่ในตัวอย่างจะใช้ LED แบบสีแดงสีเดียว

ด้วยที่ LED ไม่สามารถรับแรงดัน 5V ได้นาน ๆ ทำให้เราต้องต่อ “220 ohm” เข้าไปลดแรงดันลง เรามาทดลองเขียนโค้ดกัน

int ledPin = 9;void setup() {
pinMode(ledPin, OUTPUT);
}
void loop() {
digitalWrite(ledPin, !digitalRead(ledPin));
delay(1000);
}

จากโค้ดเราได้ตั้งโหมดให้เป็น output ให้กับ Digital pin 9 และเมื่อเข้ามาใน loop ก็จะมีการสั่งให้ค่า true, false สลับกันไปเลื่อย ๆ ทุก ๆ 1 วินาที โดยสั่งผ่าน digitalWrite เนื่องจาก PIN 9 เป็นแบบ digital

มาลองใส่ 10k ohm แบบ “ต้านทานปรับค่า” ได้กัน เพื่อที่จะ “หลี่แสงและเพิ่มความสว่างแสง” ที่หลอด LED

หลังจากที่ต่อเสร็จแล้ว เรามาอ่านค่าจากต้านทานปรับค่าได้กัน

int ledPin = 9;
int analogPin = A0;
void setup() {
Serial.begin(9600);
pinMode(ledPin, OUTPUT);
}
void loop() {
int val = analogRead(analogPin);
int output = map(val, 0, 1023, 0, 255);
Serial.println(output);
}

เมื่อเริ่มหมุนจะเห็นได้ว่าค่าจะวิ่งตั้งแต่ 0–255 ตามที่เราได้ map เอาไว้จากค่า 0–1023 เดิม หากค่าเปลี่ยนแปลงตามที่ได้ปรับแล้ว ให้ทำการเขียนโค้ดเพิ่มเติมดังตัวอย่างด้านล่าง

int ledPin = 9;
int analogPin = A0;
void setup() {
Serial.begin(9600);
pinMode(ledPin, OUTPUT);
}
void loop() {
int val = analogRead(analogPin);
int output = map(val, 0, 1023, 0, 255);
analogWrite(ledPin, output);
}

จะเห็นได้ว่า LED ดับ หลี่ สว่าง ตามที่เราปรับค่าจากตัวต้านทาน 10k ohm

** สิ่งที่สำคัญคือ “จะต้องมีต้านทานคงที่” เอาไว้ 1 ตัว ดังตัวอย่างมี 220 ohm ไว้ดรอปแรงดันในขา ledPin หนึ่งตัว

** ledPin ไม่ใช่จะเสียบช่อง digital ไหนก็ได้ แต่จะต้องเสียบเข้าที่ ~x เท่านั้น เพื่อให้สามารถปรับค่าตาม analogWrite ที่ส่งเข้ามาที่ digital pin ได้

อ่านเพิ่มเติม

--

--

No responses yet