PingPong

rodland   October 30, 2016   No Comments on PingPong

Dette spillet har litt avansert kobling og programmering.

KOBLING

I videoen viser jeg hvordan du kan koble uten å bruke en motstand for hver lampe. Du kan godt bruke mange motstander hvis du heller vil det. En fra hver lampe til den blå skinnen.

PROGRAMMERING

Av en eller annen grunn ble kvaliteten på videoen veldig dårlig. Håper dere ser hva jeg skriver!

 

 

Hele kildekoden:

int knappA = 3; 
int knappB = 2;

int retning = 1; 
int led = 8;
int fart = 200;

void setup() {
 pinMode(knappA, INPUT);
 pinMode(knappB, INPUT);

attachInterrupt(digitalPinToInterrupt(knappA), snuA, RISING);
 attachInterrupt(digitalPinToInterrupt(knappB), snuB, RISING);

for(int i = 5; i < 13; i++){
 pinMode(i, OUTPUT); 
 }

}

void loop() {

digitalWrite(led, HIGH);
 delay(fart);
 digitalWrite(led, LOW);


led = led + retning;

if(led > 12){
 // Spiller A har tapt
 for(int i = 0; i<10; i++){
 digitalWrite(11,HIGH);
 digitalWrite(12,HIGH);
 delay(80);
 digitalWrite(11, LOW);
 digitalWrite(12, LOW);
 delay(80);
 }
 led = 8;
 fart = 200;
 }
 if(led < 5){
 // Spiller B har tapt
 for(int i = 0; i<10; i++){
 digitalWrite(5,HIGH);
 digitalWrite(6,HIGH);
 delay(80);
 digitalWrite(5, LOW);
 digitalWrite(6, LOW);
 delay(80);
 }
 led = 8;
 fart = 200;
 }
}

void snuA(){
 if(retning > 0 && led > 10){
 retning = retning * -1;
 fart = fart - 8; 
 } 
}

void snuB(){
 if(retning < 0 && led < 7){
 retning = retning * -1;
 fart = fart - 8;
 }
}