Arduino

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

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

3
ฉันจะใช้ RFID-RC522 กับ Arduino ได้อย่างไร
ฉันกำลังทำงานในโครงการสำหรับ Makerspace ในพื้นที่ของฉันเรามีงบประมาณ จำกัด ดังนั้นฉันจึงหวังว่าจะใช้ RFID-RC522 el'cheap'o เครื่องอ่าน RFID / NFC บน eBay ฉันได้รับกระดาน SPI สองชุดพวกเขาทำงาน แต่ ตัวอย่างรหัสสำหรับพวกเขาถูก จำกัด ฉันพบห้องสมุดที่แตกต่างกันหลายแห่งและตัดสินในห้องสมุดนี้: https://github.com/ljos/MFRC522 ปัญหาคือรหัสทั้งหมดที่มีออนไลน์ดูเหมือนจะวางไข่จากคนจีนรหัส Python ที่คนแปลและเจาะเข้าไปในห้องสมุด Arduino รหัสใช้งานได้ แต่การ์ด Mifare มีความหมายว่าจะมี UID 4, 7 หรือ 10 ไบต์และตัวอย่าง / ไลบรารีจะส่งคืนหมายเลขซีเรียล 5 ไบต์ ไม่มีเอกสารประกอบและแผ่นข้อมูล NXPไม่สามารถเข้าใจได้ ... นอกจากนี้ดูเหมือนว่าจะทำงานกับการ์ดส่วนใหญ่ แต่ไม่สามารถใช้งานได้กับการ์ด Mastercard PayWave ซึ่งเป็นไปตามมาตรฐาน ISO 14443 เครื่องอ่าน …
11 rfid 

1
ฉันสามารถเขียนไปยังหน่วยความจำแฟลชโดยใช้ PROGMEM ได้หรือไม่
ในเอกสารของ Arduino ฉันพูด: http://playground.arduino.cc/Learning/Memory หมายเหตุ: หน่วยความจำแบบแฟลช (PROGMEM) สามารถบรรจุได้ในเวลาที่โปรแกรมเขียนเท่านั้น คุณไม่สามารถเปลี่ยน> ค่าในแฟลชหลังจากที่โปรแกรมเริ่มทำงาน และในคำอธิบาย PROGMEM: http://arduino.cc/th/Reference/PROGMEM เก็บข้อมูลในหน่วยความจำแฟลช (โปรแกรม) แทน SRAM มีคำอธิบายของหน่วยความจำประเภทต่าง ๆ ที่มีอยู่ในบอร์ด Arduino คำหลัก PROGMEM เป็นตัวดัดแปลงตัวแปรควรใช้เฉพาะกับประเภทข้อมูลที่กำหนดไว้ใน pgmspace.h มันบอกคอมไพเลอร์ "ใส่ข้อมูลนี้ในหน่วยความจำแฟลช" แทนที่จะเป็น SRAM ซึ่งมันจะไปตามปกติ ดังนั้นเราสามารถหรือไม่เรา? หรือไม่ใช่สิ่งเดียวกัน

1
ฉันจะสื่อสาร Raspberry Pi และ Arduino (ทั้งสองวิธี) โดยใช้สายไฟระยะทาง 10-15 เมตรได้อย่างไร
ฉันเริ่มต้นโครงการส่วนตัวของระบบอัตโนมัติภายในบ้านและฉันมี raspberry pi และบอร์ด arduino Uno ฉันต้องการสื่อสาร raspberry pi และ arduino ของฉันที่ raspberry ของฉันควรจะสามารถเขียนและอ่านสัญญาณไปและกลับจาก arduino ระยะทางระหว่างพวกเขาฉันคิดว่ามันจะเป็นอะไรประมาณ 10 ถึง 15 เมตร ฉันต้องการอะไร ฉันจะต้องใช้สายไฟหรือส่วนประกอบอื่นใดเพื่อให้บรรลุเป้าหมาย ฉันพูดซ้ำ: ฉันไม่ต้องการสื่อสาร raspberry pi และ arduino แบบไร้สาย ขอบคุณ!
11 serial  uart 

