제조공정
| × | 1 | ||||
| × | 1 | ||||
| × | 2 | ||||
| × | 1 | ||||
| × | 2 | ||||
| × | 4 | ||||
| × | 2 | ||||
| × | 1 | ||||
| × | 1 |
|
이것은 간단한 LCD 게임입니다. 내 영감은 Google Chrome의 Dinosaur 게임이었지만 몇 가지 변경 사항을 더 추가했습니다. 달러 전사는 끊임없이 움직이며 장애물을 피하기 위해 점프하고 "별" 포인트를 수집할 수 있습니다. 장애물을 뛰어 넘으면 1점, 별을 잡으면 5점을 받습니다. 그는 또한 그의 앞에 있는 장애물을 쏘고 제거할 수 있습니다. 점프하거나 쏘는지 여부를 나타내는 LED 다이오드도 있습니다. 그가 10, 20 또는 30 포인트를 모으면 이전보다 더 빠르게 움직이기 시작합니다. 그가 50점을 모으면 당신이 이깁니다. 장애물에 부딪히면 패배합니다. 물론 코드에서 이러한 경계를 쉽게 변경할 수 있습니다. 또한 전사가 점프하거나 쏠 때 소리가 나는 패시브 부저와 이기거나 졌을 때 특별한 멜로디를 추가했습니다. 이것은 나의 첫 번째 프로젝트이며 당신이 그것을 좋아하기를 바랍니다. 귀하의 의견과 리뷰를 알려주세요.
동영상
연결
LCD(Liquid Crystal Display) 모듈의 아래쪽에는 16핀 수 헤더가 있습니다. 이것을 그림과 같이 브레드보드에 꽂습니다. LCD에 전원을 공급하고 제어하는 모든 전자 신호는 이 헤더를 통과합니다.
이 핀은 (왼쪽에서 오른쪽으로):
<울>점퍼선을 사용하여 Arduino의 5V 신호를 브레드보드 상단의 빨간색 행과 연결합니다.
점퍼선을 사용하여 Arduino의 GND 신호를 브레드보드 상단의 파란색 행과 연결합니다.
<울>나머지 전위차계 핀을 5V 신호와 GND 신호에 연결합니다.
3 핀 피에조 버저가있는 경우 S 핀을 Arduino 7 핀에 연결하고 '-'핀을 GND에 연결하고 나머지 핀을 5V 신호에 연결하십시오. 2핀 피에조 부저가 있는 경우 한 핀을 GND 신호에 연결하고 다른 핀을 Arduino 7 핀에 연결합니다.
회로도에 따라 스위치 버튼을 연결합니다. 첫 번째 버튼(점프 버튼)은 Arduino 핀 1에 연결되고 두 번째 버튼(촬영 버튼)은 Arduino 핀 6에 연결됩니다. LED는 Arduino가 아닌 버튼으로만 제어됩니다. 양극은 Arduino에 연결된 버튼 핀에 연결되고 음극은 접지에 연결됩니다.
섹션> <섹션 클래스="섹션 컨테이너 섹션 축소 가능" id="코드">#includeconst int rs =12, en =11, d4 =5, d5 =4, d6 =3, d7 =2;const int buttonPin1=1;const int buttonPin2=6;const int Buzzer=7;unsigned long pts=0;//set buttonstatesbool buttonState1=0;bool buttonState2=0;//장애물의 위치에 대한 난수신트 randomNums[6];//장애물의 수에 대한 난수sint randomNum=0;// ptsint의 위치에 대한 난수 randomNums1[3];//ptsint의 수에 대한 난수 randomNum1=0;//점차 감소하는 시작 지연 시간 unsigned int myDelay=500;// itbool temp=0;//이 변수는 전사가 쏘는 동안 위치를 저장합니다. 전사는 16개의 위치를 가지고 있기 때문에 16개의 위치가 있을 수 있습니다.int tempI[16];// 이 부울 값을 사용하여 포인트가 catchedbool temp1=0인지 확인합니다. // 이 변수를 사용하여 잡은 포인트의 위치를 저장합니다. 첫 번째 for 루프의 한 번의 반복에서 모든 점의 위치를 저장하려면 이어야 하고 배열이어야 합니다. 한 위치만 저장한 경우 "이전" 지점이 새 반복에서 다시 나타납니다.int tempI1[3]; //이 변수를 사용하여 배열의 길이이기도 한 전사의 샷 수를 갖습니다. tempIint button2IsPressed=0;LiquidCrystal lcd(rs, en, d4, d5, d6, d7);void setup() { / / LCD의 열과 행 수 설정:lcd.begin(16, 2); // 버튼핀 모드 설정 pinMode(buttonPin1,INPUT); 핀모드(버튼핀2,입력); 핀모드(부저, 출력); lcd.setCursor(4,0); lcd.print("게임"); lcd.setCursor(2,1); lcd.print("시작"); lcd.print("5"); 지연(1000); lcd.setCursor(12,1); lcd.print("4"); 지연(1000); lcd.setCursor(12,1); lcd.print("3"); 지연(1000); lcd.setCursor(12,1); lcd.print("2"); 지연(1000); lcd.setCursor(12,1); lcd.print("1"); 지연(1000); lcd.clear();}void 루프() { 여기:randomNum=random(5); for(int i=0; i 9 &&pts<20) {lcd.setCursor(14,0); myDelay=400; } else if(pts>19 &&pts<30) { lcd.setCursor(14,0); myDelay=300; } else if(pts>29 &&pts<50) { myDelay=200; lcd.setCursor(14,0); } else if(포인트>=50){ 포인트=0; myDelay=500; lcd.clear(); lcd.setCursor(5,0); lcd.print("승리"); 톤(부저,262); 지연(200); 톤(부저,330); 지연(200); 톤(부저,392); 지연(100); 톤(부저,330); 지연(100); 톤(부저,392); 지연(100); 톤(부저,523); 지연(200); 노톤(부저); 지연(3000); lcd.clear(); 여기로 이동; } 그렇지 않으면 lcd.setCursor(15,0); lcd.print(포인트); buttonState1=디지털읽기(버튼핀1); buttonState2=디지털읽기(버튼핀2); //전사가 총을 쏘지 않았거나 쐈지만 점프한 경우 장애물 설정 if(!temp){ for(int j=0; j randomNums[j]){ lcd.setCursor(randomNums[j],1); lcd.print("#"); } } } //설정 ptsif(!temp1){ for(int j=0; j 섹션> 회로도
game_aUIjA6VZxX.fzz
제조공정
구성품 및 소모품 Arduino Mega 2560 또는 아두이노 우노!! 코드에서 DUCK_PIN을 3으로 변경하고 uno를 사용하려면 그에 따라 다시 연결하세요. × 1 점퍼 와이어(일반) +- 20개 필요 × 20 SparkFun 푸시버튼 스위치 12mm × 2 저항 10k 옴 × 2 Adafruit Standard LCD - 파란색 바탕에 16x2 흰색 × 1 회전 전위차계, 10kohm 기존 전위차계 × 1
구성품 및 소모품 Arduino UNO × 1 Adafruit RGB 백라이트 LCD - 16x2 × 1 브레드보드(일반) × 1 저항 220옴 × 1 SparkFun 푸시버튼 스위치 12mm × 1 점퍼 와이어(일반) × 1 USB-A-B 케이블 × 1 앱 및 온라인 서비스 Arduino IDE 이 프로젝트 정보 필요한 부품은 위의 그림과