2.3 Analogno čitanje fotootpornika
Cilj ovog primjera je pokazati ti kako mjeriti jačinu svjetla pomoću fotootpornika (LDR) spojenog na jedan od analognih ulaznih pinova na NULA MINI pločici.
Naučit ćeš kako koristiti funkciju analogRead() za čitanje kontinuiranog raspona vrijednosti umjesto običnih UKLJUČENO/ISKLJUČENO signala.
Ovo je tvoj prvi korak u svijet analognog ulaza, nužan za senzore kao što su senzori svjetla, temperature ili zvuka.
U ovoj dokumentaciji naučit ćeš:
- Kako se analogni ulazi razlikuju od digitalnih.
- Kako spojiti fotootpornik na NULA MINI pločicu.
- Kako čitati analogne vrijednosti pomoću
analogRead(). - Kako prikazati vrijednosti jačine svjetla u Serial Monitoru.
Potreban hardver:
- 1x Soldered NULA MINI pločica
- 1x Breadboard
- 1x Fotootpornik (LDR)
- 1x otpornik od 10 kΩ
- 4x Jumper žice
- 1x USB-C kabel
Spajanje komponenti
Prati sedam koraka ispod. Svaka fotografija snimljena je s istog položaja, pa je možeš usporediti s prethodnom i vidjeti točno što se promijenilo.
1. Umetni NULA MINI pločicu na breadboard
Utisni pločicu u jedan kraj breadboarda tako da njezina dva reda pinova sjednu s obje strane središnjeg kanala, s čipom okrenutim prema dolje.

2. Izvedi napajanje i masu
Prvo dvije jumper žice, da krug ima između čega sjediti.
- Iz j30 (
GND) do plave − vodilice. Ta vodilica postaje tvoja linija mase. - Iz j29 (
3V3) gore u red 14.

3. Dodaj fotootpornik
LDR premošćuje red 14, u koji sada dolazi 3.3 V, i red 11.

4. Dodaj otpornik od 10 kΩ
Otpornik nastavlja lanac prema dolje: iz reda 11 u red 9.

5. Spoji otpornik na masu
Jedna jumper žica iz reda 9 do plave − vodilice, koja je već spojena na GND.

Lanac je sada potpun: 3.3 V → LDR → 10 kΩ → GND. Struja teče kroz oba dijela serijski.
6. Zahvati sredinu pomoću IO5
Sada samo mjerenje. Povuci jumper žicu iz j28 (IO5) u red 11, red koji dijele donja nožica LDR-a i gornji izvod otpornika.

IO5 mjeri.7. Spoji pločicu na računalo

IO5 zahvaća red u kojem se spajaju.Kako radi djelitelj napona
Pločica ne može mjeriti otpor. Može mjeriti samo napon. Fotootpornik mijenja svoj otpor sa svjetlom, pa sam za sebe pločici ne daje ništa za čitanje.
Spajanje s fiksnim otpornikom to rješava. Ta dva otpornika u seriji tvore djelitelj napona, a napon u točki između njih ovisi o odnosu dva otpora:
- Na jakom svjetlu otpor LDR-a pada, pa zadržava manje od 3.3 V za sebe i napon na
IO5raste. - U tami otpor LDR-a raste, zadržava veći dio napona, a vrijednost na
IO5pada.
Zato je fiksni otpornik važan koliko i senzor: bez njega nema središnje točke koja bi se mogla mjeriti.
Razumijevanje analognog ulaza
Za razliku od digitalnih pinova koji čitaju samo HIGH (1) ili LOW (0), analogni pinovi mogu mjeriti kontinuirani raspon napona između 0V i 3.3V.
ADC (Analog-to-Digital Converter) unutar NULA MINI pretvara te napone u brojeve između 0 i 4095, jer koristi 12-bitni ADC.
| Uvjeti osvjetljenja | Približna vrijednost |
|---|---|
| Jako svjetlo | 3000–4095 |
| Srednje svjetlo | 1500–3000 |
| Tama | 0–1500 |
Kod
/*
Ovo je varijabla kojoj dodjeljujemo broj pina na koji smo spojili izlaz fotootpornika.
NULA MINI pločica za čitanje promjenjivih napona koristi pinove sposobne za analogni ulaz (ADC pinove).
U ovom primjeru koristit ćemo IO5, koji podržava analogni ulaz.
*/
const int LDR_PIN = 5; // Analogni ulazni pin za fotootpornik
/*
Ova varijabla čuvat će sirovu analognu vrijednost pročitanu sa senzora.
Budući da NULA pločica koristi 12-bitni ADC, vraćena vrijednost bit će u rasponu od 0 do 4095.
*/
int lightValue = 0;
void setup() {
/*
Serial.begin() pokreće serijsku komunikaciju između pločice i računala.
Koristimo ga za prikaz izmjerenih vrijednosti u Serial Monitoru.
*/
Serial.begin(115200);
/*
analogReadResolution() definira koliko se bitova koristi za ADC vrijednosti.
NULA MINI podržava 12-bitnu rezoluciju, što znači da analogRead() vraća vrijednosti od 0 do 4095.
*/
analogReadResolution(12);
/*
Ispiši početnu poruku da potvrdimo da program radi.
*/
Serial.println("Cover or shine light on the sensor to see value changes...");
}
void loop() {
/*
analogRead() čita napon na zadanom analognom pinu i pretvara ga u digitalni broj.
Što je jačina svjetla veća, to je otpor fotootpornika manji, a izmjereni napon veći.
*/
lightValue = analogRead(LDR_PIN);
/*
Ispiši izmjerenu vrijednost u Serial Monitor.
*/
Serial.print("Light level: ");
Serial.println(lightValue);
/*
Dodaj kratku pauzu da se vrijednosti lakše promatraju.
*/
delay(500);
}
Što bi trebao vidjeti
Prenesi skicu, pa otvori Tools → Serial Monitor i postavi baud rate na 115200. Nova vrijednost pojavljuje se dvaput u sekundi.
Sada stavi ruku preko senzora i gledaj kako brojevi padaju.

IO5 stvarno zahvaća red spoja, a ne jedan od vanjskih redova.Cijeli primjer
Pogledaj cijeli kod primjera na linku ispod:
2.3_Photoresistor_Analog_Read.ino
Primjer koji pokazuje kako čitati analogne vrijednosti s fotootpornika i prikazati razine svjetla u Serial Monitoru.