1
ยืดอายุการใช้งานแบตเตอรี่ด้วยไมโครคอนโทรลเลอร์ที่ใช้พลังงานหรือไม่?
บทความนี้อธิบายวิธีการยืดอายุแบตเตอรี่: ใช้ตัวควบคุมพลังงานต่ำเพื่อเปิด Arduino เมื่อจำเป็นเท่านั้น ผู้เขียนกล่าวว่าวิธีนี้ใช้พลังงานน้อยกว่าการใช้โหมดสลีปของ Arduino มีข้อเสียสำหรับวิธีนี้หรือไม่? ฉันควรสร้างชุดตัวเลือกใด ( ตัวแปร TPS61240ดูเหมือนจะใช้บางสิ่งบางอย่างจาก Circuits @ Home ที่ไม่สามารถใช้งานได้อีกต่อไป) ฉันขอขอบคุณแผนผังหรือลิงก์ไปยังคำแนะนำโดยละเอียด พื้นหลัง: ฉันกำลังสร้างอุปกรณ์เซ็นเซอร์ที่อยู่ในสภาพแวดล้อมที่ไม่มีแหล่งจ่ายไฟหลัก เซ็นเซอร์ควรตื่นขึ้นมาเช่น อ่านทุกชั่วโมงเช่น เซ็นเซอร์อุณหภูมิอาจส่ง SMS แล้วกลับไปนอน
11 battery 

2
การเปลี่ยนความสว่างบนหน้าจอ LCD Hitachi HD44780
ฉันกำลังทำโครงงาน - นาฬิกาปลุกเกม LED เมื่อเห็นว่านี่เป็นนาฬิกาฉันต้องมีวิธีการอนุรักษ์พลังงานซึ่งตอนนี้ Uno R3 + ของฉันกำลังกินข้าวเหมือนนักการเมือง คำถามของฉันคือฉันจะปิดหน้าจอหรือปิดไฟแบ็คไลท์โดยใช้ซอฟต์แวร์บนหน้าจอ LCD Hitachi HD44780 16x2 เท่านั้นได้อย่างไร หรือฉันจะตั้งค่าโหมดสลีปในองค์ประกอบเดียวได้อย่างไร วิธีที่ฉันวางแผนในการปิดเครื่องคือใช้ตัวค้นหาช่วงอัลตราโซนิกถ้าฉันเข้าใกล้มันจะเปิดหน้าจอ หากสิ่งที่ฉันพูดไม่สมเหตุสมผลขอให้ฉันชี้แจงฉันรีบเร่งหน่อย
11 arduino-uno  lcd 

2
ทำไมฉันไม่สามารถใช้พอยน์เตอร์แทนการใช้อาเรย์กับ PROGMEM ได้?
ขณะนี้ฉันกำลังเปลี่ยนห้องสมุดบางแห่งให้ใช้แฟลชแทน RAM สำหรับการจัดเก็บสตริงเพื่อที่ฉันจะไม่หมด SRAM ในโครงการ สตริงบางตัวในไลบรารีถูกประกาศในลักษณะนี้: const char *testStringA = "ABC"; สิ่งนี้ต่างจากวิธีที่ฉันเห็นสิ่งนี้ตามปกติ: const char testStringB[] = "DEF"; อย่างไรก็ตามฉันคิดว่าทั้งสองนี้เท่ากันเมื่อประกาศ const และเริ่มต้นในการประกาศ ทำงานได้ดีทั้งในรหัส ฉันพยายามย้ายสิ่งเหล่านี้ไปยังแฟลช: const prog_char *testStringC PROGMEM = "GHI"; ฉันพบว่ามันใช้งานไม่ได้ มันกำลังผลิต gobbledegook เมื่อพิมพ์ อย่างไรก็ตามทำตามรูปแบบปกติของ: const prog_char testStringD[] PROGMEM = "JKL"; ทำงานได้ดี ฉันสามารถดูได้ในการถอด: 00000068 <testStringC>: 68: 04 01 .. 0000006a <_ZL11testStringD>: 6a: …
11 progmem  pointer 

3
กำหนดเวลาความแม่นยำสูงบน Arduino สำหรับการสื่อสารแบบอนุกรม
ฉันใช้ Arduino Uno เพื่อส่งข้อมูลเวลาและแรงดันไฟฟ้าผ่านพอร์ตอนุกรมไปยัง Python เพื่อลงจุด อย่างไรก็ตามการกำหนดช่วงเวลาระหว่างการประทับเวลาต่อเนื่องจะเพิ่มขึ้นเมื่อเวลาผ่านไปส่งผลต่อการวางแผนของฉัน นี่เป็นเรื่องจริงโดยเฉพาะอย่างยิ่งเมื่อตั้งค่าอัตรารับส่งข้อมูลเป็น 9600 ซึ่งความแตกต่างของเวลาเริ่มต้นของฉันอาจเป็น 1320 และเพิ่มขึ้นเป็น 16400 หลังจากช่วงเวลาสั้น ๆ เมื่ออัตรานี้เพิ่มสูงสุดถึง 1,150,200 bps การเปลี่ยนแปลงจะช้าลงและสังเกตได้น้อยลงจากประมาณ 1,340 เป็น 1,500 แม้หลังจากการส่งในระยะยาว เวลาทั้งหมดถูกกำหนดในหน่วยไมโครวินาที ฉันต้องการทราบว่าฉันสามารถลดหรือกำจัดผลกระทบนี้ได้หรือไม่และหากไม่เข้าใจว่าทำไมถึงมีอยู่จริง ฉันได้อ่านสิ่งต่าง ๆ เกี่ยวกับการขัดจังหวะและความล่าช้าที่ก่อให้เกิดสิ่งนี้ แต่ฉันไม่ได้ชื่นชมความซับซ้อนของอุปกรณ์อิเล็กทรอนิกส์ในมือและอยากจะรู้ว่า: ฉันจะได้รับความแม่นยำมากขึ้นในเวลา? ทำให้การเปลี่ยนแปลงในเวลานี้คืออะไร? นี่คือสิ่งที่ฉันมีอยู่ในปัจจุบัน: #include <eHealth.h> extern volatile unsigned long timer0_overflow_count; float fanalog0; int analog0; unsigned long time; byte serialByte; void setup() …

2
สิ่งที่ฉันควรระวังก่อนที่จะแตะ Arduino ของฉัน?
ก่อนที่คุณจะเริ่มยุ่งกับคอมพิวเตอร์มีคำแนะนำพื้นฐานที่ต้องระวังเช่นปิดเครื่องและระวังไฟฟ้าสถิตย์ ฉันควรทราบแนวทางใดเมื่อฉันทำงานกับบอร์ด Arduino หากฉันไม่ต้องการทำอันตรายทั้งตัวฉันเองและบอร์ด กิจกรรมสามประเภทที่ต้องสัมผัส Arduino และสิ่งที่ฉันถามเกี่ยวกับ: การตั้งค่า wire, component layout หรือ breadboard การดีบักการตั้งค่าที่กำลังทำงานอยู่ การเคลื่อนย้ายการติดตั้งบอร์ดขึ้นที่ใดที่หนึ่ง
11 safety 

3
ล้างทำความสะอาดได้สวมใส่เทคโนโลยีด้วย Arduino
คำถาม: มีวิธีเตรียมเสื้อผ้าด้วยอุปกรณ์อิเล็กทรอนิกส์ฝังตัวสำหรับซักผ้าอย่างไร? พื้นหลัง:มีบอร์ด / โคลน Arduino หลายแบบที่ออกแบบมาสำหรับ "เทคโนโลยีที่สวมใส่ได้" (ตัวอย่างเช่นLilypad ) เทคโนโลยีที่สวมใส่ได้ที่มีรูปแบบไฟ LED, ไมโครโฟน, GPS หรือวงจรอื่น ๆ เป็นแนวคิดที่น่าสนใจ แต่น้ำและไฟฟ้ามักไม่ผสมกัน ในการเตรียมเทคโนโลยีที่สวมใส่ได้สำหรับซักผ้าฉันจะสมมติว่าผู้คนสามารถถอดวงจรขนาดใหญ่ออกได้ กระนั้นก็ดีอุปกรณ์อิเล็กทรอนิกส์บางชนิดจะติดอยู่กับผ้าอย่างถาวรมากขึ้นหรือน้อยลง หากมีสิ่งใดที่สามารถทำได้กับอุปกรณ์อิเล็กทรอนิกส์เหล่านี้ (เช่นเย็บติดกับ Arduino Lilypad) เพื่อให้พวกเขาซักเครื่องได้ (ที่ต้องการ - ซักมือสามารถทำได้ แต่ปลอดภัยกว่าสำหรับการซักด้วยเครื่อง)?
11 safety 

