산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Manufacturing Technology >> 제조공정

LED 조명 두더지 잡기

구성품 및 소모품

Arduino UNO
× 1
LED
× 7
저항 221옴
× 7
아날로그 조이스틱(일반)
× 1
점퍼 와이어(일반)
× 8
남성/여성 점퍼 와이어
× 4

이 프로젝트 정보

이것은 나의 첫 번째 Arduino 프로젝트였으며 초기에 LED 및 기본 제어에 대한 자습서에서 배운 것을 기반으로 구축했습니다.

이 "두더지 잡기" 게임은 7개의 LED와 조이스틱을 사용합니다. 내 보드의 왼쪽에서 두 번째, 세 번째, 네 번째 및 다섯 번째 표시등으로 표시되는 4개의 "두더지"가 있습니다. 4개의 표시등 중 하나가 무작위로 켜지고 조이스틱의 해당 방향을 칠 시간을 설정합니다. 왼쪽에서 오른쪽으로 조이스틱의 선택 항목이 왼쪽, 위, 아래, 오른쪽이 되도록 조명을 배열했습니다. 이것은 내가 선택한 규칙일 뿐이므로 창의적이고 다른 규칙을 시도해 보세요!

왼쪽에 있는 두 개의 표시등은 빨간색과 녹색으로 올바르지 않거나 올바른 선택을 나타냅니다. 맨 오른쪽에 있는 노란색 표시등은 현재 최고 점수에 대한 카운트를 깜박이며 실행이 끝날 때마다(잘못 선택될 때마다) 점수를 나타냅니다. 당연히 새로운 최고 점수가 이전 최고 점수를 대체합니다.

아마도 이 프로젝트에서 가장 복잡한 부분은 아날로그 조이스틱일 것입니다. 조이스틱의 양방향에 대해 최대값은 0과 1024입니다(저의 경우 1023을 사용해야 했으므로 선택 항목이 정확하지 않으면 시도해 볼 수 있습니다). 직렬 창을 사용하여 이러한 값을 측정할 수도 있다고 생각합니다. x 및 y 입력 모두에 대해 switch 문을 사용하여 이러한 입력 값을 단순화했습니다. 이것이 최선의 방법인지 확실하지 않지만 각 방향의 최대값만 필요했기 때문에(즉, 4개의 옵션, 4개의 LED 몰) 각 가능성에 정수 값을 할당했습니다. 1, 2, 3, 4 왼쪽, 오른쪽, 위, 아래에 해당합니다.

내 코드에 상수로 작성한 난이도는 사람이 선택해야 하는 시간(밀리초)입니다. 이 시간을 어지럽혀서 원하는 대로 난이도를 변경할 수 있습니다. 턴을 시작할 때 버튼이나 조이스틱을 사용하여 선택 항목을 통합하는 방법에 대해 생각했지만 꽤 복잡하고 사용자 친화적이지 않을 것 같아서 작업할 가치가 없었습니다.

어떤 부분을 수정하고 개선할 수 있는지 꼭 알려주세요! :)

<섹션 클래스="섹션 컨테이너 섹션 축소 가능" id="코드">

코드

<울>
  • WhackALED
  • WhackALEDArduino
    // LED 깨기// 조이스틱 변수int sX =A0; //조이스틱 x축, 아날로그 입력int sY =A1; //조이스틱 y축, 아날로그 입력int sSX; //x의 상태, sXint에서 읽기 sSY; //y의 상태, sYint sS에서 읽기; //변환된 상태(가장 효율적이지 않을 수 있음)// 게임 변수int rNum; //무작위 int 켜기 위해 임의의 조명을 선택함 int wins=0; //연속적인 승수 계산int highScore=0; //연속 승리의 최고 점수 저장// 난이도 상수, 반응 시간 const int easy=1000;const int medium=500;const int hard=325;const int 바보=250;int ledPins[]={5,2, 4,3,6,7,8}; // led'sint pinCount=7 초기화; // led 핀의 수void setup() {Serial.begin(9600);pinMode(sX, INPUT);pinMode(sY, INPUT);for (int thisPin =0; thisPin highScore) { //연속 승리가 이전 최고 점수보다 많으면 새로운 최고 점수가 설정됩니다. highScore=승리; 승리=0; } for (int i=0; i<=3; i++) { //잘못된 선택을 나타내는 빨간색 깜박임 digitalWrite(ledPins[5], HIGH); 지연(50); digitalWrite(ledPins[5], LOW); 지연(50); } for (int w=0; w  

    회로도

    조이스틱을 제외하고 모든 것이 프로젝트의 실제 그림과 일치해야 합니다. 내 조이스틱에는 위에서 아래로 "GND", "+5V", "VRx" 및 "VRy"라는 이름의 5개 핀, 4개 또는 제가 사용한 핀이 있습니다. "GND" 및 "+5V"는 arduino의 GND 및 5V에 연결되고 "VRx" 및 "VRy"는 A0 및 A1에 연결됩니다. 조이스틱을 제외한 모든 것이 프로젝트의 실제 그림과 일치해야 합니다. 내 조이스틱에는 위에서 아래로 "GND", "+5V", "VRx" 및 "VRy"라는 이름의 5개 핀, 4개 또는 제가 사용한 핀이 있습니다. "GND" 및 "+5V"는 arduino의 GND 및 5V에 연결되고 "VRx" 및 "VRy"는 A0 및 A1에 연결됩니다. whack_a_mole_schematic_CBciL9GiCP.fzz

    제조공정

    1. 가스 랜턴
    2. 레이저 포인터
    3. 손전등
    4. 만화경
    5. 반도체 레이저
    6. 사진
    7. 교통 신호
    8. 발광 다이오드(LED)
    9. LED 액세서리 –LED 조명 스트립 액세서리
    10. 자동차 대시보드 조명 및 표시기 이해