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.)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.
int dati = analogRead(A0);[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]
Virtuālajā vidē atrodiet potenciometru un pareizi savienojiet tā 3 kājiņas ar Arduino plati.
Uzrakstiet kodu, kas nolasa potenciometra pozīciju un drukā šos ciparus (0-1023) Serial Monitor ekrānā.
setup() ierakstiet komandu saziņai ar datoru: Serial.begin(9600); (Analogajiem portiem nevajag pinMode).loop() izveidojiet mainīgo nolasīšanai: int sensoraVertiba = analogRead(A0);Serial.println(sensoraVertiba); un pievienojiet delay(50);.Pievienojiet LED diodi un izmantojiet potenciometru, lai plūstoši regulētu tās spilgtumu (no pilnīgas tumsas līdz maksimālai gaismai).
setup() pievienojiet: pinMode(9, OUTPUT);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;analogWrite(9, gaisma);. Palaidiet simulāciju un grieziet kloķi!Ā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).
If ... Else If ... Else loģiku, izveidojiet nosacījumus:digitalWrite (kas saprot tikai Ieslēgt/Izslēgt) komandas analogWrite vietā. Vai arī jūs pievienojāt LED pie porta bez tildes (piemēram, 8 vai 13), kas neprot simulēt analogo spriegumu.
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
}