1
ขั้นตอนที่เกี่ยวข้องในการย้ายไลบรารี Arduino มีอะไรบ้าง
ฉันต้องการใช้Adafruit CC3000และห้องสมุด Arduinoบนแพลตฟอร์มอื่น ในกรณีนี้มันเป็น Arduino ขาเข้ากันได้PSOC4 ไพโอเนียร์ชุด นี่คือแพลตฟอร์มที่ใช้ ARM Cortex M0 คำถามของฉันคือฉันจะไปเกี่ยวกับการย้ายห้องสมุดเช่นนี้ได้อย่างไร ขั้นตอนไฟล์สำคัญ ฯลฯ คืออะไร? ปัญหาที่ชัดเจนประการหนึ่งคือผู้สร้าง PSOC ไม่สนับสนุน C ++ อย่างง่ายดาย ข้อดีอย่างหนึ่งคือบอร์ด Arduino Due ขึ้นอยู่กับ CPU Atmel SAM3X8E ARM Cortex-M3 หมายเหตุ: หากคุณคิดว่าคำถามนี้อยู่นอกหัวข้อ โปรดตอบคำถามนี้ใน Arduino Meta เพื่อแสดงความคิดเห็นของคุณว่าคำถามเกี่ยวกับอุปกรณ์ที่ใช้งานร่วมกันได้ของ Arduino นั้นเหมาะสมสำหรับรายการนี้หรือไม่
11 library 

