Bara Veggin med en Arduino Beetbox (4 / 8 steg)
Steg 4: Arduino kod: nyckelbegrepp
Det finns ett par viktiga begrepp i Arduino koden.1. Aktivera en LED när sensorn vidrörs.
För att göra det vi måste mäta förseningen (total1) och jämföra det med ett tröskelvärde t.ex.
=============
void setup() void loop() om (total1 > TRÖSKEL) {
{
... några setup grejer...
}
{
total1 = cs_9_6.capacitiveSensor(30); Mät Cap känsla från sensorn
digitalWrite (LedPin, hög);
}
annat {
digitalWrite(LedPin,LOW);
}
}
=======
Det är ganska enkelt. Men vad bör tröskelvärdet?
Total1 värdet av dröjsmål läser vi tillbaka varierar från dag till dag eftersom det är mycket känslig för kapacitans (vilket är hela idén), men det innebär att vi inte kan bara sätta i någon fast tröskelvärde eftersom det kommer vara olika under olika förhållanden.
För att se till att vi har ett lämpligt tröskelvärde, måste vi mäta tröskelvärden under en kalibrering sekvens i början av koden.
Vi som följer. Vi initiera jag = 0 under setup() och kalibrera för de första 50 iterationerna av loop(). LED: n blinkar under kalibrering och vi behöver röra sensorn att avgöra lämpliga tröskelvärdet.
=======
void loop() Röra sensorn medan lysdioden är hög att kalibrera TOUCH värdet
{
total1 = cs_9_6.capacitiveSensor(30); / / Mäter Cap känsla från sensorn
om (jag < 50) { / / kalibrera sensorn baslinje till Start
digitalWrite (LedPin, hög);
calVal1 = 0.1*float(total1) + 0,9 * calVal1;
Serial.println(calVal1); skriva ut calibartion värde under kalibrering cykel
delay(50);
digitalWrite (LedPin, låg);
Delay(50);
i ++;
}
}
=======
Koden:
calVal1 = 0.1*float(total1) + 0,9 * calVal1;
genomför ett digitalt filter. Det fungerar genom att väga det har utgång 90 procent av gamla utgångar; nya data uppgår bara till 10% korrigeringskoefficient. Detta ger oss en tillförlitlig kalibreringsvärde, calVal1 genom att filtrera bort buller på avläsningarna.
I kod trycker vi calVal1 till seriell bildskärmen. Ta en titt på den för att se hur det ökar smidigt mot total1 värdet.
Nästa steg visar Full Arduino koden för detta Experiment