วันศุกร์ที่ 30 กันยายน พ.ศ. 2559
วันพฤหัสบดีที่ 29 กันยายน พ.ศ. 2559
วันพุธที่ 28 กันยายน พ.ศ. 2559
วันอาทิตย์ที่ 25 กันยายน พ.ศ. 2559
วันพฤหัสบดีที่ 22 กันยายน พ.ศ. 2559
วันอาทิตย์ที่ 18 กันยายน พ.ศ. 2559
วันพฤหัสบดีที่ 15 กันยายน พ.ศ. 2559
วันพุธที่ 14 กันยายน พ.ศ. 2559
วันอังคารที่ 13 กันยายน พ.ศ. 2559
arduino กรณี ทำปุ่ม toggle กดติด กดดับ ให้ควบคุม 2 จุด
arduino กรณี ทำปุ่ม toggle กดติด กดดับ ให้ควบคุม 2 จุด
(กรณีทำปุ่ม กดติดปล่อยดับ ไม่ต้องใช้ เรื่อง bounce แต่ให้ใช้ pullup pulldown แทน)
1. resistor pullup (กำหนดค่าสถานะลอจิกที่แน่นอน ให้กับ ขา input )
2.กำหนด delay(10); ให้มากกว่า 5-50ns เนื่องจาก หน้าสัมผัสของสวิทย์ขณะกด จะ สวิง(bounce)ของค่าแรงดัน จาก 5v- 0 v สลับกันไป ในช่วง 5-50ns จนเสถียร จะเกิดขึ้นกับ ทาง hardware จะมีจุดเรื่อง bounce เข้ามาเกี่ยวข้อง ในวงจรสวิทย์แบบ toggle ดังน้นให้แก้ด้วย ใช้ delay เข้ามา เพื่อ ใช้ระยะเวลา เพื่อทราบเจตนา ของสภาวะการกด ว่ากดจริงหรือไม่
int ledPin = 13;
int buttonPin = 2;
boolean buttonState;
boolean lastState;
boolean state = HIGH;
void setup() {
pinMode (buttonPin,INPUT_PULLUP);
//ทำให้ ขา input มี สถานะทางลอจิกแน่นอน คือ pullupเป็น 1, high ถ้าวงจรเปิด แต่ถ้าไม่มี pullup ถึง/แม้จะกดสวิทย เป็นวงจรปิด input ก็ยังเป็น1 จะไม่เป็น 0 อย่างนี้จึงผิด ทำให้การกดสวิทย์และการแสดงผล led ผิดพลาด ดังนั้นจึงต้องมี pullup เพื่อทำให้ การกดสวิทย มีลอจิกเป็น 0 และการแสดงผลถูกต้อง
pinMode (ledPin,OUTPUT);
}
void loop() {
buttonState = digitalRead(buttonPin);
delay(10); //ป้องกัน การ bounce คือ debounce
if ( ( buttonState == LOW) && (lastState == HIGH) ) state = !state;
digitalWrite(ledPin,state);
lastState = buttonState;
}
ที่มา
https://www.arduino.cc/en/Tutorial/InputPullupSerial
http://www.ayarafun.com/2011/04/arduino-tutorial-3-digital-input-and-debounce/
(กรณีทำปุ่ม กดติดปล่อยดับ ไม่ต้องใช้ เรื่อง bounce แต่ให้ใช้ pullup pulldown แทน)
1. resistor pullup (กำหนดค่าสถานะลอจิกที่แน่นอน ให้กับ ขา input )
2.กำหนด delay(10); ให้มากกว่า 5-50ns เนื่องจาก หน้าสัมผัสของสวิทย์ขณะกด จะ สวิง(bounce)ของค่าแรงดัน จาก 5v- 0 v สลับกันไป ในช่วง 5-50ns จนเสถียร จะเกิดขึ้นกับ ทาง hardware จะมีจุดเรื่อง bounce เข้ามาเกี่ยวข้อง ในวงจรสวิทย์แบบ toggle ดังน้นให้แก้ด้วย ใช้ delay เข้ามา เพื่อ ใช้ระยะเวลา เพื่อทราบเจตนา ของสภาวะการกด ว่ากดจริงหรือไม่
int ledPin = 13;
int buttonPin = 2;
boolean buttonState;
boolean lastState;
boolean state = HIGH;
void setup() {
pinMode (buttonPin,INPUT_PULLUP);
//ทำให้ ขา input มี สถานะทางลอจิกแน่นอน คือ pullupเป็น 1, high ถ้าวงจรเปิด แต่ถ้าไม่มี pullup ถึง/แม้จะกดสวิทย เป็นวงจรปิด input ก็ยังเป็น1 จะไม่เป็น 0 อย่างนี้จึงผิด ทำให้การกดสวิทย์และการแสดงผล led ผิดพลาด ดังนั้นจึงต้องมี pullup เพื่อทำให้ การกดสวิทย มีลอจิกเป็น 0 และการแสดงผลถูกต้อง
pinMode (ledPin,OUTPUT);
}
void loop() {
buttonState = digitalRead(buttonPin);
delay(10); //ป้องกัน การ bounce คือ debounce
if ( ( buttonState == LOW) && (lastState == HIGH) ) state = !state;
digitalWrite(ledPin,state);
lastState = buttonState;
}
ที่มา
https://www.arduino.cc/en/Tutorial/InputPullupSerial
http://www.ayarafun.com/2011/04/arduino-tutorial-3-digital-input-and-debounce/
วันจันทร์ที่ 12 กันยายน พ.ศ. 2559
วันอาทิตย์ที่ 11 กันยายน พ.ศ. 2559
วันอังคารที่ 6 กันยายน พ.ศ. 2559
วันอาทิตย์ที่ 4 กันยายน พ.ศ. 2559
วันศุกร์ที่ 2 กันยายน พ.ศ. 2559
สมัครสมาชิก:
บทความ (Atom)