Tartalomjegyzék:

Arduino hordozható munkapad 3. rész: 11 lépés
Arduino hordozható munkapad 3. rész: 11 lépés

Videó: Arduino hordozható munkapad 3. rész: 11 lépés

Videó: Arduino hordozható munkapad 3. rész: 11 lépés
Videó: How to use TM1637 4 digits seven segment display with Arduino 2024, Július
Anonim
Arduino hordozható munkapad 3. rész
Arduino hordozható munkapad 3. rész
Arduino hordozható munkapad 3. rész
Arduino hordozható munkapad 3. rész

Ha megtekintette az 1., 2. és 2B. pihenő működik.

Ez az elektronika és az Arduino kód. Az előző 2B utasítás tartalmazza a tápegység részleteit.

Ez a rész a hordozható munkaasztalt tartalmazza a következő funkciókkal

A kijelzőt biztosító TFT érintőképernyő, amelyet az Arduino Mega hajt, hogy a következőket biztosítsa

  1. 8 digitális kijelző, ki/be/oszcilláló
  2. 4 feszültségkijelző
  3. 3 áram/feszültség kijelző
  4. E24 ellenállásmérő (mert már nem tudom leolvasni a színsávokat)

Lesz még valami, amit hozzáteszek, de ez volt az első célom. Az Arduino kód soros kijelzőt, I2C kijelzőt, kapacitásmérőt, digitális kapcsolókat és oszcilloszkópot is felsorol, amelyeket az idő múlásával hozzáadok. Továbbá nem teljesen eldöntöttem, hogy érdemes -e 3V3 -as tápegységet, változó tápegységet vagy tápfeszültség/áramfigyelést hozzáadni. Eddig ezt a Mega segítségével építették, de azt is nézem, hogy egyes funkciókat át kell helyezni az I2C -hozzáférésű áramkörökre, akár dedikált chipek, akár programozott Atmel 328 -asok, amelyek könnyebben befogadnak egy másik vezérlőt.

Kellékek

5 x 16 utas fejléc

5 x 8 utas dupont foglalat, valójában hosszú, 40 irányú, egysoros foglalatokból, amelyek a kívánt hosszúságra vannak vágva

1 x 3,5 hüvelykes ILI9486 TFT érintőképernyő

1 db Arduino Mega 2650

Egyedi alkatrészek

A szöveg szerint ezek egy részének értéke nem teljesen rögzített, és ha kihagy egy funkciót, egyáltalán nem lesz szüksége rá:)

Digitális bemenet

16 x 10K ellenállás

Analóg bemenet

1 x TL074 egy quad jfet opamp, ez volt a tartalékom, bármi hasonló megteszi:)

4 x 68K és 4 x 430k ellenállás feszültségosztóként.

4 x 1N4001 vagy hasonló

Ellenállásmérő

1 x TL072 kettős jfet opamp, ez volt a tartalékom, bármi hasonló megteszi:)

1M0, 300k, 100k, 30k, 10k, 3k, 1k, 300R (Ha ezeket az értékeket megváltoztatják, az Arduino kódot frissíteni kell)

1. lépés: Az elektronika áttekintése

Az elektronika áttekintése
Az elektronika áttekintése
Az elektronika áttekintése
Az elektronika áttekintése
Az elektronika áttekintése
Az elektronika áttekintése
Az elektronika áttekintése
Az elektronika áttekintése

A szürke konzolt én készítettem 30 évvel ezelőtt, és még mindig rendszeres használatban van, de az idők továbbhaladtak. Kettős tápegységet biztosít a bal oldalon, egy központi audió erősítőt középen, belső hangszóróval és egy oszcillátort a bal oldalon. Manapság a legtöbb áramkörömnek csak a tápegységre van szüksége, és ebből csak a pozitív sínre. Valami másra volt szükség, valamint a címkézésre, amelyek nélkül éltem, hát sikerült.

A projektdoboz -elektronika fő követelményei az újabb áramkörök áramellátása volt Arduino vagy Raspberry PI -k használatával, így az 5 V -os elengedhetetlen volt, mint az USB -aljzatok. A világító kapcsolók megmondják, hogy a tápfeszültség be van -e kapcsolva, és a tesztelés során rendszeresen kis segédáramköröket kell építenem, hogy átmeneti állapotkijelzéseket adjak. Van egy doboz nagyméretű mérőórám, amely sok helyet foglal el a padon, és mindenekelőtt olyan kijelzőre van szükségem, amelyet könnyen le tudok olvasni, amikor romlik a látásom, valami nagy, élénk karakterekkel. Szükségem van tehát digitális kijelzőkre, feszültségmérőkre, árammérőkre, és ebben az esetben egy kis luxusra, ellenállásmérő formájában, hogy gyorsan azonosítsam az E24 sorozatú ellenállásokat, mindezt a projekt kenyértáblájától számított 15 cm -en belül, és egy kompakt, hordozható tokban.

Az előző cikkben leírt fő tápegység egy 40 utas szalagkábellel látja el a fedelet, amely lehetővé teszi a kettő összekapcsolását, amikor a fedél zárva van. Ez kapcsolható 5 és 12 V -os tápegységeket biztosít a panel elektronikájához és a kenyértáblához.

Valamennyi táp- és jelbemenetet 2x8-utas PCB-csatlakozóaljzatok biztosítanak párhuzamosan egy 8-utas dupont aljzattal. Ez valószínűleg túlzás, a legtöbb kenyérsütő támasztósínnel rendelkezik, de könnyű volt.

A hálózati aljzatokon a tápegység fő 0 V -os sínje minden tápegységhez közös, és rendelkezésre áll. E fölött van egy 5 V -os tápegység, bekapcsolva az alapegységet, és e fölött két tápellátású +12 V és -12 V tápegység található, amelyek jelenleg rögzítettek, bár van egy ötletem, hogy feltörjem a tápegységet, hogy változtatható legyen, és 3,3-20 V -ot biztosítson változó kínálat.

2. lépés: Az elektronika

Az elektronika
Az elektronika
Az elektronika
Az elektronika
Az elektronika
Az elektronika

Kifüggesztettem a kenyérsütő deszka elrendezését, hogyan néz ki az áramkör mátrixlapra építve, egy sematikus PDF -ként és az eredeti Fritzing fájlokat. Ez nem különösebben bonyolult elektronika, és korlátozó ellenállások, puffer erősítők és ventilátor kimenetek csatlakoztatására szolgál az Arduino kártyához. De számos kép mutatja a sok kapcsolatot egy kicsit világosabban. A kábelezés nagy része szabványos hosszúságú, előre krimpelt dupont szalagkábelből állt, amelyet többutas házakba szereltek össze, hogy mindkettőt könnyebb legyen újra csatlakoztatni és megbízhatóbb legyen.

Az Arduino Mega 2650 a programozáshoz rendelkezésre álló USB -csatlakozóval a fedélre van szerelve. Meghajtja az összes kimenet és bemenet megjelenítésére használt TFT érintőképernyőt.

8 db digitális bemenet áll rendelkezésre egy 2x8 utas NYÁK-fejlécen keresztül, és állapotuk megjelenik a képernyőn, ha ezt a funkciót választja. Ez egy egyszerű be/ki kijelző, piros ki, zöld be. Jövőbeli változásként hozzátehetem az oszcillációt.

4 feszültségbemenet is rendelkezésre áll a NYÁK fejlécen keresztül, és egy feszültségosztó, a képernyőn megjelenő feszültség. Az előlapon lévő minden bemeneti feszültséget, a közös földre vonatkoztatva, 7 feszültségosztóval osztják el, majd a négy op-erősítő egyikével pufferelik egy egyenirányító erősítőként konfigurált TL074-ben, csak a negatív feszültségű balesetek elkerülése érdekében. Jó lenne egy polaritási jelzést hozzáadni egy szakaszban, de ezúttal nem. Minden op-erősítő kimenete az Arduino egyik ADC bemenete.

Egy további NYÁK -fejléc soros és I2C kapcsolatokat is felfed. Ez azért történt, hogy lehetővé tegye a soros kijelzőkonzol és az alapvető I2C azonosító funkció megvalósítását.

Előfordulhat, hogy a feszültség/digitális bemenetekre nincs szükség, ezért újrakonfigurálhatók a digitális kapcsoló kimenetek biztosítására.

