Arduino UNO의 Arduino에서 HT16K33의 밤 라이더

1.SCL과 SDA를 연결, 풀업도 잊지 않고
2. 전원 연결
3. 아래 소스 코드 작성
4. 컴파일 실행으로 표시되면 종료
5. 끝

#include <Wire.h> //I2C library

//STM32G031J6M6
#define sdaPin PA12    // ArduinoA4
#define sclPin PA11    // ArduinoA5

// I2C address. 
#define HT16K33_add 0x70
#define I2Cadr      0x3e  // 固定


char    data_read[2]; //i2cバッファー
int     ii;           //ループカウンター

//レジスターの初期値
char INIT_com[] = {
  0x21,0x81,0xef
};

//表示器への書き込み
void i2c_HT16K33(char *buff1,int n){
  Wire.beginTransmission(HT16K33_add);
  Wire.write(buff1[0]);
  if(n == 2){
    Wire.write(buff1[1]);
  }
  Wire.endTransmission();
  delay(1);
}//i2c_HT16K33

void setup()
{  
  delay(3000); //not delete

  Wire.begin(); // initialise the connection //767 UNO
  //Wire.begin(sdaPin,sclPin); //STM32G031J6M6

  //レジスターの初期化 
  for(ii=0;ii<3;ii++){
    i2c_HT16K33(&INIT_com[ii],1);
  } //for

  //表示データの初期化
  for(ii=0;ii<16;ii++){
    data_read[0]=ii;
    data_read[1]=0x00;
    i2c_HT16K33(data_read,2);
  } //for
} //end setup

void loop()
{
  //ビットシフトでナイトライダー
  for(ii=0;ii<8;ii++){
    data_read[0]=0;       //アドレス
    data_read[1]=(1<<ii); //データ
    i2c_HT16K33(data_read,2);
    delay(1000);
  } //for
}//loop



좋은 웹페이지 즐겨찾기