Arduinoを使ってよう

小学校でもプログラミングの授業がはじまりました。プログラミングを勉強すると、考え方や物事の進め方を学ぶことができるそうです。

でも、ただ勉強するだけでは面白くないよね。そう、高専では目的を持ってプログラムを学びます。今日はLEDを色々な光らせ方をするプログラムを作ってみよう!

1.資料

資料を読みながら作業してみよう!

 

2.ソースコード

資料内のソースコードは以下になります。コピペしてArduinoボードに書き込んでみよう!

LEDを光らせてみよう@

int LED_PIN_R = 9;
int LED_PIN_B = 10;
int LED_PIN_G = 11;
int WAIT = 500;
 
void setup(){
  pinMode(LED_PIN_R, OUTPUT);
  pinMode(LED_PIN_G, OUTPUT);
  pinMode(LED_PIN_B, OUTPUT);
}
 
void loop(){
  digitalWrite(LED_PIN_R, HIGH);
  digitalWrite(LED_PIN_G, LOW);
  digitalWrite(LED_PIN_B, LOW);
  delay(WAIT);
  digitalWrite(LED_PIN_R, LOW);
  digitalWrite(LED_PIN_G, HIGH);
  digitalWrite(LED_PIN_B, LOW);
  delay(WAIT);
  digitalWrite(LED_PIN_R, LOW);
  digitalWrite(LED_PIN_G, LOW);
  digitalWrite(LED_PIN_B, HIGH);
  delay(WAIT);
}

LEDを光らせてみようA

int LED_PIN_R = 9;
int LED_PIN_B = 10;
int LED_PIN_G = 11;
int WAIT = 10;
 
void setup(){  
  pinMode(LED_PIN_R, OUTPUT);
  pinMode(LED_PIN_G, OUTPUT);
  pinMode(LED_PIN_B, OUTPUT);
}
 
void loop(){
  analogWrite(LED_PIN_R, 0);
  analogWrite(LED_PIN_G, 0);
  analogWrite(LED_PIN_B, 0);
 
  for(int i=0; i<=255; i++){
    analogWrite(LED_PIN_R, i);
    delay(WAIT);
  }
 
  analogWrite(LED_PIN_R, 0);
  analogWrite(LED_PIN_G, 0);
  analogWrite(LED_PIN_B, 0);
  for(int i=0; i<=255; i++){
    analogWrite(LED_PIN_G, i);
    delay(WAIT);
  }
  analogWrite(LED_PIN_R, 0);
  analogWrite(LED_PIN_G, 0);
  analogWrite(LED_PIN_B, 0);
  for(int i=0; i<=255; i++){
    analogWrite(LED_PIN_B, i);
    delay(WAIT);
  }
}

LEDを光らせてみようB

int LED_PIN_R = 9;
int LED_PIN_B = 10;
int LED_PIN_G = 11;
int WAIT = 10;
 
void setup(){  
  pinMode(LED_PIN_R, OUTPUT);
  pinMode(LED_PIN_G, OUTPUT);
  pinMode(LED_PIN_B, OUTPUT);
}
 
void loop(){
  for(int i=0; i<=255; i++){
      analogWrite(LED_PIN_R, i);       
      analogWrite(LED_PIN_G, 255-i);
      analogWrite(LED_PIN_B, 0);
      delay(WAIT);
  }
  for(int i=0; i<=255; i++){
      analogWrite(LED_PIN_R, 255-i); 
      analogWrite(LED_PIN_G, 0);
      analogWrite(LED_PIN_B, i);
      delay(WAIT);
  }
  for(int i=0; i<=255; i++){
      analogWrite(LED_PIN_R, 0);
      analogWrite(LED_PIN_G, i);
      analogWrite(LED_PIN_B, 255-i);
      delay(WAIT);
  }  
}