Ардуино и i2C

chaytan
Offline
Зарегистрирован: 02.02.2012

 просьба сильно непинать...

в программировании полный чайник... только учусь..

столкнулся вот с такой заморочкой.

спаял шилдик для подключения LCD по i2C на PCF8574. поскольку имеется свободный вывод решил задействовать его на управление подсветкой...

собстно девайсы- Ардуино Нано, кнопка или фоторезистор, PCF8574/

собственно с выводом на дисплей проблем нет, а вот никак немогу разобраться как задействовать оставшийся вывод, тоисть как им управлять там от кнопки или по датчику освещенности...

толкните в нужном направлении, а лучше примером....

спасибо всем откликнувшимся.

 

leshak
Offline
Зарегистрирован: 29.09.2011

нужно смотреть даташиты, что у него там за подсветка. Лень, если честно. Тем более что вы не потрудились дать ссылок на даташит вашего экрана.

Общий подход примерно такой: скорее всего там светодиодная подсветка. То есть задачу можно переформулировать так "как управлять ногой контроллера яркостью светодиода". В таком случае смотрите базовые примеры со словом LED. Включение/выключения светодиода. Управление его яркостью с помощью ШИМ (пример Fade) и т.п. Для этих игр, на 13-том пине, в дуине уже имеется светодиод и ограничивающий резистор. Вначале научитесь "рулить им".

Если у вашего экрана вывод "подстветки" это и есть обычный диод, то дальше все "по аналогии". Но нужно смотреть "сколько же ваша подсветка жрет". Если больше 40ма (а лучше за 20ма не выходить), то прийдется транзистор ставить. Что-бы нога контроллер "запирала-отпирала" транзистор, а более серьезных ток шел уже через него.

Если же, у вас в даташите написанно что-то типа "для включение подстветки подключите пин подстветки на землю, через резистор", то опять-таки - разбиратся в транзисторах.

В любом случае вначле смотрите даташит, как там показаны примеры использования подстветки. Попробуйте вначали их освоить, рассыпухой отдельно от контроллера, а потом уже будете думать  "как этим микроконтроллер управлять может".

chaytan
Offline
Зарегистрирован: 02.02.2012

это обычный дисплей, 16*2, светодиодная подсветка.

ток потребляем более 100мА, поэтому непосредсвенно к выводу неподключил, через транзистор.

шим ненужен, ибо это дисплей висяший далеко от контролера, а вот два уровня подсветки самое оно.

здесь нестоит вопрос включать и выключать саму подсветку дисплея, вопрос в том как реализовывается управление выводами по i2C. тоисть, 7 выводов отведены для дисплея а оставшийся хочу задействовать на управление 2 уровнями подсветки.

собственно вопрос более точно- как реализовать управление этим оставшимся выводом по тому-же  i2C ?

chaytan
Offline
Зарегистрирован: 02.02.2012
#include <Wire.h>
#include <LiquidCrystal_I2C.h>

LiquidCrystal_I2C lcd(0x20,16,2);  // set the LCD address to 0x20 for a 16 chars and 2 line display

void setup(void)
{
  lcd.init();
  lcd.backlight();
  
  lcd.setCursor(0, 0);
  lcd.print("Hello world ");
  
  lcd.setCursor(0, 1);
  lcd.print(" arduinos!   ");
}

void loop(void)
{ 

}

 с тем что включает подсветку разобрался.

это- lcd.backlight(); ...

теперь вопрос стоит по другому, как это заставить активироваться по нажатию кнопки???

уж, извините, за столь неправильно стявящиеся вопросы, и несоблюдение терминологии.

 

leshak
Offline
Зарегистрирован: 29.09.2011

 Ну я бы, на вашем месте, раз есть вопрос как работать с кнопкой, попровал-бы найти пример работы с кнопкой (неожиданный ход мысли).

В стандартных примерах, идущих с ArduinoIDE, есть пример с загадочным названием Button (кнопка). 

В нем по нажатию кнопки включается/выключается диод. Заменяете включение диода на свое lcd.backlight(); и золотой ключил у вас в кармане.

Ну или, в крайнем случае,воспользуйтесь  поиском. Тему обсуждали уже десятки раз. Последний раз "обсосали", не далее как вчера.

