JavaScript のバックグラウンドから生まれた C++/Arduino の最初のプロジェクト。このコードにはいくつか問題があります。次のエラーが表示されます。
C:\Users\Owner\Documents\Arduino\libraries\Pad\Pad.cpp:48:55: error: invalid use of non-static member function
sensor.begin( 15, 5 ).onChange( change_callback, 3 );
ここにcppがあります:
#include "Pad.h"
#include "Arduino.h"
#include "FastLED.h"
#include "Automaton.h"
extern CRGB leds[64];
Pad::Pad(int val) {
_val = val;
_default = CHSV(random(255), 255, 255);
_cnt = 0;
fade = false;
fade_val = 0;
}
void Pad::change_callback( int idx, int v, int up ) {
Serial.println(v);
fade_val = v;
}
void Pad::color() {
my_leds[0] = CHSV(random(255),255,255);
fade = true;
}
void Pad::init() {
for(int a = 0 ; a < 8 ; a++) {
my_leds[a] = _default;
}
sensor.begin( 15, 5 ).onChange( change_callback, 3 );
}
void Pad::render() {
if(fade) {
int v = map(fade_val, 0, 1023, 0, 255);
my_leds[0] = CHSV(127,255, v);
_cnt++;
}
}
change_callback
静的関数を作成しようとしましfade_val
たが、パブリック クラス メンバーである でエラーが発生します。これはポインターに関係しているように感じますが、まだ頭を悩ませています。Pad の各インスタンスには独自のセンサーと独自の fade_val があることが重要です。これらは各 Pad 間で共有 (静的) することはできません。