Arduino

คำถาม & คำตอบสำหรับนักพัฒนาซอฟต์แวร์และซอฟต์แวร์โอเพ่นซอร์สที่เข้ากันได้กับ Arduino

12
ฉันสามารถโปรแกรมสำหรับ Arduino โดยไม่ต้องมีบอร์ดจริงหรือไม่?
ฉันต้องการเริ่มต้นพัฒนาโครงการ Arduino พื้นฐานบางอย่าง แต่ฉันยังไม่ได้เป็นเจ้าของบอร์ด Arduino มีวิธีที่ฉันสามารถเขียนรหัสของฉันและเลียนแบบ / ทดสอบโดยใช้คอมพิวเตอร์เดสก์ท็อปดังนั้นหลังจากที่บอร์ดของฉันมาถึงฉันต้องอัปโหลดและเรียกใช้โครงการของฉันหรือไม่
205 emulation  testing 

19
“ avrdude: stk500_getsync (): ไม่ซิงค์: resp = 0x00,” aka เพื่อนบางคนชื่อ Avr จะไม่ปล่อยให้ฉันอัปโหลดโปรแกรมของฉัน
ฉันทำโปรแกรมที่ยอดเยี่ยมเมื่อวันก่อนและฉันต้องการอัปโหลดไปยัง Arduino ของฉัน หลังจากคลิกปุ่มอัพโหลดเพื่อนเฉลี่ยที่ชื่อ avr ก็มาหาฉันแล้วหยุดพูดว่า: avrdude: stk500_getsync (): ไม่ซิงค์: resp = 0x00 สิ่งที่ฉันต้องทำคือเพียงอัปโหลดโปรแกรมของฉัน แต่ avr จะไม่ยอมให้ฉัน เขาเป็นคนที่เข้าใจไม่ได้ดังนั้นใครสามารถบอกฉันได้ว่าเขาพยายามพูดอะไรและจะกำจัดเขาได้อย่างไร เช่น: เมื่อใดก็ตามที่ฉันพยายามอัปโหลดโปรแกรมไปยัง Arduino ฉันจะได้รับข้อความแสดงข้อผิดพลาดนี้: avrdude: stk500_getsync (): ไม่ซิงค์: resp = 0x00 นี่หมายถึงอะไรและฉันจะแก้ไขได้อย่างไร
98 uploading  avrdude  faq 

20
IDEs อื่นสำหรับ Arduino คืออะไร
Arduino IDE พื้นฐานขาดความซับซ้อนมากมายที่มีอยู่ใน IDE อื่น ๆ เช่นการเติมโค้ดการยุบโค้ดการจัดระเบียบโฟลเดอร์ ฯลฯ มี IDE อื่น ๆ ที่อนุญาตการเขียนโปรแกรมใน C หรือ C ++ และปรับปรุงในด้านเหล่านี้หรือไม่?

3
ฉันปิด Arduino Uno ของฉันแล้วหรือยัง? ปัญหาในการอัปโหลดไปยังบอร์ด
ฉันไม่สามารถอัพโหลดภาพร่างไปยัง Arduino Uno ของฉันได้ ฉัน "ก่ออิฐ" หรือยัง ฉันสามารถทำตามขั้นตอนอะไรเพื่อแก้ไขสิ่งที่ผิดพลาด ฉันจะแก้ไขได้อย่างไร

9
C ++ กับภาษา Arduino?
อะไรคือข้อดีของแต่ละภาษาเมื่อใช้ Arduino? ฉันคิดว่านี่เป็นคำถามทั่วไปที่ดี แต่ฉันจะเพิ่มอีกเล็กน้อยเกี่ยวกับสาเหตุที่ฉันถามว่ามีใครต้องการให้คำแนะนำแก่ฉันหรือไม่ ฉันมีประสบการณ์ในภาษาที่ได้รับการประมวลผลล่วงหน้าเช่น JavaScript, PHP และเล่นซอกับภาษาอย่าง Java และ Visual Basic กล่าวอีกนัยหนึ่งฉันรู้เทคนิคการเขียนโปรแกรมและการวางแนววัตถุคลาสสิกและต้นแบบ แต่ไม่มีอะไรเกี่ยวกับการสื่อสารโดยตรงกับฮาร์ดแวร์ ฉันทำอ็อคโทคอปเตอร์และฉันคิดว่าวิธีการเชิงวัตถุจะง่ายที่สุด (ซอฟต์แวร์จะมีคุณสมบัติมากมาย ... ) แต่ฉันไม่เคยเขียนใน C ++ เนื่องจากนี่เป็นเว็บไซต์ถามตอบที่ควรช่วยเหลือผู้อื่นคำถามทั่วไปที่นำเสนอในตอนแรกจึงมีความสำคัญมาก แต่ฉันขอขอบคุณสำหรับความคิดเห็นใด ๆ เกี่ยวกับสถานการณ์ของฉัน
81 c++  arduino-ide 

7
วิธีการจัดระเบียบโครงสร้างโครงการ Arduino ของฉันสำหรับการควบคุมแหล่งที่ง่าย?
นานมาแล้วที่ฉันกำลังมองหาคำตอบที่ดีสำหรับคำถามนี้ โดยทั่วไปแล้วโครงการ Arduino ใด ๆ แต่โครงการที่ง่ายที่สุดจะรวมถึง: ไฟล์ซอร์สโค้ดหลัก MyProject.ino ห้องสมุดเฉพาะสำหรับโครงการ ( MyProjectLibrary1.h, MyProjectLibrary1.cpp... ) ห้องสมุดบุคคลที่สาม (โดยทั่วไปเป็นโอเพนซอร์สฟรีเพิ่มด้วยตนเองไปยังไดเรกทอรีห้องสมุด Arduino) แผนผัง, PCB ไดอะแกรม เอกสาร ... ทั้งหมดนี้ทำให้เป็นการยากที่จะเก็บรหัสและเอกสารทั้งหมดของโครงการหนึ่งภายใต้การจัดการรหัสที่มา (เช่น Subversion, Git หรือ GitHub) การจัดการการควบคุมแหล่งที่มาของโครงการของคุณหมายถึงการจัดการเวอร์ชันของไฟล์ทั้งหมดที่ใช้โดยโครงการรวมถึงห้องสมุดบุคคลที่สาม ตอนนี้สำหรับโครงการเดียวฉันต้องกำหนดโครงสร้างไดเรกทอรีที่: รวมไฟล์โครงการทั้งหมดตามที่อธิบายไว้ข้างต้น ฉันสามารถส่งมอบเครื่องมือการจัดการรหัสที่มา (รวมถึงบุคคลที่สาม) ฉันสามารถเช็คเอาต์ที่ใดก็ได้ในฮาร์ดไดรฟ์ของฉันและสร้างโครงการจากที่นั่น (ต้องเป็นสถานที่เดียวตามที่กำหนดโดย Arduino IDE) ฉันสามารถ zip ลงในไฟล์เก็บถาวรในตัวที่ฉันสามารถส่งให้เพื่อนเพื่อให้เขาสร้างได้ง่ายที่สุด (ไม่ต้องดาวน์โหลดด้วยตนเองเพิ่มเติม) สิ่งที่ฉันพบว่าเป็นเรื่องยากสำหรับโครงการ Arduino คือการจัดการการพึ่งพาไลบรารีภายนอก ผู้พัฒนาโปรเจ็กต์ Java มีที่เก็บmavenสำหรับสิ่งนั้นและช่วยในการจัดการคลังข้อมูลภายนอกทั้งหมด แต่เราไม่มีระบบที่เทียบเท่าสำหรับห้องสมุด Arduino ฉันสนใจที่จะรู้ว่าผู้สร้างโปรเจ็กต์ Arduino …

4
ฉันจะจัดการโรลโอเวอร์ของ millis () ได้อย่างไร
ฉันต้องอ่านเซ็นเซอร์ทุก ๆ ห้านาที แต่เนื่องจากร่างของฉันมีงานอื่นให้ทำฉันไม่สามารถdelay()อ่านได้ มีการสอนแบบกะพริบโดยไม่ชักช้าแนะนำฉันรหัสตามบรรทัดเหล่านี้: void loop() { unsigned long currentMillis = millis(); // Read the sensor when needed. if (currentMillis - previousMillis >= interval) { previousMillis = currentMillis; readSensor(); } // Do other stuff... } ปัญหาคือว่าmillis()จะย้อนกลับไปที่ศูนย์หลังจากประมาณ 49.7 วัน เนื่องจากแบบร่างของฉันมีวัตถุประสงค์เพื่อให้ทำงานได้นานกว่านั้นฉันต้องตรวจสอบให้แน่ใจว่าการวางเมาส์แบบโรลโอเวอร์ไม่ทำให้ร่างของฉันล้มเหลว ฉันสามารถตรวจสอบเงื่อนไขการโรลโอเวอร์ ( currentMillis < previousMillis) ได้อย่างง่ายดายแต่ฉันไม่แน่ใจว่าต้องทำอย่างไร ดังนั้นคำถามของฉัน: อะไรจะเป็นวิธีที่เหมาะสม / ง่ายที่สุดในการจัดการ …

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

13
มีวิธีที่จะมีมากกว่า 14 พินเอาต์พุตบน arduino หรือไม่?
เป็นไปได้หรือไม่ที่จะมีขาออกมากกว่า 14 ขาบน Arduino ฉันกำลังทำงานในโครงการที่ฉันต้องใช้ไฟ LED หลายดวงแยกกัน ฉันมี Arduino Uno เท่านั้นและฉันไม่ต้องการรับเมกะ
52 pins  arduino-uno 

11
ฉันจะแยกสตริงที่เข้ามาได้อย่างไร
ฉันกำลังส่งรายการตำแหน่งเซอร์โวผ่านการเชื่อมต่อแบบอนุกรมไปยัง arduino ในรูปแบบต่อไปนี้ 1:90&2:80&3:180 ซึ่งจะแยกเป็น: servoId : Position & servoId : Position & servoId : Position ฉันจะแบ่งค่าเหล่านี้เป็นอย่างไรและแปลงเป็นจำนวนเต็มได้อย่างไร

8
ใช้ malloc () และฟรี () เป็นความคิดที่ไม่ดีจริงๆใน Arduino หรือไม่?
การใช้งานmalloc()และfree()ดูเหมือนว่าค่อนข้างหายากในโลก Arduino มันถูกใช้ใน AVR C บริสุทธิ์บ่อยกว่า แต่ก็ยังมีความระมัดระวัง มันเป็นความคิดที่ดีที่จะใช้malloc()และfree()กับ Arduino?

17
วิธีการกระตุ้นการเตือนเมื่อกระดาษชำระต่ำ
ใครก็ตามที่มีลูกรู้ว่าพวกเขาไม่เคยช่วยกระดาษชำระ ใครรู้วิธีการติดตามเมื่อมันต่ำหรือออกและเสียงปลุกเสียง? ฉันไม่รู้ว่าจะใช้เซ็นเซอร์ตัวใดที่อาจช่วยได้ บางคนที่นึกถึง: โดยน้ำหนักโดยการสะท้อน (สีของกระดาษ) หรือเลเซอร์ tripwire - ทั้งหมดขวาบนหลอด ฉันไม่สนใจที่จะสร้างมัน แต่ฉันไม่รู้ว่าเซ็นเซอร์ตัวใด ใครรู้ว่าจะใช้?

11
Arduino สามารถใช้งานได้ตลอด 24/7 หรือไม่?
ฉันกำลังสร้างเว็บเซิร์ฟเวอร์ Arduino ที่เรียบง่ายและฉันต้องการให้มันเปิดอยู่ตลอดเวลา ดังนั้นจึงต้องอดทนทำงานอย่างต่อเนื่อง ฉันใช้ Arduino Uno กับ Ethernet Shield มันใช้พลังงานจากแหล่งจ่ายไฟแบบ 5V @ 1A ที่เรียบง่าย คำถามของฉัน: ฉันจะมีปัญหาใด ๆ ที่ปล่อยให้ Arduino เปิดตลอดเวลาหรือไม่ มีบอร์ด Arduino อื่นที่ดีกว่าที่แนะนำสำหรับเรื่องนี้? มีข้อควรระวังใดบ้างที่ฉันจำเป็นต้องฟังเกี่ยวกับเรื่องนี้หรือไม่?

12
ฉันจะพิมพ์หลายตัวแปรในสตริงได้อย่างไร
สมมติว่าฉันมีตัวแปรบางอย่างที่ฉันต้องการพิมพ์ไปยังเทอร์มินัลวิธีที่ง่ายที่สุดในการพิมพ์ในสตริงคืออะไร? ขณะนี้ฉันทำอะไรแบบนี้: Serial.print("Var 1:");Serial.println(var1); Serial.print(" Var 2:");Serial.println(var2); Serial.print(" Var 3:");Serial.println(var3); มีวิธีที่ดีกว่าในการทำเช่นนี้?

2
จะเกิดอะไรขึ้นถ้าฉันจ่ายพลังงาน Arduino ทั้ง USB และแรงดันไฟฟ้าภายนอกพร้อมกัน?
ฉันเป็นผู้ใช้ Arduino ใหม่ ฉันไม่แน่ใจว่าฉันสามารถเชื่อมต่อทั้ง USB และแหล่งจ่ายไฟภายนอกผ่านอะแดปเตอร์ไฟฟ้าไปยัง Arduino ได้หรือไม่ สิ่งนี้จะเผาตัวควบคุมหรือไม่ โดยทั่วไปฉันต้องการปิดเครื่องคอมพิวเตอร์โดยอัตโนมัติหลังจากบันทึกเอกสารที่เปิดทั้งหมดก่อนที่แบตเตอรี่ UPS ของฉันจะดับเมื่อใดก็ตามที่ฉันไม่ได้อยู่ที่นั่นเพื่อปิดเครื่องด้วยตนเอง ฉันพยายามแจ้งคอมพิวเตอร์เกี่ยวกับความล้มเหลวของแหล่งจ่ายไฟหลัก - AC 220V 50 Hz (แจ้งเตือน / ส่งสัญญาณเมื่อไฟฟ้าดับ) ผ่าน USB โดยใช้ Arduino ฉันคิดว่าสามารถทำได้โดยใช้พินของแหล่งจ่ายไฟแรงดันภายนอก เมื่อใดก็ตามที่ไฟฟ้าดับลงหมุดไฟของแหล่งจ่ายไฟแรงดันภายนอกจะลดลงถึง 0 V จาก 7 V ค่าของแรงดันไฟฟ้าสามารถอ่านได้โดยใช้ซอฟต์แวร์ ) Arduino จะยังคงถูกเปิดใช้งานเนื่องจากเชื่อมต่อกับ USB ของคอมพิวเตอร์และสื่อสารกับคอมพิวเตอร์เกี่ยวกับความล้มเหลวของพลังงาน

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.