Маруся
22.Сентябрь.2025 14:17:40
1
Добрый день!
Нужен скетч позволяющий при подачи питания (включении) Digispark выводить на TM1637 поочередно (или лучше в рандомном порядке) несколько заранее прописанных символов. Это что то вроде дисплея-таймера к игрушке…..
Примеры символов на дисплее: 0000, HELL, 0101, ERRR, 2025, “кружочки”, “черточки” и прочее….таймер, если возможно….
Digispark и TM1637 есть в наличии, нужен только скетч.
SAB
22.Сентябрь.2025 14:26:08
2
Точно Digispark сможешь прошить самостоятельно?
Маруся
22.Сентябрь.2025 14:27:46
3
был опыт, делала поливалку цветов по таймеру на основании видео всем известного блогера. получилось прошить с готовым скетчем
Маруся
22.Сентябрь.2025 14:30:02
5
жду предложений вроде “напишу за ***”. мне кажется это не сложный скетч
man9913
22.Сентябрь.2025 14:34:45
6
а в чём сложность сделать самой? взять экзампл к 1637 и просто вставить в него свой текст?
ua6em
22.Сентябрь.2025 14:34:59
7
Маруся:
вроде “напишу за ***”.
спасибо, только символы сами сформируете, проверить есть на чем,ну или сами сможете
Маруся
22.Сентябрь.2025 14:52:38
8
Вы очень любезны. Вот этого набора со случайным перебором будет более чем достаточно. Если случайным перебором нельзя, можно просто по кругу …..
0000
HELL
2025
-----
ERR
0101
NO
7777
OEO
--0-
ua6em
22.Сентябрь.2025 14:56:38
9
сударыня, надо в таком виде:
const uint8_t RIS_ERR[] = {
SEG_A | SEG_D | SEG_E | SEG_F | SEG_G, // E
SEG_E | SEG_G, // r
SEG_E | SEG_G, // r
0, // space
};
Вы можете прямо в том скетче править, по одному, потом копировать и переименовывать их, к примеру RIS_01 … и сразу заливать в свой девайс
#include <TM1637Display.h>
// Пины для подключения TM1637
#define CLK 0
#define DIO 1
TM1637Display display(CLK, DIO);
// Список символов для отображения
const uint8_t SYMBOLS[][4] = {
// 0000
{SEG_A | SEG_B | SEG_C | SEG_D | SEG_E | SEG_F,
SEG_A | SEG_B | SEG_C | SEG_D | SEG_E | SEG_F,
SEG_A | SEG_B | SEG_C | SEG_D | SEG_E | SEG_F,
SEG_A | SEG_B | SEG_C | SEG_D | SEG_E | SEG_F},
// HELL
{SEG_B | SEG_C | SEG_E | SEG_F | SEG_G, // H
SEG_A | SEG_D | SEG_E | SEG_F | SEG_G, // E
SEG_D | SEG_E | SEG_F, // L
SEG_D | SEG_E | SEG_F}, // L
// 2025
{SEG_A | SEG_B | SEG_D | SEG_E | SEG_G, // 2
SEG_A | SEG_B | SEG_C | SEG_D | SEG_E | SEG_F, // 0
SEG_A | SEG_B | SEG_D | SEG_E | SEG_G, // 2
SEG_A | SEG_C | SEG_D | SEG_F | SEG_G}, // 5
// ---- (черточки)
{SEG_G, SEG_G, SEG_G, SEG_G},
// ERR
{SEG_A | SEG_D | SEG_E | SEG_F | SEG_G, // E
SEG_E | SEG_G, // R
SEG_E | SEG_G, // R
0x00}, // пробел
// 0101
{SEG_B | SEG_C, // 1
SEG_A | SEG_B | SEG_C | SEG_D | SEG_E | SEG_F, // 0
SEG_B | SEG_C, // 1
SEG_A | SEG_B | SEG_C | SEG_D | SEG_E | SEG_F}, // 0
// NO
{SEG_C | SEG_E | SEG_G, // N
SEG_A | SEG_B | SEG_C | SEG_D | SEG_E | SEG_F, // O
0x00, // пробел
0x00}, // пробел
// 7777
{SEG_A | SEG_B | SEG_C, // 7
SEG_A | SEG_B | SEG_C, // 7
SEG_A | SEG_B | SEG_C, // 7
SEG_A | SEG_B | SEG_C}, // 7
// OEO
{SEG_A | SEG_B | SEG_C | SEG_D | SEG_E | SEG_F, // O
SEG_A | SEG_D | SEG_E | SEG_F | SEG_G, // E
SEG_A | SEG_B | SEG_C | SEG_D | SEG_E | SEG_F, // O
0x00}, // пробел
// --0-
{SEG_G, // -
SEG_G, // -
SEG_A | SEG_B | SEG_C | SEG_D | SEG_E | SEG_F, // 0
SEG_G} // -
};
const int SYMBOLS_COUNT = sizeof(SYMBOLS) / sizeof(SYMBOLS[0]);
void setup() {
display.setBrightness(7); // Яркость (0-7)
randomSeed(analogRead(0)); // Инициализация генератора случайных чисел
}
void loop() {
// Вариант 1: Случайный порядок
int randomIndex = random(SYMBOLS_COUNT);
display.setSegments(SYMBOLS[randomIndex]);
// Вариант 2: Поочерёдный порядок (раскомментируйте для использования)
/*
static int currentIndex = 0;
display.setSegments(SYMBOLS[currentIndex]);
currentIndex = (currentIndex + 1) % SYMBOLS_COUNT;
*/
delay(2000); // Задержка 2 секунды между сменой символов
}
2 лайка
ua6em
23.Сентябрь.2025 06:58:27
13
Щас проверю! У меня есть дисплей работающий только на одной Гайверовской библиотеке, готовься к “интервью” или приятно удиви, пошёл проверять
Работает, но как библиотеку Arduino ты её недооформил
Деда у тебя в этой библиотеке по линии дата пробегает КЗ.
Вот, скриншот сделал. Зелёный луч - дата, жёлтый - синхра, посадка до уровня 2 вольт это КЗ, поймал длительность 36 микросекунд.
То есть осциллографу мы не верим, ну это твоя репа, я только предупредил, что КЗ есть.
ua6em
23.Сентябрь.2025 08:30:21
18
не у него одного, на Гайверовской старой тоже присутствует, может это проблема в модуле?
MMM
23.Сентябрь.2025 08:35:13
19
Кроме наличия осцила к нему очень полезен мозг, чтобы анализировать данные с прибора. Попробуй придумать правдоподобное обьяснение, каким образом код может быть ответсвеннен за КЗ по линии дата?
Возможно КЗ и есть - но это твой КЗ. Ищи его не в коде, а в твоей схеме или в модуле.
Нет, это не в модуле, просто функцию WriteByte передирают друг у друга, не особо разобравшись как она должна работать.
ua6em
23.Сентябрь.2025 08:42:58
21
да легко, я уже писал ранее что по юности написал код выжигавший материнку
За этот случай не скажу, сейчас нет времени разбираться, а, вообще , на двунаправленных шинах очень может быть. Proteus , кстати, хорошо это отслеживает, и, если что выводит ошибку
1 лайк