Kapacitiv avkänning for Dummies (5 / 7 steg)
Steg 5: Cap Sensor diagnostikverktyg
Eftersom det finns så många variabler som avgör hur stark signalen är, beslutat vi att det skulle vara bra att ha någon form av verktyg som skulle ge oss möjligheten att bestämma hur lämpad en sensor skulle vara en överblick. Vad vi kom fram till är en Arduino enhet som kan vara ansluten till någon yta med en LED stapeldiagram som tänds upp beroende på hur stark signalen från ytan. Eftersom behandlingen från en yta kan vara tio gånger att vi av en annan yta, även inkluderat två känslighet rattar. En för minsta läsning, och en för högst. Genom tester fann vi att du egentligen bara behöver maximal läsning knopp, så känn dig fri att utesluta den lägre tröskel knoppen. Vi använde inte någon motstånd för våra lysdioder, och efter att apparaten används för ett par dagar, det fortfarande fungerar bra, men det finns inget att berätta om och när de ska sluta fungera. Om du väljer att använda motstånd, är det förmodligen bra att koppla in dem till 5V istället för 3.3V.
Du behöver:
1 x Arduino styrelse. Vi använde en Arduino Uno.
10 x lysdioder. Vi använde en röd, sju vita och två blues, men använda vad du vill/har.
2 x potentiometrar. Du kan utesluta en om du vill, eftersom nyttan av en knopp att styra den lägre tröskeln på enheten är tvivelaktigt.
7 x 4,7 MOhm motstånd. Det är vad vi använde, men du kan använda ett annat belopp om du vill. Mer motstånd du har, desto större motstånd spänna dig. De lägre värden de har, desto högre upplösning av de motstånd.
Elektriska kablar
Brödunderläggen (valfritt)
Steg 1: Binder upp allt som visas i fritzing diagram.
Steg 2: Öppna upp en ny Arduino skiss och klistra in koden nedan. Koden använder en utjämnande funktion för en mer stabil produktion. Vi använde denna kod att få stapeldiagrammet LED belysning korrekt, att göra endast smärre ändringar.
#include
CONST int ledCount = 10; antal lampor i stapeldiagrammet
CONST long numReadings = 10;
int sensorPin1 = 0;
int sensorPin2 = A1;
långa avläsningar [numReadings];
länge index = 0;
långa totalt = 0;
långa genomsnittliga = 0;
int ledPins [] = {4, 5, 6, 7,8,9,10,11,12,13}; en matris med pin-koder som lysdioder kopplas
CapacitiveSensor cs_3_2 = CapacitiveSensor(3,2);
void setup() {
slinga över pin matrisen och ställa in dem alla att produktionen:
cs_3_2.set_CS_AutocaL_Millis(0xFFFFFFFF);
Serial.BEGIN(9600);
för (int thisReading = 0; thisReading < numReadings; thisReading ++) avläsningar [thisReading] = 0;
för (int thisLed = 0; thisLed < ledCount; thisLed ++) {pinMode (ledPins [thisLed], produktionen);} pinMode(sensorPin1,INPUT); pinMode(sensorPin2,INPUT);
}
void loop() {
int botten;
int topp;
botten = analogRead(sensorPin1);
toppen = analogRead(sensorPin2);
int bottommap;
int topmap;
bottommap = map(bottom,0,1023,0,3000);
topmap = map(top,0,1023,100,30000);
långa start = millis();
långa total1 = cs_3_2.capacitiveSensor(30);
totalt = totalt - avläsningar [index];
avläsningar [index] = total1;
totalt = totalt + avläsningar [index];
index = index + 1.
om (index > = numReadings)
index = 0;
genomsnittliga = totalt / numReadings;
Serial.Print(Millis() - start);
Serial.Print("\t");
Serial.Print(Bottom); Serial.Print("\t");
Serial.Print(Top);
Serial.Print("\t");
Serial.println(Average);
Delay(10);
int sensorReading = genomsnittet.
int ledLevel = karta (sensorReading, bottommap, topmap, 0, ledCount);
för (int thisLed = 0; thisLed < ledCount; thisLed ++) {
om (thisLed < ledLevel) {
digitalWrite (ledPins [thisLed], låg); }
annat {digitalWrite (ledPins [thisLed], hög);}}
}
Steg 3: Du är klar! Kompilera och ladda upp skissen till Arduino och du bör kunna få en mer grafisk produktion av signalstyrkan. Lägga till eller ta bort motstånd för att öka eller minska signalstyrkan. Mer motstånd innebär mer styrka. Vi monterat ett antal motstånd på en separat skärbräda så att vi kan ändra motståndet snabbare. Vrid potentiometer ansluten till A1 att öka eller minska känsligheten.