Кстати поиск по словам "подключение кнопки" первой ссылкой вам даст  перевод туториала по работе с кнопкой. Размещенный на этом сайте.

chaytan
Offline
Зарегистрирован: 02.02.2012

 ну включитьдиод или выключить то проблем нет, но как заменить на выходе с адруины на выход с микросхемы росширителя незнаю...

пока ничего подходящего неувидел...

здесь конечно и опыта маловато, вот и прошу о помощи..

leshak
Offline
Зарегистрирован: 29.09.2011

> ну включитьдиод или выключить то проблем нет,

Ну? Так в чем вопрос-то? Писал же

Заменяете включение диода на свое lcd.backlight(); 

>но как заменить на выходе с адруины на выход с микросхемы росширителя незнаю...

Я перестал вас понимать.

chaytan
Offline
Зарегистрирован: 02.02.2012

в первом посте указано что дисплей подключен по i2C посредством розширителя входов PCF8574...  вывод управления подсветкой с этой-же микросхемы. но в оригинальном скетче посредством этого выхода просто включалась подсветка при включении устройства...

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

реализовано- плюс подсветки на плюс питания, минус подсветки через резистор на массу. транзистор подключен эмиттером и коллектором к обоим выходам резистора. тем самым пока транзистор закрыт яркость подсветки снижена, по наличии управляющего напряжения с выхода PCF8574 на базе транзистора подсветка включается на полную яркость...

тем самым, я подсветкой управляю не прямым выходом с ардуины а через свободный вывод розширителя.

поэтому и в стопоре.... как кнопку привязатьименно к этому выводу розширителя.... 

у меня дисплей от ардуины в пяти метрах, поэтому дополнительные провода нежелательны...

chaytan
Offline
Зарегистрирован: 02.02.2012

 предложеный вами вариант непроходит....

step962
Offline
Зарегистрирован: 23.05.2011

chaytan пишет:

в первом посте указано что дисплей подключен по i2C посредством розширителя входов PCF8574...  вывод управления подсветкой с этой-же микросхемы. но в оригинальном скетче посредством этого выхода просто включалась подсветка при включении устройства...

Схема московского метро включает в себя 11 (?) линий - меньше, чем выводов у ATmega.  И даже у PCF8574. Рискнете ли вы объяснять ее приезжему на пальцах? Впрочем, вы - рискнете. Но главный вопрос - поймет ли он ваше объяснение? Никто из тех, кто зашел в вашу ветку, не видел, что вы там насоединяли - пытаются представить, исходя из своего опыта. Но я, например, неоднократно убеждался, в том числе и здесь, что авторы иногда такие выдумщики...

Так что если хотите полезных советов, то будьте добры выложить схему.

chaytan
Offline
Зарегистрирован: 02.02.2012

по такому принципу реализовано, но с другим подключениям по выводам-  http://www.dfrobot.com/image/data/DFR0175/I2C%20LCD%20Backpack%20schematic.pdf

 

 

leshak
Offline
Зарегистрирован: 29.09.2011

Хм...

 

chaytan пишет:

предложеный вами вариант непроходит....

Замечательно. Очень информативно. Что тут скажешь кроме "пожать плечами". Ну неподходит, так не подходит. Может религия ему не позволяет подходить, можно еще что-то... Вы правда думаете всем очень интерестно догадываться что же вы собрали, почему у вас не работает? 

chaytan пишет:

но с другим подключениям по выводам-

Тоже здорово.  Особенно после того выше сказали "неоднократно убеждался, в том числе и здесь, что авторы иногда такие выдумщики..." (и это правда. одну кнопку и резистор и то умудряются подключить "по хитрому").

Но хоть что-то дали. Дали бы сразу - кучу времени съкономили бы другим. Дать ссылки на даташиты - так и не сложилось. Пусть каждый гуглит сам что такое  PCF8574. А че? У всех есть куча времени. Главное почаще говорить  "прошу помощи". Можно подумать,  тут, обычно, по другим причинам задают вопросы. Ну и про собственное "я чайник" - это обязательно. На форуме самодельщиков это такое редкое явление. Всем будет интерестно про это узнать (только вчера 17-ть тем прочитал "я чайник, прошу не пинать, я только учусь"). Все тут чайники. Поэтому и собрались тут :)

