Sisällysluettelo:

DIY Arduino -binaarinen herätyskello: 14 vaihetta (kuvilla)
DIY Arduino -binaarinen herätyskello: 14 vaihetta (kuvilla)

Video: DIY Arduino -binaarinen herätyskello: 14 vaihetta (kuvilla)

Video: DIY Arduino -binaarinen herätyskello: 14 vaihetta (kuvilla)
Video: 10 tapaa tulla onnelliseksi 2024, Marraskuu
Anonim
DIY Arduino Binary Herätyskello
DIY Arduino Binary Herätyskello
DIY Arduino Binary Herätyskello
DIY Arduino Binary Herätyskello
DIY Arduino Binary Herätyskello
DIY Arduino Binary Herätyskello

Se on jälleen klassinen binaarikello! Mutta tällä kertaa vielä enemmän lisätoimintoja! Tässä ohjeessa näytän sinulle, kuinka rakentaa binäärinen herätyskello Arduinolla, joka voi näyttää sinulle paitsi ajan, myös päivämäärän, kuukauden, jopa ajastimella ja hälytystoiminnoilla, joita voidaan käyttää myös yölampuna! Aloitamme ilman lisäpuheita!

Huomautus: Tämä projekti ei käytä RTC -moduulia, joten tarkkuus riippuu käyttämästäsi kortista. Olen sisällyttänyt korjausmekanismin, joka korjaa ajanvirtauksen tietyn ajanjakson aikana, mutta sinun on kokeiltava löytääksesi oikean arvon kyseiselle ajanjaksolle (lisää tästä alla), ja jopa korjaavan mekanismin avulla se silti ajautuu pitkällä aikavälillä (verrattuna ilman sitä). Jos joku on kiinnostunut, ota RTC -moduulin käyttö käyttöön tässä projektissa

Tarvikkeet

5 mm: n LED (mitä tahansa väriä, käytin 13 valkoista LEDiä ja yksi RGB-LED merkkivalona) --- 14 kpl

Arduino Nano (muut voivat toimia) --- 1 kpl

Mikrokytkin --- 1 kpl

Pieni pala alumiinifoliota

Asennuslevy (kotelolle, mutta voit suunnitella itse)

Pala valkoista paperia (tai muuta väriä)

Jotkut muovikalvot (jota käytetään kirjan kansina)

Joukko johtoja

Summeri --- 1kpl

NPN-transistori --- 1kpl

Vastukset 6k8 --- 14 kpl, 500R --- 1 kpl, 20R (10Rx2) --- 1 kpl, 4k7 --- 1kpl

Virtalähde projektille (käytin litium-akkua)

5050 LED -nauha ja liukukytkin (valinnainen)

Vaihe 1: Liitä piiri

Liitä piiri!
Liitä piiri!

Jaan tämän vaiheen:

1) summerin osa

2) LED -paneeli

3) Kytkin (painike)

4) LED -nauha

5) Kapasitanssianturi

6) Virtalähde

7) Yhdistä ne kaikki Arduinoon

Useimmiten tämä on vain "seuraa kaavamaista" vaihetta. Joten tutustu yllä olevaan kaavioon tai jopa lataa ja tulosta se!

Vaihe 2: Summerin osan valmistelu

Summerin osan valmistelu
Summerin osan valmistelu
Summerin osan valmistelu
Summerin osan valmistelu
Summerin osan valmistelu
Summerin osan valmistelu

Jos olet aiemmin käyttänyt summeria Arduinon kanssa, tiedät, että jos kytket sen suoraan Arduinoon, se ei ole tarpeeksi kova. Tarvitsemme siis vahvistimen. Vahvistimen rakentamiseksi tarvitsemme NPN -transistorin (pohjimmiltaan mikä tahansa NPN toimii, käytin S9013: ta, koska sain sen vanhasta projektista) ja jonkin verran vastusta virran rajoittamiseksi. Aloita tunnistamalla ensin transistorin keräin, lähetin ja kanta. Pieni googlettaminen tietolomakkeesta toimii tähän. Juota sitten transistorin keräin summerin negatiiviseen napaan. Summerin positiivisessa navassa juotamme siihen vain langanpalan, jotta voimme juottaa sen myöhemmin Arduinollemme. Tämän jälkeen juota 500R (tai mikä tahansa vastaava vastusarvo) -vastus transistorin kantaan ja vastuksesta, juota toinen lanka tulevaa käyttöä varten. Lopuksi juotetaan kaksi 10R -vastusta sarjaan transistorin emitteriin ja kytketään toinen johdin vastuksista.

