Arduone kit
Тәжірибе №3 RGB - жарықдиоды
Үштүсті жарықдиод. RGB - Red, Green, Blue! Қызыл, Жасыл және Көк – үшеуі біреуінде!

Өшіп-жанып тұрған жарықдиодтан не әдемі болады? Үштүсті жарықдиод. RGB - Red, Green, Blue! Қызыл, Жасыл және Көк – үшеуі біреуінде! Үш жарықдиод бір корпус ішінде. Олар бірегей түстер мен жарық эффектілері арқылы керемет жылтырай алады, бұл жарықдиодтардың қаншалықты жарқын болғандығына байланысты болады. Бұл тәжірибеде сіз оны Arduino-ға жалғауды және басқаруды үйренесіз.
Схема подключения
Скетч
const int RED_PIN = 9;
const int GREEN_PIN = 10;
const int BLUE_PIN = 11;

int DISPLAY_TIME = 100;  

void setup()
{
  pinMode(RED_PIN, OUTPUT);
  pinMode(GREEN_PIN, OUTPUT);
  pinMode(BLUE_PIN, OUTPUT);
}

void loop()
{
  mainColors();
  showSpectrum();
}

void mainColors()
{
  digitalWrite(RED_PIN, LOW);
  digitalWrite(GREEN_PIN, LOW);
  digitalWrite(BLUE_PIN, LOW);

delay(1000);


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

  delay(1000);


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

  delay(1000);


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

  delay(1000);


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

  delay(1000);


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

  delay(1000);


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

  delay(1000);


  digitalWrite(RED_PIN, HIGH);
  digitalWrite(GREEN_PIN, HIGH);
  digitalWrite(BLUE_PIN, HIGH);

  delay(1000);
}


void showSpectrum()
{
  int x;
  for (x = 0; x < 768; x++)
  {
    showRGB(x);  
    delay(10);   
  }
}


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);
}
Сіз нені көресіз:
Сіз жарықдиодыңыздың жанып тұрғынын, бірақ бұл ретте жаңа, Таңқалдырар түстермен! Егер ол орындалмаса, сұлбаны дұрыс жинағаныңызға көз жеткізіп, аrduino-ға енгізілетін кодты тексеріңіз. Егер жарық диод жанбаса,ақаулықтарды іздеу және жою кеңестерін қолданыңыз.
Мүмкін қиындықтар:
Жарықдиод жанбайды немесе басқа түс жанады.
Жарықдиод аяқшалары бір-бірінен кіші қашықтықта орналасқан, сол себепті оңай қателесуге болады. Қайта тексеру керек.
Қызыл туралы мәліметтер
Қызыл жарықдиод одан қарқынды жануы мүм-кін, сол себепті қажет болса қосымша резисторды қолданыңыз немесе кодты ауыстырыңыз: analogWrite(RED_PIN, redIntensity); на analogWrite(RED_PIN, redIntensity/3);
Өмірде қолданылуы:
Жарық шоуларда, сондай-ақ түрлі электроникада қолданылады, сол салада құрылғы жағдайының өзгеруін көрсету үшін. Мысалы, Қосу жағдайынан Сөнд. ауысқанын.