Tässä projektissa aiomme liittää LDR: n ATMEGA8-mikrokontrolleriin, ja tämän avulla voimme mitata valon voimakkuutta alueella. ATMEGA8: ssa aiomme käyttää 10-bittistä ADC (analoginen digitaalimuunnos) -ominaisuutta valon voimakkuuden mittaamiseen.
Am LDR on anturi, joka muuttaa vastuksensa, kun LIGHT putoaa sen pinnalle. LDR-anturia on saatavana erikokoisina ja muotoisina.
LDR: t on valmistettu puolijohdemateriaaleista, jotta niillä olisi valoherkät ominaisuudet. Materiaaleja on monenlaisia, mutta suosittu on CADMIUM SULFID (CdS). Nämä LDR: t tai VALOREKISTORIT toimivat "Photo Conductivity" -periaatteella. Tämän periaatteen mukaan on aina, kun valo putoaa LDR: n pinnalle (tässä tapauksessa) elementin johtokyky kasvaa tai toisin sanoen LDR: n vastus pienenee, kun valo putoaa LDR: n pinnalle. Tämä LDR-resistanssin vähenemisen ominaisuus saavutetaan, koska se on pinnalla käytetyn puolijohdemateriaalin ominaisuus. LDR: ää käytetään useimmiten valon läsnäolon havaitsemiseen tai valon voimakkuuden mittaamiseen.
LDR-tyyppejä on erityyppisiä, kuten yllä olevassa kuvassa on esitetty, ja kullakin on erilaiset spesifikaatiot. Tyypillisesti LDR: llä on 1MΩ-2MΩ pimeässä, 10-20KΩ 10 LUX: lla, 2-5KΩ 100 LUX: lla. LDR: n tyypillinen resistenssi LUX-käyrälle on esitetty kuvassa.
Kuten yllä olevassa kuvassa on esitetty, anturin kahden koskettimen välinen vastus pienenee valon voimakkuudella tai anturin kahden koskettimen välinen johtavuus kasvaa.
Nyt muuntamalla tämä vastuksen muutos jännitteen muutokseen aiomme käyttää jännitteenjakajan piiriä. Tässä resistiivisessä verkossa meillä on yksi vakio vastus ja muu vastus muuttuva. Kuten kuvassa on esitetty, R1 on tässä vakiovastus ja R2 on FORCE-anturi, joka toimii vastuksena.
Haaran keskipiste mitataan. Kun vastus R2 muuttuu, Vout muuttuu sen kanssa lineaarisesti. Joten tällä on jännite, joka muuttuu painon mukaan.
Nyt on tärkeää huomata, että ohjaimen ottama ADC-muunnos on vain 50µAmp. Tämä vastusperusteisen jännitteenjakajan kuormitusvaikutus on tärkeä, koska jännitteenjakajan Voutista otettu virta lisää virheprosentin kasvua, toistaiseksi meidän ei tarvitse huolehtia kuormitusvaikutuksesta.
Mitä aiomme tehdä tässä, on, että aiomme ottaa kaksi vastusta ja muodostaa jakajapiirin siten, että 25 V: n Vin: lle saamme 5 V: n Voutin. Joten meidän on vain kerrottava Vout-arvo luvulla 5, jotta saadaan todellinen tulojännite.
Komponentit
Laitteisto: ATMEGA8, virtalähde (5v), AVR-ISP-OHJELMOINTI, JHD_162ALCD (16 * 2LCD), 100uF kondensaattori, 100nF kondensaattori (5 kpl), 10KΩ vastus, LDR (valosäteilevä vastus).
Ohjelmisto: Atmel studio 6.1, progisp tai flash magic.
Piirikaavio ja selitys
Piirissä ATMEGA8: n PORTD on kytketty dataportin LCD-näyttöön. 16 * 2 LCD-näytössä on kaikkiaan 16 nastaa, jos taustavaloa on, jos taustavaloa ei ole, on 14 nastaa. Voidaan kytkeä päälle tai jättää taustavalon nastat. Nyt 14 nastat on 8 data nastat (7-14 tai D0-D7), 2 virtalähde nastat (1 & 2 tai VSS ja VDD tai GND ja + 5V), 3 rd pin kontrastin säätö (VEE-ohjaimet kuinka paksu merkkien pitäisi olla kuvassa) ja 3 ohjaintappia (RS & RW & E)
Piirissä voit havaita, että olen ottanut vain kaksi ohjaintappia. Kontrastibittiä ja LUKU / KIRJOITA ei käytetä usein, joten ne voidaan oikosulkea maahan. Tämä asettaa LCD-näytön suurimmalle kontrastille ja lukutilaan. Meidän on vain hallittava ENABLE- ja RS-nastoja merkkien ja tietojen lähettämiseksi vastaavasti.
Liitännät LCD ovat seuraavat:
PIN1 tai VSS ------------------ maa
PIN2 tai VDD tai VCC ------------ + 5v teho
PIN3 tai VEE --------------- maa (antaa maksimaalisen kontrastin parhaiten aloittelijalle)
PIN4 tai RS (Rekisterivalinta) --------------- u0: n PB0
PIN5 tai RW (luku / kirjoitus) ----------------- maa (LCD-näytön asettaminen lukutilaan helpottaa viestintää käyttäjälle)
PIN6 tai E (käytössä) ------------------- u1: n PB1
PIN7 tai D0 ----------------------------- PD0 uC: stä
PIN8 tai D1 ----------------------------- PD1 uC: stä
PIN9 tai D2 ----------------------------- PD2 uC: stä
PIN10 tai D3 ----------------------------- PD3 uC: stä
PIN11 tai D4 ----------------------------- u4: n PD4
PIN12 tai D5 ----------------------------- PD5 uC: stä
PIN13 tai D6 - uC: n PD6
PIN14 tai D7 ----------------------------- PD7 uC: stä
Piirissä näet, että olemme käyttäneet 8-bittistä tiedonsiirtoa (D0-D7), mutta tämä ei ole pakollista, voimme käyttää 4-bittistä tiedonsiirtoa (D4-D7), mutta 4-bittisellä viestintäohjelmalla tulee vähän monimutkainen. Joten pelkästä havainnosta taulukon yläpuolelta yhdistämme 10 LCD-nastaa ohjaimeen, jossa 8 nastaa ovat datanastoja ja 2 nastaa ohjaukseen.
R2: n jännite ei ole täysin lineaarinen; se on meluisa. Suodattamiseksi kohinakondensaattorit sijoitetaan jakajapiirin kunkin vastuksen yli kuvan osoittamalla tavalla.
ATMEGA8: ssa voimme antaa analogisen tulon mille tahansa PORTC: n NELJÄN kanavasta, sillä ei ole väliä minkä kanavan valitsemme, koska kaikki ovat samat. Valitsemme PORTC: n kanavan 0 tai PIN0. ATMEGA8: ssa ADC: n resoluutio on 10 bittiä, joten ohjain pystyy havaitsemaan pienimmän muutoksen Vref / 2 ^ 10, joten jos referenssijännite on 5 V, saamme digitaalisen lähdön lisäyksen jokaista 5/2 ^ 10 = 5mV kohden. Joten jokaista 5mV: n lisäystä kohti tuloa meillä on yhden lisäys digitaalisessa lähdössä.
Nyt meidän on määritettävä ADC-rekisteri seuraavien ehtojen perusteella:
1. Ensinnäkin meidän on otettava ADC-ominaisuus käyttöön ADC: ssä.
2. Täältä saadaan enimmäistulojännite ADC-muunnokselle + 5V. Joten voimme asettaa ADC: n maksimiarvon tai viitteen 5V: iin.
3. Ohjaimessa on liipaisimen muunnosominaisuus, joka tarkoittaa, että ADC-muunnos tapahtuu vasta ulkoisen liipaisun jälkeen, koska emme halua, että meidän on asetettava rekisterit ADC: lle toimimaan jatkuvassa vapaassa käynnissä.
4. Minkä tahansa ADC: n muuntotiheys (analoginen arvo digitaaliarvoon) ja digitaalisen lähdön tarkkuus ovat kääntäen verrannollisia. Joten digitaalisen lähdön tarkkuuden parantamiseksi meidän on valittava pienempi taajuus. Normaalille ADC-kellolle asetamme ADC: n esiasetuksen maksimiarvoon (2). Koska käytämme 1 MHz: n sisäistä kelloa, ADC: n kello on (1000000/2).
Nämä ovat ainoat neljä asiaa, jotka meidän on tiedettävä aloittaa ADC.
Kaikki yllä olevat neljä ominaisuutta on asetettu kahdella rekisterillä,
PUNAINEN (ADEN): Tämä bitti on asetettava, jotta ATMEGA: n ADC-ominaisuus voidaan ottaa käyttöön.
SININEN (REFS1, REFS0): Näitä kahta bittiä käytetään asettamaan referenssijännite (tai maksimi tulojännite, jonka annamme). Koska haluamme referenssijännitteen 5 V, REFS0 tulisi asettaa taulukon mukaan.
KELTAINEN (ADFR): Tämä bitti on asetettava, jotta ADC toimii jatkuvasti (vapaakäyttötila).
PINK (MUX0-MUX3): Nämä neljä bittiä ovat tulokanavan kertomiseen. Koska aiomme käyttää ADC0: ta tai PIN0: ta, meidän ei tarvitse asettaa yhtään bittiä kuten taulukossa.
RUSKEA (ADPS0-ADPS2): nämä kolme bittiä määrittävät ADC: n esiasteen. Koska käytämme 2: n esiastetta, meidän on asetettava yksi bitti.
TUMMA VIHREÄ (ADSC): tämä bitti asetettiin ADC: lle muuntamisen aloittamiseksi. Tämä bitti voidaan poistaa käytöstä ohjelmassa, kun muunnos on lopetettava.
Joten LDR-vastuksen ollessa 16x2 LCD-näytöllä voimme sovittaa sen LUX-kuvaajan kanssa valon voimakkuuden saamiseksi.