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月5日 星期四
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!");
}
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);
}
==========================
指撥開關
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);
}
}
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 名稱 資料
溫控
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);
}
函數架構二
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]);
}
}
}
====================================================
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]);
}
}
}
====================================================
訂閱:
文章 (Atom)