Projekt w tinkercad
wyświetlacz 7segmentowy 4cyfrowy HT16K33 z Arduino#include <Adafruit_LEDBackpack.h>
Adafruit_7segment matrix = Adafruit_7segment();
void setup() {
matrix.begin(0x70);
//matrix.print(9999, DEC);
//matrix.print(0xB4EF, HEX); //hex
//matrix.print(1.234); //float
//matrix.print("7SEA"); //string
matrix.writeDigitNum(3, 4, false); //position, number, dot
matrix.writeDisplay();
}
void loop() {
}
Komunikacja z HT16K33 I2C bez biblioteki
#include <Wire.h>
#define HT16K33_ADDRESS 0x70
void sendCommand(uint8_t command) {
Wire.beginTransmission(HT16K33_ADDRESS);
Wire.write(command);
Wire.endTransmission();
}
void sendData(uint8_t address, uint8_t data) {
Wire.beginTransmission(HT16K33_ADDRESS);
Wire.write(address);
Wire.write(data);
Wire.endTransmission();
}
const byte digitToSegment[] = {
//pierwszy bit to kropka
0b00111111, // 0
0b00000110, // 1
0b01011011, // 2
0b01001111, // 3
0b01100110, // 4
0b01101101, // 5
0b01111101, // 6
0b00000111, // 7
0b01111111, // 8
0b01101111 // 9
};
void setup() {
Wire.begin(); // Inicjalizacja interfejsu I2C
delay(100); // Oczekiwanie na stabilizację
sendCommand(0x21); // Włącz oscylator
sendCommand(0x81); // Wyłącz migotanie
sendCommand(0xEF); // Ustaw jasność E0 - EF
//rejestry: 0x00, 0x02, 0x04, 0x06, 0x08
sendData(0x00, digitToSegment[2]);
sendData(0x02, digitToSegment[1]);
sendData(0x04, 0b11111111); //włącz dwukropek
//sendData(0x04, 0b0); //wyłącz dwukropek
sendData(0x06, digitToSegment[4]);
sendData(0x08, digitToSegment[5]);
}
void loop() {
}