日本と海外

日本と海外の国の比較と名古屋愛知情報

arudino スケッチ(サーボモーター・HC-SR04)

arduino IDEarduinoのためのC言語である。文法などはC言語を参照できる。
基本的に
新規ファイルでは

void setup() {
  // put your setup code here, to run once:

}

void loop() {
  // put your main code here, to run repeatedly:

}

が書き込まれている。

 

サーボモーターのためのスケッチをだす。
最初に指定する変数で主たるプログラムには数字を使わないようにした。
const int としたのはサーボモーター制御のarduinoピンである。
変らないし、変わると困るので変えられないようにした。
プログラム自体はこの操作をさせるには最小だと思うが、これ以下に出来るようであれば教えて欲しい。

----------------
#include <Servo.h>
Servo servo;
const int sPin=9;
int kakudo = 0;
int tasu = 30;
int saidai=180;
int saitei=0;
int kakudo0=30;
int mati=100;


void setup() {
  servo.attach(sPin);
}

void loop() {
  servo.write(kakudo);
  delay(5*mati);
  if (kakudo >= saidai) { tasu = -1*kakudo0; }
  if (kakudo <= saitei) { tasu = kakudo0; }
  kakudo = kakudo + tasu;
}
-----------------------
ターボモータはAmazon
2個649円

https://www.amazon.co.jp/Ren-He-180%C2%B0%E5%88%B6%E5%BE%A1%E8%A7%92%E5%BA%A6-RC%E3%83%98%E3%83%AA%E3%82%B3%E3%83%97%E3%82%BF%E3%83%BC-Arduino%E3%81%AB%E9%81%A9%E7%94%A8/dp/B094NWHDCL/ref=sr_1_3?crid=3CZJK0UYSZRHV&keywords=sg90+%E3%82%B5%E3%83%BC%E3%83%9C&qid=1671585797&sprefix=sg90%2Caps%2C275&sr=8-3

4つで790円

https://www.amazon.co.jp/SG90-9g%E3%83%9E%E3%82%A4%E3%82%AF%E3%83%AD%E3%82%B5%E3%83%BC%E3%83%9C%E3%83%A2%E3%83%BC%E3%82%BF%E3%83%BC180%C2%B0RC%E3%83%AD%E3%83%9C%E3%83%83%E3%83%88%E3%83%98%E3%83%AA%E3%82%B3%E3%83%97%E3%82%BF%E3%83%BC%E9%A3%9B%E8%A1%8C%E6%A9%9F%E5%88%B6%E5%BE%A1%E3%82%AB%E3%83%BC%E3%83%9C%E3%83%BC%E3%83%88%E3%83%AD%E3%83%9C%E3%83%83%E3%83%88%E5%88%B6%E5%BE%A1%E3%82%B1%E3%83%BC%E3%83%96%E3%83%AB%E4%BB%98%E3%81%8D-DIY%E3%82%A8%E3%83%AC%E3%82%AF%E3%83%88%E3%83%AD%E3%83%8B%E3%82%AF%E3%82%B9-%E3%83%87%E3%83%A5%E3%83%9D%E3%83%B3%E3%82%B1%E3%83%BC%E3%83%96%E3%83%AB%E3%82%92%E5%90%AB%E3%82%80-5%E7%82%B9%E3%82%BB%E3%83%83%E3%83%88/dp/B0B2QW7WGY/ref=sr_1_1_sspa?crid=3CZJK0UYSZRHV&keywords=sg90+%E3%82%B5%E3%83%BC%E3%83%9C&qid=1671585797&sprefix=sg90%2Caps%2C275&sr=8-1-spons&psc=1&smid=A3MEZ0VZ8T90IU&spLa=ZW5jcnlwdGVkUXVhbGlmaWVyPUFMWEFGQ1BXODFIRE4mZW5jcnlwdGVkSWQ9QTAzNjA3NzcxQVFQTFVFRDIxMUxSJmVuY3J5cHRlZEFkSWQ9QTJPMVlGS1JROElVS0Imd2lkZ2V0TmFtZT1zcF9hdGYmYWN0aW9uPWNsaWNrUmVkaXJlY3QmZG9Ob3RMb2dDbGljaz10cnVl

10個で2199円

------------------------------
const int t_Pin = 3;
const int e_Pin = 2;
int tusinsokudo=9600;
int mati = 100;
double sa = 0;                       //t_pinがonとe_Pinがonになる時間差
double kyori[] = { 999, 998, 997 };  //saから計算
double kyoriT;
double onsoku = 331.5 + 0.6 * 25;  // 25℃の気温の想定

void setup() {
  Serial.begin(tusinsokudo);

  pinMode(e_Pin, INPUT);
  pinMode(t_Pin, OUTPUT);
}

void loop() {
  digitalWrite(t_Pin, LOW);
  delayMicroseconds(2);
  digitalWrite(t_Pin, HIGH);
  delayMicroseconds(10);
  digitalWrite(t_Pin, LOW);
  sa = pulseIn(e_Pin, HIGH);  // 往復にかかった時間が返却される[マイクロ秒]

  if (sa > 0) {
    sa = sa / 2;  // 往路にかかった時間
    kyoriT = sa * onsoku * 100 / 1000000;
    if (kyoriT < kyori[1]) {
      kyori[1] = kyoriT;
      kyori[2] = kyori[1];
      kyori[3] = kyori[2];
    }
    Serial.print("今の距離:");
    Serial.print(kyoriT);
    Serial.print("1番目:");
    Serial.print(kyori[1]);
    Serial.print("2番目:");
    Serial.print(kyori[3]);
    Serial.println(" cm");

  }

  delay(10 * mati);
}
------------------------
これはHC-SR04での距離をモニターに表示させる