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

아두이노 디지털 주사위: LCD 기반 랜덤 넘버 제너레이터 만들기

부품 및 소모품

아두이노 우노 (Arduino UNO) 1개
16×2 캐릭터 LCD (백라이트, 흰글자/파란배경) 1개
푸시 버튼 (12mm, 브레이크아웃 보드 포함) 1개
가변저항 10kΩ (LCD 대비 조절용) 1개
브레드보드, 점퍼 와이어, USB 케이블 1세트

프로젝트 개요

일반 주사위가 지겨워 아두이노로 디지털 주사위를 만들었습니다. 버튼을 누르면 "Rolling dice..." 메시지 후 4초 뒤 두 개의 랜덤 숫자(1~6)가 LCD에 표시됩니다. 간단하지만 아두이노 입문자에게 랜덤 함수, LCD 제어, 버튼 입력, 디바운스 기초를 익히기 좋은 프로젝트입니다.

아두이노 디지털 주사위: LCD 기반 랜덤 넘버 제너레이터 만들기

회로 연결

전체 코드 (주석 추가 및 정리)

#include <LiquidCrystal.h>

// LCD 핀: RS, EN, D4, D5, D6, D7
LiquidCrystal lcd(7, 8, 9, 10, 11, 12);

// 커스텀 문자: 주사위 모양 아이콘
byte diceChar[] = {
    B00000,
    B00000,
    B11111,
    B11001,
    B10101,
    B10011,
    B11111,
    B00000
};

const int LED_PIN = 13;
const int BUTTON_PIN = 2;  // 원본 'Shock' 핀 → 버튼으로 변경
long randNumber;
int buttonState;

void setup() {
    lcd.begin(16, 2);
    lcd.createChar(0, diceChar);  // 커스텀 문자 0번 슬롯에 저장
    lcd.home();
    lcd.write(byte(0));
    lcd.print("Digital Dice");
    lcd.write(byte(0));
    delay(1000);
    
    pinMode(LED_PIN, OUTPUT);
    pinMode(BUTTON_PIN, INPUT_PULLUP);  // 내부 풀업 활성화
    randomSeed(analogRead(0));  // 아날로그 노이즈로 시드 초기화
}

void loop() {
    // 버튼 눌림 감지 (LOW = 눌림, 내부 풀업 사용)
    buttonState = digitalRead(BUTTON_PIN);
    
    if (buttonState == LOW) {
        lcd.clear();
        lcd.print("Rolling dice...");
        digitalWrite(LED_PIN, HIGH);
        delay(4000);  // 4초간 애니메이션 느낌
        digitalWrite(LED_PIN, LOW);
        
        lcd.clear();
        lcd.setCursor(0, 0);
        randNumber = random(1, 7);  // 1~6
        lcd.print("Dice 1 = ");
        lcd.print(randNumber);
        
        lcd.setCursor(0, 1);
        randNumber = random(1, 7);
        lcd.print("Dice 2 = ");
        lcd.print(randNumber);
    }
    delay(150);  // 간단한 디바운스 겸 루프 지연
}

코드 설명

개선 아이디어

제조공정

  1. 아두이노 나노 33 BLE 센스에서 Edge Impulse로 구현하는 TinyML 언어 감지기
  2. 아두이노 나노와 MPU-6050으로 실시간 자이로스코프 게임 만들기
  3. 아두이노 아이언맨 제작: 부품, 센서, 단계별 가이드
  4. 아두이노와 블루투스로 만드는 스마트 물건 찾기 'Find Me'
  5. 아두이노 릴레이 제어 가습기 자동화 – 고전압 안전 설계
  6. 아두이노 소나 & 프로세싱으로 실시간 거리 측정 및 시각화
  7. 아두이노 나노로 만드는 오디오 반응형 책상 무드등 (주소 지정 LED)
  8. 아두이노 나노와 네오픽셀 매트릭스로 만드는 네온 퐁 게임
  9. 게이밍용 커스텀 아두이노 조이스틱 스티어링 휠 만들기
  10. 아두이노 101로 만보기 만들기: DHT11 센서와 LCD 디스플레이 활용