วันพฤหัสบดีที่ 15 ตุลาคม พ.ศ. 2558

GPIO & ADC [WEEK9]

     สัปดาห์ที่ 9 แล้วสำหรับเนื้อหาในวิชาดิจิตอลเริ่มสร้างความแปลกใจให้เรื่อยๆครับ ในวีคนี้เราได้เริ่มเข้าสู่ Micro Controller กันแล้ว ในสัปดาห์แรกของเรื่องนี้เราก็ได้รู้จักถึงความเป็น Micro Controller และความแตกต่างของ Micro Controller กับ Micro Processer รวมถึงส่วนประกอบต่างๆของ Micro Controller ครับ แล้วก็ชนิดของ Input&Output 2 อย่างของ Micro Controller ของเรา คือ GPIO กับ ADC ของเรานี่เอง

Micro Controller : NUCLEO-F411RE
Micro Controller 
     Controller คือ ตัวประมวลผลกลางระหว่าง Sensor กับ Actuator
ดังนั้น Micro Controller คือ หน่วยประมวลผลกลางขนาดเล็กพกพาสะดวกนั่นเอง 55+

ความแตกต่างระหว่าง Micro Controller กับ Micro Processor
     Micro Controller จะมีทั้งหน่วยประมวลผล หน่วยความจำ และ I/O port อยู่ในตัวเดียวกัน ส่วน Micro Processor จะมีเพียงหน่วยประมวลผลเพียงอย่างเดียว


General Purpose Input&Output (GPIO)
     GPIO คือ Port ทั่วไปสำหรับรับส่งสัญญาน Input - Output ซึ่งบน Nucleo F411RE ที่เราใช้งานกันอยู่นั้นจะมี GPIO อยู่ 50 port สามารถรับแรงดันได้ตั้งแต่ 0 - 3.3 V (แรงดันสูงสุดที่รับได้ คือ 5 V)

Lab : ออกแบบการทำงาน Controller โดยมี Input อย่างน้อย 3 ปุ่ม แล้วเปลี่ยนการทำงานของ output LED 8 ดวงอย่างน้อย 3 รูปแบบ


     รับสัญญาน Input จาก Switch 3 ตัว ที่ Pin 10 - 12 แล้วนำมาแสดงผล Output 4 รูปแบบ ผ่าน LED 8 ดวงที่ Pin D2 - D9
Download Progarm >> Lab


Analog to Digital Converter (ADC)
     เนื่องจากสัญญาณที่ใช้ในการประมวลผลของบอร์ดเป็น ดิจิตอล เราจึงต้องมีบางสิ่งบางอย่างที่จะนำมาแปลงค่าต่างๆที่เป็น Analog ไม่ว่าจะเป็นเซนเซอร์ส่วนมากล้วนจะวัดออกมาได้หลายๆค่าอยู่แล้วใช่ไหมครับ เราจึงต้องใช้ ADC นี่เอง มันจะมีหน้าที่ในการแปลงสัญญาณ ที่มีหลายๆค่าให้เป็นค่า Digital ย่อยๆที่อยู่ในช่วงของ 0 ถึง 1 ครับ เรามาดูตัวอย่างการแบ่งสัญญาณตามรูปครับ


     ในแต่ละช่วงนี่จะมีค่าเปลี่ยนเป็น Digital แบบรอบละ 0.714 V โดยช่วงของค่าใน Analog จะถูกจัดอยู่ในระดับบเดียวกันทำให้เกิดสิ่งที่เรียกว่า Quantisation Error ครับมีค่าบวกลบเป็นช่วงนั้นๆ หาร2 คือ 0.714/2 = บวกลบ(0.357) โดยประมาณนั่นเอง
     ซึ่งความถี่ของขั้นบันได Digital ยิ่งถี่มากเท่าไหร่ก็จะได้ค่า Error ที่ลดลง ความละเอียดก็จะสูงขึ้น พอมาแปลงเป็นค่า 0 ถึง 1 ก็จะละเอียดทศนิยมมากขึ้นครับ


Lab1 : ออกแบบการทำงาน Controller โดยมี Input เป็น Analog แล้วใช้ ADC แปลงค่ามาแสดงผลเป็น LED 8 ดวงตามระดับความดันไฟฟ้าที่ใส่เข้าไป


     มี Input เป็นสัญญาน Analog จาก VR ตั้งแต่ 0 - 3.3 V เข้าที่ Pin A5  แล้วแสดงผล Output เป็น LED 8 ดวง ที่ Pin D2 - D9
Download Progarm >> Lab1

Lab2 : ออกแบบการทำงาน Controller โดยมี Input เป็น Analog แล้วใช้ ADC แปลงค่ามาแสดงผลเป็น 7-Segments


     มี Input เป็นสัญญาน Analog จาก VR ตั้งแต่ 0 - 3.3 V เข้าที่ Pin A5 แล้วแสดงผล Output เป็น 7 Segment โดยใช้ Pin D2 - D8
Download Progarm >> Lab2

0 ความคิดเห็น:

แสดงความคิดเห็น