สารบัญ:

ข้อมูลเบื้องต้นเกี่ยวกับ Arduino: 15 ขั้นตอน (พร้อมรูปภาพ)
ข้อมูลเบื้องต้นเกี่ยวกับ Arduino: 15 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: ข้อมูลเบื้องต้นเกี่ยวกับ Arduino: 15 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: ข้อมูลเบื้องต้นเกี่ยวกับ Arduino: 15 ขั้นตอน (พร้อมรูปภาพ)
วีดีโอ: Basic Arduino ep1 อธิบายการเขียนโปรแกรม Arduino แบบพื้นฐาน 2024, กรกฎาคม
Anonim
แนะนำ Arduino
แนะนำ Arduino

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

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

โดยพื้นฐานแล้ว หากมีบางสิ่งที่ควบคุมด้วยไฟฟ้าในทางใดทางหนึ่ง Arduino สามารถเชื่อมต่อกับมันได้ในลักษณะบางอย่าง และถึงแม้จะไม่ได้ถูกควบคุมด้วยไฟฟ้า คุณก็ยังสามารถใช้สิ่งต่างๆ ที่ (เช่น มอเตอร์และแม่เหล็กไฟฟ้า) เพื่อเชื่อมต่อกับมันได้

ความเป็นไปได้ของ Arduino นั้นแทบจะไร้ขีดจำกัด ด้วยเหตุนี้ จึงไม่มีวิธีใดที่บทช่วยสอนเพียงบทเดียวจะครอบคลุมทุกสิ่งที่คุณอาจจำเป็นต้องรู้ ที่กล่าวว่าฉันได้พยายามอย่างเต็มที่เพื่อให้ภาพรวมพื้นฐานของทักษะและความรู้พื้นฐานที่คุณต้องการเพื่อให้ Arduino ของคุณทำงาน หากไม่มีอะไรเพิ่มเติม สิ่งนี้ควรทำหน้าที่เป็นกระดานกระโดดน้ำในการทดลองและการเรียนรู้เพิ่มเติม

ขั้นตอนที่ 1: Arduinos ประเภทต่างๆ

Arduinos ประเภทต่างๆ
Arduinos ประเภทต่างๆ
Arduinos ประเภทต่างๆ
Arduinos ประเภทต่างๆ
Arduinos ประเภทต่างๆ
Arduinos ประเภทต่างๆ

Arduinos มีหลายประเภทให้เลือก นี่คือภาพรวมคร่าวๆ ของบอร์ด Arduino ทั่วไปบางประเภทที่คุณอาจพบ สำหรับรายชื่อบอร์ด Arduino ที่รองรับในปัจจุบัน โปรดดูหน้าฮาร์ดแวร์ Arduino

Arduino Uno

Arduino รุ่นที่พบบ่อยที่สุดคือ Arduino Uno บอร์ดนี้เป็นสิ่งที่คนส่วนใหญ่พูดถึงเมื่อพูดถึง Arduino ในขั้นตอนต่อไปจะมีภาพรวมที่สมบูรณ์ยิ่งขึ้นของคุณลักษณะต่างๆ

Arduino NG, Diecimila และ Duemilanove (เวอร์ชันดั้งเดิม)

สายผลิตภัณฑ์ Arduino Uno รุ่นเก่าประกอบด้วย NG, Diecimila และ Duemilanove สิ่งสำคัญที่ควรทราบเกี่ยวกับบอร์ดรุ่นเก่าคือไม่มีคุณลักษณะเฉพาะของ Arduino Uno ความแตกต่างที่สำคัญบางประการ:

  • Diecimila และ NG ใช้ชิป ATMEGA168 (ตรงข้ามกับ ATMEGA328 ที่ทรงพลังกว่า)
  • ทั้ง Diecimila และ NG มีจัมเปอร์อยู่ถัดจากพอร์ต USB และต้องเลือก USB หรือพลังงานจากแบตเตอรี่ด้วยตนเอง
  • Arduino NG ต้องการให้คุณกดปุ่มพักบนบอร์ดค้างไว้สองสามวินาทีก่อนที่จะอัปโหลดโปรแกรม

Arduino Mega 2560

Arduino Mega 2560 เป็นรุ่นที่สองของตระกูล Arduino ที่พบได้บ่อยที่สุด Arduino Mega เปรียบเสมือนพี่ชายที่อ้วนกว่าของ Arduino Uno มีหน่วยความจำ 256 KB (มากกว่า Uno ถึง 8 เท่า) นอกจากนี้ยังมีพินอินพุตและเอาต์พุต 54 พิน โดย 16 อันเป็นพินอะนาล็อก และ 14 พินที่สามารถทำ PWM ได้ อย่างไรก็ตาม ฟังก์ชันเพิ่มเติมทั้งหมดต้องเสียค่าแผงวงจรขนาดใหญ่กว่าเล็กน้อย มันอาจทำให้โครงการของคุณมีประสิทธิภาพมากขึ้น แต่ก็จะทำให้โครงการของคุณใหญ่ขึ้นด้วย ตรวจสอบหน้า Arduino Mega 2560 อย่างเป็นทางการสำหรับรายละเอียดเพิ่มเติม

