Съдържание:

5V LCD дисплей с Arduino Due 3.3V I2C: 5 стъпки
5V LCD дисплей с Arduino Due 3.3V I2C: 5 стъпки

Видео: 5V LCD дисплей с Arduino Due 3.3V I2C: 5 стъпки

Видео: 5V LCD дисплей с Arduino Due 3.3V I2C: 5 стъпки
Видео: How to make a LED digital counter using 7- Segment Display 2024, Ноември
Anonim
5V LCD дисплей с Arduino Due 3.3V I2C
5V LCD дисплей с Arduino Due 3.3V I2C

Тази публикация има за цел да обясни по -лесен начин за използване на Arduino Due (или друга 3.3V платка) с популярния LCD 16x2 дисплей с адаптерен модул I2C.

Първоначалният проблем е, че LCD дисплеят се нуждае от 5V, за да може подсветката да работи правилно, но SCL и SDA щифтовете трябва да работят при 3.3V, за да комуникират с Arduino Due, без да причиняват вреда. За да разреша това, открих два варианта:

Най-споменатото решение е да се използва двупосочен преобразувател на логическо ниво, което наистина решава проблема. Но също така добавя още един компонент към вашия списък и допълнителни кабелни връзки на вашата верига

Другият начин, който открих, е просто да отлепя 2 издърпващи резистора в "адаптера за раница I2C" от LCD дисплея. Освен че е много по -лесно, той има и други предимства, обяснени в сравнението в края. Този метод е основният фокус на тази публикация

Консумативи

Arduino Due

LCD 16x2 дисплей с адаптерен модул I2C

Поялник

Пойка за запояване или фитил за запояване

Пинсети

Стъпка 1: Произход на решението

Решението не е измислено от мен, видях доста добро предложение и обяснение във форума на Arduino в линка по -долу, което ще възпроизведа в този пост.

forum.arduino.cc/index.php?topic=553725.0

Отговор от: david_prentice

Не успях да намеря никакъв пълен урок в интернет и тъй като това е много често срещан проблем, аз се опитвам да представя подробно решението тук, да видя, че действително работи, и да добавя информация, която може да смекчи скептицизма относно резултатите от него.

Стъпка 2: Обяснение

Устройства

За да работи I2C комуникацията, са необходими издърпващи се резистори, свързани към щифтовете SDA и SCL. Това е така, защото устройствата само обръщат тези щифтове НИСКО, докато комуникират. За да представлява HIGH, той трябва само да не изпраща LOW и благодарение на издърпванията преминава към HIGH. (това разбиране ще бъде доста важно по -късно)

LCD "раницата I2C" има два 4K7 издърпващи се резистора, които отговарят на изискванията на I2C. Но тъй като те са свързани към Vcc, ако използвате 5 V, те ще изтеглят SDA и SCL до 5 V.

Ако погледнете листа с данни, можете да видите, че за разлика от други платки, Due вече има вградени 1K5 издърпващи се резистори на основните си SDA, SCL щифтове, които ги издърпват до 3.3 V.

Тестове

  • LCD дисплей -> Arduino
  • Gnd -> Gnd
  • Vcc -> 5V
  • SDA -> SDA
  • SCL -> SCL

Ако просто свържете LCD дисплея на Due (след окабеляването по -горе), 1k5 (или 1k0) Due издърпванията, свързани към 3.3V, и 4K7 LCD издърпванията, свързани към 5 V, ще доведат до неактивни I2C линии при 3.7 V (3.6 V с 1k0). Това не е добре, тъй като техническият лист Due определя максимално напрежение от 3,6 V за своите I/O линии.

Като тествах този сценарий, само с LCD, получих 3, 56 V. Като добавих EEPROM модул към същите SDA и SCL, той се повиши до 3.606 V. И в двата случая всичко работеше нормално, но това далеч не е идеалното напрежение нива, като се има предвид предвиденият максимум от 3,6 V.

Така че да, има шанс да работи точно както моята, без да прави никакви промени. Но нивото на напрежение все още е далеч от идеалното и някои несъответствия по дължината или LCD издърпването могат да го накарат да надхвърли границата от 3,6 V. (Би било препоръчително поне преди да се провери внимателно с потенциометър 20K или 100K кое е най -ниското съпротивление между 5 V и SCL/SDA щифтове, преди да достигнат 3,6 V, въпреки че останалата част от разтвора е много по -безопасна и вероятно по -лесна)

Решение

Представеното решение е просто да премахнете издърпващите резистори от LCD раницата, които се опитват да издърпат линията до 5 V. След това ще останат само бордовите издърпващи се резистори Due, издърпвайки SCL и SDA линиите до 3.3V. Работи перфектно, поддържайки щифтовете на празен ход на около 3.262 V!

Връзките остават същите:

  • LCD дисплей -> Arduino
  • Gnd -> Gnd
  • Vcc -> 5V
  • SDA -> SDA
  • SCL -> SCL

Ако се чудите дали LCD дисплеят няма да издърпа линията до 5 V, за да представлява HIGH при комуникация, не забравяйте, че при I2C устройствата издърпват само линиите LOW, което е HIGH сигналът, представен, когато не пречи, което ще бъде 3.3 V от вдлъбнатини на борда на Due.

Също така, 3.3 V е достатъчно, за да може I2C раницата да се разглежда като ВИСОК сигнал.

Стъпка 3: Идентифицирайте и премахнете резисторите

Идентифицирайте и премахнете резисторите
Идентифицирайте и премахнете резисторите
Идентифицирайте и премахнете резисторите
Идентифицирайте и премахнете резисторите

Изображението по -горе показва в червено издърпващите резистори, които намерих в моя модул.

Идентифицирайте

Тъй като раницата с адаптер за LCD I2C може да варира, резисторите може да не са в една и съща конфигурация. За да идентифицирате издърпващите резистори, можете да използвате мултицет с тест за непрекъснатост. Всеки изтеглящ резистор трябва да има единия край, свързан към SCL или SDA щифта, а другият край към Vcc.

В моя случай имаше три от резисторите 4K7 (472 в SMD код) на дъската. Само двама от тях отговарят на горните изисквания, като посочват, че това са издърпванията, които търсихме!

За допълнителна предпазна мярка (ако по някаква причина не бяха 4K7), тествах и другите резистори и потвърдих, че никой от тях не отговаря на изискванията за издърпване.

Премахване

Сега всичко, което трябва да направите, е да ги разпечете! По -лесно е, ако имате помощна помпа за запояване или фитил за запояване и пинсети.

Стъпка 4: Сравнение между решенията

Двупосочен преобразувател на логически нива (LLC)

Професионалисти:

Не изисква никакво оборудване или способности за запояване

Минуси:

Обявете още кабели и LLC към списъка с компоненти на вашия списък

Месие връзки с допълнителните компоненти

Малко по -скъпо

Разпаявайте LCD резисторите за изтегляне

Професионалисти:

По -чист краен резултат

Вероятно можете да го направите веднага, без да се налага да чакате LLC

Особено добре, ако искате да намалите разнообразието от компоненти и сложността на сглобяването в сложен проект или който искате да копирате

Минуси:

Променя LCD веригата (Ако искате тя да е „готова за употреба“с Uno, която вече има 4K7 издърпвания, можете да отмените промените, които ги запоявате отново)

Стъпка 5: Последни съображения

Надявам се този урок да хвърли малко светлина върху този проблем със съвместимостта и някои от възможните му решения.

Ако имате идеи за подобрение, по -добри обяснения, нови решения или сте открили грешка в публикацията, моля, кажете ми в коментарите!:)

Препоръчано: