wiki:wade/embedded/arduino/example/temp

Version 8 (modified by wade, 11 years ago) (diff)

--

程式一: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);
}

Attachments (5)