2017年1月5日 星期四

指標運用

int sum(int a,int b);
int (*f)(int x,int y)=sum;
void setup() {
  // put your setup code here, to run once:
  Serial.begin(9600);
  int s;
  s=(*f)(112,56);
  Serial.println(s);
}

void loop() {
  // put your main code here, to run repeatedly:

}
int sum(int a,int b)
{
  int total;
  total=a+b;
  return total;
}
=====================

void fun1();
void fun2();
void fun3();

void (*f[3])()={fun1,fun2,fun3};
void setup() {
  // put your setup code here, to run once:
  Serial.begin(9600);
  (*f[0])();
  (*f[1])();
  (*f[2])();
}

void loop() {
  // put your main code here, to run repeatedly:

}
void fun1()
{
  Serial.println("block1");
}
void fun2()
{
  Serial.println("block2");
}
void fun3()
{
  Serial.println("block3");
}
==============================
#include <Keypad.h>
const byte numRows=4;
const byte numCols=4;

char Keymap[4][4]=
{
  {'1','2','3','A'},
  {'4','5','6','B'},
  {'7','8','9','C'},
  {'*','0','#','D'},
};
byte rowPins[numRows]={9,8,7,6};
byte colPins[numCols]={5,4,3,2};
 Keypad myKeypad=Keypad(makeKeymap(Keymap),rowPins,colPins,numRows,numCols);
void setup() {
  // put your setup code here, to run once:
Serial.begin(9600);
}

void loop() {
  // put your main code here, to run repeatedly:
char keypressed=myKeypad.getKey();
if (keypressed!=NO_KEY)
{
  Serial.println(keypressed);
}

}
======================================
#include <Keypad.h>
const byte numRows=4;
const byte numCols=4;

char Keymap[4][4]=
{
  {'1','2','3','A'},
  {'4','5','6','B'},
  {'7','8','9','C'},
  {'*','0','#','D'},
};
byte rowPins[numRows]={9,8,7,6};
byte colPins[numCols]={5,4,3,2};
 Keypad myKeypad=Keypad(makeKeymap(Keymap),rowPins,colPins,numRows,numCols);
 int led1=11;
 int led2=12;
void setup() {
  // put your setup code here, to run once:
  Serial.begin(9600);
  pinMode(led1,OUTPUT);
  pinMode(led2,OUTPUT);

}

void loop() {
  // put your main code here, to run repeatedly:
char keypressed=myKeypad.getKey();

if (keypressed!=NO_KEY)
{
  digitalWrite(led1,LOW);
  digitalWrite(led2,LOW);
  Serial.println(keypressed);
  if (keypressed=='1')
  {
    digitalWrite(led1,HIGH);
  }
  else if (keypressed=='2')
  {
    digitalWrite(led2,HIGH);
  }
  else if (keypressed=='3')
  {
    digitalWrite(led1,LOW);
    digitalWrite(led2,LOW);
  }
}

}
============================
馬達
const int motor=7;
void setup() {
  // put your setup code here, to run once:
 pinMode(motor,OUTPUT);
}

void loop() {
  // put your main code here, to run repeatedly:
  digitalWrite(motor,HIGH);
  delay(2000);
  digitalWrite(motor,LOW);
  delay(1000);
}
==========================
const int motor=3;
int speed=0;
void setup() {
  // put your setup code here, to run once:
  Serial.begin(9600);

  Serial.println("(+)--->up(-)--->stop");
}

void loop() {
  // put your main code here, to run repeatedly:
  if (Serial.available()>0)
  {
    char k=Serial.read();
    Serial.print(k);
    if (k=='+')
    {
      speed=200;
    }
    if (k=='-')
    {
      speed=0;
    }
    analogWrite(motor,speed);
  }
}
==========================================
用Keypad驅動馬達
#include <Keypad.h>
const byte numRows=4;
const byte numCols=4;

char Keymap[4][4]=
{
  {'1','2','3','A'},
  {'4','5','6','B'},
  {'7','8','9','C'},
  {'*','0','#','D'},
};
byte rowPins[numRows]={9,8,7,6};
byte colPins[numCols]={5,4,3,2};
 Keypad myKeypad=Keypad(makeKeymap(Keymap),rowPins,colPins,numRows,numCols);

const int motor=11;
int speed=0;
void setup() {
  // put your setup code here, to run once:
Serial.begin(9600);
}

void loop() {
  // put your main code here, to run repeatedly:
char keypressed=myKeypad.getKey();
if (keypressed!=NO_KEY)
{
  Serial.println(keypressed);
  if (keypressed=='1')
  {
    speed=200;
  }
  if (keypressed=='2')
  {
    speed=0;
  }
  analogWrite(motor,speed);
}

}

2017年1月3日 星期二

指標

 Serial.begin(9600);
  int a=50;
  int b=4;
  int *pa=&a;
  int *pb=&b;
  int total=*pa+*pb;

  Serial.println(total);

===========================
一維.陣列指標
Serial.begin(9600);
  int a[3]={12,15,18};;
  int* pa=a;   //陣列本身是指標
  Serial.println(*(pa+0));
  Serial.println(*(pa+1));
  Serial.println(*(pa+2));
========================
二維陣列指標
Serial.begin(9600);
  int a[2][3]={{12,15,18},{45,65,98}};
  int (*pa)[3]=a;
  Serial.println(*(*(pa+0)+0));
  Serial.println(*(*(pa+0)+1));
  Serial.println(*(*(pa+0)+2));
  Serial.println(*(*(pa+1)+0));
  Serial.println(*(*(pa+1)+1));
  Serial.println(*(*(pa+1)+2));
==================================
字元
  Serial.begin(9600);
  char k='a';
  char* pk;
  pk=&k;
  Serial.println(*pk);
==============================
字串
  Serial.begin(9600);
  char *k="hello";

  Serial.println(k);
}
===============================
字串陣列
  Serial.begin(9600);
  char *str[]={"hello","bill","mary"};
  for(int i=0;i<3;i++)
  {
  Serial.println(str[i]);
  }
=================
雙層指標
  Serial.begin(9600);
 int t=50;
 int *pt=&t;
 int **ph=&pt;
  Serial.println(**ph);
========================
函數指標
void  hello();   //先宣告

void (*f)()=hello;

void setup() {
  // put your setup code here, to run once:
  Serial.begin(9600);
  (*f)();

}

void loop() {
  // put your main code here, to run repeatedly:

}

void hello()
{
  Serial.println("Hello!");
}

2016年12月29日 星期四

指撥開關,超音波感測器,中斷服務系統

https://www.tutorialspoint.com/arduino/index.htm

指撥開關
sw1file
先側殿為
int sw=7;
int swv;
void setup() {
  // put your setup code here, to run once:
          pinMode(sw,INPUT_PULLUP);
          Serial.begin(9600);
}

void loop() {
  // put your main code here, to run repeatedly:
  swv=digitalRead(sw);
  Serial.println(swv);
  delay(2000);
}
================================
只播開關控制LED燈
int sw1=2;
int sw2=3;
int led1=7;
int led2=8;
int swv1;
int swv2;
void setup() {
  // put your setup code here, to run once:
          pinMode(sw1,INPUT_PULLUP);
          pinMode(sw2,INPUT_PULLUP);
          pinMode(led1,OUTPUT);
          pinMode(led2,OUTPUT);
}

void loop() {
  // put your main code here, to run repeatedly:
  swv1=digitalRead(sw1);
  swv2=digitalRead(sw2);
  if(swv1==0)
  {
    digitalWrite(led1,HIGH);
  }
  else
  {
    digitalWrite(led1,LOW);
  }
  if(swv2==0)
  {
    digitalWrite(led2,HIGH);
  }
  else
  {
    digitalWrite(led2,LOW);
  }
}
=======================
//超音波感測器
#include <Ultrasonic.h>
Ultrasonic ultrasonic(12,13);
void setup() {
  // put your setup code here, to run once:
  Serial.begin(9600);
}

void loop() {
  // put your main code here, to run repeatedly:
      Serial.print(ultrasonic.Ranging(CM));
      Serial.println("  cm");
      delay(3000);
}
=======================
//超音波感測器控制LED燈蜂鳴器
#include <Ultrasonic.h>
Ultrasonic ultrasonic(12,13);
int led=7;
int bee=2;
void setup() {
  // put your setup code here, to run once:
  Serial.begin(9600);
  pinMode(led,OUTPUT);

}

void loop() {
  // put your main code here, to run repeatedly:
      int dic=ultrasonic.Ranging(CM);
      Serial.print(dic);
      if (dic<=20)
      {
        digitalWrite(led,HIGH);
        for(int i=0;i<10;i++)
        {
          tone(bee,1000);
          delay(50);
          tone(bee,500);
          delay(50);
        }
      }
      else
      {
        digitalWrite(led,LOW);
        noTone(bee);
      }
      delay(3000);
}
==============================
中斷服務系統
(1)attachInterrupt():用來指定外部服務函數
   attachinterrupt(interrupt,function,mode);
(a)interrupt:外部中斷編號(int0,int1)D2 and D3
(b)function:中斷服務函數
(c)mode:中斷觸發信號
   LOW:
   CHANGE:HIGH-LOW,LOW-HIGH
   RISING:LOW_HIGH
   FALLING:HIGH-LOW
==============
int in=0;
int pb1=2;
int led=8;
volatile boolean state=false;

void setup() {
  // put your setup code here, to run once:
  pinMode(led,INPUT);
  pinMode(pb1,INPUT);
  attachInterrupt(in,fun1,RISING);
 
}
void fun1()
{
  state=!state;
}

void loop() {
  // put your main code here, to run repeatedly:
  digitalWrite(led,LOW);
 
  if (state)
  {
    digitalWrite(led,HIGH);
    delay(2000);
    digitalWrite(led,LOW);
    delay(50);
  }
  else
  {
     digitalWrite(led,LOW);
  }
}
==================
#define pb1 2
#define pb2 3
#define led1 8
#define led2 9
volatile boolean s1=false;
volatile boolean s2=false;
void setup() {
  // put your setup code here, to run once:
  pinMode(led1,INPUT);
  pinMode(led2,INPUT);
  pinMode(pb1,INPUT);
  pinMode(pb2,INPUT);

  attachInterrupt(0,chin1,RISING);
  attachInterrupt(1,chin2,RISING);
}
void chin1()
{
  s1=true;
  s2=false;
}
void chin2()
{
  s1=false;
  s2=true;
}
void loop() {
  // put your main code here, to run repeatedly:
  digitalWrite(led1,LOW);
  digitalWrite(led2,LOW);
  if (s1)
  {
    digitalWrite(led1,HIGH);
  }
  if (s2)
  {
    digitalWrite(led2,HIGH);
  }
  delay(3000);
}
==========================

2016年12月27日 星期二

define

#define a 13  //#define 變數名稱  接腳值
void setup() {
  // put your setup code here, to run once:
            Serial.begin(9600);
            Serial.println(a);
}
------------------------------------------
int x=2;
int y=6;
#define k 2*x*y    //#define 變數名稱  運算式
-------------------------------------
#define 函數名稱(參數)  運算式

#define d(x) 5*x
void setup() {
  // put your setup code here, to run once:
            Serial.begin(9600);
            Serial.println(d(3));
}

#define d(x,y) 2*x*y
void setup() {
  // put your setup code here, to run once:
            Serial.begin(9600);
            Serial.println(d(3,2));
}
-----------------------------------------------------

3~,5~,6~,9~,10~,11~,脈衝寬頻信號  類比可接

三色Led燈
int b=9;
int g=10;
int r=11;

void setup() {
  // put your setup code here, to run once:

}

void loop() {
  // put your main code here, to run repeatedly:
  int bv=0;
  int gv=0;
  int rv=0;
 for(bv=1;bv<=255;bv++)
  {
      analogWrite(b,bv);
      delay(10);
  }
   for(bv=255;bv>=0;bv--)
  {
      analogWrite(b,bv);
      delay(10);
  }
   for(gv=1;gv<=255;gv++)
  {
      analogWrite(g,gv);
      delay(10);
  }
   for(gv=255;gv>=0;gv--)
  {
      analogWrite(g,gv);
      delay(10);
  }
   for(rv=1;rv<=255;rv++)
  {
      analogWrite(r,rv);
      delay(10);
  }
   for(rv=255;rv>=0;rv--)
  {
      analogWrite(r,rv);
      delay(10);
  }
  for(int i=0;i<=100;i++)
  {
    rv=random(1,30);
    gv=random(1,20);
    bv=random(1,50);
    analogWrite(r,rv);
    analogWrite(g,gv);
    analogWrite(b,gv);                        
  }
    analogWrite(r,0);  //歸零  關燈
    analogWrite(g,0);
    analogWrite(b,0);
}
=============================
int led=13;
int pirout=2;
void setup() {
  // put your setup code here, to run once:
  pinMode(led,OUTPUT);
  pinMode(pirout,INPUT);
}

void loop() {
  // put your main code here, to run repeatedly:
    int val=digitalRead(pirout);
    if(val==HIGH)
    {
      digitalWrite(led,HIGH);
      delay(3000);
      digitalWrite(led,LOW);
      delay(2000);
    }
    else
    {
      digitalWrite(led,LOW);
    }
}
=============================
ledBar
int ledbar[10]={4,5,6,7,8,9,10,11,12,13};
void cleared()
{
  for(int k=0;k<10;k++)
  {
    digitalWrite(ledbar[k],LOW);
  }
}
void setup() {
  // put your setup code here, to run once:
              for(int i=0;i<10;i++)
              {
                pinMode(ledbar[i],OUTPUT);
              }
}

void loop() {
  // put your main code here, to run repeatedly:
    for(int j=0;j<10;j++)
    {
      cleared();
      digitalWrite(ledbar[j],HIGH);
      delay(50);
         }
      for(int j=10;j>0;j--)
    {
      cleared();
      digitalWrite(ledbar[j],HIGH);
      delay(50);
         }
}
========================================
int ledbar[10]={4,5,6,7,8,9,10};
const int cr=A0;

void cleared()
{
  for(int k=0;k<7;k++)
  {
    digitalWrite(ledbar[k],LOW);
  }
}
void setup() {
  // put your setup code here, to run once:
              for(int i=0;i<7;i++)
              {
                pinMode(ledbar[i],OUTPUT);
              }
}

void loop() {
  // put your main code here, to run repeatedly:
  int crv=analogRead(cr);
  int mcrv=map(crv,0,1023,0,6);
  cleared();
 
    for(int j=0;j<mcrv;j++)
    {
     
      digitalWrite(ledbar[j],HIGH);
     delay(500);
         }
   
}

2016年12月22日 星期四

溫控,光敏電阻

A.先接好溫控,並測試
溫控
int tempr=A0;
int tv=0;
void setup() {
  // put your setup code here, to run once:
  Serial.begin(9600);
}

void loop() {
  // put your main code here, to run repeatedly:
  tv=analogRead(tempr);
  Serial.println(tv);
  delay(2000);
}
=============================
兩顆七段顯示器可正常運作
int sp1[10][7]={{1,1,1,1,1,1,0},{0,1,1,0,0,0,0},{1,1,0,1,1,0,1},{1,1,1,1,0,0,1},{0,1,1,0,0,1,1},{1,0,1,1,0,1,1},{1,0,1,1,1,1,1},{1,1,1,0,0,0,0},{1,1,1,1,1,1,1},{1,1,1,1,0,1,1}};
int sp2[10][7]={{1,1,1,1,1,1,0},{0,1,1,0,0,0,0},{1,1,0,1,1,0,1},{1,1,1,1,0,0,1},{0,1,1,0,0,1,1},{1,0,1,1,0,1,1},{1,0,1,1,1,1,1},{1,1,1,0,0,0,0},{1,1,1,1,1,1,1},{1,1,1,1,0,1,1}};
int k=0;
int k2=0;
void setup() {
  // put your setup code here, to run once:

  for(int i=0;i<=13;i++)
  {
    pinMode(i,OUTPUT);
  }
}

void loop() {
  // put your main code here, to run repeatedly:
   for(int j=0;j<7;j++)
    {
      digitalWrite(j,sp1[k][j]);
    }
    for(int h=7;h<=13;h++)
    {
      digitalWrite(h,sp2[k2][h]);
    }
     delay(2000);
     k++;
     k2++;
      if(k==10)
     {
      k=0;
     }
      if(k2==10)
     {
      k2=0;
     }
}
=================================

C.再接上 溫控及讀取其值顯示在七段顯示器
int sp1[10][7]={{1,1,1,1,1,1,0},{0,1,1,0,0,0,0},{1,1,0,1,1,0,1},{1,1,1,1,0,0,1},{0,1,1,0,0,1,1},{1,0,1,1,0,1,1},{1,0,1,1,1,1,1},{1,1,1,0,0,0,0},{1,1,1,1,1,1,1},{1,1,1,1,0,1,1}};
int sp2[10][7]={{1,1,1,1,1,1,0},{0,1,1,0,0,0,0},{1,1,0,1,1,0,1},{1,1,1,1,0,0,1},{0,1,1,0,0,1,1},{1,0,1,1,0,1,1},{1,0,1,1,1,1,1},{1,1,1,0,0,0,0},{1,1,1,1,1,1,1},{1,1,1,1,0,1,1}};
int tempr=A0;
int tv=0;
void setup() {
  // put your setup code here, to run once:
  Serial.begin(9600);
  for(int i=0;i<=13;i++)
  {
    pinMode(i,OUTPUT);
  }
}

void loop() {
  // put your main code here, to run repeatedly:
    tv=analogRead(tempr);
    Serial.println(tv);
    String sdata=(String)tv;
    int k=sdata.charAt(0)-'0';
    int k2=sdata.charAt(1)-'0';
 
   for(int j=0;j<7;j++)
    {
      digitalWrite(j,sp1[k][j]);
    }
    for(int h=7;h<=13;h++)
    {
      digitalWrite(h,sp2[k2][h]);
    }
     delay(2000);
     k++;
     k2++;
      if(k==10)
     {
      k=0;
     }
      if(k2==10)
     {
      k2=0;
     }
}
======================================
光敏電阻 控制LED燈

int lightr=A0;
int vin=0;
int refv=850;  //視實際光度
int led=7;
void setup() {
  // put your setup code here, to run once:
    pinMode(led,OUTPUT);
    Serial.begin(9600);
}

void loop() {
  // put your main code here, to run repeatedly:
  vin=analogRead(lightr);
  Serial.println(vin);
  if (vin>refv)
  {
    digitalWrite(led,LOW);
  }
  if (vin<refv)
  {
     digitalWrite(led,HIGH);
  }
}
=================================================
#difine 定義
1.定義接腳
2.定義運算式
3.定義函數
#define 名稱 資料

2016年12月20日 星期二

函數

https://www.arduino.cc/en/Reference/FunctionDeclaration
函數架構二
Void 函數名稱(資料型態 參數 1,資料型態 參數 2)
{  [ 程式區塊   ]               }
void setup() {
  // put your setup code here, to run once:
  Serial.begin(9600);
  int a=12;
  int b=14;
 fun2(a,b);
}
void fun2(int x,int y)
  {
    int total=x+y;
    Serial.println(total);
  }

=====================
函數架構三
函數名稱()
{
   [ 程式區塊   ]
   return 回傳變數值
 }
接受回傳值=函數名稱();

void setup() {
  // put your setup code here, to run once:
  Serial.begin(9600);
  int k=fun3();  //整數
  Serial.println(k);

}
int fun3()
  {
    return 100;

  }
----------------------------------------------
void setup() {
  // put your setup code here, to run once:
  Serial.begin(9600);
  String str3=fun3_1();  //字串
  Serial.println(str3);

}
String fun3_1()
  {
    String str1="Hello ";
    String str2="world";
    return str1+str2;

  }
---------------------------------
void setup() {
  // put your setup code here, to run once:
  Serial.begin(9600);
 char k=fun3_2();
  Serial.println(k);

}
char fun3_2()
  {
   char k='q';
    return k;

  }
=======================
函數架構 四
函數名稱(資料型態 參數 1,資料型態 參數 2)
{  [ 程式區塊   ]    
    return 回傳變數值
         }
接受回傳值=函數名稱(引數1,引數2);
void setup() {
  // put your setup code here, to run once:
  Serial.begin(9600);
 int k=fun4(12,45);
  Serial.println(k);

}
int fun4(int x,int y)
  {
   int k=x+y;
    return k;

  }
================================
void setup() {
  // put your setup code here, to run once:
  Serial.begin(9600);
 int a[]={11,12,13,14,15};
 int len=sizeof(a)/sizeof(int);
 Serial.println(len);
 fun1(a,len);
}
int fun1(int b[],int n)
  {
    for(int i=0;i<n;i++)
    {
      Serial.println(b[i]);
    }
  }
===============
ex1
int k;
int a=12;
int b=43;
int result;
void setup() {
  // put your setup code here, to run once:
  Serial.begin(9600);
  Serial.println("please choose(1)+  (2)-  (3)*");

 
 
}
int jung1(int x,int y)
{
    return x+y;
}
int jung2(int x,int y)
{
    return x-y;
}
int jung3(int x,int y)
{
    return x*y;
}
void loop() {
  // put your main code here, to run repeatedly:
  if(Serial.available()>0)
  {
    k=Serial.read()-'0';
    switch (k) {
      case 1:
      {
        result=jung1(a,b);
        break;
      }
      case 2:
      {
       result=jung2(a,b);
       break;
      }
      case 3:
      {
       result=jung3(a,b);
       break;
      }
   }
    Serial.print("result=");
   Serial.println(result);
  }
}
=====================================
void setup() {
  // put your setup code here, to run once:
  Serial.begin(9600);
  String s=sdata();
  int slen=s.length();
  for(int i=0;i<slen;i++)
  {
    char t=s.charAt(i);
    if(t==",")
    {
      Serial.println();
    }
    else
    {
      Serial.print(s[i]);
    }
  }
}
String sdata()
{
  String d="";
  int k[5]={12,34,65,11,78};
  int len=sizeof(k)/sizeof(int);
  for (int i=0;i<len;i++)
  {
    d=d+(String)k[i]+',';
  }
  return d;
}
=========================
蜂鳴器
int sp=2;
void setup() {
  // put your setup code here, to run once:

}

void loop() {
  // put your main code here, to run repeatedly:
for(int i=0;i<10;i++)
{
  tone(sp,500);
  delay(50);
  tone(sp,500);
  delay(50);
}
noTone(sp);
delay(2000);
}

2016年12月15日 星期四

二維陣列

int s[5];
int g=1;
int j=0;
void setup() {
  // put your setup code here, to run once:
  Serial.begin(9600);
}

void loop() {
  // put your main code here, to run repeatedly:
  int len=sizeof(s)/sizeof(int);
  if (Serial.available()>0)
  {
    if (j<len)
    {
      s[j]=Serial.readString().toInt();
      Serial.println("input ["+(String)g+"] element:"+s[j]);
      if(g==len)
      {
        Serial.println("finish input...end");
        for (int y=0;y<len;y++)
        {
          Serial.println(s[y]);
        }
      }
        else
        {
          g++;
          j++;
        }
      }
    }
  }

====================================
void setup() {
  // put your setup code here, to run once:
  Serial.begin(9600);
  int a[2][3]={{10,20,30},{40,50,60}};   // a[y][x]
  int len1=sizeof(a)/sizeof(int);   //所有元素
  int len2=sizeof(a[0])/sizeof(int);   //y個元素
  int len0=len1/len2;   //x元素

  Serial.println("len1:"+(String)len1);
  Serial.println("len2:"+(String)len2);
  Serial.println("len0:"+(String)len0);
}
============================
輸出
void setup() {
  // put your setup code here, to run once:
  Serial.begin(9600);
  int a[2][3]={{10,20,30},{40,50,60}};
  int len1=sizeof(a)/sizeof(int);
  int len2=sizeof(a[0])/sizeof(int);
  int len0=len1/len2;

  for(int i=0;i<len0;i++)
  {
    for (int j=0;j<len2;j++)
    {
      Serial.println("a["+(String)i+"]["+(String)j+"]="+a[i][j]);
    }
  }
}
====================================================
七段顯示器
int sp[10][7]={{1,1,1,1,1,1,0},
               {0,1,1,0,0,0,0},
               {1,1,0,1,1,0,1},
               {1,1,1,1,0,0,1},
               {0,1,1,0,0,1,1},
               {1,0,1,1,0,1,1},
               {1,0,1,1,1,1,1},
               {1,1,1,0,0,0,0},
               {1,1,1,1,1,1,1},
               {1,1,1,1,0,1,1}};
int k;
void setup() {
  // put your setup code here, to run once:
  k=0;
  for(int i=5;i<=11;i++)
  {
    pinMode(i,OUTPUT);
  }
}

void loop() {
  // put your main code here, to run repeatedly:
     for(int j=0;j<7;j++)
    {
      digitalWrite(j+5,sp[k][j]);
    }
     delay(2000);
     k++;
     if(k==10)
     {
      k=0;
     }
}
=================================================
int sp[10][7]={{1,1,1,1,1,1,0},{0,1,1,0,0,0,0},{1,1,0,1,1,0,1},{1,1,1,1,0,0,1},{0,1,1,0,0,1,1},{1,0,1,1,0,1,1},{1,0,1,1,1,1,1},{1,1,1,0,0,0,0},{1,1,1,1,1,1,1},{1,1,1,1,0,1,1}};
int d[4]={1,3,1,4};
int k;
void setup() {
  // put your setup code here, to run once:
  k=0;
  for(int i=5;i<=11;i++)
  {
    pinMode(i,OUTPUT);
  }
}

void loop() {
  // put your main code here, to run repeatedly:
     for(int j=0;j<7;j++)
    {
      digitalWrite(j+5,sp[d[k]][j]);
    }
     delay(2000);
     k++;
     if(k==4)
     {
      k=0;
     }
}
===================================
int sp[10][7]={{1,1,1,1,1,1,0},{0,1,1,0,0,0,0},{1,1,0,1,1,0,1},{1,1,1,1,0,0,1},{0,1,1,0,0,1,1},{1,0,1,1,0,1,1},{1,0,1,1,1,1,1},{1,1,1,0,0,0,0},{1,1,1,1,1,1,1},{1,1,1,1,0,1,1}};
int d[3]={5,2,0};
int k;
void setup() {
  // put your setup code here, to run once:
  k=0;
  for(int i=5;i<=11;i++)
  {
    pinMode(i,OUTPUT);
  }
}

void loop() {
  // put your main code here, to run repeatedly:
     for(int j=0;j<7;j++)
    {
      digitalWrite(j+5,sp[d[k]][j]);
    }
     delay(2000);
     k++;
     if(k==3)
     {
      k=0;
     }
}
=============================================

輸入
void setup() {
  // put your setup code here, to run once:
  Serial.begin(9600);
  int a[2][3];
  int len1=sizeof(a)/sizeof(int);
  int len2=sizeof(a[0])/sizeof(int);
  int len=len1/len2;
  int k=10;
  for(int i=0;i<len;i++)
  {
    for (int j=0;j<len2;j++)
    {
      a[i][j]=k;
      k++;
    }
  }
 for(int i=0;i<len;i++)
  {
    for (int j=0;j<len2;j++)
    {
      Serial.println(a[i][j]);
    }
  }
}
====================================================