前にポートのON,OFFを掲載しましたが、今回はPWM(パルス幅変調)をプログラミングしてみます。
RL78/G24ボードは以下、USB Cケーブルでパソコンと接続します。
プログラムは以下です。
解説すると
const int LED = 8; //P30 LEDという名前のポートを8番に設定 RL78のポートではP30です。
const int PWM = 9;//P14 PWMという名前のポートを9番に設定 RL78のポートではP14です。
int i = 0; 変数i に 0を設定
RL78のポートではP30です、と言われても?ですが、ルネサス社が自分のマイコン用に定義したArduinoのポートNoと対応するRL78のポートNo表を見て下さい。8=P30 ~9=P14 とあります。~はチルダ(波ではない?)と呼ぶようですが、PWMにも使えるポートを意味します。
セットアップでポートの定義をしています。
void setup() {
// put your setup code here, to run once:
pinMode(LED,OUTPUT); //P30 ON,OFFの出力ポートして動作
pinMode(PWM,OUTPUT); //P14 PWMの出力ポートして動作
Serial.begin(115200); //ボーレート115200bps シリアルプリントのボーレートを115200bpsに設定
}
無限ループです。プログラムは
LEDをONさせ、
変数iの数字をPWMにセット、
iを+1します。
iが255以上なら0をセット、
100msecウエイト、
iの内容をシリアルプリントに出力、
LEDをOFFさせ、
100msecウエイト
繰り返す
という動作です。
void loop() {
// put your main code here, to run repeatedly:
digitalWrite(LED,HIGH); //P30 1出力 LED ON
analogWrite(PWM,i); //P14 に PWM値を設定
i++; //+1
if(i > 255){i = 0;}
delay(100); //人の目で点滅を確認するために時間を遅らせる
Serial.println(i); //変数iのデータをシリアルモニタへ出力する
digitalWrite(LED,LOW); //P30 0出力 LED OFF
delay(100);
}
次回は上記プログラムの波形を観測します。