Instrukcijas (TinyLab)
Video + programmēšanas pamati + eksperimenti ar Arduino UNO un TinyLab komponentēm.
Video: Kā ielādēt Arduino IDE
Kad IDE ir uzinstalēts, ej zemāk pie “Programmēšanas pamati” un eksperimentiem.
Programmēšanas pamati (Arduino)
Tu raksti programmu Arduino IDE un spied Upload. Tad kods tiek ielādēts Arduino platei, un tā sāk strādāt arī bez datora (kamēr ir barošana).
2) setup() un loop()- setup() izpildās vienu reizi — te sagatavojam pinus (piem.,
pinMode). - loop() izpildās atkārtoti — te mēs nepārtraukti lasām sensorus un vadām LED/motorus utt.
- Digitāls (D2, D9...) = HIGH/LOW (ieslēgts/izslēgts).
- Analogs (A0...) = vērtība 0..1023 (piem., potenciometrs, ūdens sensors).
PWM ļauj regulēt LED spilgtumu ar analogWrite().
Vērtība ir 0..255 (0 = izslēgts, 255 = max).
PWM parasti izmanto uz piniem D3, D5, D6, D9, D10, D11 (UNO).
- Arduino IDE → Tools → Serial Monitor
- Apakšā uzstādi ātrumu (parasti 9600 baud)
- Redzi sensoru datus un kļūdas ziņas
- LED parasti slēdz ar 330Ω rezistoru sērijā.
- Visām komponentēm jābūt kopīgam GND.
Mini piemērs: LED ieslēgšana
void setup() {
pinMode(9, OUTPUT);
}
void loop() {
digitalWrite(9, HIGH); // ieslēdz
delay(500);
digitalWrite(9, LOW); // izslēdz
delay(500);
}
Eksperimenti
Atver uzdevumu un seko “Nepieciešams” un “Pieslēgšana” soļiem.
1) LED spilgtuma regulators (potenciometrs → LED)
Uzdevums
Grozot potenciometru, maini LED spilgtumu.
Nepieciešams
- Arduino UNO, breadboard
- LED + 330Ω rezistors
- Potenciometrs
- Vadi
Pieslēgšana
- UNO GND → breadboard “–”, UNO 5V → “+”.
- LED īsā kājiņa (–) → “–”.
- LED garā kājiņa (+) → caur 330Ω → uz D9.
- Potenciometrs: ārējās kājiņas → 5V un GND, vidējā (SIGNAL) → A0.
Rezultāts
Spilgtums mainās gludi.
Ja nestrādā
- Pārbaudi LED virzienu (garā kājiņa ir +).
- Pārbaudi, vai rezistors ir starp LED + un D9.
Kods
const int LED_PIN = 9;
const int POT_PIN = A0;
void setup() {
pinMode(LED_PIN, OUTPUT);
}
void loop() {
int potValue = analogRead(POT_PIN); // 0..1023
int pwmValue = map(potValue, 0, 1023, 0, 255); // 0..255
analogWrite(LED_PIN, pwmValue);
delay(10);
}
2) LED slēdzis ar pogu (toggle ON/OFF)
Uzdevums
Katrs pogas spiediens pārslēdz LED ieslēgts/izslēgts.
Nepieciešams
- Arduino UNO, breadboard
- LED + 330Ω rezistors
- Poga (tactile)
- Vadi
Pieslēgšana (ar INPUT_PULLUP)
- LED īsā kājiņa → GND, garā → caur 330Ω → D9.
- Poga: viena puse → GND, otra → D2.
Rezultāts
Spied pogu → LED pārslēdzas ON/OFF.
Ja nestrādā
- Ja LED mirgo dīvaini, palielini
delay(250)uz 350. - Pārbaudi, vai poga pareizi ielikta breadboardā (šķērso vidus “grāvi”).
Kods
const int LED_PIN = 9;
const int BTN_PIN = 2;
bool ledState = false;
bool lastBtn = HIGH;
void setup() {
pinMode(LED_PIN, OUTPUT);
pinMode(BTN_PIN, INPUT_PULLUP);
digitalWrite(LED_PIN, LOW);
}
void loop() {
bool now = digitalRead(BTN_PIN);
// nospiešanas brīdis (HIGH -> LOW)
if (lastBtn == HIGH && now == LOW) {
ledState = !ledState;
digitalWrite(LED_PIN, ledState ? HIGH : LOW);
delay(250); // vienkāršs debounce
}
lastBtn = now;
}
4) Skaņas sensors (KY-037) – plaukšķis → LED vai buzzer
Uzdevums
Plaukšķis aktivizē īsu signālu (LED uzplaiksnījums vai pīkstiens).
Nepieciešams
- KY-037 skaņas sensors
- LED + 330Ω vai buzzer
- Vadi
Pieslēgšana
- KY-037: VCC → 5V, GND → GND, D0 → D2.
- LED variants: LED + caur 330Ω → D9, LED – → GND.
- Buzzer variants: “+” → D9, “–” → GND.
Jutīgums
Regulē sensora skrūvīti, lai nostrādā tieši uz plaukšķi.
Ja nestrādā
- Dažiem sensoriem signāls ir pretējs — pamēģini kodā nomainīt nosacījumu uz
trig == HIGH.
Kods
const int SOUND_DO = 2; // D0
const int OUT_PIN = 9;
void setup() {
pinMode(SOUND_DO, INPUT);
pinMode(OUT_PIN, OUTPUT);
}
void loop() {
int trig = digitalRead(SOUND_DO);
// Ja nestrādā, nomaini uz (trig == HIGH)
if (trig == LOW) {
digitalWrite(OUT_PIN, HIGH);
delay(120);
digitalWrite(OUT_PIN, LOW);
delay(120);
}
}
5) RGB noskaņu lampa (rezistori iebūvēti modulī)
Uzdevums
RGB modulis automātiski maina krāsas.
Nepieciešams
- RGB modulis (R, G, B, –)
- Vadi
Pieslēgšana
- RGB “–” → GND
- R → D9, G → D10, B → D11
Ja nestrādā
- Pārbaudi, vai “–” tiešām ir GND.
- Ja krāsas “otrādi”, iespējams modulim ir cita shēma — uzraksti, un iedošu apgriezto variantu.
Kods
const int PIN_R = 9;
const int PIN_G = 10;
const int PIN_B = 11;
void setup() {
pinMode(PIN_R, OUTPUT);
pinMode(PIN_G, OUTPUT);
pinMode(PIN_B, OUTPUT);
}
void setColor(int r, int g, int b) {
analogWrite(PIN_R, r);
analogWrite(PIN_G, g);
analogWrite(PIN_B, b);
}
void loop() {
setColor(255, 0, 0); delay(700);
setColor(0, 255, 0); delay(700);
setColor(0, 0, 255); delay(700);
setColor(255, 255, 0); delay(700);
setColor(0, 255, 255); delay(700);
setColor(255, 0, 255); delay(700);
setColor(255, 255, 255); delay(700);
setColor(0, 0, 0); delay(400);
}
6) DHT11 – temperatūra un mitrums (Serial Monitor)
Uzdevums
Nolasīt temperatūru un mitrumu un parādīt Serial Monitor.
Nepieciešams
- DHT11 sensors (VCC, DATA, GND)
- Vadi
Pieslēgšana
- VCC → 5V
- GND → GND
- DATA → D2
Kā skatīties datus
- Arduino IDE → Tools → Serial Monitor
- Apakšā izvēlies 9600 baud
Bibliotēka
Vajag uzinstalēt DHT bibliotēku: Arduino IDE → Tools → Manage Libraries… → meklē “DHT sensor library” un uzinstalē.
Kods
#include <DHT.h>
#define DHTPIN 2
#define DHTTYPE DHT11
DHT dht(DHTPIN, DHTTYPE);
void setup() {
Serial.begin(9600);
dht.begin();
Serial.println("DHT11 starts...");
}
void loop() {
float h = dht.readHumidity();
float t = dht.readTemperature();
if (isnan(h) || isnan(t)) {
Serial.println("Neizdevas nolasit no DHT11! Parbaudi vadus.");
delay(2000);
return;
}
Serial.print("Temperatura: ");
Serial.print(t);
Serial.print(" C Mitrums: ");
Serial.print(h);
Serial.println(" %");
delay(2000);
}
7) IR sensors (“Flying Fish”) – šķēršļa noteikšana
Uzdevums
Objekts priekšā → LED iedegas vai buzzer pīkst.
Nepieciešams
- IR sensors (VCC, GND, OUT)
- LED + 330Ω vai buzzer
Pieslēgšana
- IR VCC → 5V
- IR GND → GND
- IR OUT → D2
- LED/buzzer izvade → D9
Ja nestrādā
- Dažiem moduļiem objekts = LOW, citiem = HIGH. Ja vajag, apgriez nosacījumu.
Kods
const int IR_PIN = 2;
const int OUT_PIN = 9;
void setup() {
pinMode(IR_PIN, INPUT);
pinMode(OUT_PIN, OUTPUT);
}
void loop() {
int detected = digitalRead(IR_PIN);
// Parasti: objekts klāt = LOW. Ja tev ir otrādi, nomaini LOW/HIGH.
digitalWrite(OUT_PIN, detected == LOW ? HIGH : LOW);
delay(20);
}
8) Ūdens sensors (HW-038) – ūdens → trauksme (buzzer)
Uzdevums
Ja uz sensora ir ūdens, buzzer pīkst.
Nepieciešams
- Ūdens sensors (+, –, S)
- Buzzer
Pieslēgšana
- Sensors “+” → 5V
- Sensors “–” → GND
- Sensors “S” → A0
- Buzzer “+” → D9, buzzer “–” → GND
Slieksnis (threshold)
Atver Serial Monitor (9600), noskaties vērtības sausam un mitram sensoram,
un pielāgo threshold.
Kods
const int WATER_PIN = A0;
const int BUZZ_PIN = 9;
int threshold = 450;
void setup() {
pinMode(BUZZ_PIN, OUTPUT);
Serial.begin(9600);
}
void loop() {
int value = analogRead(WATER_PIN);
Serial.print("Water sensor: ");
Serial.println(value);
if (value > threshold) {
digitalWrite(BUZZ_PIN, HIGH);
delay(150);
digitalWrite(BUZZ_PIN, LOW);
delay(150);
} else {
digitalWrite(BUZZ_PIN, LOW);
delay(200);
}
}