Показаны различия между двумя версиями страницы.
Предыдущая версия справа и слеваПредыдущая версияСледующая версия | Предыдущая версия | ||
products:aruno:exp21 [2020/06/25 10:56] – alexnik | products:aruno:exp21 [2020/06/25 19:29] (текущий) – alexnik | ||
---|---|---|---|
Строка 2: | Строка 2: | ||
Компьютерная анимация — последовательный показ (слайд-шоу) заранее подготовленных графических файлов. | Компьютерная анимация — последовательный показ (слайд-шоу) заранее подготовленных графических файлов. | ||
- | Мы уже создавали анимацию на 7-ми сегментном LED - индикаторе, | + | Мы уже создавали анимацию на 7-ми сегментном LED - индикаторе, |
+ | LED - матрица с которой мы познакомились в [[products: | ||
+ | |||
+ | В данном эксперименте сделаем анимацию подмигивающего смайлика. | ||
==== Схема эксперимента ==== | ==== Схема эксперимента ==== | ||
- | {{ : | + | {{ : |
// | // | ||
- | {{ : | + | {{ : |
// | // | ||
- | Как и в предыдущем эксперименте контроллер передает последовательный | + | Для управления LED - матрицей понадобится 16 пинов контроллера. На выводы строк ставим токоограничительные резисторы |
==== Программный код эксперимента ==== | ==== Программный код эксперимента ==== | ||
- | <file cpp Exp19[enable_line_numbers=" | + | <file cpp Exp21[enable_line_numbers=" |
- | int a = 8; | + | int R[] = {2,7,A5,5, |
- | int b = 9; | + | int C[] = {6,11,10,3,A3,4,8,9}; |
- | int c = 11; | + | |
- | int d = 5; | + | unsigned char ris1[8][8] = { |
- | int e = 4; | + | 0, |
- | int f = 7; | + | 0,1,1,0,0,1,1,0, |
- | int g = 6; | + | 0,1,1,0,0,1,1,0, |
- | int h = 10; | + | 0,0,0,0,0,0,0,0, |
- | int keyPin = 3; | + | 0,0,0,0,0,0,0,0, |
- | int data [11][8] = {{1, | + | |
- | {0,1,1,0,0,0,0,1}, //" | + | 0,0,1, |
- | {1,1,0,1,1,0,1,1}, //" | + | 0,0, |
- | {1, | + | |
- | {0,1,1,0,0,1,1,1}, //" | + | |
- | {1,0,1,1,0,1,1,1}, //" | + | unsigned char ris2[8][8] = |
- | {1,0, | + | |
- | {1,1,1,0,0,0,0,1}, //" | + | 0,1,1,0,0,0,0,0, |
- | {1,1,1,1,1,1,1,1}, //" | + | 0,1,1,0,1,1,1,1, |
- | {1,1,1,1,0,1,1,1}, //" | + | 0,0,0,0,0,0,0,0, |
- | {0, | + | 0,0,0,0,0,0,0,0, |
- | + | 0,1,0,0,0,0,1,0, | |
- | void displ (int); | + | 0,0,1,1,1,1,0,0, |
- | + | 0, | |
- | void setup() { | + | |
- | for(int i=4;i<=11;i++) | + | |
- | | + | void setup() { |
- | | + | for(int i = 0; |
- | | + | pinMode(R[i], |
+ | | ||
+ | } | ||
+ | | ||
+ | | ||
+ | void loop(){ | ||
+ | for(int i = 0 ; i < 70 ; i++) { | ||
+ | | ||
+ | | ||
+ | for(int | ||
+ | Display(ris2); | ||
+ | | ||
+ | | ||
+ | |||
+ | void Display(unsigned char dat[8][8]) { | ||
+ | for(int r = 0; r<8 ; r++) { | ||
+ | digitalWrite(R[r],LOW); | ||
+ | for(int c = 0; | ||
+ | | ||
+ | } | ||
+ | | ||
+ | Clear(); | ||
+ | } | ||
+ | | ||
+ | |||
+ | void Clear() { | ||
+ | for(int i = 0; | ||
+ | digitalWrite(C[i],LOW); | ||
+ | | ||
+ | | ||
| | ||
- | |||
- | int x = -1; | ||
- | int button_old = 1; | ||
- | void loop() { | ||
- | | ||
- | x = x + 1; | ||
- | } | ||
- | | ||
- | | ||
- | if (x > 9) {x = 0;} | ||
- | |||
- | | ||
- | | ||
- | } | ||
- | |||
- | void displ (int num) { | ||
- | int j = 0; | ||
- | digitalWrite(a, | ||
- | digitalWrite(b, | ||
- | digitalWrite(c, | ||
- | digitalWrite(d, | ||
- | digitalWrite(e, | ||
- | digitalWrite(f, | ||
- | digitalWrite(g, | ||
- | digitalWrite(dp, | ||
- | } | ||
</ | </ | ||
- | В программе | + | В программе пины контроллера |
+ | Для | ||
==== Дополнительное задание ==== | ==== Дополнительное задание ==== | ||
<WRAP center round tip 60%> | <WRAP center round tip 60%> | ||
- | * добавьте дополнительно еще буквы A, b, C, d, E, F | + | Создайте свою анимацию из нескольких картинок |
- | * усовершенствуйте функцию '' | + | |
</ | </ | ||