Форум программистов, компьютерный форум, киберфорум
Наши страницы
Лазеры, свет, LED
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
Ромуальд_7
3 / 3 / 1
Регистрация: 11.04.2015
Сообщений: 272
1

Подключение семисегментного индикатора к arduino uno

29.03.2018, 19:42. Просмотров 1460. Ответов 25
Метки нет (Все метки)

Всем доброго времени суток!
Я новичок в деле программирования микроконтроллеров, поэтому прошу быть снисходительными
Суть вот в чём:
взял я микроконтроллер arduino uno r3 и имеющийся дома семисегментный индикатор с общим анодом; долго мучился с методом его подключения и управления, но, всё же, смоглось (подключал перемычками через макетную плату без единого резистора (ибо, объективно, они нафиг не нужны (в электротехнике я немного понимаю)). Но тут я узнал про подводные камни - я смог зажечь лишь точку в правом нижнем углу (и при 3.3В и при 5В питания анода); ни один другой сегмент не загорелся при смене пина выхода в программе. Причина (найдено опытным путём методом подключения "кроны" (и других батареек) к аноду и каждому сегменту) в том, что выходных 5 вольт не хватает для питания основных сегментов (опыт: хватает 7 вольт), а больше выжать из контроллера не выйдет (USB 2, видите ли). Я пробовал воткнуть в цепь простой усилитель в виде батарейки - ставил последовательно для увеличения напряжения и параллельно для увеличения тока (с диодом в цепи, чтобы ток не пошёл на контроллер), но увы - не менялось совершенно ничего (ни яркость точки (опыт был с ёё участием), ни значения напряжения на тестере).
Подскажите, кому не трудно - что я делаю не так?
Большое спасибо!
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.03.2018, 19:42
Ответы с готовыми решениями:

Светомузыка на arduino uno
Хочу сделать светомузыку на на arduino, используя несколько ЯРКИХ разноцветных...

подключение Pinboard к Arduino
Доброе время. Знаю что часть моих вопросов рассматривалась на форуме но я все...

Поиск аналогов светодиодного индикатора.
В имеющейся схеме забит индикатор kw3-361CSA - у него всего 12 ножек. Нашёл в...

Нужно спилить муш... толщину индикатора
Собираю счетчик на 2 семисегментниках, ПО уже запилил, сейчас обдумываю из чего...

Мильтиметр Mastech MS8040 - плохая контрастность индикатора
Привет всем. Уже пару лет как пользуюсь мультиметром Mastech MS8040. Всем он...

25
ValeryS
Модератор
7407 / 5604 / 711
Регистрация: 14.02.2011
Сообщений: 19,067
Завершенные тесты: 1
29.03.2018, 19:49 2
Цитата Сообщение от Ромуальд_7 Посмотреть сообщение
ибо, объективно, они нафиг не нужны (в электротехнике я немного понимаю))
чейто не похоже
Цитата Сообщение от Ромуальд_7 Посмотреть сообщение
(опыт: хватает 7 вольт)
сжег ты их уже
Цитата Сообщение от Ромуальд_7 Посмотреть сообщение
Подскажите, кому не трудно - что я делаю не так?
изучить что такое светодиод
0
Ромуальд_7
3 / 3 / 1
Регистрация: 11.04.2015
Сообщений: 272
29.03.2018, 19:59  [ТС] 3
ValeryS, Вы меня, конечно, извините (за сарказмы и др.), но:
1. светодиод и источник тока имеют внутренние сопротивления, что позволяет, зная, что ток в цепи не превысит максимально возможного значения, подключать светодиоды БЕЗ резисторов (моя самодельная гирлянда питается от 36В без единого резистора лет 5 уж и ничего не сгорело (удивительно, блин, как же это возможно-то)(если интересно, то амперметр включённый последовательно показывает ток в цепи, равный 0,04А (ух ты, как так-то без резисторов)).
2. что такое светодиод мне известно, вот только знание конструкции и принципов работы никак не помогает, знаете ли.
3. нет, я ничего не сжёг - проверено, перепроверено и перепроверяется после всякого опыта (для справки - в приборе, откуда я их вытащил они питались от 12 вольт (именно поэтому для меня загадка, почему точка светится, начиная с 3 вольт))
0
ValeryS
Модератор
7407 / 5604 / 711
Регистрация: 14.02.2011
Сообщений: 19,067
Завершенные тесты: 1
29.03.2018, 20:43 4
Цитата Сообщение от Ромуальд_7 Посмотреть сообщение
светодиод и источник тока имеют внутренние сопротивления,
какое сопротивление у PN перехода?
какое сопротивление у современной "кроны"?
Цитата Сообщение от Ромуальд_7 Посмотреть сообщение
что такое светодиод мне известно,
И ВАХ светодиода можете отобразить?
Цитата Сообщение от Ромуальд_7 Посмотреть сообщение
(ух ты, как так-то без резисторов)).
загадка
Цитата Сообщение от Ромуальд_7 Посмотреть сообщение
они питались от 12 вольт
прям так напрямую?
0
marat_miaki
175 / 157 / 93
Регистрация: 08.04.2013
Сообщений: 646
29.03.2018, 21:02 5
имеющийся дома семисегментный индикатор имеет же какие то характеристики, хотим посмотреть тоже на чудо, работающее от 7-9 в. Можно и картинку. Вроде бы многие индикаторы работают от 2,7-3,3 v
0
Ромуальд_7
3 / 3 / 1
Регистрация: 11.04.2015
Сообщений: 272
29.03.2018, 22:07  [ТС] 6
Цитата Сообщение от ValeryS Посмотреть сообщение
какое сопротивление у PN перехода?
какое сопротивление у современной "кроны"?
небольшое, но имеющееся и небольшое, но имеющееся;
Цитата Сообщение от ValeryS Посмотреть сообщение
И ВАХ светодиода можете отобразить?
Полагаю, ВАХ светодиода мало чем (если не ни чем) отличается от ВАХа стабилитрона, который я могу отобразить.
Цитата Сообщение от ValeryS Посмотреть сообщение
они питались от 12 вольт
Разумеется, нет - через микроконтроллер (неизвестный мне, к сожалению), с выходов которого снималось 12 вольт при поступающих от выпрямителя 15-и.

Добавлено через 3 минуты
Цитата Сообщение от marat_miaki Посмотреть сообщение
хотим посмотреть тоже на чудо, работающее от 7-9 в.
Извольте - KINGBRIGHT SA23-11SRWA - на сайте магазина "чип и дип" есть пдф-файл с распиновкой, которым я и руководствовался. (там написано: "напряжение питания - 5В" - БРЕД СОБАЧИЙ - от 5 вольт загорается лишь DP!)
Кстати говоря, я мог и неверно подключить - схем подключения 7-сегм. индикаторов с общим катодом - завались, а для общего анода всё объяснение заканчивается тем, что "там всё наоборот". Что наоборот-то??
Если не трудно, подскажите, пожалуйста.
0
Ромуальд_7
3 / 3 / 1
Регистрация: 11.04.2015
Сообщений: 272
29.03.2018, 22:53  [ТС] 7
Вот так я подключил семисегментный светодиодный индикатор с ОБЩИМ АНОДОМ (резисторы я, всё же (фиг знает зачем, ведь с пинов UNO выходит 40-50 mA), включил в цепь - по 500 Ом в каждой линии).
Правильно ли это?
0
Миниатюры
Подключение семисегментного индикатора к arduino uno  
Ромуальд_7
3 / 3 / 1
Регистрация: 11.04.2015
Сообщений: 272
29.03.2018, 23:07  [ТС] 8
А код управления такой (загорается, как и должен, DP, но элемент f не хотит, чего-то): (ВСЕ ЭЛЕМЕНТЫ ИНДИКАТОРА ЖИВЫЕ!!! Совершенно точно ни один не сгорел!)
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
int LED_segment_7 = 7;
int LED_segment_8 = 8;
int Wait_time = 1000;
void setup ()
{
pinMode (LED_segment_7, OUTPUT);  
pinMode (LED_segment_8, OUTPUT);
}
void loop ()
{
digitalWrite (LED_segment_7, LOW);
digitalWrite (LED_segment_8, LOW);
//delay (Wait_time);
//digitalWrite (LED_segment_7, HIGH);
//delay (Wait_time);
}
0
belltone
3 / 3 / 5
Регистрация: 09.08.2012
Сообщений: 220
30.03.2018, 02:24 9
Можете ещё поковырять мой код когда-то делал для 4-разрядного сегментного индикатора, только если будите делать часы обязательно лучше использовать микросхему DS1302 для точности хода.

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
//
// 4-разрядный 7-сегментный индикатор
//
 
long timer = 0;
long timerPrev = 0;
 
byte secondsOnes = 0;
byte secondsTens = 0;
byte minutesOnes = 0;
byte minutesTens = 0;
byte hoursOnes = 0;
byte hoursTens = 0;
 
// список выводов Arduino для подключения к разрядам a-g семисегментного индикатора
int segmentPins[8] = {9, 13, 4, 6, 7, 10, 3, 5};
 
// значения для вывода цифр 0-9
int numberSegments[10][8] = { 
  {0, 0, 0, 0, 0, 0, 1, 1}, //Цифра 0
  {1, 0, 0, 1, 1, 1, 1, 1}, //Цифра 1
  {0, 0, 1, 0, 0, 1, 0, 1}, //Цифра 2
  {0, 0, 0, 0, 1, 1, 0, 1}, //Цифра 3 
  {1, 0, 0, 1, 1, 0, 0, 1}, //Цифра 4 
  {0, 1, 0, 0, 1, 0, 0, 1}, //Цифра 5 
  {0, 1, 0, 0, 0, 0, 0, 1}, //Цифра 6 
  {0, 0, 0, 1, 1, 1, 1, 1}, //Цифра 7
  {0, 0, 0, 0, 0, 0, 0, 1}, //Цифра 8 
  {0, 0, 0, 0, 1, 0, 0, 1}  //Цифра 9 
};
 
// Пины разрядов цифер
int catodPins[4] = {2, 8, 11, 12};
 
 
void setup() 
{
  // Сконфигурировать контакты как выходы
  for(int i=0; i<8; i++) {
    pinMode(segmentPins[i],OUTPUT);
  }
  for(int i=0 ;i<4; i++) {
    pinMode(catodPins[i],OUTPUT);
    digitalWrite(catodPins[i],HIGH);
  }
}
 
void loop()
{
  clockTimer();
  showNumber(0, minutesTens);
  showNumber(1, minutesOnes);
  showNumber(2, secondsTens);
  showNumber(3, secondsOnes);
}
 
void clockTimer() 
{
  timer = millis();
  
  if(timer - timerPrev >= 1000) 
  {
    secondsOnes+=1;
 
    //Секунды
    if(secondsOnes==10){  // 10 сек.
      secondsOnes=0;
      secondsTens+=1;
    }
    if(secondsTens==6){  // 60 сек.
      secondsTens=0;
      minutesOnes+=1;
    }
 
    //минуты
    if(minutesOnes==10){  // 10 мин.
      minutesOnes=0;
      minutesTens+=1;
    }
    if(minutesTens==6){  // 60 мин.
      minutesTens=0;
      hoursOnes+=1;
    }
    
    //часы
    if(hoursOnes==10){  // 10 час.
      hoursOnes=0;
      hoursTens+=1;
    }
    if(hoursTens==2){  // 20 час.
      if(hoursOnes==4){ // 24 час.
        hoursTens=0;
        hoursOnes=0;
        // + 1 day
      }   
    }
    timerPrev=timer;
  }
}
 
void showNumber(int numNumber, int Number) 
{
 for(int i=0; i<4; i++) 
  {
    for(int k=0; k<8; k++)
    {
      digitalWrite(segmentPins[k], ((numberSegments[Number][k]) ? LOW : HIGH)); 
    }
    
    if(!digitalRead(catodPins[numNumber]) == HIGH) 
    {
      digitalWrite(catodPins[numNumber], HIGH);  
    }
    else {
      digitalWrite(catodPins[numNumber], LOW);
    }
  }
}
0
ValeryS
Модератор
7407 / 5604 / 711
Регистрация: 14.02.2011
Сообщений: 19,067
Завершенные тесты: 1
30.03.2018, 06:31 10
Цитата Сообщение от Ромуальд_7 Посмотреть сообщение
небольшое, но имеющееся
поконкретней, пожалуйста
Цитата Сообщение от Ромуальд_7 Посмотреть сообщение
ВАХ светодиода мало чем (если не ни чем) отличается от ВАХа стабилитрона,
О как
Цитата Сообщение от Ромуальд_7 Посмотреть сообщение
напряжение питания - 5В" - БРЕД СОБАЧИЙ
аргументировано

Добавлено через 8 минут
Цитата Сообщение от Ромуальд_7 Посмотреть сообщение
"напряжение питания - 5В" - БРЕД СОБАЧИЙ - от 5 вольт загорается лишь DP!)
нет там такого
есть
Максимальное прямое напряжение,В 2.5
Максимальное обратное напряжение,В 5
где про питание?
https://www.chipdip.ru/product/sa23-11srwa
повторюсь
Цитата Сообщение от ValeryS Посмотреть сообщение
изучить что такое светодиод
0
marat_miaki
175 / 157 / 93
Регистрация: 08.04.2013
Сообщений: 646
30.03.2018, 07:51 11
3 и 8 на массу или +, а у тебя там что ?

