Добър ден, скъпи читателю на моята статия, днес в тази статия бих искал да ви кажа как да сглобявате играта "влекач" на arduino
ТОВА Е КАКВО ТРЯБВА:
1. Arduino Uno
2.2 кондензатори за 0,1 микрофарада
3.14 резистори от 220 ома
4. LED скала или 10 светодиода на 3 волта
5. Хляб
6. 2 бутона на часовника
7. пиезо пищялка
8. Инвертиращ спусък на Шмит
9. джъмперни проводници
Така че първо, нека програмираме ардуино
Ето една скица:
На следващо място, ние събираме всичко според тази схема:
трябва да получите нещо подобно:
след като "въжето" се премести на страна 1 на играчите, играта приключва, можете да го рестартирате, като натиснете бутона на самия ардуино
Надявам се, че сте харесали този проект и с вас топката DeNiS Geek pro100, това е всичко засега!
ТОВА Е КАКВО ТРЯБВА:
1. Arduino Uno
2.2 кондензатори за 0,1 микрофарада
3.14 резистори от 220 ома
4. LED скала или 10 светодиода на 3 волта
5. Хляб
6. 2 бутона на часовника
7. пиезо пищялка
8. Инвертиращ спусък на Шмит
9. джъмперни проводници
Така че първо, нека програмираме ардуино
Ето една скица:
#define BUZZER_PIN 0
#define FIRST_BAR_PIN 4
#define BAR_COUNT 10
#define MAX_SCORE 20
// глобални променливи, използвани при прекъсвания (виж по-долу)
// трябва да бъде маркиран като нестабилен (променлив)
променлив инт резултат = 0;
настройка за невалидност ()
{
за (int i = 0; i & BAR_COUNT; ++ i)
pinMode (i + FIRST_BAR_PIN, OUTPUT);
pinMode (BUZZER_PIN, OUTPUT);
// Прекъсването (на английски прекъсва) спира главното
// програма, изпълнява определената функция и след това възобновява
// основна програма. Нуждаем се от прекъсване с едно натискане на бутон,
// т.е. при промяна на сигнала от висок към нисък, т.е. за
// надолу (падащ) отпред
attachInterrupt (INT1, pushP1, FALLING); // INT1 е 3-ти пин
attachInterrupt (INT0, pushP2, FALLING); // INT0 е 2-ри пин
}
невалиден pushP1 () {++ резултат; } // Функция за прекъсване на първия играч
празен pushP2 () {--score; } // Функция за прекъсване на втория играч
void loop ()
{
тон (BUZZER_PIN, 2000, 1000); // дайте сигнал за стартиране.
// докато никой от играчите не спечели, актуализираме „въжето“
докато (abs (резултат) & lt; MAX_SCORE) {
int linked = карта (резултат, -MAX_SCORE, MAX_SCORE, 0, BAR_COUNT);
int наляво = min (обвързан, BAR_COUNT / 2 - 1);
int right = max (обвързан, BAR_COUNT / 2);
за (int i = 0; i & BAR_COUNT; ++ i)
digitalWrite (i + FIRST_BAR_PIN, i & gt; = ляво && i & lt; = дясно);
}
тон (BUZZER_PIN, 4000, 1000); // дават сигнал за победа
докато (вярно) {} // "спре" дъската до рестартиране
}
На следващо място, ние събираме всичко според тази схема:
трябва да получите нещо подобно:
след като "въжето" се премести на страна 1 на играчите, играта приключва, можете да го рестартирате, като натиснете бутона на самия ардуино
Надявам се, че сте харесали този проект и с вас топката DeNiS Geek pro100, това е всичко засега!