Показаны различия между двумя версиями страницы.
| Следующая версия | Предыдущая версия | ||
| products:aruno:exp21 [2020/06/25 10:17] – создано alexnik | products:aruno:exp21 [2020/06/25 19:29] (текущий) – alexnik | ||
|---|---|---|---|
| Строка 1: | Строка 1: | ||
| - | ===== Эксперимент | + | ===== Эксперимент |
| - | Используя сдвиговый регистр | + | Компьютерная анимация — последовательный показ (слайд-шоу) заранее подготовленных графических файлов. |
| + | Мы уже | ||
| + | LED - матрица с которой мы познакомились | ||
| + | |||
| + | В данном эксперименте сделаем анимацию подмигивающего смайлика. | ||
| ==== Схема эксперимента ==== | ==== Схема эксперимента ==== | ||
| - | {{ : | + | {{ : |
| // | // | ||
| - | {{ : | + | {{ : |
| // | // | ||
| - | Как и в предыдущем эксперименте контроллер передает последовательный | + | Для управления 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 | + | Создайте свою анимацию из нескольких картинок |
| - | * усовершенствуйте функцию '' | + | |
| </ | </ | ||