Проекты с использованием контроллера Arduino



Download 12,28 Mb.
Pdf ko'rish
bet124/215
Sana22.02.2022
Hajmi12,28 Mb.
#109180
1   ...   120   121   122   123   124   125   126   127   ...   215
Bog'liq
Petin V A - Proekty s ispolzovaniem kontrollera Arduino Elektronika 2014


Часть III. Практическое применение Arduino 
// очистка дисплея 
clearDisplay() 

void loop() {;} 
// обработка прырывания по таймеру 
// динамическая индикация 
void showDisplay() { 
for(byte i=0;i<8;i++) 

// SS=0 – защелкнуть выводы 
digitalWrite(displayPin,LOW); 
// 4,3 
byte bhigh=displayArray[(i+OFFSET_DISPLAY1.offsetY+8+16)%16+4]; 
bhigh=circleShift(bhigh,OFFSET_DISPLAY1.offsetX); 
SPI.transfer(255-bhigh); 
SPI.transfer(B00000001<// 2,1 
byte blow=255-displayArray[(i+OFFSET_DISPLAY1.offsetY+16)%16+4]; 
blow=circleShift(blow,OFFSET_DISPLAY1.offsetX); 
SPI.transfer(blow); 
SPI.transfer(B00000001<// SS=1 – вывести данные на выводы 74HC595 
digitalWrite(displayPin,HIGH); 
// 1000 мкс 
delayMicroseconds(1000); 


// циклический сдвиг байта 
byte circleShift(byte var,int offset) 

byte varnew; 
for(int i=0;i<8;i++) 
bitWrite(varnew,i,bitRead(var,(i+offset+8)%8)); 
return varnew; 

// очистка дисплея 
void clearDisplay() { 
for(int i=0;idisplayArray[i]=0; 

16.4.2. Фигуры игры "Тетрис" 
Для реализации игры создадим массив со всеми изображениями фигур для "Тетри-
са" 
arrFigure[][]
, массив указателей на новую фигуру при повороте 
transFigure[]

а также структуру 
FIGURA
для сохранения информации о текущей фигуре (лис-
тинг 16.3). 


Глава 16. Arduino и светодиодные матрицы 
221 
Листинг 16.3 
byte arrFigure[16][5]={ 
{0,0,0,0,0},{15,0,0,0,4},{1,1,1,1,1},{3,3,0,0,2}, 
{7,1,0,0,3},{7,4,0,0,3},{1,7,0,0,3},{4,7,0,0,3}, 
{3,1,1,0,2},{3,2,2,0,2},{1,1,3,0,2},{2,2,3,0,2}, 
{7,2,0,0,3},{2,3,2,0,2},{2,7,0,0,3},{1,3,1,0,2}}; 
byte transFigure[16]={0,2,1,3,9,8,10,11,5,7,4,6,13,14,15,12}; 
struct FIGURA // структура для хранения фигуры на экране 

int driving; // 1 – в движении 
int offsetX; // смещение по x 
int offsetY; // смещение по y 
int dX; // изменение влево-вправо 
int dY; // dy 
int dT; // 1 - поворот 90 градусов 
int c; // номер фигуры 
int length; // ширина фигуры 
long millis1; 
}; 
FIGURA FIGURA1={0,3,20,0,0,0,0,0,0}; 
В массиве
arrFigure[][5]
— первые четыре байта используются для прорисовки 
изображения фигуры, пятый байт — ширина фигуры. 
Добавление фигуры на поле выполняет процедура 
add_figura()
(листинг 16.4).
Фигура выбирается с помощью функции 
random()
. В структуру 
FIGURA
заносятся 
следующие начальные значения: 

offsetY
— номер фигуры, выдаваемый функцией 
random()


offsetX=3


int offsetY=20
— верх буфера экрана; 

с
— номер фигуры; 

length
— ширина; 

FIGURA1.driving=1
— фигура движется. 
и изображение фигуры выводится в буфер экрана. Данные при этом заносятся 
в верхнюю невидимую часть буфера экрана (байты 20–23 массива 
displayArray
). 
Листинг 16.4 
void add_figura() 

FIGURA1.figura=random(1,sizeof(transFigure)); 
FIGURA1.figura=millis()%sizeof(transFigure); 


222 
Download 12,28 Mb.

Do'stlaringiz bilan baham:
1   ...   120   121   122   123   124   125   126   127   ...   215




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish