GR-SAKURA
GR-KURUMI
GR-COTTON
GR-CITRUS
GR-PEACH
GR-KAEDE
GR-ADZUKI
GR-LYCHEE
GR-ROSE
GR-MANGO(*)
SNShield
Web Compiler
IDE for GR
TOPPERS関連
女子美コラボ
その他
※プロデューサミーティング中
作り方使い方資料
イベント関連
作品記事
体験記事
ライブラリ
ツール
その他・過去ファイル
不具合と思われる症状は以下のとおりです。
analogWriteにてPWMを0に設定したあと255を設定すると、期待されるHIGHレベルではなく、ほぼ確実にLOWレベルとなります。連続的に1ずつ上下させた場合は正しく設定できますが、0以外の任意の値から255に設定すると、LレベルになったりHレベルになったりして挙動が安定しません。この症状はGR-CITRUSの0,1,5,7,8,11 の各ピンで発生します。それ以外のポートでは発生しません。255以外の値の設定は問題ないようですが、確証がありません。
なにか回避策がありますでしょうか。それとも、ソースコードや設定などを間違えているのでしょうか。ご教示のほどよろしくお願いいたします。
IDE for GRのバージョン 1.09, 1.11, 1.12, 1.13 の全てで同じ症状が出ることを確認しています。サンプルコードは以下のとおりです。
なお、エラーが発生してReplyできないようですので投稿onlyになってしまうかもしれません。ご了承ください。
#include <Arduino.h>//#define MAX_PIN 20//int pin_array[20] = {0,1,18,19,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17};#define MAX_PIN 6int pin_array[6] = {0,1,5,7,8,11};
void analogWrite_i(int pin, int pwm){ Serial.print("pin : "); Serial.print(pin_array[pin]); Serial.print(" pwm :"); Serial.println(pwm); analogWrite(pin_array[pin],pwm);}
void setup() { Serial.begin(115200); delay(3000); Serial.println("Start"); delay(3000);} void loop() { for(int i=0;i<MAX_PIN;i++){ Serial.print("Pin no is "); Serial.println(pin_array[i]); delay(3000); for(int j=0;j<5;j++){ analogWrite_i(i,0); delay(2000); analogWrite_i(i,255); delay(2000); analogWrite_i(i,126); delay(2000); analogWrite_i(i,255); delay(2000); analogWrite_i(i,254); delay(2000); analogWrite_i(i,255); delay(2000); } }}