5. Arduino – LED spilgtuma maiņa un RGB LED

Elektronika – Arduino – LED spilgtuma maiņa un RGB LED

Arduino 5. nodarbība

Šajā nodarbībā iemācīsimies kā izmantot Arduino digitālos PWM pinus, lai mainītu strāvas spriegumu, tā izmainot gaismas diodes spilgtumu. Iepazīsimies ar 3-krāsu gaismas diodēm (RGB LED).

Digitālā PWM ieeja/izeja

PWM (Pulse Width Modulation) ir Signāla ilguma modulācija, kur mainot 5V un 0V ilguma attiecību, iegūst dažādus strāvas spriegumus no 0V – 5V.
Digitālie PWM pini uz Nano ir D3, D5, D6, D9, D10, D11, un uz Uno attiecīgi ~3, ~5, ~6, ~9, ~10, ~11.

Nepieciešamie komponenti

  1. Arduino kontrolieris (piem. Uno, Nano) ar USB kabeli
  2. Bredbords 400 punktu Half+
  3. Savienošanas vadi 10cm male-male 4 gab
  4. LED gaismas diode 1 gab.
  5. 3-krāsu LED gaismas diode 1 gab.
  6. Rezistori 330Ω 1 gab.

Slēgums

Gaismas diodes (-) slēdzam caur rezistoru pie – (GND), bet (+) pie digitālā PWM pina  D9 (vai ~9).

Programma

Kodu var atvērt no:
Fails – Piemēri – 01. Basics – Fade

int led = 9; // PWM pins LED pievienošanai
int brightness = 0; // uzstāda led sākuma spilgtumu
int fadeAmount = 5; // par cik punktiem mainās spilgtums
void setup() {
 pinMode(led, OUTPUT); // uzstāda led pinu kā izejošo
}
void loop() { // Sāk ciklu, kas izpildās atkal un atkal
 analogWrite(led, brightness); // uzstāda led pina spilgtumu
 brightness = brightness + fadeAmount; // palielina spilgtuma vērtību
 if (brightness <= 0 || brightness >= 255) { // maina spilgtuma virzienu
 fadeAmount = -fadeAmount; // samazina spilgtuma vērtību
 } 
 delay(30);
}

Augšupielādējam kodu.
Gaismas diodes spilgtumam ir jāmainās uz gaišāku un tumšāku.

3-krāsu gaismas diode (RGB LED)

RGB LED ir gaismas diodes, kuras sastāv no 3 atsevišķām gaismas diodēm – sarkanās (R), zaļās (G) un zilās (B), kurām ir kopējs katods (-) vai anods (+).

Slēgums 2

Pieslēdzam 3-krāsu gaismas diodes garāko kāju (-) caur rezistoru pie – (GND), bet pārējās 3 kājas pie digitālajiem PWM piniem – D9, D10 un D11 (vai ~9, ~10 un ~11).

Sākumā mēģināsim iegūt pēc kārtas dažādas krāsas pilnā spilgtumā – sarkanu, dzeltenu, zaļu, gaiši zilu, tumši zilu, violetu un baltu. Katru 2 sekundes.

const int ledR = 9; // sarkanās krāsas digitālā pina nr.
const int ledG = 10; // zaļās krāsas digitālā pina nr.
const int ledB = 11; // zilās krāsas digitālā pina nr.
void setup() {
 pinMode(ledR, OUTPUT); //uzstāda ledR pinu kā izejošo
 pinMode(ledG, OUTPUT); //uzstāda ledG pinu kā izejošo
 pinMode(ledB, OUTPUT); //uzstāda ledB pinu kā izejošo
}
void loop() {
 digitalWrite(ledR, HIGH); // iededz ledR, sarkans
 delay(2000); // gaida 2 sekundes
 digitalWrite(ledG, HIGH); // iededz ledG, kopā dzeltens
 delay(2000); // gaida 2 sekundes
 digitalWrite(ledR, LOW); // izslēdz ledR, paliek zaļš
 delay(2000); // gaida 2 sekundes
 digitalWrite(ledB, HIGH); // iededz ledB, kopā gaiši zils
 delay(2000); // gaida 2 sekundes
 digitalWrite(ledG, LOW); // izslēdz ledR, paliek zils
 delay(2000); // gaida 2 sekundes
 digitalWrite(ledR, HIGH); // iededz ledR, kopā violets
 delay(2000); // gaida 2 sekundes
 digitalWrite(ledG, HIGH); // iededz ledG un ledB
 digitalWrite(ledB, HIGH); // kopā balts
 delay(2000); // gaida 2 sekundes
 digitalWrite(ledR, LOW); // izslēdz ledR
 digitalWrite(ledG, LOW); // izslēdz ledG
 digitalWrite(ledB, LOW); // izslēdz ledB
 delay(2000); // gaida 2 sekundes
}

Atbildēt