Atmel Studio

ATmega328P ภาษาซี C9: ควบคุม Stepper Motor

ควบคุม Stepper Motor ด้วย ภาษาซี Stepping Motor หรือ Stepper Motor เป็นมอเตอร์ที่มีลักษณะเมื่อเราป้อนไฟฟ้าให้กับมอเตอร์ทำให้หมุนเพียงเล็กน้อยตามเส้นรอบวงและหยุด ซึ่งต่าง จากมอเตอร์ ทั่วไปที่จะหมุนทันทีและตลอดเวลาเมื่อป้อนแรงดันไฟฟ้าข้อดีของสเต็ปมอเตอร์ สามารถกำหนด ตำแหน่งของการหมุนด้วยตัวเลข(องศาหรือระยะทาง) ได้อย่างละเอียดโดย ใช้คอมพิวเตอร์หรือ ไมโครคอนโทรลเลอร์เป็น เครื่องกำหนดและจัดเก็บตัวเลข…

ควบคุม Servo Motor ภาษาซี

ATmega328P ภาษาซี C8: ควบคุม Servo Motor

ควบคุม Servo Motor ภาษาซี เซอร์โวมอเตอร์ (Servo Motor) เป็นการรวมมอเตอร์ไฟฟ้ากระแสตรง (DC Motor) เข้ากับวงจรควบคุม โดยความแตกต่างที่สำคัญของเซอร์โวมอเตอร์กับมอเตอร์แบบอื่น ๆ คือเซอร์โวมอเตอร์จะรู้ตำแหน่งที่ตัวเองอยู่ และสั่งเปลี่ยนตำแหน่งโดยการเปลี่ยนองศาได้ นิยมใช้งานในเครื่องบินบังคับ เรือบังคับ โดยใช้กำหนดทิศทางของหางเสือเป็นองศา การทํางานเพียงตัว Servo…

ควบคุม DC Motor ด้วย L298N

ATmega328P ภาษาซี C7: ควบคุม DC Motor ด้วย L298N

ควบคุม DC Motor ด้วย L298N มอเตอร์ไฟฟ้ากระแสตรง (DC motor)  เป็นอุปกรณ์ที่ทำหน้าที่เปลี่ยนพลังงานไฟฟ้าเป็นพลังงานกล โดยเมื่อจ่ายไฟให้แก่มอเตอร์ จะทำให้แกนของมอเตอร์หมุน จึงสามารถนำการหมุนของแกนมอเตอร์ไปใช้ในการขับเคลื่อนวัตถุให้เกิดการเคลื่อนที่ มอเตอร์ไฟฟ้ากระแสตรงมีขนาดและพิกัดแรงดันให้เลือกใช้มากมาย ในบทความนี้จะเน้นไปที่มอเตอร์ขนาดเล็กที่ใช้แรงดันในย่าน +1.5 ถึง +12V ซึ่งมีการใช้งานในหุ่นยนต์หรือสิ่งประดิษฐ์ที่มีกลไกเคลื่อนไหว บทความนี้จะสอนใช้งาน ATmega328P ควบคุมความเร็วมอเตอร์ไฟฟ้ากระแสตรง (DC motor) ด้วยการเขียนโปรแกรมภาษาซี (C)…

ATmega328P ภาษาซี C5: การใช้งานอินเตอร์รัพท์

การใช้งานอินเตอร์รัพท์ ภาษาซี อินเตอร์รัพท์ (Interrupt) คือการขัดจังหวะการทำงานของโปรแกรมปกติ เมื่อเกิดเหตุการณ์บางอย่างขึ้น ทำให้ซีพียูไปทำงานที่กำหนดไว้เมื่อเกิดอินเตอร์รัพท์ คำสั่ง Interrupt ใน ATmega328P คือ การขัดจังหวะ คำสั่งนี้มีประโยชน์มาก โดยเมื่อ ATmega328P ได้รับสัญญาณ Interrupt แจ้งเข้ามา จะหยุดพักงานที่ทำอยู่…

ATmega328P ภาษาซี C4: Push Button กดติดปล่อยดับ

Push Button กดติดปล่อยดับ การใช้งานสวิตช์ ต่อกับ ATmega328P เพื่อใช้การกดปุ่ม ให้เป็น Input ให้กับ ATmega328P ในการประมวลผลต่อไป เช่น การเขียนโปรแกรมให้กดสวิตช์แล้วให้ไฟติด แล้วเมื่อปล่อยสวิตช์ให้ไฟดับ โดยเราจะกำหนดสัญญาณ 0 หรือ 1 ให้กับขาของ…

ATmega328P ภาษาซี C3: การเขียนโปรแกรม GPIO เบื้องต้น

การเขียนโปรแกรม GPIO เบื้องต้น GPIO (General Purpose Input / Output) คืออินเทอร์เฟซที่ควบคุมด้วยซอฟต์แวร์ซึ่งมักพบในไมโครคอนโทรลเลอร์และไมโครโปรเซสเซอร์ ICs หรือชิปเซ็ตอินเทอร์เฟซบางตัว โดยทั่วไปแล้ว GPIO จะเป็นขาหนึ่งตัวขึ้นไปบน IC ซึ่งไม่มีจุดประสงค์พิเศษในตัวมันเอง แต่ช่วยอำนวยความสะดวกให้กับนักออกแบบอุปกรณ์ในการสร้างอินเทอร์เฟซ / การเชื่อมต่อระหว่าง…

ATmega328P ภาษาซี C2: อัพโหลดโค้ด ด้วย External Tools

อัพโหลดโค้ด ATmega328P ด้วย External Tools ในบทความนี้เราจะเรียนรู้วิธีโหลดโปรแกรมไปยังบอร์ด ATmega328P โดยใช้ Atmel Studio สิ่งนี้มีประโยชน์เมื่อคุณต้องการพัฒนาโปรแกรมโดยใช้คุณสมบัติขั้นสูงเพิ่มเติมหรือในภาษาอื่นในเช่นเราจะใช้ภาษา C , Assembly ในการทำงานนี้เราจะใช้ตัวเลือก “avrdude” และ “external tools” ใน…

การใช้ Atmel Studio 7 อัพโหลดโค้ด บอร์ด Arduino UNO

ในบทความนี้เราจะเรียนรู้วิธีโหลดโปรแกรมไปยังบอร์ด Arduino UNO โดยใช้ Atmel Studio แทน Arduino IDE สิ่งนี้มีประโยชน์เมื่อคุณต้องการพัฒนาโปรแกรมโดยใช้คุณสมบัติขั้นสูงเพิ่มเติมหรือในภาษาอื่นในเช่นเราจะใช้ภาษา C , Assembly หากคุณได้ลองแล้วคุณควรรู้ว่าการโหลดโปรแกรมผ่าน de arduino USB นั้นยุ่งยากมากเพราะ Atmel Studio…

การเขียน ภาษา Assembly กับ Arduino Uno ATmega328P

การเขียน ภาษา Assembly กับ Arduino Uno ATmega328P ภาษา Assembly คือ ภาษาที่ใช้ในการเขียนโปรแกรมภาษาหนึ่ง ซึ่งจะทำงานโดยขึ้นกับรุ่นของไมโครโพรเซสเซอร์ หรือหน่วยประมวลผล (CPU) ของเครื่องคอมพิวเตอร์ การใช้ภาษาแอสเซมบลีจำเป็นต้องผ่านการแปลภาษาด้วยคอมไพเลอร์เฉพาะเรียกว่า แอสเซมเบลอร์ (Assembler) ภาษาแอสเซมบลี จัดอยู่ในภาษาระดับต่ำ…