Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Manufacturing Technology >> Производственный процесс

Улучшенная игра «Нерв» со счётчиком ошибок на Arduino Nano

Компоненты

Arduino Nano R3×1
Зуммер (buzzer)×1
Красный LED 5 мм×1
Зелёный LED 5 мм×1
Сдвиговый регистр 74HC595 (Serial-to-Parallel)×1
7-сегментный красный индикатор×1
Резисторы 220 Ом×10
Кронка 9В×1

Инструменты

О проекте

Классическая игра «Нерв» (buzz wire) с подсчётом касаний провода. При 10-й ошибке устройство входит в режим «game over» — зуммер и индикатор бешено мигают. После каждого касания — «лаг» 500 мс (можно изменить в коде). Кольцо для прохождения сделано из ключника — удобно снимать.

Логика работы

Код (три файла)

nervous_meter_score.ino — основной цикл

int latchPin=3, clockPin=4, dataPin=2;
const int STOP_LED=6, GO_LED=7, BUZZ=8, TOUCH=10;
const int fail_threshold=9;
enum Status { STOP=0, GO=1 };
Status status=GO; int failCounter=0;

void loop() {
  while(failCounter > fail_threshold) gameover();
  switch(status){
    case GO: digitalWrite(GO_LED,HIGH); digitalWrite(STOP_LED,LOW); digitalWrite(BUZZ,LOW);
      if(digitalRead(TOUCH)==HIGH) status=STOP; break;
    case STOP: digitalWrite(GO_LED,LOW); failCounter++;
      if(failCounter > fail_threshold) break;
      displayDigit(failCounter); failAlarm(); status=GO; break;
  }
}

score_display.ino — работа с 74HC595 и индикатором


byte seg_digits[10] = { B11111100, B01100000, B11011010, B11110010,
  B01100110, B10110110, B10111110, B11100000, B11111110, B11100110 };
void displayDigit(int x) {
  digitalWrite(latchPin,LOW);
  shiftOut(dataPin,clockPin,LSBFIRST,seg_digits[x]);
  digitalWrite(latchPin,HIGH);
}

game.ino — инициализация и звук


void gameInitialSetup() {
  pinMode(STOP_LED,OUTPUT); pinMode(GO_LED,OUTPUT);
  pinMode(BUZZ,OUTPUT); pinMode(TOUCH,INPUT_PULLUP);
}
void failAlarm() {
  digitalWrite(STOP_LED,HIGH); beep(); delay(150);
  digitalWrite(STOP_LED,LOW); digitalWrite(BUZZ,LOW); delay(500);
}
void beep() { for(int i=0;i<3;i++){ digitalWrite(BUZZ,HIGH); delay(50); digitalWrite(BUZZ,LOW); delay(50);} }

Схема

D10 (TOUCH) подключается к проволу трассы. При касании кольцом цепь замыкается на 5В → HIGH. 74HC595 управляет 7-сегментным индикатором по 3 проводам (data, clock, latch). Резисторы 220 Ом на сегменты и LED.

Производственный процесс

  1. Реагирует ли вольфрамная проволочная сетка с воздухом? Технический обзор
  2. Искусство и ремесло тиар: история, материалы и современный дизайн
  3. Колючая проволока: история, конструкция и современное применение
  4. Панель управления полётным симулятором 2020 на Arduino Nano: LCD и CDI-дисплеи
  5. Панель переключателей и LED для Microsoft Flight Simulator 2020 на Arduino
  6. Counter в collections Python: эффективное подсчёт, обновление и арифметические операции
  7. Освоение вставки проводов в E3.series с E3.cable
  8. Управление светодиодом по Bluetooth с Arduino: простой DIY-гид
  9. Набор MOSMusic: MOSFET, Arduino и управление светом по музыке
  10. Пионерские решения Wire EDM для сложного производства форм и штампов