Сви смо упознати са коцкама и често смо играли коцкице у ЛУДО или САНП СИДИ (Снаке & Ладдерс) игри. Коцка је чврста кутија типа штитоноша која садржи 6 различитих бројева на свим странама. Бацимо коцкице на површину да бисмо добили случајни број током играња игара. У овом пројекту покушали смо да га реплицирамо дигиталним коцкама користећи ардуино уно плочу. Уместо бацања коцкице, овде треба да притиснемо дугме да бисмо добили случајни број између 0 и 6.
Потребне компоненте
- Ардуино УНО
- Седам сегментни приказ (заједничка анода)
- Тастери
- Повезивање жица
- Даска за хлеб
- Отпорник 1 к
- Напајање
Шема и објашњење
Као што је приказано у горњем кругу дигиталних коцкица, ардуино се користи за контролу целокупног процеса. У колу се користе два тастера - један за покретање коцке и други за ресетовање коцке. Ардуино чита ова два дугмета и изводи операцију. За приказ резултата коцкица користи се седмосегментни приказ.
Ардуино континуирано извршава функцију ранд () и своју вредност је сачувао у привремену променљиву. Када притиснете дугме за коцкице, сачувана вредност се израчунава и приказује на седам сегмената помоћу одговарајуће методе (погледајте програмски део чланка).
Овде у овом колу коцкица користи се заједнички анодни седмосегментни приказ за приказ бројева коцкица, који је директно повезан са ардуино дигиталним бројевима пинова 6, 5, 4, 3, 2, 1, 0. А заједнички анодни клин од седам сегмената је повезан отпорником од +5 волти 220 Охм. Два тастера су такође повезана, и то дугме за коцкице и дугме за ресетовање које су повезане на дигитални пин 14 (А0) и 15 (А1) у односу на земљу.
Објашњење кода
Програмски део овог пројекта игра веома важну улогу за приказ случајних бројева дигиталних коцкица на седмосегментном дисплеју. Ардуино не садржи библиотеку за седмосегментни приказ. па смо креирали цео код без употребе било које библиотеке.
Пре свега бирамо дигитални пин за седмосегментни приказ.
инт пин = {6,5,4,3,2,1,0};
После ње креирамо низ од 6 цифара коцкица, наиме 1, 2, 3, 4, 5 и 6.
цифра знака = {0к02, 0к79, 0к24, 0к30, 0к19, 0к12};
Сада смо дали упутства да се ардуино пин користи као излаз.
воид сетуп () {фор (инт и = 0; и <7; и ++) пинМоде (пин, ОУТПУТ); пинМоде (коцка, ИНПУТ); пинМоде (ресет, ИНПУТ); дигиталВрите (коцкице, ВИСОКО); дигиталВрите (ресетовање, ВИСОКО);
Подразумевано шаљемо код за приказ нуле на седмосегментном дисплеју.
инт темп = 0к40; за (инт и = 0; и <7; и ++) {инт темп1 = темп & 0к01; дигиталВрите (пин, темп1); темп = темп >> 1; }
Сада покрећемо функцију ранд () да бисмо добили случајни број.
инт темп = ранд ();
А када притиснемо програм дугмета за коцкице, прво мапирамо овај случајни број, а затим га пошаљемо на приказ са седам сегмената помоћу битог оператора.
иф (дигиталРеад (дице) == 0) {инт к = темп% 6; темп = цифра; чекати(); за (инт и = 0; и <7; и ++) {инт темп1 = темп & 0к01; дигиталВрите (пин, темп1); темп = темп >> 1; } кашњење (200); }
Исто за дугме за ресетовање.
У овом програму шаљемо по један бит одједном. Овде примењујемо фор петљу која се покреће 7 пута за слање података у сваки сегмент један по један.