ขนาดวิดีโอ: 1280 X 720853 X 480640 X 360
แสดงแผงควบคุมโปรแกรมเล่น
เล่นอัตโนมัติ
เล่นใหม่
/* 4bitの方 */// 入力ピンの定義const int inbit0 = 2;const int inbit1 = 3;const int inbit2 = 4;const int inbit3 = 5; //MSBconst int set = 13; //2の補数設定用const int inputPins[5] = {inbit0, inbit1, inbit2, inbit3, set};// 出力ピンの定義//1の位const int outbit0 = 6;//a1const int outbit1 = 7;const int outbit2 = 8;const int outbit3 = 9;const int outbit4 = 10;const int outbit5 = 11;const int outbit6 = 12;//g1//10の位const int outbit7 = A0;//a10const int outbit8 = A1;const int outbit9 = A2;const int outbit10 = A3;const int outbit11 = A4;const int outbit12 = 0;const int outbit13 = 1;//g10const int outputPins1[7] = {outbit0, outbit1, outbit2, outbit3, outbit4, outbit5, outbit6};const int outputPins10[7] = {outbit7, outbit8, outbit9, outbit10, outbit11, outbit12, outbit13};void setup() { // 入力用ピンを設定 for(int i = 0; i < 5; i++){ pinMode(inputPins[i],INPUT); } // 出力用ピンを設定 for(int i = 0; i < 7; i++){ pinMode(outputPins1[i],OUTPUT); } for(int i = 0; i < 7; i++){ pinMode(outputPins10[i],OUTPUT); }}void loop() { // numberに4bitの値を入力 uint8_t number = 0; number |= digitalRead(inbit0) i) & 0x01); //1の位出力 digitalWrite(outputPins10[i],(Y >> i) & 0x01); //10の位出力 } delay(10); // 10ミリ秒待つ}// BCDに変換する関数uint8_t toBCD(uint8_t num) { uint8_t tens = (num / 10) 7) & 0x01)) number = ~number + 1; //2の補数対応 in8 = 1の時 uint16_t bcd = toBCD(number); //BCDに変換 uint8_t X = 0, Y = 0, Z = 0; X = get7SegmentValue(bcd & 0x0F); //1の位 0gfedcbaの順で格納されている Y = get7SegmentValue((bcd >> 4) & 0x0F); //10の位 Z = get7SegmentValue((bcd >> 8) & 0x0F); //100の位 for(int i = 0; i < 7; i++){ //シフトレジスタへの格納 digitalWrite(out0, (X >> i) & 0x01); digitalWrite(out1, (Y >> i) & 0x01); digitalWrite(out2, (Z >> i) & 0x01); if(digitalRead(in8) & ((number2>>7) & 0x01)) digitalWrite(out3,1); else digitalWrite(out3,0); digitalWrite(clock,0); for(int j=0;j
おぉ!素早いアップデート!某メーカーも見習えばよい。
ご視聴ありがとうございます!あのコメントが無ければ挑戦してなかったと思います きっかけをいただき感謝です!
/* 4bitの方 */
// 入力ピンの定義
const int inbit0 = 2;
const int inbit1 = 3;
const int inbit2 = 4;
const int inbit3 = 5; //MSB
const int set = 13; //2の補数設定用
const int inputPins[5] = {inbit0, inbit1, inbit2, inbit3, set};
// 出力ピンの定義
//1の位
const int outbit0 = 6;//a1
const int outbit1 = 7;
const int outbit2 = 8;
const int outbit3 = 9;
const int outbit4 = 10;
const int outbit5 = 11;
const int outbit6 = 12;//g1
//10の位
const int outbit7 = A0;//a10
const int outbit8 = A1;
const int outbit9 = A2;
const int outbit10 = A3;
const int outbit11 = A4;
const int outbit12 = 0;
const int outbit13 = 1;//g10
const int outputPins1[7] = {outbit0, outbit1, outbit2, outbit3, outbit4, outbit5, outbit6};
const int outputPins10[7] = {outbit7, outbit8, outbit9, outbit10, outbit11, outbit12, outbit13};
void setup() {
// 入力用ピンを設定
for(int i = 0; i < 5; i++){
pinMode(inputPins[i],INPUT);
}
// 出力用ピンを設定
for(int i = 0; i < 7; i++){
pinMode(outputPins1[i],OUTPUT);
}
for(int i = 0; i < 7; i++){
pinMode(outputPins10[i],OUTPUT);
}
}
void loop() {
// numberに4bitの値を入力
uint8_t number = 0;
number |= digitalRead(inbit0) i) & 0x01); //1の位出力
digitalWrite(outputPins10[i],(Y >> i) & 0x01); //10の位出力
}
delay(10); // 10ミリ秒待つ
}
// BCDに変換する関数
uint8_t toBCD(uint8_t num) {
uint8_t tens = (num / 10) 7) & 0x01)) number = ~number + 1; //2の補数対応 in8 = 1の時
uint16_t bcd = toBCD(number); //BCDに変換
uint8_t X = 0, Y = 0, Z = 0;
X = get7SegmentValue(bcd & 0x0F); //1の位 0gfedcbaの順で格納されている
Y = get7SegmentValue((bcd >> 4) & 0x0F); //10の位
Z = get7SegmentValue((bcd >> 8) & 0x0F); //100の位
for(int i = 0; i < 7; i++){ //シフトレジスタへの格納
digitalWrite(out0, (X >> i) & 0x01);
digitalWrite(out1, (Y >> i) & 0x01);
digitalWrite(out2, (Z >> i) & 0x01);
if(digitalRead(in8) & ((number2>>7) & 0x01)) digitalWrite(out3,1);
else digitalWrite(out3,0);
digitalWrite(clock,0);
for(int j=0;j
おぉ!素早いアップデート!
某メーカーも見習えばよい。
ご視聴ありがとうございます!
あのコメントが無ければ挑戦してなかったと思います きっかけをいただき感謝です!