上一篇嘗試了壓力感測器(Force-Sensitive Resistor),這一篇則玩玩看彎曲感測器(flex/bend sensor),用法跟電路都差不多。
基本上它就是個電阻,根據我買的產品資料規格書,平常狀態下電阻值約25kΩ,彎曲後電阻值會上升,大概會到100kΩ。
我向Adafruit買的壓力感測器,生產廠商是Spectra Symbol。
電路圖如下,在5V與GND之間串聯彎曲感測器(電阻)與10kΩ,將類比腳位A0接到兩者之間。
實際照片。
底下是程式碼。
#define led_pin 11
#define flex_pin A0
void setup()
{
Serial.begin(115200);
pinMode(led_pin, OUTPUT);
}
void loop()
{
int flex_value = analogRead(flex_pin);
int led_value = map(flex_value, 0, 1023, 0, 255);
analogWrite(led_pin, led_value);
Serial.println(flex_value);
Serial.println(led_value);
Serial.println("-------------");
delay(500);
}
當彎曲感測器在平常狀態下,flex_value的值大概在325,因電路的電壓是5V,Arduino類比腳位的解析度是10位元(0~1023),325 / 1024 * 5 = 1.59,代表該處電壓是1.59,5 - 1.59 = 3.41,也就是說彎曲感測器左右兩端的電位差是3.41。若相信此時彎曲感測器的電阻值是25kΩ,5 / (25000 + 10000) * 25000 = 3.58,嗯,差不多,沒錯。
然後若折彎彎曲感測器,它的電阻值就會上升,那麼flex_value的值就會越來越小,連帶地讓led_value的值越小,LED就會越暗。
我想請問一下
ReplyDelete我想讓彎曲感測器彎折的時候,led完全滅掉要怎麼做呢!?
那就是把彎曲感測器當做數位開關,只分辨兩種情況,
Delete讀取後
int flex_value = analogRead(flex_pin);
小於某值的話,代表彎曲程度較大,所以熄滅LED。
if(flex_value < SOME_VALUE){
digitalWrite(LED_PIN, LOW);
}
else{
digitalWrite(LED_PIN, HIGH);
}
想請問一下,如何把9999counter與彎曲感測器(當開關時彎曲動作)作結合呢!?
ReplyDelete我目前在做一個專題,其中包含這部分,但一直卡在這地方!!!
作什麼結合?
Delete我想做一個把彎曲感測器當開關,彎下去時計數counter電路開始計數,數到設定的數時,輸出一信號可使led燈亮滅
ReplyDelete嗯,很好啊,請加油。
Delete:D
你好請問彎曲感測彎折是否可轉動馬達,實驗卡在彎折之後馬達都無法轉,該怎麼做?!
ReplyDelete最近在做機械手指研究!
能不能轉動馬達,跟彎曲感測器沒關係。
Delete> 之後馬達都無法轉
線路?程式?
有人可以協助開發彎曲感測器的使用嗎? 彎曲感測=》 當成開關與控制手機APP
ReplyDelete請問大大可以用Arduino即時顯示感測器的彎曲程度對應電壓 電阻值嗎
ReplyDelete彎曲感測器彎到一定程度傳送數字該怎麼做ouo?
ReplyDelete