Arduone kit
Тәжірибе №14 Жылжу Регистрі
Бұл тәжірибеде ИС Жылжу Регистрі мен SPI (Serial Periphera Interface) туралы білетін боламыз
Әйтеуір Интегральды Сұлбаларға (ICs) келіп жеттік. Бұл тәжірибеде ИС Жылжу Регистрі мен SPI (Serial Periphera Interface) туралы білетін боламыз. Тізбекті Перифериялы Интерфейс ISP мәліметтерді тапсыру үшін жұмыс істейді. Бір Жылжу Регистрі сіздің Arduino-ға үш шығудың орнын алып, қосымша 8 шығуды ұсынады. Ағымдағы тәжірибе сұлбасы тек 3 Arduino портын қолданып, сегіз жарықдиодын басқаруға мүмкіндік береді.
Схема подключения
Скетч
int datapin = 2; 
int clockpin = 3;
int latchpin = 4;
byte data = 0;


void setup()
{
  pinMode(datapin, OUTPUT);
  pinMode(clockpin, OUTPUT);  
  pinMode(latchpin, OUTPUT);
}


void loop()
{
  one after another - один за другим
  //oneAfterAnother();     
  //oneOnAtATime();      
  //pingPong();           
  //randomLED();          
  //marquee();            
  //binaryCount();        
}


void shiftWrite(int desiredPin, boolean desiredState)
{
  bitWrite(data,desiredPin,desiredState);
  shiftOut(datapin, clockpin, MSBFIRST, data);
  digitalWrite(latchpin, HIGH);
  digitalWrite(latchpin, LOW);
}


void oneAfterAnother()
{
  int index;
  int delayTime = 1000; 
  for(index = 0; index <= 7; index++)
  {
    shiftWrite(index, HIGH);
    delay(delayTime);                
  }
  for(index = 7; index >= 0; index--)
  {
    shiftWrite(index, LOW);
    delay(delayTime);
  }
}


void oneOnAtATime()
{
  int index;
  int delayTime = 1000; 
  for(index = 0; index <= 7; index++)
  {
    shiftWrite(index, HIGH);	
    delay(delayTime);		
    shiftWrite(index, LOW);	
  }
}

void pingPong()
{
  int index;
  int delayTime = 100; 
  for(index = 0; index <= 7; index++)
  {
    shiftWrite(index, HIGH);	
    delay(delayTime);		
    shiftWrite(index, LOW);	
  }
  for(index = 7; index >= 0; index--)
  {
    shiftWrite(index, HIGH);	
    delay(delayTime);		
    shiftWrite(index, LOW);	
  }
}

void randomLED()
{
  int index;
  int delayTime = 1000; 
  index = random(8); 
  shiftWrite(index, HIGH);	
  delay(delayTime);		
  shiftWrite(index, LOW);	
}


void marquee()
{
  int index;
  int delayTime = 2000; /
  for(index = 0; index <= 3; index++)
  {
    shiftWrite(index, HIGH);    
    shiftWrite(index+4, HIGH);  
    delay(delayTime); 
    shiftWrite(index, LOW);	
    shiftWrite(index+4, LOW);  
  }
}


void binaryCount()
{
  int delayTime = 1000; 
  shiftOut(datapin, clockpin, MSBFIRST, data);
  digitalWrite(latchpin, HIGH);
  digitalWrite(latchpin, LOW);
  data++;
  delay(delayTime);
}
Сіз нені көресіз:
Сіз №4 тәжірибеге ұқсас LED's жарықдиодтарында түрлі жарық эффектілерін, бірақ ИС Жылжу Регистрін қолдана отырып, көре аласыз. Сұлбаның жинақталу дұрыстығына көз жеткізіңіз. Arduino-ғы кодтың жүктелуін тексеріңіз немесе төмендегі ақаулақытарды жою кеңестерін пайдаланыңыз.

Мүмкін қиындықтар:
Arduino қуаттану индикаторы сөніп қалады
Егер ИС кілтпен басқа жаққа қаратып салғанда, мұндай жағдайдың орналуы мүмкін. Егер тез түзететін болсаңыз, ештеңе сынып үлгермейді.
Онша дұрыс істемей жатыр
Мың рет айтылған сөз болар, бірақ мүмкін сымдардың орны шатасып кеткен болар.
Сізге ұнаған жоқ
Егер сұлба сізге тым күрделі болып көрінетін болса, біздің e-mail-ге жазыңыз. Ол біруақытта қарапайым және күрделі. Біз сіздердің мәселелеріңіз бен тілектеріңізді білгіміз келеді: info@stemkit.kz
Өмірде қолданылуы:
Жылжу регистрі міндетті түрде жүгіртпе жолы бар жарық таблосында қолданылады, ол көптеген мөлшердегі жарықдиодтардан құралады.