Tag: Atmel Studio

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

เราใช้คุกกี้เพื่อพัฒนาประสิทธิภาพ และประสบการณ์ที่ดีในการใช้เว็บไซต์ของคุณ คุณสามารถศึกษารายละเอียดได้ที่ นโยบายความเป็นส่วนตัว และสามารถจัดการความเป็นส่วนตัวเองได้ของคุณได้เองโดยคลิกที่ ตั้งค่า

Privacy Preferences

คุณสามารถเลือกการตั้งค่าคุกกี้โดยเปิด/ปิด คุกกี้ในแต่ละประเภทได้ตามความต้องการ ยกเว้น คุกกี้ที่จำเป็น

Allow All
Manage Consent Preferences
  • Always Active

Save