LED-klocka, ej 7-segment eller LCD

Lysdioder, Optiska sensorer, Fiberoptik, Displayer, Lasrar, Optiska kopplare
niklas_j
Inlägg: 52
Blev medlem: 29 juni 2011, 09:52:31

LED-klocka, ej 7-segment eller LCD

Inlägg 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... :D



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?
Användarvisningsbild
Swech
EF Sponsor
Inlägg: 4750
Blev medlem: 6 november 2006, 21:43:35
Ort: Munkedal, Sverige (Sweden)
Kontakt:

Re: LED-klocka, ej 7-segment eller lcd

Inlägg 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
niklas_j
Inlägg: 52
Blev medlem: 29 juni 2011, 09:52:31

Re: LED-klocka, ej 7-segment eller lcd

Inlägg 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. :)
jah
Inlägg: 659
Blev medlem: 16 januari 2009, 13:00:08
Ort: Eslöv

Re: LED-klocka, ej 7-segment eller lcd

Inlägg 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
niklas_j
Inlägg: 52
Blev medlem: 29 juni 2011, 09:52:31

Re: LED-klocka, ej 7-segment eller lcd

Inlägg 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?
blueint
Inlägg: 23238
Blev medlem: 4 juli 2006, 19:26:11
Kontakt:

Re: LED-klocka, ej 7-segment eller lcd

Inlägg av blueint »

M74HC595B1R 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".
sneaky
Inlägg: 1621
Blev medlem: 22 juni 2009, 18:38:42

Re: LED-klocka, ej 7-segment eller lcd

Inlägg 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.
niklas_j
Inlägg: 52
Blev medlem: 29 juni 2011, 09:52:31

Re: LED-klocka, ej 7-segment eller lcd

Inlägg 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.)
blueint
Inlägg: 23238
Blev medlem: 4 juli 2006, 19:26:11
Kontakt:

Re: LED-klocka, ej 7-segment eller lcd

Inlägg 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?
niklas_j
Inlägg: 52
Blev medlem: 29 juni 2011, 09:52:31

Re: LED-klocka, ej 7-segment eller lcd

Inlägg 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?
Senast redigerad av niklas_j 29 juni 2011, 14:43:19, redigerad totalt 1 gång.
Användarvisningsbild
Glenn
Inlägg: 36630
Blev medlem: 24 februari 2006, 12:01:56
Ort: Norr om Sthlm
Kontakt:

Re: LED-klocka, ej 7-segment eller lcd

Inlägg 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.
niklas_j
Inlägg: 52
Blev medlem: 29 juni 2011, 09:52:31

Re: LED-klocka, ej 7-segment eller lcd

Inlägg 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)
blueint
Inlägg: 23238
Blev medlem: 4 juli 2006, 19:26:11
Kontakt:

Re: LED-klocka, ej 7-segment eller lcd

Inlägg 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 (-).
niklas_j
Inlägg: 52
Blev medlem: 29 juni 2011, 09:52:31

Re: LED-klocka, ej 7-segment eller lcd

Inlägg 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: [...] ". :D
sodjan
EF Sponsor
Inlägg: 43247
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: LED-klocka, ej 7-segment eller lcd

Inlägg 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.
Skriv svar