Приобрел такой 2х разрядный 8ми сегментный (с точкой) элемент. Но так и не могу найти по нему распиновку. Как вообще циферки зажигать? Кто подскажет?
в гугле поискать? http://svl.com.ua/manual/view34.html http://ledlamps.ru/GND-5622Ex-Fx.pdf http://electro-tehnyk.narod.ru/docs/Datasheet/Displays_Indicator.pdf
Спасибо, это помогло. Еще вопрос - что бы всем этим светить нужна куча соединений - на каждый светодиод. Так и делается обычно? И второе, в данном гаджете общий анод, т.е. берем +5 и через резистор пускам на анод. Как же тогда рулить светодиодами? и зажигать нужные циферки?!
Для экономии выводов МК можно воспользоваться регистром сдвига (например 74HC595) или I2C / SPI расширителем портов. Общий анод напрямую на +5V, катоды элементов через резисторы (каждый через свой) на выводы МК, вывод "0" зажигает сегмент, "1" гасит.
http://avrlab.com/node/130 http://greenoakst.blogspot.ru/2011/11/arduino-7-spi.html http://cxem.net/mc/mc235.php
А посоветуйте, на чем удобнее сделать отсчет времени с выводом. Нужно считать от 1 до 40, скажем... Сдвиговых регистров на руках нет, не факт, что смогу найти в магазине.
А не получится, если аноды не на +5, а сразу на управляющие выводы, что бы рулить какие разряды зажигать!?
Общий анод! То, что необходимо, по Вашим словам на 5+. Но в таком случае как мне управлять какой из разрядов зажечь, а какой погасить. А вот если анод на управляющий пин, то на него же можно будет подавать 5+ либо нет, если необходимо "потушить" разряд.
Катоды подключаете к управляющим выводам через резисторы, "0" зажигает сегмент, "1" гасит. Т.к. у вас несколько разрядов, на анод каждого разряда по очереди подаете +5V, для этого подключаете аноды к управляющим пинам через NPN транзисторы. Коллекторы на +5V, базы на управляющие пины, эмиттеры на аноды разрядов. "1" зажигает разряд, "0" гасит.
Вы процесс индикации плохо написали. Разделите процедуры вычисления значения разрядов и динамической индикации. Пусть отдельно от основного цикла отсчета времени внутри loop() или, что еще лучше, по прерыванию от таймера постоянно выполняется процедура обновления индикатора, берущая данные сегментов из загодя подготовленного буфера дисплея. Разряды должны гореть максимальное время, выключать предыдущий сегмент следует только непосредственно перед включением следующего. Никакие вычисления не должны появляться в этой паузе между включением разрядов.