สิ่งที่ได้เรียนรู้
Microcontroller : NUCLEO-F411RE
รายละเอียด Port ต่างๆของ NUCLEO-F411RE
GPIO คือ Port สำหรับต่อ Input/Output ของ Microcontroller ซึ่งบอร์ด NUCLEO รับแรงดันได้ 0-3.3 V
- LAB#1 ออกแบบการทำงาน Controller โดยมี Input อย่างน้อย 3 ปุ่ม แล้วเปลี่ยนการทำงานของ output LED 8 ดวงอย่างน้อย 3 รูปแบบ
- รูปแบบการทำงานของ LED
- แบบที่ 1 เป็นไฟไหลทีละ 2 ดวงจาก ขวาไปซ้าย
- แบบที่ 2 เป็นไฟไหลที่ละ 1 ดวงจากขวาไปซ้าย
- แบบที่ 3 เป็นไฟกระพริบ เป็นชุด ชุดละ 4 ดวง กระพริบสลับกันไปมา
- ใช้ INPUT 3 ตัวคือ Port D2 , D3 , D4 และ Output 8 ตัวคือ D5-D12
- ปัญหาที่พบจากการทำ LAB
- ตอนแรกเมื่อ Input แล้ว Output ไม่ทำงาน เนื่องจากนำ Input ไปเสียบเข้าที่ D0 และ D1 ทำให้วงจรไม่ทำงานเพราะเป็น Port TX/RX
- ไฟในวงจร NX~100 ติดไม่เต็มที่ และ กระพริบ เนื่องจากยังไม่ได้ต่อ GND ของทั้ง 2 บอร์ดเข้าด้วยกัน
- โหลดโปรแกรม LAB1 คลิกที่นี่
Analog to Digital Converter (ADC) คือ วงจรแปลงแรงดันแบบ Analog ให้เป็นสัญญาณ Digital โดยจะแบ่งระดับแรงดันให้มีหลายๆระดับลักษณะเป็นขั้นบันใด
โดยถ้าหากขั้นบันไดยิ่งเยอะจะยิ่งทำให้ค่า Error ยิ่งน้อยลง โดยในบอร์ดรุ่นนี้เป็นแบบ 12-bit ADC ที่ Vmax 3.3V
- LAB#2.1
- อ่านค่า input analog จาก VR ตั้งแต่ 0.0–3.3 V เข้าที่ Pin ที่ไม่ใช่ A0
- แสดงระดับแรงดันด้วย LED 8 ดวงในลักษณะเหมือน VU Meter
- LAB#2.2
- อ่านค่าinput analog จาก VR ตั้งแต่ 0.0–3.3 V เข้าที่ Pin ที่ไม่ใช่ A0
- แสดงค่าแรงดันเป็นตัวเลขออกที่ 7‐segment โดยมีความละเอียดเป็นตัวเลขทศนิยม 1 ตําแหน่ง
- โดยใช้ Output 8 ตัว คือ D2 - D9 และให้ Input คือ A1
- ใช้คำส่ง BusOut เพื่อช่วยลดจำนวนการเขียนโปรแกรมเนื่องจากสามารถส่งเป็นค่าเลขฐาน 10 แล้วนำไปแปลงเป็นฐาน 2 ส่งไปยัง Output ที่กำหนดไว้ให้ได้เลย
- โดยในโปรแกรมของกลุ่มผมได้นำทั้ง 2 LAB มารวมกัน แล้วใช้การเลือก State จาก Switch ของบอร์ด NX~100
- ปัญหาที่พบจากการทำ LAB
- เมื่อวัดค่าแรงดันที่ออกจาก VR โดยตรง กับที่โชว์บน 7‐segment ของบอร์ดมีค่าต่างกันเล็กน้อย น่าจะเกิดจากมี Noise ในวงจรที่ต่อ
- โหลดโปรแกรม LAB2 คลิกที่นี่