Добавлено через 6 минут
3 и 8 ножки индикатора на массу или + в зависимости Анодный или Катодный
0
ValeryS
Модератор
7407 / 5604 / 711
Регистрация: 14.02.2011
Сообщений: 19,067
Завершенные тесты: 1
30.03.2018, 08:05 12
Цитата Сообщение от marat_miaki Посмотреть сообщение
3 и 8 на массу или +
это для SA23-12 а у него SA23-11
там 1,5
https://static.chipdip.ru/lib/007/DOC003007387.pdf
первая страница
0
marat_miaki
175 / 157 / 93
Регистрация: 08.04.2013
Сообщений: 646
30.03.2018, 08:42 13
Ошибочка, смотрел на схему индикатора с картинки 7 поста, а там то SA23-12 изображен
0
Ромуальд_7
3 / 3 / 1
Регистрация: 11.04.2015
Сообщений: 272
30.03.2018, 15:48  [ТС] 14
Цитата Сообщение от ValeryS Посмотреть сообщение
поконкретней, пожалуйста
в зависимости от типа светодиода, где-то, 5-10 мОм (при сопротивлении кроны, запитывающей схему гирлянды, в, примерно, 40 Ом, 9/(40+n*0.01) ампера не будет являться убийственным током (особенно, если крона будет немного разряжена))
Цитата Сообщение от ValeryS Посмотреть сообщение
О как
я не понял что вы хотел сказать этим смайлом, но (мало ли вы не знаете, всякое бывает) стабилитрон - это такой диод, ВАХ которого, как я уже говорил, по виду ни чем не отличается от ВАХа светодиода (разве что, значениями тока насыщения).

УВАЖАЕМЫЙ модератор сего форума, убедительно прошу прекратить придираться к моим словам - под "напряжением питания" я понимаю такое значение напряжения и направление тока, при котором эффективная РАБОТА светодиода (подача обратного напряжения не даст света и, вероятно, пробьёт его - неэффективная работа; подача слишком низкого напряжения не даст света - неэффективная работа (даже не работа, а, по сути, простая растрата энергии) и так далее). Также прошу не спорить по поводу тех вещей, КОТОРЫЕ Я ДЕЛАЛ СВОИМИ РУЧКАМИ, получая тот или иной результат -
Цитата Сообщение от ValeryS Посмотреть сообщение
аргументировано
Понимаете ли, схема просто не работает и всё - либо не хватает напряжения (что показывают опыты), либо я неверно подключил выводы индикатора к пинам микроконтроллера (не могу проверить). Я прошу вас помочь выявить проблему, а не издеваться и придираться к словам. Если можете помочь - помогите, пожалуйста; не можете - настоятельно попросил бы перестать писать сообщения, содержащие насмешки. Спасибо.

Добавлено через 7 минут
marat_miaki, так правильно собрано или нет? Если да, то просто ничего не работает (кроме точки) и всё тут. Что можете посоветовать по этому поводу?
0
ValeryS
Модератор
7407 / 5604 / 711
Регистрация: 14.02.2011
Сообщений: 19,067
Завершенные тесты: 1
30.03.2018, 16:50 15
Лучший ответ Сообщение было отмечено Ромуальд_7 как решение

Решение

Цитата Сообщение от Ромуальд_7 Посмотреть сообщение
где-то, 5-10 мОм
А поконкретней?
Цитата Сообщение от Ромуальд_7 Посмотреть сообщение
стабилитрон - это такой диод, ВАХ которого, как я уже говорил, по виду ни чем не отличается от ВАХа светодиода
ну и где там сопротивление? можно показать?
ладно насчет знаний все понятно
теперь по теме

Цитата Сообщение от Ромуальд_7 Посмотреть сообщение
Я прошу вас помочь выявить проблему
проблема в том что не читали даташит
в каждом сегменте 4 светодиода включенные последовательно, не считая пресловутой точки там два
на каждом диоде ,согласно опять же даташиту, падает 2.5 вольта итого на сегмент нужно напряжение более 8 вольт на точку более 4
значит к ардуине просто так не подключишь, нужен транзисторный ключ
например вот так
Подключение семисегментного индикатора к arduino uno


резистор R2 для сегмента (12-8)/0.02=200 Ом
для точки (12-4)/0.02=400 Ом
1
marat_miaki
175 / 157 / 93
Регистрация: 08.04.2013
Сообщений: 646
30.03.2018, 17:19 16
проверить можно, есть выход 3,3 v у ардуино, подключить к usb, и проверять меняя фазировку + и - не зная какой Анодный или Катодный индикатор, 1 ножка на минус, 2-ую ножку 3,3 в, загорелся - хорошо нет меняем фазировку, проверяем

Добавлено через 6 минут
главное не замкнуть 1 и 5

Добавлено через 13 минут
резистор 200 ом наверное все таки стоит использовать

Добавлено через 6 минут
обязательно 200 ом использовать!!!
1
Ромуальд_7
3 / 3 / 1
Регистрация: 11.04.2015
Сообщений: 272
30.03.2018, 17:33  [ТС] 17
Цитата Сообщение от ValeryS Посмотреть сообщение
А поконкретней?
Зависит от конкретного светодиода; точнее не знаю.
Цитата Сообщение от ValeryS Посмотреть сообщение
ну и где там сопротивление? можно показать?
ладно насчет знаний все понятно
Сопротивление считается как предел частного от деления приращения напряжения и приращения ток в окрестности значений "рабочей точки" на ВАХе при d(Iрт) ->0 (Если брать геометрию графика ВАХа). А вот уже более подробно я не в курсе.
Что касается электроники (не путать с электротехникой), то тут я профан пока ещё.
Не затруднит ли вас рассказать, что такое "даташит"?
И правильно ли я понимаю, что на рисунке слева изображён микроконтроллер, открывающий путь току питания отдельно взятого сегмента индикатора сторонним источником? Если да, то, вероятно, неразумно снабжать каждый вывод таким ключом (Это ж 8 транзисторов ж). И, собственно, какой транзистор порекомендуете? или как его рассчитать?
И кстати, Если сегменты питаются напругой от 8 вольт, то какого ж ..... в описании индикатора написано 2,5В? умножали бы на 4 светодиода сами, да писали: "рекомендуемое прямое напряжение сегмента - 10В"; для чего такие сложности.

Добавлено через 3 минуты
Цитата Сообщение от marat_miaki Посмотреть сообщение
обязательно 200 ом использовать!!!
Я уже использую на 510 Ом (по факту, 490..500 они), но, учитывая, что с выхода 3.3 выходит не более 40 мА, я по-прежнему не вижу смысла в резисторах.
0
ValeryS
Модератор
7407 / 5604 / 711
Регистрация: 14.02.2011
Сообщений: 19,067
Завершенные тесты: 1
30.03.2018, 17:57 18
Цитата Сообщение от Ромуальд_7 Посмотреть сообщение
что с выхода 3.3 выходит не более 40 мА,
выход может выдержать ток не более 40 мА, а не выдает
ужель закоротить вывод на землю, он просто сгорит и никаких там 40 мА не будет
Цитата Сообщение от Ромуальд_7 Посмотреть сообщение
что на рисунке слева изображён микроконтроллер, открывающий путь току питания отдельно взятого сегмента индикатора сторонним источником?
микроконтроллер управляет транзисторным ключом который и включает сегмент
если бы выходы атмеги могли бы работать в режиме ОК(Открытый Коллектор) то можно было бы обойтись без ключа а так 8 транзисторов или брать не такой огромный индикатор
Цитата Сообщение от Ромуальд_7 Посмотреть сообщение
Сопротивление считается как предел частного от деления приращения напряжения и приращения ток в окрестности значений "рабочей точки"
так вот в идеальном диоде он равен 0 в реальном ненамного больше
Цитата Сообщение от Ромуальд_7 Посмотреть сообщение
Не затруднит ли вас рассказать, что такое "даташит"?
описание детали от производителя
вот конкретно для индикатора
https://static.chipdip.ru/lib/007/DOC003007387.pdf
1
Ромуальд_7
3 / 3 / 1
Регистрация: 11.04.2015
Сообщений: 272
30.03.2018, 18:30  [ТС] 19
ValeryS, Спасибо за ответы!
А если я на макетной плате просто поставлю диод после входа с 3.3В (чтобы не питать сам процессор) и поставлю последовательно с ним батарейку (на 4,5В, допустим), то, выходит, что сегмент не будет гореть, пока плата не выдаст на него свои добавочные 3.3В?
0
Миниатюры
Подключение семисегментного индикатора к arduino uno  
marat_miaki
175 / 157 / 93
Регистрация: 08.04.2013
Сообщений: 646
30.03.2018, 19:27 20
http://wiki.amperka.ru/%D0%BA%D0%BE%...B8%D0%BE%D0%B4
0
30.03.2018, 19:27
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.03.2018, 19:27

Подключение семисегментного индикатора к разным портам
Здравствуйте! Подскажите, каким-способом можно организовать вывод данных на...

подключение arduino uno
Всем привет! Недавно пришла (а точнее пришли) плата Ардуино Уно. Думал ща...

Подключение камеры ACME CA-03 к Arduino Uno
Здравствуйте. Я еще совсем чайник, поэтому ищу помощи здесь. Интересует...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru