• Arduino การรับค่า Input & และ out put

    Arduino Digital Input #1

    ในตอนนี้จะมาเข้าเรื่อง digital input กัน
    เป็นการรับค่าจากปุ่มกด เริ่มจากพื้นฐานง่าย
    ต่อตามวงจรนี้ก่อน

    ถ้าต่อวงจรตามนี้ ไฟเข้ามาที่ R ไปที่ ขานึงของ สวิตซ์กดติดปล่อยดับ(tactile switch)
    แล้วต่อเข้ากับ LED ขา + แล้วลงground

    เมื่อกดสวิต แน่นอน ไฟติด เพราะมันตรบวงจรแล้ว เพื่อให้เข้าใจการทำงานของ สวิตซ์

    ดูตำแหน่งขาของมัน

    คราวนี้เรามาต่อวงจรรับค่าจากปุ่มกดแล้วทำให้ LED ติดครับ
    อธิบายตามความเข้าในส่วนตัว คือ เราจะต่อวงจร pull-up resistor โดยต่อตัวต้านทานกับ ไฟเข้า Vcc
    เพื่อกำหนดสถานะ HIGH หรือ 1 ก่อน จากนั้นเมื่อกดสวิตซ์ กระแสจะไหลลงground ซึ่งจะทำให้ สถานะ
    HIGH เป็น LOW 
    อธิบายง่ายๆ คือ กด ติด ปล่อย ดับ ส่วนมากจะต่อกันแบบนี้ 
    แต่ถ้าเราต่อ อีกแบบ คือ pull-down resistor ก็คือ การต่อเพื่อกำหนดสถานะ LOW หรือ 0 ก่อน เมื่อกด สวิตซ์ ไฟก็จะดับ
     คือมัน สลับกัน กับ pull-up นั่นเอง 
    pull-up กดติด ปล่อยดับ
    pull-down กดดับ ปล่อยติด  

    วงจร pull-up ไฟ Vcc จะต่อกับ ตัวต้านทานก่อน แล้วต่อปุ่ม ลง ground

    pull-up ถ้ายังไม่กดปุ่มไฟยังไม่ติด

    วงจร pull-down ไฟ Vcc จะต่อกับปุ่มก่อน แล้วจึงไปต่อกับตัว ตัวต้านทานแล้วลง ground

    pull-down ถ้ายังไม่กดปุ่มไฟติดอยู่ก่อน

    1 Led
    1 สวิตซ์กดติดปล่อยดีบ
    1 ตัวต้านทาน 300 Ohms

    มาเขียนโปรแกรมกัน

    int ledPin = 9;               //กำหนด pin สำหรับ led
    int inputPin = 2;               // กำหนด pin สำหรับปุ่ม
    int val = 0;                    //กำหนดตัวแปรรับค่าจากปุ่ม ค่าเป็น 0

    void setup() {
    pinMode(ledPin, OUTPUT);      // กำหนดหน้าที่ของ pin led
    pinMode(inputPin, INPUT);     // กำหนดหน้าที่ของ pin ปุ่ม
    }

    void loop(){
    val = digitalRead(inputPin);  //ให้ตัวแปร val มีค่าเปลี่ยนแปลเมื่อมีการกดปุ่ม(ถ้าต่อ pull-up ตอนนี้เป็น high )
    if (val == HIGH) {            // ตรวจสอบสถานะการกด ถ้าเป็น HIGH คือยังไม่ได้กด
    digitalWrite(ledPin, LOW);  //led ไม่ติด
    } else {                                  //แล้วถ้าไม่ใช่ HIGH ละ
    digitalWrite(ledPin, HIGH); // led ติด
    }
    }

    ครานี้เข้าใจเรื่อง pull-up , pull-down และ digital input พื้นฐานกันแล้ว คราวหน้าจะมาทำอะไรๆสนุกกันอีก กับปุ่มกด และ led

    ที่มา : http://arduinonote.blogspot.com

    Comments

    comments

Comments are closed.