Bagaimana cara membuat Arduino (5 V) dan MPR121 (3.3 V) untuk berbicara?

8

Saya memiliki papan breakout sensor sentuh kapasitif Sparkfun MPR121 I2C

Saya telah membaca bahwa ia menggunakan 3.3 V, saya tahu bahwa saya tidak bisa begitu saja menghubungkan output catu daya 3.3 V dari Arduino karena jalur komunikasi akan memerlukan 3.3 V juga. Bagaimana cara menghubungkan saluran lain?

Saya telah menemukan tutorial di situs web Sparkfun . Diagram ke-3 menggunakan dioda - apakah itu cara terbaik untuk menghubungkan sensor ke Arduino?

Setiap ide atau informasi akan sangat bagus, pengetahuan saya cukup rendah.

Ashley Hughes
sumber
3
Menghubungkan sensor 3.3V I2C (berbeda) ke Arduino electronics.stackexchange.com/questions/708/…
Toby Jaffey

Jawaban:

14

Anda dapat melakukannya menggunakan dua transistor, yang cukup apik.

teks alternatif

Ini datang langsung dari catatan aplikasi Philips .

vicatcu
sumber
Catatan tempel Phillips itu praktis klasik.
Kevin Vermeer
@reemrevnivek ya, dan memang sangat pintar
vicatcu
Saya menghitung 2 pull-up lebih banyak dari biasanya. Tidak terlalu tepat: P
Nick T
4

Bergantung pada penarikan perangkat saat ini, output 3.3V dari Arduino sudah cukup. Sedangkan untuk jalur komunikasi, Anda memerlukan beberapa jenis level shifter. Sepertinya SparkFun memiliki solusi untuk itu juga:

http://www.sparkfun.com/products/8745

Craig
sumber
Saya punya salah satu di rumah, hanya tidak yakin tentang cara menghubungkannya karena I2C memiliki lebih dari satu baris. dan bersifat dua arah
Ashley Hughes
Menurut beberapa komentar pengguna pada halaman itu, garis 'TX' seharusnya dua arah. Jadi saya berasumsi Anda akan menghubungkan SDA ke TX1 dan SCL ke TX2, misalnya.
Craig
1
Jika Anda melihat pada lembar Data Ini hampir sama dengan Skema yang diposting vicatcu dalam jawabannya. Dan seiring berjalannya waktu pengalaman itu bersifat dua arah.
jsolarski