Связь GPIO-UART-Arduino

12

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

Я использую Cool Components Logic Level Converter . Это транзистор от 3,3 до 5 В и резистор от 5 до 3,3 В.

Setithing
источник

Ответы:

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 В

FarhadA
источник
3

Вы также можете использовать один MOSFET для улучшения n-канала для каждого вывода, если у вас есть несколько таких. См. Сообщение устройств Raspberry Pi и I2C с разным напряжением или стр. 43 в спецификации шины I²C . Поскольку вам нужны только два контакта, это может помочь вам.

teraquendya
источник
Я использовал этот подход, соединяя мой Pi с моим Arduino. В этом посте есть фотографии макета и очень четкая схема, если вы не уверены в себе: fritz-hut.com/connecting-an-arduino-and-raspberry-pi
Стефан Мох,
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

Я на самом деле столкнулся с той же проблемой и решил ее, запустив barebones atmega328 с загрузчиком Arduino при напряжении 3,3 В, но на частоте 8 МГц. 8 МГц может вызвать проблемы, если у вас есть строгие временные требования. Я сам только планирую использовать Arduino для генерации ШИМ для светодиодной полосы RGB, так что все в порядке, если частота ШИМ равна половине нормальной. Мои предварительные испытания пока показали, что Arduino может получить сообщение просто отлично.

Гас Рейтер
источник
1

Существует одно простое решение: вы можете удалить любой внешний источник питания Arduino и подключить вывод GPIO Raspberry Pi от 1 до 5 В к Arduino, используя перемычку таким образом, что основное питание Arduino будет равно 3,3 В, а все его контакты будут иметь 3,3 В вместо 5 В. Теперь вы можете напрямую соединить выводы Uart от Pi и Arduino. Работал на меня.

Тират Сингх
источник