Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Manufacturing Technology >> Productieproces

Arduino Pong Game op 24x16 Matrix met MAX7219

Componenten en benodigdheden

Arduino Nano R3
× 1
8x8 Led-martrixmodule met MAX7219
× 6
Draaipotentiometer (algemeen)
× 2
Zoemer
× 1

Benodigde gereedschappen en machines

Soldeerbout (algemeen)

Apps en online services

Arduino IDE

Over dit project

Ik bouwde deze kleine pong-console op een reeks van 6 stuks. 8x8 LED-matrices volgens instructies en code van:https://www.instructables.com/id/Pong/

In plaats van op maat gemaakte matrixborden kocht ik goedkope kant-en-klare 8x8-modules met MAX7219 van Aliexpress.

De "clock"- en "load"-pinnen van elk bord worden allemaal met elkaar verbonden. "Din"-pin van de eerste matrix gaat naar Arduino, en "Dout" naar "Din" van volgende matrix enz. Besturingspaddles zijn twee 10k-potentiometers die zijn aangesloten op A0 en A1 analoge pinnen van Arduino en zoemer is aangesloten op D9-pin.

Uiteindelijk heb ik het apparaat in een plastic doos gestopt en controllers in dozen voor elektrische installatie.

U kunt de LedControl-bibliotheek downloaden van:

https://github.com/wayoda/LedControl

Code

  • code
