Posted in

Teema 1

Just LED

Ringkondade komponendid:

  • Arduino Uno
  • LED
  • Takisti
  • Arendusplaat
  • Juhtmed

Kuidas skeem toimib:

Setup() paneme pinMode(), mida täpselt kontrollitakse. Mul on pin 13 ja see läheb väljundile

Loop() paneme digitalWrite(), iga sekund lülitab LED välja (LOW) ja lülitab sisse (HIGH). Kõik toimub pin 13

RGB LED

Ringkondade komponendid:

  • Arduino Uno
  • RGB LED
  • Takisti
  • Arendusplaat
  • Juhtmed

Kuidas skeem toimib:

loop() – Peamine tsükkel

setup() – Algseadistus

RED_PIN = 11, GREEN_PIN = 9, BLUE_PIN = 10
Määravad, millistele Arduino pin on LED-i punane, roheline ja sinine jalg ühendatud.

DISPLAY_TIME = 100
Määrab värvimuutuse kiiruse.

pinMode(PIN, OUTPUT)
Seadistab kõik kolm LED-i jalga väljunditeks, et saaksime neid juhtida.

mainColors()
Kuvab põhivärve
See funktsioon süütab LED-i erinevates põhivärvides ja ootab 1 sekundi enne järgmise värvi kuvamist

showSpectrum()
Kuvab sujuva värvimuutuse.
Tsükkel 0 kuni 768 muudab LED-i värvi järk-järgult.

showRGB()
Värvi määramine See funktsioon arvutab, kui eredalt iga värv põlema peaks. 0–255: punane tuhmub ja roheline suureneb.
256–511: roheline tuhmub ja sinine suureneb.
512–767: sinine tuhmub ja punane suureneb.

Ülesanne

Töö kirjeldus

Loo valgusfoori süsteem, mis reguleerib sõidukite ja jalakäijate liikumist, simuleerides kolmevärvilist signaali

Kasutatud komponendid:

  • 5 LED-d (punane, kollane ja roheline sõidukitele ning punane ja roheline jalakäijatele)
  • Arduino mikrokontroller
  • Vastavad takistid ja juhtmed ühendamiseks

Töö protsess:

Projekti eesmärk on simuleerida valgusfoori tööprotsessi, kus sõidukite tuled vahelduvad punasest kollaseks ja roheliseks. Jalakäijatele on roheline ja punane tuli.

Päeval toimib normaalne valgusfoori tsükkel.
Öösel vilgub ainult kollane tuli sõidukitele ja jalakäijatele on välja lülitatud.

Režiim vahetub automaatselt.

Skeem:

Kood:

const int RED_PIN = 13;
const int GREEN_PIN = 11;
const int YELLOW_PIN = 12;
const int RED_PPIN = 10;
const int GREEN_PPIN = 9;

void setup() {
  pinMode(RED_PIN, OUTPUT);
  pinMode(YELLOW_PIN, OUTPUT);
  pinMode(GREEN_PIN, OUTPUT);
  pinMode(RED_PPIN, OUTPUT);
  pinMode(GREEN_PPIN, OUTPUT);
}

void loop() {
  // Day mode
  for (int i = 0; i < 3; i++) {
    cars();
    person();
  }
  // Night mode
  for (int j = 0; j < 3; j++) {
    night();
  }
}

void cars() {
  // Car Red
  digitalWrite(RED_PIN, HIGH);
  digitalWrite(GREEN_PIN, LOW);
  digitalWrite(YELLOW_PIN, LOW);
  digitalWrite(RED_PPIN, HIGH);
  delay(500);

  digitalWrite(YELLOW_PIN, HIGH);
  delay(2000);
  // Car Green
  digitalWrite(RED_PIN, LOW);
  digitalWrite(YELLOW_PIN, LOW);
  digitalWrite(GREEN_PIN, HIGH);
  delay(10000);

  for (int i = 0; i < 3; i++) {
    digitalWrite(GREEN_PIN, LOW);
    delay(500);
    digitalWrite(GREEN_PIN, HIGH);
    delay(500);
  }

  digitalWrite(GREEN_PIN, LOW);
  digitalWrite(YELLOW_PIN, HIGH);
  delay(2000);

  digitalWrite(YELLOW_PIN, LOW);
  digitalWrite(RED_PIN, HIGH);
}

void person() {
  // Person Green
  digitalWrite(RED_PPIN, LOW);
  digitalWrite(GREEN_PPIN, HIGH);
  delay(10000);

  for (int i = 0; i < 3; i++) {
    digitalWrite(GREEN_PPIN, LOW);
    delay(500);
    digitalWrite(GREEN_PPIN, HIGH);
    delay(500);
  }
  // Person Red
  digitalWrite(GREEN_PPIN, LOW);
  digitalWrite(RED_PPIN, HIGH);
  delay(500);
}

void night() {
  digitalWrite(RED_PIN, LOW);
  digitalWrite(GREEN_PIN, LOW);
  digitalWrite(RED_PPIN, LOW);
  digitalWrite(GREEN_PPIN, LOW);
  // Per cycle 5 times
  for (int i = 0; i < 5; i++) {
    digitalWrite(YELLOW_PIN, HIGH);
    delay(500);
    digitalWrite(YELLOW_PIN, LOW);
    delay(500);
  }
}

Video:

Uued funktsioonid:

pinMode(RED, OUTPUT) – määrab, kuidas port töötab.
digitalWrite(RED, HIGH) – lülitab LED-i sisse
digitalWrite(RED, LOW) – lülitab LED-i välja
delay(aeg) – paneb programmi ootama kindla aja
const – tähendab muutmatu väärtus
for (x = 0; x < J; x++) – tähendab, et midagi tehakse J korda järjest.

Lisa kommentaar

Sinu e-postiaadressi ei avaldata. Nõutavad väljad on tähistatud *-ga