Sida 1 av 5
LED-klocka, ej 7-segment eller LCD
Postat: 29 juni 2011, 10:56:45
av niklas_j
Har planerat att bygga en LED-klocka. Det är lite mer grejer kring detta men, jag börjar med det elektroniska.
Tanken är att sätta upp en ring med 60 LEDs. Tim, minut och sekundvisare, består helt enkelt av att resp LED lyser. Bryr mig just nu inte om att det inte går att se skillnad på resp. "visare". ("är det 5 över 12 eller prick 1?")
(Nästa kul ide blir att ha RGB-visare istället och/eller med en snygg övertoning mellan stegen. Men det väntar jag med nu.)
Jag har inte hållt på med elektronik på en fem år minst, men är fysiker och kan grundprinciperna för det mesta inom elektronik, tror jag. Programmerare till yrket, så ev programmering är det minsta problemet.
Osäker på min budget, men eftersom jag har en tendens att aldrig slutföra mina projekt så vill jag inte lägga ut för mycket...
Frågan är då vilket upplägg man ska ha och hur man gör. Har tittat lite på Arduino, vilket verkar smidigt, men känns lite overkill för en sån här applikation. Har också sett att det finns färdiga "klockmoduler" som ger ut s, m, h osv., och innehåller oscillator etc.
Vilket är lättast här? Finns det en billig typ light-arduino som man skulle kunna använda istället för att få ner kostnaden och få det att inte kännas onödigt komplicerat för en klocka?
Sen kommer man till själva styrningen om vad som ska synas. Min uppfattning är att:
1. För att kunna använda "fasta" utsignaler så måste det finnas så många anslutningar från kortet. Och det gör det ju inte.
2. Alternativet är att styra en (eller flera) LED:ar åt gången ("multiplexing").
3. Problemet då är att LED:arna släcks en del av tiden. Min tanke var då att man kunde sätta en "D-vippa", har jag för mig att de heter, framför varje led, som ska hålla den lysande tills man "sätter" nivån på den.
4. Vet inte varför, men på något sätt känns då en seriell historia enklare än det här med "tri-state"-grejerna?
5. Då hittade jag en LED-driver
https://www.elfa.se/elfa3~se_sv/elfa/in ... &toc=20118
Som verkar göra precis så som jag tänker. Känns halvdyr dock, eftersom jag skulle behöva 5st.
Tänker jag någorlunda rätt?
Finns det bättre lösningar?
Finns det kanske t o m färdiga guider?
Om jag skulle köra på ovanstående idé, någon som har förslag på hur jag går vidare?
Re: LED-klocka, ej 7-segment eller lcd
Postat: 29 juni 2011, 12:04:54
av Swech
Vanliga skiftregister klarar detta fint.
Tar du intensiva dioder kan du driva dem direkt med några mA
Ett tips är att köra RGB så får du både timme . minut och sekund i olika färger
Swech
Re: LED-klocka, ej 7-segment eller lcd
Postat: 29 juni 2011, 13:05:58
av niklas_j
Okej, tack!
Som sagt grymt rostig på detta. Då ska jag alltså ha ett "SIPO"-shift register? Typ:
https://www.elfa.se/elfa3~se_sv/elfa/in ... &toc=20071
Och sen sätter jag då ihop 8 såna när jag väl gör hela grejen (kan ju nöja mig med en till att börja med).
Men output på varje pinne på detta kommer då vara fel tills alla data är inskrivna? Så då måste jag stänga av output under en uppdatering? Och sen inte göra en ny uppdatering förrän efter någon tiondel eller så? (eller kanske inte ens behöver stänga av output?)
Men okej, det löser jag nog på något sätt.
Nästa steg blir då att generera själva signalen. Vi kan ju börja med bara sekundvisaren. Som jag förstår det ska jag alltså ha ut:
1. en fyrkantsvåg (clk).
2. en signal som säger om vi är i "skrivmode" eller inte. (detta blir då typ "börja skicka data"-eventet)
3. någon grej där vi kan få ut en "siffra" s<60, när som helst.
4. en signal som går hög s pulser efter "börja skicka data".
Korrekt?
Gör man detta lättast med "vanlig" elektronik eller med en arduino?
PS
RGB blir ett senare skede som sagt, måste börja någonstans.

Re: LED-klocka, ej 7-segment eller lcd
Postat: 29 juni 2011, 13:44:54
av jah
Använd 74HC595 som utgångsregister. En av de absolut vanligaste kretsarna för just detta ändamål
Du behöver då bara tre signaler totalt: Data, Clk, Latch.
Den extra signalen matar ut alla bitarna parallellt så att utgångarna alltid är stabila utan att flippa allt eftersom data skiftas in.
/J
Re: LED-klocka, ej 7-segment eller lcd
Postat: 29 juni 2011, 13:54:23
av niklas_j
Suveränt, tackar. Då är seriell output -> led i princip färdigplanerat.
Någon som har tips om hur jag ska generera själva seriella outputen?
Tänker jag rätt så här?
1. Sätter upp en arduino, använder tre utgångar.
2. Sätter dit en klockmodul (man kunde väl använda den interna, men att den hade något kass upplösning)
3. Har ett program i stil med:
Läs in h, m, s från modulen.
Skapar klockan (o1) med kod (off/on, sleep helt enkelt), och slår på Data på rätt ställe i loopen (typ if (s==i) o2 = high else o2=low;), och har latch hög under tiden?
Eller bör jag göra ngt annat än en arduino? Hur brukar man göra?
Re: LED-klocka, ej 7-segment eller lcd
Postat: 29 juni 2011, 14:01:56
av blueint
M
74HC
595B1R hos ELFA 73-796-01
med datablad borde lösa uppgiften galant. Max 35 mA per utgång, men kolla upp spänningsfallet över kretsens utgångar och därmed effekten. Sidan 2 i databladet visar hur den fungerar.
Tänker mig att du tänkt dig 3 st lysdiodscirklar som tänds upp ett helt varv likt detta:
Kod: Markera allt
HH MM SS
/--\ /--\ /--\
| | | | | |
\--/ \--/ \--/
24 + 60 + 60 = 144 lysdioder.
Innebär 18 st 595-utkretsar. Som innebär att det är billigare att köpa 25 st för 2,98 SEK istället för 18 st för 5,03. Med moms och öresavrundning blir det 94 SEK.
Sen är frågan hur man ska lösa konstantströmsdrivningen. Antingen har man en resistans per lysdiod vilket kommer att sluka massor av energi. Eller så drivs en transistor som kortsluter över lysdioden och har aktiv konstantströmsdrivning. Alternativt att transistorn drar till en konstantströms "rail".
Re: LED-klocka, ej 7-segment eller lcd
Postat: 29 juni 2011, 14:09:00
av sneaky
Nä, han har nog tänkt sig en enda cirkel där "prickarna" visar vad klockan är, därav eventuella RGB-lysdioder i framtiden för att skilja dem åt.
Vad gäller microcontroller så spelar det ingen roll. Ta det som du känner dig mest bekväm med. Vill du inte använda en "rå" micro som PIC/AVR/etc så är ju Arduino (baserad på en AVR) ett bra val då det mesta av jobbet är gjort åt dig. Den är lite mer nybörjarvänlig.
Re: LED-klocka, ej 7-segment eller lcd
Postat: 29 juni 2011, 14:28:46
av niklas_j
sneaky och blueint: sneaky har uppfattat rätt. Totalt 60 st i första läget. En enda cirkel. (klockan 0:00:00 är alltså en enda diod tänd, klockan 1:10:30 är tre dioder tända).
Okej, men arduino funkar iaf? Så kan jag ha den för experiment och byta till något svårare (och gissningsvis mindre och billigare?) sen när jag är nöjd och vill göra det på riktigt.
Och min plan där för driften, är det så man normalt gör - styr klockan programmatiskt, eller är det oortodoxt?
Konstantströmsdrift: finns det någon guide om hur man bygger det själv med transistorer så jag fattar principen? (förstår anledningen till det etc. vill bara veta hur man bygger den.)
Re: LED-klocka, ej 7-segment eller lcd
Postat: 29 juni 2011, 14:37:32
av blueint
Apropå drivningen:
Det skulle innebära 24 + 60 + 60 = 144 lysdioder som ger ett behov på 18 st kontrollkretsar för 5,03 SEK/st => 91 SEK. Men om man köper 25 st för 2,98 SEK/st så kostar det istället 75 SEK. Som med öresavrundning och moms blir 94 SEK.
Sen är frågan hur man ska ordna konstantström till lysdioderna:
* En resistans per lysdiod = enkelt, men tar rejält med energi.
* Driv ett kluster med en aktiv konstantströmsgenerator. Transistor kortsluter över lysdioderna. Ger 0,7 V spänningsfall dock. Om man inte kör MOSFET.
* Driv ett kluster med en aktiv konstantströmsgenerator. Transistor drar lysdioder till en av konstantströmskällans poler.
Finns det någon lämplig MOSFET som kan jobba med 5V nivå och är "billig" ?
Någon kanske har andra ideér för drivningen?
Re: LED-klocka, ej 7-segment eller lcd
Postat: 29 juni 2011, 14:40:28
av niklas_j
blueint: Notera att det inte var 144 utan bara 60. Se mitt inlägg (och sneakys) strax ovan. Själva frågan är väl ändå relevant antar jag?
Och nu säger jag väl något som är helt off, gissar jag, men kan man inte lösa konstantströms-matning med OP-förstärkare?
Har för mig att det fanns någon slags U->I-koppling som man kunde använda?
Re: LED-klocka, ej 7-segment eller lcd
Postat: 29 juni 2011, 14:41:07
av Glenn
Det känns ju iofs som en väl spridd missuppfattning att arduino skulle vara enklare än nåt annat högnivåspråk på en PIC/AVR.
arduino är mest dyrt.
Re: LED-klocka, ej 7-segment eller lcd
Postat: 29 juni 2011, 14:45:18
av niklas_j
Okej, du rekommenderar PIC/AVR. Är det lätt att programmera via säg USB?
Någon specifik rekommendation? (om det rör sig om något som är mycket billigare så är det ju bara att testa)
Re: LED-klocka, ej 7-segment eller lcd
Postat: 29 juni 2011, 15:08:59
av blueint
USB = krångel
Ang konstantströmsdrift, kika på nationals "simple switcher" och sätt FeedBack till spänningen över en shunt (resistor i serie med utgången) istället för mellan (+) och (-).
Re: LED-klocka, ej 7-segment eller lcd
Postat: 29 juni 2011, 15:25:58
av niklas_j
Okej, ska kolla simple switcher.
Hur bör man göra för att föra över program då? Det är väl inte mycket alternativ kvar längre? Förr fanns det ju mängder med gameports och parallella portar och grejer.
Stort tack ska ni ha, alla. Tre grejer kvar alltså då:
1. Beslut om mikrokontroller. (och här har jag tre önskemål: enkelt att föra över data till, relativt enkelt att komma igång med programmeringsmässigt - skriver helst inte asm, och hyfsat billigt)
2. Konstantströmslösningen.
3. Och att få ett "ja, det är helt ok att styra clk kodmässigt" alt. "nej, gör så här: [...] ".

Re: LED-klocka, ej 7-segment eller lcd
Postat: 29 juni 2011, 15:39:54
av sodjan
niklas_j> Okej, du rekommenderar PIC/AVR. Är det lätt att programmera via säg USB?
blueint> USB = krångel
Hur fan kan du svara så där korkat till någon som frenetiskt försöker förstå !?
Bättre att skita i att svar alls om det bara rör till det...
Vadå "krångel" ? Närdå ? I vilket sammanhang ?
Korrekt svar är, javisst! Alla vettiga programmerare idag kör över USB.
Det är väldigt enkelt och det fungerar ofta väldigt bra. Det är absolut
inget som hellst krångel med det...
Sen angående :
niklas_j> blueint: Notera att det inte var 144 utan bara 60.
Även här måste man vara lite försiktig med vad man talar om.
Visst, det är 60 positioner runt en urtavla. Man om det gäller RGB
dioder (för att få olika färger) så är det 60*3 = 180 individuella dioder
som ska ha "drivning". Alltså i princip ingen skillnad mot att ha 180 st
lösa standard LEDs. Så även här är det viktigt att vara överens om
vad det är man talar om.
> * En resistans per lysdiod = enkelt, men tar rejält med energi.
Vad betyder "rejält" här mer konkret ?
Det är ju knappast så att hela urtavlan är upplyst samtidigt.
> Okej, men arduino funkar iaf?
Ja, men inte utan en del extern logik/buffring för att få drivning till
det önskade antalet LED (om det nu är 80, 144 eller 180 st). Ingen
skillnad där mot att köra en lös AVR/PIC.
Sen så vet jag inte vilken programmeringserfarenhet du har tidigare.
Att sätta igång och programmera mikrokontrollers (avsett om det är
lösa AVR/PIC eller kort typ Arduino) är inget man gör på ett par timmar.