제조공정
| Arduino UNO | 1 |
| LED (다양한 색상) | 7 |
| 저항 221옴 | 7 |
| 아날로그 조이스틱 (범용) | 1 |
| 점퍼 와이어 (범용) | 8 |
| 암/수 점퍼 와이어 | 4 |
이것은 저의 첫 Arduino 프로젝트입니다. 초기 튜토리얼에서 배운 LED와 기본 제어 지식을 바탕으로 만들었습니다.
이 "두더지 잡기" 게임은 7개의 LED와 조이스틱을 사용합니다. 4개의 "두더지"는 보드 왼쪽에서 2, 3, 4, 5번째 불빛으로 표현됩니다. 네 개 중 하나가 무작위로 켜지고, 해당하는 조이스틱 방향을 정해진 시간 안에 입력해야 합니다. 저는 왼쪽부터 조이스틱 선택을 왼쪽, 위, 아래, 오른쪽 순으로 배치했지만, 창의적으로 다른 배열을 시도해 보세요!
맨 왼쪽 두 개의 LED는 빨강과 초록으로, 틀리거나 맞음을 표시합니다. 맨 오른쪽 노란 LED는 현재 최고 점수를 깜빡이며 표시하고, 게임이 끝날 때마다(틀릴 때마다) 점수를 알려줍니다. 당연히 새로운 최고 점수가 나오면 갱신됩니다.
이 프로젝트에서 가장 복잡한 부분은 아날로그 조이스틱입니다. 양축 모두 최대값이 0과 1024(제 것은 1023)입니다. 이 값들은 시리얼 모니터로 측정할 수 있습니다. 저는 switch 문으로 x, y 입력을 단순화했습니다. 이것이 최선인지는 모르지만, 4방향(왼쪽, 오른쪽, 위, 아래)만 필요했기에 각 방향에 정수 1, 2, 3, 4를 할당했습니다.

코드에 상수로 정의된 난이도는 선택 가능한 시간(밀리초)입니다. 이 값을 조정해 난이도를 바꿀 수 있습니다. 게임 시작 시 버튼이나 조이스틱으로 난이도를 선택하게 하려 했으나, 복잡하고 사용자 친화적이지 않아 포기했습니다.
수정 및 개선 아이디어가 있으면 댓글로 알려주세요! :)
// Whack a LED
// 조이스틱 변수
int sX = A0; // 조이스틱 X축, 아날로그 입력
int sY = A1; // 조이스틱 Y축, 아날로그 입력
int sSX; // X축 읽기 값
int sSY; // Y축 읽기 값
int sS; // 변환된 상태
// 게임 변수
int rNum; // 켤 LED 선택용 랜덤 숫자
int wins = 0; // 연속 성공 횟수
int highScore = 0; // 최고 연속 성공 기록
// 난이도 상수 (반응 시간, 밀리초)
const int easy = 1000;
const int medium = 500;
const int hard = 325;
const int stupid = 250;
int ledPins[] = {5, 2, 4, 3, 6, 7, 8}; // LED 핀 배열
int pinCount = 7;
void setup() {
Serial.begin(9600);
pinMode(sX, INPUT);
pinMode(sY, INPUT);
for (int thisPin = 0; thisPin < pinCount; thisPin++) {
pinMode(ledPins[thisPin], OUTPUT);
}
}
void loop() {
rNum = random(4); // 0~3 중 랜덤 선택
delay(1000);
digitalWrite(ledPins[rNum], HIGH); // 선택된 LED 켜기
delay(stupid); // 난이도만큼 대기 (여기서는 stupid)
// 조이스틱 읽기
sSX = analogRead(sX);
delay(100);
sSY = analogRead(sY);
// X, Y 입력을 4가지 경우로 변환 (0과 1023이 최대값)
sS = 0;
switch (sSX) {
case 0: sS = 1; break; // 왼쪽
case 1023: sS = 2; break; // 오른쪽
}
switch (sSY) {
case 0: sS = 3; break; // 위
case 1023: sS = 4; break; // 아래
}
digitalWrite(ledPins[rNum], LOW); // LED 끄기
if (sS - 1 == rNum) { // 정답 확인
wins++;
for (int k = 0; k <= 3; k++) { // 초록 LED 깜빡임 (정답)
digitalWrite(ledPins[4], HIGH);
delay(50);
digitalWrite(ledPins[4], LOW);
delay(50);
}
} else {
if (wins > highScore) { // 최고 기록 갱신
highScore = wins;
wins = 0;
}
for (int i = 0; i <= 3; i++) { // 빨강 LED 깜빡임 (오답)
digitalWrite(ledPins[5], HIGH);
delay(50);
digitalWrite(ledPins[5], LOW);
delay(50);
}
for (int w = 0; w < highScore; w++) { // 노란 LED로 최고 점수 표시
digitalWrite(ledPins[6], HIGH);
delay(200);
digitalWrite(ledPins[6], LOW);
delay(200);
}
}
}
실제 사진과 회로도가 일치하지만 조이스틱은 예외입니다. 제 조이스틱은 5핀 중 4핀을 사용했습니다: 위부터 "GND", "+5V", "VRx", "VRy". GND와 +5V는 Arduino의 GND와 5V에, VRx와 VRy는 A0, A1에 연결했습니다.


제조공정
DIY LED 램프 키트는 집이나 전자 학습을 위한 완벽한 프로젝트입니다. 이 LED 램프 키트는 환경 친화적이고 에너지 효율적이며 주택 소유자가 전기 요금을 절약하는 데 도움이 됩니다. 이러한 특성 덕분에 LED 조명은 점점 더 인기를 얻고 있습니다. LED 램프는 스스로 전원을 켤 수 없습니다. 회로가 그 일을 해야 합니다. LED 키트 만들기는 배우기 쉽습니다. 이 기사를 읽고 나면 회로 기능이 어떻게 작동하여 LED 램프에 전원을 공급하는지 알게 될 것입니다. 또한 이 가이드는 납땜을 통해 모든 것을 조립하는 데 필요한 단계
LED 스트립 디퓨저에 대해 들어보셨나요? 건축가, 디자이너, 또는 LED 조명 프로젝트를 다루는 엔지니어이신가요? LED 스트립 디퓨저에 대해 들어보지 못하셨더라도 괜찮습니다. 하지만 다음 질문에 예라면 두 가지를 분명히 아실 겁니다: 1. LED 조명은 핫스팟을 생성하는 집중된 빛을 생성합니다. 2. 때로는 특정 영역에 너무 밝고 강렬합니다. LED 조명이 건물의 설계와 미학, 간판, 자동차 응용 분야 등에서 많은 역할을 하지만, 위 문제는 몇 가지 위협이 될 수 있습니다. 따라서 LED 스트립 디퓨저가 필요합니다. 이 기사에서