Arduino

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

7
I2C LCD Serial Interface Board ไม่แสดงข้อความ (มีพินผิดหรือเปล่า?)
ฉันมีหน้าจอ LCD 1602 ที่ทำงานได้ดีในตัวของมันเอง อย่างไรก็ตามฉันต้องการทำให้บางพินฟรีโดยใช้คอนโทรลเลอร์ I2C / IIC LCD ที่ฉันซื้อแยกต่างหาก ในขณะที่คอนโทรลเลอร์ดูเหมือนว่าจะสื่อสารกับ Arduino UNO ของฉันตามที่อยู่ที่ถูกต้อง แต่ฉันไม่สามารถรับข้อความที่จะแสดง ตามค่าเริ่มต้น (ไม่มีรหัส) ดูเหมือนว่า LCD จะมี 1 เส้น 16 "สี่เหลี่ยม" ทึบ เมื่อใช้ที่อยู่ 27 ในรหัสของฉันจอ LCD จะเปลี่ยนเป็น 16 บรรทัด 2 เส้น (ดูรูปด้านล่าง) รหัสยังต้องการให้ไฟแบ็คไลท์กะพริบ 3 ครั้งซึ่งใช้งานได้ อย่างไรก็ตามฉันไม่สามารถรับอะไรได้นอกจากสี่เหลี่ยมสองเส้น (รหัสเต็มอยู่ที่ด้านล่างของคำถามนี้) ฉันใช้ไลบรารี่ LiquidCrystal_I2Cโดย F Malpartida ซึ่งดูเหมือนจะใช้กันทั่วไป มีห้องสมุดที่ดีกว่าที่ฉันควรใช้? ฉันสงสัยว่ามันเป็นเพียงพินผิดที่ใช้ในรหัส ภาพร่างทั้งหมดที่ฉันเห็นทางออนไลน์ให้ใช้หมุดต่อไปนี้: // addr,en,rw,rs,d4,d5,d6,d7,bl,blpol …
9 i2c  lcd 

1
SPI Arduino เนื่องจากข้อขัดแย้งกับ pinMode (), ข้อผิดพลาด?
ลองพิจารณาตัวอย่างเล็กน้อยต่อไปนี้ที่ฉันตั้งค่าpinModeก่อนเรียกใช้ฟังก์ชัน SPI: #include <SPI.h> void setup() { pinMode(10, OUTPUT); SPI.begin(10); SPI.setDataMode(10,SPI_MODE1); } void loop() { delay(1000); SPI.transfer(10,1); } ตอนนี้เมื่อSPI.transfer(10,1)ถูกเรียกเข้าไปloop()ฉันเห็นเสมอว่าพินที่เลือกของทาสนั้นลดลงเหลือ 1.65V แต่ไม่ใช่ 0 เท่าที่ควร! (ดูภาพด้านล่าง) หากเราไม่โทรpinMode()เช่นนี้: #include <SPI.h> void setup() { SPI.begin(10); SPI.setDataMode(10,SPI_MODE1); } void loop() { delay(1000); SPI.transfer(10,1); } เราได้สิ่งที่เราคาดหวังเมื่อโทรSPI.transfer: นั่นเป็นข้อบกพร่องหรือคุณมีคำอธิบายสำหรับพฤติกรรมนั้นหรือไม่? ขอบคุณล่วงหน้าสำหรับเวลาและความสนใจของคุณ!

4
ฟังก์ชั่นภายนอกของ void loop นั้นทำงานอย่างไร
ฉันคุ้นเคยกับภาพร่าง Arduino ซึ่งมีชิ้นvoid setup()ส่วนที่ทำงานเพียงครั้งเดียวและvoid loop()ส่วนที่วนซ้ำไปเรื่อย ๆ จะเกิดอะไรขึ้นเมื่อคุณมีฟังก์ชั่นโมฆะด้านนอกของหลักvoid loop()? ทั้งหมดนี้จะวนซ้ำไปเรื่อย ๆ หรือพวกมันวิ่งไปเรื่อย ๆ หรือไม่? หรือฟังก์ชั่นโมฆะบางฟังก์ชั่นจะทำงานเฉพาะเมื่อตรงตามเกณฑ์ที่กำหนด (เช่นในขณะที่ลูป)? ตัวอย่างเช่นในรหัสด้านล่างเมื่อใดvoid receiveData(int byteCount)และvoid sendData()ฟังก์ชันจะทำงานอย่างไร //I2C_test //This code demonstrates communication via an I2C bus between a raspberry pi and an arduino. //When the Raspberry pi (master) sends data to the Arduino (slave), the Arduino uses this …

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 = ลบแบ็คไลท์ …

2
วิธีส่งตัวเลขไปยัง Arduino UNO ผ่าน Python 3 และอนุกรมโมดูล
ฉันยังใหม่กับ Arduino (และการเขียนโปรแกรมคอมพิวเตอร์ทั่วไป) ดังนั้นฉันต้องขออภัยถ้าคำถามนี้ดูโง่ เมื่อฉันตั้งค่าการเชื่อมต่อ arduino-LED พื้นฐานฉันมีปัญหาในการส่ง INTEGERS ไปยัง arduino ผ่านพอร์ตอนุกรม ฉันสามารถส่งตัวอักษรเช่น 'm', 'o' และอื่น ๆ ได้อย่างง่ายดาย .. อย่างไรก็ตามถ้าฉันส่งหมายเลขดูเหมือนว่ามันจะไม่ได้รับ นี่คือรหัส Arduino ที่ควรจะได้รับค่าจากพอร์ต usb ผ่าน python หรือจอภาพอนุกรมแล้วปรับความสว่างของ LED ตามค่า (ค่าต้องอยู่ในช่วง [0,255]) หมายเหตุ: ฉันกำลังใช้ ARDUINO UNO และ PYTHON 3 // -------------------------- int LED = 10; int number; void setup(){ pinMode(LED,OUTPUT); Serial.begin(9600); } …

6
หน่วงเวลานานมาก () เป็นไปได้หรือไม่
ฉันกำลังพยายามเปิดและปิดประตูเล็ก ๆ ที่ควรเปิดหรือปิดทุก ๆ 12 ชั่วโมง ฉันสงสัยว่าฉันสามารถสร้างสคริปต์ลูปขนาดเล็กที่มีการหน่วงเวลา () เป็นเวลา 12 ชั่วโมงล่าช้า (43 200,000 ล้าน); ฉันคิดว่า? อย่างไรก็ตามฉันไม่รู้ว่ามันเป็นไปได้และ / หรือแนะนำได้ ข้อเสนอแนะ / ทางเลือก (ถ้าจำเป็น) จะดี :)

3
Digital Read Serial tutorial - การคำนวณค่าตัวต้านทาน
บทแนะนำเกี่ยวกับArduino Digital Read Serialจะแนะนำคุณเกี่ยวกับการต่อสายไฟของปุ่มต่างๆ คำถามของฉันอยู่กึ่งกลางตัวต้านทาน ทำไมตัวต้านทานจำเป็น? ฉันคิดว่าฉันเข้าใจสิ่งนี้ แต่แก้ไขฉันถ้าฉันผิด เพื่อให้แน่ใจว่าพินอินพุตอ่านสัญญาณต่ำและไม่ลอยเราควรเชื่อมต่อพินกับกราวด์เมื่อไม่ได้กดปุ่ม เมื่อกดปุ่มเราจะมีสัญญาณ 5V ไหลไปทั้งขาและต่อลงดิน กฎแรงดันไฟฟ้าของ Kirchhoff ระบุว่าแรงดันไฟฟ้ารวมในลูปปิดต้องเท่ากับศูนย์ดังนั้นเราต้องจัดการกับ 5V นี้ที่ไหลโดยตรงกับพื้น นั่นคือเหตุผลที่เราใส่ตัวต้านทานระหว่างปุ่มกับกราวด์ ค่าตัวต้านทานถูกเลือกอย่างไร? นี่คือสิ่งที่ฉันไม่ชัดเจน กฎของโอห์มระบุว่า ... resistance = voltage / current นี่เป็นแหล่งจ่ายไฟ 5V และสเป็คArduino Unoบอกว่าพินจ่ายกระแสไฟ 40 mA ดังนั้น.. resistance = 5V / 0.04A = 125 Ohms ในบทแนะนำการอ่าน Digital Read Serial เหตุใดเราจึงมีตัวต้านทาน 10K Ohms นั่นเป็นวิธีที่มากไปใช่ไหม? …

