Теперь перейдем к написанию кода.
За основу возьмем код с предыдущего урока.
Добавим в код 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);
}
}
Загружаем код в плату Ардуино и можно начинать игру
![Мегаботан :ugeek:](./images/smilies/icon_e_ugeek.gif)