Викр |
Дата: Вторник, 19.06.2012, 04:42 | Сообщение # 1 |
Админ
Группа: Администраторы
Сообщений: 71
Награды: 6
Репутация: 100
Статус: Офлайн
|
Доброй ночи. Сегодня я сново не сплю и то, что я расскажу,думаю, вас заинтересует. Мы попытаемся понять принцип действия динамической индикации.
Цитата Динамическая индикация – это метод отображения целостной картины через быстрое последовательное отображение отдельных элементов этой картины. Причем, «целостность» восприятия получается благодаря инерционности человеческого зрения. Вот на анимашке ниже приведено как работает динамическая индикация. Болтовня-болтовней а дело стоит, давайте начнем!
У вас выйдет примерно так. Семисегментный индикатор — устройство отображения цифровой информации. Это — наиболее простая реализация индикатора, который может отображать арабские цифры, некоторые буквы.
У нас есть 3-х разрядный семисегментный экранчик от тюнера или купленный, или самодельный(7 светодиодов)...неважно с чего он...Наш экран без внутренней электроники(дешифратора и т.п).
Выше принципиальная схема hlec-t512srwa семисегментного экрана(стоит в Украине 7 грн) с общим анодом. За основу экрана взято светодиоды. С экрана выходит 12 проводов, 12-тый лишний(можно откусить ) из них 8 общих (8 потому,что есть еще точка) катодов для трех сегментов(A,B,C,D,E,F,G,D,DP), с каждого разряда выходит 1 разрешающий анод . Анод подключаем на "+" питания (5 вольт) через резистор на 470 ом. А катоды посадить на "-"(проверить исправность). Я подключал следующим образом к Arduino UNO. Где R2,R3,R4 резисторы равны: 4,7 -470 Ом, в принципе можно их и не ставить. A R1 = 1KOм. Теперь сама программка. Скачать программку Я присвоил каждому сегменту имя и определённый коннектор на ардуино: Код const int d1 = 7; const int d2 = 8; const int d3 = 9; const int a = 12; const int b = 10; const int c = 3; const int d = 5; const int e = 6; const int f = 11; const int g = 2; const int h = 4; const int key = 13; Как я уже писал на индикаторе 7 сегментов и 1 точка (A,B,C,D,E,F,G,D,DP) DP- точка, она у нас h."key"- это кнопка, 13 коннектор. Теперь установил некоторые на вход(13) и остальные на выход. Код void setup() { pinMode(a, OUTPUT); pinMode(b, OUTPUT); pinMode(c, OUTPUT); pinMode(d, OUTPUT); pinMode(e, OUTPUT); pinMode(f, OUTPUT); pinMode(g, OUTPUT); pinMode(h, OUTPUT); pinMode(d1, OUTPUT); pinMode(d2, OUTPUT); pinMode(d3, OUTPUT); pinMode(key, INPUT); } Максимальное значение сегмента = 9. То есть у нашей программе должно быть описано 10 разных цифр(0.1.2.3.4.5.6.7.8.9). Например: цифра 1 у меня будет так:
Код void one () // один { digitalWrite(b,SEGMENTS); digitalWrite(c,SEGMENTS); } Чтобы числа не переключались с огромной скоростью я сделал "замедление у 20 раз".
Код if (digitalRead(key) == LOW) {n++;} // если нажата кнопкa if(n >= 20) { n0++; n = 0; } // снижаем скорость нарастания чисел(20 к 1),наш атмега слишком шустрый))) Еще добавлен понт при включении, но это вы увидите, когда собирете. И если число больше за 999 на индикаторе горит "HHH". Если вы используете экран с общим катодом, то удалите строку.
Код #define ANODE // закомментируйте или удалите, если у вас общий катод. Если что нибудь не выходит- вопросов не стесняемся.
|
|
| |
lbkheple |
Дата: Суббота, 03.02.2024, 13:54 | Сообщение # 21 |
Группа: Гости
|
<a href=https://samoylovaoxana.ru/tag/organizacziya/>организация</a> или <a href=https://samoylovaoxana.ru/tag/pamyatniki-sankt-peterburga/>памятники Санкт-Петербурга</a> <a href=https://samoylovaoxana.ru/tag/alachati/>Алачати</a> https://samoylovaoxana.ru/tag/garipov/ Ещё можно узнать: <a href=http://yourdesires.ru/fashion-and-style/quality-of-life/1485-kak-zajti-v-kazino-faraon-v-obhod-blokirovok.html>pharaonbet casino</a> Туризм
|
|
| |