+1 голос

Приобрел данный дисплей:

https://amperka.ru/product/troyka-display-lcd-text-16x2

Говорю сразу, что новичек в этом деле. На сайте написано что есть совместимость с IskraJs, поэтому не раздумывая взял.

При поиске документации кидает на библиотеку http://www.espruino.com/HD44780.

Попробовал  варианты:

Вариант 1:

PrimaryI2C.setup({sda: SDA, scl: SCL, bitrate: 100000});

var lcd = require("HD44780").connect(PrimaryI2C);

lcd.print("Hello World!");

Вариант 2:

I2C1.setup({scl:B8, sda:B9});

var lcd = require("HD44780").connectI2C(I2C1);

lcd.print("Hello World!");

Выполняю все действия, но компилятор ругается ошибкой:

Uncaught InternalError: Timeout on I2C Write BUSY
 at line 2 col 13
g|4,g|4,g,g])
            ^
in function "a" called from line 1 col 7
a(51,1);a(50,1);a(40,1);a(12,1);a(6,1);a(1,1);return{write:a...
      ^
in function "h" called from line 2 col 15
g|4,g|4,g,g])})
              ^
in function "connectI2C" called from line 40 col 45
var lcd = require("HD44780").connectI2C(I2C1);

Вариант 3:

PrimaryI2C.setup({sda: B7, scl: B6});
var lcd = require("HD44780").connect(PrimaryI2C);
lcd.print("Hello World!");

Ошибка:

Uncaught Error: Invalid pin!
 at line 1 col 37
...f,d,c],e=digitalWrite;e(a,1);e([a,b],0);return new h(functio...
                              ^
in function "connect" called from line 35 col 48
var lcd = require("HD44780").connect(PrimaryI2C);

Не понимаю в чем может быть проблема?

Так же подключаю (7pin)s-v-g к Troyka-shield 

(6 баллов) 1 1 3
исправил
Уточните версию прошивки IskraJS. Возможно она достаточно старая и  не поддерживает фокусов Espruino с минификацией кода.
если правильно понял, то версия 2v01.49

2 Ответы

+4 голосов
 
Лучший ответ
У данного дисплея контроллер ST7032, а не HD44780, поэтому, работать он с этой библиотекой не будет.

Библиотеки для IskraJS нет, поэтому единственный способ с ним работать (на данный момент, пока не напишут библиотеку) — прямая работа с ним, без библиотеки.

Придется почитать даташит или покопаться в библиотеке для IskraJS, чтобы понять, как с ним работать
(1.6 тыс. баллов) 3 9 33
выбран
Почему может выдаваться ошибка при подключении к I2C "Timeout on I2C Write BUSY"?
Проверял на Часах реального времени, аналогичная ситуация.
 Если использовать настройку I2C:
1) PrimaryI2C.setup({sda: SDA, scl: SCL, bitrate: 100000});
2) I2C1.setup({sda: SDA, scl: SCL});
Обходной вариант это сделать через переменную и создание нового экземпляра: var i2c= new I2C(); НО это тоже работает некорректно.
На контактах есть 5V
Создайте, пожалуйста, новый вопрос. Решение нескольких вопросов в комментариях такое себе удовольствие.
0 голосов
https://github.com/olkal/LCD_ST7032

Не пробовал, но вроде библиотека эта.
(589 баллов) 4 8 19
Добро пожаловать на Бредборд! Сайт вопросов и ответов на тему Arduino, Raspberry Pi и хоббийной электроники в целом. Цель Бредборда — быть максимально полезным. Поэтому мы строго следим за соблюдением правил, боремся с холиворами и оффтопиком.

    За этот месяц ещё никого.

    ...