橋平礼の電験三種合格講座

過去50年分以上の電験三種の問題を解いて分かった、電験三種は今も昔も変わりません。過去問を解きながら合格を目指しましょう。

MENU

OpenPLC 2.01のArduino UNOのI/Oを全部出力に変更したい。

 


OpenPLC 2.01のArduino UNOのI/Oを全部出力に変更したい。

OpenPLC Editor 2.01が2022年11月15日にリリースされました。これで、今まで、直接Arduinoに書き込めなかった状態から改善されました。Thiago Alvesさんありがとうございます。これにより、runtimeを介さずに直接駆動することができるようになりました。

それでは早速、本題で入ります。

 アナログ入力は変更することはできませんが、デジタル入出力、アナログ出力を変更することはできます。ここは自己責任で行って下さい。

"C:\Users\*****\OpenPLC_Editor\editor\arduino\src\hal\

uno_leonardo_nano_micro_zero.cpp"


*****はユーザー名  

uno_leonardo_nano_micro_zero.cppをテキストエディタで開きます。

変更前
//Define the number of inputs and outputs for this board (mapping for the Arduino Uno)
#define NUM_DISCRETE_INPUT          5
#define NUM_ANALOG_INPUT            6
#define NUM_DISCRETE_OUTPUT         4
#define NUM_ANALOG_OUTPUT           3

//Create the I/O pin masks
uint8_t pinMask_DIN = {2, 3, 4, 5, 6};
uint8_t pinMask_AIN
= {A0, A1, A2, A3, A4, A5};
uint8_t pinMask_DOUT = {7, 8, 12, 13};
uint8_t pinMask_AOUT
= {9, 10, 11};

変更後
//Define the number of inputs and outputs for this board (mapping for the Arduino Uno)
#define NUM_DISCRETE_INPUT          0
#define NUM_ANALOG_INPUT            6
#define NUM_DISCRETE_OUTPUT         14
#define NUM_ANALOG_OUTPUT           0

//Create the I/O pin masks
uint8_t pinMask_DIN = {};
uint8_t pinMask_AIN
= {A0, A1, A2, A3, A4, A5};
uint8_t pinMask_DOUT = {0,1,2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13};
uint8_t pinMask_AOUT
= {};

%QX0.7の次は%QX1.0となります。

全部出力にすることができました。