Ну вообщем нагугил этот PCF9574, несколько раз перечитал "что вы хотите". Кажись догадался. Вым нужно узнать "нажата кнопка или нет" удаленно? Когда она подключена (естественно с подтягивающим резистором) к выходу PCF9574, а не ноге контроллера? Правильно?

Эта задача, фактически, сводится к "как прочитать состояние ноги PCF9574" (вместо digitalRead при прямом подключении). Или "как использовать PCF9574 на вход". В этом случае, уже и гугл можно спросить вменяемо. "PCF8574 arduino read" или "PCF8574 arduino input"

Получаем ссылки где делают "подобное"

Ну и кроме этого. Желательно в даташит внимательно вчитаться. Как в первоисточних (примеры и библиотеки тоже пишут люди, они могут и ошибаться). Почитать там как пинам режим менять (Read/Write mode). Можно попробовать разобратся с ""The PCF8574 provides an open-drain output (INT)", что-бы не нужно было постоянно опрашивать PCF9574 на предмет состояния кнопки, а он сам "дергал контроллер" при изменении и т.п.

  •  

 

 

leshak
Offline
Зарегистрирован: 29.09.2011

 Или я вас опять не так правильно понял, и ваша задача состоит не в "как работать с кнопкой", а как получить различные уровни подсветки? А не просто "включить/выключить"?

chaytan
Offline
Зарегистрирован: 02.02.2012

в схеме нет необходимости, да и даташит присутствует в библиотеке  LiquidCrystal_I2C. покрайней мере у меня есть.

как-то с управлением самой PCF8574 пока трудностей не вызвало.

еслибы вопрос стоял- *неработает дисплей с PCF8574*, тогда да, схема однозначно нужна. но здесь я спрашиваю о том как включать LCD_BACKLIGHT, как эту функцию привязать к кнопке.

в самой библиотеке есть вот такое- 

