7-сегментный дисплей (6,9 дюйма)

Источник:

Дисплей размером 6,9 дюйма (150x90 мм) предназначен для подвешивания на стену.
Если вы распечатаете четыре больших и один маленький кусочек, как я, вы сможете использовать его как часы.

Если вы хотите соединить два дисплея, вам придется склеить их вместе.

ЭЛЕКТРОНИКА:

1x Ардуино НАНО

1x часы реального времени RTC DS3231

1x активный зуммер

86 светодиодов диаметром 5 мм (цвет на ваш выбор)

Установка:

Вам нужно распечатать свой вариант дисплеев.
Вставьте светодиоды в отверстия корпуса.
Наденьте крышку на корпус
Подключите землю светодиода от каждого сегмента к другому цифровому выходу Arduino.
Подключите все одинаковые части числа к одному и тому же цифровому выходу (например, верхние светодиоды первого сегмента к верхним светодиодам второго сегмента и так далее...)
Загрузите код в Arduino, и все готово :)

Вы можете скачать код в «Файлах» или скопировать его ниже:

#include «SevSeg.h»
#include «RTClib.h»

СевСег севсег; //Создаем экземпляр объекта контроллера из семи сегментов
RTC_DS1307 РТК;

Бул pnkt = ложь;
беззнаковый длинный секпрев = 0;
беззнаковый длинный minprev = 0;
беззнаковое целое число пауза[12] = {475,525,580,635,700,755,805,855,905,965,1015,1065};
логическое количество = правда;
число int count2 = 100;
внутренняя бипауза;
интервал БПС = 150;

недействительная настройка() {
Серийный.начало(57600);
пока (! Последовательный);
если (! rtc.begin()) {
Serial.println(«Не уд��лось найти RTC»);
Серийный.флеш();
в то время как (1) задержка (10);
}
байт numDigits = 4;
байт digitPins[] = {5, 4, 3, 2};
байтовый сегментPins[] = {6, 7, 8, 9, 10, 11, 12};
bool резисторыOnSegments = true; // «ложь» означает, что резисторы подключены к цифровым выводам
байт hardwareConfig = N_TRANSISTORS; // См. README.md для опций
Bool updateWithDelays = ложь; // Рекомендуется значение по умолчанию «false»
bool LeadingZeros = ложь; // Используйте true, если хотите сохранить ведущие нули
Bool DisableDecPoint = правда; // Используйте «true», если ваша десятичная точка не существует или не подключена
pinMode(13, ВЫХОД);

//rtc.adjust(DateTime(2014, 1, 21, 3, 0, 0)); //Регулировка времени RTC (Y, M, D, H, M, S)

sevseg.begin(hardwareConfig, numDigits, digitPins, сегментPins, резисторыOnSegments,
updateWithDelays, LeadingZeros, DisableDecPoint);
sevseg.setBrightness(100);
амогус();
амогус();
амогус();
}

недействительный цикл() {
DateTime время = rtc.now();

if(time. Second() != secprev) { //каждую секунду
счет2++;
секпрев = время.секунда();

if(count2 >= 20 && count2 < 30 && двойная пауза < 100){
digitalWrite(13, НИЗКИЙ);
sevseg.setNumber(биспауза);
}
еще {
пнкт =! пнкт;
если (пнкт) {
digitalWrite(13, ВЫСОКИЙ);
}
еще {
digitalWrite(13, НИЗКИЙ);
}
sevseg.setNumber(time.hour()*100+time.mine());
}
}

если(время.минута() != минпрев){
минпрев = время.минута();
бипауза = 100;
for(int i = 0; я if(pausen[i] — time.hour()*60 — time.MINUT() > 0 && пауза[i] — time.hour()*60 — time.MINUT() < bispause){
биспауза = пауза[i] — время.час()*60 — время.минута();
}
if(pausen[i] == time.hour()*60 + time.mine()){
амогус();
}
}
счет2 = 0;
}

sevseg.refreshDisplay(); // Должен запускаться повторно
}

недействительный амогус(){
for(int i=6; i<=12; я++){
digitalWrite(я, ВЫСОКИЙ);
}
digitalWrite(9, НИЗКИЙ);
digitalWrite(2, НИЗКИЙ);
digitalWrite(3, НИЗКИЙ);
digitalWrite(4, НИЗКИЙ);
digitalWrite(5, НИЗКИЙ);
тон(13, 523); //C5
digitalWrite(2, ВЫСОКИЙ);
задержка (БПС);
noTone(13);
задержка (БПС);
тон (13, 622); //Eb5
digitalWrite(3, ВЫСОКИЙ);
digitalWrite(2, НИЗКИЙ);
задержка (БПС);
noTone(13);
задержка (БПС);
тон (13, 698); //F5
digitalWrite(4, ВЫСОКИЙ);
digitalWrite(3, НИЗКИЙ);
задержка (БПС);
noTone(13);
задержка (БПС);
тон (13, 740); //Gb5
digitalWrite(5, ВЫСОКИЙ);
digitalWrite(4, НИЗКИЙ);
задержка (БПС);
noTone(13);
задержка (БПС);
тон (13, 698); //F5
ди

12:50
5
Нет комментариев. Ваш будет первым!

Ссылка появится после регистрации

Похожие модели

Посещая этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.