Arduino Mega ADK

Arduino รุ่นพิเศษนี้เป็น Arduino Mega ที่ได้รับการออกแบบมาโดยเฉพาะสำหรับการเชื่อมต่อกับสมาร์ทโฟน Android นี่ก็เป็นรุ่นดั้งเดิมเช่นกัน

Arduino Yun

Arduino Yun ใช้ชิป ATMega32U4 แทน ATmega328 อย่างไรก็ตาม สิ่งที่ทำให้แตกต่างออกไปคือการเพิ่มไมโครโปรเซสเซอร์ Atheros AR9331 ชิปพิเศษนี้ช่วยให้บอร์ดนี้สามารถรัน Linux นอกเหนือจากระบบปฏิบัติการ Arduino ปกติ หากทั้งหมดนั้นไม่เพียงพอ มันยังมีความสามารถ wifi ในตัวอีกด้วย กล่าวอีกนัยหนึ่ง คุณสามารถตั้งโปรแกรมให้บอร์ดทำสิ่งต่างๆ ได้เหมือนกับที่คุณทำกับ Arduino อื่นๆ แต่คุณยังสามารถเข้าถึงฝั่ง Linux ของบอร์ดเพื่อเชื่อมต่ออินเทอร์เน็ตผ่าน wifi ได้ ฝั่ง Arduino และฝั่ง Linux สามารถสื่อสารไปมาได้อย่างง่ายดาย ทำให้บอร์ดนี้ทรงพลังและหลากหลาย ฉันเพิ่งจะเกาพื้นผิวของสิ่งที่คุณสามารถทำได้ด้วยสิ่งนี้ แต่หากต้องการเรียนรู้เพิ่มเติม ให้ตรวจสอบหน้าอย่างเป็นทางการของ Arduino Yun

Arduino นาโน

หากคุณต้องการให้มีขนาดเล็กกว่าบอร์ด Arduino มาตรฐาน Arduino Nano เหมาะสำหรับคุณ! Arduino รุ่นนี้ใช้ชิป ATmega328 แบบยึดพื้นผิว โดยย่อให้มีขนาดเล็กลงจนสามารถใส่ในพื้นที่แคบได้ นอกจากนี้ยังสามารถใส่ลงในเขียงหั่นขนมได้โดยตรง ทำให้ง่ายต่อการสร้างต้นแบบด้วย

Arduino LilyPad

LilyPad ได้รับการออกแบบมาสำหรับการใช้งานที่สวมใส่ได้และสิ่งทออิเล็กทรอนิกส์ มีจุดประสงค์เพื่อเย็บติดกับผ้าและเชื่อมต่อกับส่วนประกอบอื่นๆ ที่เย็บได้โดยใช้ด้ายนำไฟฟ้า บอร์ดนี้ต้องใช้สายเคเบิลการเขียนโปรแกรมซีเรียล FTDI-USB TTL พิเศษ สำหรับข้อมูลเพิ่มเติม หน้า Arduino LilyPad เป็นจุดเริ่มต้นที่ดี

(โปรดทราบว่าลิงก์บางลิงก์ในหน้านี้เป็นลิงก์ในเครือ ซึ่งจะไม่เปลี่ยนต้นทุนของรายการให้คุณ ฉันนำเงินที่ได้รับไปลงทุนใหม่เพื่อสร้างโครงการใหม่ หากคุณต้องการคำแนะนำสำหรับซัพพลายเออร์รายอื่น โปรดแจ้งให้ฉันทราบ ทราบ.)

ขั้นตอนที่ 2: คุณสมบัติของ Arduino Uno

คุณสมบัติของ Arduino Uno
คุณสมบัติของ Arduino Uno

บางคนคิดว่าบอร์ด Arduino ทั้งหมดเป็นไมโครคอนโทรลเลอร์ แต่สิ่งนี้ไม่ถูกต้อง ที่จริงแล้ว บอร์ด Arduino เป็นแผงวงจรที่ออกแบบมาเป็นพิเศษสำหรับการเขียนโปรแกรมและการสร้างต้นแบบด้วยไมโครคอนโทรลเลอร์ Atmel

ข้อดีของบอร์ด Arduino คือราคาค่อนข้างถูก เสียบเข้ากับพอร์ต USB ของคอมพิวเตอร์ได้โดยตรง และติดตั้งง่ายและใช้งานได้จริง (เมื่อเทียบกับบอร์ดพัฒนาอื่นๆ)

คุณสมบัติที่สำคัญบางประการของ Arduino Uno ได้แก่:

  • การออกแบบโอเพ่นซอร์ส ข้อดีของการเป็นโอเพ่นซอร์สคือมีชุมชนขนาดใหญ่ของผู้คนที่ใช้และแก้ไขปัญหา ซึ่งช่วยให้หาคนมาช่วยดีบักโปรเจ็กต์ได้ง่าย
  • อินเทอร์เฟซ USB ที่ใช้งานง่าย ชิปบนบอร์ดเสียบเข้ากับพอร์ต USB ของคุณโดยตรง และลงทะเบียนบนคอมพิวเตอร์ของคุณเป็นพอร์ตอนุกรมเสมือน สิ่งนี้ทำให้คุณสามารถเชื่อมต่อกับมันได้เหมือนกับเป็นอุปกรณ์ซีเรียล ประโยชน์ของการตั้งค่านี้คือการสื่อสารแบบอนุกรมเป็นโปรโตคอลที่ง่ายมาก (และผ่านการทดสอบตามเวลา) และ USB ทำให้การเชื่อมต่อกับคอมพิวเตอร์สมัยใหม่สะดวกมาก
  • การจัดการพลังงานที่สะดวกมากและการควบคุมแรงดันไฟฟ้าในตัว คุณสามารถเชื่อมต่อแหล่งพลังงานภายนอกได้ถึง 12v และมันจะปรับให้เป็นทั้ง 5v และ 3.3v นอกจากนี้ยังสามารถขับเคลื่อนโดยตรงจากพอร์ต USB โดยไม่ต้องใช้พลังงานจากภายนอก
  • ไมโครคอนโทรลเลอร์ "สมอง" ที่หาง่ายและสกปรกราคาถูก ชิป ATmega328 ขายปลีกในราคา 2.88 ดอลลาร์สำหรับ Digikey มีคุณสมบัติฮาร์ดแวร์ที่ดีมากมาย เช่น ตัวจับเวลา พิน PWM การขัดจังหวะภายนอกและภายใน และโหมดสลีปหลายโหมด ตรวจสอบแผ่นข้อมูลอย่างเป็นทางการสำหรับรายละเอียดเพิ่มเติม
  • นาฬิกา 16 เมกะเฮิร์ตซ์ ทำให้ไม่ใช่ไมโครคอนโทรลเลอร์ที่เร็วที่สุด แต่เร็วพอสำหรับการใช้งานส่วนใหญ่
  • หน่วยความจำแฟลช 32 KB สำหรับจัดเก็บรหัสของคุณ
  • 13 พินดิจิตอลและ 6 พินอะนาล็อก หมุดเหล่านี้ช่วยให้คุณสามารถเชื่อมต่อฮาร์ดแวร์ภายนอกกับ Arduino ของคุณได้ หมุดเหล่านี้เป็นกุญแจสำคัญในการขยายขีดความสามารถในการประมวลผลของ Arduino ไปสู่โลกแห่งความเป็นจริง เพียงเสียบอุปกรณ์และเซ็นเซอร์ของคุณเข้ากับซ็อกเก็ตที่ตรงกับหมุดเหล่านี้ เท่านี้คุณก็พร้อมแล้ว
  • ตัวเชื่อมต่อ ICSP สำหรับการข้ามพอร์ต USB และเชื่อมต่อ Arduino โดยตรงเป็นอุปกรณ์อนุกรม พอร์ตนี้จำเป็นสำหรับการบูตโหลดชิปของคุณใหม่หากเกิดความเสียหายและไม่สามารถพูดคุยกับคอมพิวเตอร์ของคุณได้อีกต่อไป
  • LED ออนบอร์ดที่ติดอยู่กับพินดิจิตอล 13 เพื่อการดีบักโค้ดอย่างรวดเร็ว
  • และสุดท้าย แต่ไม่ท้ายสุด ปุ่มสำหรับรีเซ็ตโปรแกรมบนชิป

สำหรับบทสรุปที่สมบูรณ์ของ Arduino Uno ทั้งหมด โปรดตรวจสอบหน้า Arduino อย่างเป็นทางการ

ขั้นตอนที่ 3: Arduino IDE

Arduino IDE
Arduino IDE

ก่อนที่คุณจะสามารถเริ่มทำอะไรกับ Arduino ได้ คุณต้องดาวน์โหลดและติดตั้ง Arduino IDE (สภาพแวดล้อมการพัฒนาแบบรวม) จากนี้ไปเราจะเรียก Arduino IDE ว่าเป็นโปรแกรมเมอร์ Arduino

โปรแกรมเมอร์ Arduino นั้นใช้ Processing IDE และใช้ภาษาโปรแกรม C และ C++ ที่หลากหลาย

คุณสามารถค้นหา Arduino Programmer เวอร์ชันล่าสุดได้ในหน้านี้

ขั้นตอนที่ 4: เสียบปลั๊ก

เสียบเข้าไป
เสียบเข้าไป

เชื่อมต่อ Arduino กับพอร์ต USB ของคอมพิวเตอร์ของคุณ

