Wort-Uhr: 5 soļi
Wort-Uhr: 5 soļi
Anonim
Wort-Uhr
Wort-Uhr

Sveiki kopā!

Šī būs mana pirmā pamācība, un, ja jums ir idejas, kā to uzlabot vai padarīt vieglāk saprotamu, lūdzu, nevilcinieties sazināties ar mani!

Nu sākumā šāds "pulkstenis" nav mana ideja! Esmu redzējis daudz interneta, un tos var pasūtīt tikai par pāris dolāriem dažādos interneta veikalos. Bet es negribēju to iegādāties, es gribēju izveidot savu, lai uzzinātu un saprastu, kā tas darbojas.

Viens vārds "nevāciešiem" … Atvainojiet par to, ka šī ir tikai "vācu misa Uhr". To varētu viegli pārvērst angļu vai citā valodā, bet, tā kā esmu vācietis, es to izveidoju savā valodā. Ja jums ir nepieciešams atbalsts savai valodai, sazinieties ar mani, un es centīšos jums palīdzēt.

Tātad sāksim…

1. darbība: shēma

Shēma
Shēma

Shēma ir taisna uz priekšu, un, ja attēls ir slikti lasāms, ir arī PDF fails.

Sāksim ar apakšējo kreiso stūri. Ir vienkāršs barošanas avots, izmantojot LM7805, lai ģenerētu stabilu 5 V izeju PIC, maiņu reģistriem (74HC164) un reālā laika mikroshēmai DS3231. Visas gaismas diodes tiek piegādātas arī no šīs daļas. D22 labajā galā ir paredzēts tikai barošanas avota norādīšanai, un, ja nevēlas, to var viegli atstāt atsevišķi.

Pulkstenim ar mazāku par 40 V var izmantot jebkuru līdzstrāvas barošanas avotu, bet pēc tam jāizvēlas atbilstošā vērtība C7. Tam vajadzētu būt vismaz divkāršam ieejas spriegumam, un atcerieties, ka LM7805 radāt siltumu, tāpēc jums jācenšas saglabāt pēc iespējas zemāku ieejas spriegumu, jo viss pārējais ir tikai enerģijas izšķiešana. Vislabāk derētu starp 9V un 12V DC.

Neuztraucieties par barošanas avota polaritāti… P-kanāla MOSFET (Q1) darbojas kā viltus polaritātes aizsardzība, un pulkstenis vienkārši nedarbosies un nesabojās. To var pārbaudīt uz "barošanas" LED D22, ja tas ir uzstādīts.

Shēmas labajā pusē ir sērijveida paralēlas maiņas reģistri. Es nolēmu tos izmantot, jo negribēju izmantot milzīgu PIC ar daudzām I/O pieslēgvietām. Es gribēju izmantot mazāku, un man mājās vēl bija kādi 16F1829, tāpēc izvēle jau bija skaidra. Datus (IN_1, IN_2 un IN_3) nodrošina PIC (skatīt koda sadaļu zemāk) un REGISTER_CLK. Koda un PCB izkārtojuma vienkāršības labad es izmantoju divus no 74HC164 stundām un pēdējo - "loģikai".

Augšējā kreisajā stūrī ir PIC un visas nepieciešamās detaļas. Es izmantoju iekšējo pulksteni, tāpēc oszilators nav vajadzīgs. Tikai trīs rezistori SCL, SDA un MCLR. Par to, ka es izmantoju 32 kHz kā "precīzu sekunžu" norādi, nav nepieciešama diezgan stabila un precīza PIC frekvence.

Pa vidu ir DS3231 ar minimālu ārējo detaļu daudzumu. Faktiski es izmantoju tikai SDA un SCL ieejas saziņai, izmantojot I²C, un 32 kHz izvadi kā PIC16F1829 1. taimera ārējo pulksteņa atskaiti. Šai izvadei datu lapā ir norādīts, ka ir nepieciešams ārējs uzvilkšanas rezistors. Pārējos rezultātus, kurus es neizmantoju šajā projektā, atstāju nesaistītus.

Arī vidū, gaismas diodes … Kā jūs varat izlasīt shēmā, es izmantoju zilas gaismas diodes (tās ar skaidru korpusu) un rezistora vērtību 1k omi. Ja jūs plānojat veikt šo projektu pats, jums jāizvēlas šo rezistoru vērtības atbilstoši jūsu izvēlēto gaismas diožu krāsai un tipam. Ņemiet vērā arī to, kur vēlaties iestatīt pulksteni. Mans viens stāv manā guļamistabā, tāpēc es negribēju, lai gaismas diodes būtu pārāk gaišas, un izvēlējos lielāku vērtību rezistoriem. Pirms to uzstādīšanas uz PCB, mēģiniet izmantot maizes dēli ar gaismas diodēm un rezistoru vērtībām.

2. darbība. Izkārtojums

Izkārtojums
Izkārtojums
Izkārtojums
Izkārtojums
Izkārtojums
Izkārtojums

Pēc shēmas pabeigšanas ir pienācis laiks maršrutēt PCB. Šim nolūkam es izmantoju KiCAD (arī shematiskai). Nav daudz ko teikt, vienkārši maršrutējiet līnijas.

