Arduino/静電容量センサー
をテンプレートにして作成
[
凌宮
|
技術
|
一覧
|
検索
|
最新
] [
ソース
]
開始行:
###
//#define DEBUG true
class CapaSensor {
private:
int vCtrlPin;
int vSensingPin;
int vTryNumber;
int vThreshold;
public:
CapaSensor(int aCtrlPin, int aSensingPin, int aTryNumbe...
pinMode(aCtrlPin, OUTPUT);
pinMode(aSensingPin, INPUT);
vCtrlPin = aCtrlPin;
vSensingPin = aSensingPin;
vTryNumber = aTryNumber;
vThreshold = (int)(read() * 1.2);
#if DEBUG
Serial.print("CapaSensor[");
Serial.print(vCtrlPin);
Serial.print("-");
Serial.print(vSensingPin);
Serial.print("x");
Serial.print(aTryNumber);
Serial.print(">");
Serial.println(vThreshold);
#endif
}
int read() {
int ret = 0;
for(int i = 0; i < vTryNumber; i++) {
int cnt = 0;
digitalWrite(vCtrlPin, HIGH);
while(digitalRead(vSensingPin) < HIGH) {
cnt++;
}
if (ret < cnt) ret = cnt;
digitalWrite(vCtrlPin, LOW);
delay(5);
}
return ret;
}
int touched() {
int ret = 0;
for(int i = 0; i < vTryNumber; i++) {
int cnt = 0;
digitalWrite(vCtrlPin, HIGH);
while(digitalRead(vSensingPin) < HIGH) {
cnt++;
if (cnt > vThreshold) {
return true;
#if DEBUG
Serial.print("@-");
Serial.print(vThreshold);
Serial.print(" <? ");
Serial.println(cnt);
#endif
}
}
if (ret < cnt) ret = cnt;
digitalWrite(vCtrlPin, LOW);
delay(5);
}
#if DEBUG
Serial.print(ret > vThreshold ? "@ " : " ");
Serial.print(vThreshold);
Serial.print(" <? ");
Serial.println(ret);
#endif
return ret > vThreshold;
}
};
int oLed = 13;
CapaSensor* capa;
void setup() {
Serial.begin(9600);
Serial.print("Setup");
analogWrite(oLed, 0);
capa = new CapaSensor(8,9,10);
}
void loop() {
analogWrite(oLed, capa->touched()?128:0);
delay(100);
}
###
###
#ifndef CapaSensorHpp
#define CapaSensorHpp
#include "Arduino.h"
class CapaSensor {
private:
int mDebug = false;
public:
CapaSensor(int aCtrlPin, int aDataPin, int aTryNumber...
pinMode(aCtrlPin, OUTPUT);
pinMode(aDataPin, INPUT);
mCtrlPin = aCtrlPin;
mDataPin = aDataPin;
mTryNumber = aTryNumber;
mThreshold = (int)(read() * 1.2);
if (mDebug) {
Serial.print("CapaSensor[");
Serial.print(mCtrlPin);
Serial.print(",");
Serial.print(mDataPin);
Serial.print("]x");
Serial.print(mTryNumber);
Serial.print(">");
Serial.print(mThreshold);
Serial.println("x");
}
}
int read() {
int ret = 0;
fReset();
for (int i = 0; i < mTryNumber; i ++) {
digitalWrite(mCtrlPin, HIGH);
for (int cnt = 0; digitalRead(mDataPin) < HIGH; c...
if (ret < cnt) ret = cnt;
}
fReset();
}
return ret;
}
bool touched() {
fReset();
for (int i = 0; i < mTryNumber; i ++) {
digitalWrite(mCtrlPin, HIGH);
for (int cnt = 0; digitalRead(mDataPin) < HIGH; c...
if (cnt > mThreshold) {
if (mDebug) {
Serial.print(" Capa = ");
Serial.print(cnt);
Serial.print(" >= ");
Serial.println(mThreshold);
}
return true;
}
}
fReset();
}
return false;
}
private:
int mCtrlPin;
int mDataPin;
int mTryNumber;
int mThreshold;
void fReset() {
digitalWrite(mCtrlPin, LOW);
while(digitalRead(mDataPin) > LOW) {;}
delay(2);
}
};
#endif
###
終了行:
###
//#define DEBUG true
class CapaSensor {
private:
int vCtrlPin;
int vSensingPin;
int vTryNumber;
int vThreshold;
public:
CapaSensor(int aCtrlPin, int aSensingPin, int aTryNumbe...
pinMode(aCtrlPin, OUTPUT);
pinMode(aSensingPin, INPUT);
vCtrlPin = aCtrlPin;
vSensingPin = aSensingPin;
vTryNumber = aTryNumber;
vThreshold = (int)(read() * 1.2);
#if DEBUG
Serial.print("CapaSensor[");
Serial.print(vCtrlPin);
Serial.print("-");
Serial.print(vSensingPin);
Serial.print("x");
Serial.print(aTryNumber);
Serial.print(">");
Serial.println(vThreshold);
#endif
}
int read() {
int ret = 0;
for(int i = 0; i < vTryNumber; i++) {
int cnt = 0;
digitalWrite(vCtrlPin, HIGH);
while(digitalRead(vSensingPin) < HIGH) {
cnt++;
}
if (ret < cnt) ret = cnt;
digitalWrite(vCtrlPin, LOW);
delay(5);
}
return ret;
}
int touched() {
int ret = 0;
for(int i = 0; i < vTryNumber; i++) {
int cnt = 0;
digitalWrite(vCtrlPin, HIGH);
while(digitalRead(vSensingPin) < HIGH) {
cnt++;
if (cnt > vThreshold) {
return true;
#if DEBUG
Serial.print("@-");
Serial.print(vThreshold);
Serial.print(" <? ");
Serial.println(cnt);
#endif
}
}
if (ret < cnt) ret = cnt;
digitalWrite(vCtrlPin, LOW);
delay(5);
}
#if DEBUG
Serial.print(ret > vThreshold ? "@ " : " ");
Serial.print(vThreshold);
Serial.print(" <? ");
Serial.println(ret);
#endif
return ret > vThreshold;
}
};
int oLed = 13;
CapaSensor* capa;
void setup() {
Serial.begin(9600);
Serial.print("Setup");
analogWrite(oLed, 0);
capa = new CapaSensor(8,9,10);
}
void loop() {
analogWrite(oLed, capa->touched()?128:0);
delay(100);
}
###
###
#ifndef CapaSensorHpp
#define CapaSensorHpp
#include "Arduino.h"
class CapaSensor {
private:
int mDebug = false;
public:
CapaSensor(int aCtrlPin, int aDataPin, int aTryNumber...
pinMode(aCtrlPin, OUTPUT);
pinMode(aDataPin, INPUT);
mCtrlPin = aCtrlPin;
mDataPin = aDataPin;
mTryNumber = aTryNumber;
mThreshold = (int)(read() * 1.2);
if (mDebug) {
Serial.print("CapaSensor[");
Serial.print(mCtrlPin);
Serial.print(",");
Serial.print(mDataPin);
Serial.print("]x");
Serial.print(mTryNumber);
Serial.print(">");
Serial.print(mThreshold);
Serial.println("x");
}
}
int read() {
int ret = 0;
fReset();
for (int i = 0; i < mTryNumber; i ++) {
digitalWrite(mCtrlPin, HIGH);
for (int cnt = 0; digitalRead(mDataPin) < HIGH; c...
if (ret < cnt) ret = cnt;
}
fReset();
}
return ret;
}
bool touched() {
fReset();
for (int i = 0; i < mTryNumber; i ++) {
digitalWrite(mCtrlPin, HIGH);
for (int cnt = 0; digitalRead(mDataPin) < HIGH; c...
if (cnt > mThreshold) {
if (mDebug) {
Serial.print(" Capa = ");
Serial.print(cnt);
Serial.print(" >= ");
Serial.println(mThreshold);
}
return true;
}
}
fReset();
}
return false;
}
private:
int mCtrlPin;
int mDataPin;
int mTryNumber;
int mThreshold;
void fReset() {
digitalWrite(mCtrlPin, LOW);
while(digitalRead(mDataPin) > LOW) {;}
delay(2);
}
};
#endif
###
ページ名:
3doodler-04.jpg
339件
[
詳細
]
3doodler-03.jpg
302件
[
詳細
]
3doodler-02.jpg
305件
[
詳細
]
3doodler-01.jpg
322件
[
詳細
]
3doodler-13.jpg
335件
[
詳細
]
3doodler-11.jpg
148件
[
詳細
]
3doodler-14.jpg
275件
[
詳細
]
3doodler-22.jpg
287件
[
詳細
]
3doodler-21.jpg
267件
[
詳細
]
MerryXmas.jpg
278件
[
詳細
]
Xperia-01.jpg
298件
[
詳細
]
Xperia-02.jpg
329件
[
詳細
]
Xperia-04.jpg
306件
[
詳細
]
Xperia-07.jpg
334件
[
詳細
]
Xperia-06.jpg
315件
[
詳細
]
Xperia-08.jpg
282件
[
詳細
]
Xperia-10.jpg
268件
[
詳細
]
Xperia-15.jpg
272件
[
詳細
]
Melody.zip
181件
[
詳細
]
CSample.lzh
194件
[
詳細
]
Sendv2.limg.lzh
210件
[
詳細
]
HttpServer.2013.0819.0954.zip
229件
[
詳細
]
EasyMacroLens.05.JPG
401件
[
詳細
]
EasyMacroLens.04.JPG
426件
[
詳細
]
EasyMacroLens.03.JPG
416件
[
詳細
]
EasyMacroLens.02.jpg
421件
[
詳細
]
EasyMacroLens.01.jpg
414件
[
詳細
]
01.DeviceManager.png
550件
[
詳細
]
02.DeviceProperty.png
452件
[
詳細
]
03.DeviceDriver.png
442件
[
詳細
]
04.DriverUpdate.png
423件
[
詳細
]
05.LocationSetting.png
424件
[
詳細
]
06.SecurityCheck.png
530件
[
詳細
]
07.Updating.png
397件
[
詳細
]
08.DeviceManager.png
433件
[
詳細
]
00.AdbDevices.png
418件
[
詳細
]
Nexus7-2013-KaifuuNoGi-11.jpg
292件
[
詳細
]
Nexus7-2013-KaifuuNoGi-10.jpg
282件
[
詳細
]
Nexus7-2013-KaifuuNoGi-09.jpg
281件
[
詳細
]
Nexus7-2013-KaifuuNoGi-08.jpg
309件
[
詳細
]
Nexus7-2013-KaifuuNoGi-07.jpg
303件
[
詳細
]
Nexus7-2013-KaifuuNoGi-06.jpg
285件
[
詳細
]
Nexus7-2013-KaifuuNoGi-03.jpg
279件
[
詳細
]
KaifuuNoGi-08.jpg
300件
[
詳細
]
KaifuuNoGi-06.jpg
308件
[
詳細
]
KaifuuNoGi-05.jpg
272件
[
詳細
]
KaifuuNoGi-04.jpg
321件
[
詳細
]
KaifuuNoGi-03.jpg
295件
[
詳細
]
KaifuuNoGi-02.jpg
299件
[
詳細
]
KaifuuNoGi-01.jpg
298件
[
詳細
]
DeviceManager.LeapDevKit.WestBridge.Stop.png
302件
[
詳細
]
DeviceManager.LeapDevKit.WestBridge.png
369件
[
詳細
]
DeviceManager.LeapDevKit.png
385件
[
詳細
]
DeviceManager.LeapDevKit.Off.png
210件
[
詳細
]
junaio_download_qrcode.png
541件
[
詳細
]
junaio_channel_qrcode_LimgNameCard.png
536件
[
詳細
]
TheEyeTribe.07.jpg
317件
[
詳細
]
TheEyeTribe.06.jpg
325件
[
詳細
]
TheEyeTribe.05.jpg
332件
[
詳細
]
TheEyeTribe.04.jpg
322件
[
詳細
]
TheEyeTribe.03.jpg
336件
[
詳細
]
TheEyeTribe.02.jpg
335件
[
詳細
]
TheEyeTribe.01.jpg
339件
[
詳細
]
Hwd14-01.jpg
295件
[
詳細
]
Hwd14-02.jpg
295件
[
詳細
]
Hwd14-03.jpg
299件
[
詳細
]
Hwd14-04.jpg
302件
[
詳細
]
Hwd14-05.jpg
320件
[
詳細
]
Hwd14-06.jpg
315件
[
詳細
]
Decode.zip
175件
[
詳細
]
s-ColorSample-5Y--9.0-01.0-f.JPG
419件
[
詳細
]
filament-color12.jpg
413件
[
詳細
]
s-ColorSample-N---9.5------f.jpg
357件
[
詳細
]
s-ColorSample-N---1.5------f.jpg
375件
[
詳細
]
s-ColorSample-4R--4.5.14.0-f.jpg
363件
[
詳細
]
s-ColorSample-8YR-7.0-13.5-f.jpg
383件
[
詳細
]
s-ColorSample-8Y--8.0-10.0-f.jpg
322件
[
詳細
]
s-ColorSample-8GY-7.0-09.5-f.jpg
354件
[
詳細
]
s-ColorSample-9G--3.5-08.5-f.jpg
357件
[
詳細
]
s-ColorSample-5BG-4.5-10.0-f.jpg
362件
[
詳細
]
s-ColorSample-5B--5.5-08.5-f.jpg
353件
[
詳細
]
s-ColorSample-6PB-3.5-11.5-f.jpg
334件
[
詳細
]
s-ColorSample-1RP-3.5-11.5-f.jpg
372件
[
詳細
]
s-ColorSample-6RP-4.5-12.5-f.jpg
328件
[
詳細
]
s-IMG_6009.JPG
373件
[
詳細
]
s-IMG_6014.JPG
404件
[
詳細
]
Suporter.png
402件
[
詳細
]
Gap1.png
342件
[
詳細
]
Gap3.png
426件
[
詳細
]
s-IMG_6020.JPG
319件
[
詳細
]
s-IMG_6039.JPG
354件
[
詳細
]
s-IMG_6045.JPG
348件
[
詳細
]
s-IMG_6047.JPG
372件
[
詳細
]
s-IMG_6061.JPG
341件
[
詳細
]
s-IMG_6050.JPG
369件
[
詳細
]
s-IMG_6058.JPG
386件
[
詳細
]
s-IMG_6079.JPG
365件
[
詳細
]
s-IMG_5699.JPG
377件
[
詳細
]
s-IMG_5703.JPG
344件
[
詳細
]
s-IMG_5707.JPG
332件
[
詳細
]
s-IMG_5710.JPG
302件
[
詳細
]
s-IMG_5713.JPG
311件
[
詳細
]
s-IMG_5716.JPG
322件
[
詳細
]
s-IMG_5723.JPG
329件
[
詳細
]
s-IMG_5727.JPG
300件
[
詳細
]
s-IMG_5728.JPG
301件
[
詳細
]
s-IMG_5729.JPG
290件
[
詳細
]
s-IMG_5731.JPG
320件
[
詳細
]
s-IMG_5733.JPG
333件
[
詳細
]
s-IMG_5735.JPG
302件
[
詳細
]
s-IMG_5737.JPG
322件
[
詳細
]
s-IMG_5739.JPG
331件
[
詳細
]
s-IMG_5752.JPG
328件
[
詳細
]
s-IMG_5756.JPG
293件
[
詳細
]
s-IMG_5761.JPG
302件
[
詳細
]
s-IMG_5764.JPG
316件
[
詳細
]
s-IMG_5767.JPG
317件
[
詳細
]
s-IMG_5905.JPG
413件
[
詳細
]
s-IMG_5907.JPG
413件
[
詳細
]
s-IMG_5914.JPG
415件
[
詳細
]
s-IMG_5917.JPG
381件
[
詳細
]
s-IMG_5920.JPG
414件
[
詳細
]
s-IMG_5934.JPG
405件
[
詳細
]
s-IMG_5935.JPG
361件
[
詳細
]
s-IMG_5937.JPG
382件
[
詳細
]
s-IMG_5948.JPG
357件
[
詳細
]
s-IMG_5966.JPG
368件
[
詳細
]
s-IMG_5971.JPG
363件
[
詳細
]
10005832_540049732781991_265704328_o[1].jpg
339件
[
詳細
]
s-IMG_5613.JPG
342件
[
詳細
]
Nucleo32.JPG
168件
[
詳細
]
[
凌宮
|
技術
|
一覧
|
検索
|
最新
] [
ソース
]