Fórum témák

» Több friss téma
Cikkek » NTP vezérelt digitális óra RasPi-val
NTP vezérelt digitális óra RasPi-val
Szerző: Feri007, idő: Ápr 3, 2015, Olvasva: 10711, Oldal olvasási idő: kb. 1 perc
Lapozás: OK   4 / 5

A program egyszerűbb, mint gondolnánk:



#!/bin/bash
SPI=/dev/spidev0.0

#init MAX7219
echo -en "\x0F\x00" > $SPI #Disable test mode
echo -en "\x0C\x01" > $SPI #No shutdown
echo -en "\x0B\x07" > $SPI #Scan limit: 0-7
echo -en "\x0A\x04" > $SPI #Intensity, max: 0x0F, min:01
echo -en "\x09\xff" > $SPI #Decode mode: decode for 0-7 digits

while true; do
        time_asc=`/bin/date +%HA%MA%S`                  #Az hexa "A"   "-"-re dekódolódik
        digit=8                                         #Mind a 8 digitet használjuk
        for chr in `echo $time_asc | grep -o . `; do    #Karakterekre darabolunk
                echo -en "\x0$digit\x0$chr"  > $SPI     #Karakterenként kiírjuk
                digit=$(($digit-1))                     #Köv. karakter
        done
        #/usr/local/bin/slp -s                          #Várunk a köv. mp.-ig.
        #sleep .1                                       #Vagy gyakran kiiratunk
        sleep 1                                         #Vagy 1mp-et várunk, ugrik néha
done

A MAX7219 IC mind a kijelző használatát, mind a programből kezelhetőséget megkönnyíti. 2 bájtonként (echo... sorok), a /dev/spidev0,0 eszközbe irással vezéreljük az IC-t.  Az első bájt a konfig, ill. kijelző digit cím, a második az adat. A regiszterek feladatáról az adatlap ad részletes felvilágosítást. A kijelző/feladat szerint választhatunk, hogy kiírt adatot binárisan (pl. pontmártix kijelző), vagy hétszegmenses kijelzésre dekódolva kívánjuk látni. (Decode mode.)

Az program "lelke" a date parancs, ami a  +%HA%MA%S opcióval kijelzésre alkalmas formában adja vissza az időt. Az elválasztó "A" karakter a MAX7219-ben, hétszegmenses kijelzőt feltétlelezve, kötöjellé kódolódik, ez lesz a kijelzőn az elválasztó szimbólum.  

A /usr/local/bin/slp program a -s kapcsolóval a következő másodperc kezdetéig vár. Nem része a Raspbian-nak. Letölthető innen  a forrás, és le kell forditani. Ha lusták vagyunk, alternatívák: 

  • Letölthető a Raspbian bináris 
  • 0,1 másodpercenként kiíratunk. Persze, csak minden tizedik hoz változást. Nagyobb terhelést okoz.
  • Vagy kerek 1 mp-et várunk. A ciklus hossza igy valamivel több, mint 1 mp-lesz, időnként  2 mp-et ugrik az óra.

A programot bemásoljuk, futtathatóvá tesszük, indítjuk. Ha mindent jól csináltunk, működni fog! A program kezeli az UTC alapján a helyi időt, téli-nyári időszámítást, automatikusan vált, és mindig pontos.
Sőt, némi plusszmunkával olyat tud ez az óra, amilyet kevés másik. Legyen ez fejtörő: Mit látunk az alábbi videón, mikor történik?

 


A cikk még nem ért véget, lapozz!
Következő: »»   4 / 5
Értékeléshez bejelentkezés szükséges!
Bejelentkezés

Belépés

Hirdetés
XDT.hu
Az oldalon sütiket használunk a helyes működéshez. Bővebb információt az adatvédelmi szabályzatban olvashatsz. Megértettem