Съдържание:
- Консумативи
- Стъпка 1: Произход на решението
- Стъпка 2: Обяснение
- Стъпка 3: Идентифицирайте и премахнете резисторите
- Стъпка 4: Сравнение между решенията
- Стъпка 5: Последни съображения
Видео: 5V LCD дисплей с Arduino Due 3.3V I2C: 5 стъпки
2024 Автор: John Day | [email protected]. Последно модифициран: 2024-01-30 07:50
Тази публикация има за цел да обясни по -лесен начин за използване на 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: Последни съображения
Надявам се този урок да хвърли малко светлина върху този проблем със съвместимостта и някои от възможните му решения.
Ако имате идеи за подобрение, по -добри обяснения, нови решения или сте открили грешка в публикацията, моля, кажете ми в коментарите!:)
Препоръчано:
Как да използвате 20x4 I2C символен LCD дисплей с Arduino: 6 стъпки
Как да използваме 20x4 I2C символен LCD дисплей с Arduino: В този прост урок ще се научим как да използваме 20x4 I2C символен LCD дисплей с Arduino Uno, за да изведем прост текст " Hello World. Гледайте видеото
Ръчна Arduino хартиена скална ножица, използваща 20x4 LCD дисплей с I2C: 7 стъпки
Ръчна Arduino хартиена ножица за рок ножици, използваща 20x4 LCD дисплей с I2C: Здравейте на всички или може би трябва да кажа „Здравей, свят!“За мен ще бъде голямо удоволствие да споделя с вас проект, който беше моят вход за много неща Arduino. Това е ръчна игра Arduino Paper Rock Scissors, използваща I2C 20x4 LCD дисплей. Аз
I2C / IIC LCD дисплей - Използвайте SPI LCD към I2C LCD дисплея, използвайки SPI към IIC модул с Arduino: 5 стъпки
I2C / IIC LCD дисплей | Използвайте SPI LCD към I2C LCD дисплея Използване на SPI към IIC модул с Arduino: Здравейте момчета, тъй като нормалният SPI LCD 1602 има твърде много кабели за свързване, така че е много трудно да го свържете с arduino, но на пазара има един модул, който може конвертирате SPI дисплея в IIC дисплей, така че тогава трябва да свържете само 4 проводника
I2C / IIC LCD дисплей - Конвертиране на SPI LCD към I2C LCD дисплей: 5 стъпки
I2C / IIC LCD дисплей | Конвертирайте SPI LCD към I2C LCD дисплей: използването на spi lcd дисплей се нуждае от твърде много връзки, което е наистина трудно да се направи, затова намерих модул, който може да преобразува i2c lcd в spi lcd, така че нека започнем
Как да направите часовник в реално време с помощта на Arduino и TFT дисплей - Arduino Mega RTC с 3,5 -инчов TFT дисплей: 4 стъпки
Как да си направим часовник в реално време, използвайки Arduino и TFT дисплей | Arduino Mega RTC с 3,5-инчов TFT дисплей: Посетете моя канал в Youtube. Въведение:- В този пост ще направя „Часовник в реално време“, използвайки 3,5-инчов TFT сензорен LCD, Arduino Mega 2560 и DS3231 RTC модул … .Преди да започнете … проверете видеоклипа от моя канал в YouTube .. Забележка:- Ако използвате Arduin