Valgusfoor

1. Katse -LED dioodid ja RGB LED-

const int RED_PIN = 11;

const int GREEN_PIN = 9;

const int BLUE_PIN = 10;

void setup()

{

  pinMode(RED_PIN, OUTPUT);

  pinMode(GREEN_PIN, OUTPUT);

  pinMode(BLUE_PIN, OUTPUT);

}

void loop()

{

// Мы создали функцию с именем mainColors (), которая проходит через  все восемь цветов. Здесь мы только вызываем нашу функцию, Сам же код функции находится ниже.

mainColors();

// Эта функция включает и выключает отдельно каждый светодиод либо Вкл., либо Выкл. Если вы хотите получить больше чем восемь цветов, вам придется

// изменять еще и яркость каждого светодиода. Для этого можно воспользоваться

// функцию analogWrite(), - градация яркости от 0 до 255. Далее идет функция

// с именем showSpectrum (), которая плавно проследует через каждый из 8 цветов. ее,  код находится ниже.

  showSpectrum();

}

void mainColors()

{

// Выкл. – все светодиоды выключены

  digitalWrite(RED_PIN, LOW);

  digitalWrite(GREEN_PIN, LOW);

  digitalWrite(BLUE_PIN, LOW);

 delay(1000);

// Включаем КРАСНЫЙ – RED_PIN, HIGH.

  digitalWrite(RED_PIN, HIGH);

  digitalWrite(GREEN_PIN, LOW);

  digitalWrite(BLUE_PIN, LOW);

  delay(1000);

// Включаем ЗЕЛЕНЫЙ – GREEN_PIN, HIGH.

  digitalWrite(RED_PIN, LOW);

  digitalWrite(GREEN_PIN, HIGH);

  digitalWrite(BLUE_PIN, LOW);

  delay(1000);

// Включаем СИНИЙ – BLUE_PIN, HIGH.

  digitalWrite(RED_PIN, LOW);

  digitalWrite(GREEN_PIN, LOW);

  digitalWrite(BLUE_PIN, HIGH);

  delay(1000);

// Включаем ЖЕЛТЫЙ – RED и GREEN HIGH.

  digitalWrite(RED_PIN, HIGH);

  digitalWrite(GREEN_PIN, HIGH);

  digitalWrite(BLUE_PIN, LOW);

  delay(1000);

// БИРЮЗОВЫЙ – GREEN и BLUE

  digitalWrite(RED_PIN, LOW);

  digitalWrite(GREEN_PIN, HIGH);

  digitalWrite(BLUE_PIN, HIGH);

  delay(1000);

//РОЗОВЫЙ – RED и BLUE

  digitalWrite(RED_PIN, HIGH);

  digitalWrite(GREEN_PIN, LOW);

  digitalWrite(BLUE_PIN, HIGH);

  delay(1000);

//БЕЛЫЙ – все цвета HIGH (Вкл.)

  digitalWrite(RED_PIN, HIGH);

  digitalWrite(GREEN_PIN, HIGH);

  digitalWrite(BLUE_PIN, HIGH);

  delay(1000);

}

// Ниже приведен код еще двух функций:  ShowSpectrum () и showRGB().  ShowRGB () - выводит один цвет на светодиод.  ShowSpectrum () выводит все цвета по очереди – радуга. 

void showSpectrum()

{

  int x;

  for (x = 0; x < 768; x++)

  {

    showRGB(x);  // Вызов RGBspectrum() сновым значением x

    delay(10);   // Пауза 10 ms (1/100 секунды)

  }

}

// ShowRGB() 

// Базовые цифры: 

// 0 = чистый красный 

// 255 = чистый зеленый 

// 511 = чистый синий 

// 767 = чистый красный (опять же) 

void showRGB(int color)

{

  int redIntensity;

  int greenIntensity;

  int blueIntensity;

  if (color <= 255)                

  {

    redIntensity = 255 - color;    // красный меняется из включенного на выключенный    

    greenIntensity = color;        // зеленый меняется из выключенного на включенный

    blueIntensity = 0;             // голубой всегда выключен

  }

  else if (color <= 511)          

  {

    redIntensity = 0;                     // красный всегда выключен

    greenIntensity = 255 - (color - 256); // зеленый от включенного к выключенному

    blueIntensity = (color - 256);        // голубой от выключенного к включенному

  }

  else if (color >= 512)             

  {

    redIntensity = (color - 512);         // красный выкл. К вкл.

    greenIntensity = 0;                   // зеленый всегда выкл.

    blueIntensity = 255 - (color - 512);  // голубой от вкл. К выкл.

  }

  analogWrite(RED_PIN, redIntensity);

  analogWrite(BLUE_PIN, blueIntensity);

  analogWrite(GREEN_PIN, greenIntensity);

}

Valgusfoor

Lambipirnide vahelduv vahetamine, näiteks valgusfoori puhul. On ka teine ​​režiim, kus töötab ainult kollane tuli.

Komponeendid:

Arduino Uno
Arendusplaat
LED
Resistor

skeem:

Programm:

// C++ code
//


// Dlja masjin

const int rPin = 11;
const int yPin = 10;
const int gPin= 9;

// Dlja pesehodov

const int rrPin = 3;
const int ggPin = 2;



void setup()
{
  pinMode(rPin, OUTPUT);
  pinMode(yPin, OUTPUT);
  pinMode(gPin, OUTPUT);
  pinMode(rrPin, OUTPUT);
  pinMode(ggPin, OUTPUT);
}


void loop()
{
  for (int x = 0; x < 4; x++)
  {
    digitalWrite(rPin, HIGH);
    	digitalWrite(ggPin, HIGH);
    	delay(1000);
    digitalWrite(ggPin, LOW);
    digitalWrite(rPin, LOW);
    digitalWrite(yPin, HIGH);
    delay(1000); // Wait for 1000 millisecond(s)
    digitalWrite(yPin, LOW);
    digitalWrite(gPin, HIGH);
    	digitalWrite(rrPin, HIGH);
    delay(1000); // Wait for 1000 millisecond(s)
    digitalWrite(gPin, LOW);
    	digitalWrite(rrPin,LOW);
  } 
  Off();
}
void Off()
{
  for (int x = 0; x < 3; x++)
  {
    digitalWrite(yPin, HIGH);
    delay(1000); // Wait for 1000 millisecond(s)
    digitalWrite(yPin, LOW);
    delay(1000);
  }
  loop();
}

Link

Video:

Использование: Логистика, Дорожное движение, Промышленность и тд.