Tartalomjegyzék:
- 1. lépés: A vázlat
- 2. lépés: Elrendezés
- 3. lépés: A „Wort-Uhr” „logikája”
- 4. lépés: Kódrészletek
- 5. lépés: A ház
Videó: Wort-Uhr: 5 lépés
2024 Szerző: John Day | [email protected]. Utoljára módosítva: 2024-01-30 09:39
Hello mindenki!
Ez lesz az első tanulságos, és ha van ötlete annak javítására vagy könnyebb megértésére, kérjük, ne habozzon kapcsolatba lépni velem!
Hát eleinte nem az én ötletem az ilyen "óra"! Rengeteget láttam az interneten, és néhány dollárért megrendelhetők a különböző webáruházakban. De nem vásárolni akartam egyet, hanem sajátot akartam csinálni, hogy megtanuljam és megértsem, hogyan működik.
Egy szó a "nem német" tagoknak … Sajnálom, hogy ez csak egy "német Wort Uhr". Lehet, hogy könnyen átalakítható angolra vagy bármely más nyelvre, de mivel német vagyok, az én nyelvemen készítettem. Ha segítségre van szüksége a nyelvéhez, lépjen kapcsolatba velem, és megpróbálok segíteni.
Kezdjük hát…
1. lépés: A vázlat
A vázlat egyszerű, és ha a kép rosszul olvasható, akkor van PDF fájl is.
Kezdjük a bal alsó sarokkal. Van egy egyszerű tápegység, amely LM7805 -öt használ, hogy stabil 5 V -os kimenetet generáljon a PIC -hez, a shift regiszterekhez (74HC164) és a valós idejű DS3231 chiphez. Az összes LED is ebből a részből származik. A jobb oldali D22 csak az áramellátás jelzésére szolgál, és ha nem akarja, könnyen elhagyható.
Bármilyen egyenáramú tápegységet használhat 40 V -nál kisebb óra esetén, de ezután válassza ki a megfelelő értéket a C7 számára. Legalább a bemeneti feszültség kétszeresének kell lennie, és ne feledje, hogy hőt termel az LM7805 -ben, ezért meg kell próbálnia a bemeneti feszültséget a lehető legalacsonyabb szinten tartani, mert minden más csak energiapazarlás. A legjobb illeszkedés a 9V és 12V DC között van.
Ne törődjön a tápegység polaritásával… A p-csatornás MOSFET (Q1) téves polaritásvédelemként működik, és az óra egyszerűen nem fog működni, és nem sérül. Ezt ellenőrizheti a "tápellátás" D22 LED -en, ha fel van szerelve.
A vázlat jobb oldalán a soros-párhuzamos kimeneti váltóregiszterek találhatók. Úgy döntöttem, hogy használni fogom őket, mert nem akartam hatalmas PIC-t használni sok I/O-porttal. Kisebbet akartam használni, és még mindig volt otthon néhány 16F1829, így a választás már egyértelmű volt. Az adatokat (IN_1, IN_2 és IN_3) a PIC (lásd az alábbi kódrészletet) és a REGISTER_CLK szolgáltatja. A kód és a NYÁK -elrendezés egyszerűsége érdekében a 74HC164 -ből kettőt használtam az órákhoz, az utolsót pedig a "logika" -hoz.
A bal felső sarokban található a PIC és az összes szükséges alkatrész. A belső órát használtam, így nincs szükség ozzilátorra. Csak három ellenállás SCL, SDA és MCLR esetén. Annak a ténynek érdekében, hogy a 32 kHz -et használtam a "pontos másodpercek" jelzésére, nincs szükség egészen stabil és pontos frekvenciára a PIC számára.
Középen van a DS3231, minimálisan a külső alkatrészeken. Valójában csak az SDA és SCL bemeneteket használtam az I²C -n keresztüli kommunikációhoz és a 32 kHz -es kimenetet külső órajelként a PIC16F1829 1. időzítőjéhez. Ehhez a kimenethez az adatlap azt mondja, hogy külső felhúzó ellenállás szükséges. A többi kimenetet nem használtam ebben a projektben, és nem hagytam őket összekapcsolva.
Szintén középen, a LED -ek… Ahogy a vázlatban olvasható, kék LED -eket használtam (világos házúak) és 1 k ohmos ellenállást. Ha önállóan kívánja elkészíteni ezt a projektet, akkor válassza ki ezen ellenállások értékeit a kiválasztott LED -ek színe és típusa szerint. Azt is vegye figyelembe, hogy hol szeretné beállítani az órát. Az egyik a hálószobámban áll, ezért nem akartam, hogy a LED -ek túl világosak legyenek, és nagyobb értéket választottam az ellenállásoknak. Mielőtt a NYÁK -ra rögzítené, tegyen néhány próbát egy LED -ekkel és ellenállásértékekkel rendelkező kenyérsütő táblán.
2. lépés: Elrendezés
A vázlat befejezése után itt az ideje, hogy a PCB -t eljuttassa. Ehhez a KiCAD -t használtam (sematikus módon is). Nincs sok mondanivalója, csak irányítsa a vonalakat.
Annak a ténynek köszönhetően, hogy az óra házát egyedül nyomtattam ki, nagyon fontos volt, hogy a felső rétegen lévő LED -ek hol találhatók. A LED-eket és az ellenállásokat csak a felső rétegre tettem, mert a PCB-t részben szereltem (az összes SMD alkatrészt), és mivel az általam választott cég csak az egyik oldalra helyezi az alkatrészeket, és nem kétoldalas.
Láthatja az elhelyezést a két háromdimenziós képen, amelyeket KiCAD-ből készítettem.
Ha érdekli… Lehetőség van a KiCAD NYÁK exportálására az Eagle -be, és akkor meglehetősen egyszerű megépíteni a házat, mert van egy hivatkozása a NYÁK -ból.
3. lépés: A „Wort-Uhr” „logikája”
Ennek a projektnek a legnagyobb része a PIC kódja volt…
Először megtalálta a beszélt idő "logikáját" németül, és lefordította kódra.
Sajnos nem lehetett közvetlenül feltölteni az Excel fájlt, de remélem, hogy a PDF -exportálás olvasható lesz az Ön számára. Ha nem, lépjen kapcsolatba velem, és elküldöm az eredeti Excel fájlt. A PDF -ben láthatja, hogyan állítottam be az óra logikáját. Láthatja, hogyan haladtam végig a különböző időlépéseken, és hogyan alakult a helyesírás. A kódon belüli számítás (főleg if-else utasítás) a táblázat jobb oldalán található információkból származtatható. Az egyik rész percekre, a másik az órákra szól.
Amint látja, ez nem varázslat, és könnyen kódolható C -ben. A "legtrükkösebb" pont a logikán belül az, hogyan kell kezelni az órát, amint az a fájlban látható, hogy csak egy óra elején jelenik meg a tényleges óra. Németül (lehet, hogy ez csak egy bajor dolog) a "következő órát" elég korán használják.
A kódoláshoz MPLABX -et használtam választott IDE -ként.
4. lépés: Kódrészletek
Nem teszem közzé a kódomat itt, de ha saját kódot akarsz írni, adok néhány tippet, amibe "beleakadtam" a fejlesztés során …
Először a "regisztráció" kitöltés:
Ha túl gyakran és túl rövid ciklusokban visz át új adatokat a nyilvántartásokba, azt tapasztaltam, hogy a LED -ek villogni kezdtek. Ezért készítettem néhány "blokkoló zászlót", hogy minden percben elvégezzék a beszélt idő új "számítását", és frissítsék a regisztert.
A nyilvántartások kitöltésének kódja a fenti képen látható. Amint látja, mind a 3 regisztert párhuzamosan töltöm ki, így szükségem van 3 PIN -kódra a PIC -ről az adatokhoz és 1 pin -re a CLK -hoz. A 74HC164 új adatokat vesz át a CLK vonal 0 -ról 1 -re történő átmenetére.
A többi kód elsősorban PIC-függő dolog, a "beszélt idő" logikája, valamint a kommunikáció és a gombok kezelése. A kommunikációt elsősorban a Microchip MPLABX biztosítja, mert az MSSP modult használtam.
Jó ötlet a DS3231 adatlapjának elolvasása, mert az adatok BCD -ben vannak tárolva, így előfordulhat, hogy ezt "átalakítani" kell a kódban. Ami engem illet, én "csinálok tanulás" fickó vagyok, és természetesen nem olvastam el az adatlapot … Sok idegbe és órába került.
Amint észrevehette, ezzel a megvalósítással kétféleképpen lehet "időbeosztást" tartani.
- Kiolvashatja a DS3231 valós idejét
- Magában a PIC -ben "másodperceket számlálhat", és időről időre csak szinkronizálhatja az időt a DS3231 készülékkel
Ez rajtad múlik, és mindkét módszer praktikus és egyenes. Az első opciót használtam, és csak az időt szinkronizáltam, amikor a gombok segítségével állítottam be az időt (írási idő a DS3231 -re) vagy 24 óránként (olvasási idő a DS3231 -ből), mert több logikát akartam megvalósítani egyedül. Éjjel is forgatom az órámat (23: 00-05: 00), így véleményem szerint egy kicsit könnyebb volt.
5. lépés: A ház
Végül, de nem utolsósorban itt az ideje egy rövid pillantást vetni a házra.
Amint fentebb említettem, a házat magam készítettem (az Eagle segítségével), és kinyomtattam őket a 3D-nyomtatómmal, így figyelnem kell a különböző LED-ek helyzetét.
Csatolva megtalálhatja az STL fájlokat, ha használni szeretné őket.
Reméljük, hogy ez az útmutató segít Önnek a saját „Wort-Uhr” építésében. Ha még mindig vannak "nyitott kérdések", ne habozzon kapcsolatba lépni velem. A legjobb módja az alábbi megjegyzéseknek, mert lehet, hogy nem csak Önnek van konkrét kérdése.
Ajánlott:
DC - DC feszültség Lépés lekapcsoló mód Buck feszültségátalakító (LM2576/LM2596): 4 lépés
DC-DC feszültség Lépés lekapcsoló üzemmód Buck feszültségátalakító (LM2576/LM2596): A rendkívül hatékony bakkonverter készítése nehéz feladat, és még a tapasztalt mérnököknek is többféle kivitelre van szükségük, hogy a megfelelőt hozzák létre. egy DC-DC áramátalakító, amely csökkenti a feszültséget (miközben növeli
Akusztikus levitáció az Arduino Uno-val Lépésről lépésre (8 lépés): 8 lépés
Akusztikus lebegés az Arduino Uno-val Lépésről lépésre (8 lépés): ultrahangos hangátvivők L298N Dc női adapter tápegység egy egyenáramú tűvel Arduino UNOBreadboard és analóg portok a kód konvertálásához (C ++)
Élő 4G/5G HD videó streamelés DJI drónról alacsony késleltetéssel [3 lépés]: 3 lépés
Élő 4G/5G HD videó streaming a DJI Drone-tól alacsony késleltetéssel [3 lépés]: Az alábbi útmutató segít abban, hogy szinte bármilyen DJI drónról élő HD minőségű videó streameket kapjon. A FlytOS mobilalkalmazás és a FlytNow webes alkalmazás segítségével elindíthatja a videó streamingjét a drónról
Bolt - DIY vezeték nélküli töltő éjszakai óra (6 lépés): 6 lépés (képekkel)
Bolt - DIY vezeték nélküli töltés éjszakai óra (6 lépés): Az induktív töltés (más néven vezeték nélküli töltés vagy vezeték nélküli töltés) a vezeték nélküli áramátvitel egyik típusa. Elektromágneses indukciót használ a hordozható eszközök áramellátásához. A leggyakoribb alkalmazás a Qi vezeték nélküli töltő
4 lépés az akkumulátor belső ellenállásának méréséhez: 4 lépés
4 lépés az akkumulátor belső ellenállásának mérésére: Íme a 4 egyszerű lépés, amelyek segítenek mérni az akkumulátor belső ellenállását