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)

1) Kods → Upload → Arduino darbojas pats

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.
3) Digitālais vs analogais
  • Digitāls (D2, D9...) = HIGH/LOW (ieslēgts/izslēgts).
  • Analogs (A0...) = vērtība 0..1023 (piem., potenciometrs, ūdens sensors).
4) PWM (spilgtumam)

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).

5) Serial Monitor (datu skatīšanai)
  1. Arduino IDE → Tools → Serial Monitor
  2. Apakšā uzstādi ātrumu (parasti 9600 baud)
  3. Redzi sensoru datus un kļūdas ziņas
Drošība
  • 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

  1. UNO GND → breadboard “–”, UNO 5V → “+”.
  2. LED īsā kājiņa (–) → “–”.
  3. LED garā kājiņa (+) → caur 330Ω → uz D9.
  4. 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)

  1. LED īsā kājiņa → GND, garā → caur 330Ω → D9.
  2. 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

  1. KY-037: VCC → 5V, GND → GND, D0 → D2.
  2. LED variants: LED + caur 330Ω → D9, LED – → GND.
  3. 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

  1. RGB “–” → GND
  2. 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

  1. VCC → 5V
  2. GND → GND
  3. DATA → D2

Kā skatīties datus

  1. Arduino IDE → Tools → Serial Monitor
  2. 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

  1. IR VCC → 5V
  2. IR GND → GND
  3. IR OUT → D2
  4. 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

  1. Sensors “+” → 5V
  2. Sensors “–” → GND
  3. Sensors “S” → A0
  4. 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);
  }
}