Led-kello arduino nanossa. Valmistamme elektronisen kellon Arduinoon omin käsin. Valmis kello Arduinossa

Kuvassa on prototyyppi, jonka kokosin koko tätä laitosta hallitsevan ohjelman virheenkorjausta varten. Leipälaudan oikeassa yläkulmassa oleva toinen arduino nano ei kuulu projektiin ja jää sinne juuri niin, ei siihen tarvitse kiinnittää huomiota.

Hieman toimintaperiaatteesta: Arduino ottaa tiedot DS323-ajastimesta, käsittelee sen, määrittää valotason valovastuksen avulla, lähettää sitten kaiken MAX7219:ään, ja se puolestaan ​​​​sytyttää vaaditut segmentit vaaditulla kirkkaudella. Kolmella painikkeella voit myös asettaa vuoden, kuukauden, päivän ja ajan haluamallasi tavalla. Kuvassa ilmaisimet näyttävät ajan ja lämpötilan, joka on otettu digitaalisesta lämpötila-anturista

Suurin vaikeus tapauksessani on se, että 2,7 tuuman indikaattoreilla on yhteinen anodi, ja niiden oli ensinnäkin jotenkin ystävystyttävä max7219: n kanssa, joka on suunniteltu yhteisellä katodilla varustettuihin indikaattoreihin, ja toiseksi ratkaista ongelma heidän kanssaan. virtalähde, koska he tarvitsevat 7,2 volttia hehkua varten, jota max7219 ei yksin pysty tarjoamaan. Pyysin apua yhdeltä foorumilta, sain vastauksen.

Ratkaisu kuvakaappauksessa:


Max7219:n segmenttien lähtöihin on kiinnitetty mikropiiri, joka kääntää signaalin, ja jokaiseen lähtöön on kiinnitetty kolmen transistorin piiri, joka tulee kytkeä näytön yhteiseen katodiin, mikä myös kääntää sen signaalin ja lisää Jännite. Siten saamme mahdollisuuden liittää max7219:ään näytöt, joissa on yhteinen anodi ja yli 5 voltin syöttöjännite

Kytkein yhden ilmaisimen testiä varten, kaikki toimii, mikään ei savu

Aloitetaan kerääminen.

Päätin jakaa piirin 2 osaan johtuen valtavasta määrästä jumpperia versiossa, joka erotettiin vinoilla tassuillani, jossa kaikki oli yhdellä laudalla. Kello koostuu näyttöyksiköstä sekä teho- ja ohjausyksiköstä. Jälkimmäinen päätettiin kerätä ensin. Pyydän esteettejä ja kokeneita radioamatööreita olemaan pyörtymättä osien julman kohtelun vuoksi. Minulla ei ole halua ostaa tulostinta LUT:n vuoksi, joten teen sen vanhanaikaisesti - harjoittelen paperille, poraan reiät mallin mukaan, piirrän polkuja tussilla, sitten etsaan.

Indikaattorien kiinnitysperiaate pysyi samana.

Merkitsemme osoittimien ja komponenttien sijainnin mukavuussyistä tehdyllä pleksimallilla.

Merkintäprosessi







Sitten poraamme reiät oikeisiin paikkoihin mallin avulla ja kokeilemme kaikkia komponentteja. Kaikki sopi täydellisesti.

Piirrämme polkuja ja etsaamme.




uiminen rautakloridissa

Valmis!
hallintapaneeli:


ilmaisintaulu:


Ohjauslevystä tuli hieno, näyttötaulun raita ei ollut kriittisesti syöty, se voidaan korjata, on aika juottaa. Tällä kertaa menetin SMD-neitsyyteni ja sisällytin piiriin 0805-komponentteja. Ainakin ensimmäiset vastukset ja kondensaattorit juotettiin paikoilleen. Luulen, että tulen paremmaksi, se on helpompaa.
Juottamiseen käytin ostamaani sulatetta. Sen kanssa juottaminen on iloa, nyt käytän alkoholihartsia vain tinaukseen.

