「ケーブル断線検出器」 がありました
https://takikawa-eng.co.jp/tehp/cdd_15.html
ケーブルの静電容量の変化を検知していると思われます(断線すると静電容量が減少する)
arduino CapSense (静電容量センサ)
http://www.musashinodenpa.com/arduino/ref/index.php?f=1&pos=2165
追記
「ケーブル断線検出器」は、線の ねじり、ひねり の耐久試験には向かない 指摘がありました
arduino CapSense (静電容量センサ) の確認しました
aeduino UNO 専用 テストプログラム A0-A3 プルアップ抵抗2MΩ CABLE SET 後に単線接続し値の変化確認
int rec[4];
int touch1m2( unsigned char an ){
int cnt=0;
pinMode( an , OUTPUT ); digitalWrite( an , LOW ); delay(50); // 放電
noInterrupts();
pinMode( an , INPUT ); // 充電 2MΩ
// while( digitalRead( an ) == LOW ){ cnt++; }
if ( an==A0 ){ while( (PINC & 1) == LOW ){ cnt++; } }
if ( an==A1 ){ while( (PINC & 2) == LOW ){ cnt++; } }
if ( an==A2 ){ while( (PINC & 4) == LOW ){ cnt++; } }
if ( an==A3 ){ while( (PINC & 8) == LOW ){ cnt++; } }
interrupts();
return cnt;
}
void setup() {
unsigned char i;
Serial.begin( 9600 );
Serial.println("Arduino Program Start !!");
Serial.println("Recalibration");
for ( i=0 ; i<4 ; i++ ){
rec[i] = touch1m2( A0 +i );
Serial.print("rec["); Serial.print( i ); Serial.print("] = "); Serial.println( rec[i] );
}
Serial.println("Cable set");
}
void loop() {
unsigned char i;
int dat;
Serial.println("Start !!");
while( Serial.available() == 0 ); // シリアル入力待ち start
while( Serial.available() != 0 ){ Serial.read(); delay(10); } // シリアル入力バッファクリア
for ( i=0 ; i<4 ; i++ ){
Serial.print(" A"); Serial.print( i ); Serial.print(" = ");
dat = touch1m2( A0+i );
// Serial.print( dat , DEC ); Serial.print(" ");
dat = abs( dat - rec[i] );
Serial.println( dat , DEC );
}
}
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。