基本的に
新規ファイルでは
void setup() {
// put your setup code here, to run once:
}
void loop() {
// put your main code here, to run repeatedly:
}
が書き込まれている。
サーボモーターのためのスケッチをだす。
最初に指定する変数で主たるプログラムには数字を使わないようにした。
変らないし、変わると困るので変えられないようにした。
プログラム自体はこの操作をさせるには最小だと思うが、これ以下に出来るようであれば教えて欲しい。
----------------
#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円
4つで790円
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での距離をモニターに表示させる