1
จำเป็นต้องมีความผันผวนหรือไม่เมื่อเข้าถึงตัวแปรจาก> 1 ISR แต่ไม่แชร์ภายนอก ISR
มีการบันทึกไว้อย่างชัดเจนว่าเมื่อมีการแบ่งปันข้อมูลทั่วโลกกับ ISR และโปรแกรมหลักข้อมูลจะต้องประกาศvolatileเพื่อรับประกันการมองเห็นหน่วยความจำ (และนั่นเพียงพอสำหรับข้อมูล 1 ไบต์เท่านั้นสิ่งที่ใหญ่กว่าต้องมีการจัดการพิเศษเพื่อรับประกันอะตอม . ที่นี่เรามีกฎระเบียบที่ดี: ตัวแปรที่ใช้ภายนอก ISR เท่านั้นไม่ควรเปลี่ยนแปลงได้ ตัวแปรที่ใช้ภายใน ISR เท่านั้นไม่ควรเปลี่ยนแปลงได้ ตัวแปรที่ใช้ทั้งภายในและภายนอก ISR ควรมีความผันผวน แต่volatileจำเป็นเมื่อมีการเข้าถึงตัวแปรจาก> 1 ISR แต่ไม่ได้ใช้ร่วมกันนอก ISR ตัวอย่างเช่นฉันมีฟังก์ชั่นที่รักษาสถานะภายในโดยใช้staticตัวแปร: void func() { static volatile long counter; // volatile or not? // Do stuff with counter etc. } ฟังก์ชั่นนั้นเรียกว่าสองวิธี: จากการขัดจังหวะด้วยพินและจากไลบรารี TimerOne : attachInterrupt(0, func, CHANGE); Timer1.attachInterrupt(func); ไม่มีปัญหา …
9 interrupt  timers  isr 

2
millis () ขัดแย้งกับหมุด PWM ที่เกี่ยวข้องกับตัวจับเวลา 0 หรือไม่
ฉันได้อ่านแล้วว่าmillis()ฟังก์ชั่นนี้ใช้ตัวจับเวลาเดียวกันกับหมุด PWM สองสามตัว หากคุณใช้หมุด PWM เหล่านั้นจะmillis()ยังคงส่งคืนค่าที่ถูกต้องหรือไม่
9 timers  pwm  millis 

4
พอร์ตอนุกรมที่เข้ากันได้ของ Arduino ไม่แสดง Mac OSX
ฉันซื้อบอร์ด Freaduino ที่เข้ากันได้กับ Arduino atmega8 (ฉันเลือกประเภทบอร์ดเป็น Arduino ng หรือ atmega8 ที่เก่ากว่า) ฉันติดตั้ง Arduino IDE บน Mac OS X และไดรเวอร์ FTDI แต่พอร์ตอนุกรมของฉันมีลักษณะเช่นนี้เมื่อฉันเชื่อมต่อบอร์ด: และเมื่อฉันพยายามอัปโหลดโปรแกรมนี่เป็นข้อผิดพลาดที่ฉันได้รับ: ใครสามารถบอกฉันว่าอะไรคือความผิดพลาด? ฉันไร้เดียงสา UPDATE : ปัญหาคือฉันไม่ได้ติดตั้งไดรเวอร์อย่างถูกต้อง (ฉันเดา) ฉันถอนการติดตั้งและติดตั้งใหม่และทำงานได้อย่างสมบูรณ์ ยังทำให้การสอน YouTube เกี่ยวกับการเดียวกัน http://youtu.be/BwatajQO_88

3
คำถามไปป์ nRF24L01
ฉันกำลังมองหารหัสผ่านตัวอย่างที่พบที่นี่ ฉันรู้ว่ามี 6 ท่อที่โมดูล nRF24L01 สามารถใช้ได้ แต่ฉันค้นหาอินเทอร์เน็ตเพื่อหาที่อยู่และไม่สามารถหาอะไรได้ โดยเฉพาะอย่างยิ่งในบรรทัดที่ 37 มีการอ้างอิงว่าผู้เขียนได้รับ 0xF0F0F0F0E1LL, 0xF0F0F0F0F0F0D2LL หรือไม่? ขอบคุณ


2
RFID / NFC (13.56 MHz) เป็นไปได้ไหมที่จะส่งข้อมูลดิบและรับการตอบกลับ?
ฉันกำลังพยายามใช้เครื่องอ่านบัตร (เช่นบัตรเครดิต) เพื่อการช็อปปิ้งและ AFAIK บัตรเหล่านั้นเป็นไปตามมาตรฐาน ISO 14443-A (Mifare Classic 1K) ฉันได้สร้างแอพ Android ที่สามารถส่ง APDU ที่กำหนดเองเพื่ออ่านเซกเตอร์ที่เฉพาะเจาะจงโดยใช้ SendBytes แบบดิบ () เนื่องจากฉันต้องการสร้างวงจรด้วยเสาอากาศที่กำหนดเองฉันเลือก Arduino-uno กับโมดูล NFC (กำลังคิดเกี่ยวกับ StrongLink SL013) ฉันอยากรู้ว่ามันเป็นไปได้ที่จะส่งไบต์ดิบและรับการตอบสนองจากแท็ก ฉันพบการใช้งานระดับสูงขึ้นเพียงบางส่วนเท่านั้น (readSector, writeSector และอื่น ๆ )
9 arduino-uno  rf  rfid 

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

3
วิธีการเขียนภาพร่างที่เข้ากันได้กับ makefile?
ฉันต้องการเขียนภาพร่างของฉันเพื่อให้ฉันสามารถสร้าง / อัปโหลดโดยใช้ Arduino IDE หรือเลือกที่จะใช้ GCC และ makefile ก็ได้ ฉันรู้เกี่ยวกับการรวมฟังก์ชั่นการประกาศที่ด้านบน แต่มีอะไรอีกที่ต้องทำเพื่อให้ร่างของฉันได้รับการพิจารณา C ++ ที่ถูกต้องโดยคอมไพเลอร์ของฉัน อัปเดต 1 การทำความเข้าใจกับสิ่งที่ Arduino IDE ทำกับไฟล์. iino และ. pde นั้นใช้ได้ แต่ไม่เกี่ยวข้องกับคำถามของฉันดังนั้นนี่จึงไม่ใช่สิ่งที่ซ้ำกัน สิ่งที่ฉันต้องการรู้คือ "ฉันจะเขียนโปรแกรมอย่างไรเพื่อให้ถือว่าถูกต้องทั้งโดย Arduino IDE และ g ++ makefile อย่างเป็นทางการ (?) มีอยู่ที่นี่อธิบายว่าต้องทำอย่างไรถ้าใช้ makefile แทน IDE: # The Arduino environment does preliminary processing on a sketch …

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