Posts

Showing posts from November, 2012

MCS-51 Based Tachometer (เครื่องวัดความเร็วรอบ)

Image
Siwakorn Sukprasertchai , siwakorn@nablatronics.com      เป็นโปรเจคที่ผมทำขึ้นเล่นๆ เมื่อสมัยเรียน ปี 4 ซึ่งได้ถูกนำไปใช้งานจริงเพื่อวัดความเร็วรอบของเครื่อง Spin Coater (เครื่องปลูกฟิล์มโดยใช้เทคนิคแรงหนีศูนย์กลาง) โดยการทำงานทั้งหมดจะใช้ Microcontroller ยอดฮิต 8051 เป็นตัวควบคุม รูปที่ 1. ชุดสาธิตการทำงานของ Tachometer ที่่มี MCS-51 เป็นไมโครคอนโทรลเลอร์และใช้ Reflective Optical เป็น Sensor (นวพร เหล่าวัฒนธรรม , สุริยงค์ คำพิยะ) รูปที่ 2. เซนเซอร์อินฟราเรดแบบ Reflective Optical - ความเป็นมา Tachometer คือเครื่องมือที่ใช้ในการวัดความเร็วในการหมุนของ shaft หรือ disk ของเครื่องจักร โดยทั่วไปจะมีหน่วยของการวัดเป็น RPM (Revolution Per Minute) ซึ่งบทความนี้จะนำเสนอวิธีการสร้าง Tachometer โดยใช้เซนเซอร์แบบ Optical และใช้ไมโครคอนโทรลเลอร์ตระกูล 8051 เป็นตัวควบคุม - หลักการทำงานของ Sensor การทำงานของเซนเซอร์จะใช้เซนเซอร์แสง(Photo Interrupter) ซึ่งมี 2 รูปแบบคือ แบบส่องผ่าน(Transmissive) และแบบสะท้อน(Reflective) ทั้ง 2 แบบมีหลักการง่ายๆคือ มีตัวส่งและมีต...

การเขียนโปรแกรมภาษา C เบื้องต้น ตอนที่ 3 : ตัวดำเนินการ (Operators)

หายไปนานเลย กว่าจะมาเขียนบทนี้ได้ = = ที่ผ่านมาเราได้เรียนรู้ตัวแปรและชนิดของตัวแปร เราสามารถที่จะจัดการหรือดำเนินการกับตัวแปรหรือตัวเลขได้ โดยใช้สิ่งที่เรียกว่า “ตัวดำเนินการ (Operator)”  ซึ่งในภาษา C นั้นมีตัวดำเนินการต่างๆดังนี้ ตัวดำเนินการคณิตศาสตร์ (Arithmetic operators) + Addition - Subtraction * Multiplication / Division % Modulo ++ Auto increment -- Auto decrement ตัวดำเนินการ +, –, *, / ก็คือ บวก ลบ คูณ หาร เหมือนในคณิตศาสตร์ตามปกติทั่วไป ที่พิเศษนิดนึงคือ % ตัวดำเนินการนี้เรียกว่า modulo โดยจะดำเนินการเอาเศษที่เหลือของการหารเช่น

การเขียนโปรแกรมภาษา C เบื้องต้น ตอนที่ 2 : ตัวแปรและชนิดของข้อมูล

Image
ตัวแปรคือชื่อเรียกที่เป็นตัวแทนของพื้นที่เก็บข้อมูลในหน่วยความจำ ยกตัวอย่างสมมติว่า บวกเลข 20 กับ 56 ในใจ คุณจะต้องเก็บค่า 20 หรือ 56 ในใจก่อน จากนั้นคุณถึงจะนำค่าทั้ง 2 มาบวกกันได้ เห็นไหมครับสิ่งที่เราเก็บ 20 และ 56 ในใจนั้นก็คือเราเก็บไว้ในหัวสมอง ในคอมพิวเตอร์ก็เช่นเดียวกัน กระบวนการทั้งหมดถ้าเขียนเป็นภาษา C เป็นดังนี้ a = 20; b = 56; result = a + b;

