電子工作で、色々作った件について

1.何で作ったか

紹介画像(配線繋ぎ忘れたの)画像暗くて済まん

なんでこんなものを作ったか、それは、①暇だった②部品があった

自分は、あればあるだけ金を使うタイプなので、余ってる部品で何かを作るということをしてきて、部品がなくなって困った、ということは数知らず。ちなみに、小学生の時の修学旅行で残りをぴったり0円にした、という才能がある。これは才能ではない。貯蓄が出来ないだけだ。全くひどい限りである。

2.需要がないプログラム紹介

需要が無いと思うが、プログラムを紹介する。一応、参考になるはず・・・・である

とくに、最初の関数のとこはコピーして使ってもよろしい。arduinoを使って描いている。電子工作愛好家にはおなじみである。

  int motor1_1 = 6;
  int motor1_2 = 7;
  int motor2_1 = 8;
  int motor2_2 = 9;
  int motor3_1 = 10;
  int motor3_2 = 11;
  int motor4_1 = 12;
  int motor4_2 = 13;

 
void motor(int time,int rotate,int motor){
  //この関数では、最初に時間(ミリ秒)、次に回転方向(1で時計回り、2で逆回転)最後にモーター(1で1番、2で②番・・・)
  if(motor == 1) {
      if(rotate == 1){
        digitalWrite(motor1_1,HIGH);
        digitalWrite(motor1_2,LOW);
        delay(time);
        digitalWrite(motor1_1,LOW);
        digitalWrite(motor1_2,LOW);
      }
    else {
      digitalWrite(motor1_1,LOW);
      digitalWrite(motor1_2,HIGH);
      delay(time);
      digitalWrite(motor1_1,LOW);
      digitalWrite(motor1_2,LOW);
    }
  }
  if(motor == 2) {
      if(rotate == 1){
        digitalWrite(motor2_1,HIGH);
        digitalWrite(motor2_2,LOW);
        delay(time);
        digitalWrite(motor2_1,LOW);
        digitalWrite(motor2_2,LOW);
      }
    else {
      digitalWrite(motor2_1,LOW);
      digitalWrite(motor2_2,HIGH);
      delay(time);
      digitalWrite(motor2_1,LOW);
      digitalWrite(motor2_2,LOW);
    }
  }
  if(motor == 3) {
      if(rotate == 1){
        digitalWrite(motor3_1,HIGH);
        digitalWrite(motor3_2,LOW);
        delay(time);
        digitalWrite(motor3_1,LOW);
        digitalWrite(motor3_2,LOW);
      }
    else {
      digitalWrite(motor3_1,LOW);
      digitalWrite(motor3_2,HIGH);
      delay(time);
      digitalWrite(motor3_1,LOW);
      digitalWrite(motor3_2,LOW);
    }
  }
  else {
      if(rotate == 1){
        digitalWrite(motor4_1,HIGH);
        digitalWrite(motor4_2,LOW);
        delay(time);
        digitalWrite(motor4_1,LOW);
        digitalWrite(motor4_2,LOW);
      }
    else {
      digitalWrite(motor4_1,LOW);
      digitalWrite(motor4_2,HIGH);
      delay(time);
      digitalWrite(motor4_1,LOW);
      digitalWrite(motor4_2,LOW);
    }
  }
 
}
void setup() {
  Serial.begin(9600);
  pinMode(motor1_1, OUTPUT);
  pinMode(motor1_2, OUTPUT);
  pinMode(motor2_1, OUTPUT);
  pinMode(motor2_2, OUTPUT);
  pinMode(motor3_1, OUTPUT);
  pinMode(motor3_2, OUTPUT);
  pinMode(motor4_1, OUTPUT);
  pinMode(motor4_2, OUTPUT);
  pinMode(2, INPUT);
  pinMode(3, INPUT);
  pinMode(4, INPUT);
  //このロボットは、4つのモーターを使用
  //役割は、motor1とmotor2は移動用(キャスターが前とするとき、motor1がみぎ、motor2が左)
  //    motor3が40cmシュート用で、motor4が20cmシュート用。
  //ピンアサインはsetup()以上に明記
  //プログラム的に、一回実行するだけなので、setup()内でプログラムは完結
  //motorかんすうでは、
  //この関数では、最初に時間(ミリ秒)、次に回転方向(1で時計回り、2で逆回転)最後にモーター(1で1番、2で②番・・・)
  //ついでに、起動用スイッチは2ピン、右に壁当てしとくのは3ピン、左は4ピン、
  int a = 0;
  do {
    a = digitalRead(2);
    delay(100);
    Serial.print(a);

  } while(a == LOW);
  //10cm移動
  //左に曲がる
  motor(100,1,1);
  //前に10cm位(適当)進む
  //シュートする
  //さっきの逆をしてスタートエリアに戻る
  //前にしばらく進む(ゴールに着いたら、それ以上進めないから)、ただし、右のスイッチが反応しなくなったら
  //右に曲がる
  //位置を合わせてシュートする
  //スタートエリアに戻る
 


}

void loop() {

}

長い。無駄に長い。謝罪はしていない。まあ、電子工作で車作堆肥とは参考にするが良い。最初のdo while部分は、起動用スイッチを想定している。スイッチが押されるとうごくようになっている。いらなかったら外してくれ。

 

今回はこれで以上である。又加筆したくなったらするから、楽しみに待ってろ。