Форум РадиоКот https://radiokot.ru/forum/ |
|
Arduino UNO, LCD1602 и расширитель портов PCF8574AT https://radiokot.ru/forum/viewtopic.php?f=66&t=195351 |
Страница 1 из 2 |
Автор: | Limor [ Сб окт 26, 2024 11:18:08 ] |
Заголовок сообщения: | Arduino UNO, LCD1602 и расширитель портов PCF8574AT |
Всем добрый день! Я начинающий ардуинщик и начал эксперименты с LCD. Сначала попробовал соединить LCD1602 c Arduino напрямую, все заработало нормально. Теперь, чтобы освободить порты на Arduino, решил подключить LCD через расширитель портов PCF8574AT. Собрал схемку, через сканер портов I2C определил порт расширителя, взял готовый скетч, чуть его подправил, запустил и ... не работает. Что я делаю не так? ![]() Код: #include <LiquidCrystal_I2C.h> // Подключаем библиотеку для работы с LCD дисплеем по шине I2C
#define RS 2 #define ENABLE 3 LiquidCrystal_I2C lcd(0x20,16,2); // Объявляем объект библиотеки, указывая параметры дисплея (адрес I2C = 0x27, количество столбцов = 16, количество строк = 2) // Если надпись не появилась, замените адрес 0x27 на 0x3F void setup() { pinMode(RS, OUTPUT); // \ digitalWrite(RS, LOW); // \ // > Этот код добавил я pinMode(ENABLE, OUTPUT); // / digitalWrite(ENABLE, LOW); // / lcd.init(); // Инициируем работу с LCD дисплеем lcd.backlight(); // Включаем подсветку LCD дисплея lcd.setCursor(0, 0); // Устанавливаем курсор в позицию (0 столбец, 0 строка) lcd.print("LCD"); // Выводим текст "LCD", начиная с установленной позиции курсора lcd.setCursor(0, 1); // Устанавливаем курсор в позицию (0 столбец, 1 строка) lcd.print("arduino-tex.ru"); // Выводим текст arduino-tex.ru, начиная с установленной позиции курсора } // // void loop(){} // Код внутри функции loop выполняется постоянно. Но так как мы выводим статичный текст, нам достаточно его вывести 1 раз при старте, без использования кода loop |
Автор: | Базилюк [ Сб окт 26, 2024 14:32:09 ] |
Заголовок сообщения: | Re: Arduino UNO, LCD1602 и расширитель портов PCF8574AT |
Просто найдите другой скетч. Если и тот не заработает, продолжайте поиски, до тех пор, пока не получится. Серьезно, между прочим. Такой вариант решения проблем - самый распространенный среди ардуинщиков, просто потому, что они не разбираются во внутрянке. Так что, принимайте это как данность и шуршите поиском. Ну и в качестве доказательства предыдущего. Вы зачем написали вон те строчки, которые пометили? Что этим хотели сказать? Типовое подключение диспа через этот расширитель: подумайте, где в нем эти ваши RS и EN ![]() |
Автор: | smacorp [ Сб окт 26, 2024 15:01:29 ] |
Заголовок сообщения: | Re: Arduino UNO, LCD1602 и расширитель портов PCF8574AT |
Да неправильно это нападать на Ардуино. Вот, например, не работал я на AVR с SD картами. Можно: - купить микроконтроллер и обвязку для него; - купить разъём карты и обвязку для неё; - разработать плату, вытравить и спаять; - ошибиться и либо делать новую плату, либо резать дорожки и колхозить проводами. При всём при этом затратить неприлично много времени. А можно купить готовый SD модуль, подключить к Ардуино, понять как это работает хоть через стандартные библиотеки, хоть на низком уровне, и потом уже полученные знания использовать для разработки новых устройств. И всё это займёт несколько часов и, в любом случае, на порядок меньше первого варианта. А дальше сам решает на каком уровне развития ему останавливаться - на уровне модулей и готовых скетчей или шагать дальше. Только сама платформа Ардуино в этом не виновата. |
Автор: | Базилюк [ Сб окт 26, 2024 15:07:51 ] |
Заголовок сообщения: | Re: Arduino UNO, LCD1602 и расширитель портов PCF8574AT |
Да никто тут не нападает на Ардуино! Наоборот - обеими руками "за", поддерживаю целиком и полностью. Ардуинщики являются поставщиками мемов и приколюх. Так что, всё тут норм, продолжайте. Хотя конечно непонятно, каким боком SD-карта относится к дисплею-двустрочнику и расширителю портов. Но раз вы считаете, что нужен скетч для SD-карты, то возражать не буду! Продолжайте, мастер. |
Автор: | smacorp [ Сб окт 26, 2024 15:17:16 ] |
Заголовок сообщения: | Re: Arduino UNO, LCD1602 и расширитель портов PCF8574AT |
К сожалению, вынужден констатировать, чтобы корона Вам настолько давит, что пережимает мозг, отчего Вы не в состоянии адекватно понимать, что Вам говорят. Так что это Вы продолжайте, жизнь сама Вам всё подскажет. |
Автор: | Базилюк [ Сб окт 26, 2024 15:19:45 ] |
Заголовок сообщения: | Re: Arduino UNO, LCD1602 и расширитель портов PCF8574AT |
Причем тут я? Вы же Мастер, а я то так, мимо проходил ![]() ![]() Вы можете сказать по существу темы, как запустить дисплей у топикстартера? С ваших слов получается, что нужен модуль SD-карты. Правильно? |
Автор: | JMC.Hard [ Сб окт 26, 2024 15:25:38 ] |
Заголовок сообщения: | Re: Arduino UNO, LCD1602 и расширитель портов PCF8574AT |
Проверьте, Limor, ещё раз подключение. Arduino UNO обеспечивает работу I2C интерфейса, если SDA подключен к пину A4, а SCL к пину A5 (и только так ![]() И почему при инициализации задаёте адрес 0х20? Сканер портов так сказал? |
Автор: | Базилюк [ Сб окт 26, 2024 15:35:55 ] |
Заголовок сообщения: | Re: Arduino UNO, LCD1602 и расширитель портов PCF8574AT |
Я просто оставлю это здесь: https://wiki.iarduino.ru/page/Working_w ... k135538494 https://github.com/mrkaleArduinoLib/Liq ... v446730548 https://docs.yandex.ru/docs/view?tm=172 ... 26nosw%3D1 Цитата: LiquidCrystal_I2C lcd(0x20,16,2); Если надпись не появилась, замените адрес 0x27 на 0x3F Отличительная черта ардуинщиков - невнимательность , неумение курить маны и неумение анализировать ошибки. Именно поэтому я и посоветовал - ПРОСТО МЕНЯЙТЕ СКЕТЧИ до тех пор, пока не заработает. Число скетчей - конечно, поэтому однажды оно заработает! ![]() ![]() хахаха, smacorp обиделся и начал гадить. гыгыгы, приколюха. Я ж говорю - ардуинщики - поставщики мемов и ржак. Проблема топикстартера решается ИЛИМИНТАРНА, ваще беспраблем! И без всяких SD-карт. Просто нужна обычная внимательность. Или терпеливость в перебирании вариантов, там их не так уж и много. |
Автор: | abc [ Сб окт 26, 2024 15:46:12 ] |
Заголовок сообщения: | Re: Arduino UNO, LCD1602 и расширитель портов PCF8574AT |
OFF Цитата: не работал я на AVR с SD картами. Можно: ... ... а можно взять 14-ногий МК из самых недорогих и таки написать для него поддержку FAT16, основываясь на кодах 20-летней давности. На выходе будет своё, безглючное, в минимальных габаритах и не привязанное к "библиотекам, которые нужно перебирать, пока не заработает". /OFF |
Автор: | BOB51 [ Сб окт 26, 2024 16:46:42 ] |
Заголовок сообщения: | Re: Arduino UNO, LCD1602 и расширитель портов PCF8574AT |
Limor Применение порта-расширителя подразумевает использование каскадно нескольких библиотек. Для интерфейса связи, для самого порта - расширителя и для индикатора. Бывает и единая библиотека, включающая в свой состав все дополнительные компоненты. Ищем через менеджер библиотек наиболее подходящее решение (обычно библиотеки идут с примерами). ![]() один из перво попавшихся примеров с раскладкой соединений выводов порт-расширителя и жки под используемый софт: https://www.mathertel.de/Arduino/Liquid ... F8574.aspx ![]() |
Автор: | veso74 [ Сб окт 26, 2024 17:02:38 ] |
Заголовок сообщения: | Re: Arduino UNO, LCD1602 и расширитель портов PCF8574AT |
Подключение дисплея не такое, как должно быть, как писал Базилюк. Несмотря на низкое разрешение фото, похоже, что PCF->LCD имеет всего 4 провода из 7. |
Автор: | Базилюк [ Сб окт 26, 2024 17:11:54 ] |
Заголовок сообщения: | Re: Arduino UNO, LCD1602 и расширитель портов PCF8574AT |
Да, там скорее всего пораздельно взят дисплей и модуль расширителя, и по мелкофотке очень похоже, что подключение именно 4-битное. Поэтому, классическая библиотека работать не будет. А значит, надо искать тот скетч, где реализовано 4-битное подключение через I2C-расширитель. Либо просто добавить 4 недостающих линии. Для этого конечно же нужно хоть немного разбираться в вопросе. Но вполне дозволяется решать вопрос простым перебором вариантов. Я нисколько не отговариваю от этого, нет-нет, я совсем не против. ![]() Цитата: подразумевает использование каскадно нескольких библиотек. Если по-умному, то HD44780 -> PCF8574 -> I2C. Но для непосвященных вполне допустимо без выпендрежа, одной-единственной библиотекой типа LiquidCrystal_I2C. Я тоже не возражаю, это нормальная практика в среде ардуинщиков. |
Автор: | OKF [ Сб окт 26, 2024 17:32:28 ] |
Заголовок сообщения: | Re: Arduino UNO, LCD1602 и расширитель портов PCF8574AT |
...очень похоже, что подключение именно 4-битное. Поэтому, классическая библиотека работать не будет. А значит, надо искать тот скетч, где реализовано 4-битное подключение через I2C-расширитель. Либо просто добавить 4 недостающих линии. Какая это классическая? Каждая библиотека имеет название. А что с одним PCF в 8-ми битном режиме получится подключиться?) Отож.) |
Автор: | Базилюк [ Сб окт 26, 2024 17:45:06 ] |
Заголовок сообщения: | Re: Arduino UNO, LCD1602 и расширитель портов PCF8574AT |
Я не специалист в ардуино-библах, я об этом сразу говорил, они мне до фени. Зато я знаю, что такое адрес на шине I2C и чем отличается 4-битное от 8-битного подключения двустрочника. А PCF8574A - это всего лишь преобразователь интерфейса, и без разницы, как и что к нему подключено. Важно лишь чтобы подключение соответствовало выбранному ардуино-скетчу. Поэтому я еще в первом мессаге дал наводящие картинки и ссылки на маны ниже. Я, к сожалению, не знаю, зачем здесь предложили модуль SD-карты, но это уж пусть разбираются те, кто поумнее, зачем оный тут нужен. хахаха, у smacorp-а подгорел пукан и он начал ссать в тапки ))) блин, вот этот поцык не разбирается даже в примитивном дисплее-двустрочнике на I2C-расширителе. О чем тут еще можно говорить то? Ардуино головного мозга у smacorp-а. Турбодятел какой-то обиженный. Долбоящер, млин слыш ты, турбоящер smacorp, ты иди ка нахер а. завали свое хлебало, дегенерат. будет тут еще всякая мудила мне чето предявлять. уебок smacorp ссаный, уройся гандон Ушёл в баню за хамство. Alex |
Автор: | OKF [ Сб окт 26, 2024 18:56:04 ] |
Заголовок сообщения: | Re: Arduino UNO, LCD1602 и расширитель портов PCF8574AT |
Я не специалист в ардуино-библах, я об этом сразу говорил, они мне до фени. Зато я знаю, что такое адрес на шине I2C и чем отличается 4-битное от 8-битного подключения двустрочника. А PCF8574A - это всего лишь преобразователь интерфейса, и без разницы, как и что к нему подключено. Важно лишь чтобы подключение соответствовало выбранному ардуино-скетчу. Всё верно, только это и есть "классическая" библиотека для I2C - LCD преобразователя. И с одним PCF8574A тут именно 4-х битное подключение иначе не получится. Или это уже будет не только I2C, что теряет смысл. |
Автор: | Базилюк [ Сб окт 26, 2024 19:06:44 ] |
Заголовок сообщения: | Re: Arduino UNO, LCD1602 и расширитель портов PCF8574AT |
Вообще, я даже в бытность PIC16 не использовал расширитель портов для двустрочника. Поскольку подключается он 6-ю ножками, и экономия всего в 4 ножки не шибко то помогает делу. Зато 5 из 6 выводов можно без проблем мультиплексировать с другими функциями. В частности, в то время за них вешалась матричная клавиатура. Сейчас, когда микроконтроллеры стали многоножными, необходимость экономить каждую ножку очень сильно уменьшилась. |
Автор: | OKF [ Сб окт 26, 2024 19:18:47 ] |
Заголовок сообщения: | Re: Arduino UNO, LCD1602 и расширитель портов PCF8574AT |
Совершенно верно. Но для любителей Ардуино - чем меньше проводов, тем лучше.) Но даже и в этом случае можно запутаться.) И даже штатные примеры, которые идут с библиотекой, не помогают. |
Автор: | abc [ Сб окт 26, 2024 19:24:59 ] |
Заголовок сообщения: | Re: Arduino UNO, LCD1602 и расширитель портов PCF8574AT |
Цитата: можно без проблем мультиплексировать с другими функциями ТССС ! Вы только ардуинщикам об этом не говорите !
|
Автор: | BOB51 [ Сб окт 26, 2024 19:37:31 ] |
Заголовок сообщения: | Re: Arduino UNO, LCD1602 и расширитель портов PCF8574AT |
Базилюк писал(а): ... Отличительная черта ардуинщиков - невнимательность , неумение курить маны и неумение анализировать ошибки.... Я ж говорю - ардуинщики - поставщики мемов и ржак..... ФФЫРРРШШШШ!!! я как-то тоже с адуринкой балуюсь... КУСЬ... ![]() |
Страница 1 из 2 | Часовой пояс: UTC + 3 часа |
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |