คำถามติดแท็ก programming

กระบวนการของการออกแบบและการเขียนซอร์สโค้ดเป็นส่วนหนึ่งของโปรแกรม (หรือร่าง) สำหรับ Arduino สำหรับคำถามเกี่ยวกับการอัปโหลดรหัสไปยังบอร์ด Arduino ให้ใช้แท็ก [อัพโหลด] แทน

2
ฟังก์ชั่นแบบอะซิงโครนัสเรียกใช้ในร่าง Arduino
ในร่าง Arduino มีวิธีที่จะทำให้ฟังก์ชั่นแบบอะซิงโครนัสเรียกภายในลูปหรือไม่? ชอบฟังคำขอผ่าน HTTP Server และประมวลผลพวกเขาในไม่ปิดกั้นทาง

5
ตัวเลือกการเขียนโปรแกรมนอกเหนือจาก C ++
ฉันสามารถตั้งโปรแกรม Arduino โดยใช้ภาษาการเขียนโปรแกรมอื่นที่ไม่ใช่ C ++ ได้ไหม? ถ้าใช่ภาษาการเขียนโปรแกรมใด ฉันต้องใช้ซอฟต์แวร์อะไรในการรวบรวมและโหลดรหัสของฉันลงบน Arduino

4
มีการตั้งค่าและลูปเพื่อความสะดวกหรือไม่
Arduino ภาพร่างมักจะมีคุณสมบัติsetupและloopฟังก์ชั่น ฟังก์ชั่นเหล่านี้มีไว้เพื่อความสะดวกเท่านั้นหรือมีวัตถุประสงค์พิเศษจริง ๆ หรือไม่? (เช่น: เป็นการดำเนินการบางอย่างที่ไม่อนุญาตหรืออนุญาตในการตั้งค่าและลูป) โค้ดสองชิ้นนี้เทียบเท่าหรือไม่: คลาสสิก void setup() { pinMode(LED_BUILTIN, OUTPUT); } void loop() { digitalWrite(LED_BUILTIN, HIGH); delay(1000); digitalWrite(LED_BUILTIN, LOW); delay(1000); } ไม่มีลูป void setup() { pinMode(LED_BUILTIN, OUTPUT); while(true) { digitalWrite(LED_BUILTIN, HIGH); delay(1000); digitalWrite(LED_BUILTIN, LOW); delay(1000); } } void loop() { } เป็นไปได้หรือไม่ที่จะเขียนโค้ดโดยไม่ต้องตั้งค่าหรือวนรอบตัวอย่างเช่นmainวิธีการหรือจุดเข้าใช้งานอื่น ๆ
13 programming  c++ 

5
ลดความล่าช้าระหว่าง arduino และร่างการประมวลผลบนคอมพิวเตอร์ของฉัน
ขณะนี้ฉันกำลังใช้โปรเจค # 14 ของหนังสือโครงการ Arduino ฉันพยายามควบคุมร่างการประมวลผลบนแล็ปท็อปของฉันโดยใช้ Arduino สามารถทำได้โดยใช้โพเทนชิออมิเตอร์เพื่อควบคุมพื้นหลังของภาพ รหัส Arduino: void setup(){ Serial.begin(9600); } void loop(){ Serial.write(analogRead(A0)/4); } การประมวลผล: //imports serial library import processing.serial.*; //setups the serial object Serial myPort; //creates an object for the image PImage logo; //variable to store background color int bgcolor = 0; void setup(){ colorMode(HSB,255); …

4
รับตัวเลขสุ่มอย่างแท้จริงใน Arduino
อะไรคือวิธีที่ดีที่สุดในการรับจำนวนสุ่มอย่างแท้จริง (ตรงข้ามกับหลอก) ใน Arduino หรืออย่างน้อยที่สุดก็ประมาณที่ดีที่สุด? จากความเข้าใจของฉันฟังก์ชั่น randomSeed (analogRead (x)) มันไม่สุ่มพอ หากเป็นไปได้ควรใช้วิธีการตั้งค่า Arduino พื้นฐานเพียงอย่างเดียว (ไม่มีเซ็นเซอร์เพิ่มเติม) โซลูชั่นที่มาพร้อมกับเซ็นเซอร์ภายนอกสามารถใช้ได้หากพวกเขาปรับปรุงการสุ่มอย่างมีนัยสำคัญมากกว่าการตั้งค่าพื้นฐาน

2
Arduino เป็น ISP โดยไม่ต้องใช้คอมพิวเตอร์
มีใครเห็นหรือรู้วิธีการโหลดไว้ล่วงหน้า (ใช้คอมพิวเตอร์หรืออะไรก็ตาม) เป็นเฟิร์มแวร์เป็นข้อมูลไปยัง arduino หนึ่งที่ตั้งค่าให้ทำงานเป็น isp แล้วใช้ arduino นั้นต่ออินเตอร์เฟส isp เข้ากับอีกอันและอัพโหลดเฟิร์มแวร์ มีความชัดเจน - ฉันกำลังมองหาวิธีที่จะทำให้การอัปโหลดภาพร่างของ Arduino เป็นไปได้โดยไม่ต้องเชื่อมต่อโดยตรงกับคอมพิวเตอร์เป่าเต็ม โดยอุดมคติแล้วขั้นตอนที่เกี่ยวข้องจะเป็น: เขียนร่าง / เฟิร์มแวร์ใหม่ รวบรวมเฟิร์มแวร์ เขียนสำเนาเฟิร์มแวร์ลงบน Arduino A เป็นข้อมูล (Arduino A ถูกตั้งค่าให้ทำงานเป็น ISP) ถอด Arduino A ออกจากคอมพิวเตอร์ ในตำแหน่งแยกแนบ Arduino A กับ Arduino B โดยใช้ส่วนหัว ISP การใช้วิธีการบางอย่าง (อาจเป็นปุ่มกด) ทำให้ Arduino A อัปโหลดเฟิร์มแวร์ที่โหลดไว้ล่วงหน้าไปยัง Arduino B ฉันสมมติว่าในทางทฤษฎีมันสามารถใช้งานได้เนื่องจากการอัปโหลดเฟิร์มแวร์เป็นเพียงการแลกเปลี่ยนไบต์ข้ามส่วนต่อประสาน …

4
เหตุใดร่างจึงใช้พื้นที่และหน่วยความจำมาก
เมื่อฉันรวบรวมร่างนี้สำหรับYún: int led = 7; void setup() { pinMode(led, OUTPUT); } void loop() { digitalWrite(led, HIGH); } ฉันเข้าใจ: Sketch ใช้พื้นที่เก็บข้อมูลโปรแกรม 5,098 ไบต์ (17%) สูงสุดคือ 28,672 ไบต์ ตัวแปรกลางใช้ 153 ไบต์ (5%) ของหน่วยความจำแบบไดนามิกเหลือ 2,407 ไบต์สำหรับตัวแปรท้องถิ่น สูงสุดคือ 2,560 ไบต์ แม้ว่าฉันจะรวบรวมร่าง BareMinimum: void setup() { // setup } void loop() { // loop } …

6
รหัสสำหรับการประมวลผลครั้งเดียวใน Arduino
คำถาม:ฉันจะใส่รหัสได้ที่ไหนถ้าฉันต้องการให้รันเพียงครั้งเดียวต่อการเริ่มต้นของ Arduino? พื้นหลัง:ฉันมักจะใช้ Arduino เพื่อทำงานที่ควรดำเนินการหนึ่งครั้งต่อรอบการใช้พลังงาน (ตัวอย่างเช่นหุ่นยนต์ของฉันควรขับไปข้างหน้าหนึ่งครั้งทุกครั้งที่เปิดเครื่อง - ยิ่งไปกว่านั้นและมันอาจตกลงมาจากโต๊ะ) Arduino template "IDE" มาตรฐานประกอบด้วย a loop()และsetup()ฟังก์ชั่น setupรหัสมีการเรียกใช้ครั้งเดียวต่อวงจรไฟฟ้าและloopเป็นอีกครั้งที่เริ่มต้นทุกครั้งที่เสร็จสิ้น ฉันเห็นสองแนวทางในการรหัส "งาน 1 ครั้ง:" วิธีที่ 1: "วนครั้งเดียว" void setup() { //do setup stuff } void loop() { //do task while(1) ; //Repeat forever, preventing function from re-starting } วิธีที่ 2: "การตั้งค่าเท่านั้น" void setup() { //do …

3
ฟังก์ชั่นกับพารามิเตอร์สตริง
ภายในลูปหลักของฉันมีสตริงนี้: String string1; ฉันมีฟังก์ชั่นที่จะใช้ string1 เป็นพารามิเตอร์และใช้มันเพื่อส่งสตริงนี้เป็น SMS sendSMS(string1); นี่คือฟังก์ชัน sendSMS () (ไม่มีพารามิเตอร์): void sendSMS() { sms.beginSMS(remoteNumber); sms.print(finalstr); sms.endSMS(); lcd.setCursor(0, 0); lcd.print("Message sent!"); delay(10000); } คำถามของฉันคือ: ฉันจะวางพารามิเตอร์อินพุตสตริงใน sendSMS ได้อย่างไร ฉันจำเป็นต้องใช้ฟังก์ชั่นต้นแบบสำหรับ sendSMS () หรือไม่? (เพื่อให้มันปรากฏสามครั้ง, 1 ในต้นแบบ, 1 ในการประกาศและอีกหนึ่งในการโทร) หรือฉันไม่ต้องการใช้ฟังก์ชั่นต้นแบบก่อนลูปหลัก ()?
11 programming  c++ 

4
ทำไมนาฬิกาเวลาจริงของฉันถึงผิดเวลาจากพีซีของฉัน
ฉันต้องการให้นาฬิกาตามเวลาจริงตั้งเวลาเป็นเวลาบนพีซีของฉัน อย่างไรก็ตามเมื่อฉันเรียกใช้แบบร่างต่อไปนี้นาฬิกาแบบเรียลไทม์จะรายงานเวลาเป็น 32-33 วินาทีเร็วกว่าพีซีของฉันที่บอกเวลา #include <Wire.h> #include "RTClib.h" RTC_DS1307 RTC; void setup () { Serial.begin(57600); Wire.begin(); RTC.begin(); if (! RTC.isrunning()) { Serial.println("RTC is NOT running!"); // following line sets the RTC to the date & time this sketch was compiled // uncomment it & upload to set the time, date …

2
Arduino Sketch จะรวบรวมโดยตรงกับ GCC-AVR หรือไม่
เอาล่ะเราทุกคนได้เห็นคำถามเหล่านั้นทั่วทั้งเว็บเช่น Arduino vs C ++ หรือคำถามที่คล้ายกันอื่น ๆ และคำตอบส่วนใหญ่ไม่ได้สัมผัสความแตกต่างในการรวบรวมนอกเหนือจากข้อมูลที่เป็นนามธรรม คำถามของฉันมีจุดมุ่งหมายเพื่อแก้ไขความแตกต่างที่เกิดขึ้นจริง (ไม่ใช่การกำหนดค่าตามความชอบ) ในการเปลี่ยนชื่อไฟล์. ori เป็นไฟล์. cpp หรือนามสกุลไฟล์อื่น ๆ ที่คล้ายกันสำหรับ c ++ จะรวบรวมโดยใช้ GCC-AVR ฉันรู้ว่าอย่างน้อยคุณต้องรวมไฟล์ส่วนหัวของ Arduino แต่นอกเหนือจากนั้นสิ่งที่จะทำให้เกิดข้อผิดพลาดในการรวบรวมถ้ารวบรวมกล่าวว่า. ini ไปยังไฟล์. cpp โดยใช้พูดเช่น GCC-AVR เพื่อความเรียบง่ายลองใช้ตัวอย่างการกะพริบแบบคลาสสิคเพื่ออธิบายความแตกต่าง หรือหากคุณมีข้อมูลโค้ดที่ดีกว่าในการใช้โปรดรวมตัวอย่างไว้ในคำตอบและอธิบายความแตกต่างอย่างละเอียด โปรดอย่าแสดงความคิดเห็นว่าวิธีใดเป็นวิธีที่ดีกว่าหรือเครื่องมือที่จะใช้ FYI ฉันใช้ Platformio เพื่อการพัฒนาและฉันสังเกตเห็นกระบวนการแปลงที่เกิดขึ้นเบื้องหลังในระหว่างการรวบรวม ฉันพยายามเข้าใจสิ่งที่เกิดขึ้นจริงที่นั่นดังนั้นเมื่อฉันรหัสใน Arduino ฉันเข้าใจรุ่น C ++ ที่ "บริสุทธิ์" เช่นกัน ขอบคุณสำหรับคำตอบที่รอบคอบของคุณสำหรับคำถามของฉันล่วงหน้า

3
ใครช่วยอธิบายรหัสที่ดูแปลก ๆ นี้ใช้ในการตั้งค่าเครื่องจับเวลา
ในขณะที่ดูภาพร่างที่คนอื่นเขียนฉันอาจเจอโค้ดที่มีลักษณะดังนี้: TCCR1A = 0; TCCR1B = 0; TCNT1 = 34286; TCCR1B |= (1 << CS12); TIMSK1 |= (1 << TOIE1); ทั้งหมดที่ฉันรู้ก็คือมันมีบางอย่างที่เกี่ยวกับเวลา / ตัวจับเวลา (ฉันคิดว่า) ฉันจะถอดรหัส - และสร้าง - รหัสเช่นนี้ได้อย่างไร อะไรคือTCCR1A, TCCR1B, TCNT1, CS12, TIMSK1และTOIE1?

3
การเขียนโปรแกรม Arduinos จำนวนมากพร้อมกันด้วยการออกอากาศแบบไร้สาย
ฉันจะมีอุปกรณ์ที่ใช้ไมโครคอนโทรลเลอร์หลายตัวซึ่งจะเป็นอิสระจากกัน แต่ทั้งหมดจะใช้โปรแกรมเดียวกัน ฉันต้องการอัปโหลดโปรแกรมไปยังพวกเขาทั้งหมดในเวลาเดียวกันด้วยการออกอากาศแบบไร้สาย โดยอุดมคติแล้วผู้ใช้จะเสียบตัวควบคุม USB เข้ากับคอมพิวเตอร์ของเขาและอัปโหลดโปรแกรมจากสภาพแวดล้อม Arduino ราวกับว่าเขา / เธอเขียนโปรแกรมอุปกรณ์เดียว เพื่อให้ได้แนวคิดที่ดีขึ้นเกี่ยวกับสิ่งที่ฉันกำลังพูดถึงโปรดดูวิดีโอนี้ นี่คือความสำเร็จกับ Atmel ไมโครคอนโทรลเลอร์ แต่ bootloader ที่ทำเองไม่ใช่ Arduino จากการค้นหาของ Google สำหรับ "Arduino อินฟราเรดโปรแกรม" โครงการนี้น่าสนใจขึ้นมา ข้อเสียเปรียบหลักคือปุ่มรีเซ็ตยังคงต้องกดด้วยตนเอง เป็นการดีที่ฉันต้องการให้อุปกรณ์อยู่ในสถานะพลังงานต่ำโดยค่าเริ่มต้นและตื่นขึ้นมาเพื่อรับโปรแกรมเมื่อพวกเขารู้สึกสัญญาณจากตัวควบคุม ถึงกระนั้นนี่อาจเป็นจุดเริ่มต้นที่ดีสำหรับฉัน ฉันแค่อยากได้มุมมองจากคนที่คุ้นเคยกับ Arduinos ว่าพวกเขาคิดว่านี่เป็นไปได้หรือไม่ก่อนที่ฉันจะกระโดดเข้ามา

4
วิธีที่ดีที่สุดในการกำหนดพิน I / O คืออะไร?
ฉันอ่านคำจำกัดความเช่น const int ledPin = 9; และนอกจากนี้ยังมี #define ledPin 9 ฉันรู้ว่าคำจำกัดความเช่น int ledPin = 9; เป็นการปฏิบัติที่ไม่ดีถ้าคุณจะไม่เปลี่ยน (ซึ่งโดยปกติคุณจะไม่ทำ) ถึงแม้ว่าฉันจะได้เห็นหลายครั้งในโปรแกรม Arduino ต้องการหนึ่งในสองอีกอันหนึ่ง

3
ทำไมจอแอลซีดีของฉัน 16 * 2 ไม่แสดงตัวอักษรใด ๆ ถึงแม้ว่าการเดินสายทั้งหมดถูกต้อง?
เมื่อเร็ว ๆ นี้ฉันได้ทำการเชื่อมต่อจอแสดงผล LCD (Liquid Crystal Display) ขนาด 16 * 2 กับ Arduino Uno ของฉันและเชื่อมโยงพินทั้งหมดแล้ว นี่คือการเชื่อมต่อของฉัน: (พิน LCD ก่อน) 1 = GND, 2 = + 5v, 4 = 11, 6 = 12, 11 = 5, 12 = 4, 12 = 3, 14 = 2, 15 = แบ็คไลต์เป็นบวก, 16 = ลบแบ็คไลท์ …

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