การเขียนโปรแกรมภาษา C เบื้องต้น ตอนที่ 1 : รู้จักกับโครงสร้างของภาษา C

Image
พื้นฐานเริ่มต้นเป็นสิ่งสำคัญที่จะทำให้เขียนโปรแกรมภาษา C ได้ โดยถ้าพื้นฐานเข้าใจแล้วยากกว่านั้นก็จะเข้าใจได้อย่างไม่ยาก โครงสร้างของภาษา C โดยทั่วไปจะเป็นแบบนี้และจะคล้าย กันทั้งหมด ไม่ว่าจะใช้ IDE ของเจ้าไหน จะว่าเป็นกฏเลยก็ว่าได้ 

เทคนิคการปรับแต่งและเชื่อมต่อ LCD Character 5V ให้ใช้ได้กับไฟเลี้ยง 3.3V โดยใช้ negative voltage supply

Image
สืบเนื่องจากโปรเจคเครื่องวัดประสิทธิภาพของแผงเซลล์แสงอาทิตย์แบบพกพาที่ผมกำลังทำขึ้น ค่าที่วัดและคำนวณได้จะต้องแสดงผ่าน LCD แต่เนื่องจากมันเป็นเครื่องที่จะต้องพกพาได้ ดังนั้นผมจึงออกแบบให้ใช้แหล่งพลังงานจากแบตเตอรี่ โดยผมเลือกใช้ Li-ion Battery (แบตโทรศัพท์มือถือทั่วไป) ข้อดีคือไม่มี memory effect ครับ ซึ่งจะมีแรงดันอยู่ที่ 3.7V โดยเอามาผ่านเข้ากับ regulator 3.3V อีกทีนึงเพื่อเอาไปเลี้ยงวงจร ทีนี้เองจึงต้องหา LCD ที่ใช้แรงดัน 3.3V ได้ จึงเข้า www.es.co.th ทำการค้นหาดูในหมวดของ LCD Character Displays / Modules ปรากฏว่าไม่มีแบบ 3.3V ครับ

การใช้งาน Dev-C++ เบื้องต้น

Image
การใช้งาน Dev-C++ ไม่ยุ่งยากครับและใช้งานง่ายด้วย    เหมาะกับการฝึกเขียนโปรแกรมภาษา C ได้เป็นอย่างดี โดยตอนนี้ผมจะบอกวิธีใช้งานเบื้องต้นง่ายๆ เพื่อเตรียมตัวสำหรับตอนต่อไปในการฝึกเขียนโปรแกรมครับ

แนะนำ Dev-C++ และวิธีการติดตั้งสำหรับฝึกเขียนโปรแกรมภาษา C เบื้องต้น

Image
Dev-C++ คือ IDE (Integral Development Environment) เป็นโปรแกรมที่ออกแบบขึ้นมาเพื่อช่วยให้การเขียนโปรแกรมภาษา C ทำได้ง่ายขึ้น โดยผู้ใช้ไม่ต้องยุ่งยากแยกใช้ editor เขียน code และเรียกใช้ compiler เพื่อทำการคอมไพล์ code โดย Download ได้ที่  http://prdownloads.sourceforge.net/dev-cpp/devcpp-4.9.9.2_setup.exe

Microcontroller.... จิ๋วแต่แจ๋ว

Image
Microcontroller (µC, uC or MCU) คือ คอมพิวเตอร์หรือตัวควบคุมขนาดเล็กที่อยู่บนวงจรรวม (Integrated Circuit) Microcontroller ตัวแรกโดยวิศวกรของ Texas Instruments (TI) Gary Boone และ Michael Cochran วางจำหน่ายในปี 1974 (ภาพ : cpu-world.com) Microcontroller โดยพื้นฐานหลักจะประกอบด้วย - หน่วยประมวลผลหลัก (Processor core , CPU) - หน่วยความจำ (Memory) - ส่วนติดต่อหรือพอร์ตที่สามารถโปรแกรมได้ (programmable input/output peripherals)