Здравствуйте! Купил четырёхразрядный индикатор, и не могу заставить его работать с IskraJS. В результате выполнения следующего кода: Код (Javascript): var qd = require('@amperka/quaddisplay').connect(P10); qd.display('1234'); получаю всякие кракозябры. Модуль подключен через Slot Shield (джампер стоит на V5+V2) На смой искре джампер стоит на VIN3+5V Наличие контактов проверил мультиметром. Что я делаю не так? Может библиотека quaddisplay еще не адаптирована под новую версию модуля? Если так, то когда будет обновление, или как можно допилить имеющуюся библиотеку самостоятельно?
А вы не в курсе, модуль второй ревизии работает по протоколу, описанному здесь http://www.romanblack.com/shift1.htm ? И когда ждать новую библиотеку?
Кажется я уже разобрался, как работать с этим модулем Написал простенькую либу: Код (Javascript): var QD_EMPTY = 0b11111111; var QD_DOT = 0b11111110; var QD_DEGREE = 0b00111001; var QD_0 = 0b10000001; var QD_1 = 0b11110011; var QD_2 = 0b01001001; var QD_3 = 0b01100001; var QD_4 = 0b00110011; var QD_5 = 0b00100101; var QD_6 = 0b00000101; var QD_7 = 0b11110001; var QD_8 = 0b00000001; var QD_9 = 0b00100001; var QD_A = 0b00010001; var QD_B = 0b00000111; var QD_C = 0b10001101; var QD_D = 0b01000011; var QD_E = 0b00001101; var QD_F = 0b00011101; var QD_G = 0b10000101; var QD_H = 0b00010011; var SYMBOLS = { ' ': QD_EMPTY, '.': QD_DOT, ',': QD_DOT, '*': QD_DEGREE, '0': QD_0, '1': QD_1, '2': QD_2, '3': QD_3, '4': QD_4, '5': QD_5, '6': QD_6, '7': QD_7, '8': QD_8, '9': QD_9, 'A': QD_A, 'B': QD_B, 'C': QD_C, 'D': QD_D, 'E': QD_E, 'F': QD_F, 'G': QD_G, 'H': QD_H, 'a': QD_A, 'b': QD_B, 'c': QD_C, 'd': QD_D, 'e': QD_E, 'f': QD_F, 'g': QD_G, 'h': QD_H, }; var MyQD = function(pin) { this._pin = pin; SPI2.setup({ mosi: B15, miso: B14, sck: B13 }); }; MyQD.prototype.display = function(str) { var digits = [255, 255, 255, 255]; var s = str.toString(); for (var i = 0, j = 0; i < s.length && j < 4; i++) { var ch = s[i]; var code = SYMBOLS[ch]; if (code === undefined) continue; if (j > 0 && code === QD_DOT) j--; digits[j] &= code; j++; } SPI2.send(digits, this._pin); }; exports.connect = function(pin) { return new MyQD(pin); }; Использовать так: Код (Javascript): var qd = require('qd').connect(P10); qd.display(1/7); Вроде работает
Мне было просто интересно самостоятельно добиться желаемого результата. А сделанная за кого-то работа - побочный эффект.
Хорошо, что у вас получилось. Можете с нашей попробовать. Она еще не доступна по '@amperka/quaddisplay2', но можете скачать файл и запустить из локальной папки. https://github.com/amperka/espruino-modcat/pull/53