ROB. Traffic lights

Katse 1.1
Punane LED vilkuv:

Komponentid :

  • 1 värvilist LEDi ;
  • 1 resistor ;
  • 3 juhtmed ;
  • Arduino plaat

Skeem:

2. Kood

void setup()
{
pinMode(LED_BUILTIN, OUTPUT);
}

void loop()
{
digitalWrite(LED_BUILTIN, HIGH);
delay(300); // Wait for 1000 millisecond(s)
digitalWrite(LED_BUILTIN, LOW);
delay(300); // Wait for 1000 millisecond(s)
}

Katse 1.2
RGB LED muudab värvi:

Komponentid:

  • 1 värviline LED RGB;
  • 3 resistorid ;
  • 5 juhtmed ;

Skeem

const int RED_PIN = 11;
const int GREEN_PIN = 9;
const int BLUE_PIN = 10;
int DISPLAY_TIME = 100; // värvimuutuse kiirus
void setup()
{
pinMode(RED_PIN, OUTPUT);
pinMode(GREEN_PIN, OUTPUT);
pinMode(BLUE_PIN, OUTPUT);
}
void loop()
{
mainColors();
showSpectrum();
}
void mainColors()
{

// Kõik LEDid on välja lülitatud

digitalWrite(RED_PIN, LOW);
digitalWrite(GREEN_PIN, LOW);
digitalWrite(BLUE_PIN, LOW);
delay(1000);

//Põleb punane

digitalWrite(RED_PIN, HIGH);
digitalWrite(GREEN_PIN, LOW);
digitalWrite(BLUE_PIN, LOW);
delay(1000);

// Põleb roheline

digitalWrite(RED_PIN, LOW);
digitalWrite(GREEN_PIN, HIGH);
digitalWrite(BLUE_PIN, LOW);
delay(1000);

// Sinine on sisse lülitatud

digitalWrite(RED_PIN, LOW);
digitalWrite(GREEN_PIN, LOW);
digitalWrite(BLUE_PIN, HIGH);
delay(1000);

// Kollane.

digitalWrite(RED_PIN, HIGH);
digitalWrite(GREEN_PIN, HIGH);
digitalWrite(BLUE_PIN, LOW);
delay(1000);

// Lilla

digitalWrite(RED_PIN, LOW);
digitalWrite(GREEN_PIN, HIGH);
digitalWrite(BLUE_PIN, HIGH);
delay(1000);

//Roosa

digitalWrite(RED_PIN, HIGH);
digitalWrite(GREEN_PIN, LOW);
digitalWrite(BLUE_PIN, HIGH);
delay(1000);

//Valge ehk kõik on sisse lülitatud

digitalWrite(RED_PIN, HIGH);
digitalWrite(GREEN_PIN, HIGH);
digitalWrite(BLUE_PIN, HIGH);
delay(1000);
}
// Vikerkaar.
void showSpectrum()
{
int x;
for (x = 0; x < 768; x++)
{
showRGB(x); //
delay(10); // paus 0,001 sek
}
}
// ShowRGB() põhivärvid:
// 0 = punane
// 255 = roheline
// 511 = sinine
// 767 = jälle punane
void showRGB(int color)
{
int redIntensity;
int greenIntensity;
int blueIntensity;
if (color <= 255)
{
redIntensity = 255 - color; // lülitakse välja punane
greenIntensity = color; // lülitakse sisse roheline
blueIntensity = 0; // sinine on välja lülitatud
}
else if (color <= 511)
{
redIntensity = 0; // punane on välja lülitatud
greenIntensity = 255 - (color - 256);
blueIntensity = (color - 256);
}
else if (color >= 512)
{
redIntensity = (color - 512);
greenIntensity = 0;
blueIntensity = 255 - (color - 512);
}
analogWrite(RED_PIN, redIntensity); // punase LED´i sujuv ümberlülitamine
analogWrite(BLUE_PIN, blueIntensity);
analogWrite(GREEN_PIN, greenIntensity);
}

1.Skeem:

2. Kood

const int auto_RED_PIN = 11;
const int auto_GREEN_PIN = 9;
const int auto_BLUE_PIN = 10;

const int jalakaijatevalgusfoor_RED_PIN = 6;
const int jalakaijatevalgusfoor_GREEN_PIN = 5;

int DISPLAY_TIME = 100; // скорость смены цвета

