Arduino

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

4
โล่ TFT LCD 2.4 "ไม่ทำงานบน Arduino Mega
แม้ในเว็บไซต์ของ ebay มีการกล่าวถึงว่าฉันไม่สามารถใช้จอแสดงผล TFT LCD Shield 2.4 "ที่แนบมากับ Arduino Mega ปัญหาคือฉันซื้อเกราะนี้โดยไม่ได้ตั้งใจฉันต้องการใส่โล่นี้ลงบน Arduino Mega 2560 มี วิธีในการรวมจอแสดงผล Mega และ 2.4 " หมายเหตุ: ฉันลองใช้ Arduino Uno ของเพื่อนฉัน โล่ทำงานได้ดีมาก หมายเหตุ: รูปภาพด้านล่างกำลังระบุคำถามของฉัน จอแสดงผลไม่ทำงานรหัส Arduino ของฉัน มันรันเฉพาะ LED // UTFT_Demo_320x240 (C)2012 Henning Karlsen // web: http://www.henningkarlsen.com/electronics // // This program is a demo of how …

4
ชิลด์ใดที่ใช้กับ GPRS
ฉันวางแผนที่จะสร้างอุปกรณ์ที่จะอ่านข้อมูลเซ็นเซอร์และส่งผ่าน GPRS เช่น วันละครั้ง (ไม่ใช่ของแท้ใช่แล้ว) แต่ปัญหาของฉันคือเลือกโล่ GSM / GPRS โล่อย่างเป็นทางการมีอินเตอร์เฟซที่ดีสำหรับการทำ HTTP POST OTOH ดูเหมือนว่าโล่จะถูกขายหมดแล้ว (และจะค่อนข้างแพงอยู่ดี) ดูเหมือนจะมีเกราะป้องกันอื่น ๆ แต่ตัวอย่างโค้ดของพวกเขาดูเหมือนจะแฮ็คค่อนข้างมาก : อุปกรณ์รอสักครู่โดยพลการจากนั้นหวังว่าเซิร์ฟเวอร์จะเสร็จสิ้น นั่นคือ IMO ทั้งที่ไม่มีประสิทธิภาพหรือไม่น่าเชื่อถือ คำถามของฉัน: คุณต้องการแนะนำ GSM / GPRS shield ใดด้วยคุณสมบัติเหล่านี้: ห้องสมุดที่มีสติพร้อมด้วยตัวอย่างเช่นห้องสมุดที่เป็นทางการเสาอากาศภายนอกโบนัส: ราคาที่แข่งขันได้โบนัสอื่น: หวังว่าจะเป็นเกราะป้องกันที่ "แท้จริง" ดังนั้นจึงไม่จำเป็นต้องบัดกรีและหมุดบางอันยังสามารถใช้งานได้ง่ายสำหรับเซ็นเซอร์
9 shields  tcpip  gsm 

2
MCU ที่ 2 บน UNO R3 สามารถใช้สำหรับการจำลองคีย์บอร์ดหรือไม่?
ติดตามจากส่วนหัว ICSP ที่ 2 สำหรับ Arduino Uno R3 คืออะไร? ฉันสงสัยว่าสิ่งนี้จะถูกแฮ็กเพื่อประโยชน์ของเราได้อย่างไร ตัวอย่างเช่นสามารถเขียนเฟิร์มแวร์ใหม่เพื่อให้ UNO รับรู้เป็นอินพุตเมาส์ / คีย์บอร์ดได้หรือไม่? สิ่งนี้สามารถทำได้หลังจากกระบวนการโหลดเดอร์บูตและปล่อยให้กระบวนการอัปโหลดในชั้นเชิง? เมื่อพิจารณาจาก IO ที่ จำกัด ดูเหมือนว่าฟังก์ชั่นอาจจะถูก จำกัด นอกจากนี้ฉันไม่ทราบว่ามีพื้นที่โค้ดเท่าใด

2
ฉันจะใช้ Arduino และ node.js ได้อย่างไร
ฉันใหม่กับ Arduino แต่ฉันมีประสบการณ์ในการพัฒนาเว็บเมื่อเร็ว ๆ นี้ฉันได้ใช้ meta js และ stack เฉลี่ยสำหรับโครงการที่แตกต่างกัน อย่างไรก็ตามฉันเปิดให้ลองใช้ภาษาใดก็ได้เพื่อการพัฒนา สิ่งที่ฉันพยายามทำคือสร้างแอปพลิเคชั่นที่เรียบง่ายเพื่อควบคุม LED บน Arduino ผ่านเว็บ ฉันทำงานกับบุคคลอื่นและ Arduino จะอยู่หลังไฟร์วอลล์ดังนั้นฉันไม่แน่ใจว่าจะเข้าถึงผ่านทางอินเทอร์เน็ตได้อย่างไร ฉันสามารถเข้าถึง Arduino Uun ที่ฉันสามารถใช้สำหรับการทดสอบที่บ้านซึ่งมี linio เชื่อมต่อผ่านสะพานซึ่งฉันไม่เข้าใจสิ่งที่ทำ ฉันเคยได้ยินเรื่องนี้ด้วย แต่อยากจะอยู่ห่างจากงานสร้างของบุคคลที่สามให้มากที่สุดถ้าฉันทำได้ด้วยตัวเอง วิธีทั่วไปในการทำเช่นนี้กับ Arduino หลังไฟร์วอลล์คืออะไร? ฉันจะทำสิ่งนี้กับ Arduino Yun ได้อย่างไร หยุนมันง่ายขึ้นไหม?

3
วิธีการวัดการใช้พลังงานโดยรวมของบอร์ด arduino
ฉันมีโครงการที่ฉันกำลังทำงานอยู่ เราได้สร้างกำแพงสีเขียวซึ่งประกอบด้วยพืชบนผนัง ตอนนี้เรามีปั๊มอยู่ที่ด้านล่างซึ่งรดน้ำต้นไม้ทั้งหมด มีบอร์ด Arduino ซึ่งตัดสินใจเมื่อจะวางปั๊ม เปิดเครื่องเป็นแผงโซลาร์เซลล์และกังหันลม เราต้องการทราบว่าเราประหยัดพลังงานได้มากเพียงใดโดยใช้แผงโซลาร์และกังหัน คำถาม: ฉันจะวัดปริมาณพลังงานใน Wh ที่ใช้จาก 00h00 ในวันนั้นได้อย่างไร มีห้องสมุดหรือไม่? หรือไม่สามารถทำได้ด้วย Arduino ขอบคุณมาก. เพื่อเคลียร์บางสิ่ง ไม่ปั๊มไม่ได้รับการเติมเชื้อเพลิงโดยตรงจากขา Arduino เรากำลังใช้ตัวป้องกันมอเตอร์ ใช่มีการสะสมในวงจร พลังงานแสงอาทิตย์และพลังงานลมชาร์จแบตเตอรี่ซึ่งจะส่งผลต่อส่วนประกอบ ฉันต้องการทราบพลังงานทั้งหมดที่ใช้ไปไม่ใช่เฉพาะกับปั๊ม

4
การบูตเครื่องโดยใช้พลังงานต่ำไม่ทำงาน
ฉันมีบอร์ด Arduino ATMega328 ที่กำหนดเองซึ่งโดยทั่วไปทำงานที่ 5V @ 8MHz (ใช้โปรไฟล์ Arduino Pro 3.3V 8MHz และ bootloader) เหตุผลหลักที่ฉันใช้การตั้งค่านี้คือเพื่อให้ฉันสามารถวางบอร์ดเข้าสู่โหมดสลีปเมื่อไฟหลักถูกตัดการเชื่อมต่อและเริ่มทำงานโดยใช้พลังงานจากแบตเตอรี่ (3V จากเซลล์เหรียญ) แหล่งจ่ายไฟ 5V และ 3V เป็นไดโอด OR'ed เข้าด้วยกันและอินพุต 5V เชื่อมโยงกับ INT0 ในโค้ดเมื่อตรวจพบว่า INT0 ต่ำลงมันจะเริ่มต้นโหมดสลีปและทุกอย่างจะปิดตัวลงยกเว้นตัวจับเวลาจ้องจับผิดที่เก็บรอบ 1Hz เพื่อรักษาจำนวนภายในและตรวจสอบว่าชิปควรจะสำรองไว้ นี้ทำงานได้อย่างสวยงามเมื่อ 5V พลังงานถูกนำไปใช้ก่อนแล้วแบตเตอรี่จะถูกแทรกแล้ว5V ถูกตัดการเชื่อมต่อ มันเข้าสู่โหมดสลีปและเมื่อ 5V ถูกนำกลับมามันจะทำงานขึ้นและฉันจะเห็นว่ามันไม่ได้หายไปไหน แต่ปัญหามาเมื่อ 3V ถูกนำมาใช้เป็นครั้งแรก ฉันไม่แน่ใจว่ามันเป็นบูทจริงหรือเปล่า แต่สิ่งที่ควรทำคือบู๊ตตรวจสอบว่า INT0 (Digital 2) ต่ำหรือไม่ถ้าใช่ให้เข้าสู่โหมดสลีป จากการดูการจับฉลากปัจจุบันฉันเห็นว่ามันให้พลังงานสูงถึงไม่กี่ mA …
9 battery 

1
พิน I / O ดิจิตอลเป็นกราวด์
ฉันต้องการพิน I / O เพื่อคืนค่ากระแสในวงจรคล้ายกับฟังก์ชันของกราวด์ ข้อใดต่อไปนี้จะบรรลุสิ่งที่ฉันต้องการ pinMode(pinnumber, OUTPUT) digitalWrite(pinnumber, LOW) หรือ pinMode(pinnumber, input)

3
การรักษาเวลาโดยใช้มิลลิวินาที Arduino ไม่ถูกต้องหรือไม่ถูกต้อง?
ฉันใช้ Arduino เพื่อบันทึกข้อมูลบางอย่าง ในร่าง Arduino ของฉันฉันยังใช้millis()ฟังก์ชั่นเพื่อให้ฉันสามารถติดตามเวลาที่แต่ละค่าที่ฉันวัดถูกนำมาใช้ อย่างไรก็ตามฉันสังเกตเห็นว่าเวลาไม่ถูกต้อง ตัวอย่างเช่น 30 วินาทีในชีวิตจริงเท่านั้นออกมาเป็น 10 วินาที (ทำขึ้นตัวอย่าง) ฉันถูกต้องหรือไม่ในการบอกว่าฟังก์ชั่นการหน่วงเวลา Arduino มีผลต่อการใช้เวลาอย่างต่อเนื่องmillis()หรือไม่? กล่าวอีกนัยหนึ่งสมมติว่าฉันมีความล่าช้า 50 มิลลิวินาทีนั่นหมายความว่าmillis()ฟังก์ชั่นจะหยุดในช่วงเวลานั้นเช่นกันจากนั้นจึงดำเนินการต่อไปเรื่อย ๆ ตลอดระยะเวลาของการเชื่อมต่อหรือไม่ ฉันสังเกตเห็นสิ่งนี้เมื่อฉันพยายามพล็อตข้อมูลบางส่วนและพบว่าความถี่ของยอดเขาในข้อมูลของฉันบ่อยเกินไปตามเวลาที่ผ่านไป ดังนั้นฉันต้องการทราบว่านั่นเป็นเหตุผลสำหรับการไม่ตรงตามกำหนดเวลานี้หรือไม่และถ้าเป็นเช่นนั้นฉันจะแก้ไขได้อย่างไรเพื่อให้สามารถเก็บเวลาแต่ละตัวอย่างได้ เพื่อให้บริบทนี่คือร่างของฉัน: #include <eHealth.h> unsigned long time; // The setup routine runs once when you press reset: void setup() { Serial.begin(9600); } // The loop routine runs over …

5
อัลกอริทึมที่มีประสิทธิภาพ / โครงสร้างข้อมูลในการคำนวณค่าเฉลี่ยเคลื่อนที่
ขณะนี้ฉันกำลังพัฒนาระบบ LCD กราฟิกเพื่อแสดงอุณหภูมิการไหลแรงดันไฟฟ้าพลังงานและพลังงานในระบบปั๊มความร้อน การใช้กราฟิก LCD หมายความว่าครึ่งหนึ่งของ SRAM ของฉันและประมาณ 75% ของแฟลชของฉันถูกใช้จนหมดโดยบัฟเฟอร์หน้าจอและสตริง ขณะนี้ฉันกำลังแสดงตัวเลขพลังงานต่ำสุด / เฉลี่ย / เฉลี่ยเวลาเที่ยงคืนเมื่อรูปประจำวันรีเซ็ตระบบจะตรวจสอบว่าปริมาณการใช้พลังงานสำหรับวันนั้นสูงกว่าหรือต่ำกว่าค่าต่ำสุดหรือค่าต่ำสุดก่อนหน้านี้และเก็บค่าไว้ ค่าเฉลี่ยจะคำนวณโดยหารปริมาณการใช้พลังงานสะสมด้วยจำนวนวัน ฉันต้องการแสดงค่าเฉลี่ยรายวันในสัปดาห์ที่แล้วและเดือนที่แล้ว (4 สัปดาห์สำหรับความเรียบง่าย) เช่นค่าเฉลี่ยเคลื่อนที่ ขณะนี้สิ่งนี้เกี่ยวข้องกับการบำรุงรักษาอาร์เรย์ของค่าในช่วง 28 วันที่ผ่านมาและการคำนวณค่าเฉลี่ยของทั้งอาร์เรย์สำหรับรายเดือนและ 7 วันล่าสุดสำหรับรายสัปดาห์ ตอนแรกฉันทำสิ่งนี้โดยใช้อาร์เรย์ลอย (เนื่องจากพลังงานอยู่ในรูปแบบ "12.12kWh") แต่ใช้ 28 * 4 ไบต์ = 112 ไบต์ (5.4% ของ SRAM) ฉันไม่รังเกียจที่จะมีเพียงจุดทศนิยมเดียวของความละเอียดดังนั้นฉันจึงเปลี่ยนเป็นการใช้ uint16_t และคูณตัวเลขด้วย 100 ซึ่งหมายความว่า 12.12 แทนด้วย 1212 และฉันหารด้วย 100 เพื่อการแสดงผล …

1
5v Uno คุยกับ 3.3v ได้อย่างไร
ปัจจุบันฉันมี Uno (ซึ่งทำงานที่ 5v) และฉันกำลังมองหาซื้อ Due (ซึ่งทำงานที่ 3.3v เท่านั้น) ฉันต้องการให้พวกเขาสื่อสารผ่านทางอนุกรมหรือ SPI หรือคล้ายคลึงกัน แต่การเชื่อมต่อพวกเขาโดยตรงไม่ใช่ตัวเลือก (ฉันเดาว่าหมุดของ Due จะเสียหาย) มีวิธีใดที่จะทำให้การเชื่อมต่อปลอดภัยหรือไม่? หรือมีรูปแบบการสื่อสารทางเลือกที่ฉันสามารถใช้ระหว่างพวกเขาอย่างปลอดภัยแทนได้หรือไม่

2
ฉันจะสัมผัสอุณหภูมิสูงด้วย Arduino ได้อย่างไร
ฉันเคยเห็นเซ็นเซอร์วัดอุณหภูมิหลายตัว แต่อุณหภูมิสูงสุดที่พวกเขาไปได้คือ 125 องศา C (257 องศา F) ฉันต้องการอุณหภูมิที่สูงกว่านั้น ฉันกำลังคิดเกี่ยวกับการติดตั้งเซ็นเซอร์วงปิดสำหรับหัวแร้งของฉัน (สำหรับจอ LCD ที่สะดวก) แต่ฉันไม่สามารถหาวิธีรับรู้อุณหภูมิของปลายเนื่องจากอุณหภูมิการทำงานสูงกว่าเซ็นเซอร์ส่วนใหญ่

4
อะไรคือความแตกต่างระหว่างการประกาศตัวแปรภายนอกลูปและการประกาศสแตติกภายในลูป
นี่คือสองวิธีที่ฉันสามารถเก็บตัวแปรนอกลูป (หรือฟังก์ชันใด ๆ ) ก่อนอื่นฉันสามารถประกาศด้วยขอบเขตโกลบอลนอกลูป: void setup() { Serial.begin(9600); } int count = 0; void loop() { Serial.println(count); count++; delay(250); } ฉันยังสามารถประกาศว่ามันคงอยู่ในวง: void setup() { Serial.begin(9600); } void loop() { static int count = 0; Serial.println(count); count++; delay(250); } สิ่งนี้จะมีความแตกต่างอะไรบ้าง?

8
วิธีที่ดีที่สุดในการตรวจสอบว่าเหยือกน้ำขนาด 5 แกลลอนว่างเปล่าหรือเปล่า
ฉันมีเครื่องชงกาแฟที่ได้รับน้ำจากหนึ่งใน 5 แกลลอนขวดน้ำสีฟ้า (ฉันจะดิ่งลง แต่น้ำของเราที่นี่เป็น WAAAAY ยากเกินไป) ถ้าฉันตั้งใจปล่อยให้น้ำหมดขวดปั๊มหมุนในเครื่องชงกาแฟจะถูกทำลายซึ่งจะเป็นความผิดพลาดที่มีค่าใช้จ่ายสูง ฉันรู้ว่าฉันสามารถติดตั้งเซ็นเซอร์ลอยแม่เหล็กบางชนิดในขวดน้ำได้ แต่เนื่องจากฉันต้องเปลี่ยนมันทุกๆสองสามสัปดาห์การมีสิ่งอื่นในขวดจะทำให้เปลี่ยนได้ยากขึ้นและการปนเปื้อนของเชื้อจุลินทรีย์มีแนวโน้มมากขึ้น ปั๊มที่สูบน้ำออกจากขวดจะผนึกแน่นที่ฝาและสิ่งใดก็ตามที่ทำงานภายใต้มันหรือผ่านมันจะทำให้ผนึกนั้นเสียหาย มีบางอย่างที่ฉันสามารถใช้เพื่อตรวจสอบว่าระดับน้ำต่ำจากด้านนอกของขวดหรือไม่? เหมือนเซ็นเซอร์เลเซอร์หรือไม่?

2
เหตุใดจึงมีเพียง 2 ไบต์เท่านั้น
เมื่อใช้ C / C ++ บนแพลตฟอร์มอื่น ๆintโดยทั่วไปจะเป็นประเภท 4 ไบต์ (หรือมากกว่านั้น) อย่างไรก็ตามบน Arduino มันมีเพียง 2 ไบต์ ทำไมถึงแตกต่าง มันส่งผลกระทบต่อประสิทธิภาพการทำงานหรือไม่ถ้าฉันใช้ 4 ไบต์longแทน

3
ควบคุมอุณหภูมิของน้ำได้อย่างแม่นยำ
ฉันมีการตั้งค่าต่อไปนี้: Arduino Duemilanove เครื่องทำน้ำอุ่นขนาดเล็กเชื่อมต่อกับรีเลย์ออปติคอล (PWM ก็โอเค) เซ็นเซอร์อุณหภูมิ DS18B20 กันน้ำ ปริมาณน้ำที่ไม่ทราบ (แต่เซ็นเซอร์อุณหภูมิและเครื่องทำความร้อนอยู่ใต้น้ำเสมอ) ฉันจะควบคุมอุณหภูมิของน้ำอย่างแม่นยำได้อย่างไรจากการอ่านเซ็นเซอร์อุณหภูมิ โดยความแม่นยำฉันหมายถึงความแม่นยำของเซ็นเซอร์อุณหภูมิ (ในกรณีนี้คือ± 0.5 ° C) ทุกอย่างควรทำงานบน Arduino ดังนั้นจึงไม่มีการจัดเก็บข้อมูลเพิ่มเติมหรือกำลังประมวลผล สำหรับการแก้ไขข้อบกพร่องฉันสามารถใช้คอมพิวเตอร์ได้อย่างชัดเจน ฉันได้ลองใช้ PID แล้ว แต่ดูเหมือนว่าจะยากจริงๆ หลีกเลี่ยงการแก้ไขปัญหามากเกินไป - ไปที่อุณหภูมิเป้าหมายไม่ว่าในขั้นต้นหรือเมื่อมีการเพิ่มน้ำ (เย็น) รักษาเสถียรภาพให้เหมาะสมหลังจากเติมน้ำเย็น
9 pwm  pid 

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