Малаток-меню
Авторизация

Наш опрос
Какие языки программирования вы используете?

Всего ответов: 10
Мини-чат
200
Статистика


Наш линк
Malatok.at.ua
Полезные ссылки
Это может быть интересно
[
Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 2 из 2
  • «
  • 1
  • 2
Модератор форума: Викр, Дмытрохан  
Форум » IT-технологии » Arduino » Семисегментный 3-х разрядный индикатор , Arduino и кнопка. (Индикация на ардуино V1.0)
Семисегментный 3-х разрядный индикатор , Arduino и кнопка.
Викр Дата: Вторник, 19.06.2012, 04:42 | Сообщение # 1
Админ
Группа: Администраторы
Сообщений: 71
Награды: 6
Репутация: 100
Статус: Офлайн
Доброй ночи. Сегодня я сново не сплю и то, что я расскажу,думаю, вас заинтересует. Мы попытаемся понять принцип действия динамической индикации.

Цитата
Динамическая индикация – это метод отображения целостной картины через быстрое последовательное отображение отдельных элементов этой картины. Причем, «целостность» восприятия получается благодаря инерционности человеческого зрения.

Вот на анимашке ниже приведено как работает динамическая индикация.

Болтовня-болтовней а дело стоит, давайте начнем!

У вас выйдет примерно так.

Смотреть на Ютубе

Семисегментный индикатор — устройство отображения цифровой информации. Это — наиболее простая реализация индикатора, который может отображать арабские цифры, некоторые буквы.



У нас есть 3-х разрядный семисегментный экранчик от тюнера или купленный, или самодельный(7 светодиодов)...неважно с чего он...Наш экран без внутренней электроники(дешифратора и т.п).



Выше принципиальная схема hlec-t512srwa семисегментного экрана(стоит в Украине 7 грн) с общим анодом. За основу экрана взято светодиоды. С экрана выходит 12 проводов, 12-тый лишний(можно откусить biggrin ) из них 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  // закомментируйте или удалите, если у вас общий катод.

Если что нибудь не выходит- вопросов не стесняемся.
 
101 Дата: Пятница, 01.05.2015, 19:21 | Сообщение # 11
Новичок
Группа: Пользователи
Сообщений: 1
Награды: 0
Репутация: 0
Замечания: 0%
Статус: Офлайн
Спасибо за скетч! Зачётно!
Вопрос.
Не мало ли 1КОм для подтягивающего резистора?
 
Дмытрохан Дата: Суббота, 02.05.2015, 00:53 | Сообщение # 12
Создатель сайта
Группа: Администраторы
Сообщений: 178
Награды: 7
Репутация: 103
Статус: Офлайн
Цитата 101 ()
Спасибо за скетч! Зачётно! Вопрос.
Не мало ли 1КОм для подтягивающего резистора?
101, да, в принципе, сойдет, при 5 вольтах это - 5 мА, что вполне комфортно для кнопки. Если есть резистор "пожернее", то можно использовать его)))


Нет человека-которого нельзя научить...
Есть человек-который не хочет учиться!!!
 
Гость Дата: Пятница, 25.10.2019, 08:43 | Сообщение # 13
Группа: Гости





Почему программа не качивается?
 
Форум » IT-технологии » Arduino » Семисегментный 3-х разрядный индикатор , Arduino и кнопка. (Индикация на ардуино V1.0)
  • Страница 2 из 2
  • «
  • 1
  • 2
Поиск:
Новый ответ
Имя:
Текст сообщения:
Все смайлы
Опции сообщения:
Код безопасности:
Яндекс.Метрика
24 log 24 LOG statistick
счетчик посещений
Если вы видите это,
то ваш браузер устарел
и не поддерживает технологий
CSS 3.0