Giao tiếp GPIO-UART-to-Arduino


12

Tôi đã cố gắng không có may mắn để có được Raspberry Pi nói chuyện với Arduino. Tôi đang sử dụng bộ chuyển đổi 3,3 V-to-5 V để trao đổi điện áp. Tôi đã đặt một đèn LED trên chân UART TX, và có vẻ như nó đang đảo ngược dữ liệu. Nếu điều này là đúng, tôi cần mạch nào để khiến nó giao tiếp với Arduino?

Tôi đang sử dụng một bộ chuyển đổi mức logic thành phần mát mẻ . Nó là một bóng bán dẫn cho 3,3 V đến 5 V và điện trở cho 5 V đến 3,3 V.

Câu trả lời:


5

GPIO của Raspberry Pi là 3,3 V và chúng không dung nạp 5 V; điều này có nghĩa là nếu bạn lái 5 V cho họ, bạn có thể phá vỡ đầu vào. http://elinux.org/RPi_Low-level_perodesals có thông tin về các chân.

Bạn có thể sử dụng một trong những bảng sau:

http://store.nkcelectronics.com/5v-to-33v-logic-level-shifter-bo.html

Hoặc chỉ cần mua 74LS245 từ Digi-Key hoặc Mouser Electronics và kết nối nó như thế này:

Bộ chuyển đổi 5 V đến 3,3 chi phí thấp


3

Bạn cũng có thể sử dụng một MOSFET tăng cường kênh n duy nhất cho mỗi pin nếu bạn có một vài trong số đó. Xem bài đăng các thiết bị Raspberry Pi và I2C có điện áp khác nhau , hoặc trang 43 trong thông số kỹ thuật của bus I²C . Vì bạn chỉ cần hai chân, điều này có thể chỉ là mẹo cho bạn.


Tôi đã sử dụng phương pháp này kết nối Pi của tôi với Arduino của tôi. Bài đăng trên blog này có hình ảnh của một chiếc bánh mì và sơ đồ rất rõ ràng nếu bạn không tự tin lắm: fritz-hut.com/connecting-an-arduino-and-raspberry-pi
Stefan Mohr

2

Tôi đang sử dụng CD4050 để thực hiện chuyển đổi cấp độ từ 5V sang 3.3V và cũng hoạt động như một bộ đệm để bảo vệ Raspberry Pi của tôi. Arduino nên xem 3,3V là mức cao logic, vì vậy bạn không cần phải chuyển đổi từ 3,3V sang 5V (tôi đã sửa ở đây, theo trang web của Arduino, mọi điện áp trên 3V đều được coi là cao logic).

Tôi đưa ra một ví dụ nhanh về việc sử dụng CD4050, Raspberry Pi GPIO UART và Arduino tại đây: http://www.andremiller.net/content/raspberry-pi-and-arduino-via-gpio-uart

Mọi ý kiến ​​đều được chào đón, nó hoạt động, nhưng tôi có thể đã làm sai :)


1

Tôi thực sự đã chạy qua cùng một vấn đề và đã giải quyết nó bằng cách chạy một barebones atmega328 với bộ tải khởi động Arduino ở 3,3 volt, nhưng ở mức 8 MHz. 8 Mhz có thể gây ra sự cố nếu bạn có yêu cầu nghiêm ngặt về thời gian. Tôi, bản thân tôi chỉ có kế hoạch sử dụng Arduino để tạo ra PWM cho dải led rgb, vì vậy sẽ ổn nếu tần số của pwm bằng một nửa so với bình thường. Thử nghiệm sơ bộ của tôi cho đến nay đã chỉ ra rằng Arduino có thể nhận được thông điệp tốt.


1

Có một giải pháp đơn giản là bạn có thể loại bỏ bất kỳ nguồn năng lượng bên ngoài nào của Arduino và kết nối chân GPIO 1 đến 5v của Raspberry Pi bằng cách sử dụng dây nhảy theo cách điện chính của Arduino sẽ là 3,3v và tất cả các chân của nó sẽ có 3,3v thay vì 5v. Bây giờ bạn có thể kết nối trực tiếp các chân Uart của Pi và Arduino. Đã làm cho tôi.

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.