โปรดทราบว่าถึงแม้ Arduino จะเสียบเข้ากับคอมพิวเตอร์ของคุณ แต่ก็ไม่ใช่อุปกรณ์ USB ที่แท้จริง บอร์ดมีชิปพิเศษที่ช่วยให้แสดงบนคอมพิวเตอร์ของคุณเป็นพอร์ตอนุกรมเสมือนเมื่อเสียบเข้ากับพอร์ต USB นี่คือเหตุผลสำคัญที่ต้องเสียบปลั๊กบอร์ด เมื่อไม่ได้เสียบบอร์ด พอร์ตอนุกรมเสมือนที่ Arduino ใช้งานอยู่จะไม่ปรากฏ (เนื่องจากข้อมูลทั้งหมดเกี่ยวกับบอร์ดนั้นอยู่บนบอร์ด Arduino)

ยังดีที่รู้ว่า Arduino ทุกตัวมีที่อยู่พอร์ตอนุกรมเสมือนที่ไม่ซ้ำกัน ซึ่งหมายความว่าทุกครั้งที่คุณเสียบบอร์ด Arduino อื่นเข้ากับคอมพิวเตอร์ คุณจะต้องกำหนดค่าพอร์ตอนุกรมที่ใช้งานอยู่ใหม่

Arduino Uno ต้องใช้สาย USB A กับสาย USB B ตัวผู้

ขั้นตอนที่ 5: การตั้งค่า

การตั้งค่า
การตั้งค่า
การตั้งค่า
การตั้งค่า

ก่อนที่คุณจะสามารถเริ่มทำอะไรในโปรแกรมเมอร์ Arduino คุณต้องตั้งค่าประเภทบอร์ดและพอร์ตอนุกรม

ในการตั้งค่าบอร์ด ให้ไปที่ต่อไปนี้:

บอร์ดเครื่องมือ

เลือกเวอร์ชันของบอร์ดที่คุณใช้ เนื่องจากฉันเสียบ Arduino Uno ฉันจึงเลือก "Arduino Uno" อย่างชัดเจน

ในการตั้งค่าพอร์ตอนุกรม ให้ไปที่ต่อไปนี้:

เครื่องมือ Serial Port

เลือกพอร์ตอนุกรมที่มีลักษณะดังนี้:

/dev/tty.usbmodem [หมายเลขสุ่ม]

ขั้นตอนที่ 6: เรียกใช้ Sketch

เรียกใช้ Sketch
เรียกใช้ Sketch
เรียกใช้ Sketch
เรียกใช้ Sketch
เรียกใช้ Sketch
เรียกใช้ Sketch

โปรแกรม Arduino เรียกว่าสเก็ตช์ โปรแกรมเมอร์ Arduino มาพร้อมกับภาพสเก็ตช์ตัวอย่างมากมายที่โหลดไว้ล่วงหน้า นี่เป็นสิ่งที่ดีเพราะแม้ว่าคุณจะไม่เคยตั้งโปรแกรมอะไรเลยในชีวิตของคุณ คุณสามารถโหลดภาพร่างเหล่านี้และให้ Arduino ทำบางสิ่งได้

ในการทำให้ LED เชื่อมโยงกับพินดิจิตอล 13 เพื่อเปิดและปิดการกะพริบ ให้โหลดตัวอย่างการกะพริบ

ตัวอย่างการกะพริบสามารถพบได้ที่นี่:

ไฟล์ ตัวอย่าง พื้นฐาน กะพริบตา

ตัวอย่างการกะพริบโดยทั่วไปตั้งค่าพิน D13 เป็นเอาต์พุตแล้วกะพริบ LED ทดสอบบนบอร์ด Arduino เปิดและปิดทุกวินาที

เมื่อตัวอย่างการกะพริบเปิดขึ้น สามารถติดตั้งลงบนชิป ATMEGA328 ได้โดยกดปุ่มอัปโหลด ซึ่งดูเหมือนลูกศรชี้ไปทางขวา

โปรดสังเกตว่า LED แสดงสถานะการยึดพื้นผิวที่เชื่อมต่อกับพิน 13 บน Arduino จะเริ่มกะพริบ คุณสามารถเปลี่ยนอัตราการกะพริบได้โดยเปลี่ยนความยาวของการหน่วงเวลาแล้วกดปุ่มอัปโหลดอีกครั้ง

ขั้นตอนที่ 7: การตรวจสอบแบบอนุกรม

จอภาพแบบอนุกรม
จอภาพแบบอนุกรม
จอภาพแบบอนุกรม
จอภาพแบบอนุกรม

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

ตัวอย่างเช่น เชื่อมต่อการกวาดตรงกลาง (พินกลาง) ของโพเทนชิออมิเตอร์กับ A0 และต่อพินด้านนอกตามลำดับกับ 5v และกราวด์ ถัดไปอัปโหลดร่างที่แสดงด้านล่าง:

ตัวอย่างไฟล์ 1. Basics AnalogReadSerial

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

ตัวเลขจะอยู่ระหว่าง 0 ถึง 1,023 เหตุผลก็คือขาอนาล็อกกำลังแปลงแรงดันไฟฟ้าระหว่าง 0 ถึง 5V เป็นตัวเลขที่รอบคอบ

ขั้นตอนที่ 8: ดิจิทัลอิน

ดิจิตอลอิน
ดิจิตอลอิน

Arduino มีพินอินพุตสองประเภท ได้แก่ อะนาล็อกและดิจิตอล

