Arduone kit
Тәжірибе №4 Көптеген Жарықдиодтар
Arduino-ға бірден СЕГІЗ ЖАРЫҚДИОДЫН қосамыз
Таңғажайып - сіз жарық диодын өшіріп-жандырдыңыз! Енді сұлбаны қиындатып, Arduino-ға бірден СЕГІЗ ЖАРЫҚДИОДЫН қосамыз. Осылай, Arduino көмегімен сіз түрлі жарық эффектілерін жасай аласыз. Сұлба әжептәуір үлкен және қызықты. Бұл тәжірибеде сіз өзіндік бағдарламарды жазуға машықтанып, Arduino Жұмысы туралы түсінік аласыз. ЖАРЫҚДИОДТАРЫН басқарумен қатар, Сіз бағдарлама- лау әдістерін үйренесіз, олар сіздің кодты түсінікті және ұқыпты етеді:
for() - (цикл) – кодтың бір бөлігін бірнеше рет орындағанда қолданылады.
arrays[ ] - (массив) – кодты жеңілдетіп, ауыспалыларға қолжетімділікті оңтайлап, оларды топтастырады
Схема подключения
Скетч

int ledPins[] = {2,3,4,5,6,7,8,9};


void setup()
{
  int index;

  for(index = 0; index <= 7; index++)
  {
    pinMode(ledPins[index],OUTPUT);
    
  }
}


void loop()
{
  oneAfterAnotherNoLoop();  
  //oneAfterAnotherLoop();  
  //oneOnAtATime();         
  //pingPong();             
  //marquee();              
  //randomLED();            
}

 

void oneAfterAnotherNoLoop()
{
  int delayTime = 100; 

  digitalWrite(ledPins[0], HIGH);  
  delay(delayTime);                
  digitalWrite(ledPins[1], HIGH);  
  delay(delayTime);                
  digitalWrite(ledPins[2], HIGH);  
  delay(delayTime);                
  digitalWrite(ledPins[3], HIGH);  
  delay(delayTime);                
  digitalWrite(ledPins[4], HIGH);  
  delay(delayTime);                
  digitalWrite(ledPins[5], HIGH);  
  delay(delayTime);                
  digitalWrite(ledPins[6], HIGH);  
  delay(delayTime);                
  digitalWrite(ledPins[7], HIGH);  
  delay(delayTime);                
 
  digitalWrite(ledPins[7], LOW);   
  delay(delayTime);                
  digitalWrite(ledPins[6], LOW);   
  delay(delayTime);                
  digitalWrite(ledPins[5], LOW);   
  delay(delayTime);                
  digitalWrite(ledPins[4], LOW);   
  delay(delayTime);                
  digitalWrite(ledPins[3], LOW);   
  delay(delayTime);                
  digitalWrite(ledPins[2], LOW);   
  delay(delayTime);                
  digitalWrite(ledPins[1], LOW);   
  delay(delayTime);                
  digitalWrite(ledPins[0], LOW);   
  delay(delayTime);                
}
 


void oneAfterAnotherLoop()
{
  int index;
  int delayTime = 100; 
  for(index = 0; index <= 7; index++)
  {
    digitalWrite(ledPins[index], HIGH);
    delay(delayTime);                
  }                                  

  
  for(index = 7; index >= 0; index--)
  {
    digitalWrite(ledPins[index], LOW);
    delay(delayTime);
  }               
}

 


void oneOnAtATime()
{
  int index;
  int delayTime = 100; 
  
  for(index = 0; index <= 7; index++)
  {
    digitalWrite(ledPins[index], HIGH);  // Вкл. светодиод
    delay(delayTime);                    // пауза перед выкл.
    digitalWrite(ledPins[index], LOW);   // Выкл. светодиод
  }
}

 

void pingPong()
{
  int index;
  int delayTime = 100; 
  
  for(index = 0; index <= 7; index++)
  {
    digitalWrite(ledPins[index], HIGH);  
    delay(delayTime);                    
    digitalWrite(ledPins[index], LOW);   
  }

  
  for(index = 7; index >= 0; index--)
  {
    digitalWrite(ledPins[index], HIGH);  
    delay(delayTime);                    
    digitalWrite(ledPins[index], LOW);   
  }
}



void marquee()
{
  int index;
  int delayTime = 200; 
  
  for(index = 0; index <= 3; index++) 
  {
    digitalWrite(ledPins[index], HIGH);    
    digitalWrite(ledPins[index+4], HIGH);  
    delay(delayTime);                      
    digitalWrite(ledPins[index], LOW);     
    digitalWrite(ledPins[index+4], LOW);   
  }
}


void randomLED()
{
  int index;
  int delayTime;
  
  
  index = random(8);	
  delayTime = 100;
	
  digitalWrite(ledPins[index], HIGH);  
  delay(delayTime);                    
  digitalWrite(ledPins[index], LOW);   
}
Сіз нені көресіз:
Бұл мысал бірінші тәжірибеге ұқсайды, бірақ бір жарықдтодтың орнына сіз көптеген өшіп-жанатын диодтарды көруіңіз қажет. Егер олай болмаса, сұлбаны дұрыс жинағаныңызға көз жеткізіп, кодтың Arduino-ға жүктелгенін тексеріңіз немесе ақауларды жою кеңестерін қараңыз.
Мүмкін қиындықтар:
Кейбір жарықдиодтар жанбайды. Ең кең тараған қателік жарықдиодтың дұрыс емес полярлығы, оны шығарып, 180 градусқа бұрыңыз және қайта салыңыз
Реттілігі бұзылған.
Сегіз сымда қателесу оңай. Бірінші жарық- диодтың 2-ші портқа, екіншісі 3-ге және т.с қосылғанын екі рет тексеріңіз.
Басынан бастаңыз.
Кейде сұлбаны басынан жинақтау, көптеген сымдардың арасындағы қателікті іздеуден оңай болады.
Өмірде қолданылуы:
Жүгіртпе жол – әрине барлығыңыз вокзалдағы немесе аэропорттағы ақпараттық тақтайларды көрдіңіздер, дәл солар көптеген жарықдиод- тардан тұрады.