[uquote="OKF",url="/forum/viewtopic.php?p=3964309#p3964309"]Давеча человеку делал проектик с LCD 2004 по i2c. Так вот он текст (из примеров) на этот свой LCD смог вывести только установив "старинную" IDE 1.6.5.[/uquote]
Все прекрасно работает с последней IDE!
Добавлено after 3 minutes 3 seconds:
[uquote="Upgrader",url="/forum/viewtopic.php?p=3975322#p3975322"]
[uquote="-=Vovka=-",url="/forum/viewtopic.php?p=3976408#p3976408"]PROGMEM использовали?[/uquote]Теперь да. Освободилось немного.
Библиотеку одну еще заменил, на менее жрущую.
Убрал все тексты (строки) не особо нужные.
Вот 80% теперь свободно.
Это к слову о том как юзать epaper дисплей на ардуине nano. Это пистец. Библиотека с выводом текста на экран двухцветный занимает сразу не менее 50% оперативки, ну 60 может. Но я специально решил использовать именно мегу 328p из-за того что меньше всех жрет в спящем режиме. А иначе нафиг экономичный дисплей если какая-нибудь там мега другая будет жрать дофига электричества - весь смысл теряется (вывод на экран занимает аж секунд 5, не считая другой работы). Если точнее то arduino pro mini 8 МГц, на пониженной частоте, экономия должна быть экономичной))) Оно в нормальном режиме потребляет не более 10 мА, а в спящем десяток микроампер. А если взять более походящую Mega 2560 то она и жрет в 10 раз больше, и спать не спит нормально - так на батарейках просто невозможна работа.
Но вот в итоге таки уместил всё и работает.
[uquote="Upgrader",url="/forum/viewtopic.php?p=3976496#p3976496"]Библиотека с выводом текста на экран двухцветный занимает сразу не менее 50% оперативки, ну 60 может.[/uquote]
А самому написать? Там нет ничего сложного! И весить на порядок меньше будет!
Можно и самому...
Только вот тогда надо еще и даташит на СБИС управления дисплеем проработать...
А чего в матричнике установлено - часто только примерно выяснить можно.
[uquote="-=Vovka=-",url="/forum/viewtopic.php?p=3976654#p3976654"]А самому написать? Там нет ничего сложного![/uquote]Ахах. Ну для кого как
Особенно учитывая это:
Due to the limited memory of Arduino, it is not possible to create an entire frame of image data cache. Therefore, it is best to use the following recommendations when using it. If you want to use Arduono UNO, you can use our e-paper Shield to operate, which will be more convenient, and Added the function of reading and writing SD card.
Люди извращаются с выводом как-то деля буфер пополам, отправляя два раза и т.п. странности.
Существует всего две готовые библиотеки. И полноценная только одна https://github.com/ZinggJM/GxEPD. В другой, черным по белому написано - ресурсов слишком мало, по этому реализован вывод только одного статичного изображения. Сразу поняли что пахнет жареным и не стали даже заморачиваться.
Добавлено after 5 minutes:
[uquote="BOB51",url="/forum/viewtopic.php?p=3976701#p3976701"]Только вот тогда надо еще и даташит на СБИС управления дисплеем проработать...
А чего в матричнике установлено - часто только примерно выяснить можно. [/uquote]Да, найти не просто. Я документацию на китайский дисплей найти не могу, даже название не точно знаю (есть варианты), не то что даташит на микросхему, фиг что найдешь.
Последний раз редактировалось Upgrader Пн фев 08, 2021 11:14:03, всего редактировалось 1 раз.
Там в основе несколько "прототипов" - как и для "двустрочников"...
Где-то подборку откладывал...
Названия типовых "прототипов" можно и по библиотекам адуринки отследить...
[uquote="BOB51",url="/forum/viewtopic.php?p=3976701#p3976701"]Можно и самому...
Только вот тогда надо еще и даташит на СБИС управления дисплеем проработать...[/uquote]
Ну вот нравится человеку аббревиатура СБИС! А ещё "система на кристалле".) Ну что тут поделаешь. Звучит.)
Подскажите, можно ли как-то по простому сделать такую вещь:
Чтобы цифры с АЦП с переменного резистора стали иметь фиксированные шаги например на 5 единиц.
Т.е. при вращении переменного резистора чтобы были значения 0,5,10,15,20 . . . 1010,1015,1024.
В идеале чтобы не скакали на грани, т.е. был какой-то гистерезис от шума резистора, но это уже слишком крупные запросы наверное...
Может есть какая-то спец. библиотека под это дело?
Даже в обычных ситуациях с переменным резистором есть такая фигня что не крутишь его, а значение немного туда-сюда плавает.
С энкодером или кнопками такое делается элементарно. А мне нужно использовать переменный резистор, но получить на выходе фиксированные шаги.
[uquote="Upgrader",url="/forum/viewtopic.php?p=4039192#p4039192"]Подскажите, можно ли как-то по простому сделать такую вещь:
Чтобы цифры с АЦП с переменного резистора стали иметь фиксированные шаги например на 5 единиц.
Т.е. при вращении переменного резистора чтобы были значения 0,5,10,15,20 . . . 1010,1015,1024.[/uquote]
Да, можно. Нужно поделить входное целое число на 5, а затем частное умножить на 5.
[uquote="Upgrader",url="/forum/viewtopic.php?p=4039192#p4039192"]В идеале чтобы не скакали на грани, т.е. был какой-то гистерезис от шума резистора, но это уже слишком крупные запросы наверное...[/uquote]Самый простой вариант - фильтр Ренко.
Но 200 шагов на оборот - многовато для обычного резистора. Шагов 50 - может что-то путное и получится.
Модули энкодеров мне отымели все мозги.
Один купил - глючит.
Второй другой совсем - тоже.
Начал прозванивать как они работают - в общем ничего, но иногда перебои импульсов бывают. Что за фигня?
Этот был первый.
Этот второй. С RC цепочкой уж, чтобы наверняка!
Вытрахали весь мозг.
Какой у вас опыт с этим зверьем?
Не хотел ведь энкодеры применять, как хорошо с кнопками обычными!
Оба типа нормальные, хороши для меня. Использую KY-040 Rotary Encoder Module на многих конструкциях.
Проверитье энкодер в статическом режиме. Потом: через код, рекомендую библиотеки Ben Buxton, 2011, по прерыванию:
Код ошибки не делает, даже после 1..3 лет експлоатации, когда енкодер начать повреждаться и есть поврежденный зуб/зубы. Код просто пропускает его/их. Никаких дополнительных кодов/хардуер (C, R-C) не требуется (напр. debounce). (частично использоваю переводчик)
Понятное дело что это без драйвера работать не будет.
Я нашел в двух местах где скачать, раз и два.
По поводу первого.
Скачивается exe файл, его необходимо запустить, после чего нажать "install driver", после чего система сама определит , что за устройство подключено.
У меня же без объяснения причин сразу же выскакивает ошибка
Попробовал другой архив.
Тут действуют следующим образом : заходят в диспетчер устройств, нажимают на " неопознанное устройство USB 2:0 serial", обновляют драйвера, с указанием на папку, куда распаковали zip архив.
Однако и тут ждал подвох.
Не совсем стандартная ситуация возникла.
Arduino питается от 3 вольт. А общается по аппаратному uart с другим устройством которое запитано от 5 вольт. И уравнять их напряжения питания нельзя.
Как быть? Можно ли соединять напрямую, или через резисторы?
Что будет если подать на обычный цифровой вход напряжение выше напряжения питания?
Ааа, это да, понимаю.
Хотелось бы попроще. Может резистор там поставить и все. На передачу по сути ничего не надо, и так работает. А вот на прием напряжение выше питания.
На сколько я знаю в МК вроде есть что-то типа стабилитронов защитных на всех входах.
МК ATmega328 там в Arduino nano.
З.Ы. Оно уже работало при подключении напрямую. А потом подумал что за нафиг, не сгорит ли.
Ннну, Upgrader, если уж совсем попроще ...
У TTL логики (5 В) и LVTTL (3,3 В) практически одинаковые уровни лог.0 и лог.1, так-что прямое подключение действительно работает. Только вот я бы если и подал бы Tx(LVTTL) напрямую на Rx(TTL), то для Tx(TTL) на Rx(LVTTL) всё-таки использовал бы делитель (как на нижнем кусочке верхней схемы), так ... на всякий случай
Лучше сделать и жалеть, чем жалеть, что не сделал ...
[uquote="JMC.Hard",url="/forum/viewtopic.php?p=4100650#p4100650"]Попробуйте, Upgrader, вот такой вот вариант:
Должно сработать [/uquote]
Вместо первой схемы достаточно оптопары, но не знаю хватит ли её для uart'a.