Ще одна річ, яку ви повинні врахувати, - чи вам взагалі потрібна зміна рівня. Багато мікросхем мають толерантні вхідні штифти на 5 В навіть при роботі з напругою, нижчою, наприклад, 3,3. Процесор atmega також інтерпретує що-небудь вище 0,6 * Vcc або 3V для ардуїно як логічний максимум, тому сигнал 3,3 В може безпосередньо керувати шпилькою ардуїно без зрушення рівня.
Якщо припустимо, що ви використовуєте 5V ардуїно і вам потрібно поговорити з частиною 3,3 В, якщо деталь має 5В толерантні входи (багато хто це робить сьогодні), просто підключіть їх, і це буде працювати. Якщо ваша двонаправлена лінія - це конструкція з відкритим колектором, наприклад, i2c, де пристрої лише тягнуть лінію низько, тоді просто приєднайте підтягуючі резистори до 3,3 В замість 5 В, і все буде просто працювати.
Інакше все, що вам потрібно зробити, це переконатися, що лінія не виходить вище 3,3 В, ви можете зробити це за допомогою резистора і стабілітра, поставити резистор на лінію arduino, а потім ценером затиснути напругу до 3,3 В. (джерело: repetae.net )
Ви можете спокуситися жити небезпечно і просто використовувати резистор 10k і більше нічого. Причина цього (іноді!) Працює в тому, що всередині приймаючого мікросхеми є затискаючий діод, який перемикає зайву напругу до vcc або 3.3V. Цей діод вигорить, якщо ви спробуєте провести всю лінійку 3,3 В до 5 В через нього (крім будь-якої шкоди, спричиненої відтягуванням цієї лінії до 5 В), однак з резистором буде не сильно струм, і якщо припустити, що ваша лінія 3,3 В на нього нетривіальне навантаження, це не змінить суттєво рівень вашої лінії електропередач, але є багато застережень. Так що, як правило, не робіть цього, якщо у вас немає локальної, ізольованої шини 3,3 В, і ви справді не можете зекономити зайві два центи. Я згадую його лише тому, що ви побачите це в схемах щодо забруднення дешевих пробивних дощок, які ви отримуєте на ebay, і, можливо, захопиться скопіювати його тільки не дозволяйте йому проникнути повз дошку у виробничий дизайн. :)
Редагування щойно помітило, що ви використовуєте новіший ардуіно 3.3V, тому просто інвертуйте те, що я говорив вище, трюк резистора ще буде працювати, хоча, мабуть, деякі лінії вводу / виводу на належному рівні можуть бути толерантними 5В, мабуть, є якась незгода на форумах. Teensy 3.1 - це також приємна маленька дошка ARM, яка має всі 5В-толерантні штифти і становить менше половини вартості належного та краще розробленого IMHO http://www.pjrc.com/store/teensy31.html