3.6. พื้นฐานอิเล็กทรอนิกส์¶
การขับเคลื่อนอุปกรณ์ภายนอกใดๆ จากพิน GPIO ต้องมีวงจรเชื่อมต่ออยู่อีกฝั่งหนึ่ง แนวคิดพื้นฐานสามประการจากอิเล็กทรอนิกส์เบื้องต้น ได้แก่ แรงดันไฟฟ้า กระแสไฟฟ้า และความสัมพันธ์ระหว่างทั้งสองผ่านตัวต้านทาน ปรากฏในวงจรทุกประเภทดังกล่าว
3.6.1. แรงดันไฟฟ้า กระแสไฟฟ้า ความต้านทาน¶
แรงดันไฟฟ้า (โวลต์, V) คือความต่างศักย์ระหว่างสองจุดในวงจร ราง Supply ของชิปอาจอยู่ที่ 3.3 V เทียบกับกราวนด์ พิน GPIO ที่ถูกขับให้สูงจะอยู่ที่ 3.3 V เช่นกัน
กระแสไฟฟ้า (แอมแปร์, A หรือมิลลิแอมแปร์, mA) คือการไหลของประจุผ่านสาย กระแสไฟฟ้าจะวนกลับมาที่จุดเริ่มต้นเสมอ ดังนั้นเพื่อให้กระแสไหลได้ วงจรต้องสร้างลูปที่สมบูรณ์จาก Supply กลับมาที่กราวนด์
ความต้านทาน (โอห์ม, Ω) คือค่าที่บอกว่าเส้นทางนั้นต้านการไหลมากเพียงใด จุดประสงค์ของตัวต้านทานคือการกำหนดกระแสไฟฟ้าให้ได้ค่าที่ทราบที่แรงดันที่ทราบ
กฎของโอห์มเชื่อมโยงทั้งสามเข้าด้วยกัน:
กฎของโอห์มในสามรูปแบบ¶
กล่าวในรูปคำพูด: แรงดันไฟฟ้าที่ตกคร่อมตัวต้านทานเท่ากับกระแสไฟฟ้าที่ผ่านมันคูณกับความต้านทาน การรู้ค่าใดสองในสามค่าจะให้ค่าที่สามได้ด้วยพีชคณิต
3.6.2. ไดโอด¶
ไดโอดเป็นอุปกรณ์สองขั้วที่นำกระแสในทิศทางเดียว (จาก แอโนด ไปยัง แคโทด) และกั้นกระแสในทิศทางตรงกันข้าม
ไดโอดนำกระแสจากแอโนดไปยังแคโทดเท่านั้น LED คือไดโอดที่ปล่อยแสงขณะนำกระแส¶
ไดโอดยังมี แรงดันไปข้างหน้า (Vf) -- แรงดันที่ตกคร่อมเมื่อกระแสไหลในทิศทางนำ เมื่อแรงดันที่ใช้ถึง Vf ไดโอดจะทำงานคล้ายสาย ต่ำกว่านั้น แทบจะไม่มีกระแสไหล
3.6.3. LED¶
ไดโอดเปล่งแสง (LED) คือไดโอดที่แปลงกระแสนำของมันเป็นแสงที่มองเห็นได้หรืออินฟราเรด ความสว่างแปรตามกระแส สีถูกกำหนดโดยสารเคมีของ LED ไม่ใช่โดยการขับ
แรงดันไปข้างหน้าทั่วไปของ LED:
สีแดง: 1.8 -- 2.2 V
สีเขียวหรือสีเหลือง: 2.0 -- 2.4 V
สีน้ำเงินหรือสีขาว: 2.8 -- 3.4 V
กระแสใช้งานที่เหมาะสมสำหรับ LED แสดงสถานะคือ 5 -- 20 mA กระแสที่สูงขึ้นจะสว่างกว่า แต่จะลดอายุการใช้งานของ LED และอาจเกินขีดจำกัดการขับของพิน GPIO
3.6.4. ตัวต้านทานจำกัดกระแส¶
การต่อ LED โดยตรงระหว่างพิน GPIO และกราวนด์จะทำให้กระแสไหลได้แทบไม่จำกัด เมื่อถึงแรงดันไปข้างหน้า LED จะดูเหมือนวงจรลัดวงจรเกือบสมบูรณ์ ตัวต้านทานอนุกรม ระหว่างพินกับ LED จะกำหนดกระแสให้ได้ค่าที่ปลอดภัย
ตัวต้านทานอนุกรมกำหนดกระแสของ LED¶
แรงดัน Supply แบ่งระหว่างตัวต้านทานและ LED: LED ลดแรงดันของตัวมัน ตัวต้านทานลดส่วนที่เหลือ ตามกฎของโอห์ม:
R = (Vsupply - Vf) / If
สำหรับ LED สีแดง (Vf ≈ 2.0 V) ที่ขับจากพิน GPIO 3.3 V ที่ 10 mA:
R = (3.3 - 2.0) / 0.010 = 130 Ω
ในทางปฏิบัติ ให้เลือกค่ามาตรฐานที่ใกล้เคียงและสูงกว่า (150 Ω หรือ 220 Ω) ผลที่ได้คือ LED ที่สว่างน้อยลงเล็กน้อยพร้อมความปลอดภัยที่ดีขึ้น ใช้ค่า 200 -- 470 Ω เป็นค่าเริ่มต้นที่เหมาะสมเมื่อความสว่างที่แน่นอนไม่สำคัญ
3.6.5. เหตุผลที่แต่ละส่วนมีความสำคัญ¶
รูปร่างของวงจรเอาต์พุต GPIO ทุกวงจรมาจากแนวคิดทั้งสี่ข้างต้น:
แรงดันไฟฟ้า กำหนดพลังงานที่มีอยู่ที่พิน GPIO 3.3 V มีแรงดัน 3.3 V ใช้จ่ายกับสิ่งที่ต่อระหว่างมันกับกราวนด์
ไดโอด (LED ในกรณีนี้) ใช้แรงดันบางส่วนเป็นแรงดันตกไปข้างหน้า และปฏิเสธที่จะนำกระแสในทิศทางผิด -- มันกำหนด ทิศทาง และ ส่วนที่คงที่
ตัวต้านทานจำกัดกระแส ใช้แรงดันที่เหลือและแปลงงบประมาณที่เหลือเป็น กระแส ที่ควบคุมได้ หากไม่มีมัน LED จะดึงกระแสเท่าที่พินสามารถจ่ายได้ -- โดยปกติเพียงพอที่จะทำลายทั้งสองอย่าง
กฎของโอห์ม คือสิ่งที่ทำให้ค่าของตัวต้านทานคำนวณได้: เมื่อรู้แรงดันที่เหลือและกระแสที่ต้องการ
Rจะได้มาจากพีชคณิต
แรงดันไฟฟ้า กระแสไฟฟ้า ความต้านทาน ไดโอด และสมการที่จัดเรียงใหม่หนึ่งสมการ เพียงพอสำหรับการออกแบบวงจรเอาต์พุต GPIO พื้นฐานทุกวงจร
ส่วนเดียวกันนี้ซ่อนอยู่หลัง LED บนบอร์ดมาตลอด machine.LED("LED_RED").on() ทำให้ LED ติดเพราะบอร์ดของ camera ได้จัดเตรียมทุกอย่างรอบข้างไว้แล้ว -- ตัวต้านทานจำกัดกระแส สายต่อกราวนด์ ตัว LED เอง -- และ class เพียงแค่สลับ GPIO ของซิลิกอนที่อยู่เบื้องหลัง มุมมอง "หนึ่งบรรทัดทำให้ LED ติด" เป็นความจริง มันเป็นเพียงการพูดสั้นๆ ว่า "ขับวงจรนั้น" ลอกนามธรรมออกและวงจรข้างต้นนั้นเองที่เหลืออยู่
machine.Pin คือซิลิกอนเดียวกันที่เปิดเผยออกมาโดยไม่มีส่วนประกอบรอบข้าง สคริปต์ควบคุมแรงดันของพินโดยตรง คุณต้องจัดหาตัวต้านทาน (ขนาดตามกฎของโอห์ม), LED และเส้นทางกลับไปยังกราวนด์เอง แนวคิดทั้งสี่เดิมกลับมาใหม่ในการรวมกันที่แตกต่างกันเล็กน้อย ในการ debounce สวิตช์ การกรอง PWM และการขับมอเตอร์