เริ่มต้นด้วย ให้ดูที่พินอินพุตดิจิตอล

พินอินพุตดิจิตอลมีสถานะที่เป็นไปได้สองสถานะเท่านั้น ซึ่งเปิดหรือปิด สถานะเปิดและปิดทั้งสองนี้เรียกอีกอย่างว่า:

  • สูงหรือต่ำ
  • 1 หรือ 0
  • 5V หรือ 0V

อินพุตนี้มักใช้เพื่อตรวจจับการมีอยู่ของแรงดันไฟฟ้าเมื่อเปิดหรือปิดสวิตช์

อินพุตดิจิตอลยังสามารถใช้เป็นพื้นฐานสำหรับโปรโตคอลการสื่อสารดิจิทัลจำนวนนับไม่ถ้วน ด้วยการสร้างพัลส์ 5V (สูง) หรือพัลส์ 0V (ต่ำ) คุณสามารถสร้างสัญญาณไบนารี ซึ่งเป็นพื้นฐานของการคำนวณทั้งหมด สิ่งนี้มีประโยชน์สำหรับการพูดคุยกับเซ็นเซอร์ดิจิทัล เช่น เซ็นเซอร์อัลตราโซนิก PING หรือการสื่อสารกับอุปกรณ์อื่นๆ

สำหรับตัวอย่างง่ายๆ ของอินพุตดิจิทัลที่ใช้งาน ให้ต่อสวิตช์จากพินดิจิทัล 2 เป็น 5V, ตัวต้านทาน 10K** จากพินดิจิทัล 2 ลงกราวด์ แล้วรันโค้ดต่อไปนี้:

ตัวอย่างไฟล์ 2.ปุ่มดิจิตอล

**ตัวต้านทาน 10K เรียกว่าตัวต้านทานแบบดึงลง เนื่องจากจะเชื่อมต่อพินดิจิตอลกับกราวด์เมื่อไม่ได้กดสวิตช์ เมื่อกดสวิตช์ การเชื่อมต่อทางไฟฟ้าในสวิตช์จะมีความต้านทานน้อยกว่าตัวต้านทาน และไฟฟ้าจะไม่เชื่อมต่อกับกราวด์อีกต่อไป กระแสไฟฟ้าจะไหลระหว่าง 5V และพินดิจิตอลแทน เนื่องจากไฟฟ้าจะเลือกเส้นทางที่มีความต้านทานน้อยที่สุดเสมอ หากต้องการเรียนรู้เพิ่มเติมเกี่ยวกับเรื่องนี้ โปรดไปที่หน้า Digital Pins

ขั้นตอนที่ 9: อะนาล็อกใน

อะนาล็อกใน
อะนาล็อกใน

นอกเหนือจากพินอินพุตดิจิตอลแล้ว Arduino ยังมีพินอินพุตแบบอะนาล็อกจำนวนหนึ่ง

พินอินพุตแบบอะนาล็อกใช้สัญญาณแอนะล็อกและทำการแปลงแอนะล็อกเป็นดิจิทัล (ADC) 10 บิตเพื่อเปลี่ยนเป็นตัวเลขระหว่าง 0 ถึง 1023 (ขั้นตอน 4.9mV)

อินพุตประเภทนี้เหมาะสำหรับการอ่านเซ็นเซอร์ตัวต้านทาน เหล่านี้โดยทั่วไปคือเซ็นเซอร์ที่ให้ความต้านทานต่อวงจร นอกจากนี้ยังเหมาะสำหรับการอ่านสัญญาณแรงดันไฟฟ้าที่แตกต่างกันระหว่าง 0 ถึง 5V สิ่งนี้มีประโยชน์เมื่อเชื่อมต่อกับวงจรแอนะล็อกประเภทต่างๆ

หากคุณทำตามตัวอย่างในขั้นตอนที่ 7 สำหรับการเชื่อมต่อจอภาพแบบอนุกรม แสดงว่าคุณได้ลองใช้พินอินพุตแบบอะนาล็อกแล้ว

ขั้นตอนที่ 10: ดิจิตอลเอาท์

ดิจิตอลเอาท์
ดิจิตอลเอาท์

พินดิจิตอลขาออกสามารถตั้งค่าเป็น HIGH (5v) หรือ LOW (0v) ซึ่งจะทำให้คุณสามารถเปิดและปิดสิ่งต่างๆ ได้

นอกเหนือจากการเปิดและปิดสิ่งต่าง ๆ (และทำให้ไฟ LED กะพริบ) เอาต์พุตรูปแบบนี้สะดวกสำหรับการใช้งานจำนวนมาก

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

การสื่อสารดิจิทัลเป็นหัวข้อขั้นสูง แต่หากต้องการทราบแนวคิดทั่วไปเกี่ยวกับสิ่งที่สามารถทำได้ โปรดดูที่หน้า การเชื่อมต่อกับฮาร์ดแวร์

