Stap 6: Upload Code
PIN voor de LED
int LEDPin = 13;
int LEDPin1 = 12;
int LEDPin2 = 11;
int LEDPin3 = 10;
int LEDPin4 = 9;
int LEDPin5 = 8;
int capSensePin = 2;
Dit is hoe hoog de sensor moet lezen in volgorde
aan trigger een aanraking. U vindt dit nummer
door trial and error, of u kon het nemen van lezingen op
het begin van dit dynamisch te berekenen.
int touchedCutoff = 19;
int Cutoff = 20;
int Cutoff1 = 21;
int Cutoff2 = 22;
int Cutoff3 = 23;
int Cutoff4 = 24;
int Cutoff5 = 25;
VOID Setup {}
Serial.begin(9600);
Instellen van de LED
pinMode (LEDPin, uitvoer);
pinMode (LEDPin1, uitvoer);
pinMode (LEDPin2, uitvoer);
pinMode (LEDPin3, uitvoer);
pinMode (LEDPin4, uitvoer);
pinMode (LEDPin5, uitvoer);
digitalWrite (LEDPin, laag);
}
void loop {}
Als de capacitieve sensor boven een bepaalde drempel leest
inschakelen van de LED
Als (readCapacitivePin(capSensePin) > touchedCutoff) {}
digitalWrite (LEDPin, hoge);
}
else {}
digitalWrite (LEDPin, laag);
}
Als (readCapacitivePin(capSensePin) > Cutoff) {}
digitalWrite (LEDPin1, hoge);
}
else {}
digitalWrite (LEDPin1, laag);
}
Als (readCapacitivePin(capSensePin) > Cutoff1) {}
digitalWrite (LEDPin2, hoge);
}
else {}
digitalWrite (LEDPin2, laag);
}
Als (readCapacitivePin(capSensePin) > Cutoff2) {}
digitalWrite (LEDPin3, hoge);
}
else {}
digitalWrite (LEDPin3, laag);
}
Als (readCapacitivePin(capSensePin) > Cutoff3) {}
digitalWrite (LEDPin4, hoge);
}
else {}
digitalWrite (LEDPin4, laag);
}
Als (readCapacitivePin(capSensePin) > Cutoff4) {}
digitalWrite (LEDPin5, hoge);
}
else {}
digitalWrite (LEDPin5, laag);
}
Elke 500 ms, afdrukken de waarde van de capacitieve sensor
Als ((millis() % 500) == 0) {}
Serial.Print ("capacitieve Sensor op Pin 2 leest:");
Serial.println(readCapacitivePin(capSensePin));
}
}
readCapacitivePin
Ingang: Arduino pin-nummer
Uitgang: Een nummer, van 0 tot de uiting van de 17
hoeveel capaciteit is op de pin
Wanneer u contact met de pin, of wat je hebt
gekoppeld aan het, krijgt het nummer hogere
Om dit nu, aan het werk
De pincode moet een 1 + Megaohm weerstand trekken
het t/m + 5v.
uint8_t readCapacitivePin (int pinToMeasure) {}
Dit is hoe u een variabele declareren die
de poort, PIN en DDR registers zal houden
op een AVR
vluchtige uint8_t * haven;
vluchtige uint8_t * ddr;
vluchtige uint8_t * pin;
Hier vertalen wij de invoer pin-nummer van
Arduino pin nummer AVR poort, PIN, DDR,
en welke bits van deze registers die we schelen.
byte bitmasker;
Als ((pinToMeasure > = 0) & & (pinToMeasure < = 7)) {}
poort = & PORTD;
DDR = & DDRD;
bitmasker = 1 << pinToMeasure;
PIN = & PIND;
}
Als ((pinToMeasure > 7) & & (pinToMeasure < = 13)) {}
poort = & PORTB;
DDR = & DDRB;
bitmasker = 1 << (pinToMeasure - 8);
PIN = & PINB;
}
Als ((pinToMeasure > 13) & & (pinToMeasure < = 19)) {}
poort = & PORTC;
DDR = & DDRC;
bitmasker = 1 << (pinToMeasure - 13);
PIN = & PINC;
}
Kwijting van de pin eerst door het lage- en output
* poort & = ~ (bitmasker);
* ddr | = bitmasker;
delay(1);
Maak de pin een ingang zonder de interne pull-up op
* ddr & = ~ (bitmasker);
Nu zien hoe lang de pin te krijgen trok
int cycli = 16000;
for (int i = 0; ik < cycli; i ++) {}
Als (* pin & bitmasker) {}
cycli = i;
breken;
}
}
Kwijting van de pin opnieuw door het lage- en output
Het is belangrijk om te laten de pinnen laag als u wilt
mogelijk te raken meer dan 1 sensor tegelijk - als
de sensor wordt overgelaten getrokken hoog, wanneer je aanraken
twee sensoren, je lichaam zal de overdracht van de kosten tussen
sensoren.
* poort & = ~ (bitmasker);
* ddr | = bitmasker;
retourneren van cycli;
}