DS2408
Z Wiki.2o.pl
DS2408 jest 8 kanałowym przełącznikiem. Umożliwia też odczyt stanu na swoich wyjściach - można np podłączyć tam przełączniki. OWFS umożliwia sterowanie przy pomocy tego układu wyświetlaczem LCD (do 80 znaków).
Sterowanie wyświetlaczem LCD
Sterowanie wyświetlaczem LCD w standardzie HD44780 (sporo takich na Allegro) odbywa się poprzez zapisanie do odpowiedniego pliku komunikatu do wyświetlenia. W zależności od tego czy zastosujemy sterownik zaproponowany przez Dallas Maxim czy przez Hobby Boards wpisujemy komunikaty odpowiednio do LCD_M/message lub do LCD_H/message. Warto przed zabawą zainstalować OWFS w najnowszej wersji.
OWFS obsługuje wyświetlacze do 80 znaków (np 4x20). Wyświetlacz zapełnia linijki w kolejności 1, 3, 2, 4. Do wyświetlenia komunikatu można użyć następującego kodu:
#!/bin/bash
MSG[1]="Pierwsza linijka"
MSG[2]="Druga"
MSG[3]="Trzecia"
MSG[4]="Czwarta"
line="____________________"
out=""
for i in 1 3 2 4 ; do
out=$out${MSG[$i]}${line:${#MSG[$i]}:$[20-${#MSG[$i]}]}
done
echo -n $out | sed 's/_/ /g' > /var/1-Wire/mnt/29.406B04000000/LCD_H/message
W powyższym przykładzie gdy chcemy aby w danej linijce znajdowało się obok siebie więcej niż jedna spacja używamy w zamian znaku podkreślenia.
Wyświetlenie temperatur zawartych w tablicy temp (w kodzie nie pokazano jej zapełniania) na wszystkich (zapisanych w innej tablicy) wyświetlaczach LCD. Kod usuwa też części dziesiętne z temperatur (kropkę i to co za nią).
#!/bin/bash
lcd[0]="29.406B04000000"; # piwnica
MSG[1]="Temp. zewn.___ ${temp[0]%.*}"
MSG[2]="Kociol________ ${temp[2]%.*}"
MSG[3]="Boiler gora___ ${temp[3]%.*}"
MSG[4]="Boiler dol____ ${temp[1]%.*}"
line="____________________"
out=""
for i in 1 3 2 4 ; do
out=$out${MSG[$i]}${line:${#MSG[$i]}:$[20-${#MSG[$i]}]}
done
for ((x=0; x<${#lcd[@]}; x++))
do
echo -n $out | sed 's/_/ /g' > /var/1-Wire/mnt/${lcd[$x]}/LCD_H/message
done

