Viivakoodinlukija

Viivakoodinlukija tai viivakoodiskanneri on elektroninen lukulaite paperisten viivakoodien lukemiseen. Kuten tavallisessa skannerissa, siinä on valo, usein laser tai LED sekä kamera, joka muuttaa valonsäteet elektronisiksi signaaleiksi. Lähes kaikissa lukijoissa on myös dekooderi, joka etsii kuvasta viivakoodeja ja lähettää niiden sisällön esimerkiksi tietokoneelle. Jos lukijassa ei ole dekooderia, tietokoneelle lähetetään otetut kuvat kokonaisuudessaan ja tietokoneen suoritin etsii ja tulkitsee viivakoodit.

Viivakoodinlukijakynät

Viivakoodinlukijakynien päässä on valonlähde ja fotodiodi. Viivakoodin lukemiseksi käyttäjän on liu'utettava kynä koodin yli tasaisella nopeudella. Fotodiodi mittaa viivakoodista takaisin heijastuneen valon määrän ja muodostaa aaltomuodon jonka avulla voidaan mitata mustien ja vaaleiden palkkien leveys. Mustat palkit eivät heijasta juurikaan valoa, mutta valkoiset heijastavat, joten fotodiodin antama jännitteen aaltomuoto vastaa valkoisten ja mustien palkkien yhdistelmää viivakoodissa. Tämä aaltomuoto voidaan purkaa lukijassa samalla tavalla kuin morsen aakkoset.

Laserskannerit

Laserskannerit toimivat kuten viivakoodinlukijakynät, mutta niissä käytetään lasersädettä valonlähteenä ja ne käyttävät tytypillisesti joko liikkuvaa peiliä tai pyörivää prismaa siirtääkseen lasersädettä edestakaisin viivakoodin päällä. Kuten viivakoodinlukijakynässä, fotodiodi mittaa takaisin heijastuneen valon määrän. Sekä viivakoodinlukijakynässä että laserskannerissa lukijan päästämän valon kirkkaus vaihtelee nopeasti, koska vastaanottajapiiri on suunniteltu havaitsemaan vain tietyllä tavalla moduloituja signaaleja.

CCD-viivakoodinlukijat

CCD-lukijat käyttävät satojen pienenpienten valosensoreiden kennoa viivakoodien lukemiseen. Jokainen sensori havaitsee siihen edestä tulevan valon intensiteetin. Laserskannerin ja CCD-lukijan tärkein ero on se, että CCD-lukija havaitsee koodista heijastuvan taustavalon määrän, laserskanneri taas vain valon joka on peräisin skannerista itsestään.

Kameraan perustuvat lukijat

Kameraan perustuvat viivakoodinlukijat ovat viivakoodinlukijoiden uusin tyyppi. Ne sisältävät pienen digitaalikameran, joka ottaa kuvan viivakoodista. Sitten lukija käyttää pitkälle kehittyneitä kuvankäsittelymenetelmiä viivakoodin dekoodaamiseen. Tekniikka on muuten sama kuin CCD-viivakoodinlukijoissa, paitsi että CCD-lukijoissa valosensoreita on vierekkäin vain yksi rivi, kameraan perustuvissa lukijoissa on satoja sensoririvejä päällekkäin, eli ne siis ottavat viivakoodista kaksiulotteisen kuvan.

Monisädelukijat

Melkein kaikki monisädelukijat käyttävät laseria. Toisin kuin tavallisessa laserskannerissa, niissä käytetään useita erisuuntaisia laserraitoja viivakoodin lukemiseen. Tämä mahdollistaa monissa eri suunnissa ja asennoissa olevien viivakoodien skannaamisen skanneria liikuttamatta.
Monisädelukijat ovat yleisin lukijatyyppi päivittäistavarakaupoissa, missä tuotteet liu'utetaan lasisen ikkunan vierestä, jonka takana olevassa laatikossa lukija sijaitsee.

Matkapuhelimien kamerat

Moniin matkapuhelimiin on saatavissa ohjelmia jotka ottavat matkapuhelimen kameralla videokuvaa ja viivakoodin siitä löytäessään tulkitsevat sen tekstiksi. Monet tällaiset ohjelmistot soveltuvat vain kaksiulotteisten viivakoodien skannaamiseen.

Sarjaportti

Vanhemmat viivakoodinlukijat käyttivät lähes aina silloin yleistä RS232-sarjaporttia. Se oli erittäin yksinkertainen, joten myös oli yksinkertaista kirjoittaa ohjelma, joka kuunteli sitä, mutta ohjelma piti kirjoittaa jokaiselle erilaiselle tietokoneelle erikseen.

Keyboard-wedge

Kun PC-tietokoneet ja niiden standardisoitu näppäimistönkytkentärajapinta yleistyi, myös viivakoodinlukijoiden kytkeminen tietokoneisiin helpottui. Viivakoodinlukija voitiin kytkeä PS/2-näppäimistöporttiin tietokoneen ja näppäimistön väliin, ja kun viivakoodi skannattiin, merkit siirtyivät tietokoneelle aivan kuin näppäimistöllä kirjoitettuina.

USB

Uusimmat viivakoodinlukijat käyttävät usein USB-porttia näppäimistöliitännän sijaan, ja tästä tuli helpompi vaihtoehto. Yhteensopivuuden säilyttämiseksi vanhempien ohjelmien kanssa käytetään "software wedge":ksi kutsuttua laitteistoajuria näppäintenpainallusten emulointiin.