|

Wyświetlacz 7segmentowy 4cyfrowy I2C HT16K33

Projekt w tinkercad

wyświetlacz 7segmentowy 4cyfrowy HT16K33 z Arduino
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() {
}

Podobne wpisy

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *