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

การสื่อสารแบบอนุกรมเป็นการเชื่อมต่อ USB มาตรฐานระหว่าง Arduino และคอมพิวเตอร์ที่มีสายเคเบิล USB A ถึง B มาตรฐานหรือผ่านหมุด TX / RX โดยใช้ USB เป็นตัวแปลงอนุกรม นอกจากนี้ยังสามารถอ้างถึงไลบรารีอนุกรม

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

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

20
โปรแกรมการพล็อตข้อมูลแบบอนุกรม
ฉันต้องการลงจุดข้อมูลอนุกรมจาก Arduino ฉันต้องการการสนับสนุนสำหรับ: รูปแบบข้อมูลต่าง ๆ (เช่นลงนาม, ไม่ได้ลงชื่อ, 8 บิต, 16 บิต); แปลงข้อมูลจำนวนมากบนแกนเดียวกัน ส่งออก / นำเข้าข้อมูลไฟล์ เนื่องจากการวางแผนข้อมูลอนุกรมจาก Arduino เป็นความต้องการทั่วไปคำถามของฉันคือ: มีโปรแกรม / ยูทิลิตี้อะไรบ้างสำหรับการวางแผนข้อมูลอนุกรมจาก Arduino ที่ตรงกับความต้องการข้างต้น ข้อดี / ข้อเสียของวิธีการที่คุณแนะนำคืออะไร?
36 serial 

6
Serial.begin (): ทำไมไม่ใช้ 28800 เสมอ?
ในโค้ดตัวอย่างจำนวนมากที่บุคคลทั่วไปเพิ่มบรรทัดSerial.begin(9600)ในบล็อกการตั้งค่า เมื่อฉันค้นหาสิ่งที่Serial.begin()มีอยู่ในเอกสารอย่างเป็นทางการก็บอกว่ามันควบคุมบิตต่อวินาทีการถ่ายโอนข้อมูล ดังนั้นคำถามที่ชัดเจนคือทำไมไม่ใช้ 28800 อัตราการถ่ายโอนสูงสุด ทำไมคนถึงเลือก 9600 ข้อ จำกัด ที่นี่คืออะไร
34 serial 

3
ทำไมการเริ่มต้นมอนิเตอร์แบบอนุกรมเริ่มร่างใหม่
หากฉันอัปโหลดภาพร่างใด ๆ ที่ส่งข้อมูลอนุกรมฉันจะเห็นไฟแฟลช TX / RX ทันทีที่อัปโหลดภาพร่าง ถ้าฉันเริ่มการตรวจสอบแบบอนุกรมร่างจะปรากฏขึ้นเพื่อเริ่มต้นใหม่ ร่างขั้นต่ำเปลือยที่แสดงพฤติกรรมนี้: void setup() { Serial.begin(9600); Serial.println("Setup"); } void loop() { Serial.println("Loop"); delay(1000); } ทดสอบกับบอร์ดหลายรุ่นรวมถึง IDE และ Mac และ Windows ตัวอย่างผลลัพธ์ - มันกลับไปที่ "ตั้งค่า" เมื่อฉันเปิดมอนิเตอร์อนุกรม: ทำไมนี้


5
ความแตกต่างระหว่าง Serial.write และ Serial.print คืออะไร? แล้วพวกเขาจะใช้เมื่อไหร่?
ความแตกต่างระหว่าง Serial.write และ Serial.print คืออะไร? แล้วพวกเขาจะใช้เมื่อไหร่? ทั้งสองถูกใช้เพื่อพิมพ์บนจอภาพอนุกรมอะไรคือความแตกต่างที่แท้จริงของพวกเขา?
26 serial 

2
Arduino เป็น USB HID
เป็นไปได้ไหมที่จะสร้างอุปกรณ์ HID (เช่นแป้นพิมพ์) โดยใช้ Arduino uno ในขณะนั้นฉันมีปุ่มอินพุตที่ Arduino ให้เอาท์พุทบนสายอนุกรม ดังนั้นฉันจะแปลงเฟิร์มแวร์ปัจจุบันของฉันเป็นสิ่งที่สามารถทำงานเหมือนแป้นพิมพ์ HID ได้อย่างไร ฉันจะเขียนไดรเวอร์อุปกรณ์หน้าต่างใหม่ได้หรือไม่ ฉันจะสร้างเลเยอร์ซอฟต์แวร์ที่สามารถใช้ข้อมูลอนุกรมของฉันและให้ windows อ่านเป็นอินพุต HID ได้หรือไม่ มีวิธีใดที่ดีกว่าในการบรรลุเป้าหมายนี้หากเป็นไปได้?

4
Serial.begin (9600) คืออะไร
ฉันรู้ว่านี่คือการเริ่มต้นบางสิ่ง: Serial.begin(9600); แต่ฉันต้องการรู้ว่ามันหมายถึงอะไรจริง ๆ ?

4
รูปแบบและวิธีปฏิบัติที่ดีที่สุดของโปรโตคอลการสื่อสาร
ทุกครั้งที่ฉันออกแบบโพรโทคอลอนุกรมที่จะใช้ระหว่างสอง Arduino ฉันรู้สึกบิตเหมือนฉัน reinventing ล้อ ฉันสงสัยว่ามีวิธีปฏิบัติที่ดีที่สุดหรือรูปแบบที่ผู้คนติดตาม คำถามนี้น้อยเกี่ยวกับรหัสจริง แต่เพิ่มเติมเกี่ยวกับรูปแบบของข้อความ ตัวอย่างเช่นถ้าฉันต้องการบอกให้อาร์ดิโนแฟลชมันเป็น LED ครั้งแรก 3 ครั้งฉันอาจส่ง: ^L1,F3\n '^': เริ่มคำสั่งใหม่ 'L': กำหนดคำสั่ง (L: กำหนดเป้าหมายคำสั่งนี้เป็น LED) '1': กำหนดเป้าหมาย LED แรก ',': ตัวคั่นบรรทัดคำสั่งค่าใหม่ในข้อความนี้เพื่อติดตาม 'F': คำสั่งย่อยของ Flash '3': 3 ครั้ง (แฟลช LED สามครั้ง) '\ n': จบคำสั่ง คิด? คุณมักจะเขียนโปรโตคอลอนุกรมใหม่อย่างไร ถ้าฉันต้องการส่งแบบสอบถามจาก arduino 1 ถึง arduino 2 แล้วรับการตอบกลับ
19 serial 

13
การอัปโหลด Arduino Nano ให้ข้อผิดพลาด: avrdude: stk500_recv (): โปรแกรมเมอร์ไม่ตอบสนอง
ฉันมีArduino Nano (Sainsmart)ที่ฉันพยายามอัพโหลดภาพร่าง ภายใต้ Arduino IDE Arduino Nano w/ ATmega328อุปกรณ์ที่เลือกเป็น อย่างไรก็ตามการอัพโหลดภาพร่างทำให้ฉันมีข้อผิดพลาด avrdude: stk500_recv(): programmer is not responding ฉันลองทั้งพอร์ต USB ( /dev/tty.usbserial& /dev/cu.usbserial) แต่ข้อผิดพลาดเดิมยังคงอยู่ Arduino เชื่อมต่อกับ Macbook Air ผ่านสาย USB และPWRไฟแสดงสถานะ LED บน Arduino เปิดอยู่และLไฟแสดงสถานะ LED กะพริบ ไม่มีปัญหาในการอัปโหลดไปยัง Arduino Uno ลองหลังจากติดตั้งไดรเวอร์ FTDI ล่าสุด (Mac OSX, x64, v2.2.18, FTDIUSBSerialDriver_10_4_10_5_10_6_10_7.mpkg) จากhttp://www.ftdichip.com/Drivers/VCP.htm อย่างไรก็ตามมันก็ไม่ได้ช่วยอะไร มีอะไรผิดพลาดหรือเปล่า?

2
ทำไมฉันไม่สามารถอัพโหลดภาพร่างได้ในขณะที่ส่วนประกอบ / อุปกรณ์อื่นเชื่อมต่อกับ Uno ของฉัน
ฉันต้องการสร้างวงจรที่ค่อนข้างเรียบง่ายซึ่งจะทำการแฟลชชุด LED ตามลำดับโดยใช้ Arduino Uno ของฉัน (โดยเฉพาะเจาะจงมากขึ้นนั่นคือโคลน SainSmart) ฉันเขียนสเก็ตช์ของฉันและมันก็คอมไพล์แล้ว หลังจากนั้นฉันเชื่อมต่อตัวต้านทาน 8 LEDS + กับพิน 0 ถึง 7 แล้วเชื่อมต่อ Uno เข้ากับคอมพิวเตอร์ของฉันผ่าน USB ฉันเคยอัปโหลดภาพร่างสำเร็จแล้วดังนั้นฉันจึงมั่นใจว่าการตั้งค่าและไดรเวอร์อื่น ๆ ของฉันนั้นถูกต้อง อย่างไรก็ตามเมื่อฉันพยายามอัพโหลดภาพร่างของฉันในครั้งนี้มันไม่ทำงาน ฉันพยายามลบทุกอย่างที่ฉันเชื่อมต่อกับหมุดของ Arduino และทันใดนั้นการอัปโหลดก็ใช้งานได้อีกครั้ง ทำไมสิ่งนี้ถึงเกิดขึ้น มันหมายความว่าฉันต้องตัดการเชื่อมต่อทุกสิ่งออกจากกระดานทุกครั้งที่ฉันอัพโหลดภาพร่าง?

1
การสื่อสารแบบอนุกรมทำงานบน Arduino อย่างไร
อ้างอิงถึง Arduino Uno, Mega2560, Leonardo และบอร์ดที่คล้ายกัน: การสื่อสารแบบอนุกรมทำงานอย่างไร ซีเรียสนั้นเร็วแค่ไหน? ฉันจะเชื่อมต่อระหว่างผู้ส่งและผู้รับได้อย่างไร โปรดทราบ: นี่เป็นคำถามอ้างอิง

1
Arduino Nano ไม่มีพอร์ตอนุกรมสำหรับ MacBook Air 2013
ปัญหา ฉันมี Arduino Nano เชื่อมต่อผ่านสาย USB (Type A ถึง Mini Type B) กับ MacBook Air ของฉัน (รุ่น 2013) LED PWR เปิดอยู่ขณะที่เชื่อมต่อกับ Arduino การเปิดซอฟต์แวร์ Arduino การดึงTools > Serial Portเมนูไม่แสดงพอร์ตอนุกรมที่ถูกต้อง ทั้งหมดที่ฉันเห็นคือ: /dev/tty.Bluetooth-Incoming-Port /dev/cu.Bluetooth-Incoming-Port /dev/tty.Bluetooth-Modem /dev/cu.Bluetooth-Modem สิ่งที่ฉันได้ลองและไม่ได้ผล ฉันติดตั้งไดรเวอร์ FTDI ที่ถูกต้อง (v2.2.18) x64 สำหรับ Corei5 MacBook Air FTDIUSBSerialDriver_10_4_10_5_10_6_10_7.mpkgของแฟ้มของฉัน เริ่มต้นใหม่หลังจากการติดตั้ง พยายามเชื่อมต่อกับ Arduino ทั้งสองพอร์ต USB บน …

6
ฉันจะทราบความถี่การสุ่มตัวอย่างได้อย่างไร
ฉันเริ่มสับสนเล็กน้อยเกี่ยวกับอัตราการสุ่มตัวอย่างและการรับส่งข้อมูล ฯลฯ ฉันมีรหัส Arduino นี้: #include <eHealth.h> extern volatile unsigned long timer0_overflow_count; float fanalog0; int analog0; unsigned long time; byte serialByte; void setup() { Serial.begin(9600); } void loop() { while (Serial.available()>0){ serialByte=Serial.read(); if (serialByte=='S'){ while(1){ fanalog0=eHealth.getECG(); // Use the timer0 => 1 tick every 4 us time=(timer0_overflow_count << 8) + …

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