void setup() {
pinMode(auto_RED_PIN, OUTPUT);
pinMode(auto_GREEN_PIN, OUTPUT);
pinMode(auto_BLUE_PIN, OUTPUT);

pinMode(jalakaijatevalgusfoor_RED_PIN, OUTPUT);
pinMode(jalakaijatevalgusfoor_GREEN_PIN, OUTPUT);
}

void loop() {
autovalgusfoor();
jalakaijatevalgusfoor();
}

void autovalgusfoor() {
// красный для машин
digitalWrite(auto_RED_PIN, HIGH);
digitalWrite(auto_GREEN_PIN, LOW);

// зеленый для пешеходов
digitalWrite(jalakaijatevalgusfoor_RED_PIN, LOW);
digitalWrite(jalakaijatevalgusfoor_GREEN_PIN, HIGH);

delay(5000);

// желтый для машин
digitalWrite(auto_RED_PIN, HIGH);
digitalWrite(auto_GREEN_PIN, HIGH);

// красный для пешеходов
digitalWrite(jalakaijatevalgusfoor_RED_PIN, HIGH);
digitalWrite(jalakaijatevalgusfoor_GREEN_PIN, LOW);

delay(2000);

// мигающий желтый для машин
autoYellowBlink();

// зеленый для машин
digitalWrite(auto_RED_PIN, LOW);
digitalWrite(auto_GREEN_PIN, HIGH);

// красный для пешеходов
digitalWrite(jalakaijatevalgusfoor_RED_PIN, HIGH);
digitalWrite(jalakaijatevalgusfoor_GREEN_PIN, LOW);

delay(5000);

// желтый для машин
digitalWrite(auto_RED_PIN, HIGH);
digitalWrite(auto_GREEN_PIN, HIGH);

// красный для пешеходов
digitalWrite(jalakaijatevalgusfoor_RED_PIN, HIGH);
digitalWrite(jalakaijatevalgusfoor_GREEN_PIN, LOW);

delay(1000);
}

void jalakaijatevalgusfoor() {
// зеленый для машин
digitalWrite(auto_RED_PIN, LOW);
digitalWrite(auto_GREEN_PIN, HIGH);

// красный для пешеходов
digitalWrite(jalakaijatevalgusfoor_RED_PIN, HIGH);
digitalWrite(jalakaijatevalgusfoor_GREEN_PIN, LOW);

delay(4000);

// желтый для машин
digitalWrite(auto_RED_PIN, HIGH);
digitalWrite(auto_GREEN_PIN, HIGH);

// красный для пешеходов
digitalWrite(jalakaijatevalgusfoor_RED_PIN, HIGH);
digitalWrite(jalakaijatevalgusfoor_GREEN_PIN, LOW);

delay(1000);
}

void autoYellowBlink() {
// мигающий желтый для машин
for(int i = 0; i < 5; i++) {
digitalWrite(auto_RED_PIN, HIGH);
digitalWrite(auto_GREEN_PIN, HIGH);
delay(500);
digitalWrite(auto_RED_PIN, LOW);
digitalWrite(auto_GREEN_PIN, LOW);
delay(500);
}
}

3. Kasutatud komponeendid:

  • 2 RGB LEDid
  • 9 juhtmed
  • 6 resistorit
  • Arduino plaat

4. Link:

5. Kirjeldus:

See on Valgusfoor. Siin ok kaks reziimid, autodele ja jalakäijatele. Siin on ka öörežiim. Kui öörežiim on sisse lülitatud, süttib jalakäijate jaoks punane foor ja autode jaoks vilgub kollane

6. Kasutamisvõimalused tavaelus.

Selline valgusfoor võib kasutada linnas, kus on palju inimesi ja auto

7. Funktsioonid

Delay()
delay() hilinemine foori olekute muutuste vahel.
Kui funktsioon day() on esile kutsutud, määrab see foori päevarežiimile ja funktsioon night() seab selle öörežiimile.
Setup()
setup() määrab esialgsed väärtused, tagastab andmed.
Loop()
loop() on peamine funktsioon, Arduino kordab selle funktsiooni väljakutset miljoneid kordi sekundis, põhjustab day() ja night() vaheldumisi, et valgusfoor muutuks päevase ja öise režiimi vahel.
pinMode
Funktsioon pinMode() Arduino määrab määratud pini (sisse/välja) töörežiimi.
digitalWrite
digitalWrite — määrab tihvti oleku.
OUTPUT
OUTPUT — väljapääsu .
HIGH ja LOW
HIGH ja LOW pingetase väljunditel.