Lập trình arduino thông qua vấn đề mô-đun bluetooth


7

Tôi đã làm theo một hướng dẫn về cách thiết lập arduino và bluetooth để nó có thể được lập trình mà không cần cáp usb. Tôi đã không sử dụng tụ điện hoặc điện trở asthere dường như không cần thiết cho chúng. Tôi có đầu ra nối tiếp xuất hiện trên bảng điều khiển nối tiếp arduino qua bluetooth (không có cáp usb được kết nối). Vì là một kết nối làm việc có nghĩa là nó đang làm việc đến một điểm. Tuy nhiên, khi cố gắng tải lên, tôi gặp lỗi "avrdude: stk500_getsync (): không đồng bộ hóa: resp = 0x4c".

Tôi chưa kết nối chân 32 của hc-05 với pin reset arduino, đó có phải là vấn đề không? Tôi thực sự không cần thiết lập lại arduino vì bây giờ tôi có thể tiêu diệt nguồn điện bằng tay ít nhất. Tôi cũng đã sử dụng 9600 như tốc độ baud thay vì 115200 như trong hướng dẫn, bởi vì mã arduino của tôi đã sử dụng 9600 nhưng có lẽ tôi đã hiểu nhầm điều này và nó thực sự cần là 115200 bất kể tốc độ baud của tôi trong mã arduino là gì?

Điều gì khác có thể là nguyên nhân?

Chỉnh sửa 1:

Từ câu trả lời của @sachleen, tôi đã thay đổi tốc độ baud theo hướng dẫn và chân hàn 32 của mô-đun hc-05 thành chân đầu tiên của arduino.

Sau khi thay đổi tốc độ baud, mở giao diện điều khiển nối tiếp arduino không còn xuất ra bất cứ thứ gì. Tại sao điều này xảy ra? Tôi đã nhận được đầu ra nối tiếp trước đây khi tốc độ truyền của hc-05 là 9600.

Sau khi hàn, arduino pin đầu tiên dường như cũng thiết lập lại sau khi bàn điều khiển nối tiếp được mở. Tôi đã không thêm các tụ điện, nó là cần thiết và nếu vậy tại sao? Tôi cũng loại trừ các điện trở vì có vẻ như chúng chỉ để giảm điện áp từ 5v xuống 3V (arduino của tôi là phiên bản 3.3V).


bạn đã sửa nó chưa?
emj365

@ emj365 Tôi có nhưng tiếc là đã lâu lắm rồi tôi mới không nhớ. Tôi nên thêm câu trả lời trước khi tôi quên nhưng tôi cũng quên làm điều đó :) Sẽ thêm câu trả lời nếu tôi gặp lại vấn đề này. Tôi nhớ nó là một vấn đề đơn giản.
Đaminh

@ emj365 Vẫn không nhớ chắc chắn. Mô hình Arduino nào bạn đang sử dụng và baudrate là gì?
Đaminh

Cảm ơn đã cố gắng. Tôi đã sử dụng Uno giả và thay đổi tốc độ baud ESP8266 (mới và rất rẻ) thành 115200.
emj365

@ emj365 Vâng, tôi đã sử dụng một mô-đun Bluetooth để nó có thể là một vấn đề khác nhưng sau đó nó có thể là vấn đề chính xác. Hãy thử 57600 baudrate như những gì tôi có trong bản phác thảo Arduino cũ của tôi. Ngoài ra baudrate cho mô-đun ESP8266 là gì?
Đaminh

Câu trả lời:


3

Tôi đã viết hướng dẫn mà bạn đang theo dõi để có thể tôi có thể giúp đỡ. Khi tôi đang xây dựng mạch ban đầu, tôi đã sử dụng một số hướng dẫn khác về lập trình Bluetooth Arduino không có nhiều điện trở và tụ điện phụ. Tuy nhiên, tôi không thể khiến bất cứ ai trong số họ làm việc đáng tin cậy. Sử dụng một trình giả lập mạch và một số thử nghiệm và lỗi, tôi đã kết thúc với mạch được hiển thị trong hướng dẫn làm việc cho tôi.

Mặc dù "dường như không cần" một số thụ động bổ sung, nếu mạch của bạn không hoạt động mà không có chúng, có lẽ cuối cùng cũng cần có chúng? ;-) Bây giờ, tôi đã nghe từ những người khác rằng họ có thể bỏ đi một số bit nhất định để có vẻ như có một số thay đổi trong phần cứng. Nhưng chúng ta đang nói về bốn thụ động để đảm bảo hoạt động đáng tin cậy, vậy tại sao lại bỏ chúng?

Dù sao, một vài điểm:

  1. Chân 32 trên HC-05 sẽ hoạt động khi kết nối Bluetooth. Chúng tôi định cấu hình pin hoạt động ở mức thấp để chúng tôi có thể sử dụng nó để tự động đặt lại Arduino khi kết nối nối tiếp để mô phỏng những gì xảy ra với kết nối USB thông thường. Bạn chỉ có thể rời khỏi kết nối tới chân 32 nếu bạn muốn phải tự thiết lập lại Arduino để lập trình nó.

  2. Tốc độ baud 115200 là tốc độ lập trình Arduino và được thiết lập bởi bộ tải khởi động Arduino. Có thể flash lại bộ tải khởi động với một cấu hình khác nếu bạn cần vì một số lý do.

    Vì vậy, tốc độ baud lập trình được cố định trong bộ tải khởi động, nhưng tốc độ baud truyền thông có thể cấu hình trong phần mềm bằng cách sử dụng Serial.begin(). Tuy nhiên, tốc độ truyền của HC-05 phải giống với tốc độ của Arduino, vì vậy bạn cần phải có cùng tốc độ truyền cho cả lập trình và giao tiếp (115200 theo mặc định).

  3. Có hai điện trở liên quan đến thiết lập lại, R3 và R2. Tôi tin rằng R2 chỉ cần thiết cho 5V Arduinos hoạt động như một bộ chia điện áp với R3. Tuy nhiên, R3 nên được bao gồm cho bất kỳ Arduino điện áp. Xem ghi chú thiết kế Atmel này - "Dòng thiết lập lại có điện trở kéo lên bên trong, nhưng nếu môi trường ồn thì có thể không đủ và do đó thiết lập lại có thể xảy ra lẻ tẻ ... Điện trở kéo lên này đảm bảo rằng thiết lập lại không xuống thấp ngoài ý muốn." R3 nên từ 4,7k trở lên; Hầu hết các thiết kế gắn bó với 10k.

  4. Tụ điện C1 là cần thiết vì Pin 32 ở mức thấp trong toàn bộ thời gian Bluetooth được kết nối. Nếu bạn kết nối RST với Pin 32 trực tiếp, Arduino sẽ chỉ thiết lập lại cho đến khi kết nối Bluetooth giảm xuống và không có gì hoạt động giống như khi bạn nhấn giữ nút đặt lại và không bao giờ buông tay.

    Với C1 tại chỗ, khi Pin 32 xuống thấp, nó sẽ xả C1 ngay lập tức, kéo RST xuống thấp và đặt lại Arduino. C1 sẽ ngay lập tức bắt đầu sạc qua R3 trở lại VCC, nó sẽ khôi phục RST lên cao, đưa Arduino ra khỏi thiết lập lại. Các giá trị của R3 và C1 ảnh hưởng đến thời gian thiết lập lại và phải được chọn một cách thích hợp.

  5. Đừng quên R1. Tôi không thể nhớ lý do nó hữu ích, nhưng nó có liên quan đến Arduino / Atmel UART. Tôi đã tìm thấy đề xuất cho việc thêm nó một ngày trên bảng thảo luận Atmel và nó đã giải quyết một mạch không hoạt động cho tôi nhiều lần.

Mong rằng sẽ giúp!


Cảm ơn bạn đã dành thời gian để giải thích mặc dù tôi không hiểu tại sao ít nhất một số thông tin này không có trong hướng dẫn ban đầu. Hầu như không có bất kỳ văn bản nào cả :) Bạn cũng sai ở một số điểm và quá mơ hồ đối với những người khác. Đầu tiên, tốc độ 115200 baud là một lý do tại sao nó không hoạt động với tôi. Arduino Pro Micro sử dụng tốc độ 57600 baud. Tôi cũng không cần sử dụng bất kỳ điện trở nào và tôi đã sử dụng tụ điện 450 nf và có lẽ hầu như mọi giá trị đều có thể hoạt động. R1 và R3 có thể hữu ích nhưng tôi không bao giờ gặp vấn đề nếu không có chúng.
Đaminh

Ngoài ra còn có một hạn chế nghiêm trọng không được đề cập trong hướng dẫn vì nó sẽ thiết lập lại khi ghép nối hoặc mở bàn điều khiển nối tiếp. Có một cách để khắc phục điều này và tôi sẽ chia sẻ nó khi tôi làm cho nó hoạt động bình thường.
Đaminh

1

Cả hai điều đó sẽ gây ra vấn đề.

Nó cần phải thiết lập lại khi tải xuống một bản phác thảo mới. Bạn có thể đặt lại thủ công vào đúng thời điểm, nhưng nếu bạn không đúng thời điểm, bạn sẽ gặp vấn đề đó.

Tốc độ truyền mà bạn đặt trong mã của mình để liên lạc nối tiếp trở nên không liên quan khi bạn đang tải một bản phác thảo mới như được đặt trong bộ tải khởi động. Giữ nó ở mức 115200 như hướng dẫn gợi ý.


Ok, tôi đã thay đổi tốc độ baud nhưng bây giờ tôi không nhận được bất kỳ đầu ra nào từ bảng điều khiển nối tiếp. Tại sao? Sẽ cố gắng hàn pin cho mô-đun bây giờ.
Đaminh

Tôi đã kết nối chân thiết lập arduino với chân 32 của mô-đun hc-05 nhưng vẫn không thể lập trình được. Nó dường như cũng thiết lập lại hoặc thu giữ mã thực thi trong một thời gian khi bàn điều khiển nối tiếp được mở nhưng vẫn không có đầu ra. Tôi đã kết nối trực tiếp pin đầu tiên, tôi không biết phải làm gì với sơ đồ hiển thị tụ điện và điện trở liên quan đến pin đầu tiên. Arduino của tôi là phiên bản 3.3V vì vậy tôi không cần bộ chia điện áp.
Đaminh

1

Bạn đã có TX từ mô-đun Bluetooth được liên kết với chân RX của Arduino chưa?

Nếu bạn có bạn cần gỡ bỏ nó trong khi tải lên. Một giải pháp tốt hơn là không sử dụng chân TX RX của Arduino và sử dụng phần mềm nối tiếp thay thế.

Đây là một tut đơn giản nhưng nó trải rộng trên một vài trang:

http://ianlangelectronic.webeden.co.uk/#/arduino-bluetooth/4583456314

Không nên sử dụng tốc độ baud Bluetooth lớn hơn 9600. Arduino đấu tranh để theo kịp nếu nó nhanh hơn thế này nhiều.


Trong khi bạn liên kết có thể trả lời câu hỏi, tốt hơn là nên bao gồm các phần thiết yếu của liên kết ở đây và cung cấp liên kết để trích dẫn. Bạn có thể vui lòng chỉnh sửa câu trả lời của bạn? Cảm ơn!
Chim cánh cụt vô danh

Tôi đang sử dụng rx / tx, vâng. Tại sao điều này sẽ gây ra vấn đề chính xác? Tôi đã thay đổi tốc độ baud thành 57600 của mô-đun bt và có thể lập trình OTA. Nó phải là tốc độ baud cụ thể vì mỗi arduino có yêu cầu tốc độ baud riêng để lập trình. Sẽ thử liên kết của bạn sau.
Đaminh

Hướng dẫn mà bạn liên kết đến sẽ chỉ cho phép giao tiếp nối tiếp, nhưng không cho Arduino được lập trình, thông qua Bluetooth. 9600 baud là một khuyến nghị tốt cho giới hạn trên an toàn khi sử dụng SoftwareSerial nhưng không áp dụng khi sử dụng UART.
imjosh

1

Tốc độ baud phụ thuộc vào mô hình arduino bạn đang sử dụng. Đối với Pro-Micro; Pro-Mini và Nano mà tôi sử dụng tôi đã phải đổi thành 57600 baud vì đó là điều mà dll (downlineloader) tạo ra cho tốc độ baud này:

avrdude: Version 5.11, compiled on Sep  2 2011 at 19:38:36
     Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
     Copyright (c) 2007-2009 Joerg Wunsch

     System wide configuration file is "C:\Program Files (x86)\Arduino\hardware/tools/avr/etc/avrdude.conf"

     Using Port                    : \\.\COM40
     Using Programmer              : arduino
     Overriding Baud Rate          : 57600

Đối với Mega, tỷ lệ Baud ghi đè là 115200.


0

Cách dễ nhất để lập trình arduino của bạn qua bluetooth (HC-05) là các bước sau

1: thay đổi tốc độ truyền của mô-đun bluetooth thành 57600 bằng cách sử dụng phần mềm seriel và đó là tất cả những gì bạn cần làm với bluetooth của mình và khi bạn sử dụng bản phác thảo phần mềm, bạn không cần bộ chuyển đổi ftdi, đây là cách bạn thực hiện ( https://www.youtube.com/watch?v=zoJUAjW3vQ0 )

2: bước tiếp theo là tạo một mạch rất đơn giản và nhỏ cho chân thiết lập lại mô-đun bluetooth của bạn giống như trong liên kết youtube này (mạch tôi đang nói đến là một mạch được làm từ bóng bán dẫn NPN, tụ điện 0,01 và một điện trở 10 k. mạch giống như một biến tần tín hiệu hoặc một cái gì đó. ( https://www.youtube.com/watch?v=xXUKfTNHkKE ). bạn sẽ tìm thấy mạch ở giữa video.

Tôi đã làm nó và nó hoạt động,

cảm ơn vì đã đọc Arman

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.