2016年01月12日
プログラムってさ、後半混乱するよね
こんにちはん
今日は、朝からずっと寒いです
朝、もう少し気温が下がっていたら雪になってましたね
ここのところずっとブザー回路を作っているんですが
スイッチが一個150円もするし
全部で900円もするし
なんだかぁ~って
とにかく、時間が取れるときにゆっくり作りますんでよろしくです
なので、3DCADとかをこれから、あげていこうかなって
とりあえず、ブログラムアップしておきます
突っ込みどころ満載ですが、かんべんしてください
あとで、回路図が変更になることが多いので、ピンの設定をしやすく

int sw0 = 5;//スイッチ緑
int sw1 = 7;//スイッチ赤
int sw2;//スイッチの状況
int sw3;//スイッチの状況
int ck1;//ループ監視
int ck2;//スイッチ緑監視
int ck3;//抜ける
int led1=10;
int led2=11;
int buza=12;
int sensorPin = A0;
int sensorValue = 0;
void setup() {
pinMode(buza,OUTPUT);
pinMode(led1,OUTPUT);
pinMode(led2,OUTPUT);
pinMode(6,OUTPUT);
pinMode(9,OUTPUT);
pinMode(sw0, INPUT);
pinMode(sw1, INPUT);
}
void loop() {
sensorValue = analogRead(sensorPin)*5;
digitalWrite(9, HIGH);
digitalWrite(6, HIGH);
digitalWrite(led1, LOW);
digitalWrite(led2, LOW);
sw2 = digitalRead(sw0);
sw3 = digitalRead(sw1);
if (ck2 == 1 && sw3 == HIGH) {
while (1) {
if (ck1 > 1 && ck3 == 1 ) {
ck1 = 0;
ck3 = 0;
break;
}
else {
digitalWrite(buza, HIGH);
analogWrite(led2, 200);
delay(1000);
digitalWrite(buza, HIGH);
digitalWrite(led1, HIGH);
analogWrite(led2, 200);
delay(1000);
digitalWrite(buza, LOW);
digitalWrite(led1, HIGH);
analogWrite(led2, 200);
delay(2000);
digitalWrite(buza, HIGH);
digitalWrite(led1, HIGH);
analogWrite(led2, 200);
delay(1000);
digitalWrite(buza, LOW);
digitalWrite(led1, HIGH);
analogWrite(led2, 100);
delay(2000);
ck1++;
sw2 = digitalRead(sw0);
if (sw2 == HIGH) {
ck3 = 1;
}
}
}
}
else if (sw2 == HIGH && sw3 == LOW) {
digitalWrite(led1, HIGH);
ck2 = 1;
}
else if (ck2 == 1 && sw2 == LOW) {
digitalWrite(buza, LOW);
digitalWrite(led1, HIGH);
delay(100);
digitalWrite(buza, HIGH);
digitalWrite(led1, HIGH);
delay(1000);
digitalWrite(buza, LOW);
digitalWrite(led1, HIGH);
delay(2000);
digitalWrite(buza, HIGH);
digitalWrite(led1, HIGH);
delay(1000);
digitalWrite(buza, LOW);
digitalWrite(led1, LOW);
ck2 = 0;
}
else if (sw2 == LOW && sw3 == HIGH) {
digitalWrite(buza, LOW);
digitalWrite(led2, HIGH);
delay(sensorValue);
digitalWrite(buza, HIGH);
digitalWrite(led2, HIGH);
delay(1000);
digitalWrite(buza, LOW);
digitalWrite(led2, HIGH);
delay(2000);
digitalWrite(buza, HIGH);
digitalWrite(led2, HIGH);
delay(1000);
digitalWrite(buza, LOW);
digitalWrite(led2, LOW);
}
}
もうお分かりと思いますが、arduinoです
今日は、朝からずっと寒いです
朝、もう少し気温が下がっていたら雪になってましたね
ここのところずっとブザー回路を作っているんですが
スイッチが一個150円もするし
全部で900円もするし
なんだかぁ~って
とにかく、時間が取れるときにゆっくり作りますんでよろしくです
なので、3DCADとかをこれから、あげていこうかなって
とりあえず、ブログラムアップしておきます
突っ込みどころ満載ですが、かんべんしてください
あとで、回路図が変更になることが多いので、ピンの設定をしやすく
int sw0 = 5;//スイッチ緑
int sw1 = 7;//スイッチ赤
int sw2;//スイッチの状況
int sw3;//スイッチの状況
int ck1;//ループ監視
int ck2;//スイッチ緑監視
int ck3;//抜ける
int led1=10;
int led2=11;
int buza=12;
int sensorPin = A0;
int sensorValue = 0;
void setup() {
pinMode(buza,OUTPUT);
pinMode(led1,OUTPUT);
pinMode(led2,OUTPUT);
pinMode(6,OUTPUT);
pinMode(9,OUTPUT);
pinMode(sw0, INPUT);
pinMode(sw1, INPUT);
}
void loop() {
sensorValue = analogRead(sensorPin)*5;
digitalWrite(9, HIGH);
digitalWrite(6, HIGH);
digitalWrite(led1, LOW);
digitalWrite(led2, LOW);
sw2 = digitalRead(sw0);
sw3 = digitalRead(sw1);
if (ck2 == 1 && sw3 == HIGH) {
while (1) {
if (ck1 > 1 && ck3 == 1 ) {
ck1 = 0;
ck3 = 0;
break;
}
else {
digitalWrite(buza, HIGH);
analogWrite(led2, 200);
delay(1000);
digitalWrite(buza, HIGH);
digitalWrite(led1, HIGH);
analogWrite(led2, 200);
delay(1000);
digitalWrite(buza, LOW);
digitalWrite(led1, HIGH);
analogWrite(led2, 200);
delay(2000);
digitalWrite(buza, HIGH);
digitalWrite(led1, HIGH);
analogWrite(led2, 200);
delay(1000);
digitalWrite(buza, LOW);
digitalWrite(led1, HIGH);
analogWrite(led2, 100);
delay(2000);
ck1++;
sw2 = digitalRead(sw0);
if (sw2 == HIGH) {
ck3 = 1;
}
}
}
}
else if (sw2 == HIGH && sw3 == LOW) {
digitalWrite(led1, HIGH);
ck2 = 1;
}
else if (ck2 == 1 && sw2 == LOW) {
digitalWrite(buza, LOW);
digitalWrite(led1, HIGH);
delay(100);
digitalWrite(buza, HIGH);
digitalWrite(led1, HIGH);
delay(1000);
digitalWrite(buza, LOW);
digitalWrite(led1, HIGH);
delay(2000);
digitalWrite(buza, HIGH);
digitalWrite(led1, HIGH);
delay(1000);
digitalWrite(buza, LOW);
digitalWrite(led1, LOW);
ck2 = 0;
}
else if (sw2 == LOW && sw3 == HIGH) {
digitalWrite(buza, LOW);
digitalWrite(led2, HIGH);
delay(sensorValue);
digitalWrite(buza, HIGH);
digitalWrite(led2, HIGH);
delay(1000);
digitalWrite(buza, LOW);
digitalWrite(led2, HIGH);
delay(2000);
digitalWrite(buza, HIGH);
digitalWrite(led2, HIGH);
delay(1000);
digitalWrite(buza, LOW);
digitalWrite(led2, LOW);
}
}
もうお分かりと思いますが、arduinoです