2011年12月31日土曜日

スイッチを押すとLEDが点灯、もう1回押すと消灯する



配置図


CODE
/* toggle switch
  スイッチを押すとLEDが点灯、もう1回押すと消灯する
 */


int buttonPin = 2;         // 押しボタン
int ledPin = 13;       // 内蔵のLED


int state = HIGH;      // 内蔵のLEDの状態
int reading;           // 押しボタンの読取
int previous = LOW;    // 前回の押しボタンの状態


// 起動されてからの時間なのでlong
long time = 0;         // 前回押された時間
long debounce = 200;   // バウンス時間


void setup()
{
  pinMode(buttonPin, INPUT);
  pinMode(ledPin, OUTPUT);
}


void loop()
{
  reading = digitalRead(buttonPin);


  /*  入力がLOWからHIGHに変わってからノイズなどを無視出来るようになってから出力ピンをOn、Offを切り替え、時間を記録する
 */


  if (reading == HIGH && previous == LOW && millis() - time > debounce) {
    if (state == HIGH)
      state = LOW;
    else
      state = HIGH;


    time = millis();    
  }


  digitalWrite(ledPin, state);


  previous = reading;
}

2011年12月30日金曜日

for nextをスケッチしてみる。

Sketch

配置画像
/*
  blinkLed8_For_next
   */
// デジタルピン2から9を抵抗(470~1K)を通じてLEDに接続し、
//その先をGNDに接続。
int ledPin2 = 2;     
int ledPin3 = 3;     
int ledPin4 = 4;     
int ledPin5 = 5;     
int ledPin6 = 6;     
int ledPin7 = 7;     
int ledPin8 = 8;     
int ledPin9 = 9;     
void setup() {                
  // 出力に設定
    pinMode(ledPin2, OUTPUT); 
    pinMode(ledPin3, OUTPUT);  
    pinMode(ledPin4, OUTPUT); 
    pinMode(ledPin5, OUTPUT); 
    pinMode(ledPin6, OUTPUT); 
    pinMode(ledPin7, OUTPUT); 
    pinMode(ledPin8, OUTPUT); 
    pinMode(ledPin9, OUTPUT); 
    }
void loop() {
  for (int i=2; i <= 9; i++){  
  digitalWrite(i, HIGH);    
  delay(500);               
  digitalWrite(i, LOW);     
  delay(500);               
}
  }

Arduinoをアマチュア無線に応用してみる。

アマチュア無線を再開してから、QRPの機器を色々作って来ました。
最近はAVRでDDSをコントロール出来ないかと考えていましたら、RadioEperinter'sBogを参考にしてBASCOMで作成しましたが、 試用版(Demo Version)ですので容量が4K以下のものしか作れませんので、シンプルなものになりました。そんなときに東京工業大学で開催されたMAKE:JAPANを見てきて、Arduinoに興味を持ちました。とりあへずArduino Duemilanove を購入したので、アマチュア無線に応用することができないかと勉強を始めました。そのためにメモがわりにブログを開設しました。