Az Arduino egy feszültségosztó ellenállási tömbjét táplálja, hogy ellenállást mérő funkciót biztosítson. Ennek kimenetét egy op-erősítő (fél TL072) puffereli, mielőtt az Arduino leolvassa és kiszámítja az ellenállást. Ennek célja nem az ellenállás pontos mérése, hanem az E24 sorozat értékeinek gyors azonosítása, bár némi kalibrálással alapmérőként is használható. Működése az, hogy érzékeli, ha az előlapra szerelt két rugón 9M9 -nél kisebb ellenállás van jelen, majd szelektíven kapcsoljon 5 V -ot az elosztó tömb minden ellenállására, amíg meg nem mérik a 2,5 V -hoz legközelebb eső értéket vagy kiválasztják az utolsó ellenállást. ezután kiszámítást és összehasonlítást végeznek a legközelebbi E24 érték meghatározására. Az 5V az Arduino 3-10 digitális kimeneteiből származik, amelyeket minden mérés között nagy impedanciájú bemenetként konfigurálnak a hibák minimalizálása érdekében. A D3-10 Arduino csapokat szándékosan használták a jövőbeni kiegészítésként egy kapacitásmérőnek, amely ezen kimenetek PWM képességét használja, ami potenciálisan csak szoftverváltozás lehet.

A módosított INA3221 kártya további feszültség- és áramméréseket biztosít az I2C interfészen keresztül az előlapi bemenetekkel. Minden átkötött kábellel van bekötve, így a funkciók átcsoportosítása a jövőben is egyszerű lesz.

3. lépés: INA3221 Feszültség/áram bemenet

INA3221 Feszültség/áram bemenet
INA3221 Feszültség/áram bemenet

Ezt gyors javításnak szánták, hogy feszültség/áram méréseket végezzenek a dobozban, de kiderült, hogy a megvásárolt táblán végrehajtott módon az akkumulátor töltésének nyomon követését tervezték, ezért módosítani kellett, hogy három független mérést biztosítson. Ha ennek a projektnek az elkészítésekor INA3221 táblát szerezhet be, amely az adatlap szerint megvalósítja ezt a chipet, akkor ez nem szükséges.

Ha a képet nézzük, három vágást kell végezni a NYÁK -nyomokban a mérőellenállások elválasztása érdekében. Ennek a három ellenállásnak a párnáit is le kell vágni, hogy elválasszák őket a NYÁK többi részétől. Az ellenállásokat ezután csatlakoztatták a párnákhoz további vezetékek forrasztásával hidakként. Ezt dokumentálom, mert ez egy közös tábla, és lehet, hogy az egyetlen elérhető.

Az előlapról a táblához való csatlakozások a mérőellenállások áthidaló vezetékein keresztül történnek.

A tápellátás áramát az Arduino 5V -os csapok veszik, akárcsak a talaj, az I2C csatlakozók pedig az elektronikai NYÁK -hoz kerülnek.

4. lépés: A kijelző

A kijelző képernyő
A kijelző képernyő

Ez az eBay vásárlása volt, és sok forrásból elérhető, és ILI9486 -os kijelző. Megállapítottam, hogy a legjobban a David Prentice MCUFRIEND könyvtáraival futott, de használat előtt kalibrálni kell, amihez csak az kellett, hogy a David által megadott könyvtári példák egyike a csatlakoztatott képernyővel legyen futtatva, kövesse a képernyőn megjelenő utasításokat és írja le a megjelenített paramétereket, beszúrva az Arduino_Workstation_v01 kódfájlba, ha eltérnek.

Ehhez a projekthez elengedhetetlen az érintőképernyő, amely körül forog, nem rendelkezik dedikált kapcsolókkal, és lehetővé teszi a menük és funkciók további hozzáadását a jövőben, sok újrafeldolgozás nélkül.

5. lépés: Csatlakoztassa egymáshoz

Összekapcsolása
Összekapcsolása
Összekapcsolása
Összekapcsolása
Összekapcsolása
Összekapcsolása

Az Arduino Mega a fedél LHS -jén található, USB- és tápcsatlakozói a házon kívülről érhetők el. Az RHS -en az Arduino mellett az elektronika a mátrixlapra van szerelve, e fölé pedig az INA3221 tábla van szerelve a fedél hátulján.

Szintén az Arduino feletti LHS fedelének hátoldalán egy közös földelő csatlakozólap található, amelyhez minden földelés csatlakoztatva van.

A lehető legtöbb vezetéket összevontuk többutas csatlakozókká. Ez sokkal egyszerűbbé és megbízhatóbbá teszi az áramkörök összekapcsolását, és a többirányú házban lévő csatlakozók kölcsönös támogatása jobb ellenállást biztosít a kilazulással szemben. Az alábbiakban felsoroljuk ezeket a konszolidációkat.

Az összes csatlakozót logikus módon adták hozzá, ami a legnagyobb hozzáférést biztosította ügyetlen ujjaimmal történő kapcsolatteremtéshez, az előlapi csatlakozásokat a végére hagyva, a végső kijelzőcsatlakozásokat pedig a szerelési lyukon keresztül kell utoljára kitölteni. A képernyőt 3D nyomtatott előlappal rögzítették.

6. lépés: Konszolidált potenciális ügyfelek

Összevont potenciális ügyfelek
Összevont potenciális ügyfelek
  1. Feszültség- és ellenállás bemenetek az Arduino ADC portokhoz, öt 20 cm -es vezeték, egyedi dugaszoló csatlakozókkal az egyik végén egy hatirányú házba tömörítve, résszel az Arduino fejlécek közötti rés befogadására.
  2. 4 utas 10 cm -es kábel a négyutas házból két kétutas házba az előlapi feszültségcsapok és az áramköri lap csatlakoztatásához.
  3. 8-utas 10 cm-es kábel a 2x4-es dugófejből a 8-utas női fejhez
  4. 4 -utas 10 cm -es kábel a 4 -utas női házból a 4 -utas női házba a Serial és az I2C csatlakoztatásához az előlaphoz
  5. 4 utas 10 cm -es kábel a 4 -utas házból négy különálló csatlakozóhoz az INA3221 és az előlap csatlakoztatásához
  6. 4-utas 20 cm-es kábel a négyutas női ház és a négyutas férfi ház csatlakoztatásához, hogy a Serial és az I2C-t az Arduino-ból az áramköri ventilátor kimenetéhez vigye.
  7. 8 -utas 10 cm -es kábel 8 -utas házból 8 -as női házba, hogy digitális bemeneteket vigyen az előlapról az áramköri lapra.
  8. 8 -utas 10 cm -es kábel a 8 -utas női ház összekapcsolásához egy 3 -utas hüvelyes házhoz és egy 5 -utas hüvelyház az ellenálláselosztó csatlakoztatásához az áramköri laphoz. A két ház az Arduino tábla fejléceiben található nem szabványos rés befogadására szolgál.
  9. 2 -utas 20 cm -es kábel 2 -utas hüvelyházhoz két különálló csatlakozóhoz az INA3221 tápegységhez.
  10. 2-utas 10 cm-es kábel a 2-utas hüvelyház két különálló házhoz való csatlakoztatásához a harmadik INA3221 monitorcsatlakozás csatlakoztatásához az előlaphoz.
  11. 2-utas 10 cm-es kábel a 2-utas női ház és a 2-utas női ház összekapcsolásához az INA3221 és az I2C fanout csatlakozók csatlakoztatásához.

7. lépés: Arduino kód

Arduino kód
Arduino kód
Arduino kód
Arduino kód

Ez a projekt az Arduino Mega 2650 -en alapul, azon az egyszerű oknál fogva, hogy sok I/O portot szerettem volna, amelyek egyszerű formátumú feladatokhoz készültek. A TFT érintőképernyő könyvtárai alapértelmezés szerint támogatják az Arduino Uno programot, és a Mega támogatásához szerkeszteni kell őket. A könyvtárak szerkesztését az eredeti TFT -kód szerzője támogatja, egyszerű és a következő lépésben ismertetjük.

Az érintőképernyős kijelző a projekt ezen részének az alapja, de mivel a felhasználó által használt kijelző eltérhet az általam használtól, a kód csak a hardver -specifikus funkciókat helyezi el külön rutinokban, így minden szükséges módosítás azonosítható.

A kód működő verziója itt található, és frissítésre kerül, de a legfrissebb frissítések a githubon lesznek.

A kód fő funkciója a kijelző körül forog, a kijelző minden egyes elemének egyetlen bejegyzése van egy tömbben, amely tartalmazza az elemtípust, ahol a képernyőn megjelenik, színe és további paraméterei, például a bemeneti forrás. A tömb képernyőképét megjegyzésekkel láthatja fent. Ezenkívül tartalmaz egy mezőt annak szabályozására, hogy megjelenjen -e a képernyőn vagy sem. A tömb szerkesztésével új funkciók adhatók hozzá, vagy törölhetők. A kód „ciklus” rutinja folyamatosan fut ezen a tömbön, minden jogosult elemet sorban feldolgoz, majd megismétel. Jelenleg 6 különböző elem van.

Menüelemek - ezek nem jelenítenek meg információkat, de amikor megérintik, végrehajtanak egy kapcsolódó alprogramot, amelyet az elemparaméterek azonosítanak

Digitális elemek - dobozként jelennek meg a képernyőn piros vagy zöld színben, a kapcsolódó digitális bemeneti tű állapotától függően. A példakonzol 8 digitális tűvel van összekötve, de ez tetszés szerint növelhető vagy csökkenthető.

Analóg elemek - megjelenít egy hozzávetőleges feszültséget a hozzá tartozó analóg tüskén mérve. Négy eredetileg meghatározott.

Precíziós elemek - bemenet megjelenítése külső precíziós feszültség/árammérő modulból. Ebből csak három van, de hozzá lehet adni egy második vagy harmadik modult.

Ellenállás elem - ez egyetlen elem, amely megjeleníti az ellenállásmérő bemenetét.

Érintés - ez az egyetlen olyan rutin, amelyet mindig végrehajtanak annak érzékelésére, hogy megérintették -e a képernyőt, majd döntést hoznak az érintettek alapján. azaz ha egy menüpont, mit jelent ez a következő megjelenítés.

A képernyő három állapotmóddal rendelkezik, normál, nagy és teljes képernyős, és minden elem az állapotától függően megváltoztatja működését. A három mód a menüből választható, ha megérint egy elemet és a hozzá tartozó menüopciót.

Normál üzemmód - 8 digitális bemenetet, négy analóg feszültségbemenetet, három precíziós elemet, ellenállást és négy menüelemet jelenít meg. Ha a menüből a Normál lehetőséget választja, a kijelző ebbe az üzemmódba kerül.

Nagy mód - a képernyő bármely elemének, majd a Nagy gomb megérintésével választható ki. Kiválasztásakor ez az elemtípus az egyetlen kiválasztott típus, és az ilyen típusú elemek átrendeződnek, hogy kitöltsék a teljes képernyőt.

Teljes képernyő mód - kiválasztható a képernyő bármely elemének, majd a Teljes képernyő megérintésével. Ha kiválasztja, ez az elem az egyetlen megjelenített elem, és úgy van átrendezve, hogy kitöltse a teljes képernyőt, így az adott elem maximális láthatóságot biztosít.

További funkciók hozzáadásához a következő rutinokat kell hozzáadni

"rajzolási" rutin, amelyet az adott elem információinak lekérésére hívnak, hívja a megfelelő képernyőfrissítési rutint, és regisztrálja a visszaadott érintési információkat

„logikai” rutin, amely elfogadja a rajzolási rutinból származó információkat, és a megfelelő képernyő -illesztőprogram -rutinokat használja az információk képernyőre helyezéséhez, és a megfelelő érintési információkat adja vissza a rajzolt területhez

„beállítás” rutin, amelyet az Arduino beállítás részeként hívnak

Más rutinokat is be lehet vonni, de az elemkódok között nem lehet kölcsönös függőség, ha egy elem nincs engedélyezve, akkor az kódját nem kell végrehajtani, és az egyszerű többfunkciós szerkezet megőrzi integritását.

8. lépés: Az Arduino könyvtárak szerkesztése

Az Arduino könyvtárak szerkesztése
Az Arduino könyvtárak szerkesztése
Az Arduino könyvtárak szerkesztése
Az Arduino könyvtárak szerkesztése

Az általam használt kijelző nagyon jól működik az Arduino Uno -val és a hozzá írt alapkönyvtárakkal, de lassan teljesít, ha közvetlenül átviszik az Arduino Mega -ba. A kijelző helyes meghajtásához más adattűket kell használni, és ezt a használatváltozást be kell állítani a könyvtárakban. Ez egy egyszerű változtatás, és a szerző szándékában állt. A képek rávilágítanak az elvégzett változtatásokra.

A két fájl az MCUFRIEND_kbv / utility mappában van tárolva mcufriend_shield.h és mcufriend_special.h néven. A szükséges változtatások először a „pajzs” fejlécfájlban vannak, hogy az első sor olvasható legyen

#define USE_SPECIAL

hogy a „speciális” fejlécfájl betöltődjön.

A „speciális” fejlécfájlt is frissíteni kell annak biztosítása érdekében, hogy a sor

#define USE_MEGA_8BIT_PROTOSHIELD

megjegyzés nélküli.

Ez a két módosítás azt jelenti, hogy ennek a kijelzőnek a megjelenítési kódja az Arduino Mega 20-29-es csapjaival fog működni az Uno alapértelmezett 3-10 helyett.

9. lépés: Képernyőképek

Képernyőképek
Képernyőképek
Képernyőképek
Képernyőképek
Képernyőképek
Képernyőképek

Képernyőképeket tettem ide, így könnyen belátható, hogy a konzolnak mit kell tennie. A következő szakasz a kód betöltésére vonatkozik az Arduino -ba.

Az első képernyő a „normál” képernyőt mutatja, menük a tetején, feszültségmérések az LHS -en, feszültség- és árammérések az RHS -en, és a digitális csap állapota alul, piros „hamis/alacsony”, zöld „igaz/magas” '. Végül a középpontban az ellenállás mérése található.

A második képernyőn a nagy módban engedélyezett digitális bemenetek láthatók, minden bemenet jól látható.

A harmadik képernyő a nagy módú feszültségbemeneteket mutatja.

10. lépés: Az Arduino kód betöltése

A kód csatolva van, de amint azt korábban említettük, valamikor feltesszük a github -ra, és hozzáadjuk a helyet. A fő forráskódfájl az Arduino_Workbench_v01.ino, és a többi rutin a különböző funkciók biztosítására szolgál.

Ha a könyvtárakat rendben módosították, és az Arduino Mega2650 -t állították be célplatformként az Arduino IDE -ben, akkor a kódnak először le kell fordítania.

A betöltendő könyvtárak az Adafruit GFX és az érintőképernyős könyvtárak, amelyek elérhetők az Arduino könyvtárkezelőtől, az MCUFRIEND_kbv egy példánya letölthető a github -ból, és az INA3221 esetében a SwitchDocLabs SDL_Arduino_INA3221 könyvtár is letölthető a githubból, mindkettő gyorsan megjelenik egy google keresés.

11. lépés: Utolsó érintések

Utolsó érintések
Utolsó érintések
Utolsó érintések
Utolsó érintések
Utolsó érintések
Utolsó érintések
Utolsó érintések
Utolsó érintések

Az ötlet az, hogy projektmunkákhoz használják, így egy kivehető panelt készítettek, amely rögzítőcsavarokat tartalmaz az Arduino táblákhoz és egy kenyérlapot, az egészet tépőzárral rögzítik a fedélhez, hogy levehetőek legyenek, és hogy különböző táblákat lehessen készíteni projektek és hogy a doboz újra felhasználható az egyidejűleg futó különböző projektekhez.

Remélem, hogy ez néhány ötlet forrása lesz, hogy valami mást, jobbat vagy mindkettőt készítsen. Hozzáteszem az általam említett kiegészítő funkciókat, és hozzáadom őket, de ha ez segít, akkor vegye meg, amit akar, és élvezze. Ha bármilyen szembetűnő probléma merül fel, kérjük, tudassa velem.

Most kezdem használni és használni fogom, van néhány projekt, amin dolgoznom kell!

Ajánlott: