Страница 1 из 1
1602 и 74HC595
Добавлено: 11 июл 2017, 14:31
vworld
Нужна помощь - в среде ардуино работает 1602 к 74HC595 к ардуино по 3м проводам, используется библиотека - LiquidCrystal_SR_LCD3.h
Хотелось бы освоить Flprog, но не могу никак понять как оформить связку ардуино+74HC595+1602
Может быть знающие набросают?
1602 и 74HC595
Добавлено: 11 июл 2017, 14:41
pan
вы проверили эту библиотеку? скетч из ардуино работает?
Добавлено (11.07.2017, 14:41)
---------------------------------------------
у меня есть библиотека ShiftedLCD для такого подключения. но я не пробовал, нет железа
1602 и 74HC595
Добавлено: 11 июл 2017, 14:41
vworld
pan писал(а):вы проверили эту библиотеку? скетч из ардуино работает?
да, работает
1602 и 74HC595
Добавлено: 11 июл 2017, 14:45
pan
ну выкладывайте. будет время поковыряю
Добавлено (11.07.2017, 14:45)
---------------------------------------------
я сам одно время заморочился подключить дисплей через 595, но при цене i2c адаптера в 30 руб решил что ни к чему это)
1602 и 74HC595
Добавлено: 11 июл 2017, 14:45
vworld
Код: Выделить всё
#include <Wire.h>
//Programa : Teste basico encoder Arduino
//Autor : Arduino e Cia
//Carrega a biblioteca do encoder
#include <RotaryEncoder.h>
//#include <OneWire.h>
#include <LiquidCrystal_SR_LCD3.h>
//#include <DallasTemperature.h>
const int PIN_LCD_STROBE = 5; // Out: LCD IC4094 shift-register strobe
const int PIN_LCD_DATA = 6; // Out: LCD IC4094 shift-register data
const int PIN_LCD_CLOCK = 4; // Out: LCD IC4094 shift-register clock
LiquidCrystal_SR_LCD3 lcd(PIN_LCD_DATA, PIN_LCD_CLOCK, PIN_LCD_STROBE);
//Pinos de ligacao do encoder
RotaryEncoder encoder(A4, A5);
//Variavel para o botao do encoder
int valor = 0;
int newPos = 0;
void setup()
{
pinMode(2, INPUT);
lcd.begin(16, 2);
lcd.setCursor ( 0, 0 );
Serial.begin(9600);
lcd.print("Gire o encoder....");
}
void loop()
{
//Verifica se o botao do encoder foi pressionado
valor = digitalRead(2);
if (valor != 1)
{
lcd.setCursor ( 0, 0 );
lcd.print("Botao pressionado");
while (digitalRead(2) == 0)
delay(10);
}
//Le as informacoes do encoder
static int pos = 0;
encoder.tick();
int newPos = encoder.getPosition();
//Se a posicao foi alterada, mostra o valor
//no Serial Monitor
// if (pos != newPos) {
if (pos != newPos && newPos >= 0) {
lcd.setCursor ( 1, 2 );
lcd.print(newPos);
//Serial.println();
pos = newPos;
}
}
поясню, что мне не код править надо, а как "отрисовывать" блоки в программе не понятно по отношению к 1602 и сдвиговому регистру
1602 и 74HC595
Добавлено: 11 июл 2017, 14:55
pan
в стандартных блоках есть только подключение по i2с . а для такого подключения надо создавать блок и добавлять его.
ну текст кода это кончно хорошо, а библиотека LiquidCrystal_SR_LCD3.h где ?
Добавлено (11.07.2017, 14:55)
---------------------------------------------
можете сами сделать.
http://flprog.ru/video там все рассказано
1602 и 74HC595
Добавлено: 11 июл 2017, 15:05
vworld
pan писал(а):ну текст кода это кончно хорошо, а библиотека LiquidCrystal_SR_LCD3.h где ?
вот она
pan писал(а):в стандартных блоках есть только подключение по i2с . а для такого подключения надо создавать блок и добавлять его.
в стандартном есть и "обычное" подключение по 6и проводам, вот и предположил, что как-то можно увязать такое подключение с регистром сдвига, ведь по сути так оно и подключено сейчас
примерно так

1602 и 74HC595
Добавлено: 11 июл 2017, 15:37
pan
обычное это и есть по шести проводам
или по шине I2C.
а это совсем другое
1602 и 74HC595
Добавлено: 11 июл 2017, 15:51
Слимпер
Если интересно, можете посмотреть мой вариант, я где то с год назад пробовал сделать блоки для работы с 595.
Вроде тогда все работало.
Как раз из-за желания отказаться от i2c адаптера. Что он очень сильно замедляет работу основной программы.
1602 и 74HC595
Добавлено: 11 июл 2017, 15:52
Dev1
А почему не I2C, там вапще 2 провода SDA&SCL.
Ну вот, опять опередили...
1602 и 74HC595
Добавлено: 11 июл 2017, 15:57
pan
не в тему, а адаптеров готовых для жк на 595 ни кто не встречал?
Добавлено (11.07.2017, 15:57)
---------------------------------------------
Dev1 писал(а):Ну вот, опять опередили...
вы заранее начинайте печатать ))
1602 и 74HC595
Добавлено: 11 июл 2017, 16:09
Dev1
Слимпер писал(а):я где то с год назад пробовал сделать блоки для работы с 595.Вроде тогда все работало.
Не понравилось или свои косяки есть?
1602 и 74HC595
Добавлено: 11 июл 2017, 16:22
Слимпер
Dev1 писал(а):Не понравилось или свои косяки есть?
В одном проекте использовал, а потом больше с экранами у меня не было новых устройств. Да и если есть возможность вообще напрямую стараюсь подключать.
Да и забыл про них, а тут тему увидел и вспомнил, что когда то делал, решил выложить, может подойдет.
Кстати, мне вообще не очень нравится алгоритм работы встроенных в Flprog блоков. Тем что данные передается в каждом цикле, даже если они не изменялись.
1602 и 74HC595
Добавлено: 11 июл 2017, 19:54
vworld
Слимпер писал(а):Если интересно, можете посмотреть мой вариант, я где то с год назад пробовал сделать блоки для работы с 595.Вроде тогда все работало.
спасибо, попробую разобраться
Dev1 писал(а):А почему не I2C, там вапще 2 провода SDA&SCL.
а нет адаптера I2C для 1602 под рукой и ждать лениво, когда приедет, а экспериментировать хочется
Слимпер писал(а):В одном проекте использовал,
а примера проекта, не осталось?
чтобы мне понять. как блоки выстраивать