Официальный сайт компании Arduino по адресу arduino.cc
Kракозябры на LCD 1602 I2C
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Добрый день,
Я подключил к Ардуино LCD 1602 через I2C + энкодер с кнопкой.
Для LCD использую LiquidCrystal_I2C
Написал меню, всё работает как надо, но если крутить энкодер слишком быстро то иногда появляются "кракозябры"
Иногда если продолжить крутить энкодер, то всё нормализуется, а иногда окончательно зависает.
Сценарий выполняется нормально и Адруино реагирует на энкодер/клик, т.е. сам Ардуино не зависает, только экран.
По софту.
энкодер/клик читается в loopе каждые 5мс и меняет переменные
потом вызывает reDraw() которая стирает экран и рисует заново по переменным.
т.е. чем быстрей крутить энкодер тем чаще происходит перерисовка.
По железу, не уверен, что это важно, но энкодер/кнопка/экран подключены к Ардуино обычной сетевой витой парой.
Молодец! Принято к сведению.
Как я понял, это просто информация, никаких вопросов к сообществу нет. Правильно?
ЕвгенийП, Благодарю за комментарий! Вы мне очень помогли!
Не за что, обращайтесь ещё.
Я, правда, не понял в чём я Вам помог, ни о какой помощи Вы не просили :(
обычной сетевой витой парой.
какой длины?
1.5 m
1.5 m
это ответ на твой вопрос.
Спасибо!
Погуглил, это и в прямь общая проблема, куча постов на эту тему.
Еще раз спасибо, буду подбирать длину, чтоб дотягивался с приборной панели до Ардуины и не глючил.
Спасибо!
Погуглил, это и в прямь общая проблема, куча постов на эту тему.
Еще раз спасибо, буду подбирать длину, чтоб дотягивался с приборной панели до Ардуины и не глючил.
у тебя, походу, наводки от энкодера влияют на экран по твоей витой паре.
Я тоже так подумал, по этому заменил витую пару на "плоский" провод где все провода идут параллельно, результат тот же.
Я думаю вы правы про длину, гугл говорит в зависимости от чипа длинна может быть 30см до +/-6м
Полно объявлений о продаже "усилителей" на 100м, так что думаю надо искать в эту сторону.
Я тоже так подумал, по этому заменил витую пару на "плоский" провод где все провода идут параллельно, результат тот же.
Я думаю вы правы про длину, гугл говорит в зависимости от чипа длинна может быть 30см до +/-6м
Полно объявлений о продаже "усилителей" на 100м, так что думаю надо искать в эту сторону.
можно попробовать каждую вторую жилу плоского кабеля заземлить.
Это как?
У меня 10 жил, мне надо 8, 2 не использованы.
т.е. надо сделать скажем GND,SDA,GND,SCL,GND?
Еще я где то вычитал, что понижение скорости увеличит дистанцию. Это как?
Это как?
У меня 10 жил, мне надо 8, 2 не использованы.
т.е. надо сделать скажем GND,SDA,GND,SCL,GND?
Еще я где то вычитал, что понижение скорости увеличит дистанцию. Это как?
как - все сигнальные жилы разделены земляными.
да - нужно в два раза больше жил.
Такого кабеля нет, я на 10 то жил еле нашёл.
Я имею в виду если просто оградить 2 жилы по которым идёт сигнал на LCD этого не хватит?
т.е. 10 жил:
GDN|SDA|GDN|SCL|GDN|BTN|+4v|EncClick|EncA|EncB
Такого кабеля нет, я на 10 то жил еле нашёл.
Я имею в виду если просто оградить 2 жилы по которым идёт сигнал на LCD этого не хватит?
т.е. 10 жил:
GDN|SDA|GDN|SCL|GDN|BTN|+4v|EncClick|EncA|EncB
ну, да - сигнальные экрана огради между собой земляными и от сигнальных энкодера.
т.е. минимум - три земляных для двух сигнальных экрана
Спасибо!
Еще вопрос, нашёл ретрансляторы типа PCA9517AD и P82B715
"device for buffering highly-capacitive I2C bus systems"
"Allows Bus Capacitance of 400 pF on Main I2C Bus (Sx/Sy Side) and 3000 pF on Transmission Side (Lx/Ly Side)"
Это может помочь?
Еще вопрос, нашёл ретрансляторы типа PCA9517AD и P82B715
"device for buffering highly-capacitive I2C bus systems"
"Allows Bus Capacitance of 400 pF on Main I2C Bus (Sx/Sy Side) and 3000 pF on Transmission Side (Lx/Ly Side)"
Это может помочь?
ничего не скажу - мне, вообще, кажется, что по фейсу I2C можно в пределах пары десятков метров без проблем передавать сигнал, если грамотно организовано кабельное соединение и сигналы не перемешиваются посредством наводок друг на друга.
ОК, попробую отдельный кабель для SDA|SCL
https://www.google.com/search?q=I2C+длина+кабеля
Клапауций 232, Спасибо за помощь!
Как вы и сказали:
"если грамотно организовано кабельное соединение и сигналы не перемешиваются посредством наводок друг на друга."
Только, как выяснилось, мешал не энкодер, а друг другу мешали SDA и SCL
Для пробы вытащил из 2-х метрового сетевого кабеля 2 пары.
Сначала подсоединил пары +4/GDN и на второю SDA/SCL
на экране только подсветка загоралась, сигнал вообще не проходил
потом перепаял пары на +4/SDA и SCL/GDN и 2-х метровый кабель заработал без единого глюка.
В "плоском" кабеле сделал 3 земли SCL и SDA по краям ограждены землёй
но иногда если очень быстро крутить энкодер то всё же экран зависает, но в принципе этого пока достаточно.
огорчает, что ты вслепую пробуешь.
очевидно, что помехозащищённость плоского кабеля меньше, чем витой пары сетевого кабеля.
при использовании сетевого кабеля: белый - земля, цветной - сигнальный
потому как твоё описалово "+4/SDA и SCL/GDN" лично мне не понятно.
>>>огорчает, что ты вслепую пробуешь.
В электронике я 0, а сделать надо.
>>>потому как твоё описалово "+4/SDA и SCL/GDN" лично мне не понятно.
I2C 4 контакта:
+5 вольт (у меня с 4в работает)
земля
SCL
SDA
Кроме них в кабель надо запихать еще 3 провода для энкодера с кнопкой
и еще один провод для кнопки reset, и того 8
Первый "аппарат" уже на автобусе проходит тестирование, пока всё работает.
Если всё хорошо надо будет еще 30 спаять
Я думал теперь попробовать сетевой CAT6А там каждая пара экранирована
+4/SDA и SCL/GDN
получается, что SCL экранировал, а SDA - нет.
нужно:
SDA/GDN
SCL/GDN
+4/GDN
+4/SDA и SCL/GDN
получается, что SCL экранировал, а SDA - нет.
нужно:
SDA/GDN
SCL/GDN
+4/GDN
В идеале да, но нет столько проводов.
Как показал метод тыка главное чтобы SDA не мешал SCL
На "плоском" с 10 жилами я сделал:
SDA|GND|+4|энк. клик|reset|энк. A|GND|энк. B|GND|SCL
энк. = энкодер
reset - "пустой" провод
А на CAT6A вся эта "фольга" заземляется?
Я думал в по одной паре пустить SCL и землю по другой SDA и "пустой" провод (провод для кнопки reset)
И поскольку "фольга" заземлена всё должно работать лучше чем с плоским кабелем.. или я не прав?
А на CAT6A вся эта "фольга" заземляется?
Я думал в по одной паре пустить SCL и землю по другой SDA и "пустой" провод (провод для кнопки reset)
И поскольку "фольга" заземлена всё должно работать лучше чем с плоским кабелем.. или я не прав?
если ты её(фольгу) заземлишь, то будет заземлена.
если у тебя не хватает проводов и ты городишь странное, то результат будет непредсказуем.
>>>если ты её(фольгу) заземлишь, то будет заземлена.
Я имею в веду что толк от такого заземления будет? или надо обязательно чтоб в паре один из проводов был GND?
>>>если ты её(фольгу) заземлишь, то будет заземлена.
Я имею в веду что толк от такого заземления будет? или надо обязательно чтоб в паре один из проводов был GND?
да не заземление это - а экранизация от помех.
источником помех может быть соседняя жила.
источником помех может быть соседний кабель или оборудование.
очевидно, что нужно заземлять, если желаешь, что бы на экран не наводилась помеха - внутренняя кабельная или внешняя.
Спасибо, всё понятно, буду пробовать.
+4/SDA и SCL/GDN
получается, что SCL экранировал, а SDA - нет.
Какая разница?
По переменнгому току "питание" - та же "земля". Главное, не забыть конденсаторы с обеих сторон кабеля поставить.
Какая разница?
По переменнгому току "питание" - та же "земля". Главное, не забыть конденсаторы с обеих сторон кабеля поставить.
разница в том, что я не наблюдал практическую реализацию схемы смешанной шины фильтрации помех - по земле и питанию одновременно.
Экранирование питанием вполне норм. А понизить скорость I2c не пробовали?
я не наблюдал практическую реализацию схемы смешанной шины фильтрации помех - по земле и питанию одновременно.
Посмотрите, как разводятся цифро-аналоговые печатные платы: обычно там 4 слоя - по краям земля и питание, а два средние - все остальные соединения.
Посмотрите, как разводятся цифро-аналоговые печатные платы: обычно там 4 слоя - по краям земля и питание, а два средние - все остальные соединения.
дай пруф на электрическую схему, где экраны имеют положительный потенциал и притягиваются к плюсовой шине конденсаторами или чем-либо другим.
а, ещё лучше - смешанную схему, где экраны имеют разный потенциал.
я принципиально отличного от этого не наблюдал.