8. tēma: Analogie signāli, sprieguma dalītāji un mainīgās vērtības

Tavs šīs stundas izaicinājums: Pieslēgt potenciometru, izprast analogo datu nolasīšanu (no 0 līdz 1023) un izmantot iegūtos datus, lai plūstoši mainītu LED diodes spilgtumu.

Datorika 7. klase (D.7.2.1., D.7.4.1., D.7.6.1.)

Teorija: Melnbaltā un krāsainā pasaule (Digitāls pret Analogu)

Līdz šim mēs izmantojām pogas (Digitāls signāls), kas deva tikai divas vērtības – 0 (LOW) vai 1 (HIGH). Bet reālā pasaule nav tikai melnbalta! Kā izmērīt temperatūru, gaismas spilgtumu vai pagriezt skaļuma kloķi? Tam nepieciešami analogie signāli.

[Ievietot attēlu šeit: Ekrānuzņēmums no Tinkercad ar potenciometru, kura vidējā kāja savienota ar A0 pinu, un bultiņām uz 5V un GND]

1. uzdevums: Potenciometra pieslēgšana

Virtuālajā vidē atrodiet potenciometru un pareizi savienojiet tā 3 kājiņas ar Arduino plati.

Izpildes soļi:

  1. Izveidojiet jaunu Tinkercad projektu ar Arduino un maketo plati (savienojiet 5V un GND līnijas).
  2. Atrodiet "Potentiometer" un novietojiet to uz maketo plates.
  3. Kreiso kājiņu (Terminal 1) savienojiet ar melno GND (-) līniju.
  4. Labo kājiņu (Terminal 2) savienojiet ar sarkano 5V (+) līniju.
  5. Svarīgi: Vidējo kājiņu (Wiper) savienojiet ar vadu pie Arduino A0 portu (atrodas plates apakšā).

2. uzdevums: Analogo datu nolasīšana

Uzrakstiet kodu, kas nolasa potenciometra pozīciju un drukā šos ciparus (0-1023) Serial Monitor ekrānā.

Izpildes soļi:

  1. Koda (Text) skatā setup() ierakstiet komandu saziņai ar datoru: Serial.begin(9600); (Analogajiem portiem nevajag pinMode).
  2. loop() izveidojiet mainīgo nolasīšanai: int sensoraVertiba = analogRead(A0);
  3. Izvadiet vērtību ekrānā: Serial.println(sensoraVertiba); un pievienojiet delay(50);.
  4. Palaidiet simulāciju, atveriet Serial Monitor un ar peli pagrieziet potenciometra kloķi! Vērojiet, kā mainās skaitļi.

3. uzdevums: LED spilgtuma regulēšana (Dimmer)

Pievienojiet LED diodi un izmantojiet potenciometru, lai plūstoši regulētu tās spilgtumu (no pilnīgas tumsas līdz maksimālai gaismai).

Izpildes soļi:

  1. Pievienojiet maketo platei LED diodi ar rezistoru (220 Ω) un savienojiet to ar Arduino 9. portu (tam blakus ir ~ zīme!).
  2. setup() pievienojiet: pinMode(9, OUTPUT);
  3. loop() mums sensora rādījums (0-1023) jāpārvērš gaismas formātā (0-255). Izdalīsim rādījumu ar 4! Rakstiet: int gaisma = sensoraVertiba / 4;
  4. Ieslēdziet gaismu ar mainīgu spēku: analogWrite(9, gaisma);. Palaidiet simulāciju un grieziet kloķi!

4. uzdevums (Zvaigznītes izaicinājums): Instrumentu panelis ar sliekšņiem

Ātrākajām komandām – izveidojiet programmu, kur trīs dažādas LED diodes iedegas atkarībā no potenciometra pozīcijas (kā skaļuma indikatoram).

Izpildes soļi:

  1. Pievienojiet vēl divas LED diodes (piemēram, pie 10. un 11. porta).
  2. Izmantojot If ... Else If ... Else loģiku, izveidojiet nosacījumus:
  3. Ja sensora vērtība ir mazāka par 300, deg tikai pirmā diode.
  4. Ja vērtība ir starp 300 un 700, deg pirmā un otrā diode.
  5. Ja vērtība ir lielāka par 700, deg visas trīs diodes.

Biežākās kļūdas (un kā tās labot):

Koda piemērs (LED spilgtuma regulēšana)


int potPin = A0;  // Potenciometra pieslēgvieta
int ledPin = 9;   // LED pieslēgvieta (OBLIGĀTI ar ~ zīmi)

void setup() {
  Serial.begin(9600);
  pinMode(ledPin, OUTPUT);
}

void loop() {
  // 1. Nolasa potenciometra stāvokli (0 līdz 1023)
  int sensoraVertiba = analogRead(potPin);
  
  // 2. Pielāgo matemātiku (Dalām ar 4, lai iegūtu skaitli no 0 līdz ~255)
  int spilgtums = sensoraVertiba / 4;
  
  // 3. Izdrukā datus pārbaudei
  Serial.println(spilgtums);
  
  // 4. Padod mainīgu spriegumu uz LED diodi
  analogWrite(ledPin, spilgtums);
  
  delay(15); // Neliela pauzīte stabilitātei
}
        
Griežot potenciometru simulācijā, LED diode pakāpeniski kļūs gaišāka vai tumšāka, atspoguļojot reālu analogo ierīču (kā apgaismojuma reostatu) darbības principu.
⬅ Iepriekšējā stunda Nākamā stunda ➡