На рисунке же указано S6B0108. Библиотеки KS0108 должны работать.
На рисунке же указано S6B0108. Библиотеки KS0108 должны работать.
Дисплей 128х64 заработал, походу все библиотеки рассчитаны на НЕ инверсные дисплеи а я с дуру купил инверсионный дисплей, с некоторыми доработками примеры заработали. Дисплей оказался огромен, у него маленький объем полезной площади и на солнце его не видно инверсионная шляпа
Мои ясный взор возвращается к дисплею от нокии 5110 + ардуино мега
Купил MEGA на ATmega 2560 ( чип USB порта CH340G), на ней прекрасно работает сторожевой таймер почти идеально
Провел длительные испытания Бортового компьютера.
Вот список бесполезных функций которые мне не так и не пригодились
Часы (на мотоцикле есть часы)
Trip пробег одной поездки (так же есть на панели)
Давление и температура масла - мне так и не удалось нагреть масло до 100 градусов , и соответственно не нужны аварийные предупреждения по маслу.
Задержка выключения
Коррекция температуры - три позиции, из меню (при программировании задаем нужные значения)
Список всех функций
Показывать температуру - двигателя, масла, наружного воздуха, напряжение сети
Предупреждать о превышении температуры : масла, двигателя и о перезаряде или не до заряде АКБ, всплывает сообщение на дисплее и горит светодиод.
Включать и выключать вентилятор охлажения по заданной температуре через РЕЗИСТОР на 30% скорости (выключить раньше чем заложено в штатный датчик не может, что бы не вторгаться в штатную проводку)
Показывать литраж в баке в процентах или литрах, датчик в баке поплавковый собственного изготовления.
Считает пробег одной поездки, при выключении зажигания остаётся включеным на заданное время,что бы счётчик не сбрасывался. (дабы не мучить EEPROM!)
Из меню можно принудительно включить вентилятор охлаждения
В панели приборов установлена PRO MINI которая управляет восьми сегментным индикатором это датчик включенной скорости, связь с основным блоком через I2C шину
Индикатор включенной скорости снабжен блинкером, что бы не забыть переключить скорость на повышенную (дался мне тяжело, затык с таймерами)
Плюс много полезных функций, для исключения ложных срабатываний меню и устройств
Всем привет, нынче купил 4х сегментный LED модуль, подключил его, но вод беда с выводом информации,
дело в том, что функция за один вызов принимает адрес только для конкретного сегмента дисплея.
Например у меня есть показания с датчика температуры (от 0 до 99 градусов), как мне их выводить на дисплей ?
Код:#include <Wire.h> #include "Adafruit_LEDBackpack.h" #include "Adafruit_GFX.h" Adafruit_AlphaNum4 alpha4 = Adafruit_AlphaNum4(); int TEMP = 45; // показания датчика темпиратуры, как мне их разделить на две части и преобразовать в "строку" ? void setup() { alpha4.begin(0x70); alpha4.clear(); alpha4.writeDisplay(); } void loop() { char Str2[8] = {'1', '2', '3', '4', '8', 'n', 'o'}; alpha4.writeDigitAscii(0, Str2[0]); // первый сегмент, зажигаем цифру 1 :) alpha4.writeDigitAscii(1, Str2[4]); // второй сегмент, зажигаем цифру 8 alpha4.writeDigitAscii(2, TEMP); // третий сегмент , int указывать нельзя alpha4.writeDisplay(); delay(100); }
Последний раз редактировалось Oleg_33; 13.12.2016 в 21:50.
Индикатор 0.54" Ht16k33
Решение нашлось, этот код запускает счетчик от 0 до 99 в первом и втором сегменте индикатора, легко можно сделать и 9999
Для приведения к нормальному виду цифр 3 - 5 - 0 правим файл Adafruit_LEDBackpack.cpp в библиотекеPHP код:
#include <Wire.h>
#include "Adafruit_LEDBackpack.h"
#include "Adafruit_GFX.h"
Adafruit_AlphaNum4 alpha4 = Adafruit_AlphaNum4();
int z = 0;
void setup() {
Serial.begin(9700);
alpha4.begin(0x70);
alpha4.clear();
alpha4.writeDisplay();
}
void loop() {
int n = z++;
char* c;
c = (char *)malloc(10 * sizeof(char));
int v = 0;
while (n > 4)
{
c[v++] = (n % 10) + '0';
n = n / 10;
}
c[v++] = n + '0';
if (c[1] == '0' || c[1] == 0) { // убираем глюк когда первая цифра ноль
alpha4.writeDigitRaw(0, 0x0); // убираем первый ноль
}
else {
alpha4.writeDigitAscii(0, c[1]); // первый сегмент
}
alpha4.writeDigitAscii(1, c[0]); // второй сегмент
alpha4.writeDisplay();
free(c);
if (z > 99) z = 0;
delay(100);
}
Код:0b0000000000111111, // 0 0b0000000011001111, // 3 0b0000000011101101, // 5
независимо начал делать свой БК и тут наткнулся на эту тему, ну и возникло несколько вопросов
1. датчик топлива через для стабилизации показаний через RC-цепь подключили?
2. стабильность работы/зависания от помех из бортовой сети ?
3. защита схемы питания от помех на конденсаторе?
4. датчик скорости на таймере насколько точно работает?
5. по какому принципу меню реализовали?
ну и ещё чтобы голову поломали предложение если есть контроль пробега,то почему бы не добавить релейный выход на управление скоттойлером(автосмазчик цепи) с несколькими режимами работы (трасса/город/дождь/грязь/МОНГОЛИЯ)
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)