วันอาทิตย์ที่ 15 พฤศจิกายน พ.ศ. 2558

Week 12 Lab 5

หลักการทำงาน


- ทำการเชื่อมต่อ Nucleo กับ eeprom เพื่อทำการเก็บข้อมูลลงeeprom

- มีโหมดการทำงานสองโหมดคือ โหมดอ่าน และ โหมดเขียน

- ทำการบันทึกข้อมูลสถานะสวิทต์ลง eeprom เมื่อมีการกดปุ่ม Debounce Switch

- นำค่าที่อ่านได้จาก eeprom ไปแสดงบน Led




VDO แสดงการทำงาน







                ดันสวิทต์D7 ขึ้นเพื่อให้เป็นโหมดเขียน และ ทำการบันทึกค่าจากสวิทต์D0-D6 โดยในการบันทึก1ครั้งจะต้องกดปุ่ม Debounce Switch เมื่อทำการบันทึกเสร็จก็ดันสวิทต์D7ลงมาเพื่อเป็นโหมดอ่าน และกดเมื่อกดปุ่มDebounce Switch 1ครั้งก็จะทำการอ่านที่บันทึกไว้ในตอนแรกไปที่ละชุด


Code ของ Program


วันเสาร์ที่ 14 พฤศจิกายน พ.ศ. 2558

Week 11 Lab 4

หลักการทำงาน


-ทำการเชื่อมต่อ Nucleo กับ  IC DAC-MCP4922‐E/P เพื่อกำหนดสัญญาณ sine wave 

- ทำการเขียน code สร้างสัญญาณ sine wave โดยอาศัย function  sine

-เขียนสมการสร้างสัญญาณโดยกำหนด ค่า sine wave สูงสุดและตำ่สุดเพื่อจำลองการวิ่ง
ของ funtion เพื่อ gen สัญญาณ

-ทำการแบ่งช่วงสัญญาณที่ เป็น บวกลบเพื่อ ที่สามารถกำหนดค่า ampitude ได้ง่ายขึ้น



VDO แสดงการทำงาน



Code ของ Program


https://onedrive.live.com/redir?resid=63339D55A49D7CDD!3765&authkey=!AJq2IRptedrrv2I&ithint=file%2crar


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

Week 10 Assingment

หลักการทำงาน

-สามารถเชื่อมต่อ Serial BT HC‐05 กับ Nucleo เพื่อสั่งงานกับ Smartphone

-ทำการส่งค่าตัวเลข 00-99 โดยส่งจากSmartphone และสามารถแสดง Output
เป็น 7 segment ลงบนบอร์ด Nx-100 จากตัวเลขที่ Input ได้

-ทำการให้ Smartphone รับค่าแรงดัน Analog  จาก VR บน Nx-100 และแสดงออกมา User interface




VDO แสดงการทำงาน



                        พิม 1 เพื่อเลือกโหมด แสดงตัวเลข 0-99 ออกทาง Sevent-Segment เมื่อเข้าโหมด 1   มาแล้วก็พิมตัวเลขที่จะให้แสดง ในVDO ตัวอย่างได้พิม เลข 55 กับ 66 ไป ตรงSevent-Segment ก็จะแสดงตามที่พิมเข้าไป และเมื่อพิม x ก็จะออกจากโหมด พิม2เพื่อเข้าโหมด อ่านค่าแรงดันจากVR  หน้าจอก็จะแสดงแรงดัน ณ ขณะนั้น





Code ของ Program

https://onedrive.live.com/redir?resid=63339D55A49D7CDD!2956&authkey=!AMdS5RLdMsG7tE8&ithint=file%2crar

Week 10 Lab3


หลักการทำงาน



- สามารถเชื่อมต่อ Necleo ให้สามารถสื่อสารกับคอมพิวเตอร์ โดยใช้ Comport


-สร้าง Mode การทำงาน 2 Mode ซึ่งสามารถเปลี่ยนไปและมาระหว่าง Mode ต่างๆได้

     
 -Mode 1 จะทำการรับค่าจาก Computer แล้วทำการสื่อสารกับ Necleo 
เพื่อแสดง Output ไฟวิ่ง

       
  - Mode 2 จะทำการรับค่า Digital จาก Nx ไป Necleo เพื่อสื่อสาร 
และแสดง Output บน Computer เพื่อตรวจสอบสถานะของ  D0  


VDO แสดงการทำงาน




                         หน้าจอจะแสดงโหมดมาให้เลือกสองโหมด โหมดที่1.คือโหมดสำหรับเล่นไฟLED โหมดที่2.คือโหมดอ่านสถานะสวิทต์ เมื่อเรากดเข้าโหมดที่.1 หน้าจอก็จะแสดงเมนูมาให้เลือกเล่นไฟLEDสองรูปแบบ เมื่อพิม a ก็จะเล่นรูปแบบที่1 พิม b ก็จะเล่นรูปแบบที่2 และเมื่อต้องการออกจากโหมดเล่นไฟLED ให้พิม s ส่วนโหมดที่2. เมื่อมีการเลือกก็จะแสดงสถานะของสวิทต์ ณ ขณะนั้น ซึ่งในVDO ตอนแรกจะแสดงเป็น 0 และเมื่อไปดันสวิทต์ขึ้นแล้วมาพิม 2 ก็แสดงสถานะเป็น 1




Code ของ Program



วันจันทร์ที่ 19 ตุลาคม พ.ศ. 2558

Week9 Lab2.2



หลักการทำงาน

-สามารถอ่านค่า Input Analog จาก VR ที่มีค่า 0-3.3 V 

-สามารถ Output แสดงค่าออกมาเป็น 7-segment เพื่อที่สามารถแสดงค่าแรงดันปัจจุบันได้


VDO แสดงการทำงาน


-เมื่อทำการหมุนค่า VR จะทำให้เกิดสัญญาณ Analog ของค่าแรงดันที่ ไปแสดงผมในรูปแบบ
7-segment ทศนิยม 1 ตำแหน่ง ที่มีค่าอยู่ระหว่าง 0-3.3 V


Week 9 Lab2.1

หลักการทำงาน

-Program สามารถรับค่า Input ที่เป็น Analog และสามารถอ่านค่าได้

-สามารถแสดงระดับแรงดัน โดยLED ทั้ง 8 ดวง

-LED จะติดมากขึ้นเมื่อแรงดันมีค่ามากขึ้น

VDO แสดงการทำงาน


1.LED จะค่อยๆติดเพิ่มขึ้นตามระดับแรงดันที่เพิ่มมากขึ้น

2.LED จะติดครบทั้ง 8 ดวงเมื่อแรงดันถึงค่า 3.3 V

3.LED จะดับหมดทั้ง 8 ดวงเมื่อแรงดันมีค่า 0 V


Code ของ Program



Week 9 Lab 1


หลักการทำงาน

-สามารถแสดง Output Led 8 ดวง ได้สาม Pattern

-มี Input 3 ปุ่ม

-แสดงการวิ่งของ Led จากขวาไปซ้าย ซ้ายไปขวา จากทั้งซ้ายและขวาโดยปรับ I1 และI2

-สามารถปรับความเร็วได้โดยการปรับ I3

VDO แสดงการทำงาน


1.ปรับ I2 เพื่อให้ไฟวิ่งจากขวาไปซ้าย โดยสามารถหยุดการทำงานได้ทันทีเมื่อ I2เปลี่ยนสถานะ

2.ปรับ I1 เพื่อให้ไฟวิ่งจากซ้ายไปขวา โดยสามารถหยุดการทำงานได้ทันทีเมื่อ I1เปลี่ยนสถานะ

3.ปรับทั้ง I1 และI2 เพื่อให้ไฟวิ่งจากทั้งซ้ายและขวา

4.ปรับ I3 เพื่อเปลี่ยนแปลงความเร็ว ของการวิ่งของไฟ


Code ของ Program











วันอาทิตย์ที่ 11 ตุลาคม พ.ศ. 2558

Week 7

Finite State Machine

วงกลม คือ State
ตัวเลขในวงกลมทางซ้าย คือ ตัวเลขที่ระบุState นั้นๆ
ตัวเลขในวงกลมทางขวา คือ Output ของ State นั้น
ลูกศร คือ ทิศทางในการเปลี่ยน State
ตัวเลขบนลูกศร คือ Input ที่จะต้องเข้ามาเพื่อทำให้เปลี่ยน State



Finite State Machine  มี 2 แบบคือ Moore , Mealy


Moore คือ Output จะขึ้นอยู่กับ State ที่อยู่ ณ ขณะนั้น
Mealy คือ Output จะขึ้นอยู่กับ Input ที่เข้ามา ณ ขณะนั้น





การสร้าง State Table
- ให้ทำการเอาของ State กับ Input ทุกกรณี มาใส่ตรงช่อง Current State กับ Input
- ให้ทำการดูว่า State ไหน ใส่ Input อ่ะไร แล้ว Next State ตาม State Machine ยกตัวอย่างในรูป ช่องแรกคือ State 00 เมื่อ Input 0 ก็จะอยู่ State เดิม เพราะฉะนั้น Next State จะเป็น 00 ส่วนช่องที่สอง ที่ Input 1 ก็จะย้ายไป State 01 เพราะฉะนั้น
Next State ของช่องที่สองก็จะเป็น 01
- ให้ใส่ Output โดยดูจาก Current State
- ถ้ากรณีไหนไม่มีใน State Machine ให้ใส่เป็น Don't care













วันอาทิตย์ที่ 13 กันยายน พ.ศ. 2558

Week 6

Sequential Logic
Comblinational Logic   =   Output จะขึ้นกบ Input ขณะนั้น
Sequential Logic =  Output จะขึ้น กับ Input ขณะนั้น  Input ก่อนหน้า




อุปกรณ์พื้นฐานทาง Combination logic คือ Logic gates
อุปกรณ์พื้นฐานทาง Sequential logic คือ Flip-flop

Flip-flop มี 4 ประเภท 1.SR Flip-flop   2.J-K Flip-flop   3. D-type Flip-flop   4.T-type Flip-flop


1.SR Flip-flop







SR Flip-flop เกิดจากการนั้น NOR Gates ไปต่อกันตามรูป การทำงานนั้น เมื่อ S  = 1 และ R = 0 จะเป็นการ set ให้ Q = 1 และเมื่อ
S = 0 และ R = 1 จะเป็นการ reset ให้ Q = 0 แต่ถ้าเป็น 0 ทั้ง S และ R จะไม่มีการเปลี่ยนแปลง ส่วน S และ R เป็น 1 ทั้งคู่นั้นเป็นกรณีที่ไม่ควรให้เกิดขึ้นเพราะ Q และ Q̅ ห้ามเป็นตัวเดียวกัน




SR Flip-flop with NAND Gates



SR Flip-flop with NAND Gates ลักษณะการทำงานจะคล้ายกับ SR Flip-flop แต่จะต่างกันตรงที่สัญญาณที่ใส่เข้าไป จะสลับกันจาก 0 เป็น 1      จาก 1 เป็น 0


 2. J-K Flip-flop

  
J-K Flip-flop เป็น Flip-flop ที่ทำมาเพื่อแก้ไขปัญหาของSR Flip-flop ที่มีกรณีที่ไม่ควรเกิดเปลี่ยนเป็นการ Toggle แทน

clk คือช่องของสัญญาณนาฬิกาใช้การควมคุมการเปลี่ยนแปลงของFlip-flop




3. D-type Flip-flop

D-type Flip-flop จะมีขา Input สองขาคือ CK กับ D โดยขา D จะเป็นขาที่รับข้อมูลเข้า ส่วนขา CK คือขาที่เป็นการควบคุม เมื่อสัญญาณของขาCK เป็น 0 จะไม่มีการเปลี่ยนแปลง แต่เมื่อขาCK เป็น 1 ก็มีการเปลี่ยนแปลงตามข้อมูลของขา D


4.T-type Flip-flop
T-type Flip-flop จะมีการทำงานแบบ Toggle โดย  Qเปลี่ยนเป็น   เปลี่ยนเป็นQ  เมื่อมีการเปลี่ยนแปลงของสัญญาณที่T  = 1 ถ้า
T = 0 จะไม่มีการเปลี่ยนแปลง  ตัวอย่างตามTruth Table
ได้ทดลองการต่อวงจรนับแบบ Asynchronous   แบบ Up counter



ข้อดี สร้างง่าย
ข้อเสีย ความเร็วจากการสะสม Propagation Delay จาก Flip-flop แต่ละตัว
ตัวอย่างเช่น Flip-flopตัวนึงใช้เวาลาในการทำงาน 50 ns หากมีการใช้4ตัวต้องใช้เวลา การทำงานทั้งสิ้น 50ns*4 = 200ns




ได้ทดลองการต่อวงจรนับแบบ Synchronous   แบบ Up counter










วันอาทิตย์ที่ 6 กันยายน พ.ศ. 2558

Week 5


ได้รู้วิธีการแปลงรหัส Digital เป็นตัวเลขโดยวิธี 7 segment

ซึ่งเห็นได้ว่ามาจากการติดดับของ LED ตามรหัส Digital เพื่อให้เกิดเป็นตัวเลข

และได้รู้จักการเปลี่ยนจำนวน Input และ Output เช่น การแปลง Binary to BCD


เพื่อแปลง 4 Input เป็น 8 Output เพื่อที่จะสามารถนำไปใช้กับตัวเลข 2 หลักได้

และในการหา logic สามารถหาได้อย่างง่ายโดยโปรแกรม Logic Friday


โดย logic ของ Binary to BCD สามารถหาออกมาได้ดังในรูป


ซึ่งเมื่อนำไปต่อจริงก็ออกมาเป็นอย่างในรูปข้างล่าง(รกมากครับ)



และระหว่างการต่อก็เสียบผิดไปมากมาย
เมื่อต่อเสร็จพบว่า เลข 14 ขึ้นกลายเป็น A ซึ่งหลังจากเช็ควงจรทั้งหมด ก็ไม่พบจุดที่ต่อผิด
และได้วิเคราะห์และรู้ความจริงทีหลังว่า บอร์ดที่นำมาใช้ไม่ได้เชื่อมโยงกัน เหมือนโฟโต้บอร์ดปกติ
ที่แถวบวกลบเชื่อมโยงกันหมด แต่เชื่อมถึงกันเฉพาะใน Slot เดียวกัน
และสามารถต่อได้ออกมาได้อย่างสมบูรณ์ในที่สุด



Week 4


Karnaugh Maps เป็นวิธีการลดรูปวงจร Logic gate เหมือน Boolean Algebra แต่ง่ายและเร็วกว่า


ตัวอย่างการใส่ค่าจาก Truth Table ลง K-Map







การคิดของ Karnaugh Maps คือจะต้อง  วงเลข 1 ที่อยู่ติดกันใน K-Map
*ต้องวงเลข1ที่ติดกันมากที่สุดก่อน และ ต้องวงเป็นจำนวน 2^n คือวง 1ติดกัน 1 ตัว  2ตัว 4ตัว ห้ามวงที่ติดกัน3ตัว






K-map 3 inputs

เลขที่เรียงบนตาราง K-map จะเรียงแบบ       Gray code  =  00 01 11 10
                               ไม่ได้เรียงตาม       Binary        =  00 01 10 11








Gray code คือ รหัสที่ค่าที่เปลี่ยนแปลงไปจะมีค่าต่างจากค่าก่อนหน้า 1 บิตเสมอ

-ไม่เหมาะกับการเอาไปใช้คำนวณ
-โอกาสเกิดerrorในการส่งข้อมูลน้อย






ขั้นตอนการแปลงBinary เป็น Gray code





ข้นตอนการแปลงGray code เป็น Binary






รูปแบบการวง K-map 3 Inputs




       





รูปแบบการวง K-map 4 Inputs














K-map 5-6 Inputs จะมีรูปแบบการวงที่แตกต่างจาก2-4
การวงของK-map 5 Inputs นั้นเราจะมองK-mapเป็นขนาด  4*4 สองรูป และถ้ามีจุดที่วงซ้ำกันทั้งสองรูป ก็ให้ทำการดึงออกมา
ส่วนของK-map 6 Inputs นั้นจะมีK-mapขนาด  4*4   สี่รูป  ถ้ามีจุดที่วงซ้ำกันตั้งแต่2รูปขึ้นไปก็ทำการดึงออกมา





โดยตอนเรียนในคาบของสัปดาห์นี้รู้สึกจะหลุดไปตั้งแต่กลางคาบ
ทำให้ไม่เข้าใจเนื้อหาของ Input ที่มากกว่า 2 มากนัก



วันพุธที่ 19 สิงหาคม พ.ศ. 2558

Week 3

สิ่งที่ได้เรียนรู้

-การนำรูปแบบการต่อวงจร Digital มาใช้ในการออกแบบวงจรภายในโรงงาน

-เรียนรู้การออกแบบ วงจร Digital โดยใช้ Boolean Expression

-เรียนรู้วิธีการย่อรูปวงจร โดยใช้เอกลักษณ์ และคุณสมบัติของบูลีน

ปัญหาที่พบ

-ต่อสายในบอร์ดผิดทำให้ต้องกลับไปคิด logic ใหม่

-เกิดปัญา ในส่วนการคิด logic โดยใช้กฎบูลีน



วันพฤหัสบดีที่ 13 สิงหาคม พ.ศ. 2558

Week 2

สิ่งที่ได้เรียนรู้

-ได้กลับไปเล่นเกี่ยวกับแปลงเลขฐานอีกครั้ง

-ได้เรียนรู้เพิ่มเติมจากเลขฐานเกี่ยวกับการบวกลบ

-เรียนรู้ความสัมพันธ์ระหว่างเลขฐาน กับระบบดิจิตอล

-เรียนรู้ในการอ่านค่าของ IC ประเภทต่างๆ

-เรียนรู้วิธีการ ในการนำ IC and or xor มาต่อวงจร บวก ลบ ที่มี บิตต่างๆกัน

ปัญหาที่พบ

-เกิดปัญหาสายพันกัน จนต้องฉีกให้มันออกจากกัน

-ตอนต่อวงจรจิ้ม output ผิดอันทำให้งงไปซักพักเลยครับ

-ลองต่อ pulse เข้าไปในวงจรเล่นๆจนโดนพี่ว่า


วงจร Half Adder

วงจร Full Adder


วันอังคารที่ 4 สิงหาคม พ.ศ. 2558

WEEK 1

สิ่งที่ได้เรียนรู้

-ความเเตกต่างระหว่าง Analog กับ Digital 

-การต่อวงจรแบบ logic gate

ปัญหาที่พบ

-การต่อขา IC ต้องต่ออย่างระวังเกือบหักไปหลายรอบ

-เผลอจ่าย Input 2 อันเข้าไปใน Output อันเดียวกัน(เกือบพัง)