Текущее время: 16 июл 2018, 22:56

Город ХОББИ

Занятие любимым хобби - это путь к счастливой жизни!

Урок 7. Автомат "Электронный кубик" на Ардуино

Обучение с нуля, шаг за шагом.
Аватар пользователя
 
Сообщений: 674
Зарегистрирован: 27 мар 2013, 23:12

Урок 7. Автомат "Электронный кубик" на Ардуино

Сообщение -=dp=- » 09 мар 2018, 18:08

Урок 7. Автомат "Электронный кубик" на Ардуино

Для создания автомата "Электронный кубик" нам понадобятся следующие компоненты:
1 - плата контроллера Ардуино УНО
2 - цифровогй LED семисегментный индикатор
3 - резистор 560 Ом
4 - кнопки 2 шт.
5 - макетная плата
6 - монтажные провода
7 - кабель microUSB > USB

Купить Ардуино в Калининграде можно тут: http://newmar.ru

Подключаем все детали по схеме на рисунке ниже:

Arduino UNO cubes.jpg
Автомат "Электронный кубик" на Ардуино



Аватар пользователя
 
Сообщений: 674
Зарегистрирован: 27 мар 2013, 23:12

Re: Урок 7. Автомат "Электронный кубик" на Ардуино

Сообщение -=dp=- » 09 мар 2018, 19:12

Теперь перейдем к написанию кода.
За основу возьмем код с предыдущего урока.

Добавим в код 2 кнопки, назначим 11 и 12 выводы контроллера как входы, можно посмотреть пример подключения кнопки из предыдущих уроков.

Далее, создаем переменную count для подсчета случайного числа.
Так как в оригинальном кубике всего 6 цифр, мы то же оставляем в коде программы 6 цифр, от 1 до 6.

Далее, в главном цикле программы создадим счетчик с проверкой условия, если значение счетчика больше или равно 6, присваиваем переменной count значение 1, если меньше то увеличиваем значение переменной count на 1.

if (count>=6) {
count = 0;
} else {
count = count + 1;
};

Затем сделаем отображение значения переменной count при нажатии на кнопку СТАРТ.

Полный код игрового автомата "Электронный кубик"

Код: выделить все
//  Урок 7. Игровой автомат "Электронный кубик" на Ардуино
const int led2 =  2;
const int led3 =  3;
const int led4 =  4;
const int led5 =  5;
const int led6 =  6;
const int led7 =  7;
const int led8 =  8;
 
const int button1 =  11;
const int button2 =  12;

int buttonState1 = 0;
int buttonState2 = 0;

 int count = 0;

void setup() {
  pinMode(led2, OUTPUT);
  pinMode(led3, OUTPUT);
  pinMode(led4, OUTPUT);
  pinMode(led5, OUTPUT);
  pinMode(led6, OUTPUT);
  pinMode(led7, OUTPUT);
  pinMode(led8, OUTPUT);
  //  Очистка всех сегментов 
    digitalWrite(led2, LOW);
    digitalWrite(led3, LOW);
    digitalWrite(led4, LOW);
    digitalWrite(led5, LOW);
    digitalWrite(led6, LOW);
    digitalWrite(led7, LOW);
    digitalWrite(led8, LOW);   
// 0 
    digitalWrite(led6, HIGH);
    digitalWrite(led7, HIGH);
    digitalWrite(led8, HIGH);
    digitalWrite(led2, HIGH);
    digitalWrite(led3, HIGH);
    digitalWrite(led4, HIGH);
  pinMode(button1, INPUT_PULLUP);
  pinMode(button2, INPUT_PULLUP);
}

void loop() {
 int i = 1;

  buttonState1 = digitalRead(button1);
  buttonState2 = digitalRead(button2);

if (count>=6) {
count =  0; 
  } else {
count = count + 1; 
  };

if (buttonState1 == HIGH) {

  } else {
 
if (count==1){
//  Очистка всех сегментов 
    digitalWrite(led2, LOW);
    digitalWrite(led3, LOW);
    digitalWrite(led4, LOW);
    digitalWrite(led5, LOW);
    digitalWrite(led6, LOW);
    digitalWrite(led7, LOW);
    digitalWrite(led8, LOW);

// 1 
    digitalWrite(led8, HIGH);
    digitalWrite(led2, HIGH);
};

if (count==2){
//  Очистка всех сегментов 
    digitalWrite(led2, LOW);
    digitalWrite(led3, LOW);
    digitalWrite(led4, LOW);
    digitalWrite(led5, LOW);
    digitalWrite(led6, LOW);
    digitalWrite(led7, LOW);
    digitalWrite(led8, LOW);

// 2 
    digitalWrite(led7, HIGH);
    digitalWrite(led8, HIGH);
    digitalWrite(led5, HIGH);
    digitalWrite(led4, HIGH);
    digitalWrite(led3, HIGH);
};
if (count==3){

//  Очистка всех сегментов 
    digitalWrite(led2, LOW);
    digitalWrite(led3, LOW);
    digitalWrite(led4, LOW);
    digitalWrite(led5, LOW);
    digitalWrite(led6, LOW);
    digitalWrite(led7, LOW);
    digitalWrite(led8, LOW);

// 3 
    digitalWrite(led7, HIGH);
    digitalWrite(led8, HIGH);
    digitalWrite(led5, HIGH);
    digitalWrite(led2, HIGH);
    digitalWrite(led3, HIGH);
};
if (count==4){

//  Очистка всех сегментов 
    digitalWrite(led2, LOW);
    digitalWrite(led3, LOW);
    digitalWrite(led4, LOW);
    digitalWrite(led5, LOW);
    digitalWrite(led6, LOW);
    digitalWrite(led7, LOW);
    digitalWrite(led8, LOW);


// 4 
    digitalWrite(led6, HIGH);
    digitalWrite(led5, HIGH);
    digitalWrite(led8, HIGH);
    digitalWrite(led2, HIGH);
};
if (count==5){

//  Очистка всех сегментов 
    digitalWrite(led2, LOW);
    digitalWrite(led3, LOW);
    digitalWrite(led4, LOW);
    digitalWrite(led5, LOW);
    digitalWrite(led6, LOW);
    digitalWrite(led7, LOW);
    digitalWrite(led8, LOW);

// 5 
    digitalWrite(led7, HIGH);
    digitalWrite(led6, HIGH);
    digitalWrite(led5, HIGH);
    digitalWrite(led2, HIGH);
    digitalWrite(led3, HIGH);
};
if (count==6){
   
//  Очистка всех сегментов 
    digitalWrite(led2, LOW);
    digitalWrite(led3, LOW);
    digitalWrite(led4, LOW);
    digitalWrite(led5, LOW);
    digitalWrite(led6, LOW);
    digitalWrite(led7, LOW);
    digitalWrite(led8, LOW);

// 6 
    digitalWrite(led7, HIGH);
    digitalWrite(led6, HIGH);
    digitalWrite(led4, HIGH);
    digitalWrite(led3, HIGH);
    digitalWrite(led2, HIGH);
    digitalWrite(led5, HIGH);
};

};

 if (buttonState2 == HIGH) {
 
  } else {
 
//  Очистка всех сегментов 
    digitalWrite(led2, LOW);
    digitalWrite(led3, LOW);
    digitalWrite(led4, LOW);
    digitalWrite(led5, LOW);
    digitalWrite(led6, LOW);
    digitalWrite(led7, LOW);
    digitalWrite(led8, LOW);   
// 0 
    digitalWrite(led6, HIGH);
    digitalWrite(led7, HIGH);
    digitalWrite(led8, HIGH);
    digitalWrite(led2, HIGH);
    digitalWrite(led3, HIGH);
    digitalWrite(led4, HIGH);

delay(i);
  }
}




Загружаем код в плату Ардуино и можно начинать игру ;) :o :shock: :D :geek: :ugeek:




Вернуться в Обучение Ардуино

Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0