8
ฉันจะหาที่เก็บส่วนกลางของไลบรารี Arduino ที่มีอยู่ทั้งหมดได้ที่ไหน
ปัจจุบัน; เมื่อฉันเริ่มต้นโครงการ Arduino ใหม่พร้อมฮาร์ดแวร์ใหม่สิ่งแรกที่ฉันทำคือมองหาห้องสมุดบุคคลที่สามที่นำ Arduino มารองรับฮาร์ดแวร์นี้ สถานที่แรกที่ฉันดูคือ: สนามเด็กเล่น Arduino GitHub Google โดยทั่วไปฉันพบว่าไม่มีห้องสมุดสนับสนุนหรือห้องสมุดที่แตกต่างกัน (ค่อนข้างหายากเพียงแห่งเดียว) ในสถานที่ต่าง ๆ ที่มีเอกสารระดับต่าง ๆ ระดับการทดสอบที่แตกต่างกัน ... เมื่อฉันพบห้องสมุดที่ฉันต้องการ (บางครั้งฉันต้องลองหลายครั้ง) ฉันดาวน์โหลดไปยังโฟลเดอร์ไลบรารี Arduino ของฉันฉันใช้มันและฉันลืมมัน ฉันพบว่ากระบวนการนี้ยุ่งยาก: ค้นหาด้วยตนเองด้วยตัวเลือกต่าง ๆ ที่เป็นไปได้เอกสารที่ไม่ดีเสมอไป ดาวน์โหลดคู่มือและติดตั้งไปยังห้องสมุด Arduino ไม่มีการควบคุมเวอร์ชันในกระบวนการ (ไลบรารีทุกเวอร์ชันมีชื่อเหมือนกันดังนั้นจึงไม่สามารถอยู่ร่วมกันในโฟลเดอร์ไลบรารี Arduino ได้ ฉันหวังว่าจะมีที่เก็บส่วนกลางพร้อมห้องสมุดที่มีอยู่ทั้งหมดสำหรับ arduino ด้วย: คำอธิบาย (ฮาร์ดแวร์ที่รองรับ, บอร์ดที่รองรับ) รหัสแหล่งที่มา เอกสาร รุ่น และเป็นเครื่องมือ (Arduino IDE หรือภายนอก) ในการเข้าถึงพื้นที่เก็บข้อมูลนี้ในเวลาสร้างโครงการ ชนิดของmavenสำหรับ Arduino …
11 library 

1
การขัดจังหวะทำงานบน Arduino Uno และบอร์ดที่คล้ายกันอย่างไร
โปรดอธิบายวิธีการขัดจังหวะการทำงานกับ Arduino Uno และบอร์ดที่เกี่ยวข้องโดยใช้โปรเซสเซอร์ ATmega328P บอร์ดเช่น: Uno มินิ นาโน Pro Mini Lilypad โดยเฉพาะอย่างยิ่งโปรดหารือ: สิ่งที่จะใช้ขัดจังหวะ วิธีการเขียน Interrupt Service Routine (ISR) ปัญหาเรื่องเวลา ส่วนที่สำคัญ การเข้าถึงข้อมูลของอะตอม หมายเหตุ: นี่เป็นคำถามอ้างอิง

2
ฉันจะแปลง float เป็น char * ได้อย่างไร
ถามคำถามเกี่ยวกับการแลกเปลี่ยนกองวิศวกรรมไฟฟ้าและได้ที่นี่: สวยด้วยตนเองอธิบาย ฉันจะเปลี่ยนแปลงให้เป็น char * ได้อย่างไร? ฉันมีรหัสที่ 'ความต้านทาน' แบบลอยได้รับการปรับปรุงอยู่ตลอดเวลา ฉันต้องการจะอัปเดตตัวแปร 'ผลลัพธ์' เพื่อรับค่าของ 'ความต้านทาน' นี่คือรหัสบางส่วนในกรณีที่ช่วย: const char * result = ""; float resistance = 2.5; result = resistance; //This bit (obviously) doesn't work ขอบคุณสำหรับความช่วยเหลือของคุณ!
11 arduino-uno  c++  c  float 

5
วิธีการเปลี่ยน baudrate ของ ESP8266 (12e) อย่างถาวร?
สำคัญ: ห้ามใช้AT+IPR=9600! (ดูอัปเดต) ฉันมีโมดูล ESP8266 12E ที่สื่อสารที่ 115,200 bauds เนื่องจากฉันใช้กับ Arduino Nano กับ SoftwareSerial สิ่งที่ได้รับยุ่ง ดังนั้นฉันจึงพบว่าฉันควรลดอัตราการรับส่งข้อมูลของโมดูล ESP ฉันพบลิงค์นี้เกี่ยวกับวิธีการทำ ฉันสงสัย นี่เป็นการเปลี่ยนแปลงถาวรหรือคุณจำเป็นต้องทำสิ่งนี้ทุกครั้งหลังจากโมดูลได้รับพลังงานหรือไม่ ฉันสามารถทำสิ่งเดียวกันโดยการส่งคำสั่งจาก Arduino ผ่าน SoftSerial ได้หรือไม่ ดีฉันเดาไม่ได้เพราะผมพยายามและผมเคยได้รับข้อผิดพลาดในหรือAT+CIOBAUD=9600AT+IPR=9600 ฉันอ่านบางแห่งว่าใน ESP8266 เวอร์ชั่นใหม่กว่าเฟิร์มแวร์อัตราการรับส่งข้อมูลเริ่มต้นที่ 9,600 ทุกคนสามารถยืนยันได้และถ้าเป็นเช่นนั้นจะดีกว่าที่จะแฟลชเฟิร์มแวร์รุ่นใหม่นี้ ผู้ขายของโมดูล: Ai-Thinker Technology Co.,Ltd. ฉันคิดว่าเฟิร์มแวร์เวอร์ชั่นปัจจุบันคือ 0.3.0 ถ้าฉันส่ง AT+GMRฉันจะได้รับ: sending AT+GMR response: ?AT¥TJÕ¨H(Q�²•ÉÍ¥½¹é‚r¢‚r‚r‚BÕ��Â’‚ŠªŠ¢Ò¢ªÒªÂJm SDK versioo:0.3.0 Ai�½½ ‚Šj ขยะอีกครั้งเนื่องจากอัตราการรับส่งข้อมูลซึ่งสูงเกินไป ข้อมูลอื่น ๆ …

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