25 มิถุนายน 2553
Chemical Co-project
สืบเนื่องจากการทำโปรเจคร่วมกันกับภาคเคมีของต้น รายละเอียดหลายอย่างได้นำเข้าสู่กระบวกการพัฒนาต่อ ซึ่งหลัก ๆ แล้วคือการพัฒนาโปรแกรมเพื่อควบคุมการทำงานของ pump drive ที่ชื่อว่า Masterflex โดยทางเคมี อุปกรณ์ชนิดนี้ใช้สำหรับปั้มสารผ่านเข้าไปในสายยาง เพื่อใช้ในการทดลองทางเคมี แต่ในปัจจุบันนักเคมีเองจะต้องควบคุมเครื่องด้วยมือ และในขณะเดียวกันต้องเตรียมการทดลองขั้นอื่น ๆ อีกด้วย ทำให้มีแนวคิดที่จะศึกษาและพัฒนาโปรแกรมที่จะมาช่วยนักเคมีในการทำการทดลองให้มีความสะดวกสบาย และแม่นยำมากยิ่งขึ้นในหลายปัจจัย
07 มิถุนายน 2553
ประกาศ การทำปฏิทินงาน และนัดlab
เนื่องจากได้เปิดภาคการศึกษาใหม่แล้ว อาจารย์มีความประสงค์อยากให้เพื่อน ๆ ทุกคนติดตามงานและเข้าปรึกษางานได้เป็นประจำสมำ่เสมอ ทั้งนี้เพื่อประโยชน์ของเพื่อน ๆ แต่ละคน ดังนั้นอาจารย์จึงขอสำรวจว่าถ้าจะทำ lab meeting กันในทุก ๆ วันพฤหัส ช่วงเช้า จะมีเพื่อนคนใดบ้างที่ไม่สะดวก ซึ่งประการหนึ่งที่จะช่วยให้อาจารย์ได้ทราบถึงกำหนดเวลาเรียนของแต่ละคนได้ก็คือการทำตารางเรียนใน google แล้วเชิญอาจารย์มาเป็นผู้ร่วมแก้ไขในปฏิทินของแต่ละคน ดังนั้นจะทำให้อาจารย์สะดวกในการติดตามหรือนัดหมายเพื่อนแต่ละคนได้ง่ายยิ่งขึ้น ขอความร่วมมือให้เพื่อน ๆ ทุกคนทำปฏิทิน โดยเพิ่มอาจารย์ เป็นผู้ร่วมแก้ไข ให้เสร็จสิ้นภายในวันพุธที่ 9 มิ.ย. นี้ และจะสะดวกยิ่งขึ้นถ้ามีความกรุณาแอดจักร เข้าเป็นผู้ดูในปฏิทินของเพื่อน ๆ แต่ละคนด้วย ซึ่งสามารถแอดได้ จากอีเมล์ sirjakk@gmail.com แล้วจักรจะตอบรับ
18 พฤษภาคม 2553
ประกาศ นัดพบเพื่อน ๆ
เพื่อน ๆ คนใดที่สนใจเข้าปรึกษางานกับอาจารย์ ทั้งเรื่องการทำโปรเจค หรือการทำแผนงาน สามารถเข้าพบอาจารย์ได้ ในวันที่ 24 พ.ค. นี้ เวลา 9.00 น.
นัดเวลาอาจารย์ให้แล้ว รบกวนเพื่อน ๆ ติดตามงานของแต่ละคนด้วย เนื่องจากเวลามีไม่มาก หากละเลยไปอาจส่งผลให้ลำบากได้ในภายหลัง
17 พฤษภาคม 2553
แจ้งเน้นยำ้ เรื่อง ประกาศขอกำหนดการทำโปรเจค
ขอเน้นย้ำ เพื่อน ๆ ทุกคน ให้ตรวจสอบอีเมล์ตัวเองเนื่องจากทางอาจารย์ผู้ประสานงานรายวิชา ในการทำโปรเจคได้แจ้งรายละเอียดเพิ่มเติมต่าง ๆ โดยส่งรายละเอียดดังกล่าวมาทางอีเมล์ รบกวนเพื่อน ๆ ตรวจสอบโดยด่วน !!!
10 พฤษภาคม 2553
ประกาศ เรื่อง ขอนัดพบเพื่อน ๆ ด่วนที่สุด!!!
ขอให้เพื่อน ๆ ทุกคน เข้าพบอาจารย์ในวันอังคารที่ 11 พ.ค. นี้ เวลา บ่าย 2 โมง ที่ชั้น 4 ศูนย์คอมฯ ถ้าเพื่อนคนใดไม่สามารถมาได้ รบกวนแจ้งสาเหตุให้ทราบด้วยนะครับ
08 พฤษภาคม 2553
ประกาศ เรื่อง ขอนัดพบเพื่อน ๆ ด่วนที่สุด!!!
ในวันอังคารที่ 11 พ.ค. นี้ อาจาย์ขอให้เพื่อน ๆ เข้าพบกันทุกคน ใครมีข้อมูลหรือคืบหน้าอย่างไรให้นำข้อมูลที่มีมาพูดคุยกับอาจารย์ได้ เน้นยำ้ขอให้เพื่อน ๆ ทุกคน เข้าพบ เรื่องรายละเอียดของเวลา และสถานที่ จะแจ้งให้ทราบถัดไป ขอความกรุณาเพื่อน ๆ ติดตามข่าวสารจาก blog นี้ อย่างต่อเนื่องด้วยนะครับ ถ้าเพื่อนคนใดติดปัญหาอย่างไร จะฝากแจ้งอาจารย์ ขอให้โทร.มาบอกด้วย
01 เมษายน 2553
GenesisPump
รายงานความก้าวหน้่าครั้งที่4
จากการใช้ Aduino ควบคุม digital potentiometer ยังมีข้อสงสัยในส่วนของ source code จึงต้องมีการศึกษาเพิ่มเติม ดังนั้นในวันนี้จะมาอธิบายในส่วนของ source code โดยอธิบายทำละส่วนดังนี้


1.) #define DATAOUT 11//MOSI #define DATAIN 12//MISO - not used, but part of builtin SPI #define SPICLOCK 13//sck เป็นการกำหนด pin ที่ 11,12,13 ตามมาตรฐานของ SPI
โดย pinที่13 ต่อกับ pinที่2 ของ MCP41010 (Serial Clock (SCK))
pinที่12 ไม่ได้ใช้
pinที่11 ต่อกับ pinที่3 ของ MCP41010 (Serial Data Input (SI)) อ่านเพิ่มเติมได้ที่ http://klk64.com/arduino-spi/ #define SLAVESELECT 10//ss
pinที่ 10 ต่อเข้ากับ pinที่1 ของ MCP41010 (Chip Select (CS))
2.)
byte resistance=0; // ประกาศตัวแปร ชื่อ resistance ชนิด char โดยมีค่าเริ่มต้นเป็น 0
3.1)
3.2)
จากคำสั่งนี้พบว่างงกับคำสั่งมากว่าทำอะไรจึงทำการค้นคว้าข้อมูลเพิ่มเติม พบว่า SPCR คือ SPI Control Register ซึ่งสามารถเรียกใช้โดยไม่ต้องประกาศตัวแปร ซึงมี 8 bit
Bit 7 - SPIE: SPI Interrupt Enable
Bit 6 - SPE: SPI Enable
Bit 4 - MSTR: Master/Slave Select
Bit 3 - CPOL: Clock Polarity
Bit 2 - CPHA: Clock Phase
Bit 1 and bit 0 - SPR1, SPR0: SPI Clock Rate Select 1 and 0
จากคำสั่งข้างต้น ค่าของ SPCR = 01010000 โดยค่าของ SPE=1 SPI enable, MSTR=1 เป็นการกำหนดว่า เป็น Master หรือตัวส่งข้อมูล
3.3) Write_pot(255); เปนการกำหนดค่าเริ่มต้นในการทำงานโดยส่งค่า 255 ไป
อธิบาย function write_pot(int)
เมื่อมีการส่งข้อมูลต้องให้ค่า SLAVESELECT เปน 0 จึงจะทำการส่งข้อมูลได้ ดังนั้นจึงต้องใช้คำสั่ง
digitalWrite(SLAVESELECT,LOW);
spi_transfer(19);
spi_transfer(value);
หลายคนอาจสงสัยว่าเหตุใดจึงมีการ function สองครั้ง
ครั้งแรกเป็นการส่ง COMMAND Byte โดยมีรูปแบบดังนี้


SPSR=SPI Status Register
Bit 7 - SPIF: SPI Interrupt Flag
Bit 6 - WCOL: Write COLlision Flag
Bit 0 – SPI2X: Double SPI Speed Bit
เมื่อการส่งข้อมูลเสร็จแล้ว SPIF เป็น 1 จะทำให้ SPIE เป็น 1 และจำทำการเคลียค่า SPIF เป็น 0 เมื่อเข้าถึงค่าใน SPI Data Register คิดว่าน่าจะส่งค่าสู่ Digital Potentiometer ในส่วนนี้ (ขอ comment ข้อผิดพลาดด้วยครับ)
โดยค่า resistanceจะมีค่าได้ระหว่าง 0-255 เพราะ MCP1010 จะทำงานได้ที่ 256 ระดับ
ภายใน loop จะให้ค่า resistance เพิ่มขึ้นเรื่อย นั่นทำให้ค่าความต่างศักย์ลดลง
delay(1000) ไว้หน่วงการส่งที่ 1 วินาที
* คำถาม ทำไมใน function spi_transfer(volatile char data) ถึงต้องนำ char มาเป็นพารามิเตอร์ และ volatile ใช้อย่างไร

สมัครสมาชิก:
บทความ (Atom)