จากรูปเราจะใช้ทรานซิสเตอร์มาประกอบในวงจรเพื่อส่งค่าที่เป็นสัญญาณลอจิกไปให้กับไมโครคอนโทรลเลอร์ที่เป็นชนิด TTL โดยอาศัยการไบอัสที่ทรานซิสเตอร์ สำหรับการต่อวงจรในรูปด้านซ้ายเป็นวิธีที่ดีที่สุด ซึ่งสัญญาณจะที่ส่งเข้าไปยัง พอร์ตอินพุทมีค่าเป็น 0 เมื่อมีการไบอัสที่ขาเบส
Single Contact
การต่อสวิทช์เพื่อป้อนอินพุทให้กับคอนโทรลเลอร์ควรใช้ตัวต้านทานมาต่อเป็น Pull up หรือ Pull down เพื่อไม่ให้มี Noise เข้าไปรบกวนในพอร์ตนั้น
จากในรูปถ้าสวิทช์ดังกล่าวปิดวงจร ก็จะทำให้ข้อมูลที่เข้าไปเป็นข้อมูลที่เราต้องการ แต่ถ้าเมื่อไรเปิดวงจรขึ้นมาจะทำให้พอร์ตนั้นอยู่ในสถานะที่ไม่สามารถกำหนดได้ว่ามีค่าเป็นศูนย์หรือหนึ่ง
Debouncing
การกดสวิทช์หนึ่งครั้ง ซึ่งในขณะที่หน้าสัมผัสของสวิทช์แตะกันจะทำให้เกิด bouncing ขึ้นเป็นคลื่นตามกราฟในรูปที่ 4 ซึ่งถ้าไม่มีการป้องกัน อาจจะทำให้เกิดความผิดพลาดได้เพราะความเร็วของไมโครคอนเลอร์เร็วมากๆเมื่อเทียบกับความเร็วในกดสวิทช์ของคน ซึ่งการกดหนึ่งครั้งโปรแกรมอาจจะรับได้เป็นร้อยๆครั้งก็ได้ ที่เป็นเช่นนั้นเพราะมี bouncing ขึ้นมา วิธีแก้ไขคือต่อตัวเก็บประจุขนานเข้าไปเพื่อไปลด bouncing ซึ่งผลที่ได้ก็จะเป็นตามในกราฟที่สอง เท่านั้นยังไม่พอ เพราะสัญญาณที่เข้าไปในพอร์ตควรเสถึยรมากกว่านี้ เราทำได้โดยการใช้ไอซีเบอร์ 7414 ซึ่งในไอซีจะมีระดับของ Threshold เพื่อเป็นตัวในการตัดสินว่าระดับความต่างศักย์ในระดับนี้ควรเป็น 0 หรือ 1 ซึ่งสัญญาณที่ออกมาจาก 7414 จะมีสองค่าเท่านั้น
ส่วนการแก้ปัญหาอีกทางหนึ่งก็คือการแก้ด้วยซอฟท์แวร์โดยการทำ sampling เข้าไปยังพอร์ตนั้นๆซึ่งไม่ดีเท่ากับวิธีแรกที่แก้ปัญหาด้วยฮาร์ดแวร์ ถ้าดูจากกราฟการ sampling จะทำให้เกิดความผิดพลาดได้มากกว่าดูในรูปที่ 5
Level Shifting
กรณีที่ต้องการับอินพุทจากจุดที่มีความต่างศักย์ไฟฟ้าที่สูงมากๆ ควรนำ R มาต่อเพื่อลดระดับของความต่างศักย์ลง เราเรียกว่า Voltage Devider
หรืออีกในกรณีหนึ่งนำทรานซิสเตอร์เข้ามาเพื่อให้อินพุทไปไบอัสทรานซิสเตอร์แทน ซึ่งวิธีนี้จะดีกว่าวิธีแรก ถ้าค่า B(เบต้า) =100 และที่ Ic 2 mA ,Vbe=0.7 กระแสที่ไบอัสปกติ 20 uA แต่เพื่อให้แน่ใจว่าทรานซิสเตอร์อยู่ในสถาน saturation ผมจะให้กระแสไบอัสเป็น 40 uA จะคำนวนค่า Rs ได้ดังนี้ (24-0.7)/40 uA =582 Kohms ซึ่งเราอาจจะใช้ 470 kohms ก็ได้นะ
วงจร AC to TTL
ไฟ AC มีความถี่ 50-60 Hz เพราะฉนั้นสัญญาณที่ผ่านไอโอดมาก็จะมีค่าเป็นเป็นบวก 16-20 มิลลิวินาที เพราะฉนั้นจะต้องทำให้สัญญาณดังกล่าวเป็น DC ก่อน เราสมมุติว่าต้องการให้ลอจิก 0 กับพอร์ต TTL เมื่อมีการป้อนไฟ AC เข้ามา 110 โวลท์ การคำนวนหาค่าตัวเก็บประจุไฟฟ้าทำได้ดังนี้ เนื่องจาก 110 โวลท์เป็นค่า rms ของสัญญาณ AC ดังนั้น peak สูงสุดคือ 1.7*110 เท่ากับ 187 โวทล์ค่าตัวเป็นประจุควรมีค่าเป็นครึ่งหนึ่งคือ 94 โวลท์ กระแสไปอัสเรากำหนดให้เป็น 40 uA เราต้องหาค่า R ก่อน
R=94/40 uA ได้ R= 23 Mohms ดังนั้นสูตรการหาค่า C คือ C=1/RT ได้ค่า C= 1/(23Mohms*1.7 mSec) 1.7 mSec คือช่วงเวลาการ Recovery time เราก็จะได้วงจรที่สามารถป้อนอินพุทให้กับไมโครคอนโทรลเลอร์จากแหล่งที่มีความต่างศักย์สูงๆ
Optical Devices
opto-interrupts โดยทั่วไปจะเป็นอุปกรณ์ที่มีทั้งตัวรับและตัวส่งใน package เดียวกันแสงที่ใช้ปกติจะเป็น IR (เรามองไม่เห็นแสงนี้) บาง package ภายในจะประกอบไปด้วยวงจร Comparator ซึ่งจะให้สัญญาณที่มีค่าเป็นลอจิกออกมาดังรูป
อัลตราโซนิก
อัลตราโซนิก มีหลักการทำงานเหมือนเรดาร์ เรดาร์จส่งคลื่นวิทยุไปกระทบกับวัตถุจากนั้นจะมีคลื่นสะท้อนกลับมา ซึ่งสามารถวัดระยะทางระหว่างตัวส่งเรดาร์ กับวัตถุได้ว่าห่างจากกันเท่าไร ใช้ความเร็วของคลื่นกับเวลาที่จับได้มาคำนวน อัลตราโซนิกจะใช้คลื่นความถี่ 40 kHz ตัวส่งจะใช้ได้ทั้งลำโพงและไมโครโฟน