Tässä valmiit laudat. Ohjauskortissa on istuin Arduino nanolle, kello sekä lähdöt näyttötauluun ja antureille liittämistä varten (valovastus automaattiseen kirkkauteen ja digitaalinen lämpömittari ds18s20) sekä virtalähde säädettävällä lähtöjännitteellä (suurille seitsemänsegmenttiset laitteet) ja kellon ja Arduinon virransyöttöä varten näyttölevyllä on asennusliittimet näytöille, pistorasiat max2719:lle ja uln2003a:lle, ratkaisu neljän suuren seitsemän segmentin laitteen virtalähteeseen ja joukko jumpperia.




takaohjaustaulu

Takana näyttötaulu:

Kamala smd-asennus:


Tuoda markkinoille

Kun kaikki kaapelit, painikkeet ja anturit on juotettu, on aika kytkeä kaikki päälle. Ensimmäinen käynnistys paljasti useita ongelmia. Viimeinen suuri merkkivalo ei syttynyt, ja loput hehkuivat himmeästi. Ensimmäisen ongelman ratkaisin juottamalla SMD-transistorin jalan ja toisen - säätämällä lm317:n tuottamaa jännitettä.
SE ON ELOSSA!

Yksi ensimmäisistä projekteista, joita aloittelijat rakentavat Arduino-levyllä, on yksinkertainen kello, joka pitää ajan. Pohjimmiltaan tällaiset kellot perustuvat Arduinoon kytkettyyn RTC (Real Time Clock) -moduuliin. Nykyään markkinoilla on saatavilla elektronisia komponentteja eri malleja RTC:t, joiden tarkkuus ja hinta vaihtelevat. Yleisiä malleja ovat DS1302, DS1307, DS3231.



Mutta voit tehdä kellon Arduinoon ilman RTC:tä, varsinkin jos et saa tällaisia ​​moduuleja. Tietysti tarkkuus on tässä tapauksessa alhainen, joten projektia tulisi pikemminkin pitää koulutusprojektina.


Tällaisten kellojen toimintaperiaate on melko yksinkertainen. Joka kerta kun kytket tämän Arduino-kellon päälle, sinun on asetettava se nykyiseen aikaan, aivan kuten mikä tahansa analoginen kello. On varmasti parempi olla käyttämättä tällaisia ​​kelloja Jokapäiväinen elämä toiminnallaan pitkään ilman uudelleenkäynnistystä ja lisämäärityksiä, koska synkronointi nykyisen ajan kanssa voi olla merkittävää pitkän aikavälin käytön aikana.


Tämä kello voidaan koota tavalliselle leipälaudalle, koska se ei vaadi monia komponentteja. Päälinkkimme täällä on Arduino Uno -levy. Voit näyttää ajan ottamalla 16x2 LCD-näytön. Voit muuttaa aika-asetuksia yhdistämällä kaksi painiketta (tunnit ja minuutit). Painikkeet on kytketty Aduinoon 10KΩ vastusten kautta. Näytön kirkkauden muuttamiseksi tarvitset 10 kOhm potentiometrin. Kaikkien näiden komponenttien kytkentäkaavio Arduino Uno -korttiin on esitetty alla.



Nyt sinun täytyy ohjelmoida Arduino. Alla on yksinkertainen koodi (luonnos), jonka avulla voit näyttää ajan LCD-näytöllä.


#sisältää LiquidCrystal lcd(12,11,5,4,3,2); int h = 12; int m; int s; int lippu; int TIME; const int hs=8; const int ms=9; int state1; int state2; void setup() ( lcd.begin(16,2); ) void loop() ( lcd.setCursor(0,0); s=s+1; lcd.print("TIME:"); lcd.print(h lcd.print(":");<12)lcd.print("AM"); if(flag==12)lcd.print("PM"); if(flag>12)lcd.print("PM"); if(lippu==24)lippu=0; viive (1000); lcd.clear(); jos(s==60)(s=0; m=m+1; ) jos(m==60) (m=0; h=h+1; lippu=lippu+1; ) jos(h==13) ) ( h=1; ) lcd.setCursor(0,1); lcd.print("HYVÄÄ PÄIVÄÄ"); //-------Aika // asetus-------// tila1=digitalRead(hs); if(tila1==1) ( h=h+1; lippu=lippu+1; if(lippu<12)lcd.print("AM"); if(flag==12)lcd.print("PM"); if(flag>12)lcd.print("PM"); if(lippu==24)lippu=0; jos(h==13)h=1; ) tila2=digitalRead(ms); jos(tila2==1)(s=0; m=m+1; ) )

   Kiitos kiinnostuksestasi tietoprojekti verkkosivusto.
   Jos haluat mielenkiintoisia ja hyödyllisiä materiaaleja julkaista useammin ja vähemmän mainoksia,
   Voit tukea projektiamme lahjoittamalla minkä tahansa summan sen kehittämiseen.

Kello LED-taustavalolla ja sykkivä minuuttiosoitin Arduino-mikrokontrollerissa
Tämä ainutlaatuinen kello LED-taustavalolla ja sykkivällä minuuttiosoittimella on tehty käyttämällä TLC5940 PWM -ohjainsirua. Sen päätehtävänä on laajentaa PWM-modulaatiokontaktien määrää. Toinen tämän kellon ominaisuus on, että se on muuttanut analogisen volttimittarin minuutteja mittaavaksi laitteeksi. Tätä varten uusi asteikko tulostettiin tavalliselle tulostimelle ja liimattiin vanhan päälle. Sinänsä viidettä minuuttia ei lasketa, vaan viidennen minuutin aikana aikalaskuri näyttää nuolen, joka osoittaa asteikon loppuun (off scale). Pääohjaus on toteutettu Arduino Uno -mikro-ohjaimella.

Sen varmistamiseksi, että kellon taustavalo ei hehkunut liian kirkkaasti pimeässä huoneessa, toteutettiin piiri, joka säätää kirkkautta automaattisesti valaistuksen mukaan (käytettiin valovastusta).

Vaihe 1: Vaaditut komponentit



Tässä on mitä tarvitset:

  • 5V DC analoginen volttimittari moduuli;
  • Arduino UNO mikrokontrolleri tai muu sopiva Arduino;
  • Arduino-piirilevy (protolevy);
  • DS1307 Real Time Clock (RTC) -moduuli;
  • Moduuli PWM-ohjaimella TLC5940;
  • Terälehti LED-taustavalot – 12 kpl;
  • Komponentit automaattisen kirkkaudensäätöpiirin (LDR) kokoamiseen.

Myös joidenkin muiden projektin komponenttien tuotantoa varten on toivottavaa saada käyttöön 3D-tulostin ja laserleikkauskone. Oletetaan, että sinulla on tämä käyttöoikeus, joten ohjeet sisältävät valmistuspiirustukset asianmukaisissa vaiheissa.

Vaihe 2: Soita




Kellotaulu koostuu kolmesta osasta (kerroksesta), jotka on leikattu laserleikkauskoneella 3 mm MDF-levystä ja jotka on kiinnitetty yhteen pulteilla. Levy ilman rakoja (kuvassa oikealla) asetetaan toisen levyn alle LED-valojen sijoittamiseksi (alas vasen). Sitten yksittäiset LED-valot asetetaan sopiviin paikkoihin ja etupaneeli asetetaan päälle (kuvassa ylhäällä). Kellotaulun reunaan porataan neljä reikää, joiden läpi kaikki kolme osaa pultataan yhteen.

  • LEDien suorituskyvyn testaamiseen tässä vaiheessa käytettiin CR2032-nappiparistoa;
  • LEDien kiinnittämiseen käytettiin pieniä teippiliuskoja, jotka liimattiin LEDien takaosaan;
  • Kaikki LED-jalat taivutettiin vastaavasti;
  • Reunoille porattiin uudelleen reiät, joiden läpi pultattiin. Kävi ilmi, että tämä oli paljon kätevämpää.

Kellotaulun osien tekninen piirustus on saatavilla osoitteessa:

Vaihe 3: Suunnittele piiri



Tässä vaiheessa se kehitettiin sähkökaavio. Tähän tarkoitukseen käytettiin erilaisia ​​oppikirjoja ja oppaita. Emme perehdy liian syvälle tähän prosessiin, kaksi alla olevaa tiedostoa näyttävät valmiin sähköpiirin, jota käytettiin tässä projektissa.

Vaihe 4: Arduino-piirilevyn liittäminen





  1. Ensimmäinen vaihe on irrottaa kaikki piirilevyjen ja osalevyjen neulakoskettimet;
  2. Lisäksi johtuen siitä, että 5V tehoa ja GND:tä käyttävät niin monet levyt ja oheislaitteet, luotettavuuden vuoksi piirilevylle juotettiin kaksi johtoa 5 V:lle ja GND:lle;
  3. Seuraavaksi TLC5940 PWM -ohjain asennettiin käytettyjen koskettimien viereen;
  4. Sitten TLC5940-ohjain kytketään kytkentäkaavion mukaisesti;
  5. Jotta akkua voitaisiin käyttää, piirilevyn reunaan asennettiin RTC-moduuli. Jos juotat sen levyn keskelle, nastamerkinnät eivät näy;
  6. RTC-moduuli on kytketty kytkentäkaavion mukaisesti;
  7. Automaattinen kirkkaudensäätöpiiri (LDR) on koottu, voit katsoa sen linkistä
  8. Volttimittarin johdot kytketään liittämällä johdot nastaan ​​6 ja GND.
  9. Lopussa juotettiin 13 LED-johtoa (Käytännössä kävi ilmi, että tämä oli parempi tehdä ennen vaiheeseen 3 siirtymistä).

Vaihe 5: Koodi

Alla oleva koodi on koottu erilaisista Internetistä löytyvistä kellokomponenteista. Se on täysin virheenkorjattu, ja se on nyt täysin toimiva, ja joitain melko yksityiskohtaisia ​​kommentteja on lisätty. Mutta ennen kuin lataat mikro-ohjaimeen, harkitse seuraavia kohtia:

  • Ennen kuin käynnistät Arduino-laiteohjelmiston, sinun on poistettava ajan asettavan rivin kommentit:
    rtc.adjust(DateTime(__DATE__, __TIME__))
    Kun olet vilkannut säädintä tällä rivillä (aika on asetettu), sinun on kommentoitava se uudelleen ja vilkuttava ohjain uudelleen. Näin RTC-moduuli voi käyttää akkua muistaakseen ajan, jos päävirta katkeaa.
  • Aina kun käytät "Tlc.set()", sinun on käytettävä "Tlc.update"

Vaihe 6: Ulkorengas

Ulompi kellorengas tulostettiin 3D-tulostuksella Replicator Z18 -tulostimella. Se kiinnitetään kelloon kellon etuosassa olevilla ruuveilla. Alla on tiedosto, jossa on 3D-malli renkaasta tulostettavaksi 3D-tulostimella.

Vaihe 7: Kellon kokoaminen


Arduino-mikro-ohjain kaikella muulla elektroniikalla kiinnitettiin kellon takaosaan ruuveilla ja muttereilla välikappaleina. Sitten liitin kaikki LEDit, analogisen volttimittarin ja LDR:n johtoihin, jotka oli aiemmin juotettu piirilevyyn. Kaikki LEDit on kytketty toisiinsa yhdellä jalalla ja kytketty TLC5940-ohjaimen VCC-nastan (johdin on yksinkertaisesti juotettu ympyrään).

Toistaiseksi kaikki tämä ei ole kovin hyvin eristetty oikosuluilta, mutta työ jatkuu tulevissa versioissa.




Yläosa