sábado, 28 de abril de 2012

10 LED argi jokoa

Ondorengo muntaian arduinorekin egindako 10 LEDez sortutako argi joko bat ikusiko dugu. Jokoa egiteko bi programazio metodo erabili ditut, batetik arduinok dakarren softwareaz egindako joku bat eta bestetik, minibloq softearea erabiliz.

Ondorengo irudian, simulazioa egiteko erabili dudan proteuseko eskema ikus daiteke.



Bestetik, arduinoren softwareaz egindako sketcha ere ikus daiteke. Sketchean ikusten den bezala, funtzio bat definitzen da argi joko bakoitzarentzat. Joku bakoitza egin ondoren, 10LEDak itzaltzen dira efektua hobeto ikusteko. 

void setup() {
  // initialize the digital pin as an output.
  // Pin 13 has an LED connected on most Arduino boards:
  pinMode(2, OUTPUT); 
  pinMode(3, OUTPUT); 
  pinMode(4, OUTPUT);   
  pinMode(5, OUTPUT); 
  pinMode(6, OUTPUT); 
  pinMode(7, OUTPUT); 
  pinMode(8, OUTPUT); 
  pinMode(9, OUTPUT); 
  pinMode(10, OUTPUT); 
  pinMode(11, OUTPUT); 
  
}
/*********************************************************************
                  10 LED dirdir egiten ikusten dira
                                  (3 aldiz)
*********************************************************************/
void argijoko1(){
  int  i=2,j=0;
  for(j=0;j<3;j++) {
    for (i=2;i<12;i++) 
      digitalWrite(i, HIGH);
    delay(500);
    for (i=2;i<12;i++) 
      digitalWrite(i, LOW);
    delay(500);    
  }
}
/*********************************************************************
                  LEDak banan bana piztu eta itzali
                                (3 aldiz)
*********************************************************************/
void argijoko2(){
  int  i=2,j=0;
  for(j=0;j<3;j++) {
    for (i=2;i<12;i++) {
      digitalWrite(i, HIGH);
      delay(100);
    }
    for (i=12;i>1;i--) {
      digitalWrite(i, LOW);
      delay(100);
    }
  }
}
/*********************************************************************
                  Lehengo 5 LED pizten ditu eta gero beste bostak
                              alternantzia egiten
                          (3 aldiz bostkote bakoitza)
*********************************************************************/
void argijoko3(){
  int  i=2,j=0,k=0;
  for (j=0;j<3;j++){
    for(i=7;i<12;i++) 
      digitalWrite(i, HIGH);
    for(k=2;k<7;k++)
      digitalWrite(k, LOW);
    delay(500);
    
    for(i=7;i<12;i++)
      digitalWrite(i, LOW);
    for(k=2;k<7;k++)
      digitalWrite(k, HIGH);
    delay(500);
  }
}
void  argijoko4(){
  int  i=0,j=0,k;
  for  (j=0;j<3;j++){
    for(i=0;i<12;i=i+2)
      digitalWrite(i, HIGH);
    for  (k=1;k<12;k=k+2)
      digitalWrite(k, LOW);
    delay(500);
    for(i=0;i<12;i=i+2)
      digitalWrite(i, LOW);
    for  (k=1;k<12;k=k+2)
      digitalWrite(k, HIGH);
    delay(500);
  }
}
/*********************************************************************
                  LED guztiak itzali
*********************************************************************/
void borratu(){
  int  i=2;
  for(i=2;i<12;i++)
    digitalWrite(i, LOW);
  delay(250);
}  


void loop() {
  
  argijoko1();
  borratu();
  argijoko3();
  borratu();
  argijoko2();
  borratu();
  argijoko4();
  borratu();
}  

Azkenik, proiektua ikusteko, minibloq eta arduino softwareaz egindako lanaren bideo txiki bat ikusgai jarriko dut, non argi jokoak ikusi ahal diren.




No hay comentarios:

Publicar un comentario