#ifndef _IO_H_ #define _IO_H_ #include "Arduino.h" class IoClass { public: //input pin #define PINI_EMG 30 #define PINI_BTN_1 31 #define PINI_BTN_2 32 #define PINI_BTN_3 33 #define PINI_BTN_4 34 #define PINI_OVERLOADL1 35 #define PINI_OVERLOADL2 36 #define PINI_OVERLOADR1 37 #define PINI_OVERLOADR2 38 #define PINI_EMPTY_38 39 #define PINI_BTN_ZUP 40 #define PINI_BTN_ZDN 41 #define PINI_LIMIT_LU 42 #define PINI_LIMIT_LD 43 #define PINI_LIMIT_RU 44 #define PINI_LIMIT_RD 45 #define PINI_STOP 46 //send data index #define IDXI_EMG 0 #define IDXI_BTN_1 1 #define IDXI_BTN_2 2 #define IDXI_BTN_3 3 #define IDXI_BTN_4 4 #define IDXI_OVERLOADL 5 #define IDXI_OVERLOADR 6 #define IDXI_EMPTY7 7 #define IDXI_EMPTY8 8 #define IDXI_BTN_ZUP 9 #define IDXI_BTN_ZDN 10 #define IDXI_LIMIT_LU 11 #define IDXI_LIMIT_LD 12 #define IDXI_LIMIT_RU 13 #define IDXI_LIMIT_RD 14 #define IDXI_STOP 15 //output #define PINO_GUIDEMOTOR_LDIR 22 //Guide Motor Direction #define PINO_GUIDEMOTOR_LRUN 23 //Guide Motor Start #define PINO_GUIDEMOTOR_RDIR 24 // #define PINO_GUIDEMOTOR_RRUN 25 //Guide Motor Run(STA�� ����ȭ�� [IO.cpp:Update()] ) #define PINO_EMPTY_26 26 #define PINO_EMPTY_27 27 #define PINO_EMPTY_28 28 #define PINO_EMPTY_29 29 #define IDXO_GUIDEMOTOR_LDIR 0 //Guide Motor Direction #define IDXO_GUIDEMOTOR_LRUN 1 //Guide Motor Start #define IDXO_GUIDEMOTOR_RDIR 2 // #define IDXO_GUIDEMOTOR_RRUN 3 //Guide Motor Run(STA�� ����ȭ�� [IO.cpp:Update()] ) #define IDXO_EMPTY_04 4 #define IDXO_EMPTY_05 5 #define IDXO_EMPTY_06 6 #define IDXO_EMPTY_07 7 #define IDXO_EMPTY_08 8 #define IDXO_CHARGE_ON 9 #define IDXO_MOT_POWER_L 10 #define IDXO_MOT_POWER_R 11 #define IDXO_EMPTY_42 12 #define IDXO_EMPTY_43 13 #define IDXO_EMPTY_44 14 #define IDXO_EMPTY_45 15 //�Ƴ��α��Է�(�ɹ�ȣ) #define PINAI_0 A0 //���׳ݼ���(FRONT) ��ġ �� #define PINAI_1 A1 //���׳ݼ���(REAR) ��ġ �� #define PINAI_2 A2 //�������� #define PINAI_3 A3 //���͸� ���� �б� //�Ƴ��α� �Է�(�������ε���) #define IDXAI_0 0 #define IDXAI_1 1 #define IDXAI_2 2 #define IDXAI_3 3 //�Ƴ��α����(PWM) #define PINAO_4 A4 //Z�� ���� �ӵ� #define PINAO_5 A5 //���ʸ��� �ӵ� #define PINAO_6 A6 //���ʸ��� �ӵ� #define PINAO_7 A7 //�����ʸ��� �ӵ� //�Ƴ��α����(������ �ε���) #define IDXAO_0 0 //Z�� ���� �ӵ� #define IDXAO_1 1 //(��+��) ���� #define IDXAO_2 2 //���ʸ��� �ӵ� #define IDXAO_3 3 //�����ʸ��� �ӵ� #define MAF_SIZE 30 void Setup(); void Update(); bool IsPowerLoss(); private: int bufferF[MAF_SIZE]; int indexF = 0; int countF = 0; int iF; int sumF = 0; int tempF; float avgF; int bufferB[MAF_SIZE]; int indexB = 0; int countB = 0; int iB; int sumB = 0; int tempB; float avgB; long tm_gateoutOn = 0; long tm_gateoutOf = 0; long tm_markOn = 0; long tm_markOff = 0; unsigned long runtime = 0; void IOValueChanged(bool isout, uint8_t index, bool newValue); }; extern IoClass io; #endif