codeArduino
//We moeten altijd de bibliotheek #include "LedControl.h" byte rightscore opnemen; byte linkerscore; int toonloop=1000; byte pongdisplay []={ // Gebruikt bij het opstarten om "Pong" weer te geven B11111111, B00000000, B00001001, B00000000, B00001001, B00000000, B00000110, B00000000, B00000000, B00000000, B00000000, B00000000, B01110000, B00000000, B10001000, B00000000, B10001000 , B00000000, B01110000, B00000000, B00000000, B00000000, B00000000, B00000000, B11110000, B00000000, B00001000, B00000000, B00001000, B00000000, B11110000, B00000000, B00000000, B00000000, B00000000, B00000000, B11001111, B00000000, B10001001001, B000000000, , B11111111, B00000000, B00000000, B00000000, B00000000, B00000000, }; byte zero []={ // Wordt gebruikt om een ​​'0' weer te geven bij het weergeven van de score B00000000, B00000000, B00111100, B01000010, B01000010, B01000010, B00111100, B00000000 }; byte one[]={ // Wordt gebruikt om een ​​'1' weer te geven bij het weergeven van de score B00000000, B00000000, B10001000, B10000100, B11111110, B10000000, B10000000, B00000000 }; byte two[]={ // Wordt gebruikt om een ​​'2' weer te geven bij het weergeven van de score B00000000, B01100010, B01010001, B01010001, B01001001, B01000110, B00000000, B00000000};byte three[]={ // Wordt gebruikt om een ​​' weer te geven 3' voor bij het weergeven van de score B00000000, B00100110, B011000001, B01001001, B00110110, B00000000, B00000000, B00000000};byte four[]={ // Wordt gebruikt om een ​​'4' weer te geven voor bij het weergeven van de score B00000000, B00000000, B00001111 B00001000, B00001000, B11111111, B00000000, B00000000};byte five[]={ // Wordt gebruikt om een ​​'5' weer te geven bij het weergeven van de score B00000000, B00000000, B10011110, B10010010, B10010010, B11110010, B00000000, B00000000};byte displayevens =0;byte displayrow=0;byte displayindex=0;byte displayodds=1;unsigned long time;unsigned long currenttime;/* Nu hebben we een LedControl nodig om mee te werken. pin 12 is verbonden met de DataIn pin 11 is verbonden met de CLK pin 10 is verbonden met LOAD We hebben 6 MAX72XX. */byte mode;byte deflect;byte carry;int line;LedControl lc=LedControl(12,11,10,6);long randnummer;byte dir;int startpos;byte rij;byte kolom;long randNumber;byte start;byte diry;int pass;byte limit;#define leftpaddle 0 //linker pong knop is aangesloten op analoge ingang 0#define rightpaddle 1 // rechter pong knop is aangesloten op analoge ingang 1int directionpong;int rightpongval;int leftpongval;byte blinkx;byte pong[]={ // Slaat de positie van de bal en paddles op B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000 , B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000000000, B00000000 , B00000000, B00000000, B00000000, B00000000, B00000000}; void setup(){ pinMode(leftpaddle, INPUT); // de peddel is een invoer. pinMode(rightpaddle, INPUT); // de peddel is een invoer. Serieel.begin(9600); // seriële communicatie voor foutopsporing. Stel in op 9600 baud // Deze onderstaande staten gaan door en stellen de matrices in op de gegeven instellingen lc.shutdown(0,false); lc.setIntensity(0,1); lc.clearDisplay(0); lc.shutdown(1,false); lc.setIntensity(1,1); lc.clearDisplay(1); lc.shutdown(2,false); lc.setIntensity(2,1); lc.clearDisplay(2); lc.shutdown(3,false); lc.setIntensity(3,1); lc.clearDisplay (3); lc.shutdown(4,false); lc.setIntensity(4,1); lc.clearDisplay(4); lc.shutdown(5,false); lc.setIntensity(5,1); lc.clearDisplay(5); while(displayevens<5){ while(displayrow<=7){ lc.setRow(displayevens,displayrow,pongdisplay[displayindex]); displayrow++; displayindex+=2; } weergaverij=0; displayevens+=2; } weergaverij=0; displayindex=1; randomSeed(analogRead(4)); begin=1; tijd=millis(); huidige tijd=millis(); while(currenttime-time<3000){ leftpongval=analogRead(leftpaddle); leftpongval=kaart(linkspongval,1023,20,2,0); if(leftpongval==0){ lc.setLed(3,2,7,true); lc.setLed(3,3,7,false); lc.setLed(3,4,7,false); modus=1; limiet=2; } if(leftpongval==1){ lc.setLed(3,2,7,true); lc.setLed(3,3,7,true); lc.setLed(3,4,7,false); modus =2; limiet=1; } if(leftpongval==2){ lc.setLed(3,2,7,true); lc.setLed(3,3,7,true); lc.setLed(3,4,7,true); modus =3; limiet=2; } vertraging(50); lc.clearDisplay (3); huidige tijd=millis(); } } void loop(){ paddles(); pongsim(); scherm(); } void paddles () {// leest gegevens van de paddles en geeft die weer in de array int searchbit; int carry=0; // Serial.print ("LeftPaddle:"); // Serial.println (analogRead (leftpaddle)); leftpongval=analogRead(leftpaddle); leftpongval=kaart(linkspongval,0,1010,0,13); rightpongval=analogRead(rightpaddle); rightpongval=kaart(rightpongval,1023,20,0,13); // Serial.print ("RightPaddle:"); // Serial.println(rightpongval); //wist de vorige paddle om de volgende weer te geven pong[0]=B00000000; pong[1]=B00000000; pong[46]=B00000000; pong[47]=B00000000; //-------------------------------rechter paddle if(mode!=3){ if(rightpongval<=7) { rightpongval=kaart(rightpongval,0,7,7,0); bitSet(pong[46], rechterpongval); if(rightpongval-1>=0){ bitSet(pong[46],rightpongval-1); } else{ bitSet(pong[47], 7); if(mode!=2){ bitSet(pong[47],6); dragen=1; } } if(mode!=2){ if(carry==0){ if(rightpongval-2>=0){ bitSet(pong[46], rightpongval-2); } else{ bitSet(pong[47], 7); dragen=1; } } } } if(rightpongval>7){ rightpongval=map(rightpongval,8,13,7,limiet); bitSet(pong[47],rightpongval); bitSet(pong[47],rightpongval-1); if(mode!=2){ bitSet(pong[47],rightpongval-2); } } } else{ pong[46]=B1111111; pong[47]=B11111111; lc.setRow(4,7,pong[46]); lc.setRow(5,7,pong[47]); } //---------------------------------- linker paddle carry=0; if(leftpongval<=7){ leftpongval=map(leftpongval,0,7,7,0); bitSet(pong[0], leftpongval); if(leftpongval-1>=0){ bitSet(pong[0],leftpongval-1); } else{ bitSet(pong[1], 7); if(mode!=2){ bitSet(pong[1],6); dragen=1; } } if(mode!=2){ if(carry==0){ if(leftpongval-2>=0){ bitSet(pong[0], leftpongval-2); } else{ bitSet(pong[1], 7); } } } } if(leftpongval>7){ leftpongval=map(leftpongval,8,13,7,limiet); bitSet(pong[1],linkspongval); bitSet(pong[1],leftpongval-1); if(mode!=2){ bitSet(pong[1],leftpongval-2); } } }void pongsim(){ if( ((line==2 || line==3) &&diry ==0) || ((line==44 || line==45) &&diry==1) ){ ball_meets_paddle(); } if(start==1){ // Een nieuw spel starten randnumber=random(1,7); // Verzin een willekeurig startbit dir=willekeurig (2); // Verzin een willekeurige beweging van links naar rechts of van rechts naar links diry=willekeurig (2); // Verzin een willekeurige startrichting van de y-beweging if(diry==0){ // Als de y-richting 0 is. Beweging van onder naar boven line=random(30,34); // Verzin een willekeurige startlijn tussen 30-34 bitSet(pong[line],randnumber); // Zet de bit op de willekeurige lijn en de willekeurige bit gelijk aan 1 in de pong-array } if(diry==1){ // Als de y-richting 1 is. Beweging van boven naar beneden line=random (12,16); // Verzin een willekeurige startlijn tussen 12-16 bitSet(pong[line],randnumber); // Zet de bit op de willekeurige lijn en de willekeurige bit gelijk aan 1 in de pong-array} start=0; // Zet de startvariabele terug gelijk aan 0 } if(diry==0){ // Als de bal van onder naar boven beweegt if(dir==0){ // Als de bal van rechts naar links beweegt if (deflect==0 &&carry==0){ // Als de bal niet afbuigt of overgaat naar een andere matrixlijn-=2; // Voortgang van de bal naar de andere kant door 2 af te trekken van de lijn pong[line]=pong[line+2] <<1;// Verschuif de bal naar links en stel deze gelijk aan de nieuwe lijn pong[line+2] =B00000000; // Wis de oude lijn van de bal } if(carry==1){ // Als de bal moet worden overgedragen naar een nieuwe matrixlijn-=3; // Beweeg de bal naar de andere kant door 3 af te trekken van de lijn pong[line]=B00000001; // Stel de nieuwe regel in pong[line+3]=B00000000; // Wis de oude lijn van de bal carry =0; // Zet de carry-variabele terug op 0 return; // We zijn hier klaar } if(deflect==1){ // Als de bal van de muur moet afbuigen-=2; // Voortgang van de bal naar de andere kant door 2 af te trekken van de lijn pong[line]=B01000000; // Stel de nieuwe regel in pong [line+2]=B00000000; // Wis de oude lijn van de balafbuiging =0; // Zet de deflect variabele terug op 0 dir=1; // Verander de richting van links naar rechts terug; // We zijn hier klaar } if(bitRead(pong[line],7)==1){ // Als de bal op het 7e bit van de regel staat if(line==3|| line==5 || line==7 || line==9 || line==11 || line==13 || line==15 || // Als de lijn een oneven lijn is line==17 || line==19 | | line==21 || line==23 || line==25 || line==27 || line==29 || line==31 || line==33 || line==35 || line ==37 || line==39 || line==41 ||line==43 || line==45){ carry=1; // De bal moet worden overgedragen naar een andere matrixretour; // We zijn hier klaar } else{ // Anders ligt de bal op een even lijn if(line!=2){ // De lijn kan geen 2 zijn omdat de bal de peddel raakt bij 2 deflect=1; // De bal moet van de muurretour afbuigen; // We zijn hier klaar } } } } // De opmerkingen hierboven zouden alle dingen hieronder moeten uitleggen. Sommige dingen, andere parameters. if(dir==1){ if(deflect==0 &&carry==0){ line-=2; pong[lijn]=pong[lijn+2]>> 1; pong[line+2]=B00000000; } if(carry==1){ lijn--; pong[regel]=B10000000; pong[line+1]=B00000000; dragen=0; opbrengst; } if(deflect==1){ line-=2; pong[line]=B00000010; pong[line+2]=B0000000; afbuigen =0; dir=0; opbrengst; } if(bitRead(pong[line],0)==1){ if( line==2 || line==4 || line==6 || line==8 || line==10 || line ==12 || line==14 || line==16 || line==18 || line==20 || line==22 || line==24 || line==26 || line==28 || line==30 || line==32 || line==34 || line==36|| line==38 || line==40 ||line==42 || line==44 ) { dragen=1; opbrengst; } else{ if(line!=3){ deflect=1; opbrengst; } } } } }//------------------------------------------- -diry =1 hieronder if(diry==1){ if(dir==0){ if(deflect==0 &&carry==0){ line+=2; pong[line]=pong[line-2] <<1; pong[line-2]=B00000000; } if(carry==1){ line+=1; pong[line]=B00000001; pong[line-1]=B00000000; dragen=0; opbrengst; } if(deflect==1){ line+=2; pong[line]=B01000000; pong[line-2]=B00000000; afbuigen =0; dir=1; opbrengst; } if(bitRead(pong[line],7)==1){ if( line==5 || line==7 || line==9 || line==11 || line==13 || line ==15 || line==17 || line==19 || line==21 || line==23 || line==25 || line==27 || line==29 || line==31 || line==33 || line==35 || line==37 || line==39|| line==41 ||line==43 || line==45){ carry=1; opbrengst; } else{ if(line!=44){ deflect=1; opbrengst; } } } } if(dir==1){ if(deflect==0 &&carry==0){ line+=2; pong[line]=pong[line-2]>> 1; pong[line-2]=B00000000; } if(carry==1){ line+=3; pong[regel]=B10000000; pong[line-3]=B00000000; dragen=0; opbrengst; } if(deflect==1){ line+=2; pong[line]=B00000010; pong[line-2]=B0000000; afbuigen =0; dir=0; opbrengst; } if(bitRead(pong[line],0)==1){ if(line==2|| line==4 || line==6 || line==8 || line==10 || line ==12 || line==14 || line==16 || line==18 || line==20 || line==22 || line==24 || line==26 || line==28 || line==30 || line==32 || line==34 || line==36|| line==38 || line==40 ||line==42 || line==44 ) { dragen=1; opbrengst; } else{ if(line!=45){ deflect=1; opbrengst; } } } } }}void displayscreen(){ displayevens=0; weergaverij=0; displayindex=0; displayodds=1; while(displayevens<5){ while(displayrow<=7){ lc.setRow(displayevens,displayrow,pong[displayindex]); displayrow++; displayindex+=2; } weergaverij=0; displayevens+=2; } weergaverij=0; displayindex=1; while(displayodds<6){ while(displayrow<8){ lc.setRow(displayodds,displayrow,pong[displayindex]); displayrow++; displayindex+=2; } weergaverij=0; weergavekansen+=2; }} void clearscreen(){ int clearing=0; while(clearing<49){ pong[clearing]=B00000000; opruimen++; }}void ball_meets_paddle(){ byte zoeken1=0; if(diry==0){ // bal gaat omhoog if(dir==0){ // bal beweegt van rechts naar links while(search1<8){ //find the bit the ball is on if(bitRead(pong [line],search1)==1){ // vond het bit waar de bal op staat if(line==2){ if( search1!=6 &&search1!=7){ //als het op regel 2 staat, maak zeker dat het niet op die speciale bits staat if( bitRead(pong[0], search1)==1){ // controleer of er een peddel is diry=1; // verander de y-richting zodat deze naar een andere paddle-toon gaat (9.500.100); } else if( bitRead(pong[0], search1+1)==1){ diry=1; dir=1; toon (9.500.100); if(search1==0){ carry=1; } } else { // geen paddle, de baltoon gemist (9.500.300); scherm wissen(); begin=1; vertraging (1000); scorelinks(); } } if(search1==6){ //special bit, moet hetzelfde pad afbuigen als het binnenkomt if(bitRead(pong[0],7)==1){ // there is a paddle there pong[2] =B01000000; dir=1; diry=1; toon (9.500.100); } else{// heb het gemist, geen peddel. toon (9.500.300); scherm wissen(); begin=1; vertraging (1000); scorelinks(); } } if(search1==7){//special bit, moet eerst van de muur stuiteren if(bitRead(pong[0],6)==1){// vond de paddle pong[2]=B00100000; diry=1; dir=1; lijn =2; toon (9.500.100); scherm(); } else{// heb het gemist, geen peddel. toon (9.500.300); scherm wissen(); begin=1; vertraging (1000); scorelinks(); } } } if(line==3){ if( search1!=7){ // if it on line 3, zorg ervoor dat het niet op die speciale bits staat if( bitRead(pong[1], search1)==1) { // controleer of er een peddel is diry=1; // verander de y-richting zodat deze naar een andere paddle-toon gaat (9.500.100); } else if( bitRead(pong[1], search1+1)==1){ diry=1; dir=1; toon (9.500.100); } else { // geen paddle, de baltoon gemist (9.500.300); scherm wissen(); begin=1; vertraging (1000); scorelinks(); } } if(search1==7){//special bit, moet worden overgedragen naar de volgende matrix if(bitRead(pong[1],7)==1){ // vond daar een peddel //pong[2] =B10000000; // wis de rij op dir=0; // richting is hetzelfde diry =1; // y richting verandert toon (9.500.100); } else if(bitRead(pong[0],0)==1){ dir=1; diry=1; toon (9.500.100); dragen=0; } else{// geen paddle, miste de baltoon (9.500.300); scherm wissen(); begin=1; vertraging (1000); scorelinks(); } } } } zoek1++; } } if(dir==1){//ball beweegt van links naar rechts while(search1<8){ //find the bit the ball is on if(bitRead(pong[line],search1)==1) { // vond het bit waar de bal op staat if(line==3){ if( search1!=1 &&search1!=0){ //als het op regel 3 staat, zorg er dan voor dat het niet op een speciaal bit staat if( bitRead(pong[1], search1)==1){ //check of er een paddle diry=1 is; // verander de y-richting zodat de bal naar de andere paddle-toon gaat (9.500.100); } else if(bitRead(pong[1], search1-1)==1){ diry=1; dir=0; toon (9.500.100); if(search1==7){ carry=1; } } else{ // geen paddle, de baltoon gemist (9.500.300); scherm wissen(); begin=1; vertraging (1000); scorelinks(); } } if(search1==1){ if(bitRead(pong[1],0)==1){ pong[3]=B00000010; dir=0; diry=1; toon (9.500.100); } anders{ toon (9.500.300); scherm wissen(); begin=1; vertraging (1000); scorelinks(); } } if(search1==0){ if(bitRead(pong[1],0)==1){ pong[3]=B00000100; diry=1; dir=0; lijn =3; toon (9.500.100); scherm(); } anders{ toon (9.500.300); scherm wissen(); begin=1; vertraging (1000); scorelinks(); } } } if(line==2){ if( search1!=0){ if(bitRead(pong[0], search1)==1){ //check of er een paddle diry=1; // verander de y-richting zodat de bal naar de andere paddle-toon gaat (9.500.100); } else if(bitRead(pong[0], search1-1)==1){ diry=1; dir=0; toon (9.500.100); } else{ // geen paddle, miste de baltoon (9.500.300); scherm wissen(); begin=1; vertraging (1000); scorelinks(); } } if(search1==0){ if(bitRead(pong[0],0)==1){ // pong[2]=B00000001; lijn =2; dir=1; diry=1; toon (9.500.100); opbrengst; } else if(bitRead(pong[1],7)==1){ diry=1; dir=0; toon (9.500.100); dragen=0; } anders{ toon (9.500.300); scherm wissen(); begin=1; vertraging (1000); scorelinks(); } } } } zoek1++; } } }//--------------------------------------------- ------------------------- if(diry==1){ // bal beweegt omhoog if(dir==0){ // bal beweegt van rechts naar links while(search1<8){ //find the bit the ball is on if(bitRead(pong[line],search1)==1){ //found the bit the ball is on if(line==44){ if( search1!=6 &&search1!=7){ //als het op regel 2 staat, zorg er dan voor dat het niet op die speciale bits staat if( bitRead(pong[46], search1)==1){ // controleer of er een peddel is diry=0; // verander de y-richting zodat deze naar een andere paddle-toon gaat (9.500.100); } else if( bitRead(pong[46], search1+1)==1){ diry=0; dir=1; toon (9.500.100); if(search1==0){ carry=1; } } else { // geen paddle, de baltoon gemist (9.500.300); scherm wissen(); begin=1; vertraging (1000); scorerecht(); } } if(search1==6){ //special bit, moet hetzelfde pad afbuigen als het binnenkomt if(bitRead(pong[46],7)==1){ // daar is een paddle dir=1; diry=0; toon (9.500.100); } else{// heb het gemist, geen peddel. toon (9.500.300); scherm wissen(); begin=1; vertraging (1000); scorerecht(); } } if(search1==7){//special bit, moet eerst van de muur stuiteren if(bitRead(pong[46],6)==1){// vond de paddle pong[44]=B00100000; diry=0; dir=1; toon (9.500.100); scherm(); lijn=44; opbrengst; } } } if(line==45){ if( search1!=7){ // if it on line 3, zorg ervoor dat het niet op die speciale bits staat if( bitRead(pong[47], search1)==1) { // controleer of er een peddel is diry=0; // verander de y-richting zodat deze naar een andere paddle-toon gaat (9.500.100); } else if( bitRead(pong[47], search1+1)==1){ diry=0; dir=1; toon (9.500.100); } else { // geen paddle, de baltoon gemist (9.500.300); scherm wissen(); begin=1; vertraging (1000); scorerecht(); } } if(search1==7){//special bit, moet worden overgedragen naar de volgende matrix if(bitRead(pong[47],7)==1){ // vond daar een peddel // pong[45] =B10000000; // wis de rij die het was op line=45; dir=0; // richting is hetzelfde diry =0; // y richting verandert toon (9.500.100); } else if(bitRead(pong[46],0)==1){ dir=1; diry=0; toon (9.500.100); dragen=0; } else{// geen paddle, miste de baltoon (9.500.300); scherm wissen(); begin=1; vertraging (1000); scorerecht(); } } } } zoek1++; } } if(dir==1){//ball beweegt van links naar rechts while(search1<8){ //find the bit the ball is on if(bitRead(pong[line],search1)==1) { // vond het bit waar de bal op staat if(line==45){ if( search1!=1 &&search1!=0){ //als het op regel 3 staat, zorg er dan voor dat het niet op een speciaal bit staat if( bitRead(pong[47], search1)==1){ //check of er een paddle diry=0 is; // verander de y-richting zodat de bal naar de andere paddle-toon gaat (9.500.100); } else if(bitRead(pong[47], search1-1)==1){ diry=0; dir=0; toon (9.500.100); if(search1==7){ carry=1; } } else{ // geen paddle, de baltoon gemist (9.500.300); scherm wissen(); begin=1; vertraging (1000); scorerecht(); } } if(search1==1){ if(bitRead(pong[47],0)==1){ pong[43]=B00000010; dir=0; diry=0; toon (9.500.100); } anders{ toon (9.500.300); scherm wissen(); begin=1; vertraging (1000); scorerecht(); } } if(search1==0){ if(bitRead(pong[47],1)==1){ pong[45]=B00000100; diry=0; dir=0; lijn=45; toon (9.500.100); scherm(); } anders{ toon (9.500.300); scherm wissen(); begin=1; vertraging (1000); scorerecht(); } } } if(line==44){ if( search1!=0){ if(bitRead(pong[46], search1)==1){ //check of er een paddle diry=0 is; // verander de y-richting zodat de bal naar de andere paddle-toon gaat (9.500.100); } else if(bitRead(pong[46], search1-1)==1){ diry=0; dir=0; toon (9.500.100); } else{ // geen paddle, miste de baltoon (9.500.300); scherm wissen(); begin=1; vertraging (1000); scorerecht(); } } if(search1==0){ if(bitRead(pong[46],0)==1){ pong[44]=B00000001; lijn=44; dir=1; diry=0; toon (9.500.100); } else if(bitRead(pong[47],7)==1){ dir=0; diry=0; toon (9.500.100); dragen=0; } anders{ toon (9.500.300); scherm wissen(); begin=1; vertraging (1000); scorerecht(); } } } } zoek1++; } } } pas=1; search1=0;}void scoreleft(){ clearscreen(); rechtsscore++; setscore(); scherm(); if(rightscore==5){ while(blinkx++<4){ clearscreen(); scherm(); vertraging (500); setscore(); scherm(); vertraging (500); } blinkx=0; rechterscore=0; linkerscore=0; } anders{ vertraging (2000); } clearscreen();}void scoreright(){ clearscreen(); linkerscore++; setscore(); scherm(); if(leftscore==5){ while(blinkx++<4){ clearscreen(); scherm(); vertraging (500); setscore(); scherm(); vertraging (500); } blinkx=0; rechterscore=0; linkerscore=0; } anders{ vertraging (2000); } clearscreen();}void setscore(){ byte setScoreLoop=0; while(setScoreLoop<=7){ if(leftscore==0){ pong[setScoreLoop*2]=nul [setScoreLoop]; } if(leftscore==1){ pong[setScoreLoop*2]=one[setScoreLoop]; } if(leftscore==2){ pong[setScoreLoop*2]=two[setScoreLoop]; } if(leftscore==3){ pong[setScoreLoop*2]=drie[setScoreLoop]; } if(leftscore==4){ pong[setScoreLoop*2]=four[setScoreLoop]; } if(leftscore==5){ pong[setScoreLoop*2]=vijf[setScoreLoop]; } if(rightscore==0){ pong[32+(setScoreLoop*2)]=nul [setScoreLoop]; } if(rightscore==1){ pong[32+(setScoreLoop*2)]=one[setScoreLoop]; } if(rightscore==2){ pong[32+(setScoreLoop*2)]=two[setScoreLoop]; } if(rightscore==3){ pong[32+(setScoreLoop*2)]=drie[setScoreLoop]; } if(rightscore==4){ pong[32+(setScoreLoop*2)]=four[setScoreLoop]; } if(rightscore==5){ pong[32+(setScoreLoop*2)]=five[setScoreLoop]; } setScoreLoop++; } pong[20]=B00011000; pong[22]=B00011000; pong[24]=B00011000; } 

Schema's


Productieproces

  1. Arduino-gyroscoopspel met MPU-6050
  2. Arduino Pong Game - OLED-scherm
  3. Arduino-gamecontroller
  4. Bedien muntvangers met Arduino
  5. Arduino Pong Game op 24x16 Matrix met MAX7219
  6. Arduino Nano Tetris-spel op zelfgemaakte 16x8 Matrix
  7. Arduino met Bluetooth om een ​​LED te bedienen!
  8. Pixel Chaser-game
  9. Een LED-matrix besturen met Arduino Uno
  10. NeoMatrix Arduino Pong
  11. Zonnestraling meten met Arduino