2014.05.20.
16:45

Írta: harsanyireka

03. A forrasztás menete és eszközei

Lektorált tananyag, ami a BKF Digitális és Kollaboratív Művészet (DIKOM) pályázatnak keretén belül valósult meg.

Szerző: Harsányi Réka, Társszerző: Juhász Márton András, Lektor: Fernezelyi Márton

  

A forrasztás egy olyan, fémek közötti, oldhatatlan kötés, ami vezeti az áramot. Forraszanyaggal készül, amelynek olvadáspontja alacsonyabb, mint az alkatrészeké. Forrasztópákával vagy forrasztópisztollyal előállított hőforrás segítségével jön létre a forrasztás. A legelterjedtebb forraszanyag az ón, bizonyos változata forrasztózsírt is tartalmaz, ami letisztítja a felületet. Ha nincs benne, külön meg kell tisztítani a forrasztásra szánt részeket, mivel a kézről rátapadó zsír és kosz megakadályozza, hogy jól tapadjon az ón, így hibás lesz a kötés, ami nem vezeti majd az áramot. Az erre alkalmas tisztítószereket folyatószereknek nevezzük, mely lehet zsír, krém, flux folyadék stb. Másik feladatuk, hogy megvédjék a hőhatásnak kitett fémet az oxidációtól.

Megkülönböztetünk kemény és lágyforrasztást, a munkahőmérséklet előbbi esetben 450 oC feletti, a lágyforrasztásnál pedig az alatti. Ez az a hőmérsékletet, amin a felhasznált forraszanyag körül tudja folyni a felületet. Fontos, hogy a hegesztés egy egészen más eljárás, nagyobb felületek esetén alkalmazzák, ezért erre nem térünk ki. Mi pákával lágyforrasztásokat fogunk készíteni. Fontos, hogy a páka milyen hőfokú, az érzékenyebb alkatrészeknél alacsonyabb hőfokra kell állítani. Az első fejezetben szereplőken kívül a következő eszközökre lesz szükségünk.

3.1 forrasszto egyseg 1.jpg

3.1 hofok forrasztashoz 2.jpg

3.1 ábra:  Forrasztó egység állítható hőfokszabályozóval, 690 °C-ra állítva. A forrasztó ón olvadási pontja  231,9 °C.Fontos, hogy a forrasztandó részek hőmérséklete meghaladja a forrasztóón olvadáspontját!

A forró pákát mindig a helyére kell visszatenni! 

3.2 forrasztoon zsirtartalmu.jpg

3.2 ábra: Forrasztó ón

3.3 forrasztozsir.jpg

3.3 ábra: Forrasztózsír

3.4 kiforraszto pumpa es drot.jpg

3.4 ábra: Kiforrasztó pumpa és huzal

3.5 proto2.jpg

3.5 proto1.jpg

3.5 ábra: Prototípus NYÁK lemezek forrasztásához (különböző típusok léteznek) 

3.6 zsugorcso keszlet.jpg

3.6 zsugorcso.jpg

3.6 ábra: Zsugorcsövek különböző méretben és színben (készletben is kaphatóak)

 

3.7 harmadik kez.jpg

3.7 ábra: „Harmadik kéz” a műszerész forrasztó állvány, mely megkönnyíti a munkát

 

Két példán keresztül megtanuljuk, hogyan kell forrasztani. Egy LED-et és ellenállást kapcsolunk össze úgy, hogy zsugorcsővel elszigeteljük a lábait egymástól. Ezt követően a prototipizálásra alkalmas NYÁK lemezbe beforrasztunk egy LED-et és egy ellenállást, majd kiforrasztjuk, hogy annak a menetével is megismerkedjünk.

 3.8 drot vege szetallo.jpg

3.8 ábra: Előfordulhat, hogy többszálas a drót, így blankolás után szétállnak a végei.

3.9 drot vege zsirba.jpg

3.9 ábra: Kézzel sodorjuk össze a végét és mártsuk a forrasztózsírba!

3.10 drot vege.jpg

3.10 drot vege onozott 2.jpg

3.10 ábra: Utána ónozzuk be a végét, hogy könnyebb legyen az alkatrészhez forrasztani!

3.11 LED ellenallas zsugorcso 1.jpg

3.11 LED ellenallas zsugorcso 2.jpg

3.11 ábra: A LED lábait vágjuk le!

3.12 LED ellenallas zsugorcso 3.jpg

3.12 LED ellenallas zsugorcso 4.jpg

3.12 ábra: Az ellenállás forrasztása előtt húzzunk fel a drótra egy megfelelő hosszúságú és átmérőjű zsugorcső darabot!

3.13 LED ellenallas zsugorcso forrasztas.jpg

3.13 ábra: Az ellenállást forrasszuk a LED megfelelő lábához és a zsugorcsövet húzzuk rá az egészre, majd a LED másik lábán ismételjük meg ugyanezt!

3.14 zsugorcsoves LED ongyujto.jpg

3.14 ábra: A zsugorcső hő hatására összezsugorodik, így ráfeszül a forrasztásra. Mivel műanyag alapú, le is szigeteli azt, így elkerülhetőek a rövidzárok. Tartsuk rövid ideig öngyújtó lángja fölé úgy, hogy a láng ne érjen hozzá (a hő így is elegendő).

3.15 zsugorcsoves LED.jpg

3.15 ábra: Elkészült a zsugorcsővel leszigetelt LED. A képen látszik, hogy a fekete csőben van az ellenállás.

3.16 protoboard csiszolopapirral.jpg

3.16 protoboard lecsiszolva.jpg

3.16 ábra: A prototipizáló NYÁK lemez esetleg koszos és zsíros lehet, ezért csiszolópapírral óvatosan dörzsöljük át, úgy hogy a rézréteg ne kopjon le!

3.17 hibas forrasztas2.jpg

3.17 ábra: Ez a forrasztás hibás, mert átfolyt az ón a szomszédos lyukra is, illetve nincs elég ón rajta, mivel az folyatószer nélkül nem tapad.

3.18 helyes forrasztas.jpg

3.18 peldak forrasztasra.jpg

3.18 ábra: Ez pedig a helyes, folyatószerrel készült forrasztás, elég mennyiségű ónnal. Szándékosan is létrehozhatunk kötéseket  (alsó kép), vagy használhatunk olyan NYÁK lemezt, ami gyárilag rézzel összekötött szakaszokat tartalmaz.

3.19 protoboard LED labai.jpg

3.19 ábra: A NYÁK lemezbe dugott LED lábait az ellenkező oldalról tudjuk kényelmesen megforrasztani.

3.20 protoboard LED ellenallas.jpg

3.20 ábra: Az ellenállás közvetlenül a LED lábához is csatlakozhat, vagy ugyanúgy, mint a LED. Utóbbi esetben alulról drótokkal összeköthetjük a megfelelő részeket.

3.21 vizes szivacs.jpg

3.21 ábra: FONTOS, hogy minden forrasztás után tisztítsuk le a pákát egy nedves szivaccsal, hiszen koszosan nem ragad az ón. Így a pákahegyet is megóvhatjuk, de ha tönkrement, minden típusnál ki lehet cserélni.

3.22 hofok erzekeny alkatreszhez.jpg

3.22 ábra: Érzékenyebb alkatrészeket alacsonyabb hőfokon kell forrasztani, azok sérülésének elkerülése érdekében.

3.23 kifforasztas_pumpaval0.jpg

3.23 kifforasztas_pumpaval1.jpg

3.23 ábra: Az áramkör szétszedéséhez és a forrasztás eltávolításához használhatunk kiforrasztó pumpát, melynek a végét benyomva odatartjuk a forrasztáshoz, felolvasztjuk a pákával az ónt és eközben megnyomjuk a pumpa gombját. A pumpában keletkező vákuum kiszívja a felolvadt ónt.

3.24 kiforraszto drot.jpg

3.24 kiforrasztas drottal2.jpg

3.24 kiforrasztas drottal.jpg

3.23 ábra: Az áramkör szétszedéséhez és a forrasztás eltávolításához használhatunk kiforrasztó pumpát, melynek a végét benyomva odatartjuk a forrasztáshoz, felolvasztjuk a pákával az ónt és eközben megnyomjuk a pumpa gombját. A pumpában keletkező vákuum kiszívja a felolvadt ónt.

+++ +++ +++

Most már a saját áramköreinket is össze tudjuk forrasztani.

 

 

Szólj hozzá!

Címkék: forrasztás lektorált

2014.04.19.
14:53

Írta: harsanyireka

Processing leckék

Szólj hozzá!

2014.03.27.
12:48

Írta: harsanyireka

Sztenderd Kommunikációs Könyvtárak

 

EEPROM 

írás és olvasás az állandó tárolón

Az Arduino három különböző típusú memóriával rendelkezik, az egyes típusok kapacitása a mikrokontroller fajtájától függ:

  • Flash: Többszörösen újraírható memória, tartalma az eszköz kikapcsolását követően is megmarad. A fejlesztőkörnyezet által lefordított kódunk itt tárolódik gépi utasítások formájában.
  • RAM: Gyors hozzáférésű memória s programunk futtatása közben ideiglenesen tárolt adatok számára. Tartalma kikapcsoláskor elvész. Írható és olvasható adattároló eszköz.
  • EEPROM: Flashnél régebbi technológia a kikapcsolást követően is megőrzendő adatok, konfigurációs beállítások, kezdeti állapotok, hosszabb szövegek eltárolásához. Nagyságrendileg 100.000 törlés az életideje. A ROM csak olvasható adatok tárolására alkalmas.

Az EEPROM könyvtár azokat a funkciókat fogja össze, amikkel bájtonként tudjuk írni és olvasni a beépített memória ezen típusát. Az Arduino Mega kontrollerének (ATmega1280 és ATmega2560) 4096, az UNO és Duemilanove (ATmega328) 1024, a Diecimila, NG (ATmega168) és Digital (ATmega8) 512 bájt a kapacitása. 

PÉLDA

I2C EEPROM with the Arduino Part 1Part 2Part 3

 

Ethernet 

az Ethernet Shield Könyvtára, internetes kommunikáció

Az ethernet egy LAN alapú specifikáció. 1985 óta a számítógépeket összekötő hálózatok fő kommunikációs technológiai szabványa és fizikai rétegtől az adatkapcsolati rétegig nyújt szolgáltatásokat. A fizikai réteg magát a hardware-t jelenti, az adatok bitenkénti csatornákra juttatását. Az adatátviteli réteg pedig két hálózati elem közötti átvitelt biztosító eljárásokért felelős.

Az Ethernet kiegészítő modullal (shield) és a hozzá tartozó könyvtár segítségével eljuthatunk a hálózati rétegig és internetképessé tehetjük az Arduinot. A shield a Wiznet, SPI kommunikáción alapuló W5100-as integrált áramkörére épül és fenntartja az SD kártya csatlakoztatásának lehetőségét is. A kiegészítőt elég csatlakoztatni. A következő példákban megnézzük, hogyan lehet bejövő kapcsolatokat kezelő szerverként és kimenőket intéző kliensként egyaránt működtetni.

A könyvtár osztályai:

Ethernet Osztály - Az ethernet könyvtárat és a hálózati beállításokat inicializálja

IP Osztály - Meghatározza az IP-címet, ami lehet helyi és távoli cím is

Szerver Osztály - Létrehoz egy szervert ami adatot küld és fogad a rá kapcsolt kliensektől

Kliens Osztály - Létrehoz egy klienst, ami a szerverrel kommunikál

EthernetUDP Osztály - Az UDP (User Datagram Protocoll) az internetet alkotó protokollok egyike, amivel számítógép-alkalmazások cserélnek úgynevezett datagrammokat egymás között. Leginkább olyan esetekben érdemes használni, amikor nem fontos a hibaellenőrzés és -javítás a csomagok átvitelekor. Ez általában valós idejű adatátviteli rendszereknél fontos, ahol egy csomag elvesztése kisebb probléma, mint az ellenőrzésekből fakadó késés.

PÉLDA

Arduino powered Lucky Cat as physical Webcounter 

 

WiFi 

Arduino WiFi Shield Könyvtára, vezeték nélküli internetes kommunikáció

Nagyon hasonlít az Ethernet Könyvtár felépítéséhez, néhány funkciót ugyanúgy kell meghívni. Szerverként fogadhat bejövő kapcsolatot, vagy kliensként hozhat létre kimenőeket. WEP és WPA2 Personal titkosítást támogatja, de a WPA2 Enterprise-t nem. Fontos megjegyezni, hogy ha az SSID nem sugároz, akkor nem tud csatlakozni a shield. (Az SSID egy vezeték nélküli hálózatokon használt név.

A shield SPI Buszon keresztül kommunikál. Az UNO boardon ezek a digitáls 11, 12, 13 pinek. A digitális 10 pin az SS ezt kimenenként meghagyjuk, és a digitális 7pint használja az ardunio és a wifi shield handshakeing-re ezért azt se használjuk.

A könyvtár osztályai:

Wifi Osztály - A wifi könyvtárat és a hálózati beállításokat inicializálja

IP Osztály - Meghatározza az IP-címet, ami lehet helyi és távoli cím is

Szerver Osztály - Létrehoz egy szervert ami adatot küld és fogad a rá kapcsolt kliensektől

Kliens Osztály - Létrehoz egy klienst, ami a szerverrel kommunikál

EthernetUDP Osztály - Az UDP datagrammokat küld és fogad

PÉLDA

Arduino + Wifi + RGB LED Strip = Information display.

 

Firmata 

egy sztenderd soros protokoll a számítógépen futó alkalmazásokkal való kommunikációhoz

A Firmata egy kommunikációs protokoll, aminek célja a számítógépes környezetekkel való adatcsere megkönnyítése.

Sok olyan gyors prototipizálásra alkalmas környezet létezik, amelyiken a firmata protokoll használata már megoldott. Ilyenek például a VVVV, Max/MSP, Processing és Flash. Létezik olyan firmata alapú program (firmware), ami az Arduino minden funkcióját elérhetővé teszi soros parancsokon keresztül, az analóg olvasástól a digitális csatornák kapcsolgatásáig, és ezeket saját számítógépen futó fejlesztőkörnyezetünkből el is tudjuk érni. A könyvtár használatával anélkül hozhatunk létre célfeladatokra kétirányú soros kommunikációs programot, hogy saját protokollt (pl. handshaking) vagy objektumokat fejlesztenénk.

StandardFirmata

Minden benne található funkciót támogat, elérhetjük a digitális és analóg ki-/bemeneteket, I2C kommunikációt, használhatunk digitális csatornákat szervo meghajtónak.

PÉLDA

Spherical Joystick - Arduino Processing Firmata

  

GSM 

GSM Shield Könyvtára, GSM/GRPS hálózathoz

Segítségével a legtöbb olyan műveletet végrehajthatjuk Arduinon, amit GSM telefonon: telefonhívást, SMS küldést és fogadást, és internetre csatlakoást GPRS hálózaton keresztül. A SoftwarerSerial Könyvtárral kommunikál az Arduino és a GSM shield modeme. 

PÉLDA

Video call using 3G/GPRS Shield for Arduino

 

LiquidCrystal 

LCD kijelző vezérléséhez 

A Hitachi HD44780 folyadékkristályos kijelző meghajtó IC hosszú időn keresztül uralta a piacot, mint a rendkívül populáris, kizárólag monokróm szöveg megjelenítésére alkalmas faxok, telefonok, lézernyomtatók, fénymásoló gépek kijelzőjének vezérlője. Mostanra hobbisták és gyors prototipizálók közkedvelt megoldásává vált a mikrokontrollerek alfanumerikus üzeneteinek megjelenítésére. Az IC által meghajtott kijelzők pár általános szabálynak felelnek meg. Egy karakter mindig 5 vízszintes és 8 függőleges pixelből áll. A leggyakoribb típus egy sorban 8 karakter megjelenítésére alkalmas (8 x 1), de létezik 16 x 2, 20 x 2 és 20 x 4-es is. A kijelzők készülhetnek LED-es, fluoreszcens, elektrolumineszcens háttérvilágítással, vagy anélkül. Az IC maga is egy mikrokontroller, ROM-jában 208 karakter térképét tárolja – japán verziója a kana, európai verziója nyugati és cirill ABC betűiből áll. A LiquidCrystal könyvtár a vezérlő IC instrukciós kódjait és kommunikációs protokollját implementálta pár könnyen használható függvény formájában.

PÉLDA

First Arduino Project 

 

SD 

SD kártyára íráshoz és kiolvasásához

Az SD Könyvtárat különböző fedpanelekkel használhatjuk. Támogatja a FAT16 és FAT32 fájlrendszereket, szabványos SD és SDHC kártyákon. Rövid fájl neveket használ (8.3 karakter). DE tartalmazhatják a mappa nevét is, ilyenkor / jelet használjunk: directory / filename.txt 

Az SD kártyák is SPI buszon kommunikálnak, amiket viszonylag könnyen és nagyon sokféleképpen hasznosíthatunk arduinos projektjeinkben (háttértár, hangfelvétel, lejátszás, adatrögzítés, GPS). Ezért modul használata nélkül is működnek, az SPI könyvtár FAT32 fájlendszerhez módosított verziójával. Az UNO boardon az SPI-hez tartozak a digitáls 11, 12, 13 pinek. A digitális 10 pin az SS ezt kimenenként meghagyjuk, és a digitális 7pint használja az ardunio és a wifi shield handshakeing-re ezért azt se használjuk.

PÉLDA 

Arduino Mp3 Player - Arduino Jukebox

  

Servo 

szervó motorok vezérléséhez

A szervomotorok olyan aktuátorok, melyek a visszacsatolás elvén működnek. A legegyszerűbb esetben a szervo tengelyét elfordító motor egy áttételen keresztül egy potmétert is elforgat, ami egy komparátor áramkör egyik bemenetéhez kapcsolódik. A komparátor egyszerű analóg integrált áramkör, amit legegyszerűbben úgy képzelhetünk el, mint egy mérleget. A szervo esetében a „mérleg” egyik oldalán a potméter – és így a tengely – állapota, a másik oldalán a szervo bemenetére adott feszültségszint a „súly”, a „mérleg nyelve” pedig a motor elfordulási irányát és erejét reprezentálja. Ily módon meghatározott feszültségszinteknek megfeleltethetők a motortengely állásának szögei. A Servo könyvtárral az Arduino PWM képes kimeneteit felhasználva, a csatlakoztatott szervomotorokat az elfordulás szögének megadásával irányíthatjuk. Miután a potméter nem képes a körbeforgásra, a megadható szögek 0 és 180 fok közé esnek és mindig egész számok.

Hobbi és modellezési célra három méretben szabványosították a szervokat. Alaptípusaikat tekintve megkülönböztetünk nagy nyomatékú és nagy sebességű motorokat. Mindegyikre jellemző, hogy három vezeték tartozik hozzájuk: föld (barna/fekete), táp (piros) és vezérlés (narancs/fehér).

PÉLDA

Arduino Wireless Animatronic Hand

The SM-1 Project Part 4, 5 and 6: Testing the Lamp

Arduino Uno + Accelerometres + Servos

 

Stepper 

sztepper motorok vezérléséhez

A léptetőmotorok olyan egyenáramú motorok, amiknek az állórésze több elektromágnest tartalmaz. A tengelyen elhelyezett aktív mágnest (forgórész) az egymás után szekvenciálisan be-/kikapcsolt elektromágnesek kis lépésekben elfordítják. Jelentőségük az, hogy visszacsatolás nélkül nagy pontosságú és apró lépésekből álló forgómozgást lehet velük elérni. Két alaptípust különböztetünk meg az elektromágnesek tekercseinek kivezetései alapján. Az unipoláris motorok esetén minden tekercs egyik vége közös vezetékként hagyja el a motor burkolatát, míg a bipoláris motorok esetén a tekercsek kivezetései szabadon állnak.

A tekercseket meghatározott rendben kell működtetni, hogy a felépülő mágneses tér négy lépésben fordítson a tengelyen. (A bipolásris léptető motort L293D vagy SN754410ne H-híddal vezérelhetjük)

A léptetőmotorokat leíró legfontosabb adat, hogy egy lépés alatt hány fokot fordulnak el. Egy 1,8 fok/lépés precizitású motor 200 lépésben fordul teljesen körbe, tehát a 14.1 táblázatban látható lépéseket fordulatonként 200-szor kell megismételni.

PÉLDA

stepper motor powered security door project

 

SPI 

Serial Peripheral Interface (SPI) Bus használata eszközök közötti kommunikációra

Az SPI (Serial Peripherial Interface) egy szinkron soros protokoll. Alapvető különbség az I2C-hez képest, hogy külön adatvonalat tart fenn a mestertől a szolga felé és az ellenkező irányú kommunikáció céljára, továbbá nem használ címzést, az egyetlen mester az eszközöket egyenként külön vonalakon engedélyezi. Mindezek együttesen egy gyorsabb soros adatátvitelt tesznek lehetővé a mikrokontroller és perifériái között. A közös adatvonalak a MISO (Master In Slave Out), amin keresztül a mester fogad adatokat, a MOSI (Master Out Slave In), amin a szolgák fogadnak adatokat és az SCK (Serial Clock) órajel a szinkronizáláshoz. Az eszközönként specifikus vonal az engedélyezéshez az SS (Slave Select). Amikor egy szolga SS vonala logikai alacsony szintre kerül, létrejön a kapcsolata a mesterrel, ha magas szinten tartjuk, akkor teljesen kimarad a buszon való kommunikációból, így nem zavarhatja a többi perifériát.

 

A nyílt fejlesztésű rendszernek és a közösségben együttműködő programozóknak köszönhetően az Arduinoval számtalan SPI alkatrész került implementálásra, és a könyvtár ebből a rutinból fakadóan rendelkezik olyan függvényekkel, amik megkönnyítik az új eszközök használatát. Mindazonáltal az SPI protokoll meglehetősen szabadon értelmezett az eszközgyártók körében, ezért, ha egy új alkatrészhez szeretnénk programot írni, akkor nézzük meg alaposan az adatlapját. 

Az SPI kivezetéseit megtalálhatjuk az Arduino alaplapján egy külön csatlakozón is, amit ICSP-nek (In Circuit Serial Programming) hívunk:

  

SoftwareSerial 

soros szoftveres kommunikáció bármelyik digitális pinen keresztül 

Az Arduino egyetlen fizikai soros porttal rendelkezik, ami az integrált port a 0-ás és 1-es digitális csatornákon kommunikál, ahol a számítógéphez USB átalakítóval is csatlakozik. 

A SoftwareSerial könyvtárral a fizikai feldolgozóegység terhére (UART) a többi digitális csatornán is létre lehet hozni soros kommunikációs felületeket. Segítségével egyszerre kapcsolódhatunk a számítógéphez és más soros eszközökhöz, kijelzőkhöz, digitális szenzorokhoz, vagy kialakíthatunk soros hálózatot több Arduino között. A szoftveres portok maximális sebessége is 115200 baud lehet, ráadásul megváltoztatható a jel polaritása, ami szélesíti a kompatibilis egységek spektrumát, azonban több port létrehozása esetén az adatok egyidejű fogadása nem lehetséges.

   

TFT 

Arduino TFT monitoron szöveg íráshoz, kép és formák megjelenítéséhez

Kétféleképpen lehet konfigurálni a kijelzőt. Az egyik hogy az Arduino SPI csatlakozóját használjuk, a másik lehetőség hogy a pineket egyenként kalibráljuk. A kettő között az a különbség hogy az SPI lényegesen gyorsabb. A képernyőn mindkét esetben ugyanazt látjuk. De ha SD kártyával összekötjük, mindenképp az SPI csatlakozót kell használnunk. Mint ahogy a TFT Könyvtárhasználata esetén is!

PÉLDA

TFT 2.2" SPI 240x320 Display w/ Arduino Nano

TFT LCD Acclerometer GRAPHING Arduino Project!

 

Wire 

Two Wire Interface (TWI/I2C) kommunikáció, adat küldés és fogadás eszközök hálózatára 

Az I2C, vagy más néven TWI (Two Wire Interface) egy soros buszrendszer, amit a Philips fejlesztett ki, hogy mikrokontrollerekhez alacsony sebességű perifériákat két vezeték használatával lehessen illeszteni. Ilyen eszközök például a Maxim által gyártott csatornabővítők (MAX6956 I2C-t 20 párhuzamos I/O csatornává alakít), LED meghajtók, adatátalakítók (pl. digitalizálók), Microchip által gyártott soros EEPROM-ok (legnagyobb 1Mbyte-os), vagy az NXP termékei: órák, memóriák, audio és video jelfeldolgozók, szintátalakítók. 

A buszokra általánosságban az a jellemző, hogy az eszközök megosztoznak az adatvezetékeken, ezért minden eszköznek rendelkeznie kell egy címmel, ami megkülönbözteti a többi buszhoz kapcsolt egységtől. Az I2C esetén a címzés eszköztől függően kétféle lehet, 7 vagy 8 bites. Az utóbbi esetben 7 bit a tényleges címet kódolja, míg a 8. bit arról ad információt, hogy a címen írás vagy olvasás folyik. A Wire könyvtár mindkét típust támogatja. Az adatvezetékeket rendre SDA (Serial Data) és SCL (Serial Clock) neveket viselik, míg az egyiken a szinkronitást fenntartó órajel, a másikon a szekvenciális adat jelenik meg bitenként. Az Arduino mikrokontrollere fizikailag tartalmaz csatolófelületet a buszhoz, aminek kivezetései UNO – és megelőző típusok – esetében az (analóg bemenetként is használható) A4 (SDA) és A5 (SCL).

Ezen a busztípuson kétféle eszköztípus, egy mester (Master) és a címek elfogyásáig tetszőleges mennyiségű szolga (slave) eszköz kommunikálhat. A mester eszköz az, aki adott címen végrehajthat írást vagy olvasást, a szolgák pedig, akik a mester parancsait követik.

A könyvtár alapbeállítása szerint a mester az Arduino, de ha könyvtár inicializálásakor címet adunk neki, akkor szolgaként is tudjuk használni – ez akkor lehet hasznunkra, ha olyan hálózatot szeretnénk építeni, amihez I2C eszközök is és több Arduino is csatlakozik.  

PÉLDA

ATmega8 (AVR) and I2C sensors.

 

 

forrás: http://arduino.cc/en/Reference/Libraries#.Uy7kX_l5N8F

 

cc-by-sa3s_1.jpg

Szólj hozzá!

Címkék: motorok shield könyvtárak stepper servo soros port LCD SD Wifi TFT Wire SPI GSM Ethernet Firmata EEPROM softwareserial TWI

2014.01.13.
12:23

Írta: harsanyireka

Arduino Prezi (BKF)

Fizikai számítástechnika, arduino - tananyag prezentáció

Szólj hozzá!

2013.11.13.
14:10

Írta: harsanyireka

Liquid Crystal Könyvtár használata

A példában 2x16 LCD kijelző szerepel. Háttérvilágítással rendelkezik. ROM-jában 208 karakter képét tárolja el. A Liquid Crystal könyvtárat használva könnyen programozható. Számokat, betűket, szimbólumokat is képes megjeleníteni.

Típusa: RC1602A

Adatlapján látható a lábak kiosztása, arra figyelj hogy nem sorban következnek!

(rst)_rc1602a.jpg

A kijelző csatolófelülete (interface), amihez kapcsolódhatunk egy párhuzamos interfész - a 8 bit-nyi adatot minden órajelre egyszerre kell megadni (D0-D7 lábak). Szerencsére szöveges üzenetekhez 4 bites üzemmódot is választhatunk, ami szabadon hagy 4 Arduino csatornát más célokra. Az RS (register select) láb logikai alacsonyra vagy magasra állításával választhatjuk, meg, hogy az adatvonalak a kijelző mely memóriaterületére írjanak. Az írást az EN (enable) lábbal engedélyezhetjük. Az adaregiszter tárolja az ASCII kódolású bájtokat, amik karakterként kerülnek megjelenítésre, az instrukciós regiszterben pedig utasítások tárolódnak a meghajtó számára. Ezek az utasítások a kijelző törlésére, a kurzor mozgatására és egyéb funkciókra vonatkoznak. A regiszterek állapotát vissza is olvashatjuk - az RW láb állapotának változtatásával megfordítható a D0-D7 adatvonalak iránya. A kijelző kontrasztját analóg módon a tápfeszültség leosztásával Vo lábon tudjuk beállítani (vagy digitális potméterrel). A háttérvilágítást annak típusától függően a kontraszthoz hasonló módon kezelhetjük. Megfelelő illesztéssel LED-es háttérvilágítást az Arduino egy PWM képes kimenetére is köthetjük, így programozhatóvá válik a fényerő állítása is.

       

Bekötése Arduinoval:

Egy 10 KOhm-os potmétert is kössünk be, ezzel tudjuk majd a háttérvilágítás erejét állítani.

Kössük az LCD RS lábát (ami a 4. számú) az Arduino digitális 12-es csatornájára, az EN lábát pedig a digitális 11-re. Az LCD 4-es, 5-ös, 6-os, 7-es adatvonalait (11, 12, 13, 14 lábak) pedig rendre az Arduino digitális 5,4,3,2 csatornákra. A 10k ohm-os potméterrel készítsünk feszültségosztót az 5V-os tápvezetékről és kössük be a potméter közepét az LCD kontrasztját szabályozó Vo lábra (3. számú). Az LCD 5V-os tápfeszültségről működik (GND, Vcc). RW-t (5. számú) kössük a földre!

IMG_4603.JPG

/////////

HELLO WORLD

 

IMG_4602.JPG

#include <LiquidCrystal.h>


// lcd nevű kijelző példány lábainak megadása RS,EN,D4,D5,D6,D7
////sorrendben

LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

void setup() {  

lcd.begin(16, 2);   // állítsuk be az oszlopok és sorok számát  
lcd.setCursor(0, 1); // első sor (0), első karakterére állítja a kurzort 
lcd.print("hello, world!");   // a szöveg kiírása
}

void loop() {}

 

SZINTAXISOK:

  • LiquidCrystal()

Létrehozza a kijelző egy példányát, ami 4 vagy 8 bites módban fog működni, attól függően, hogy a híváskor hány adatvonalat adunk meg.

Szintaxisa:

LiquidCrystal(RS, EN, D4, D5, D6, D7)

LiquidCrystal(RS, RW, EN, D4, D5, D6, D7)

LiquidCrystal(RS, EN, D0, D1, D2, D3, D4, D5, D6, D7)

LiquidCrystal(RS, RW, EN, D0, D1, D2, D3, D4, D5, D6, D7)

Paraméterei:

RS: Annak a digitális csatornának a száma amihez a REGISTER SELECT van kötve.

EN: Annak a digitális csatornának a száma amihez az ENABLE van kötve.

RW: Annak a digitális csatornának a száma amihez a READ/WRITE van kötve.

D0-D7: Azok a digitális csatornák amikhez az adatvonalak kapcsolódnak.

 

  • begin()

A kijelző méreteit, sorok és oszlopok számát határozza meg a könyvtár számára.

Szintaxisa:

lcd.begin(cols, rows)

Paraméterei:

lcd: a LiquidCrystal példány neve

cols: a kijelző oszlopainak száma

rows: a kijelző sorainak száma

 

  • clear()

Üresre törli az megjelenítendő karaktereket tartalmazó adatregisztert és a kijelzőt.

Szintaxisa:

lcd.clear()

Paramétere:

lcd: a LiquidCrystal példány neve

 

  • home()

A kurzort az első sor első karakterére - kijelző bal felső sarkába – mozgatja.

Szintaxisa:

lcd.home()

Paramétere:

lcd: a LiquidCrystal példány neve

 

  • setCursor()

A kurzort a megadott helyre mozgatja.

Szintaxisa:

lcd.setCursor(cols,rows)

Paraméterei:

lcd: a LiquidCrystal példány neve

cols: az oszlop ahová a kurzort mozgajtuk

rows: a sor ahová a kurzort mozgatjuk

 

  • write()

Egy bájtot vagyis karaktert ír ki a kijelzőre.

Szintaxisa:

lcd.write(data)

Paraméterei:

lcd: a LiquidCrystal példány neve

data: a megjelenítendő karakter ASCII kódja

  • print()

Szöveget jelenít meg a kijelzőn.

Szintaxisa:

lcd.print(data)

lcd.print(data, BASE)

Paraméterei:

lcd: a LiquidCrystal példány neve

data: char, byte, long, int, string – amit megjelenítünk

BASE: számrendszer alapja (opcionális) BIN, HEX, OCT, DEC

 

  • cursor()

Hívását követően egy alulvonástként megjeleníti a kurzort.

 

  • noCursor()

Hívását követően kikapcsolja a kurzor megjelenítését.

 

  • blink()

Ha a kurzor látható, akkor bekapcsolja a villogtatását.

 

  • noBlink()

Ha a kurzor látható, akkor kikapcsolja a villogtatását.

 

  • noDisplay()

Kikapcsolja a kijelzőt.

 

  • display()

Visszakapcsolja a kijelzőt, ha előtte a noDisplay() hívással ki volt kapcsolva és újra megjeleníti a szöveget ami a kikapcsolás pillanatában volt látható.

 

SZÖVEG GÖRGETÉSE

 

#include <LiquidCrystal.h> 


LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

void setup() {
lcd.begin(16, 2); // 16 karakter egy sorban
lcd.print("hello, world!"); // 13 karakterből álló szöveg 
delay(1000); 
}

void loop() {
// “letolja” a szöveget a kijelzőről balra
for (int positionCounter = 0; positionCounter < 13; positionCounter++) { 
lcd.scrollDisplayLeft();
delay(150); 
}

// 13 + 16 “letolja” a szöveget a kijelzőről jobbra 
for (int positionCounter = 0; positionCounter < 29; positionCounter++) { 
lcd.scrollDisplayRight();
delay(150); 
}delay(1000); 
}

 

  • scrollDisplayLeft()

Hívásakor egy karakterrel eltolja a kijelző teljes tartalmát balra.

 

  • scrollDisplayRight()

Hívásakor egy karakterrel eltolja a kijelző teljes tartalmát jobbra.

    

SZÖVEG AUTOMATIKUS GÖRGETÉSE

 

#include <LiquidCrystal.h>

// kijelző inicializálása
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

void setup() {
// oszlopok és sorok megadása
lcd.begin(16,2);
}

void loop() {
// kurzor a kezdő állapotban (0,0) - home() ugyanezt teszi
lcd.setCursor(0, 0);// kiírja a számokat 0-tól 9-ig
for (int thisChar = 0; thisChar < 10; thisChar++) {
lcd.print(thisChar);
delay(500);
}

// kurzort a második sor végére állítja (16,1)
lcd.setCursor(16,1);


// bekapcsolja az automatikus eltolást
lcd.autoscroll();// újra kinyomtatja a számokat 0-tól 9-ig
for (int thisChar = 0; thisChar < 10; thisChar++) {
lcd.print(thisChar);
delay(500);
}

// kikapcsolja az automatikus eltolást
lcd.noAutoscroll();


// letörli a kijelzőt
lcd.clear();
}

 

  • autoScroll()

Bekapcsolja a karakterek automatikus eltolását. Amikor egy új karaktert jelenítünk meg, a beállított iránynak megfelelően a már meglévő szöveget egy pozícióval elmozgatja.

 

  • noAutoscroll()

Kikapcsolja a karakterek automatikus eltolását.

 

  • leftToRight()

Az automatikus karakter eltolás irányának beállítása, balról jobbra.

 

  • rightToLeft()

Az automatikus karakter eltolás irányának beállítása, jobbról balra.

 

KARAKTER KIRAJZOLÁSA

 

#include <LiquidCrystal.h>

LiquidCrystal lcd(12, 11, 5, 4, 3, 2);


byte smiley[8] = {
B00000,
B10001,
B00000,
B00000,
B10001,
B01110,
B00000,};

void setup() {
lcd.createChar(1, smiley);
lcd.begin(16, 2);
lcd.write(1);
}

void loop() {}

  • createChar()

Segítségével létrehozhatunk olyan karaktereket, amit nem tartalmaz a ROM. Ezeket az 5x8 pontból álló jeleket glyph-nek is szokás nevezni. A vezérlő 8 különféle glyph-et tud eltárolni a létrehozása után.

Szintaxisa:

lcd.createChar(num, data)

Paraméterei:

lcd: a LiquidCrystal példány neve

num: 0-7 a glyph száma, amelyik pozíción tárolni szeretnénk

data: a karakter pixeleit tartalmazó tömb

 

--------------------------------------------------------------------

--------------------------------------------------------------

Bővebben az LCD kijelzőkről itt: http://www.hobbielektronika.hu/cikkek/az_intelligens_lcd_modulok_hasznalata_-_i_resz.html

Szólj hozzá!

Címkék: hivatkozások leckék LCD Hello World Liquid Crystal

süti beállítások módosítása