หากคุณทำตามตัวอย่างในขั้นตอนที่ 6 เพื่อให้ LED กะพริบ แสดงว่าคุณได้ลองใช้พินเอาต์พุตดิจิทัลแล้ว

ขั้นตอนที่ 11: แอนะล็อกเอาท์

แอนะล็อกเอาท์
แอนะล็อกเอาท์

ดังที่ได้กล่าวไว้ก่อนหน้านี้ Arduino มีฟังก์ชันพิเศษมากมายในตัว หนึ่งในฟังก์ชันพิเศษเหล่านี้คือการมอดูเลตความกว้างพัลส์ ซึ่งเป็นวิธีที่ Arduino สามารถสร้างเอาต์พุตแบบแอนะล็อกได้

การปรับความกว้างพัลส์ - หรือ PWM สำหรับระยะสั้น - ทำงานโดยการหมุนพิน PWM สูง (5V) และต่ำ (0V) อย่างรวดเร็วเพื่อจำลองสัญญาณแอนะล็อก ตัวอย่างเช่น หากคุณต้องเปิดและปิดไฟ LED กะพริบเร็วพอ (แต่ละอันประมาณห้ามิลลิวินาที) ดูเหมือนว่าจะมีความสว่างโดยเฉลี่ยและดูเหมือนว่าจะได้รับพลังงานเพียงครึ่งเดียว อีกวิธีหนึ่ง หากเปิดไฟกะพริบเป็นเวลา 1 มิลลิวินาที แล้วกะพริบเป็น 9 มิลลิวินาที ไฟ LED จะดูเหมือนสว่าง 1/10 และได้รับแรงดันไฟฟ้าเพียง 1/10 เท่านั้น

PWM เป็นกุญแจสำคัญสำหรับการใช้งานจำนวนมากรวมถึงการสร้างเสียง การควบคุมความสว่างของแสง และการควบคุมความเร็วของมอเตอร์

สำหรับคำอธิบายเชิงลึก โปรดดูความลับของหน้า PWM

หากต้องการลองใช้ PWM ด้วยตัวเอง ให้เชื่อมต่อตัวต้านทาน LED และ 220 โอห์มกับพินดิจิตอล 9 โดยต่ออนุกรมกับกราวด์ รันโค้ดตัวอย่างต่อไปนี้:

ตัวอย่างไฟล์ 3. Analog Fading

ขั้นตอนที่ 12: เขียนโค้ดของคุณเอง

เขียนโค้ดของคุณเอง
เขียนโค้ดของคุณเอง

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

สิ่งสำคัญที่ควรทราบเมื่อเขียนโค้ดของคุณเอง:

โปรแกรม Arduino เรียกว่าสเก็ตช์

รหัสทั้งหมดในร่าง Arduino ถูกประมวลผลจากบนลงล่าง

สเก็ตช์ Arduino โดยทั่วไปจะแบ่งออกเป็นห้าส่วน

  1. สเก็ตช์มักจะเริ่มต้นด้วยส่วนหัวที่อธิบายว่าร่างนั้นกำลังทำอะไรอยู่ และใครเป็นคนเขียน
  2. ถัดไป มันมักจะกำหนดตัวแปรส่วนกลาง บ่อยครั้งนี่คือที่ที่ชื่อคงที่ให้กับหมุด Arduino ต่างๆ
  3. หลังจากตั้งค่าตัวแปรเริ่มต้นแล้ว Arduino จะเริ่มรูทีนการตั้งค่า ในฟังก์ชันการตั้งค่า เราตั้งค่าเงื่อนไขเริ่มต้นของตัวแปรเมื่อจำเป็น และเรียกใช้โค้ดเบื้องต้นใดๆ ที่เราต้องการเรียกใช้เพียงครั้งเดียว นี่คือจุดเริ่มต้นของการสื่อสารซีเรียล ซึ่งจำเป็นสำหรับการรันมอนิเตอร์แบบอนุกรม
  4. จากฟังก์ชันการตั้งค่า เราไปที่รูทีนลูป นี่คือกิจวัตรหลักของการร่างภาพ นี่ไม่ใช่แค่ที่ที่โค้ดหลักของคุณไป แต่จะถูกดำเนินการซ้ำแล้วซ้ำอีก ตราบใดที่สเก็ตช์ยังคงทำงานอยู่
  5. ด้านล่างของรูทีนลูป มักจะมีฟังก์ชันอื่นๆ อยู่ในรายการ ฟังก์ชันเหล่านี้กำหนดโดยผู้ใช้และเปิดใช้งานเมื่อเรียกในรูทีนการตั้งค่าและลูปเท่านั้น เมื่อมีการเรียกใช้ฟังก์ชันเหล่านี้ Arduino จะประมวลผลโค้ดทั้งหมดในฟังก์ชันจากบนลงล่าง จากนั้นจึงย้อนกลับไปยังบรรทัดถัดไปในภาพร่างซึ่งเหลือไว้เมื่อเรียกใช้ฟังก์ชัน ฟังก์ชันต่างๆ นั้นดีเพราะช่วยให้คุณเรียกใช้รูทีนมาตรฐานได้ซ้ำแล้วซ้ำเล่า โดยไม่ต้องเขียนโค้ดบรรทัดเดียวกันซ้ำแล้วซ้ำอีก คุณสามารถเรียกใช้ฟังก์ชันได้หลายครั้ง ซึ่งจะทำให้หน่วยความจำบนชิปว่างมากขึ้น เนื่องจากรูทีนของฟังก์ชันเขียนเพียงครั้งเดียว นอกจากนี้ยังทำให้โค้ดอ่านง่ายขึ้นอีกด้วย หากต้องการเรียนรู้วิธีสร้างฟังก์ชันของคุณเอง โปรดดูหน้านี้

จากทั้งหมดที่กล่าวมา มีเพียงสองส่วนของร่างที่บังคับคือรูทีนการตั้งค่าและลูป

รหัสจะต้องเขียนด้วยภาษา Arduino ซึ่งอ้างอิงจากภาษาซี

คำสั่งเกือบทั้งหมดที่เขียนด้วยภาษา Arduino ต้องลงท้ายด้วย;

Conditionals (เช่น if statement และ for loops) ไม่จำเป็นต้องมี;

Conditionals มีกฎของตัวเองและสามารถพบได้ใน "โครงสร้างการควบคุม" บนหน้าภาษา Arduino

ตัวแปรคือช่องเก็บของสำหรับตัวเลข คุณสามารถส่งค่าเข้าและออกจากตัวแปรได้ ต้องกำหนดตัวแปร (ระบุไว้ในโค้ด) ก่อนจึงจะสามารถใช้ได้และต้องมีประเภทข้อมูลที่เกี่ยวข้อง หากต้องการเรียนรู้ข้อมูลพื้นฐานบางประเภท ให้ตรวจทานหน้าภาษา

ตกลง! สมมติว่าเราต้องการเขียนโค้ดที่อ่านโฟโตเซลล์ที่เชื่อมต่อกับพิน A0 และใช้การอ่านที่เราได้รับจากโฟโตเซลล์เพื่อควบคุมความสว่างของ LED ที่เชื่อมต่อกับพิน D9

อันดับแรก เราต้องการเปิดภาพร่าง BareMinimum ซึ่งสามารถดูได้ที่:

ตัวอย่างไฟล์ 1. Basic BareMinimum

BareMinimum Sketch ควรมีลักษณะดังนี้:

การตั้งค่าเป็นโมฆะ () {

// ใส่รหัสการตั้งค่าของคุณที่นี่ เพื่อเรียกใช้ครั้งเดียว: } void loop() { // ใส่รหัสหลักของคุณที่นี่ เพื่อเรียกใช้ซ้ำ: } ต่อไป ให้ใส่ส่วนหัวของโค้ดเพื่อให้คนอื่นรู้ว่าเรากำลังทำอะไร เพราะอะไร และภายใต้เงื่อนไขใด

/*

LED Dimmer โดย Genius Arduino Programmer 2012 ควบคุมความสว่างของ LED บนพิน D9 ตามการอ่านโฟโตเซลล์บนพิน A0 รหัสนี้อยู่ในโดเมนสาธารณะ */ void setup() { // ใส่รหัสการตั้งค่าของคุณที่นี่เพื่อเรียกใช้ ครั้งเดียว: } void loop() { // ใส่รหัสหลักของคุณที่นี่ เพื่อเรียกใช้ซ้ำ: } เมื่อเรายกกำลังสองแล้ว ให้เรากำหนดชื่อพิน และสร้างตัวแปร

/*

LED Dimmer โดย Genius Arduino Programmer 2012 ควบคุมความสว่างของ LED บนพิน D9 ตามการอ่านโฟโตเซลล์บนพิน A0 รหัสนี้อยู่ในโดเมนสาธารณะ */ // ตั้งชื่อพินอะนาล็อก 0 ชื่อคงที่ const int analogInPin = A0; // ตั้งชื่อพินดิจิตอล 9 ชื่อคงที่ const int LEDPin = 9; //ตัวแปรสำหรับการอ่าน photocell int photocell; void setup() { // ใส่รหัสการตั้งค่าของคุณที่นี่ เพื่อเรียกใช้ครั้งเดียว: } void loop() { // ใส่รหัสหลักของคุณที่นี่ เพื่อเรียกใช้ซ้ำ: } เมื่อตั้งค่าตัวแปรและชื่อพินแล้ว ให้เราเขียนโค้ดจริง

/*

LED Dimmer โดย Genius Arduino Programmer 2012 ควบคุมความสว่างของ LED บนพิน D9 ตามการอ่านโฟโตเซลล์บนพิน A0 รหัสนี้อยู่ในโดเมนสาธารณะ */ // ตั้งชื่อพินอะนาล็อก 0 ชื่อคงที่ const int analogInPin = A0; // ตั้งชื่อพินดิจิตอล 9 ชื่อคงที่ const int LEDPin = 9; //ตัวแปรสำหรับการอ่าน photocell int photocell; การตั้งค่าเป็นโมฆะ () { // ไม่มีอะไรที่นี่ตอนนี้ } วงเป็นโมฆะ () { // อ่านอนาล็อกในพินและตั้งค่าการอ่านเป็นตัวแปรตาแมว photocell = analogRead (analogInPin); //ควบคุมพิน LED โดยใช้ค่าที่อ่านโดย photocell analogWrite (LEDPin, photocell); // หยุดรหัสชั่วคราวเป็นเวลา 1/10 วินาที ///1 วินาที = 1,000 ล่าช้า (100); } หากเราต้องการดูว่าขาอะนาล็อกอ่านจากโฟโตเซลล์เป็นตัวเลขใด เราจะต้องใช้จอภาพแบบอนุกรม มาเปิดใช้งานพอร์ตอนุกรมและส่งออกหมายเลขเหล่านั้น

/*

LED Dimmer โดย Genius Arduino Programmer 2012 ควบคุมความสว่างของ LED บนพิน D9 ตามการอ่านโฟโตเซลล์บนพิน A0 รหัสนี้อยู่ในโดเมนสาธารณะ */ // ตั้งชื่อพินอะนาล็อก 0 ชื่อคงที่ const int analogInPin = A0; // ตั้งชื่อพินดิจิตอล 9 ชื่อคงที่ const int LEDPin = 9; //ตัวแปรสำหรับการอ่าน photocell int photocell; การตั้งค่าเป็นโมฆะ () { Serial.begin (9600); } วงเป็นโมฆะ () {// อ่านอนาล็อกในพินและตั้งค่าการอ่านเป็นตัวแปรตาแมว photocell = analogRead (analogInPin); //พิมพ์ค่า photocell ลงในจอภาพอนุกรม Serial.print("Photocell = "); Serial.println(ตาแมว); //ควบคุมพิน LED โดยใช้ค่าที่อ่านโดย photocell analogWrite (LEDPin, photocell); // หยุดรหัสชั่วคราวเป็นเวลา 1/10 วินาที ///1 วินาที = 1,000 ล่าช้า (100); }สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการกำหนดรหัส ไปที่หน้าฐานราก หากคุณต้องการความช่วยเหลือเกี่ยวกับภาษา Arduino หน้าภาษาคือที่สำหรับคุณ

นอกจากนี้ หน้าตัวอย่างสเก็ตช์ยังเป็นสถานที่ที่ดีในการเริ่มต้นยุ่งกับโค้ด อย่ากลัวที่จะเปลี่ยนแปลงสิ่งต่างๆ และทดลอง

ขั้นตอนที่ 13: โล่

โล่
โล่

ชิลด์คือบอร์ดเสริมส่วนขยายที่เสียบเข้ากับ Arduino Uno และให้ฟังก์ชันพิเศษ

เนื่องจาก Arduino เป็นฮาร์ดแวร์แบบเปิด ใครก็ตามที่มีความโน้มเอียงสามารถสร้าง Arduino Shield ได้ฟรีสำหรับงานที่พวกเขาต้องการทำให้สำเร็จ ด้วยเหตุนี้จึงมี Arduino Shields จำนวนมากอยู่ในป่า คุณสามารถค้นหารายการ Arduino shields ที่เพิ่มมากขึ้นเรื่อยๆ ในสนามเด็กเล่น Arduino โปรดทราบว่าจะมีเกราะป้องกันมากกว่าที่คุณจะพบในหน้านั้น (เช่นเคย Google คือเพื่อนของคุณ)

เพื่อให้คุณเข้าใจถึงความสามารถของ Arduino Shields เพียงเล็กน้อย ให้ดูบทแนะนำเหล่านี้เกี่ยวกับวิธีใช้ Arduino Shields อย่างเป็นทางการสามตัว:

  • การ์ด SD ไร้สาย
  • อีเธอร์เน็ตชิลด์
  • มอเตอร์ชิลด์

ขั้นตอนที่ 14: สร้างวงจรภายนอก

การสร้างวงจรภายนอก
การสร้างวงจรภายนอก

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

หากต้องการเริ่มต้นใช้งานอุปกรณ์อิเล็กทรอนิกส์ โปรดไปที่ Basic Electronics Instructable

ขั้นตอนที่ 15: ก้าวต่อไป

Going Beyond
Going Beyond

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

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

หากคุณต้องการแรงบันดาลใจสำหรับโปรเจ็กต์เริ่มต้นแสนสนุก ลองดูคู่มือ Arduino Projects 20 อันที่เหลือเชื่อ

สำหรับรายการขนาดใหญ่หรือโครงการ Arduino Arduino Channel เป็นจุดเริ่มต้นที่ดี

แค่นั้นแหละ. คุณอยู่คนเดียว

ขอให้โชคดีและแฮ็คอย่างมีความสุข!

ภาพ
ภาพ

คุณพบว่าสิ่งนี้มีประโยชน์ สนุก หรือสนุกสนานหรือไม่ ติดตาม @madeineuphoria เพื่อดูโครงการล่าสุดของฉัน

แนะนำ: