Salaman mikrokontrolleri (mcu) ohjaa ledejä sytyttäen niitä yksi kerrallaan hyvin lyhyeksi aikaa. Ledit ovat multiplexattu (4x8 LED), ja kytketty yhdellä vastuksella per rivi.
Levyyn on myös suunniteltu kytkin, jolla voisi vaikka sammuttaa laitteen tai toimittaa muuta toiminnallisuutta, mutta näitä ei ole koodissa toteutettu vieläkään.
Kuusipinninen liitin on ohjelmointia varten ja sitä kautta ohjelma siirretääm mikrokontrollerille. Ohjelmointi hoituu Arduinon ISP:n kautta.
| Komponetti | KPL | Huomautukset |
|---|---|---|
| ATtiny861a SOIC | 1 | |
| 3 mm diffusoitu LED | 32 | |
| 110 Ohm 1206/1210 SMD vastus | 4 | Sinisille, valkoisille, vihreille ledeille |
| 169 Ohm 1206/1210 SMD vastus | 4 | Keltaisille, punaisille ledeille |
| 10 µF SMD tantaalikondensaattori | 1 | |
| 6 pinnisen piikkirima | - | Ohjelmointia varten |
| Kuumaliimaa | - | Ledien suojaamiseen |
| USB kaapeli | - | Sopivan pituinen, vaikka 1 m |
| Haalarimerkki | 1 | :-) |
| SIK | OTiT | YRK | PROSE | KONE | ARK | OPTIEM |
|---|---|---|---|---|---|---|
Nyt kun sinulla on piirilevy, laitetaampa siihen komponentit kiinni.
Piirilevyyn juotetaan 4 SMD vastusta, 1 SMD kondensaattori ja 6-pinninen piikkirimai.
Helpointen ja nätein tapa juottaa ne on laittamalla yhteen pädiin vähän tinaa ja sitten varovasti työntää komponetti sulaneseen tinaan, niin ettei se jää "ilmaan".
Toinen puoli on helpompi juottaa kun se nyt pysyy siinä paikallaan.
Vastuksilla ei ole väliä kummin päin ne on laitettu, kuhan numero puoli on ylöspäin ja suhteellisen suoraan laitettu, se on hyvä. Kondensaattorin suunta pitää kattoa leiskasta.
Piikkiriman juottaminen onnistuu samalla tavalla, paitsi nyt joudut pitämään sitä vähän ilmassa,
jotta saat sen kunnolla juotettua kiinni.
Piirin juottaminen onnistuu helpointen siten, että juotat ensin yhden kulmajalan kiinni.
Sulata juotos, jos piiri on vinossa.
Tarkista, että piirin kaikki jalat ovat pädien päällä. Ei ilmassa.
Juota sitten toinen vastakkainen kulmajalma.
Loput jalat voi juottaa yksi kerrallaan.
Tai jos haluaa kokeilla nopeammalla tavalla niin veto juottamalla saa yhden puolen yhdellä vedolla*.
Esimerkki video...
USB kaapelista pitää leikata toinen pää pois.
Kuori 5v and GND johdot joko saksilla tai kuorimilla.
Juota sitten 5V ja GND piirilevyyn.
Tähän kannattaa käyttää USB-kaapelia, jossa on vain 5V ja GND.
Tai sellaista kaapelia jossa on paksut sisäiset johtimet.
Ledien juottaminen on suurin työmaa merkin valmistuksessa.
Työtä aiheuttaa lähinnä ledin painaminen merkistä läpi. Ensin pitää huomioida polariteetti.
Jos olet nähnyt paljon vaivaa että olet laittanut ledit miten sattuu niin voipi harmittaa..
Pidä mielessä:
Pyöreä läpiveto ja pidempi jalka ledissä = POS
Neliö läpiveto ja lyhyempi jalka ledissä = NEG
Ledien jalkojen päät kannattaa katkoa kulmassa, näin niistä tulee teräviä. Helpottaa ledien painamista merkistä läpi. Toinen kikka on myös paksummalla neulalla tehä reikiä etukäteen.
Jos jostakin syystä, olet juottanut kaikki ledin väärin päin.
Erinomaista, homma meni pieleen.
Onneksi on olemassa toinen koodi tiedosto joka vaihtaa ledien logiikan.
Sitten kun ohjelmisto on flashatty ja tarkistettu, että kaikki ledit toimiii niinkuin pitäisi, piikkirima otetaan pois. Joko imusukkaa / tinapumppua käyttäen tai sitten lämmittämällä kaikki joloissa olevat tinat kolvilla, tekemällä vetoliikkeitä.
Tässä kohtaan on hyvä kokeilla laittaa merkki powerbankkiin kiinni.
Jos merkki sammuu itsestään, se voi hyvinkin johtua siitä, että merkki on liian energiatehokas :D Esim. SIK:in possu merkki syöpi n. 5-20 ma riippuen ledien tilasta.
Tämän ongelman saa korjattua juottamalla kuormavastuksen 5V ja GND väliin.
Esim. Juottamalla 110 ohmin vastuksen, merkki syö ~60 ma.
Tarvittava kuormavastus riippuu käyttämästäsi varavirtalähteestä.
Niissä on vaihteleva minimivirranvaatimus, jonka alittaessa ne katkaisevat virransyötön.
Lopuksi, laita kuumaliimaa ledien ympärille suojausta varten.
Ei ole pakko jos et halua.
Mutta siinähän ois komia merkki valmiina.
Ei muuta ku ompelemaan kiinni!!
🥳 🧵 🪡
Tähän tarvitset Arduino nanon tai unon, jotta saat siirrettyä koodit levylle.
Koodin kääntämiseen tarvitset avr-gcc ja koodin siirtämiseen avrdude.
Eli asenna omalle käyttöjärjestelmälle kyseiset työkalut, ennen seuraavia kohtia.
Aletaanpa pukata sitä koodia, että merkkistä tulisi valoa.
Mutta ensin pitää hyppyjohdoilla tehdä yhteys led-merkkiin.
Käytetään Arduino nanoa tässä esimerkissä:
| Merkin pinni | 1 | 2 | 3 | 4 | 5 | 6 |
|---|---|---|---|---|---|---|
| Selite | MOSI | MISO | SCK | VCC | GND | Reset |
| Arduinon pinni | D11 | D12 | D13 | VCC | GND | D10 |
(Leiska kuvasta näkee liittimessä neliön --> 1. pinni)
Muista vetää arduinon Reset ylös. Ardu nollautuu kun sarjaliikenne alotetaan....
Mikäli olet juottanut ledit väärinpäin, eikä niiden irroittaminen ja uudelleen juottaminen huvita,
voit muuttaa ledien ohjaavan logiikan ennen kääntämistä.
Tiedosto: led-merkki/src/vilkutus.c
(rivit 6-7):
#include "lediportit.h" // Mikäli juotit ledit väärin päin,
// #include "lediportit_vaarin.h" // Vaihda tästä otsikko tiedosto.Ledit väärinpäin:
// #include "lediportit.h" // Mikäli juotit ledit väärin päin,
#include "lediportit_vaarin.h" // Vaihda tästä otsikko tiedosto. # Kääntäminen käyttäen avr-gcc:tä
avr-gcc -mmcu=attiny861 salama.c -I./ -Os -DF_CPU=8000000ULJos et saa koodeja käännettyä, pre_compiled hakemistosta löytyy valmiiksi käännetyt koodit.
# Fläsäys käyttäen arduino-isp:tä
avrdude -c avrisp -p t861 -B3 -P /dev/ttyUSB0 -b 19200 -U flash:w:a.out
# Fuse asetukset käyttäen arduino-isp:tä
avrdude -c avrisp -p t861 -B3 -P /dev/ttyUSB0 -b 19200 -U lfuse:w:0xe2:m -U hfuse:w:0xdf:mJos valittaa oikeuksista, vedä sudo/doas tilassa.
Jos siirtämisen aikana tulee "programmer not responding",
kokeile toista baudratea tai ottamalla "-B3" pois.
# Fläsäys käyttäen arduino-isp:tä
avrdude -C "C:\Program Files (x86)\Arduino\hardware\tools\avr\etc\avrdude.conf" -c avrisp -p t861 -B3 -P COM7 -b 19200 -U flash:w:a.out
# Fuse asetukset käyttäen arduino-isp:tä
avrdude -C "C:\Program Files (x86)\Arduino\hardware\tools\avr\etc\avrdude.conf" -c avrisp -p t861 -B3 -P COM7 -b 19200 -U lfuse:w:0xe2:m -U hfuse:w:0xdf:mWindowsilla avrdude pitää olla ympäristömuuttujissa.
Toinen vaihtoehto on ajaa komento "\Arduino\hardware\tools\avr\bin"-kansiossa.