Par to, ka es pats izdrukāju pulksteņa korpusu, bija diezgan svarīgi, kur atrodas augšējā slāņa gaismas diodes. Gaismas diodes un rezistorus es ievietoju tikai augšējā slānī, jo es pasūtīju savu PCB daļēji uzstādītu (visas SMD detaļas) un tāpēc, ka uzņēmums, kuru es izvēlējos, novieto detaļas tikai vienā pusē, nevis abpusēji.

Jūs varat redzēt izvietojumu divos trīsdimensiju attēlos, kurus izveidoju no KiCAD.

Ja jūs interesē… Ir iespējams eksportēt KiCAD PCB uz Eagle, un tad ir diezgan viegli izveidot korpusu, jo jums ir atsauce no PCB.

3. solis: "Wort-Uhr" "loģika"

Šī projekta lielākā daļa bija PIC kods…

Sākumā atrodot runas laika "loģiku" vācu valodā un tulkojot to kodā.

Diemžēl Excel failu nevarēja augšupielādēt tieši, bet es ceru, ka PDF eksports jums ir pietiekami lasāms. Ja nē, lūdzu, sazinieties ar mani, un es jums nosūtīšu sākotnējo Excel failu. PDF failā varat redzēt, kā es iestatīju sava pulksteņa loģiku. Jūs varat redzēt, kā es gāju cauri dažādiem laika soļiem un kāda ir pareizrakstība. Aprēķinu koda iekšpusē (galvenokārt paziņojumus “ja-citādi”) var iegūt, izmantojot informāciju tabulas labajā pusē. Viena daļa paredzēta minūtēm, bet otra - stundām.

Kā redzat, tā nav maģija, un to var viegli kodēt C. C loģikas "sarežģītākais" punkts ir tas, kā rīkoties ar stundu, kā redzams failā, ka tikai stundas sākumā tiek parādīta faktiskā stunda. Vācu valodā (varbūt tā varētu būt tikai Bavārijas specifika) "nākamā stunda" tiek izmantota diezgan agri.

Kodēšanai es izmantoju MPLABX kā savu izvēlēto IDE.

4. darbība: koda fragmenti

Koda fragmenti
Koda fragmenti
Koda fragmenti
Koda fragmenti

Es šeit nepublicēšu savu kodu, bet, ja jūs plānojat rakstīt savu kodu, es jums sniegšu dažus ieteikumus par to, par ko esmu "paklupis" izstrādes laikā …

Vispirms aizpildiet "reģistru":

Ja jūs pārāk bieži un pārāk īsos ciklos pārsūtāt jaunus datus uz reģistriem, es pieredzēju, ka gaismas diodes sāka mirgot. Tāpēc es izveidoju dažus "bloķēšanas karogus", ka tikai katru minūti tiek veikts jauns runas laika "aprēķins" un tiek atjaunināts reģistrs.

Reģistru aizpildīšanas kods ir attēlā iepriekš. Kā redzat, es paralēli aizpildu visus 3 reģistrus, tāpēc man ir nepieciešami 3 PIC tapas datiem un 1 tapa CLK. 74HC164 pārņem jaunus datus par pāreju CLK līnijā no 0 līdz 1.

Pārējais kods ir galvenokārt no PIC atkarīgas lietas, "runas laika" loģika un komunikācijas un pogu apstrāde. Komunikāciju galvenokārt nodrošina Microchip MPLABX, jo es izmantoju MSSP moduli.

Laba ideja ir izlasīt DS3231 datu lapu, jo dati tiek glabāti kā BCD, tāpēc jums, iespējams, tas būs "jāpārveido" savā kodā. Ciktāl tas attiecas uz mani, es esmu puisis, kas mācās darot, un PROTAMS, ka neesmu izlasījis datu lapu … Man tas izmaksāja daudz nervu un stundu.

Kā jūs, iespējams, pamanījāt, ar šo ieviešanu ir divi veidi, kā "sekot laikam".

  1. Jūs varat nolasīt DS3231 faktisko laiku
  2. Jūs varat "saskaitīt sekundes" pašā PIC un laiku pa laikam vienkārši sinhronizēt laiku ar DS3231

Tas ir atkarīgs no jums, un abi veidi ir praktiski un taisni. Es izmantoju pirmo iespēju un tikai sinhronizēju laiku, pielāgojot laiku, izmantojot pogas (rakstīšanas laiks uz DS3231) vai ik pēc 24 stundām (lasīšanas laiks no DS3231), jo vēlējos vairāk ieviest loģiku. Es arī pagriezu pulksteni naktī (no 23:00 līdz 05:00), tāpēc, manuprāt, bija nedaudz vieglāk.

5. solis: korpuss

Visbeidzot, ir laiks īsumā apskatīt korpusu.

Kā jau minēju iepriekš, es pats izveidoju korpusu (izmantojot Eagle) un izdrukāju tos ar savu 3D printeri, tāpēc man bija jāseko līdzi dažādu gaismas diodes pozīcijām.

Pievienots jūs varat atrast STL failus, ja vēlaties tos izmantot.

Ceru, ka šī pamācība jums palīdzēs, veidojot savu "Wort-Uhr". Ja joprojām ir "atklāti jautājumi", nevilcinieties sazināties ar mani. Labākais veids, kā komentēt zemāk, jo jūs, iespējams, neesat vienīgais, kuram ir konkrēts jautājums.

Ieteicams: