#include LiquidCrystal lcd( 8, 9, 4, 5, 6, 7); int step_pin=13; int dir_pin=12; int ene_pin=11; boolean buttn=0; int right=0; int down=0; int up=0; int left=0; int select=0; int gauge=0; int nagaosi=0; long pulse=0; #define btnRIGHT 0//RIGHTボタン #define btnUP 1//UPボタン #define btnDOWN 2//DOWNボタン #define btnLEFT 3//LEFTボタン #define btnSELECT 4//SELECTボタン #define btnNONE 5//何も押されてない状態 #define ERRORR 6//エラー //**************************************************************/ //*関数名:read_LCD_buttons*/ //*動作;A0ポートの電圧値から押されたボタンを判別*/ //**************************************************************/ int read_LCD_buttons(int adc_key_in) { if (adc_key_in > 1000) return btnNONE; //1023, 戻り値5, 5.00V if (adc_key_in < 50) return btnRIGHT; //0 , 戻り値0, 0V if (adc_key_in < 150) return btnUP; //98 , 戻り値1, 0.70V if (adc_key_in < 300) return btnDOWN; //255 , 戻り値2, 1.61V if (adc_key_in < 600) return btnLEFT;//407 , 戻り値3, 2.47V if (adc_key_in < 750) return btnSELECT;// //* 全てのifが失敗(通常はこれを返さない)*/ return ERRORR; } //**************************************************************/ //*関数名:lcd.Format.print*/ //*動作;数字の桁数をそろえて表示*/ //**************************************************************/ void lcdFormatprint(int keta, long num){ String strD = String(num,DEC); // 数値をDecに変換し文字列に変換 if(keta<=strD.length()){return;}//表示の桁数が指定の桁より大きくなったら、何もしない。 for (int i = 0; i < keta-strD.length(); i++){ lcd.print(' '); } lcd.print(num); } //**************************************************************/ //*関数名:spinMotor*/ //*動作;ステッピングモーターをパルス分だけ回転*/ //**************************************************************/ void spinMotor(int direction){ digitalWrite(ene_pin,HIGH);//回転可能にする if(direction==0){ digitalWrite(dir_pin,LOW); } else{ digitalWrite(dir_pin,HIGH); } if(pulse<0){pulse=pulse*(-1);} for(int i=0;i100){ pulse=pulse+10; up=0; } if(right>100){ pulse=pulse+100; right=0; } if(down>100){ pulse=pulse-10; down=0; } if(left>100){ pulse=pulse-100; left=0; } if(select>100){ if(pulse>0){ spinMotor(1); pulse=0; select=0; } else{ spinMotor(0); pulse=0; select=0; } } }