char incomingByte; // 受信データ用
void setup() {
Serial.begin(9600);
pinMode(12, OUTPUT);//SCK
pinMode(13, INPUT);//DT
pinMode(10, OUTPUT);//SCK
pinMode(11, INPUT);//DT
pinMode(8, OUTPUT);//SCK
pinMode(9, INPUT);//DT
pinMode(6, OUTPUT);//SCK
pinMode(7, INPUT);//DT
pinMode(4, OUTPUT);//SCK
pinMode(5, INPUT);//DT
pinMode(2, OUTPUT);//SCK
pinMode(3, INPUT);//DT
pinMode(A0, OUTPUT);//↓LEDライト用
pinMode(A1, OUTPUT);
pinMode(A2, OUTPUT);
pinMode(A3, OUTPUT);
pinMode(A4, OUTPUT);
pinMode(A5, OUTPUT);
pinMode(A8, OUTPUT);//↓ソレノイド駆動リレー用
pinMode(A9, OUTPUT);
pinMode(A10, OUTPUT);
pinMode(A11, OUTPUT);
pinMode(A12, OUTPUT);
pinMode(A13, OUTPUT);
}
void loop() {
long atai=0;
long atai2=0;
long atai3=0;
long atai4=0;
long atai5=0;
long atai6=0;
for (char i = 0; i < 24; i++) {
digitalWrite(12, 1);
delayMicroseconds(1);
digitalWrite(12, 0);
delayMicroseconds(1);
atai = (atai << 1) | (digitalRead(13));
}
atai = atai ^ 0x800000;
Serial.print("<first>");
long omosa;
omosa = ((atai - 8388608) / 1000) *2.2; //saisyoは何も乗っていない時の出力の値、桁が大きいので1000で割っている
Serial.print(omosa);
delay(10);
if(atai <= 8388700){
digitalWrite(A0,1);
}
else{
digitalWrite(A0,0);
}
for (char i = 0; i < 24; i++) {
digitalWrite(10, 1);
delayMicroseconds(1);
digitalWrite(10, 0);
delayMicroseconds(1);
atai2 = (atai2 << 1) | (digitalRead(11));
}
atai2 = atai2 ^ 0x800000;
Serial.print(" <second>");
long omosa2;
omosa2 = ((atai2 - 8388608) / 1000) *2.2; //saisyoは何も乗っていない時の出力の値、桁が大きいので1000で割っている
Serial.print(omosa2);
delay(10);
if(atai2 <= 8388700){
digitalWrite(A1,1);
}
else{
digitalWrite(A1,0);
}
for (char i = 0; i < 24; i++) {
digitalWrite(8, 1);
delayMicroseconds(1);
digitalWrite(8, 0);
delayMicroseconds(1);
atai3 = (atai3 << 1) | (digitalRead(9));
}
atai3 = atai3 ^ 0x800000;
Serial.print(" <third>");
long omosa3;
omosa3 = ((atai3 - 8388608) / 1000) *2.2; //saisyoは何も乗っていない時の出力の値、桁が大きいので1000で割っている
Serial.print(omosa3);
delay(10);
if(atai3 <= 8388700){
digitalWrite(A2,1);
}
else{
digitalWrite(A2,0);
}
for (char i = 0; i < 24; i++) {
digitalWrite(6, 1);
delayMicroseconds(1);
digitalWrite(6, 0);
delayMicroseconds(1);
atai4 = (atai4 << 1) | (digitalRead(7));
}
atai4 = atai4 ^ 0x800000;
Serial.print(" <fource>");
long omosa4;
omosa4 = ((atai4 - 8388608) / 1000) *2.2; //saisyoは何も乗っていない時の出力の値、桁が大きいので1000で割っている
Serial.print(omosa4);
delay(10);
if(atai4 <= 8388700){
digitalWrite(A3,1);
}
else{
digitalWrite(A3,0);
}
for (char i = 0; i < 24; i++) {
digitalWrite(4, 1);
delayMicroseconds(1);
digitalWrite(4, 0);
delayMicroseconds(1);
atai5 = (atai5 << 1) | (digitalRead(5));
}
atai5 = atai5 ^ 0x800000;
Serial.print(" <fifth>");
long omosa5;
omosa5 = ((atai5 - 8388608) / 1000) *2.2; //saisyoは何も乗っていない時の出力の値、桁が大きいので1000で割っている
Serial.print(omosa5);
delay(10);
if(atai5 <= 8388700){
digitalWrite(A4,1);
}
else{
digitalWrite(A4,0);
}
for (char i = 0; i < 24; i++) {
digitalWrite(2, 1);
delayMicroseconds(1);
digitalWrite(2, 0);
delayMicroseconds(1);
atai6 = (atai6 << 1) | (digitalRead(3));
}
atai6 = atai6 ^ 0x800000;
Serial.print(" <sixth>");
long omosa6;
omosa6 = ((atai6 - 8388608) / 1000) *2.2; //saisyoは何も乗っていない時の出力の値、桁が大きいので1000で割っている
Serial.println(omosa6);
delay(10);
if(atai6 <= 8388700){
digitalWrite(A5,1);
}
else{
digitalWrite(A5,0);
}
delay(200);
if (Serial.available() > 0) { // 受信したデータが存在する
incomingByte = Serial.read(); // 受信データを読み込む
int input = incomingByte - 0x30;
if(input == 1 ){ //一つめのリレー
digitalWrite(A8,1);
delay(100);
}
else if(input == 0 ){
digitalWrite(A8,0);
delay(100);
}
if(input == 2 ){ //2つ目のリレー
digitalWrite(A9,1);
delay(100);
}
else if(input == 0 ){
digitalWrite(A9,0);
delay(100);
}
if(input == 3 ){ //3つ目のリレー
digitalWrite(A10,1);
delay(100);
}
else if(input == 0 ){
digitalWrite(A10,0);
delay(100);
}
if(input == 4 ){ //4つ目のリレー
digitalWrite(A11,1);
delay(100);
}
else if(input == 0 ){
digitalWrite(A11,0);
delay(100);
}
if(input == 5 ){ //5つ目のリレー
digitalWrite(A12,1);
delay(100);
}
else if(input == 0 ){
digitalWrite(A12,0);
delay(100);
}
if(input == 6 ){ //6つ目のリレー
digitalWrite(A13,1);
delay(100);
}
else if(input == 0 ){
digitalWrite(A13,0);
delay(100);
}
delay(100);
}
}