void LiquidCrystal_I2C::setBacklight(uint8_t new_val){
	if(new_val){
		backlight();		// turn backlight on
	}else{
		noBacklight();		// turn backlight off

}

 

chaytan
Offline
Зарегистрирован: 02.02.2012

задача стоит-как привключить и выключить подсветку...
но посредством изменения backlight();

leshak
Offline
Зарегистрирован: 29.09.2011

То есть сейчас вы

 

lcd.backlight(1); // включили подстветку
lcd.backlight(0); // выключили подстветку

А хотите еще, что-то типа (сейчас такое точно не заработает)

lcd.backlight(0.5); // выключили на половинной яркости?

 

chaytan
Offline
Зарегистрирован: 02.02.2012

leshak, спасибо. и за проявленное терпение...

 да, именно так , включить и выключить...

а что, еще и половинную моожно реализовать???

chaytan
Offline
Зарегистрирован: 02.02.2012

собственно паялось вот именно по этой схеме-  http://jt5.ru/image/data/examples/OLED_I2C.gif , только добавилось еще управление подсветкой на 12 выводе.

chaytan
Offline
Зарегистрирован: 02.02.2012

 только что проверил, подсветка нынче имет как-раз половинную яркость...

chaytan
Offline
Зарегистрирован: 02.02.2012

 собственно три варианта даже интереснее

leshak, спасибо за идею...

leshak
Offline
Зарегистрирован: 29.09.2011

Ну тогда

 

lcd.setBacklight(1); // включить
lcd.setBacklight(0); // выключить

lcd.backlight(); // включить
lcd.noBacklight() // выключить

 

>а что, еще и половинную моожно реализовать???

Ну, теоритически все можно. Средствами библиотеки - нет. Нужно жертвовать пином на PCF8574, разбиратся как его включать/выключить, и делать небольшую дополнительную обвязочку.

Или делать "лобовое решение". В loop быстро "включать/выключать" подстветку, авось "на глаз" будет выглядить как "половинная яркость" (за счет инерции диода и глаза). Но это будет сильно тормозить вывод на экран (линия i2c будет все время загружена). Хотя, если "вывели на экран данные", "пригасили его" и стоим ждем с моря погоды - покатит и такое решение.

вообщем сделать в loop что-то типа

byte currentLight=0;

loop(){
...
  lcd.setBacklight(currentLight);
  currentLight=!currentLight; 
...
}

 update: 6-тую строчку поправил. там была ошибка.

leshak
Offline
Зарегистрирован: 29.09.2011

 > подсветка нынче имет как-раз половинную яркость...

Думаю это можно рулить номиналом резистора R2 с вашей схемы. Или вообще втыкнуть вместо него подстроечный резистор и им задавать какая яркость должна быть при lcd.backlight();

chaytan
Offline
Зарегистрирован: 02.02.2012

 спасибо....

 

сделал замеры на выводе 12 PCF8574- посветка выключена- 0в, подсветка включена- 0.8 в. тоисть сейчас транзистор приоткрыт, и имеем половинную яркость... а если на выводе будет более вольта то откроется полностью и будет полная подсветка...

leshak
Offline
Зарегистрирован: 29.09.2011

chaytan пишет:

собственно паялось вот именно по этой схеме-  http://jt5.ru/image/data/examples/OLED_I2C.gif , только добавилось еще управление подсветкой на 12 выводе.

Что же вы сразу не дали эту схему? Тайный вы наш. Ну тогда, получается что "свободных пинов больше нет", что-бы сделать "пожертвовать еще одной ногой и сделать дополнительную обвязку". Остается либо подход из предыдущего поста (включать/выключать быстро), либо брать еще один PCF8574 и подстветку делать от него. Либо, возможно даже лучше, искать какой нибудь PWM контроллер, который с одной стороны садится на I2c, а на ноги умеет ШИМ генерировать аппаратно.

 

leshak
Offline
Зарегистрирован: 29.09.2011

 >сделал замеры на выводе 12 PCF8574- посветка выключена- 0в, подсветка включена- 0.8 в.

Хм... точно именно на выводе 0.8V? Должно быть, по идее, 5V. А что-то около 0.8 уже ПОСЛЕ резистора R2 на транс подаватся. 

Но тут тоже нужно "не перестаратся" (уменьшая номинал R2). С одной стороны что-бы не дать слишком большоая напряжение на транзистор (вчитывать в его даташит), с другой - что-бы не забрать слишком большой ток с ноги. Но, думаю разница между 0.8 и 1 - это в пределах погрешности. Ничего не должно случится. Дую на воду.

chaytan
Offline
Зарегистрирован: 02.02.2012

в данный момент размер монтажки уже непозволяет добавить тот-же дополнительный шим контролер, знаю что так былобы проще и более гибко и функционально.

тоже и в отношении еще одной одной микры. некуда её там совать...

поэтому и извращение подобное...

но опять-же. как-бы два состояния имеем- полный ноль(0в) и логический ноль (0.8в). а ведь как-то можна и еденицу всунуть.... 

chaytan
Offline
Зарегистрирован: 02.02.2012

 да, именно на ноге 0.80 вольта, после резистора имеем 0.67 чего получается достаточно для частичного открытия транзистора...

 

leshak
Offline
Зарегистрирован: 29.09.2011

chaytan пишет:

но опять-же. как-бы два состояния имеем- полный ноль(0в) и логический ноль (0.8в). а ведь как-то можна и еденицу всунуть....

Которая тоже будет логическим нолем :)

Но если у вас 0.8 именно на ноге, то скорее всего "ой". Где-то потеряли токоограничивающий резистор и имеем шансы "попалить". Вот поэтмоу step962 и говорил, что "давайте схему как вы подключили", а не "какие схемы вы при этом читали" (хотя и они полезны, для понимания что-же вы пытаетесь сделать).

leshak
Offline
Зарегистрирован: 29.09.2011

 > да, именно на ноге 0.80 вольта

Странно. А если к ней ничего не подключать. Померять на "голой ноге" без нагрузки? Тоже 0.8?

Вообщем либо "где-то схема собранна неправильно" (если на голой у нас будет нормальное напряжение. такое же как и питание подаем).

Либо, если тоже будет 0.8 - у нас "проседает питание" (нужно померять),

либо используется какой-то встроенный подтягивающий резистор (а может, для безопастности встроили токоограничивающий, нужно детально вчитываться в даташит) - тогда можно выдохнуть. И "уменьшать номинал R2".

chaytan
Offline
Зарегистрирован: 02.02.2012

схема- выход 12 микросхемы через резистор в 1 кОм подключен к базе транзистора. так-же между базой и минусом подключен резистор 39 кОм. транзистор n-p-n, эмиттер транзистора подключен к массе а коллектор через резистор 240 Ом к выводу подсветки дисплея. плюс подсветки естественно к плюсу основной схемы.

при этом подключении сжечь ничего невозможно... 

 

chaytan
Offline
Зарегистрирован: 02.02.2012

 микра имеет встроеные подтягивающие резисторы. и повсей видимости писавшие библиотеку эту возможность и использовали. если сменить транзистор на другой проводимости с изменением подключения то получим именно включить и выключить...

 

chaytan
Offline
Зарегистрирован: 02.02.2012

беру 10кОм резистор и его на ногу микры и на 5 вольт, яркость стает полной. следовательно при логической еденице яркость будет полной...

leshak
Offline
Зарегистрирован: 29.09.2011

chaytan пишет:

 микра имеет встроеные подтягивающие резисторы. и повсей видимости писавшие библиотеку эту возможность и использовали. 

Ну я тоже это предположил как один из вариантов. Можно "забить на это", а можно проверить. Проверить можно либо "хорошо раскурив даташит" и разобраться досконально в кишках библиотеки. Что она делает, а что "не делает".

Либо померяв в момент нагрузки, при включенной подстветке "что у нас на питании", а потом отключив все от 12-того пина "что на нем". Если под нагрузкой на питании "+5V", а без нагрузки на пине 0.8 - значит "в бибилиотеке предусмотрели", если же эти два условия не выполняются значит "что-то не ладно в датском королевстве" (хотя это и не мешат "забить" на это ;)  )

chaytan
Offline
Зарегистрирован: 02.02.2012

---Странно. А если к ней ничего не подключать. Померять на "голой ноге" без нагрузки? Тоже 0.8?--- этак проверить немогу, слишком плотный монтаж и пайка соответственно.

---Вообщем либо "где-то схема собранна неправильно" (если на голой у нас будет нормальное напряжение. такое же как и питание подаем).--- сама схема то собрана правильно, перепровелялось десять раз поскольку была трабла при первом включении...

---Либо, если тоже будет 0.8 - у нас "проседает питание" (нужно померять),--- просадки по питанию нет...

leshak
Offline
Зарегистрирован: 29.09.2011

 Угу. Вопрос только в том, почему же нет этой логической единицы на ноге?

Варианты:

  1.  Недостаточное питание
  2. Слишком большая нагрузка
  3. Используется встроенные резисторы

 

chaytan
Offline
Зарегистрирован: 02.02.2012

курим библиотеку....

можно проверить проще, подключаем вместо дисплея светодиод на вывод подсветки, и управляем микрой как розширителем выходов... здесь будет ясно и с 0 и 1...

leshak
Offline
Зарегистрирован: 29.09.2011

 >курим библиотеку....

>можно проверить проще,

Ну если вы считаете что это проще, чем померять два раза тестером напряжение.... то да.

Вообщем в библиотеке, похоже посылается 0x00  экспандера для включения и 0x80 для выключения (то есть явно какая-то инверсия есть).

 

chaytan
Offline
Зарегистрирован: 02.02.2012

--- Ну если вы считаете что это проще, чем померять два раза тестером напряжение.... то да.--- следовательно надо выпаять резистор, а этой возможности нет из-за плотности монтажа, поэтому проще програмно...

chaytan
Offline
Зарегистрирован: 02.02.2012

сегодня жду оригинальный шилд такой, посмотрим как там реализовано...
вот этот- http://parts.dn.ua/product_328.html

просто этот под нынешний дисплей неподходит, у меня выводы подсветки 15 и 16 расположены перед 1. вот и спаял для сего дисплея...

leshak
Offline
Зарегистрирован: 29.09.2011

 Уже увидел. Просто вы ответили про плотность монтажа пока я набирал и уведомление о новом сообщении не успело прийти.

leshak
Offline
Зарегистрирован: 29.09.2011

 Есть еще и четвертый вариант "неприятный", раз "была трабла при первом включении..." (а возможно "от рождения"), и сам  PCF8574 дефектный (выход погорел). Но, думаю, это самый маловероятный случай.

chaytan
Offline
Зарегистрирован: 02.02.2012

