LCD 1602 HD44789 PCF8574 I2C

Ogólne forum z pytaniami i propozycjami
qqrydza
Posty: 15
Rejestracja: śr lis 23, 2016 9:55 pm

Re: LCD 1602 HD44789 PCF8574 I2C

Post autor: qqrydza » śr lis 23, 2016 10:15 pm

Gdzie tu jest zdefiniowany adres, bo nie widzę wpisu 0x27
zawartość pliku:

Kod: Zaznacz cały

/var/www/nettemp/modules/lcd/lcd

Kod: Zaznacz cały

#! /bin/bash 

dir=$( cd "$( dirname "$0" )" && cd ../../ && pwd )
file=$dir/tmp/lcd

lcd=$(sqlite3 -cmd ".timeout 2000" $dir/dbf/nettemp.db  "SELECT lcd FROM settings WHERE id='1'")
lcd4=$(sqlite3 -cmd ".timeout 2000" $dir/dbf/nettemp.db  "SELECT lcd4 FROM settings WHERE id='1'")

if [[ "$lcd" == "on" ]]
then

    $dir/modules/lcd/lcdi2c -i -l -b 1 "$(printf "%-15s %-15s" "$(echo nettemp.pl| cut -c 1-15) " "$(echo lcd mod| cut -c 1-15)")"
    sleep 2
    while :
	do
	
	IFS=$'\n' lines=($(cat $file))
	max=$(cat $file |wc -l)
	f="0"
	s="1"
	    
	while [ "$s" -le "$max" ] ; do
	     $dir/modules/lcd/lcdi2c -l -b 1 "$(printf "%-15s %-15s" "$(echo ${lines[$f]} | cut -c 1-15)" "$(echo ${lines[$s]}| cut -c 1-15)")"
					echo "$(printf "%-15s %-15s" "$(echo ${lines[$f]} | cut -c 1-15)" "$(echo ${lines[$s]}| cut -c 1-15)")"
	    sleep 2
	    f=$(expr $f + 1)
	    s=$(expr $s + 1)
	    if [[ "$max" == "2" ]]; then
		break	
	    fi
	    
	done
	done

elif [[ "$lcd4" == "on" ]]
then

    $dir/modules/lcd/lcdi2c -i -l -b 1 "$(printf "%-15s %-15s" "$(echo nettemp.pl| cut -c 1-15) " "$(echo lcd mod| cut -c 1-15)")"
    sleep 2
    while :
	do
	
	IFS=$'\n' lines=($(cat $file))
	max=$(cat $file |wc -l)
	f="0"
	s="1"
	t="2"
	l="3"
	while [ "$s" -le "$max" ] ; do
	    $dir/modules/lcd/lcdi2c4 -l -b 1 -r 4  "$(printf "%-20s%-20s%-20s%-20s" "$(echo ${lines[$f]} | cut -c 1-20)" "$(echo ${lines[$t]} | cut -c 1-20)" "$(echo ${lines[$s]} | cut -c 1-20)" "$(echo ${lines[$l]} | cut -c 1-20)")"
            #$dir/modules/lcd/lcdi2c4 -l -b 1 -r 0  "$(printf "%-19s %-19s %-19s %-19s" "$(echo ${lines[$f]} | cut -c 1-19)" "$(echo ${lines[$s]} | cut -c 1-19)" "$(echo ${lines[$t]} | cut -c 1-19)" "$(echo ${lines[$l]} | cut -c 1-19)")"
        				     echo  "$(printf "%-19s %-19s %-19s %-19s" "$(echo ${lines[$f]} | cut -c 1-19)" "$(echo ${lines[$s]} | cut -c 1-19)" "$(echo ${lines[$t]} | cut -c 1-19)" "$(echo ${lines[$l]} | cut -c 1-19)")"
    	    sleep 3
    	    f=$(expr $f + 1)
    	    s=$(expr $s + 1)
    	    t=$(expr $t + 1)
	    l=$(expr $l + 1)
	    if [[ "$max" == "4" ]]; then
		break	
	    fi
	done
	done

fi

jot
Posty: 926
Rejestracja: śr lut 03, 2016 8:50 pm

Re: LCD 1602 HD44789 PCF8574 I2C

Post autor: jot » śr lis 23, 2016 10:26 pm

@qqrydza 0x27 jest domyślne - wynika wprost z binarki 'wypychającej' dane na wyświetlacz. Jeśli chcesz użyć innego adresu, to musisz binarce powiedzieć wprost jakiego adresu ma użyć.
Kiedyś "dorobiłem" taki panel do NT gdzie można było ustawić ten parametr ale pomysł się nie przyjął ;-)

Podpowiedź: skrypt musisz zmienić w liniach 12, 23, 38 i 50.

techfreak
Site Admin
Posty: 4659
Rejestracja: sob mar 15, 2014 2:23 pm
Lokalizacja: Gdansk
Kontaktowanie:

Re: LCD 1602 HD44789 PCF8574 I2C

Post autor: techfreak » śr lis 23, 2016 10:34 pm

A gdzie pisales o tym pomyśle bo nie pamiętam ?

qqrydza
Posty: 15
Rejestracja: śr lis 23, 2016 9:55 pm

Re: LCD 1602 HD44789 PCF8574 I2C

Post autor: qqrydza » śr lis 23, 2016 10:39 pm

Dzięki @jot! LCD ruszyło :-)

jot
Posty: 926
Rejestracja: śr lut 03, 2016 8:50 pm

Re: LCD 1602 HD44789 PCF8574 I2C

Post autor: jot » śr lis 23, 2016 10:47 pm

techfreak pisze:A gdzie pisales o tym pomyśle bo nie pamiętam ?
Tutaj
Ja będę używał w swoim projekcie z dwoma LCD, ale generalnie ten "mod" może się nadać do projektu lustra / wyświetlacza bezprzewodowego LCD/OLED na ESP i innych.

Awatar użytkownika
pimowo
Betatester
Posty: 4263
Rejestracja: czw lut 19, 2015 9:17 am
Lokalizacja: Wołów

Re: LCD 1602 HD44789 PCF8574 I2C

Post autor: pimowo » śr lis 23, 2016 11:21 pm

techfreak pisze:A gdzie pisales o tym pomyśle bo nie pamiętam ?
Tak to jest jak nasz Admin mało zagląda na forum :D
Mój NetTemp mieszka w Raspberry Pi 3B na szynie DIN

techfreak
Site Admin
Posty: 4659
Rejestracja: sob mar 15, 2014 2:23 pm
Lokalizacja: Gdansk
Kontaktowanie:

Re: LCD 1602 HD44789 PCF8574 I2C

Post autor: techfreak » czw lis 24, 2016 6:30 am

pimowo pisze:
techfreak pisze:A gdzie pisales o tym pomyśle bo nie pamiętam ?
Tak to jest jak nasz Admin mało zagląda na forum :D
Ty się nie martw zaglądam zaglądam, już pamiętam temat między innymi przez takie projekty jak jota powstało types w settings :)

Awatar użytkownika
pimowo
Betatester
Posty: 4263
Rejestracja: czw lut 19, 2015 9:17 am
Lokalizacja: Wołów

Re: LCD 1602 HD44789 PCF8574 I2C

Post autor: pimowo » czw lis 24, 2016 9:46 am

@techfreak, żartowałem ;)
A "Types" w NT to jest po prostu mistrzostwo świata-bardzo mi się podoba ta opcja.
Mój NetTemp mieszka w Raspberry Pi 3B na szynie DIN

jot
Posty: 926
Rejestracja: śr lut 03, 2016 8:50 pm

Re: LCD 1602 HD44789 PCF8574 I2C

Post autor: jot » czw lis 24, 2016 10:03 am

pimowo pisze:
techfreak pisze:A gdzie pisales o tym pomyśle bo nie pamiętam ?
Tak to jest jak nasz Admin mało zagląda na forum :D
Oj tam oj tam ;-) Zagląda :-)
Tylko czasem zapomni wrzucić diffa do repozytorium ;-)
techfreak pisze:Ty się nie martw zaglądam zaglądam, już pamiętam temat między innymi przez takie projekty jak jota powstało types w settings :)
No pamięta pamięta, a kod leży i się kurzy od kwietnia ;-)
Pamiętam, że gdzieś nawet wyprodukowałem kod dla ESP, który na podłączonym wyświetlaczu i2c pokazuje cyferki z NT :-)

Awatar użytkownika
Jufo
Posty: 160
Rejestracja: czw sie 06, 2015 7:40 pm
Lokalizacja: Warszawa
Kontaktowanie:

Re: LCD 1602 HD44789 PCF8574 I2C

Post autor: Jufo » sob sty 14, 2017 4:02 pm

Moje pytanie, czy ktoś sobie poradził w LCD 4x20, żeby na samym końcu nie trzeba było czekać aż zejdzie ostatnia linijka żeby pojawiały się dane od początku ? Trochę to denerwujące bo czekasz aż do ostatniego czujnika, potem 3 sekwencje puste pola a dopiero potem początek - pierwszy czujnik...
Pozdrawiam,
Robert

ODPOWIEDZ

Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 4 gości