Корпус от DRS-8300 в Ардуино-проектах

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

ChiffaC3 пишет:
Светодиод трехногий с общим анодом на ноге 24(grid1).
Виноват, я почему-то Вашу фразу
ChiffaC3 пишет:
двухцветный светодиод подключенный на ноги 15(seg9), 16(seg10) и 24(grid1).
Прочитал как RGB - даже не знаю, почему.

Ну, чего, по простому не выходит? Дайте на 24 (если это общий анод) HIGH, а на 15 и 16 LOW (хоть на оба, хоть на любой из них). Должен светиться. Для разминки, можете просто дать на 24 HIGH,  и LOW на всё остальное - загорится жёлтым, значит всё в порядке.

ChiffaC3
Offline
Зарегистрирован: 24.11.2018

Вообщем посидев вечер и раскурив код, разобрался как добавить зажигание светодиодов. Требовалось писать во вторую половину uint16_t ибо в коде из этой темы использовалась только первая половина для 1-8 сегментов, а сегменты в диапазоне 9-14 которыми может дополнительно рулить микруха входили во вторую половину. Там же были пины светодиодов.

Вангую что у тех у кого не получилось зажечь абсолютно все была такая же проблема. "Вклеил" байты для зажигания нужных мне сегментов в нужное мне место в последовательности байтов ledGRID и все заработало.

Пример как можно сделать если кому то потребуется:

void updateDisplay(void) {
	writeSingleCommand(0x40);  // запись данных, автоматический адрес
	digitalWrite(PIN_STB, LOW);
	shiftOut(PIN_DIO, PIN_CLK, LSBFIRST, 0xC0); // Установка адреса в 0
	uint8_t * p = (uint8_t *) ledGRID;
	p[1] = ( led_red | led_green ); //   типа вклейка
	Serial.println(p[1], HEX);
	for (int8_t i = 0; i < LED_DATA_LENGTH; i++, p++) {
		shiftOut(PIN_DIO, PIN_CLK, LSBFIRST, *p);
	}; // запись данных
	digitalWrite(PIN_STB, HIGH);
	delayMicroseconds(1); // Пауза до следующей команды
}

 

ChiffaC3
Offline
Зарегистрирован: 24.11.2018

del

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

С Победой!