Зв'язок GPIO-UART-Arduino


12

Я намагався невдало змусити Raspberry Pi розмовляти з Arduino. Я використовую перетворювач 3,3 В до 5 В для зміни напруг. Я поставив світлодіодний контакт на штифт UART TX, і, схоже, він перевертав дані. Якщо це правда, який ланцюг мені потрібен, щоб він спілкувався з Arduino?

Я використовую конвертер рівнів логіки рівних компонентів . Це транзистор для 3,3 В до 5 В і резистор для 5 В до 3,3 В.

Відповіді:


5

GPIO Raspberry Pi - 3,3 В, вони не мають 5 В; це означає, що якщо ви підключите до них 5 В, ви можете зламати вхід. http://elinux.org/RPi_Low-level_peripherals має інформацію про штифти.

Ви можете використовувати одну з таких дощок:

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

Або просто придбайте 74LS245 у Digi-Key або Mouser Electronics і підключіть його так:

Перетворювач низької вартості від 5 В до 3,3 В


3

Ви також можете використовувати MOSFET для розширення n-каналів для кожного контакту, якщо у вас є кілька таких. Дивіться повідомлення про пристрої Raspberry Pi та I2C різної напруги або на сторінці 43 у специфікації шини I²C . Оскільки вам потрібні лише два штифта, це може просто зробити трюк для вас.


Я використовував цей підхід, з'єднуючи мого Pi з моїм Arduino. У цьому дописі в блозі є фотографії на дошці та дуже чітка схема, якщо ви не впевнені в собі: fritz-hut.com/connecting-an-arduino-and-raspberry-pi
Stefan Mohr

2

Я використовую CD4050, щоб зробити перетворення рівня від 5 В до 3,3 В, а також діяти як буфер для захисту мого Raspberry Pi. Arduino повинен бачити 3,3 В як логічний максимум, тому вам не потрібно перетворювати з 3,3 В на 5 В (я тут виправлений, згідно з веб-сторінкою Arduino будь-яка напруга понад 3 В вважається логічно високою).

Я зібрав короткий приклад використання CD4050, Raspberry Pi GPIO UART та Arduino тут: http://www.andremiller.net/content/raspberry-pi-and-arduino-via-gpio-uart

Будь-які коментарі вітаються, він працює, але я, можливо, зробив це неправильно :)


1

Я фактично зіткнувся з тією ж проблемою і вирішив її, запустивши безпрограшну атмега328 з завантажувачем Arduino на 3,3 вольт, але на 8 МГц. 8 МГц може спричинити проблеми, якщо у вас суворі вимоги до часу. Я сам планую лише використовувати Arduino для генерації ШІМ для смуги, що ведеться за RGB, так що це нормально, якщо частота PWM становить половину від нормальної. Моє попереднє тестування поки що показало, що Arduino може отримати повідомлення просто чудово.


1

Є одне просте рішення: ви можете вийняти будь-яке зовнішнє джерело живлення Arduino і підключити GPIO-контактний диск Raspberry Pi від 1 до 5 В для Arduino, використовуючи перемичку, таким чином основна потужність Arduino буде 3,3 В, а всі його штифти матимуть 3,3 В замість 5 В. Тепер ви можете безпосередньо підключити шпильки Uart Pi та Arduino. Працювали для мене.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.