Oikeasti, katso kaavio.

p/s: En vieläkään oikein tiedä, miten valita vastus transistorille kirjoittaessani tätä. Käyttämäni arvo valitaan empiirisesti.

Vaihe 3: LED -paneelin valmistelu

LED -paneelin valmistelu
LED -paneelin valmistelu
LED -paneelin valmistelu
LED -paneelin valmistelu
LED -paneelin valmistelu
LED -paneelin valmistelu

Liitä LEDit ja vastus prototyyppikorttiin vastaavasti ja juota. Se siitä. Noudata kaaviota. Jos kiinnostuit käyttämistäni väleistä, 3 reikää toisistaan kullekin sarakkeelle ja kaksi reikää toiselle kullekin riville (katso kuva). Ja merkkivalo? Liitin sen satunnaisesti.

Kun olet juottanut LEDit ja vastuksen piirilevyyn, kytke kaikki LEDien positiiviset liittimet yhteen. Sitten juota johdot yksi kerrallaan jokaiseen vastukseen LEDien negatiivisissa liittimissä, jotta voimme juottaa ne myöhemmin Arduinolle.

HUOMAUTUS: Saatat hämmentyä tässä vaiheessa. Muista sen sijaan, että liität kaikki maat yhteen, liitämme kaikki positiiviset liittimet yhteen ja negatiiviset liittimet Arduinon yksittäiseen nastaan. Käytämme siis Arduino GPIO -tappia maana, ei Vcc: tä. Jos liität sen vahingossa taaksepäin, älä huoli. Voit muuttaa led -ohjaustoiminnon kaikki HIGH -arvoksi LOW ja LOW -HIGH.

Vaihe 4: Kytkimen valmistelu (itse asiassa painike)

Kytkimen valmistelu (itse asiassa painike)
Kytkimen valmistelu (itse asiassa painike)
Kytkimen valmistelu (itse asiassa painike)
Kytkimen valmistelu (itse asiassa painike)
Kytkimen valmistelu (itse asiassa painike)
Kytkimen valmistelu (itse asiassa painike)

Kytkimelle (kutsun sitä kytkimeksi, koska käytin mikrokytkintä, mutta tiedät, että se on painike) tarvitsemme 4k7-alasvetovastus ja tietysti itse kytkin. Älä unohda valmistella johtoja. Aloita juottamalla vastus ja johdinpala mikrokytkimen yhteiseen maahan (COM). Juotetaan sitten toinen johdinpala mikrokytkimen normaalisti avattuun (NO). Kiinnitä lopuksi toinen johto vastukseen. Kiinnitä se kuumalla liimalla.

Tietonurkka: Miksi tarvitsemme alasvetovastusta?

"Jos irrotat digitaalisen I/O -nastan kaikesta, LED -valo voi vilkkua epäsäännöllisesti. Tämä johtuu siitä, että tulo on" kelluva " - eli se palaa satunnaisesti joko KORKEA tai MATALA. Siksi tarvitset vetämisen tai alasvetovastus piirissä. " - Lähde: Arduino-verkkosivusto

Vaihe 5: LED -nauhan valmistelu

LED -nauhan valmistelu
LED -nauhan valmistelu
LED -nauhan valmistelu
LED -nauhan valmistelu

LED -nauha on sängyn valaisimelle, joka on valinnainen. Liitä vain LED -nauha ja liukukytkin sarjaan, ei mitään erikoista.

Vaihe 6: Kapasitanssianturin valmistelu

Kapasitanssianturin valmistelu
Kapasitanssianturin valmistelu
Kapasitanssianturin valmistelu
Kapasitanssianturin valmistelu
Kapasitanssianturin valmistelu
Kapasitanssianturin valmistelu
Kapasitanssianturin valmistelu
Kapasitanssianturin valmistelu

Ok, katso kuva. Pohjimmiltaan aiomme vain kiinnittää langan pieneen alumiinifoliopalaan (koska alumiinifoliota ei voi juottaa) ja teipata se pieneen asennuslevyyn. Hyvä muistutus, varmista, ettet teippaa kokonaan alumiinifoliota. Jätä osa siitä alttiiksi suoralle kosketukselle.

Vaihe 7: Virtalähteen valmistelu

Virtalähteen valmistelu
Virtalähteen valmistelu
Virtalähteen valmistelu
Virtalähteen valmistelu
Virtalähteen valmistelu
Virtalähteen valmistelu

Koska käytin virtalähteenä litium-akkua, tarvitsen lataukseen ja suojaukseen TP4056-moduulin ja tehonmuuntimen jännitteen muuntamiseen 9 volttiin. Jos päätit käyttää 9 V: n seinäadapteria, saatat tarvita DC -liittimen tai liittää sen suoraan. Huomaa, että vahvistimen vastuksen arvo on suunniteltu 9 V: lle ja jos haluat käyttää muuta jännitettä, sinun on ehkä vaihdettava vastus.

Vaihe 8: Yhdistä ne Arduinoon

Niiden yhdistäminen Arduinoon
Niiden yhdistäminen Arduinoon
Niiden yhdistäminen Arduinoon
Niiden yhdistäminen Arduinoon
Niiden yhdistäminen Arduinoon
Niiden yhdistäminen Arduinoon

Seuraa kaaviota! Seuraa kaaviota! Seuraa kaaviota!

Älä liitä väärää nastaa, muuten asiat muuttuvat outoiksi.

Vaihe 9: Kotelo

Kotelo
Kotelo
Kotelo
Kotelo
Kotelo
Kotelo
Kotelo
Kotelo

Suunnitteluni koko on 6,5 cm*6,5 cm*8 cm, joten se on hieman tilaa vievä. Se koostuu etuikkunasta LED -näytölle ja yläikkunasta yölampulle. Katso suunnitteluni kuvista.

Vaihe 10: Ajan ohjelmointi

Image
Image
Ohjelmointiaika!
Ohjelmointiaika!

Lataa luonnokseni alla ja lataa Arduinoosi. Jos et tiedä miten tämä tehdään, älä vaivaudu tekemään tätä projektia! Ei vitsi, tässä on hyvä opetusohjelma: Lataa luonnos arduinoon

Avaa sitten sarjamonitori, ja näet sen näyttävän nykyisen ajan. Voit asettaa ajan seuraavasti.

Tunnin asettaminen: h, XX - missä xx on nykyinen tunti

Minuutin asettaminen: min, XX - xx on nykyinen minuutti

Toiseksi: s, XX

Päivämäärän asettaminen: d, XX

Kuukauden asettaminen: ma, XX

Kun yllä oleva kommentti suoritetaan, sen pitäisi palauttaa sinulle juuri asettamasi arvo. (Jos esimerkiksi asetat tunnin tunnilla h, 15, sen pitäisi palauttaa sarjamonitorissa Tunti: 15.

Kapasitanssianturi on ehkä kalibroitava ennen kuin se toimii. Voit tehdä tämän painamalla mikrokytkintä kahdesti ja katsoaksesi sarjamonitoria. Sen pitäisi antaa joukko numeroita. Laita nyt sormesi kapasitanssianturin päälle ja katso huomioi numeroalue. Muokkaa seuraavaksi muuttujaa "captrigger". Oletetaan, että saat 20-30 painettaessa ja aseta sitten captrigger arvoon 20.

Luonnos käyttää ADCTouch -kirjastoa, varmista, että olet asentanut sen.

Vaihe 11: Korjausmekanismi

Koodin korjausmekanismin ajanjakso on asetettu minulle tarkalle. Jos aika ei vieläkään ole tarkka, sinun on muutettava muuttujan "corrdur" arvoa

Corrdur on nyt oletuksena 0 uusimmassa päivityksessä.

Corrdurin arvo tarkoittaa, kuinka monta millisekuntia kestää hidastaa yhden sekunnin

Voit selvittää corrdurin arvon käyttämällä kaavaa:

2000/(y-x)/x)

jossa x = kuluneen ajan todellinen kesto ja y = kellon kulunut aika, molemmat sekunnissa

Jos haluat löytää arvon x ja y, sinun on tehtävä pieni kokeilu.

Aseta kellonaika todelliseen aikaan ja tallenna alkuperäinen aika (todellisen alkamisajan ja kellon alkamisajan tulee olla sama). Kirjaa hetken (muutaman tunnin) kuluttua lopullinen todellinen aika ja kellon lopullinen aika.

x = todellinen viimeinen aika-aloitusaika ja y = kellon viimeinen aika-aloitusaika

Muuta sitten koodin corrdurin arvo ja lataa se uudelleen Arduinoon.

Toista sitten testi ja tällä kertaa kaava muuttui muotoon:

2000/((2/z)+(y-x/x))

Missä x ja y ovat sama asia kuin ennen, kun taas z on nykyinen corrdur -arvo.

Lataa uudelleen ja tee testi uudestaan ja uudestaan, kunnes se on tarpeeksi tarkka sinulle.

Jos kellosi kiihdyttää edelleen, vaikka Corrdur on asetettu arvoon 0 (ei korjausmekanismia), sinun on vaihdettava toinen ++ toiseksi- koodin korjausmekanismin osassa (kommentoin sitä), aseta corrdur arvoon 0, löydä sitten ei. millisekuntia kestää nopeuttaa yhden sekunnin.

Vaihe 12: Kaikkien toimintojen käyttäminen

Image
Image

Voit vaihtaa tilaa painamalla mikrokytkintä.

Ensimmäisessä tilassa se näyttää vain ajan. Jos merkkivalo vilkkuu 1 kertaa sekunnissa, hälytys on pois päältä. Jos 2 kertaa sekunnissa, hälytys on päällä. Voit siirtää hälytyksen 10 minuutiksi ensimmäisessä tilassa painamalla kapasitanssianturia.

Toisessa tilassa se näyttää päivämäärän. Kapasitanssianturin painaminen ei tee mitään.

Kolmannessa tilassa voit asettaa ajastimen. Kapasitanssianturin painaminen kytkee ajastimen päälle ja merkkivalo alkaa vilkkua. Kapasitanssianturia käytetään myös ajastimen asettamiseen. Ajastin on 1 minuutista 59 minuuttiin.

Neljännessä tilassa voit asettaa herätysajan käyttämällä kapasitanssianturia

Viidennessä tilassa voit asettaa hälytysminuutin kapasitanssianturin avulla.

Kuudennessa tilassa kapasitanssianturin painaminen nollaa minuutit 30: een ja sekunti 0: een muuttamatta tuntia. Tämä tarkoittaa sitä, että niin kauan kuin kellosi ei ajele yli 30 minuuttiin, voit kalibroida sen uudelleen käyttämällä tätä tilaa.

Seitsemäs tila on tekemätön -tila siinä tapauksessa, että kapasitanssianturi välkkyy latauksen aikana.

Jos haluat hylätä hälytyksen, paina vain mikrokytkintä. (VIIMEINEN PÄIVITYS SISÄLTÄÄ HÄLYTYSNUOKKUN)

Entäs kellon lukeminen? Se on helppoa! Binaarikellon lukeminen - Wikihow Saatat tuntua aluksi oudolta, mutta totut siihen!

Vaihe 13: Johtopäätös

Johtopäätös
Johtopäätös
Johtopäätös
Johtopäätös

Miksi aloitin tämän projektin. Aluksi se johtuu siitä, että minulla on vanha digitaalinen kello, joka makaa ympäriinsä, ja haluan muuttaa sen herätyskelloksi. Valitettavasti vanha kello osoittautui rikki. Joten ajattelin, miksi et rakenna sellaista Arduinolla? Pienellä google -haulla löysin tämän binaarikelloprojektin ilman RTC: tä Cello62: n ohjeiden mukaan. Siinä ei kuitenkaan ole haluamaani herätyskellotoimintoa, joten otan koodin ja muokkaan sitä itse. Ja projekti syntyy. Lisäksi näin äskettäin kellokilpailun, joka oli opetettavissa, mikä antoi minulle vielä enemmän motivaatiota tehdä tämä. Joka tapauksessa tämä on edelleen ensimmäinen projektini, jossa käytän Arduinoa, joten joukko mahdollisia parannuksia.

Tuleva parannus:

1) Käytä RTC: tä

2) Aseta herätys tai aika tai ajastin langattomasti!

3) Mitä tahansa ominaisuutta ajattelen

Vaihe 14: Päivitä: viikon käytön jälkeen

Päivitys: Viikon käytön jälkeen
Päivitys: Viikon käytön jälkeen
Päivitys: Viikon käytön jälkeen
Päivitys: Viikon käytön jälkeen
Päivitys: Viikon käytön jälkeen
Päivitys: Viikon käytön jälkeen

Ilmeisen ongelman - ajan kulumisen lisäksi - sanoisin seuraavaksi virrankulutuksen. Ensinnäkin nostan jännitteen 9v: iin, jonka sitten Arduinon lineaarinen säädin alentaa. Lineaarinen säädin on erittäin tehoton. Kello kestää vain YHDEN PÄIVÄN. Se tarkoittaa, että minun on ladattava se joka päivä. Se ei ole suurin asia, ennen kuin huomaat, että koko järjestelmä on vain noin 50% tehokas. Ottaen huomioon, että akuni on 2000 mAh, pystyisin laskemaan hukkaan menevän virran joka päivä.

Teho hukkaan = (7.4Wh*10%)+(7.4Wh*90%*50%) = 4.07Wh päivässä

Se on 1,486 kWh vuodessa! Sitä voidaan käyttää keittämään 283 g vettä (25 asteesta 100 asteeseen)? Mutta joka tapauksessa aion parantaa kellon tehokkuutta. Tapa tehdä tämä on olla käyttämättä lineaarista säädintä lainkaan. Tämä tarkoittaa, että meidän on säädettävä tehostinmuunnin lähtöön 5V suoraan Arduinon 5V -nastaan. Seuraavaksi minimoidaksesi hukkaan menevän tehon entisestään, minun on poistettava kaksi sisäistä LEDiä (nasta 13 ja virta), koska ne tuhlaavat 0,95 Wh päivässä. Valitettavasti olen täysin noob SMD -juotoksessa, joten ainoa tapa tehdä tämä on leikata kisko levylle. Tämän jälkeen minun on poistettava summerin ja yölampun emitterivastus (LED -nauha ei toimi 5 V: n jännitteellä). Mutta tarkoittaako tämä sitä, että sinun on luovuttava tästä hämmästyttävästä ominaisuudesta? Ei! Sinulla on kaksi vaihtoehtoa: Käytä tavallista 5 mm: n LED -diodia tai 5 V: n LED -nauhaa. Mutta minusta tuntui jo väsyneeltä tämän projektin tekemisestä koko viime viikolla, joten päätin luopua tästä ominaisuudesta. Käytin kuitenkin alun perin valo -ominaisuuden kytkintä kellopaneelin kytkemiseksi päälle tai pois päältä energian säästämiseksi, mutta lopulta LED vilkkuu, kun sammutan sen. Vika tullut ominaisuus? En tiedä (kuka tahansa tietää, kerro minulle alla).

Muutoksen päätyttyä kello kestää nyt yli 2 päivää!

Seuraavaksi minulla on vähemmän vakava ongelma kellon kanssa. Latauksen aikana kapasitanssianturi menisi hulluksi, joten lisään toisen tilan, joka ei tee mitään.

Mitä tulee ajankulkuun, koska on erittäin hankalaa kytkeä tietokone päivittäin sen nollaamiseen, olen lisännyt toisen tilan, joka asettaa minuutiksi 30 ja sekunti 0: een. Se tarkoittaa, että voit nollata sen puolen tunnin kuluttua!

Suositeltava: