相關資料
程式一:LED 矩陣測試程式
#define start_pin 2
#define end_pin 18
#define low_start_pin 10
#define low_end_pin 17
#define high_start_pin 2
#define high_end_pin 9
#define led_delay_time 150
#define button 2
boolean flag;
void setup()
{
for (int i=start_pin; i<=end_pin; i++)
{
pinMode(i, OUTPUT);
}
// pinMode(button, INPUT);
// digitalWrite(button, HIGH);
// attachInterrupt(0, button_event, LOW);
Serial.begin(9600);
clean();
}
void loop()
{
clean();
delay(led_delay_time);
for (int i=high_start_pin; i<=high_end_pin; i++)
{
Serial.print("[");
Serial.print(i);
Serial.println("] ");
digitalWrite(i, HIGH);
for (int j=low_start_pin; j<=low_end_pin; j++)
{
Serial.print(" ");
Serial.print(j);
digitalWrite(j, LOW);
delay(led_delay_time);
digitalWrite(j, HIGH);
}
Serial.println();
digitalWrite(i, LOW);
}
}
void clean()
{
Serial.println("clean");
for (int i=low_start_pin; i<=low_end_pin; i++)
digitalWrite(i, HIGH);
for (int i=high_start_pin; i<=high_end_pin; i++)
digitalWrite(i, LOW);
}
void button_event()
{
delay(500);
flag = !flag;
while(flag)
{
}
}
程式二:產生「王」字
/*
Blink
Turns on an LED on for one second, then off for one second, repeatedly.
This example code is in the public domain.
*/
void setup() {
// Set Vcc Pin
pinMode(2, OUTPUT);
pinMode(3, OUTPUT);
pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);
pinMode(7, OUTPUT);
pinMode(8, OUTPUT);
pinMode(9, OUTPUT);
digitalWrite(2, LOW);
digitalWrite(3, LOW);
digitalWrite(4, LOW);
digitalWrite(5, LOW);
digitalWrite(6, LOW);
digitalWrite(7, LOW);
digitalWrite(8, LOW);
digitalWrite(9, LOW);
// Set GND Pin
pinMode(10, OUTPUT);
pinMode(11, OUTPUT);
pinMode(12, OUTPUT);
pinMode(13, OUTPUT);
pinMode(14, OUTPUT);
pinMode(15, OUTPUT);
pinMode(16, OUTPUT);
pinMode(17, OUTPUT);
digitalWrite(10, HIGH);
digitalWrite(11, HIGH);
digitalWrite(12, HIGH);
digitalWrite(13, HIGH);
digitalWrite(14, HIGH);
digitalWrite(15, HIGH);
digitalWrite(16, HIGH);
digitalWrite(17, HIGH);
}
void loop() {
// time 1
digitalWrite(2, HIGH); // HIGH
// digitalWrite(3, HIGH); // HIGH
// digitalWrite(4, HIGH); // HIGH
// digitalWrite(5, HIGH); // HIGH
// digitalWrite(6, HIGH); // HIGH
// digitalWrite(7, HIGH); // HIGH
// digitalWrite(8, HIGH); // HIGH
// digitalWrite(9, HIGH); // HIGH
digitalWrite(10, LOW);
digitalWrite(11, LOW);
digitalWrite(12, LOW);
digitalWrite(13, LOW);
digitalWrite(14, LOW);
digitalWrite(15, LOW);
digitalWrite(16, LOW);
digitalWrite(17, LOW);
// delay(300);
clean();
// time 2
// digitalWrite(2, HIGH); // HIGH
digitalWrite(3, HIGH); // HIGH
// digitalWrite(4, HIGH); // HIGH
// digitalWrite(5, HIGH); // HIGH
// digitalWrite(6, HIGH); // HIGH
// digitalWrite(7, HIGH); // HIGH
// digitalWrite(8, HIGH); // HIGH
// digitalWrite(9, HIGH); // HIGH
// digitalWrite(10, LOW);
// digitalWrite(11, LOW);
// digitalWrite(12, LOW);
digitalWrite(13, LOW);
// digitalWrite(14, LOW);
// digitalWrite(15, LOW);
// digitalWrite(16, LOW);
// digitalWrite(17, LOW);
// delay(300);
clean();
// time 3
// digitalWrite(2, HIGH); // HIGH
// digitalWrite(3, HIGH); // HIGH
digitalWrite(4, HIGH); // HIGH
// digitalWrite(5, HIGH); // HIGH
// digitalWrite(6, HIGH); // HIGH
// digitalWrite(7, HIGH); // HIGH
// digitalWrite(8, HIGH); // HIGH
// digitalWrite(9, HIGH); // HIGH
// digitalWrite(10, LOW);
// digitalWrite(11, LOW);
// digitalWrite(12, LOW);
digitalWrite(13, LOW);
// digitalWrite(14, LOW);
// digitalWrite(15, LOW);
// digitalWrite(16, LOW);
// digitalWrite(17, LOW);
// delay(300);
clean();
// time 4
// digitalWrite(2, HIGH); // HIGH
// digitalWrite(3, HIGH); // HIGH
// digitalWrite(4, HIGH); // HIGH
digitalWrite(5, HIGH); // HIGH
// digitalWrite(6, HIGH); // HIGH
// digitalWrite(7, HIGH); // HIGH
// digitalWrite(8, HIGH); // HIGH
// digitalWrite(10, LOW);
// digitalWrite(11, LOW);
// digitalWrite(12, LOW);
digitalWrite(13, LOW);
// digitalWrite(14, LOW);
// digitalWrite(15, LOW);
// digitalWrite(16, LOW);
// digitalWrite(17, LOW);
// delay(300);
clean();
// time 5
// digitalWrite(2, HIGH); // HIGH
// digitalWrite(3, HIGH); // HIGH
// digitalWrite(4, HIGH); // HIGH
// digitalWrite(5, HIGH); // HIGH
digitalWrite(6, HIGH); // HIGH
// digitalWrite(7, HIGH); // HIGH
// digitalWrite(8, HIGH); // HIGH
digitalWrite(10, LOW);
digitalWrite(11, LOW);
digitalWrite(12, LOW);
digitalWrite(13, LOW);
digitalWrite(14, LOW);
digitalWrite(15, LOW);
digitalWrite(16, LOW);
digitalWrite(17, LOW);
clean();
// time 6
// digitalWrite(2, HIGH); // HIGH
// digitalWrite(3, HIGH); // HIGH
// digitalWrite(4, HIGH); // HIGH
// digitalWrite(5, HIGH); // HIGH
// digitalWrite(6, HIGH); // HIGH
digitalWrite(7, HIGH); // HIGH
// digitalWrite(8, HIGH); // HIGH
// digitalWrite(10, LOW);
// digitalWrite(11, LOW);
// digitalWrite(12, LOW);
digitalWrite(13, LOW);
// digitalWrite(14, LOW);
// digitalWrite(15, LOW);
// digitalWrite(16, LOW);
// digitalWrite(17, LOW);
// delay(300);
clean();
//
// // time 7
// digitalWrite(2, HIGH); // HIGH
// digitalWrite(3, HIGH); // HIGH
// digitalWrite(4, HIGH); // HIGH
// digitalWrite(5, HIGH); // HIGH
// digitalWrite(6, HIGH); // HIGH
// digitalWrite(7, HIGH); // HIGH
digitalWrite(8, HIGH); // HIGH
// digitalWrite(9, HIGH); // HIGH
// digitalWrite(10, LOW);
// digitalWrite(11, LOW);
// digitalWrite(12, LOW);
digitalWrite(13, LOW);
// digitalWrite(14, LOW);
// digitalWrite(15, LOW);
// digitalWrite(16, LOW);
// digitalWrite(17, LOW);
// delay(300);
clean();
//
// time 8
// digitalWrite(2, HIGH); // HIGH
// digitalWrite(3, HIGH); // HIGH
// digitalWrite(4, HIGH); // HIGH
// digitalWrite(5, HIGH); // HIGH
// digitalWrite(6, HIGH); // HIGH
// digitalWrite(7, HIGH); // HIGH
// digitalWrite(8, HIGH); // HIGH
digitalWrite(9, HIGH); // HIGH
digitalWrite(10, LOW);
digitalWrite(11, LOW);
digitalWrite(12, LOW);
digitalWrite(13, LOW);
digitalWrite(14, LOW);
digitalWrite(15, LOW);
digitalWrite(16, LOW);
digitalWrite(17, LOW);
clean();
}
void clean()
{
delay(300);
digitalWrite(2, LOW);
digitalWrite(3, LOW);
digitalWrite(4, LOW);
digitalWrite(5, LOW);
digitalWrite(6, LOW);
digitalWrite(7, LOW);
digitalWrite(8, LOW);
digitalWrite(9, LOW);
digitalWrite(10, HIGH);
digitalWrite(11, HIGH);
digitalWrite(12, HIGH);
digitalWrite(13, HIGH);
digitalWrite(14, HIGH);
digitalWrite(15, HIGH);
digitalWrite(16, HIGH);
digitalWrite(17, HIGH);
}
程式三 UART 轉 RS232
void setup()
{
Serial.begin(9600);
}
void loop()
{
for (int i=0; i<=100; i++)
{
Serial.println(i);
delay(200);
}
}
程式四:由 PC 傳送資料至 Arduino
void setup()
{
Serial.begin(9600);
}
void loop()
{
if(Serial.available())
{
// Serial.println(Serial.read());
int val = Serial.read();
if (val == XX)
{
}
delay(300);
}
}
程式五:點亮左上至右下的LED
#define start_pin 2
#define end_pin 18
#define low_start_pin 10
#define low_end_pin 17
#define high_start_pin 2
#define high_end_pin 9
#define led_delay_time 150
#define button 2
int delay_time= 0;
void setup()
{
for (int i=start_pin; i<=end_pin; i++)
{
pinMode(i, OUTPUT);
}
clean();
}
void loop()
{
// time 1
digitalWrite(2, HIGH);
digitalWrite(10, LOW);
delay(delay_time);
clean();
delay(delay_time);
// time 2
digitalWrite(3, HIGH);
digitalWrite(11, LOW);
delay(delay_time);
clean();
delay(delay_time);
// time 3
digitalWrite(4, HIGH);
digitalWrite(12, LOW);
delay(delay_time);
clean();
delay(delay_time);
// time 4
digitalWrite(5, HIGH);
digitalWrite(13, LOW);
delay(delay_time);
clean();
delay(delay_time);
// time 5
digitalWrite(6, HIGH);
digitalWrite(14, LOW);
delay(delay_time);
clean();
delay(delay_time);
// time 6
digitalWrite(7, HIGH);
digitalWrite(15, LOW);
delay(delay_time);
clean();
delay(delay_time);
// time 7
digitalWrite(8, HIGH);
digitalWrite(16, LOW);
delay(delay_time);
clean();
delay(delay_time);
// time 8
digitalWrite(9, HIGH);
digitalWrite(17, LOW);
delay(delay_time);
clean();
delay(delay_time);
}
void clean()
{
Serial.println("clean");
for (int i=low_start_pin; i<=low_end_pin; i++)
digitalWrite(i, HIGH);
for (int i=high_start_pin; i<=high_end_pin; i++)
digitalWrite(i, LOW);
}
程式六:七段顯示器
void setup()
{
pinMode(2, OUTPUT);
pinMode(3, OUTPUT);
pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);
pinMode(7, OUTPUT);
pinMode(8, OUTPUT);
pinMode(9, OUTPUT);
clean();
}
void loop()
{
all();
delay(500);
clean();
delay(500);
}
void all()
{
digitalWrite(2, HIGH);
digitalWrite(3, HIGH);
digitalWrite(4, HIGH);
digitalWrite(5, HIGH);
digitalWrite(6, HIGH);
digitalWrite(7, HIGH);
digitalWrite(8, HIGH);
digitalWrite(9, HIGH);
}
void clean()
{
digitalWrite(2, LOW);
digitalWrite(3, LOW);
digitalWrite(4, LOW);
digitalWrite(5, LOW);
digitalWrite(6, LOW);
digitalWrite(7, LOW);
digitalWrite(8, LOW);
digitalWrite(9, LOW);
}
程式七:led 霹靂車
void setup() {
for (int i=0; i<=7; i++)
{
pinMode(i, OUTPUT);
digitalWrite(i, LOW);
}
}
void loop()
{
for (int i=0; i<=7; i++)
{
digitalWrite(i, HIGH);
}
}
程式八:基本序列傳輸
void setup() {
pinMode(2, INPUT);
digitalWrite(2, HIGH);
Serial.begin(9600);
}
void loop() {
// put your main code here, to run repeatedly:
int input1 = digitalRead(2);
Serial.println(input1);
delay(300);
}
程式九:類比輸入
void setup() {
Serial.begin(9600);
}
void loop() {
// put your main code here, to run repeatedly:
int val = analogRead(0) ;
Serial.println(val);
}
程式十:按鍵輸入
int led = 13;
int lighttpye = 0;
int switchbutton=1;
void setup() {
pinMode(2, INPUT);
digitalWrite(2, HIGH);
Serial.begin(9600);
pinMode(led, OUTPUT);
}
void loop() {
int input1 = digitalRead(2);
Serial.println(input1);
delay(300);
if(switchbutton!=input1){
if(input1!=0){
if(lighttpye!=0){
digitalWrite(led, HIGH);
lighttpye=0;
}else{
digitalWrite(led, LOW);
lighttpye=1;
}}
switchbutton=input1;
}
}