int x; void setup () { pinMode(10, OUTPUT); pinMode(11, OUTPUT); //Serial.begin(9600); //ホールセンサーの数値を見るときだけ使用する。 ADCSRA = ADCSRA & 0xf8; // 分周比を決めるビット(ADPS2:0)を000へ ADCSRA = ADCSRA | 0x04; // 分周比16(100)をセット //ADCSRA = ADCSRA | 0x03; // 分周比4(010)をセット } void loop (){ x=analogRead(0); //Serial.println(x); //ホールセンサーの数値を見るときだけ使用する。 if ( x <645 ) { //電磁石の下をN極にしてネオジム磁石のS極を引き寄せる。 //電磁石と磁石が強く引き合うときは数値を下げ、 //電磁石と磁石の反応が弱く落ちてしまうときは数値を上げる。 digitalWrite( 10, LOW ); digitalWrite( 11, HIGH ); } else if ( x >=645 && x <845 ) { //電磁石休止 digitalWrite( 10, HIGH ); digitalWrite( 11, HIGH ); } else { //電磁石の下をS極にしてネオジム磁石のS極を反発させる。 digitalWrite( 10, HIGH ); digitalWrite( 11, LOW ); } }