Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <LcdBarGraph.h>
- #include <math.h>
- #include <LiquidCrystal.h>
- int cont=0;
- int x=0;
- int vet[9] = { -2, -2, -2, -2, -2, -2, -2, -2, -2 };
- LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
- byte lcdNumCols = 16;
- LcdBarGraph lbg(&lcd, 16);
- int arg=0;
- int argtemp=0;
- int maxarg=9;
- int page=0;
- int maxpage=0;
- int adc_key_in = 0;
- int bpm = 30;
- int buttonState;
- int buttonState2;
- int buttonState3;
- float vballx = 1;
- float vbally = 0.2;
- float xball = 1;
- float yball = 1;
- int xmax = 80;
- int delaytime = 60;
- int score;
- byte dot[8] = {
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0
- };
- byte paddle[8] = {
- B00000,
- B00000,
- B00000,
- B00000,
- B00000,
- B11000,
- B11000,
- B11000
- };
- byte wallFR [8] = {
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0
- };
- byte wallFL [8] = {
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0
- };
- byte wallBR [8] = {
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0
- };
- byte wallBL [8] = {
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0
- };
- boolean wallarray [16] = {
- 1,1,1,1,
- 1,1,1,1,
- 1,1,1,1,
- 1,1,1,1};
- int paddle_pos = 1;
- const int whole = (60000/bpm);
- const int half = 30000/bpm;
- const int quarter = 15000/bpm;
- const int eight = 7500 / bpm;
- const int sixteenth = 3750 / bpm;
- const int thirty2 = 1875 / bpm;
- int getserial(){ // ok non fate troppe domande, serve per ottenere da seriale un numero intero che supera il 9 cioè 10 viene scomposto in 1 e 0 in pratica qui lo "rimonto"
- while (Serial.available() > 0)
- {
- vet[cont] = Serial.read()-48; //trasformo da codice ascii a numero utilizzabil
- cont++;
- delay(10);
- }
- if(cont > 0)
- {
- cont = 0;
- if (vet[8] == -2 && vet[7] == -2 && vet[6] == -2 && vet[5] == -2 && vet[4] == -2 && vet[3] == -2 && vet[2] == -2 && vet[1] == -2 )
- {
- x = vet[0];
- }
- else
- if (vet[8] == -2 && vet[7] == -2 && vet[6] == -2 && vet[5] == -2 && vet[4] == -2 && vet[3] == -2 && vet[2] == -2 ) //
- {
- x = (vet[0]* 10 + vet[1] );
- }
- else
- if (vet[8] == -2 && vet[7] == -2 && vet[6] == -2 && vet[5] == -2 && vet[4] == -2 && vet[3] == -2 ) //
- {
- x = (vet[0] * 100 + vet[1]* 10+ vet[2]);
- }
- else
- if (vet[8] == -2 && vet[7] == -2 && vet[6] == -2 && vet[5] == -2 && vet[4] == -2 )
- {
- x = (vet[0] * 1000 + vet[1] * 100 + vet[2]* 10 + vet[3]);
- } else
- if (vet[8] == -2 && vet[7] == -2 && vet[6] == -2 && vet[5] == -2 )
- {
- x = (vet[0] * 10000 + vet[1] * 1000 + vet[2]* 100 + vet[3]* 10 + vet[4]);
- } else
- if (vet[8] == -2 && vet[7] == -2 && vet[6] == -2 )
- {
- x = (vet[0] * 100000 + vet[1] * 10000 + vet[2]* 1000 + vet[3]* 100 + vet[4]* 10 + vet[5]);
- } else
- if (vet[8] == -2 && vet[7] == -2 )
- {
- x = (vet[0] * 1000000 + vet[1] * 100000 + vet[2]* 10000 + vet[3]* 1000 + vet[4]* 100 + vet[5]* 10+ vet[6]);
- } else
- if (vet[8] == -2 )
- {
- x = (vet[0] * 10000000 + vet[1] * 1000000 + vet[2]* 100000 + vet[3]* 10000 + vet[4]* 1000 + vet[5]* 100 + vet[6]* 10+ vet[6]);
- } else
- x = (vet[0] * 100000000 + vet[1] * 10000000 + vet[2]* 1000000 + vet[3]* 100000 + vet[4]* 10000 + vet[5]* 1000 + vet[6]* 100 + vet[7] * 10 + vet[8]);
- if (vet[0] < -2 || vet[1] < -2 || vet[2] < -2 || vet[3] < -2 || vet[4] < -2 || vet[5] < -2 || vet[6] < -2 || vet[7] < -2 || vet[8] < -2 ) x = 0;
- if (vet[0] > 9 || vet[1] > 9 || vet[2] > 9 || vet[3] > 9 || vet[4] > 9 || vet[5] > 9 || vet[6] > 9 || vet[7] > 9 || vet[8] > 9) x = 0;
- if (x == -2 || x== -1) x=0;
- if (vet[0] >= -2 && vet[1] >= -2 && vet[2] >= -2 && vet[3] >= -2 && vet[4] >= -2 && vet[5] >= -2 && vet[6] >= -2 && vet[7] >= -2 && vet[8] >= -2 &&
- vet[0] <= 9 && vet[1] <= 9 && vet[2] <= 9 && vet[3] <= 9 && vet[4] <= 9 && vet[5] <= 9 && vet[6] <= 9 && vet[7] <= 9 && vet[8] <= 9 )
- vet[0]=-2;
- vet[1]=-2;
- vet[2]=-2;
- vet[3]=-2;
- vet[4]=-2;
- vet[5]=-2;
- vet[6]=-2;
- vet[7]=-2;
- vet[8]=-2;
- return(x);
- }
- }
- void getPaddle() {
- if (buttonState == HIGH){
- if (paddle_pos > 1) paddle_pos -= 1;
- }
- if (buttonState2 == HIGH){
- if (paddle_pos < 14) paddle_pos += 1;
- }
- }
- int exitcheck(){
- buttonState3 = digitalRead(8);
- if (buttonState3 == HIGH){
- lcd.clear();
- delay(200);
- arg=0;
- page=0;
- return 1;
- }
- }
- void drawwalls()
- {
- for (int i=0; i < 8; i+=4)
- {
- for (int j = 0; j<4; j++)
- {
- wallFL[j+i]=wallarray[i/2]*16+wallarray[i/2]*8+wallarray[i/2+1]*2+wallarray[i/2+1]*1;
- wallFR[j+i]=wallarray[i/2+4]*16+wallarray[i/2+4]*8+wallarray[i/2+5]*2+wallarray[i/2+5]*1;
- wallBL[j+i]=wallarray[i/2+8]*16+wallarray[i/2+8]*8+wallarray[i/2+9]*2+wallarray[i/2+9]*1;
- wallBR[j+i]=wallarray[i/2+12]*16+wallarray[i/2+12]*8+wallarray[i/2+13]*2+wallarray[i/2+13]*1;
- }
- }
- lcd.createChar(2,wallFL);
- lcd.createChar(3,wallFR);
- lcd.createChar(4,wallBL);
- lcd.createChar(5,wallBR);
- lcd.setCursor(14,0);
- lcd.write((byte)2);
- lcd.write((byte)4);
- lcd.setCursor(14,1);
- lcd.write((byte)3);
- lcd.write((byte)5);
- }
- void placedot(int x, int y) {
- createdot(x%5,y%8);
- lcd.setCursor(x/5,y/8);
- lcd.write((byte)0);
- }
- void placepaddle(int y) {
- for (int i=0;i<8;i++){
- paddle[i]=0x0;
- }
- if (y%8>0) paddle[y%8-1] = 0x10;
- paddle[y%8] = 0x10;
- if (y%8<7)paddle[y%8+1] = 0x10;
- lcd.createChar(1,paddle);
- lcd.setCursor(0,y/8);
- lcd.write((byte)1);
- }
- void createdot(int x, int y) {
- for (int i=0;i<8;i++){
- dot[i]=0x0;
- }
- if (y > 0) dot[y-1] = (B11000 >> x);
- dot[y] = (B11000 >> x);
- lcd.createChar(0,dot);
- }
- int blockcounter = 0;
- void handlecollisions()
- {
- xball = xball + vballx;
- yball = yball + vbally;
- //Handle collisions in y
- if ((yball > 15) || (yball < 1)) {
- vbally = -vbally;
- }
- //Handle Collisions in x
- if (xball > 69) //is the ball in the correct area
- {
- for (int i=0;i < 16; i++)
- {
- if (xball>(70+2*(i%2)+5*(i/8))) {//x condition met
- if ((yball>(2*(i%8)))&&(yball<(2*(i%8)+4))){ // y condition met
- if (wallarray[i] == 1){ //wall exists
- delay(eight);
- wallarray[i]=0;
- vballx = -vballx;
- xball = 70;
- }
- }
- }
- }
- }
- if (xball > xmax) {
- vballx = -vballx;
- }
- if (xball < 1) {
- if (paddle_pos > int(yball)-2 && paddle_pos < int(yball)+2){
- delay(sixteenth);
- vballx = -vballx;
- vbally *= random(1,4) ;
- vbally /= 2;
- Serial.println(vbally);
- score += 1;
- //xmax -= 2;
- delaytime -= 2;
- vballx += 0.1;
- int left = 0;
- for (int i=0;i<16;i++)
- { left += wallarray[i];
- }
- if (left < 1) {
- lcd.clear();
- lcd.print("EVVIVA!");
- lcd.print(score);
- delay(3000);
- xmax = 80;
- score = 0;
- delaytime = 60;
- for (int i=0;i< 16;i++)
- {wallarray[i]=1;}
- }
- }
- else {
- vballx = -vballx;
- vbally *= random(1,4) ;
- vbally /= 2;
- score -=1;
- }
- }
- }
- void setup() {
- pinMode(8, INPUT);
- pinMode(7, INPUT);
- pinMode(6, INPUT);
- pinMode(A5, OUTPUT);
- pinMode(A4, OUTPUT);
- pinMode(A3, OUTPUT);
- pinMode(13, OUTPUT);
- digitalWrite(A5,LOW);
- digitalWrite(A4,LOW);
- digitalWrite(A3,LOW);
- digitalWrite(13,HIGH);
- lcd.begin(16, 2);
- lcd.print("Benvenuto!");
- delay(1000);
- lcd.clear();
- lcd.print("Fisica Portatile");
- lcd.setCursor(0, 1);
- lcd.print("Karavania L.");
- lcd.setCursor(0, 0);
- delay(2000);
- buttonState = digitalRead(6);
- buttonState2 = digitalRead(7);
- buttonState3 = digitalRead(8);
- Serial.begin(9600);
- }
- void loop() {
- lcd.clear();
- /////////////////////////////////////////////
- while(arg == 0){
- buttonState = digitalRead(6);
- buttonState2 = digitalRead(7);
- buttonState3 = digitalRead(8);
- if(argtemp==0){
- lcd.setCursor(0, 0);
- lcd.print("Leggi Newton");
- lcd.setCursor(0, 1);
- lcd.print(argtemp);
- }
- if(argtemp==1){
- lcd.setCursor(0, 0);
- lcd.print("Il Pendolo");
- lcd.setCursor(0, 1);
- lcd.print(argtemp);
- }
- if(argtemp==2){
- lcd.setCursor(0, 0);
- lcd.print("Luce");
- lcd.setCursor(0, 1);
- lcd.print(argtemp);
- }
- if(argtemp==3){
- lcd.setCursor(0, 0);
- lcd.print("Temperatura");
- lcd.setCursor(0, 1);
- lcd.print(argtemp);
- }
- if(argtemp==4){
- lcd.setCursor(0, 0);
- lcd.print("Esposimetro");
- lcd.setCursor(0, 1);
- lcd.print(argtemp);
- }
- if(argtemp==5){
- lcd.setCursor(0, 0);
- lcd.print("VU Meter");
- lcd.setCursor(0, 1);
- lcd.print(argtemp);
- }
- if(argtemp==6){
- lcd.setCursor(0, 0);
- lcd.print("The Game");
- lcd.setCursor(0, 1);
- lcd.print(argtemp);
- }
- if(argtemp==7){
- lcd.setCursor(0, 0);
- lcd.print("Credits");
- lcd.setCursor(0, 1);
- lcd.print(argtemp);
- }
- if(argtemp==8){
- lcd.setCursor(0, 0);
- lcd.print("La Mia Vita...");
- lcd.setCursor(0, 1);
- lcd.print(argtemp);
- }
- if(argtemp==9){
- lcd.setCursor(0, 0);
- lcd.print("Seriale...");
- lcd.setCursor(0, 1);
- lcd.print(argtemp);
- }
- if (buttonState == HIGH){
- lcd.clear();
- delay(200);
- if(argtemp<=0){
- argtemp=maxarg;
- }
- else{
- argtemp--;
- }
- }
- if (buttonState2 == HIGH){
- lcd.clear();
- delay(200);
- if(argtemp>=0){
- lcd.setCursor(0, 1);
- lcd.print(argtemp);
- if(argtemp<=maxarg){
- argtemp++;
- }
- if(argtemp>maxarg){
- argtemp=0;
- }
- }
- }
- if (buttonState3 == HIGH){
- lcd.clear();
- delay(200);
- arg=argtemp+1;
- //argtemp=0;
- }
- }
- if(arg>0){
- if(arg==1){
- while(arg==1){
- maxpage=6;
- buttonState = digitalRead(6);
- buttonState2 = digitalRead(7);
- buttonState3 = digitalRead(8);
- if(page==0){
- lcd.setCursor(0, 0);
- lcd.print("Un corpo sottopo");
- lcd.setCursor(0, 1);
- lcd.print("sto a forze null");
- }
- if(page==1){
- lcd.setCursor(0, 0);
- lcd.print("si muove di moto");
- lcd.setCursor(0, 1);
- lcd.print("rettilineo unif.");
- }
- if(page==2){
- lcd.setCursor(0, 0);
- lcd.print("Seconda legge:");
- lcd.setCursor(0, 1);
- lcd.print("F(v)=m*a(v)");
- }
- if(page==3){
- lcd.setCursor(0, 0);
- lcd.print("Terza legge:");
- lcd.setCursor(0, 1);
- lcd.print("Se il corpo 1 exe");
- }
- if(page==4){
- lcd.setCursor(0, 0);
- lcd.print("una forza F sul c");
- lcd.setCursor(0, 1);
- lcd.print("orpo 2 allora il ");
- }
- if(page==5){
- lcd.setCursor(0, 0);
- lcd.print("corpo 2 esercita ");
- lcd.setCursor(0, 1);
- lcd.print("una forza -F su 1");
- }
- if(page==6){
- lcd.setCursor(0, 0);
- lcd.print("The End! ");
- lcd.setCursor(0, 1);
- lcd.print("----------------");
- }
- if (buttonState == HIGH){
- lcd.clear();
- delay(200);
- if(page<=0){
- page=maxpage;
- }
- else{
- page--;
- }
- }
- if (buttonState2 == HIGH){
- lcd.clear();
- delay(200);
- if(page>=0){
- if(page<=maxpage){
- page++;
- }
- if(page>maxpage){
- page=0;
- }
- }
- }
- if (buttonState3 == HIGH){
- lcd.clear();
- delay(200);
- arg=0;
- page=0;
- }
- }
- }
- if(arg==2){
- while(arg==2){
- maxpage=3;
- buttonState = digitalRead(6);
- buttonState2 = digitalRead(7);
- buttonState3 = digitalRead(8);
- if(page==0){
- lcd.setCursor(0, 0);
- lcd.print("F=m*g*sen(ß)");
- lcd.setCursor(0, 1);
- lcd.print("l=L*(ß)");
- }
- if(page==1){
- lcd.setCursor(0, 0);
- lcd.print("F=k*x -> x=l e");
- lcd.setCursor(0, 1);
- lcd.print("k=(mg)/L");
- }
- if(page==2){
- lcd.setCursor(0, 0);
- lcd.print("T=2π|/(m/k)=");
- lcd.setCursor(0, 1);
- lcd.print("T=2π|/(L/g)");
- }
- if(page==3){
- lcd.setCursor(0, 0);
- lcd.print("The End! ");
- lcd.setCursor(0, 1);
- lcd.print("----------------");
- }
- if (buttonState == HIGH){
- lcd.clear();
- delay(200);
- if(page<=0){
- page=maxpage;
- }
- else{
- page--;
- }
- }
- if (buttonState2 == HIGH){
- lcd.clear();
- delay(200);
- if(page>=0){
- if(page<=maxpage){
- page++;
- }
- if(page>maxpage){
- page=0;
- }
- }
- }
- if (buttonState3 == HIGH){
- lcd.clear();
- delay(200);
- arg=0;
- page=0;
- }
- }
- }
- if(arg==3){
- while(arg==3){
- maxpage=2;
- buttonState = digitalRead(6);
- buttonState2 = digitalRead(7);
- buttonState3 = digitalRead(8);
- if(page==0){
- lcd.setCursor(0, 1);
- lcd.print("Potenza: 1");
- digitalWrite(A5,LOW);
- digitalWrite(A3,HIGH);
- digitalWrite(A4,HIGH);
- int lum=analogRead(A1);
- lbg.drawValue((lum), 200);
- delay(10);
- }
- if(page==1){
- lcd.setCursor(0, 1);
- lcd.print("Potenza: 2");
- digitalWrite(A5,HIGH);
- digitalWrite(A3,LOW);
- digitalWrite(A4,LOW);
- int lum=analogRead(A1);
- lbg.drawValue((lum), 200);
- delay(10);
- }
- if(page==2){
- lcd.setCursor(0, 1);
- lcd.print("Potenza: 3");
- digitalWrite(A5,HIGH);
- digitalWrite(A3,HIGH);
- digitalWrite(A4,HIGH);
- int lum=analogRead(A1);
- lbg.drawValue((lum), 200);
- delay(10);
- }
- if (buttonState == HIGH){
- lcd.clear();
- delay(200);
- if(page<=0){
- page=maxpage;
- }
- else{
- page--;
- }
- }
- if (buttonState2 == HIGH){
- lcd.clear();
- delay(200);
- if(page>=0){
- if(page<=maxpage){
- page++;
- }
- if(page>maxpage){
- page=0;
- }
- }
- }
- if (buttonState3 == HIGH){
- lcd.clear();
- digitalWrite(A5,LOW);
- digitalWrite(A4,LOW);
- digitalWrite(A3,LOW);
- delay(200);
- arg=0;
- page=0;
- }
- }
- }
- if(arg==4){
- int a=0;
- int b=0;
- int c=0;
- int temptemp=0;
- while(arg==4){
- maxpage=3;
- buttonState = digitalRead(6);
- buttonState2 = digitalRead(7);
- buttonState3 = digitalRead(8);
- if(page==0){
- lcd.setCursor(0, 0);
- lcd.print("Val temperatura:");
- int temp=analogRead(A2);
- lcd.setCursor(0, 1);
- lcd.print(temp);
- float tempv=(temp*5.000)/1024.000;
- lcd.setCursor(7, 1);
- lcd.print("@V");
- lcd.setCursor(9, 1);
- lcd.print(tempv);
- }
- if(page==1){
- lcd.setCursor(0, 1);
- lcd.print("X3");
- int temp=analogRead(A2);
- lcd.setCursor(4, 1);
- lcd.print(temp-124);
- float tempv=(temp*5.000)/1024.000;
- lcd.setCursor(9, 1);
- lcd.print("@V");
- lcd.setCursor(11, 1);
- lcd.print(tempv);
- if(a==0){
- temptemp=analogRead(A2);
- a++;
- }
- lcd.setCursor(0, 0);
- lbg.drawValue((temp-820), 100);
- delay(50);
- }
- if(page==2){
- lcd.setCursor(0, 1);
- lcd.print("X2");
- int temp=analogRead(A2);
- lcd.setCursor(4, 1);
- lcd.print(temp-124);
- float tempv=(temp*5.000)/1024.000;
- lcd.setCursor(9, 1);
- lcd.print("@V");
- lcd.setCursor(11, 1);
- lcd.print(tempv);
- if(b==0){
- temptemp=analogRead(A2);
- b++;
- }
- lcd.setCursor(0, 0);
- lbg.drawValue((temp-820), 200);
- delay(50);
- }
- if(page==3){
- lcd.setCursor(0, 1);
- lcd.print("X1");
- int temp=analogRead(A2);
- lcd.setCursor(4, 1);
- lcd.print(temp-124);
- float tempv=(temp*5.000)/1024.000;
- lcd.setCursor(9, 1);
- lcd.print("@V");
- lcd.setCursor(11, 1);
- lcd.print(tempv);
- if(c==0){
- temptemp=analogRead(A2);
- c++;
- }
- lcd.setCursor(0, 0);
- lbg.drawValue((temp-820), 400);
- delay(50);
- }
- if (buttonState == HIGH){
- lcd.clear();
- delay(200);
- if(page<=0){
- page=maxpage;
- }
- else{
- page--;
- }
- }
- if (buttonState2 == HIGH){
- lcd.clear();
- delay(200);
- if(page>=0){
- if(page<=maxpage){
- page++;
- }
- if(page>maxpage){
- page=0;
- }
- }
- }
- if (buttonState3 == HIGH){
- lcd.clear();
- delay(200);
- arg=0;
- page=0;
- }
- }
- }
- if(arg==5){
- int a=0;
- int lumtemp=0;
- int b=0;
- int c=0;
- while(arg==5){
- maxpage=3;
- buttonState = digitalRead(6);
- buttonState2 = digitalRead(7);
- buttonState3 = digitalRead(8);
- if(page==0){
- lcd.setCursor(0, 0);
- lcd.print("Val Luminosita:");
- int lum=analogRead(A1)+1;
- lcd.setCursor(0, 1);
- lcd.print(lum);
- float lumv=(lum*5.000)/1024.000;
- lcd.setCursor(7, 1);
- lcd.print("@V");
- lcd.setCursor(9, 1);
- lcd.print(lumv);
- }
- if(page==1){
- lcd.setCursor(0, 1);
- lcd.print("X3");
- int lum=analogRead(A1)+1;
- lcd.setCursor(4, 1);
- lcd.print(lum);
- float lumv=(lum*5.000)/1024.000;
- lcd.setCursor(9, 1);
- lcd.print("@V");
- lcd.setCursor(11, 1);
- lcd.print(lumv);
- if(a==0){
- lumtemp=analogRead(A1)+1;
- a++;
- }
- lcd.setCursor(0, 0);
- lbg.drawValue((lum), 200);
- delay(10);
- }
- if(page==2){
- lcd.setCursor(0, 1);
- lcd.print("X2");
- int lum=analogRead(A1)+1;
- lcd.setCursor(4, 1);
- lcd.print(lum);
- float lumv=(lum*5.000)/1024.000;
- lcd.setCursor(9, 1);
- lcd.print("@V");
- lcd.setCursor(11, 1);
- lcd.print(lumv);
- if(b==0){
- lumtemp=analogRead(A1)+1;
- b++;
- }
- lcd.setCursor(0, 0);
- lbg.drawValue((lum), 600);
- delay(10);
- }
- if(page==3){
- lcd.setCursor(0, 1);
- lcd.print("X1");
- int lum=analogRead(A1)+1;
- lcd.setCursor(4, 1);
- lcd.print(lum);
- float lumv=(lum*5.000)/1024.000;
- lcd.setCursor(9, 1);
- lcd.print("@V");
- lcd.setCursor(11, 1);
- lcd.print(lumv);
- if(c==0){
- lumtemp=analogRead(A1)+1;
- c++;
- }
- lcd.setCursor(0, 0);
- lbg.drawValue((lum), 1025);
- delay(10);
- }
- if (buttonState == HIGH){
- lcd.clear();
- delay(200);
- if(page<=0){
- page=maxpage;
- }
- else{
- page--;
- }
- }
- if (buttonState2 == HIGH){
- lcd.clear();
- delay(200);
- if(page>=0){
- if(page<=maxpage){
- page++;
- }
- if(page>maxpage){
- page=0;
- }
- }
- }
- if (buttonState3 == HIGH){
- lcd.clear();
- delay(200);
- arg=0;
- page=0;
- }
- }
- }
- if(arg==6){
- int soutemp=0;
- int a=0;
- int b=0;
- int c=0;
- int d=0;
- int tem=0;
- int tem2=0;
- int mesure[21];
- while(arg==6){
- maxpage=4 ;
- buttonState = digitalRead(6);
- buttonState2 = digitalRead(7);
- buttonState3 = digitalRead(8);
- if(page==0){
- lcd.setCursor(0, 0);
- lcd.print("Val Suono:");
- int sou=analogRead(A0)+1;
- lcd.setCursor(0, 1);
- lcd.print(sou);
- float souv=(sou*5.000)/1024.000;
- lcd.setCursor(7, 1);
- lcd.print("@V");
- lcd.setCursor(9, 1);
- lcd.print(souv);
- }
- if(page==1){
- //a=0;
- b=0;
- c=0;
- d=0;
- lcd.setCursor(0, 1);
- lcd.print("X3");
- int sou=analogRead(A0)+1;
- lcd.setCursor(4, 1);
- lcd.print(abs(sou-200));
- float souv=(sou*5.000)/1024.000;
- lcd.setCursor(9, 1);
- lcd.print("@V");
- lcd.setCursor(11, 1);
- lcd.print(souv);
- if(a==0){
- soutemp=analogRead(A0)+1;
- a++;
- }
- lcd.setCursor(0, 0);
- lbg.drawValue(abs(((sou+soutemp)/2)-200), 80);
- delay(5);
- }
- if(page==2){
- a=0;
- //b=0;
- c=0;
- d=0;
- lcd.setCursor(0, 1);
- lcd.print("X2");
- int sou=analogRead(A0)+1;
- lcd.setCursor(4, 1);
- lcd.print(abs(sou-200));
- float souv=(sou*5.000)/1024.000;
- lcd.setCursor(9, 1);
- lcd.print("@V");
- lcd.setCursor(11, 1);
- lcd.print(souv);
- if(b==0){
- soutemp=analogRead(A0);
- b++;
- }
- else b--;
- lcd.setCursor(0, 0);
- lbg.drawValue(abs(((sou+soutemp)/2)-200), 400);
- delay(5);
- }
- if(page==3){
- a=0;
- b=0;
- //c=0;
- d=0;
- lcd.setCursor(0, 1);
- lcd.print("X1");
- int sou=analogRead(A0)+1;
- lcd.setCursor(4, 1);
- lcd.print(abs(sou-200));
- float souv=(sou*5.000)/1024.000;
- lcd.setCursor(9, 1);
- lcd.print("@V");
- lcd.setCursor(11, 1);
- lcd.print(souv);
- if(c==0){
- soutemp=analogRead(A0)+1;
- c++;
- }
- lcd.setCursor(0, 0);
- lbg.drawValue(abs(((sou+soutemp)/2)-200), 1000);
- delay(5);
- }
- if(page==4){
- a=0;
- b=0;
- c=0;
- //d=0;
- lcd.setCursor(0, 1);
- lcd.print("Cal");
- int sou=analogRead(A0)+1;
- lcd.setCursor(4, 1);
- lcd.print(abs(sou-soutemp));
- float souv=(sou*5.000)/1024.000;
- lcd.setCursor(9, 1);
- lcd.print("@V");
- lcd.setCursor(11, 1);
- lcd.print(souv);
- if(tem<6){
- if(tem<6){
- mesure[tem]=sou;
- tem2=tem2+mesure[tem];
- }
- tem++;
- }
- else{
- tem=0;
- tem2=tem2/5;
- if(d==0){
- lcd.setCursor(0,0);
- lcd.print("OK Per Calibrare");
- delay(100);
- while(buttonState3 == LOW)
- {
- delay(10);
- buttonState3 = digitalRead(8);
- }
- lcd.clear();
- soutemp=tem2;
- d++;
- buttonState3 = LOW;
- delay(100);
- }
- lcd.setCursor(0, 0);
- lbg.drawValue(abs(((tem2))-soutemp), 100);
- tem2=0;
- }
- }
- if (buttonState == HIGH){
- lcd.clear();
- delay(200);
- if(page<=0){
- page=maxpage;
- }
- else{
- page--;
- }
- }
- if (buttonState2 == HIGH){
- lcd.clear();
- delay(200);
- if(page>=0){
- if(page<=maxpage){
- page++;
- }
- if(page>maxpage){
- page=0;
- }
- }
- }
- if (buttonState3 == HIGH){
- lcd.clear();
- delay(200);
- arg=0;
- page=0;
- }
- }
- }
- if(arg==7){
- int a=0;
- while(arg==7){
- if(a==0){
- lcd.setCursor(0,1);
- lcd.print("Get the Bricks");
- delay(1000);
- lcd.setCursor(0,1);
- lcd.print("Press to Start");
- while(buttonState == LOW)
- {
- delay(10);
- buttonState = digitalRead(6);
- }
- a++;
- }
- buttonState = digitalRead(6);
- buttonState2 = digitalRead(7);
- buttonState3 = digitalRead(8);
- lcd.clear();
- getPaddle();
- drawwalls();
- placepaddle(paddle_pos);
- handlecollisions();
- placedot(xball,yball);
- delay(delaytime);
- if (buttonState3 == HIGH){
- lcd.clear();
- delay(200);
- arg=0;
- page=0;
- }
- }
- }
- if(arg==8){
- while(arg==8){
- buttonState3 = digitalRead(8);
- if(page==0){
- char string[9]="Made By:";
- char string2[18]="Lorenzo Karavania";
- lcd.setCursor(0, 0);
- for (int thisChar = 0; thisChar < 8; thisChar++) {
- lcd.print(string[thisChar]);
- delay(200);
- if(exitcheck()==1) break;
- }
- lcd.autoscroll();
- lcd.setCursor(16,1);
- for (int thisChar = 0; thisChar < 17; thisChar++) {
- lcd.print(string2[thisChar]);
- delay(400);
- if(exitcheck()==1) break;
- }
- lcd.noAutoscroll();
- lcd.clear();
- }
- if (buttonState3 == HIGH){
- lcd.clear();
- delay(200);
- arg=0;
- page=0;
- }
- }
- }
- if(arg==9){
- while(arg==9){
- buttonState3 = digitalRead(8);
- if(page==0){
- char string[9]="Amo Solo";
- char string2[18]="Caterina";
- lcd.setCursor(0, 0);
- for (int thisChar = 0; thisChar < 8; thisChar++) {
- lcd.print(string[thisChar]);
- delay(200);
- if(exitcheck()==1) break;
- }
- lcd.autoscroll();
- lcd.setCursor(16,1);
- for (int thisChar = 0; thisChar < 8; thisChar++) {
- lcd.print(string2[thisChar]);
- delay(400);
- if(exitcheck()==1) break;
- }
- lcd.noAutoscroll();
- lcd.clear();
- }
- if (buttonState3 == HIGH){
- lcd.clear();
- delay(200);
- arg=0;
- page=0;
- }
- }
- }
- if(arg==10){
- int arg2=0;
- int maxarg2=2;
- int argtemp2=0;
- int calibrate=0;
- maxpage=2;
- Serial.print(9);
- Serial.print(0);
- while(arg==10){
- while(arg2 == 0){
- buttonState = digitalRead(6);
- buttonState2 = digitalRead(7);
- buttonState3 = digitalRead(8);
- if(argtemp2==0){
- lcd.setCursor(0, 0);
- lcd.print("Suono");
- lcd.setCursor(0, 1);
- lcd.print(argtemp2);
- }
- if(argtemp2==1){
- lcd.setCursor(0, 0);
- lcd.print("Luminosita");
- lcd.setCursor(0, 1);
- lcd.print(argtemp2);
- }
- if(argtemp2==2){
- lcd.setCursor(2, 0);
- lcd.print("Visualizza");
- lcd.setCursor(0, 1);
- lcd.print(argtemp2);
- lcd.setCursor(4, 1);
- lcd.print("Seriale");
- }
- if (buttonState == HIGH){
- lcd.clear();
- delay(200);
- if(argtemp2<=0){
- argtemp2=maxarg2;
- }
- else{
- argtemp2--;
- }
- }
- if (buttonState2 == HIGH){
- lcd.clear();
- delay(200);
- if(argtemp2>=0){
- lcd.setCursor(0, 1);
- lcd.print(argtemp2);
- if(argtemp2<=maxarg2){
- argtemp2++;
- }
- if(argtemp2>maxarg2){
- argtemp2=0;
- }
- }
- }
- if (buttonState3 == HIGH){
- lcd.clear();
- delay(200);
- arg2=argtemp2+1;
- //argtemp=0;
- }
- }
- if(arg2==1){
- int d=0;
- int lastserial=1; // non zero altrimenti dividi per 0
- while(arg2 == 1){
- maxpage=3;
- buttonState = digitalRead(6);
- buttonState2 = digitalRead(7);
- buttonState3 = digitalRead(8);
- if(d==0){
- lcd.setCursor(0,0);
- lcd.print("OK Per Calibrare");
- delay(100);
- while(buttonState3 == LOW)
- {
- delay(10);
- buttonState3 = digitalRead(8);
- }
- lcd.clear();
- calibrate=analogRead(A0);
- d++;
- buttonState3 = LOW;
- delay(100);
- }
- if(page==0){
- lcd.setCursor(0,0);
- lcd.print("Suono");
- lcd.setCursor(11,0);
- lcd.print("X3");
- int sou=analogRead(A0);
- lcd.setCursor(0, 1);
- lcd.print(abs(sou-calibrate));
- float souv=(sou*5.000)/1024.000;
- lcd.setCursor(9, 1);
- lcd.print("@V");
- lcd.setCursor(11, 1);
- lcd.print(souv);
- if((abs(sou-calibrate)<50)){
- int ser=(9*(abs(sou-calibrate)))/50;
- Serial.print(ser);
- }
- else{
- int ser=9;
- Serial.print(ser);
- }
- }
- if(page==1){
- lcd.setCursor(0,0);
- lcd.print("Suono");
- lcd.setCursor(11,0);
- lcd.print("X2");
- int sou=analogRead(A0);
- lcd.setCursor(0, 1);
- lcd.print(abs(sou-calibrate));
- float souv=(sou*5.000)/1024.000;
- lcd.setCursor(9, 1);
- lcd.print("@V");
- lcd.setCursor(11, 1);
- lcd.print(souv);
- if((abs(sou-calibrate)<100)){
- int ser=(9*(abs(sou-calibrate)))/100;
- Serial.print(ser);
- }
- else{
- int ser=9;
- Serial.print(ser);
- }
- }
- if(page==2){
- lcd.setCursor(0,0);
- lcd.print("Suono");
- lcd.setCursor(11,0);
- lcd.print("X1");
- int sou=analogRead(A0);
- lcd.setCursor(0, 1);
- lcd.print(abs(sou-calibrate));
- float souv=(sou*5.000)/1024.000;
- lcd.setCursor(9, 1);
- lcd.print("@V");
- lcd.setCursor(11, 1);
- lcd.print(souv);
- if((abs(sou-calibrate)<200)){
- int ser=(9*(abs(sou-calibrate)))/200;
- Serial.print(ser);
- }
- }
- if(page==3){
- //if (Serial.available()) {
- lcd.setCursor(0,0);
- lcd.print("Suono");
- int sou=analogRead(A0);
- lcd.setCursor(0, 1);
- lcd.print(abs(sou-calibrate));
- float souv=(sou*5.000)/1024.000;
- lcd.setCursor(4, 1);
- lcd.print("@V");
- lcd.setCursor(6, 1);
- lcd.print(souv);
- if(Serial.available() >0){
- delay(10);
- int lastserial2=(getserial()-1000);
- lastserial=lastserial2/2;
- }
- lcd.setCursor(11, 1);
- lcd.print(lastserial);
- if((abs(sou-calibrate)<lastserial)){
- int ser=(9*(abs(sou-calibrate)))/lastserial;
- Serial.print(ser);
- }
- else{
- int ser=9;
- Serial.print(ser);
- }
- /*else {
- lcd.setCursor(0,0);
- lcd.print("Connetti");
- lcd.setCursor(0,1);
- lcd.print("Seriale");
- }*/
- }
- if (buttonState == HIGH){
- lcd.clear();
- delay(200);
- if(page<=0){
- page=maxpage;
- }
- else{
- page--;
- }
- }
- if (buttonState2 == HIGH){
- lcd.clear();
- delay(200);
- if(page>=0){
- if(page<=maxpage){
- page++;
- }
- if(page>maxpage){
- page=0;
- }
- }
- }
- if (buttonState3 == HIGH){
- lcd.clear();
- delay(200);
- arg=0;
- arg2=0;
- page=0;
- }
- }//if arg 2
- }//while arg2
- if(arg2== 2){
- int d=0;
- int lastserial=1;// non zero altrimenti dividi per 0
- while(arg2 == 2){
- maxpage=6;
- buttonState = digitalRead(6);
- buttonState2 = digitalRead(7);
- buttonState3 = digitalRead(8);
- if(d==0){
- lcd.setCursor(0,0);
- lcd.print("OK Per Calibrare");
- delay(100);
- while(buttonState3 == LOW)
- {
- delay(10);
- buttonState3 = digitalRead(8);
- }
- lcd.clear();
- calibrate=analogRead(A1);
- d++;
- buttonState3 = LOW;
- delay(100);
- }
- if(page==0){
- lcd.setCursor(0,0);
- lcd.print("Luminosita");
- lcd.setCursor(11,0);
- lcd.print("CalX3");
- int lum=analogRead(A1);
- lcd.setCursor(0, 1);
- lcd.print(abs(lum-calibrate));
- float lumv=(lum*5.000)/1024.000;
- lcd.setCursor(9, 1);
- lcd.print("@V");
- lcd.setCursor(11, 1);
- lcd.print(lumv);
- if((abs(lum-calibrate)<30)){
- int ser=(9*(abs(lum-calibrate)))/30;
- Serial.print(ser);
- }
- else{
- int ser=9;
- Serial.print(ser);
- }
- }
- if(page==1){
- lcd.setCursor(0,0);
- lcd.print("Luminosita");
- lcd.setCursor(11,0);
- lcd.print("CalX2");
- int lum=analogRead(A1);
- lcd.setCursor(0, 1);
- lcd.print(abs(lum-calibrate));
- float lumv=(lum*5.000)/1024.000;
- lcd.setCursor(9, 1);
- lcd.print("@V");
- lcd.setCursor(11, 1);
- lcd.print(lumv);
- if((abs(lum-calibrate)<70)){
- int ser=(9*(abs(lum-calibrate)))/70;
- Serial.print(ser);
- }
- else{
- int ser=9;
- Serial.print(ser);
- }
- }
- if(page==2){
- lcd.setCursor(0,0);
- lcd.print("Luminosita");
- lcd.setCursor(11,0);
- lcd.print("CalX1");
- int lum=analogRead(A1);
- lcd.setCursor(0, 1);
- lcd.print(abs(lum-calibrate));
- float lumv=(lum*5.000)/1024.000;
- lcd.setCursor(9, 1);
- lcd.print("@V");
- lcd.setCursor(11, 1);
- lcd.print(lumv);
- if((abs(lum-calibrate)<150)){
- int ser=(9*(abs(lum-calibrate)))/150;
- Serial.print(ser);
- }
- else{
- int ser=9;
- Serial.print(ser);
- }
- }
- if(page==3){
- lcd.setCursor(0,0);
- lcd.print("Luminosita");
- lcd.setCursor(11,0);
- lcd.print("X3");
- int lum=analogRead(A1)+1;
- lcd.setCursor(0, 1);
- lcd.print(abs(lum));
- float lumv=(lum*5.000)/1025.000;
- lcd.setCursor(9, 1);
- lcd.print("@V");
- lcd.setCursor(11, 1);
- lcd.print(lumv);
- if((abs(lum)<50)){
- int ser=(9*(abs(lum)))/50;
- Serial.print(ser);
- }
- else{
- int ser=9;
- Serial.print(ser);
- }
- }
- if(page==4){
- lcd.setCursor(0,0);
- lcd.print("Luminosita");
- lcd.setCursor(11,0);
- lcd.print("X2");
- int lum=analogRead(A1)+1;
- lcd.setCursor(0, 1);
- lcd.print(abs(lum));
- float lumv=(lum*5.000)/1025.000;
- lcd.setCursor(9, 1);
- lcd.print("@V");
- lcd.setCursor(11, 1);
- lcd.print(lumv);
- if((abs(lum)<100)){
- int ser=(9*(abs(lum)))/100;
- Serial.print(ser);
- }
- else{
- int ser=9;
- Serial.print(ser);
- }
- }
- if(page==5){
- lcd.setCursor(0,0);
- lcd.print("Luminosita");
- lcd.setCursor(11,0);
- lcd.print("X1");
- int lum=analogRead(A1)+1;
- lcd.setCursor(0, 1);
- lcd.print(abs(lum-calibrate));
- float lumv=(lum*5.000)/1025.000;
- lcd.setCursor(9, 1);
- lcd.print("@V");
- lcd.setCursor(11, 1);
- lcd.print(lumv);
- if((abs(lum)<200)){
- int ser=(9*(abs(lum)))/200;
- Serial.print(ser);
- }
- else{
- int ser=9;
- Serial.print(ser);
- }
- }
- if(page==6){
- lcd.setCursor(0,0);
- lcd.print("Luminosita");
- lcd.setCursor(11,0);
- lcd.print("Ser");
- int lum=analogRead(A1)+1;
- lcd.setCursor(0, 1);
- lcd.print(abs(lum-calibrate));
- float lumv=(lum*5.000)/1025.000;
- lcd.setCursor(4, 1);
- lcd.print("@V");
- lcd.setCursor(6, 1);
- lcd.print(lumv);
- if(Serial.available() >0){
- delay(10);
- int lastserial2=(getserial()-1000);
- lastserial=lastserial2/2;
- }
- lcd.setCursor(11, 1);
- lcd.print(lastserial);
- if((abs(lum-calibrate)<lastserial)){
- int ser=(9*(abs(lum-calibrate)))/lastserial;
- Serial.print(ser);
- }
- else{
- int ser=9;
- Serial.print(ser);
- }
- }
- if (buttonState == HIGH){
- lcd.clear();
- delay(200);
- if(page<=0){
- page=maxpage;
- }
- else{
- page--;
- }
- }
- if (buttonState2 == HIGH){
- lcd.clear();
- delay(200);
- if(page>=0){
- if(page<=maxpage){
- page++;
- }
- if(page>maxpage){
- page=0;
- }
- }
- }
- if (buttonState3 == HIGH){
- lcd.clear();
- delay(200);
- arg=0;
- arg2=0;
- page=0;
- }
- }//if arg 2
- }//while arg2
- if(arg2==3){
- while(arg2 == 3){
- maxpage=0;
- buttonState = digitalRead(6);
- buttonState2 = digitalRead(7);
- buttonState3 = digitalRead(8);
- if(page==0){
- if (Serial.available()) {
- delay(10);
- lcd.clear();
- while (Serial.available() > 0) {
- lcd.write(Serial.read());
- }
- }
- }
- if (buttonState == HIGH){
- lcd.clear();
- delay(200);
- if(page<=0){
- page=maxpage;
- }
- else{
- page--;
- }
- }
- if (buttonState2 == HIGH){
- lcd.clear();
- delay(200);
- if(page>=0){
- if(page<=maxpage){
- page++;
- }
- if(page>maxpage){
- page=0;
- }
- }
- }
- if (buttonState3 == HIGH){
- lcd.clear();
- delay(200);
- arg=0;
- arg2=0;
- page=0;
- }
- }//if arg 2
- }//while arg2
- }//while
- } //if
- }// arg <0
- }// loop
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement