その2です。u8glibライブラリ使い方の覚書です。
アナログポートから読み込んだデータを時系列に表示してみました。
アナログポートの値を変化させるためにアナログピンを触っています。
50Hzの交流が体に誘起しているとの想定ですが、FM変調がかかっているような波形です。
時間軸はいい加減なので、内部処理によって処理時間が違うのかもしれません。
このライブラリでは、picture loopといって1画面分の描画に必要なデータを全部揃えておいて、画面表示ごとに毎回描き直ししないといけません。
draw();部でお絵かきしています。
// picture loop
u8g.firstPage();
do {
draw();
} while( u8g.nextPage() );
// rebuild the picture after some delay
アナログポートから読み込んだデータを0-47ドットにマッピングして、表示用のバッファの最後に書き込みます。
ついでに数値表示用の文字列も作っておきます。
ad = analogRead(5); //0-1023
itoa(ad,temp,10);
y = map(ad,0,1023,47,0);
graph_buffer[127] = y;
描画部分では表示用のバッファのデータを直線でつないでいきます。
void draw(void) {
for(int i=0; i<127; i++) {
u8g.drawLine(i,graph_buffer[i], i+1,graph_buffer[i+1]);
}
データを数値表示します。大きなフォントを使ってみました。
u8g.setFont(u8g_font_10x20);
u8g.drawStr(0,20, temp);
}
描画後は、表示用のバッファを左にシフトします。
for(int i=0; i<127; i++) {
graph_buffer[i] = graph_buffer[i+1];
}
アナログポートから読み込んだデータを時系列に表示してみました。
アナログポートの値を変化させるためにアナログピンを触っています。
50Hzの交流が体に誘起しているとの想定ですが、FM変調がかかっているような波形です。
時間軸はいい加減なので、内部処理によって処理時間が違うのかもしれません。
このライブラリでは、picture loopといって1画面分の描画に必要なデータを全部揃えておいて、画面表示ごとに毎回描き直ししないといけません。
draw();部でお絵かきしています。
// picture loop
u8g.firstPage();
do {
draw();
} while( u8g.nextPage() );
// rebuild the picture after some delay
アナログポートから読み込んだデータを0-47ドットにマッピングして、表示用のバッファの最後に書き込みます。
ついでに数値表示用の文字列も作っておきます。
ad = analogRead(5); //0-1023
itoa(ad,temp,10);
y = map(ad,0,1023,47,0);
graph_buffer[127] = y;
描画部分では表示用のバッファのデータを直線でつないでいきます。
void draw(void) {
for(int i=0; i<127; i++) {
u8g.drawLine(i,graph_buffer[i], i+1,graph_buffer[i+1]);
}
データを数値表示します。大きなフォントを使ってみました。
u8g.setFont(u8g_font_10x20);
u8g.drawStr(0,20, temp);
}
描画後は、表示用のバッファを左にシフトします。
for(int i=0; i<127; i++) {
graph_buffer[i] = graph_buffer[i+1];
}
※コメント投稿者のブログIDはブログ作成者のみに通知されます