--- Есть еще и четвертый вариант "неприятный", раз "была трабла при первом включении..." (а возможно "от рождения"), и сам PCF8574 дефектный (выход погорел). Но, думаю, это самый маловероятный случай.--- трабла была не по этому выводу и не по микре вцелом. просто была одна линия дисплея неприпаяна и естественно на экране только полоса была и все... замыканий и коротышей небыло...
вероятность что дефектная микросхема очень низкая, но и это некритично, завтра должен приехать еще один дисплей и пара таких микрух...

chaytan
Offline
Зарегистрирован: 02.02.2012

возвращаюсь к ранее поднятому вопросу.

и так, немногим ранее писал что жду когда приедет заводской шилд для подключения дисплея.
собстно, шилд приехал.
в нем возможно только два состояния подсветки- включено или выключено.

но интерес представвляет именно моя схема, в ней возможно три состояния подсветки. что в моем случае предпочтительней.

leshak
Offline
Зарегистрирован: 29.09.2011

 Ну где два состояния, там теоретически возможно и три. ШИМом или быстро "включая/выключая".

chaytan
Offline
Зарегистрирован: 02.02.2012

leshak пишет:

 Ну где два состояния, там теоретически возможно и три. ШИМом или быстро "включая/выключая".

быстрое включение-выключение это тот-же ШИМ...

проще всего конечно былобы просто шимом рулить подсветкой....

но имеем то что имеем, дисплей удален от контролера, управляется по  i2C, тянуть к нему еще и шим или добавлять дополнительно микросхему непредставляется возможным ввиду использования готового шилда для дисплея. поэтому и стоит вопрос в реализации как есть...

вопрос- как можно реализовать управление функцией подсветки? и можна-ли получить возможность прямого упрвления выводом подсветки??? без участия библиотеки... просто командой для определенного адреса???

step962
Offline
Зарегистрирован: 23.05.2011

chaytan пишет:

быстрое включение-выключение это тот-же ШИМ...

ШИМ (Широтно-импульсная модуляция) - кодирование информации шириной импульса при постоянной частоте сигнала.

ЧИМ (Частотно-импульсная модуляция) - кодирование информации частотой следования импульсов постоянной ширины.

Фазовая модуляция опять же.

И то, и другое, и третье - "быстрое включение-выключение". Поэтому, если "ШИМ это быстрое включение-выключение" верно, то обратное (ваше) утверждение - увы - нет.

 

chaytan пишет:

вопрос- как можно реализовать управление функцией подсветки? и можна-ли получить возможность прямого упрвления выводом подсветки??? без участия библиотеки... просто командой для определенного адреса???

Все возможно - в пределах функций, описанных в даташите. Но тут, как вы понимаете вам может помочь только вы сами. Ибо только у вас - теоретически - есть даташит. По аналогии с рассыпанными в Интернете примерами - а им несть числа - вы можете до морковкина заговения безуспешно искать способ решения поставленной перед собой задачи. А можете наткнуться на него со второй-третьей попытки.

Поэтому, если вы азартный человек - пытайтесь прилепить к своему железу отрытые в Интернете коды. Нет - выкладывайте ссылку на даташит. Может быть кто-то из пустых кофейников ("в программировании полный чайник... только учусь..") и поможет.

ЗЫ: И это... Попробуйте еще раз сформулировать вопрос, ответ на который вы ищете в данный момент. Ведь, насколько я понимаю, исходя из просмотра темы по диагонали, исходная проблема (включать/выключать подсветку) уже решена?

chaytan
Offline
Зарегистрирован: 02.02.2012

использую две схемы подключения-

1-  http://jt5.ru/image/data/examples/OLED_I2C.gif

2- http://www.dfrobot.com/image/data/DFR0175/I2C%20LCD%20Backpack%20schematic.pdf

собственно сам даташит на микру- http://www.dfrobot.com/image/data/DFR0154/PCA8574%20Datasheet.pdf

поскольку схемы имеют отличия по подключению соответственно используются и две разные библиотеки для работы с дисплеем.

для 1 схемы- http://hmario.home.xs4all.nl/arduino/LiquidCrystal_I2C/

для 2 схемы- http://www.dfrobot.com/index.php?route=product/product&path=53&product_id=593

относительно первой схемы, из-за особенности применяемого дисплея первая схема несодержит элементов управления подсветкой но в библиотеке сама функция есть. 

исходная проблема и была именно в том как реализовать включение- выключение подсветки с привязкой к кнопке. собстно решение ей пока ненайдено. 

поэтому вопрос стоит именно в том как это реализовать или с помощью библиотеки или с помощью прямого управления выводом микры без участия библиотеки. просто первое предпочтительно для второй схемы а второе для первой, ибо здесь я могу получить 3 состояния подсветки.

гдето так...

step962
Offline
Зарегистрирован: 23.05.2011

chaytan пишет:

 

относительно первой схемы, из-за особенности применяемого дисплея первая схема несодержит элементов управления подсветкой но в библиотеке сама функция есть. 

А вывод Vo (Vdispl, ...) у дисплея есть? Имя дисплея? Datasheet на него?

PS: вот такой? Тогда в него встроен контроллер WS0010 - добавляйте в список своей документации еще и этот datasheet

PSS: беглое изучение этого документа приводит к мысли о том, что яркостью управлять не удастся, а вот включать-выключать дисплей - вполне. Команда "DISPLAY ON/OFF CONTROL INSTRUCTION" (b00001xxx) на 26-й странице.

leshak
Offline
Зарегистрирован: 29.09.2011

 >исходная проблема и была именно в том как реализовать включение- выключение подсветки с привязкой к кнопке. собстно решение ей пока ненайдено.

IMHO слова упомниание "кнопки" тут только запутывает. Нужно "включение/выключение" с микроконтроллера. У уж почему он решил включить или выключить (по кнопке, по таймеру, по команде из serial - вторично).

В чем "нерешенность" я так и не понял. Вроде же нашли в библиотеке функции. setBacklight,backlight, noBacklight. Вроде сказали что работает.

Они ничем не хуже чем "выводом микры без участия библиотеки". Более того если вы сделаете это "без библиотеки" вы просто повторите код этих функций. Они же тоже "не магией" включают/выключают, а именно посылкой команды. Вот если вы захотите "два вывода" для подстветки зайдействовать, что-бы разные уровни использовать - тогда да. Нужно свою реализацию писать. Которая может включать один или два выхода.

Но почему, сначала, не попробовать, все-таки, быстрое включение выключение? Второй пример из сообщения #20. Вы пробовали?

Опять-таки, что-бы легче было вас понимать, разделяйся мух и котлет отдельно. Какую задачу вы решаете в данный момент: влючить/выключить подстветку или "различные уровни подстветки"?

А проблему отсуствия логической единицы на ноге, во включенном состоянии решили? Почему на ней только 0.8V, а не 5v как положенно выяснили?

chaytan
Offline
Зарегистрирован: 02.02.2012

step962 пишет:

chaytan пишет:

 

относительно первой схемы, из-за особенности применяемого дисплея первая схема несодержит элементов управления подсветкой но в библиотеке сама функция есть. 

А вывод Vo (Vdispl, ...) у дисплея есть? Имя дисплея? Datasheet на него?

PS: вот такой? Тогда в него встроен контроллер WS0010 - добавляйте в список своей документации еще и этот datasheet

PSS: беглое изучение этого документа приводит к мысли о том, что яркостью управлять не удастся, а вот включать-выключать дисплей - вполне. Команда "DISPLAY ON/OFF CONTROL INSTRUCTION" (b00001xxx) на 26-й странице.

использую вот этот дисплей- http://www.winstar.com.tw/products_detail_ov.php?col_lang=en&ProID=38 , собстно и его даташит- http://www.winstar.com.tw/download.php?ProID=38

и еще один, такого-же плана но 16*2.

работаю оба одинаково с приведенными выше либами.

 

step962
Offline
Зарегистрирован: 23.05.2011

 Это, как я понимаю, второй из используемых вами дисплеев?

Мой вам совет - разнесите два устройства в разные задачи. Или еще лучше - выберите один из дисплеев, а о втором забудьте. Пока.

Добъетесь такой работы первого дисплея, какой от него ждете (ну или выжав из него максимум того, что он может дать) - только после этого достаньте из загашника второй дисплей и приступайте к изучению его возможностей. Сейчас вы задаете вопросы по двум устройства, имеющим весьма существенные отличия в механизме управления яркостью/контрастом, получаете ответ по одному из устройств, пытаетесь приложить его к другому устройству, желаемого результата не получаете и все больше запутываетесь сами и запутываете окружающих.

В общем, решайте - говорим дальше о светодиодном (он же OLED) дисплее или о жидкокристаллическом?